@optave/codegraph 3.10.0 → 3.11.1

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 (312) hide show
  1. package/README.md +40 -33
  2. package/dist/ast-analysis/engine.d.ts.map +1 -1
  3. package/dist/ast-analysis/engine.js +91 -60
  4. package/dist/ast-analysis/engine.js.map +1 -1
  5. package/dist/ast-analysis/rules/index.d.ts.map +1 -1
  6. package/dist/ast-analysis/rules/index.js +77 -0
  7. package/dist/ast-analysis/rules/index.js.map +1 -1
  8. package/dist/ast-analysis/visitor-utils.d.ts +3 -0
  9. package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
  10. package/dist/ast-analysis/visitor-utils.js +83 -49
  11. package/dist/ast-analysis/visitor-utils.js.map +1 -1
  12. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  13. package/dist/ast-analysis/visitors/ast-store-visitor.js +78 -62
  14. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  15. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
  16. package/dist/ast-analysis/visitors/dataflow-visitor.js +61 -42
  17. package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
  18. package/dist/cli/commands/audit.js +1 -1
  19. package/dist/cli/commands/audit.js.map +1 -1
  20. package/dist/cli/commands/build.d.ts.map +1 -1
  21. package/dist/cli/commands/build.js +2 -0
  22. package/dist/cli/commands/build.js.map +1 -1
  23. package/dist/cli/commands/check.js +1 -1
  24. package/dist/cli/commands/check.js.map +1 -1
  25. package/dist/cli/commands/children.js +1 -1
  26. package/dist/cli/commands/children.js.map +1 -1
  27. package/dist/cli/commands/diff-impact.js +1 -1
  28. package/dist/cli/commands/diff-impact.js.map +1 -1
  29. package/dist/cli/commands/embed.d.ts.map +1 -1
  30. package/dist/cli/commands/embed.js +49 -4
  31. package/dist/cli/commands/embed.js.map +1 -1
  32. package/dist/cli/commands/roles.js +1 -1
  33. package/dist/cli/commands/roles.js.map +1 -1
  34. package/dist/cli/commands/structure.js +1 -1
  35. package/dist/cli/commands/structure.js.map +1 -1
  36. package/dist/cli/shared/options.js +1 -1
  37. package/dist/cli/shared/options.js.map +1 -1
  38. package/dist/db/connection.d.ts.map +1 -1
  39. package/dist/db/connection.js +8 -0
  40. package/dist/db/connection.js.map +1 -1
  41. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  42. package/dist/domain/analysis/dependencies.js +106 -80
  43. package/dist/domain/analysis/dependencies.js.map +1 -1
  44. package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
  45. package/dist/domain/analysis/fn-impact.js +77 -52
  46. package/dist/domain/analysis/fn-impact.js.map +1 -1
  47. package/dist/domain/analysis/module-map.d.ts.map +1 -1
  48. package/dist/domain/analysis/module-map.js +132 -121
  49. package/dist/domain/analysis/module-map.js.map +1 -1
  50. package/dist/domain/graph/builder/helpers.d.ts +4 -4
  51. package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
  52. package/dist/domain/graph/builder/helpers.js +47 -33
  53. package/dist/domain/graph/builder/helpers.js.map +1 -1
  54. package/dist/domain/graph/builder/incremental.d.ts +6 -6
  55. package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
  56. package/dist/domain/graph/builder/incremental.js +148 -99
  57. package/dist/domain/graph/builder/incremental.js.map +1 -1
  58. package/dist/domain/graph/builder/pipeline.d.ts +1 -0
  59. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  60. package/dist/domain/graph/builder/pipeline.js +23 -637
  61. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  62. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  63. package/dist/domain/graph/builder/stages/build-edges.js +141 -98
  64. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  65. package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
  66. package/dist/domain/graph/builder/stages/build-structure.js +82 -65
  67. package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
  68. package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
  69. package/dist/domain/graph/builder/stages/detect-changes.js +84 -56
  70. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  71. package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
  72. package/dist/domain/graph/builder/stages/finalize.js +60 -51
  73. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  74. package/dist/domain/graph/builder/stages/insert-nodes.d.ts +8 -6
  75. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  76. package/dist/domain/graph/builder/stages/insert-nodes.js +107 -122
  77. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  78. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts +14 -0
  79. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts.map +1 -0
  80. package/dist/domain/graph/builder/stages/native-db-lifecycle.js +77 -0
  81. package/dist/domain/graph/builder/stages/native-db-lifecycle.js.map +1 -0
  82. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts +62 -0
  83. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -0
  84. package/dist/domain/graph/builder/stages/native-orchestrator.js +747 -0
  85. package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -0
  86. package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
  87. package/dist/domain/graph/builder/stages/resolve-imports.js +73 -22
  88. package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
  89. package/dist/domain/graph/cycles.d.ts +6 -4
  90. package/dist/domain/graph/cycles.d.ts.map +1 -1
  91. package/dist/domain/graph/cycles.js +50 -55
  92. package/dist/domain/graph/cycles.js.map +1 -1
  93. package/dist/domain/graph/journal.d.ts.map +1 -1
  94. package/dist/domain/graph/journal.js +89 -70
  95. package/dist/domain/graph/journal.js.map +1 -1
  96. package/dist/domain/graph/watcher.d.ts.map +1 -1
  97. package/dist/domain/graph/watcher.js +28 -20
  98. package/dist/domain/graph/watcher.js.map +1 -1
  99. package/dist/domain/parser.d.ts +12 -23
  100. package/dist/domain/parser.d.ts.map +1 -1
  101. package/dist/domain/parser.js +153 -80
  102. package/dist/domain/parser.js.map +1 -1
  103. package/dist/domain/search/generator.d.ts +3 -1
  104. package/dist/domain/search/generator.d.ts.map +1 -1
  105. package/dist/domain/search/generator.js +68 -45
  106. package/dist/domain/search/generator.js.map +1 -1
  107. package/dist/domain/search/models.d.ts +18 -0
  108. package/dist/domain/search/models.d.ts.map +1 -1
  109. package/dist/domain/search/models.js +72 -4
  110. package/dist/domain/search/models.js.map +1 -1
  111. package/dist/domain/search/search/hybrid.d.ts.map +1 -1
  112. package/dist/domain/search/search/hybrid.js +49 -40
  113. package/dist/domain/search/search/hybrid.js.map +1 -1
  114. package/dist/domain/search/search/semantic.d.ts.map +1 -1
  115. package/dist/domain/search/search/semantic.js +69 -49
  116. package/dist/domain/search/search/semantic.js.map +1 -1
  117. package/dist/domain/wasm-worker-entry.js +209 -137
  118. package/dist/domain/wasm-worker-entry.js.map +1 -1
  119. package/dist/extractors/c.js +25 -6
  120. package/dist/extractors/c.js.map +1 -1
  121. package/dist/extractors/cpp.js +47 -6
  122. package/dist/extractors/cpp.js.map +1 -1
  123. package/dist/extractors/cuda.js +90 -14
  124. package/dist/extractors/cuda.js.map +1 -1
  125. package/dist/extractors/elixir.js +108 -4
  126. package/dist/extractors/elixir.js.map +1 -1
  127. package/dist/extractors/erlang.js +56 -20
  128. package/dist/extractors/erlang.js.map +1 -1
  129. package/dist/extractors/fsharp.d.ts +7 -0
  130. package/dist/extractors/fsharp.d.ts.map +1 -1
  131. package/dist/extractors/fsharp.js +94 -0
  132. package/dist/extractors/fsharp.js.map +1 -1
  133. package/dist/extractors/gleam.d.ts.map +1 -1
  134. package/dist/extractors/gleam.js +29 -33
  135. package/dist/extractors/gleam.js.map +1 -1
  136. package/dist/extractors/groovy.js +41 -1
  137. package/dist/extractors/groovy.js.map +1 -1
  138. package/dist/extractors/haskell.js +48 -4
  139. package/dist/extractors/haskell.js.map +1 -1
  140. package/dist/extractors/helpers.d.ts +79 -1
  141. package/dist/extractors/helpers.d.ts.map +1 -1
  142. package/dist/extractors/helpers.js +137 -0
  143. package/dist/extractors/helpers.js.map +1 -1
  144. package/dist/extractors/java.d.ts.map +1 -1
  145. package/dist/extractors/java.js +37 -49
  146. package/dist/extractors/java.js.map +1 -1
  147. package/dist/extractors/javascript.d.ts.map +1 -1
  148. package/dist/extractors/javascript.js +44 -44
  149. package/dist/extractors/javascript.js.map +1 -1
  150. package/dist/extractors/julia.js +198 -74
  151. package/dist/extractors/julia.js.map +1 -1
  152. package/dist/extractors/kotlin.js +4 -0
  153. package/dist/extractors/kotlin.js.map +1 -1
  154. package/dist/extractors/objc.js +184 -47
  155. package/dist/extractors/objc.js.map +1 -1
  156. package/dist/extractors/python.js +7 -4
  157. package/dist/extractors/python.js.map +1 -1
  158. package/dist/extractors/r.d.ts.map +1 -1
  159. package/dist/extractors/r.js +103 -87
  160. package/dist/extractors/r.js.map +1 -1
  161. package/dist/extractors/scala.d.ts.map +1 -1
  162. package/dist/extractors/scala.js +18 -32
  163. package/dist/extractors/scala.js.map +1 -1
  164. package/dist/extractors/solidity.d.ts.map +1 -1
  165. package/dist/extractors/solidity.js +55 -69
  166. package/dist/extractors/solidity.js.map +1 -1
  167. package/dist/extractors/verilog.js +80 -15
  168. package/dist/extractors/verilog.js.map +1 -1
  169. package/dist/features/boundaries.d.ts.map +1 -1
  170. package/dist/features/boundaries.js +49 -39
  171. package/dist/features/boundaries.js.map +1 -1
  172. package/dist/features/cfg.d.ts.map +1 -1
  173. package/dist/features/cfg.js +90 -63
  174. package/dist/features/cfg.js.map +1 -1
  175. package/dist/features/check.d.ts.map +1 -1
  176. package/dist/features/check.js +43 -34
  177. package/dist/features/check.js.map +1 -1
  178. package/dist/features/cochange.d.ts.map +1 -1
  179. package/dist/features/cochange.js +68 -56
  180. package/dist/features/cochange.js.map +1 -1
  181. package/dist/features/complexity.d.ts.map +1 -1
  182. package/dist/features/complexity.js +105 -75
  183. package/dist/features/complexity.js.map +1 -1
  184. package/dist/features/dataflow.d.ts.map +1 -1
  185. package/dist/features/dataflow.js +37 -29
  186. package/dist/features/dataflow.js.map +1 -1
  187. package/dist/features/flow.d.ts.map +1 -1
  188. package/dist/features/flow.js +31 -22
  189. package/dist/features/flow.js.map +1 -1
  190. package/dist/features/graph-enrichment.d.ts.map +1 -1
  191. package/dist/features/graph-enrichment.js +77 -70
  192. package/dist/features/graph-enrichment.js.map +1 -1
  193. package/dist/features/owners.d.ts +17 -26
  194. package/dist/features/owners.d.ts.map +1 -1
  195. package/dist/features/owners.js +120 -109
  196. package/dist/features/owners.js.map +1 -1
  197. package/dist/features/sequence.d.ts.map +1 -1
  198. package/dist/features/sequence.js +59 -54
  199. package/dist/features/sequence.js.map +1 -1
  200. package/dist/features/structure-query.d.ts.map +1 -1
  201. package/dist/features/structure-query.js +60 -60
  202. package/dist/features/structure-query.js.map +1 -1
  203. package/dist/features/structure.js +28 -36
  204. package/dist/features/structure.js.map +1 -1
  205. package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
  206. package/dist/graph/algorithms/leiden/optimiser.js +100 -69
  207. package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
  208. package/dist/graph/classifiers/roles.d.ts.map +1 -1
  209. package/dist/graph/classifiers/roles.js +63 -59
  210. package/dist/graph/classifiers/roles.js.map +1 -1
  211. package/dist/infrastructure/config.d.ts +1 -1
  212. package/dist/infrastructure/config.d.ts.map +1 -1
  213. package/dist/infrastructure/config.js +1 -1
  214. package/dist/infrastructure/config.js.map +1 -1
  215. package/dist/mcp/tool-registry.d.ts.map +1 -1
  216. package/dist/mcp/tool-registry.js +4 -0
  217. package/dist/mcp/tool-registry.js.map +1 -1
  218. package/dist/mcp/tools/semantic-search.d.ts +1 -0
  219. package/dist/mcp/tools/semantic-search.d.ts.map +1 -1
  220. package/dist/mcp/tools/semantic-search.js +1 -0
  221. package/dist/mcp/tools/semantic-search.js.map +1 -1
  222. package/dist/presentation/cfg.d.ts.map +1 -1
  223. package/dist/presentation/cfg.js +44 -29
  224. package/dist/presentation/cfg.js.map +1 -1
  225. package/dist/presentation/flow.d.ts.map +1 -1
  226. package/dist/presentation/flow.js +58 -38
  227. package/dist/presentation/flow.js.map +1 -1
  228. package/dist/types.d.ts +16 -2
  229. package/dist/types.d.ts.map +1 -1
  230. package/grammars/tree-sitter-erlang.wasm +0 -0
  231. package/grammars/tree-sitter-fsharp.wasm +0 -0
  232. package/grammars/tree-sitter-fsharp_signature.wasm +0 -0
  233. package/grammars/tree-sitter-gleam.wasm +0 -0
  234. package/package.json +10 -10
  235. package/src/ast-analysis/engine.ts +145 -61
  236. package/src/ast-analysis/rules/index.ts +87 -0
  237. package/src/ast-analysis/visitor-utils.ts +86 -46
  238. package/src/ast-analysis/visitors/ast-store-visitor.ts +104 -69
  239. package/src/ast-analysis/visitors/dataflow-visitor.ts +86 -47
  240. package/src/cli/commands/audit.ts +1 -1
  241. package/src/cli/commands/build.ts +2 -0
  242. package/src/cli/commands/check.ts +1 -1
  243. package/src/cli/commands/children.ts +1 -1
  244. package/src/cli/commands/diff-impact.ts +1 -1
  245. package/src/cli/commands/embed.ts +54 -4
  246. package/src/cli/commands/roles.ts +1 -1
  247. package/src/cli/commands/structure.ts +1 -1
  248. package/src/cli/shared/options.ts +1 -1
  249. package/src/db/connection.ts +8 -0
  250. package/src/domain/analysis/dependencies.ts +166 -85
  251. package/src/domain/analysis/fn-impact.ts +120 -50
  252. package/src/domain/analysis/module-map.ts +175 -140
  253. package/src/domain/graph/builder/helpers.ts +85 -76
  254. package/src/domain/graph/builder/incremental.ts +223 -131
  255. package/src/domain/graph/builder/pipeline.ts +32 -785
  256. package/src/domain/graph/builder/stages/build-edges.ts +207 -142
  257. package/src/domain/graph/builder/stages/build-structure.ts +115 -82
  258. package/src/domain/graph/builder/stages/detect-changes.ts +107 -64
  259. package/src/domain/graph/builder/stages/finalize.ts +72 -70
  260. package/src/domain/graph/builder/stages/insert-nodes.ts +154 -120
  261. package/src/domain/graph/builder/stages/native-db-lifecycle.ts +74 -0
  262. package/src/domain/graph/builder/stages/native-orchestrator.ts +942 -0
  263. package/src/domain/graph/builder/stages/resolve-imports.ts +79 -25
  264. package/src/domain/graph/cycles.ts +51 -49
  265. package/src/domain/graph/journal.ts +84 -69
  266. package/src/domain/graph/watcher.ts +29 -25
  267. package/src/domain/parser.ts +170 -67
  268. package/src/domain/search/generator.ts +132 -74
  269. package/src/domain/search/models.ts +75 -4
  270. package/src/domain/search/search/hybrid.ts +53 -42
  271. package/src/domain/search/search/semantic.ts +105 -65
  272. package/src/domain/wasm-worker-entry.ts +243 -153
  273. package/src/extractors/c.ts +27 -8
  274. package/src/extractors/cpp.ts +50 -8
  275. package/src/extractors/cuda.ts +90 -16
  276. package/src/extractors/elixir.ts +103 -4
  277. package/src/extractors/erlang.ts +63 -20
  278. package/src/extractors/fsharp.ts +104 -0
  279. package/src/extractors/gleam.ts +40 -39
  280. package/src/extractors/groovy.ts +45 -1
  281. package/src/extractors/haskell.ts +45 -4
  282. package/src/extractors/helpers.ts +205 -1
  283. package/src/extractors/java.ts +42 -45
  284. package/src/extractors/javascript.ts +44 -43
  285. package/src/extractors/julia.ts +191 -77
  286. package/src/extractors/kotlin.ts +4 -0
  287. package/src/extractors/objc.ts +171 -47
  288. package/src/extractors/python.ts +5 -3
  289. package/src/extractors/r.ts +104 -82
  290. package/src/extractors/scala.ts +24 -36
  291. package/src/extractors/solidity.ts +59 -78
  292. package/src/extractors/verilog.ts +83 -15
  293. package/src/features/boundaries.ts +64 -46
  294. package/src/features/cfg.ts +145 -74
  295. package/src/features/check.ts +60 -43
  296. package/src/features/cochange.ts +95 -72
  297. package/src/features/complexity.ts +134 -79
  298. package/src/features/dataflow.ts +57 -34
  299. package/src/features/flow.ts +48 -24
  300. package/src/features/graph-enrichment.ts +105 -70
  301. package/src/features/owners.ts +186 -146
  302. package/src/features/sequence.ts +99 -69
  303. package/src/features/structure-query.ts +94 -79
  304. package/src/features/structure.ts +56 -56
  305. package/src/graph/algorithms/leiden/optimiser.ts +142 -87
  306. package/src/graph/classifiers/roles.ts +64 -54
  307. package/src/infrastructure/config.ts +1 -1
  308. package/src/mcp/tool-registry.ts +5 -0
  309. package/src/mcp/tools/semantic-search.ts +2 -0
  310. package/src/presentation/cfg.ts +48 -32
  311. package/src/presentation/flow.ts +100 -52
  312. package/src/types.ts +16 -1
package/README.md CHANGED
@@ -76,24 +76,25 @@ No config files, no Docker, no JVM, no API keys, no accounts. Point your agent a
76
76
 
77
77
  ### Feature comparison
78
78
 
79
- <sub>Comparison last verified: March 2026. Claims verified against each repo's README/docs. Full analysis: <a href="generated/competitive/COMPETITIVE_ANALYSIS.md">COMPETITIVE_ANALYSIS.md</a></sub>
79
+ <sub>Comparison last verified: May 2026. Claims verified against each repo's README/docs. Full analysis: <a href="generated/competitive/COMPETITIVE_ANALYSIS.md">COMPETITIVE_ANALYSIS.md</a></sub>
80
80
 
81
- | Capability | codegraph | [joern](https://github.com/joernio/joern) | [narsil-mcp](https://github.com/postrv/narsil-mcp) | [cpg](https://github.com/Fraunhofer-AISEC/cpg) | [axon](https://github.com/harshkedia177/axon) | [GitNexus](https://github.com/abhigyanpatwari/GitNexus) |
81
+ | Capability | codegraph (this repo) | [code-review-graph](https://github.com/tirth8205/code-review-graph) | [narsil-mcp](https://github.com/postrv/narsil-mcp) | [codegraph (other)¹](https://github.com/colbymchenry/codegraph) | [axon](https://github.com/harshkedia177/axon) | [GitNexus](https://github.com/abhigyanpatwari/GitNexus) |
82
82
  |---|:---:|:---:|:---:|:---:|:---:|:---:|
83
- | Languages | **34** | ~12 | **32** | ~10 | 3 | 13 |
84
- | MCP server | **Yes** | | **Yes** | **Yes** | **Yes** | **Yes** |
85
- | Dataflow + CFG + AST querying | **Yes** | **Yes** | **Yes**¹ | **Yes** | | |
86
- | Hybrid search (BM25 + semantic) | **Yes** | | | — | **Yes** | **Yes** |
87
- | Git-aware (diff impact, co-change, branch diff) | **All 3** | | — | | **All 3** | |
88
- | Dead code / role classification | **Yes** | | **Yes** | — | **Yes** | — |
89
- | Incremental rebuilds | **O(changed)** | | O(n) | — | **Yes** | Commit-level⁴ |
83
+ | GitHub stars | ![](https://img.shields.io/github/stars/optave/ops-codegraph-tool?style=flat-square&label=%E2%AD%90) | ![](https://img.shields.io/github/stars/tirth8205/code-review-graph?style=flat-square&label=%E2%AD%90) | ![](https://img.shields.io/github/stars/postrv/narsil-mcp?style=flat-square&label=%E2%AD%90) | ![](https://img.shields.io/github/stars/colbymchenry/codegraph?style=flat-square&label=%E2%AD%90) | ![](https://img.shields.io/github/stars/harshkedia177/axon?style=flat-square&label=%E2%AD%90) | ![](https://img.shields.io/github/stars/abhigyanpatwari/GitNexus?style=flat-square&label=%E2%AD%90) |
84
+ | Languages | **34** | ~30 | **32** | ~20 | 3 | 13 |
85
+ | MCP server | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
86
+ | Dataflow + CFG + AST querying | **Yes** | AST only | **Yes**² | — | | |
87
+ | Hybrid search (BM25 + semantic) | **Yes** | **Yes** | — | Keyword only | **Yes** | **Yes** |
88
+ | Git-aware (diff impact, co-change, branch diff) | **All 3** | Diff only | | — | **All 3** | — |
89
+ | Dead code / role classification | **Yes** | **Yes** | **Yes** | — | **Yes** | |
90
+ | Incremental rebuilds | **O(changed)** | **O(changed)** | O(n) | O(n)³ | **Yes**⁴ | O(n)⁵ |
90
91
  | Architecture rules + CI gate | **Yes** | — | — | — | — | — |
91
- | Security scanning (SAST / vuln detection) | Intentionally out of scope² | **Yes** | **Yes** | **Yes** | — | — |
92
- | Zero config, `npm install` | **Yes** | — | **Yes** | | **Yes** | **Yes** |
93
- | Graph export (GraphML / Neo4j / DOT) | **Yes** | **Yes** | — | — | — | — |
94
- | Open source + commercial use | **Yes** (Apache-2.0) | **Yes** (Apache-2.0) | **Yes** (MIT/Apache-2.0) | **Yes** (Apache-2.0) | Source-available³ | Non-commercial |
92
+ | Security scanning (SAST / vuln detection) | Intentionally out of scope | | **Yes** | | — | — |
93
+ | Zero config, `npm install` | **Yes** | — (pip) | **Yes** | **Yes** | **Yes** | **Yes** |
94
+ | Graph export (GraphML / Neo4j / DOT) | **Yes** | | — | — | — | — |
95
+ | Open source + commercial use | **Yes** (Apache-2.0) | **Yes** (MIT) | **Yes** (MIT/Apache-2.0) | **Yes** (MIT) | Source-available | Non-commercial |
95
96
 
96
- <sup>¹ narsil-mcp added CFG and dataflow in recent versions. ² Codegraph focuses on structural understanding, not vulnerability detectionuse dedicated SAST tools (Semgrep, CodeQL, Snyk) for that. ³ axon claims MIT in pyproject.toml but has no LICENSE file in the repo. GitNexus skips re-index if the git commit hasn't changed, but re-processes the entire repo when it does — no per-file incremental parsing. GitNexus uses the PolyForm Noncommercial 1.0.0 license.</sup>
97
+ <sup>¹ colbymchenry/codegraph is an unrelated tool that shares the name. It focuses on reducing AI agent token consumption by pre-indexing code structure for fast context retrieval — not on structural analysis, CI gates, or complexity metrics. ² narsil-mcp added CFG and dataflow in recent versions. ³ colbymchenry/codegraph uses OS file watchers (chokidar) for auto-syncrebuild triggers on file change but re-parses from scratch per file, not O(changed) hashing. axon caches file-level parse results; the rebuild strategy is consistent with file-level incremental behaviour but has not been independently benchmarked for O(changed) complexity. GitNexus skips re-index if the git commit hasn't changed, but re-processes the entire repo when it does — no per-file incremental parsing. Codegraph focuses on structural understanding, not vulnerability detection — use dedicated SAST tools (Semgrep, CodeQL, Snyk) for that. ⁷ axon claims MIT in pyproject.toml but has no LICENSE file in the repo. ⁸ GitNexus uses the PolyForm Noncommercial 1.0.0 license.</sup>
97
98
 
98
99
  ### What makes codegraph different
99
100
 
@@ -398,8 +399,8 @@ codegraph cycles --functions # Function-level cycles
398
399
  Local embeddings for every function, method, and class — search by natural language. Everything runs locally using [@huggingface/transformers](https://huggingface.co/docs/transformers.js) — no API keys needed.
399
400
 
400
401
  ```bash
401
- codegraph embed # Build embeddings (default: nomic-v1.5)
402
- codegraph embed --model nomic # Use a different model
402
+ codegraph embed # Build embeddings (default: nomic)
403
+ codegraph embed --model nomic-v1.5 # Use a different model
403
404
  codegraph search "handle authentication"
404
405
  codegraph search "parse config" --min-score 0.4 -n 10
405
406
  codegraph search "parseConfig" --mode keyword # BM25 keyword-only (exact names)
@@ -423,15 +424,21 @@ A single trailing semicolon is ignored (falls back to single-query mode). The `-
423
424
 
424
425
  #### Available Models
425
426
 
427
+ Per-model retrieval quality (Hit@N) and timing are measured on every release — see [EMBEDDING-BENCHMARKS.md](generated/benchmarks/EMBEDDING-BENCHMARKS.md).
428
+
426
429
  | Flag | Model | Dimensions | Size | License | Notes |
427
430
  |---|---|---|---|---|---|
428
431
  | `minilm` | all-MiniLM-L6-v2 | 384 | ~23 MB | Apache-2.0 | Fastest, good for quick iteration |
429
432
  | `jina-small` | jina-embeddings-v2-small-en | 512 | ~33 MB | Apache-2.0 | Better quality, still small |
430
433
  | `jina-base` | jina-embeddings-v2-base-en | 768 | ~137 MB | Apache-2.0 | High quality, 8192 token context |
431
434
  | `jina-code` | jina-embeddings-v2-base-code | 768 | ~137 MB | Apache-2.0 | Best for code search, trained on code+text |
432
- | `nomic` | nomic-embed-text-v1 | 768 | ~137 MB | Apache-2.0 | Good quality, 8192 context |
433
- | `nomic-v1.5` (default) | nomic-embed-text-v1.5 | 768 | ~137 MB | Apache-2.0 | **Improved nomic, Matryoshka dimensions** |
435
+ | `nomic` (default) | nomic-embed-text-v1 | 768 | ~137 MB | Apache-2.0 | Good quality, 8192 context |
436
+ | `nomic-v1.5` | nomic-embed-text-v1.5 | 768 | ~137 MB | Apache-2.0 | Matryoshka MRL training (unused — codegraph stores full 768d); v1 scores higher on our benchmark |
434
437
  | `bge-large` | bge-large-en-v1.5 | 1024 | ~335 MB | MIT | Best general retrieval, top MTEB scores |
438
+ | `mxbai-xsmall` | mxbai-embed-xsmall-v1 | 384 | ~50 MB | Apache-2.0 | Tiny + long context (4096) |
439
+ | `mxbai-large` | mxbai-embed-large-v1 | 1024 | ~400 MB | Apache-2.0 | Top MTEB BERT-large |
440
+ | `bge-m3` | bge-m3 | 1024 | ~600 MB | MIT | **Multilingual** (100+ languages), 8192 context |
441
+ | `modernbert` | modernbert-embed-base | 768 | ~150 MB | Apache-2.0 | ModernBERT architecture, 8192 ctx, English |
435
442
 
436
443
  The model used during `embed` is stored in the database, so `search` auto-detects it — no need to pass `--model` when searching.
437
444
 
@@ -617,19 +624,19 @@ Codegraph also extracts symbols from common callback patterns: Commander `.comma
617
624
 
618
625
  Self-measured on every release via CI ([build benchmarks](generated/benchmarks/BUILD-BENCHMARKS.md) | [embedding benchmarks](generated/benchmarks/EMBEDDING-BENCHMARKS.md) | [query benchmarks](generated/benchmarks/QUERY-BENCHMARKS.md) | [incremental benchmarks](generated/benchmarks/INCREMENTAL-BENCHMARKS.md) | [resolution precision/recall](tests/benchmarks/resolution/)):
619
626
 
620
- *Last updated: v3.9.6 (2026-04-30)*
627
+ *Last updated: v3.11.0 (2026-05-25)*
621
628
 
622
629
  | Metric | Native | WASM |
623
630
  |---|---|---|
624
- | Build speed | **5.8 ms/file** | **28.3 ms/file** |
625
- | Query time | **47ms** | **43ms** |
626
- | No-op rebuild | **13ms** | **134ms** |
627
- | 1-file rebuild | **78ms** | **68ms** |
628
- | Query: fn-deps | **3.4ms** | **2.4ms** |
629
- | Query: path | **3.1ms** | **2.2ms** |
630
- | ~50,000 files (est.) | **~290.0s build** | **~1415.0s build** |
631
- | Resolution precision | **90.5%** | — |
632
- | Resolution recall | **42.0%** | — |
631
+ | Build speed | **3.2 ms/file** | **15.4 ms/file** |
632
+ | Query time | **27ms** | **33ms** |
633
+ | No-op rebuild | **19ms** | **18ms** |
634
+ | 1-file rebuild | **70ms** | **53ms** |
635
+ | Query: fn-deps | **2.1ms** | **1.8ms** |
636
+ | Query: path | **2ms** | **1.8ms** |
637
+ | ~50,000 files (est.) | **~160.0s build** | **~770.0s build** |
638
+ | Resolution precision | **89.9%** | — |
639
+ | Resolution recall | **42.3%** | — |
633
640
 
634
641
  Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
635
642
 
@@ -646,13 +653,13 @@ Metrics are normalized per file for cross-version comparability. Times above are
646
653
  | csharp | 100.0% | 52.6% | 10 | 0 | 9 | 19 | — |
647
654
  | cuda | 50.0% | 33.3% | 4 | 4 | 8 | 12 | — |
648
655
  | dart | 0.0% | 0.0% | 0 | 0 | 18 | 18 | — |
649
- | elixir | 0.0% | 0.0% | 0 | 0 | 15 | 15 | — |
656
+ | elixir | 0.0% | 0.0% | 0 | 0 | 21 | 21 | — |
650
657
  | erlang | 100.0% | 100.0% | 12 | 0 | 0 | 12 | — |
651
- | fsharp | 0.0% | 0.0% | 0 | 9 | 12 | 12 | — |
658
+ | fsharp | 0.0% | 0.0% | 0 | 11 | 12 | 12 | — |
652
659
  | gleam | 100.0% | 26.7% | 4 | 0 | 11 | 15 | — |
653
660
  | go | 100.0% | 69.2% | 9 | 0 | 4 | 13 | 13/14 |
654
661
  | groovy | 100.0% | 7.7% | 1 | 0 | 12 | 13 | — |
655
- | haskell | 0.0% | 0.0% | 0 | 0 | 12 | 12 | — |
662
+ | haskell | 100.0% | 33.3% | 4 | 0 | 8 | 12 | — |
656
663
  | hcl | 0.0% | 0.0% | 0 | 0 | 2 | 2 | — |
657
664
  | java | 100.0% | 52.9% | 9 | 0 | 8 | 17 | — |
658
665
  | julia | 0.0% | 0.0% | 0 | 0 | 15 | 15 | — |
@@ -676,10 +683,10 @@ Metrics are normalized per file for cross-version comparability. Times above are
676
683
 
677
684
  | Mode | Resolved | Expected | Recall |
678
685
  |------|--------:|---------:|-------:|
679
- | module-function | 13 | 106 | 12.3% |
686
+ | module-function | 16 | 112 | 14.3% |
680
687
  | receiver-typed | 17 | 104 | 16.3% |
681
688
  | static | 66 | 93 | 71.0% |
682
- | same-file | 47 | 86 | 54.7% |
689
+ | same-file | 48 | 86 | 55.8% |
683
690
  | interface-dispatched | 7 | 12 | 58.3% |
684
691
  | class-inheritance | 0 | 4 | 0.0% |
685
692
  | trait-dispatch | 0 | 2 | 0.0% |
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/ast-analysis/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,qBAAqB,EAKrB,UAAU,EACV,eAAe,EAQhB,MAAM,aAAa,CAAC;AAysBrB,wBAAsB,WAAW,CAC/B,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,cAAc,CAAC,CAoGzB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/ast-analysis/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,qBAAqB,EAKrB,UAAU,EACV,eAAe,EAQhB,MAAM,aAAa,CAAC;AAq1BrB,wBAAsB,WAAW,CAC/B,EAAE,EAAE,qBAAqB,EACzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,cAAc,CAAC,CA4CzB"}
@@ -537,6 +537,92 @@ function allNativeDataComplete(fileSymbols, opts) {
537
537
  return fileSymbols.size > 0;
538
538
  }
539
539
  // ─── Public API ──────────────────────────────────────────────────────────
540
+ /** Distribute the per-file walk time equally among the visitors that ran. */
541
+ function accumulateWalkTime(timing, walkMs, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor) {
542
+ const activeCount = [astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor].filter(Boolean).length;
543
+ if (activeCount === 0)
544
+ return;
545
+ const share = walkMs / activeCount;
546
+ if (astVisitor)
547
+ timing.astMs += share;
548
+ if (complexityVisitor)
549
+ timing.complexityMs += share;
550
+ if (cfgVisitor)
551
+ timing.cfgMs += share;
552
+ if (dataflowVisitor)
553
+ timing.dataflowMs += share;
554
+ }
555
+ /** Apply visitor walk results to the per-file symbols/definitions. */
556
+ function applyVisitorResults(results, symbols, langId, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor) {
557
+ const defs = symbols.definitions || [];
558
+ if (astVisitor) {
559
+ const astRows = (results['ast-store'] || []);
560
+ if (astRows.length > 0)
561
+ symbols.astNodes = astRows;
562
+ }
563
+ if (complexityVisitor)
564
+ storeComplexityResults(results, defs, langId);
565
+ if (cfgVisitor)
566
+ storeCfgResults(results, defs);
567
+ if (dataflowVisitor)
568
+ symbols.dataflow = results.dataflow;
569
+ }
570
+ /** Process a single file: set up visitors, walk the tree, and apply results. */
571
+ function processFileWalk(db, relPath, symbols, langId, opts, timing) {
572
+ if (!symbols._tree)
573
+ return;
574
+ const { visitors, walkerOpts, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor } = setupVisitors(db, relPath, symbols, langId, opts);
575
+ if (visitors.length === 0)
576
+ return;
577
+ const walkStart = performance.now();
578
+ const results = walkWithVisitors(symbols._tree.rootNode, visitors, langId, walkerOpts);
579
+ const walkMs = performance.now() - walkStart;
580
+ accumulateWalkTime(timing, walkMs, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor);
581
+ applyVisitorResults(results, symbols, langId, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor);
582
+ }
583
+ /**
584
+ * Unified pre-walk: run all applicable visitors in a single DFS per file.
585
+ * Returns the total wall-clock time for diagnostics.
586
+ */
587
+ function runUnifiedWalkPass(db, fileSymbols, extToLang, opts, timing) {
588
+ const t0walk = performance.now();
589
+ for (const [relPath, symbols] of fileSymbols) {
590
+ if (!symbols._tree)
591
+ continue;
592
+ const ext = path.extname(relPath).toLowerCase();
593
+ const langId = symbols._langId || extToLang.get(ext);
594
+ if (!langId)
595
+ continue;
596
+ processFileWalk(db, relPath, symbols, langId, opts, timing);
597
+ }
598
+ return performance.now() - t0walk;
599
+ }
600
+ /** Try native Rust standalone analysis to fill gaps before WASM fallback. */
601
+ function tryNativeStandaloneAnalysis(fileSymbols, rootDir, opts, extToLang) {
602
+ const native = loadNative();
603
+ if (!native?.analyzeComplexity && !native?.buildCfgAnalysis && !native?.extractDataflowAnalysis) {
604
+ return;
605
+ }
606
+ const t0native = performance.now();
607
+ runNativeAnalysis(native, fileSymbols, rootDir, opts, extToLang);
608
+ debug(`native standalone analysis: ${(performance.now() - t0native).toFixed(1)}ms`);
609
+ }
610
+ /**
611
+ * Fast path: when all files were parsed by the native engine with full analysis,
612
+ * skip WASM re-parse and JS visitor walks entirely and go straight to DB persistence.
613
+ * Returns true if the fast path handled the work.
614
+ */
615
+ async function runFastPathIfApplicable(db, fileSymbols, rootDir, opts, engineOpts, timing) {
616
+ if (!allNativeDataComplete(fileSymbols, opts))
617
+ return false;
618
+ debug('native full-analysis fast path: all data present, skipping WASM/visitor passes');
619
+ const doComplexity = opts.complexity !== false;
620
+ const doCfg = opts.cfg !== false;
621
+ if (doComplexity && doCfg)
622
+ reconcileCfgCyclomatic(fileSymbols);
623
+ await delegateToBuildFunctions(db, fileSymbols, rootDir, opts, engineOpts, timing);
624
+ return true;
625
+ }
540
626
  export async function runAnalyses(db, fileSymbols, rootDir, opts, engineOpts) {
541
627
  const timing = { astMs: 0, complexityMs: 0, cfgMs: 0, dataflowMs: 0 };
542
628
  const doAst = opts.ast !== false;
@@ -546,76 +632,21 @@ export async function runAnalyses(db, fileSymbols, rootDir, opts, engineOpts) {
546
632
  if (!doAst && !doComplexity && !doCfg && !doDataflow)
547
633
  return timing;
548
634
  const extToLang = buildExtToLangMap();
549
- // Fast path: when all files were parsed by the native engine with full analysis
550
- // (parseFilesFull), all data is already present — skip WASM re-parse and JS
551
- // visitor walks entirely, go straight to DB persistence.
552
- if (allNativeDataComplete(fileSymbols, opts)) {
553
- debug('native full-analysis fast path: all data present, skipping WASM/visitor passes');
554
- if (doComplexity && doCfg)
555
- reconcileCfgCyclomatic(fileSymbols);
556
- await delegateToBuildFunctions(db, fileSymbols, rootDir, opts, engineOpts, timing);
635
+ if (await runFastPathIfApplicable(db, fileSymbols, rootDir, opts, engineOpts, timing)) {
557
636
  return timing;
558
637
  }
559
638
  // Native analysis pass: try Rust standalone functions before WASM fallback.
560
639
  // This fills in complexity/CFG/dataflow for files that the native parse pipeline
561
640
  // missed, avoiding the need to parse with WASM + run JS visitors.
562
- const native = loadNative();
563
- if (native?.analyzeComplexity || native?.buildCfgAnalysis || native?.extractDataflowAnalysis) {
564
- const t0native = performance.now();
565
- runNativeAnalysis(native, fileSymbols, rootDir, opts, extToLang);
566
- debug(`native standalone analysis: ${(performance.now() - t0native).toFixed(1)}ms`);
567
- }
641
+ tryNativeStandaloneAnalysis(fileSymbols, rootDir, opts, extToLang);
568
642
  // WASM pre-parse for files that still need it (AST store, or native gaps)
569
643
  await ensureWasmTreesIfNeeded(fileSymbols, opts, rootDir);
570
- // Unified pre-walk: run all applicable visitors in a single DFS per file.
571
644
  // Time each file's walk and distribute equally among active visitors
572
645
  // so that phase timers (astMs, complexityMs, etc.) reflect real work — not
573
646
  // just the DB-write tail in delegateToBuildFunctions.
574
- const t0walk = performance.now();
575
- for (const [relPath, symbols] of fileSymbols) {
576
- if (!symbols._tree)
577
- continue;
578
- const ext = path.extname(relPath).toLowerCase();
579
- const langId = symbols._langId || extToLang.get(ext);
580
- if (!langId)
581
- continue;
582
- const { visitors, walkerOpts, astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor } = setupVisitors(db, relPath, symbols, langId, opts);
583
- if (visitors.length === 0)
584
- continue;
585
- const walkStart = performance.now();
586
- const results = walkWithVisitors(symbols._tree.rootNode, visitors, langId, walkerOpts);
587
- const walkMs = performance.now() - walkStart;
588
- // Distribute walk time equally among active visitors
589
- const activeCount = [astVisitor, complexityVisitor, cfgVisitor, dataflowVisitor].filter(Boolean).length;
590
- if (activeCount > 0) {
591
- const share = walkMs / activeCount;
592
- if (astVisitor)
593
- timing.astMs += share;
594
- if (complexityVisitor)
595
- timing.complexityMs += share;
596
- if (cfgVisitor)
597
- timing.cfgMs += share;
598
- if (dataflowVisitor)
599
- timing.dataflowMs += share;
600
- }
601
- const defs = symbols.definitions || [];
602
- if (astVisitor) {
603
- const astRows = (results['ast-store'] || []);
604
- if (astRows.length > 0)
605
- symbols.astNodes = astRows;
606
- }
607
- if (complexityVisitor)
608
- storeComplexityResults(results, defs, langId);
609
- if (cfgVisitor)
610
- storeCfgResults(results, defs);
611
- if (dataflowVisitor)
612
- symbols.dataflow = results.dataflow;
613
- }
614
- // Total wall-clock time for the unified walk loop, including per-file
615
- // setupVisitors overhead. Walk time is already distributed into per-phase
616
- // timers above, so this field overlaps with (astMs + complexityMs + ...).
617
- // It is kept as a diagnostic cross-check, not an additive bucket.
618
- timing._unifiedWalkMs = performance.now() - t0walk;
647
+ // _unifiedWalkMs is kept as a diagnostic cross-check (overlaps with the
648
+ // per-phase timers above, not additive).
649
+ timing._unifiedWalkMs = runUnifiedWalkPass(db, fileSymbols, extToLang, opts, timing);
619
650
  // Reconcile: apply CFG-derived cyclomatic override for any definitions that have
620
651
  // both precomputed complexity and CFG data but whose cyclomatic was never overridden.
621
652
  // This closes a parity gap where native extractors provide both fields inline but
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/ast-analysis/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/ast-analysis/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAYxB,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAWxD,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAWpD,CAAC;AAIH,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAWhD,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAW1D,CAAC;AAkFH,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwB5D,CAAC;AASH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAuBD,eAAO,MAAM,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAwB1D,CAAC;AAeH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAKvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAYxB,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAWxD,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAWpD,CAAC;AAIH,eAAO,MAAM,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAWhD,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAW1D,CAAC;AAwIH,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmC5D,CAAC;AASH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAkCD,eAAO,MAAM,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAmC1D,CAAC;AAeH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAKvE"}
@@ -82,6 +82,10 @@ const CPP_AST_TYPES = {
82
82
  string_literal: 'string',
83
83
  raw_string_literal: 'string',
84
84
  };
85
+ // CUDA's tree-sitter grammar inherits the full C++ node vocabulary, so the
86
+ // AST node types and quote rules are identical to C++. Mirrors the native
87
+ // `CUDA_AST_CONFIG` in `crates/codegraph-core/src/extractors/helpers.rs`.
88
+ const CUDA_AST_TYPES = CPP_AST_TYPES;
85
89
  const KOTLIN_AST_TYPES = {
86
90
  throw_expression: 'throw',
87
91
  string_literal: 'string',
@@ -124,6 +128,46 @@ const HASKELL_AST_TYPES = {
124
128
  const OCAML_AST_TYPES = {
125
129
  string: 'string',
126
130
  };
131
+ const FSHARP_AST_TYPES = {
132
+ string: 'string',
133
+ };
134
+ const OBJC_AST_TYPES = {
135
+ throw_statement: 'throw',
136
+ string_literal: 'string',
137
+ };
138
+ const GLEAM_AST_TYPES = {
139
+ string: 'string',
140
+ };
141
+ const JULIA_AST_TYPES = {
142
+ string_literal: 'string',
143
+ prefixed_string_literal: 'string',
144
+ };
145
+ const CLOJURE_AST_TYPES = {
146
+ str_lit: 'string',
147
+ regex_lit: 'regex',
148
+ };
149
+ const ERLANG_AST_TYPES = {
150
+ string: 'string',
151
+ };
152
+ const GROOVY_AST_TYPES = {
153
+ object_creation_expression: 'new',
154
+ throw_statement: 'throw',
155
+ string_literal: 'string',
156
+ // `gstring` listed defensively: tree-sitter-groovy 0.1.x emits `string_literal`
157
+ // for both single- and double-quoted strings, but some grammar variants use
158
+ // `gstring` for double-quoted / interpolated strings.
159
+ gstring: 'string',
160
+ };
161
+ const R_AST_TYPES = {
162
+ string: 'string',
163
+ };
164
+ const SOLIDITY_AST_TYPES = {
165
+ new_expression: 'new',
166
+ revert_statement: 'throw',
167
+ string_literal: 'string',
168
+ hex_string_literal: 'string',
169
+ unicode_string_literal: 'string',
170
+ };
127
171
  export const AST_TYPE_MAPS = new Map([
128
172
  ['javascript', JS_AST_TYPES],
129
173
  ['typescript', JS_AST_TYPES],
@@ -137,6 +181,7 @@ export const AST_TYPE_MAPS = new Map([
137
181
  ['php', PHP_AST_TYPES],
138
182
  ['c', C_AST_TYPES],
139
183
  ['cpp', CPP_AST_TYPES],
184
+ ['cuda', CUDA_AST_TYPES],
140
185
  ['kotlin', KOTLIN_AST_TYPES],
141
186
  ['swift', SWIFT_AST_TYPES],
142
187
  ['scala', SCALA_AST_TYPES],
@@ -148,6 +193,16 @@ export const AST_TYPE_MAPS = new Map([
148
193
  ['haskell', HASKELL_AST_TYPES],
149
194
  ['ocaml', OCAML_AST_TYPES],
150
195
  ['ocaml-interface', OCAML_AST_TYPES],
196
+ ['fsharp', FSHARP_AST_TYPES],
197
+ ['fsharp-signature', FSHARP_AST_TYPES],
198
+ ['objc', OBJC_AST_TYPES],
199
+ ['gleam', GLEAM_AST_TYPES],
200
+ ['julia', JULIA_AST_TYPES],
201
+ ['clojure', CLOJURE_AST_TYPES],
202
+ ['erlang', ERLANG_AST_TYPES],
203
+ ['groovy', GROOVY_AST_TYPES],
204
+ ['r', R_AST_TYPES],
205
+ ['solidity', SOLIDITY_AST_TYPES],
151
206
  ]);
152
207
  const JS_STRING_CONFIG = { quoteChars: '\'"`', stringPrefixes: '' };
153
208
  const PY_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: 'rbfuRBFU' };
@@ -159,6 +214,8 @@ const RB_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: '' };
159
214
  const PHP_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: '' };
160
215
  const C_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
161
216
  const CPP_STRING_CONFIG = { quoteChars: '"', stringPrefixes: 'LuUR' };
217
+ // CUDA shares C++ string-literal lexing, including the `L`/`u`/`U`/`R` prefixes.
218
+ const CUDA_STRING_CONFIG = CPP_STRING_CONFIG;
162
219
  const KOTLIN_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
163
220
  const SWIFT_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
164
221
  const SCALA_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
@@ -169,6 +226,15 @@ const DART_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: '' };
169
226
  const ZIG_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
170
227
  const HASKELL_STRING_CONFIG = { quoteChars: '"\'', stringPrefixes: '' };
171
228
  const OCAML_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
229
+ const FSHARP_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
230
+ const OBJC_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
231
+ const GLEAM_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
232
+ const JULIA_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
233
+ const CLOJURE_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
234
+ const ERLANG_STRING_CONFIG = { quoteChars: '"', stringPrefixes: '' };
235
+ const GROOVY_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: '' };
236
+ const R_STRING_CONFIG = { quoteChars: '\'"', stringPrefixes: '' };
237
+ const SOLIDITY_STRING_CONFIG = { quoteChars: '"\'', stringPrefixes: '' };
172
238
  export const AST_STRING_CONFIGS = new Map([
173
239
  ['javascript', JS_STRING_CONFIG],
174
240
  ['typescript', JS_STRING_CONFIG],
@@ -182,6 +248,7 @@ export const AST_STRING_CONFIGS = new Map([
182
248
  ['php', PHP_STRING_CONFIG],
183
249
  ['c', C_STRING_CONFIG],
184
250
  ['cpp', CPP_STRING_CONFIG],
251
+ ['cuda', CUDA_STRING_CONFIG],
185
252
  ['kotlin', KOTLIN_STRING_CONFIG],
186
253
  ['swift', SWIFT_STRING_CONFIG],
187
254
  ['scala', SCALA_STRING_CONFIG],
@@ -193,6 +260,16 @@ export const AST_STRING_CONFIGS = new Map([
193
260
  ['haskell', HASKELL_STRING_CONFIG],
194
261
  ['ocaml', OCAML_STRING_CONFIG],
195
262
  ['ocaml-interface', OCAML_STRING_CONFIG],
263
+ ['fsharp', FSHARP_STRING_CONFIG],
264
+ ['fsharp-signature', FSHARP_STRING_CONFIG],
265
+ ['objc', OBJC_STRING_CONFIG],
266
+ ['gleam', GLEAM_STRING_CONFIG],
267
+ ['julia', JULIA_STRING_CONFIG],
268
+ ['clojure', CLOJURE_STRING_CONFIG],
269
+ ['erlang', ERLANG_STRING_CONFIG],
270
+ ['groovy', GROOVY_STRING_CONFIG],
271
+ ['r', R_STRING_CONFIG],
272
+ ['solidity', SOLIDITY_STRING_CONFIG],
196
273
  ]);
197
274
  // ─── Per-language "stop-after-collect" kinds ─────────────────────────────
198
275
  //
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast-analysis/rules/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast-analysis/rules/index.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,9 @@ export declare function functionName(fnNode: TreeSitterNode | null, rules: Langu
44
44
  export declare function extractParams(paramsNode: TreeSitterNode | null, rules: LanguageRules): ParamInfo[];
45
45
  /**
46
46
  * Extract parameter names from a single parameter node.
47
+ *
48
+ * Uses an iterative worklist to handle nested destructuring (objects, arrays,
49
+ * defaults, rest, wrappers) without mutual recursion through helper functions.
47
50
  */
48
51
  export declare function extractParamNames(node: TreeSitterNode | null, rules: LanguageRules): string[];
49
52
  /**