gitnexus 1.6.8-rc.5 → 1.6.8-rc.50

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 (420) hide show
  1. package/README.md +3 -3
  2. package/dist/_shared/graph/types.d.ts +15 -1
  3. package/dist/_shared/graph/types.d.ts.map +1 -1
  4. package/dist/_shared/language-detection.d.ts.map +1 -1
  5. package/dist/_shared/language-detection.js +11 -1
  6. package/dist/_shared/language-detection.js.map +1 -1
  7. package/dist/_shared/lbug/schema-constants.d.ts +1 -1
  8. package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
  9. package/dist/_shared/lbug/schema-constants.js +6 -0
  10. package/dist/_shared/lbug/schema-constants.js.map +1 -1
  11. package/dist/_shared/scope-resolution/parsed-file.d.ts +21 -0
  12. package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
  13. package/dist/_shared/scope-resolution/symbol-definition.d.ts +6 -0
  14. package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
  15. package/dist/cli/ai-context.d.ts +31 -1
  16. package/dist/cli/ai-context.js +15 -15
  17. package/dist/cli/analyze-config.js +50 -0
  18. package/dist/cli/analyze.d.ts +30 -0
  19. package/dist/cli/analyze.js +132 -6
  20. package/dist/cli/clean.d.ts +1 -0
  21. package/dist/cli/clean.js +43 -1
  22. package/dist/cli/embedding-dims.d.ts +33 -0
  23. package/dist/cli/embedding-dims.js +39 -0
  24. package/dist/cli/eval-server.js +43 -0
  25. package/dist/cli/help-i18n.js +25 -0
  26. package/dist/cli/i18n/en.d.ts +26 -1
  27. package/dist/cli/i18n/en.js +26 -1
  28. package/dist/cli/i18n/resources.d.ts +51 -1
  29. package/dist/cli/i18n/zh-CN.d.ts +25 -0
  30. package/dist/cli/i18n/zh-CN.js +26 -1
  31. package/dist/cli/index.js +96 -1
  32. package/dist/cli/list.js +12 -0
  33. package/dist/cli/mcp.d.ts +6 -1
  34. package/dist/cli/mcp.js +26 -1
  35. package/dist/cli/optional-grammars.d.ts +6 -8
  36. package/dist/cli/optional-grammars.js +8 -11
  37. package/dist/cli/setup.d.ts +3 -1
  38. package/dist/cli/setup.js +67 -17
  39. package/dist/cli/skill-gen.js +2 -1
  40. package/dist/cli/status.js +26 -5
  41. package/dist/cli/tool.d.ts +22 -1
  42. package/dist/cli/tool.js +90 -3
  43. package/dist/core/embeddings/embedder.js +4 -0
  44. package/dist/core/embeddings/hf-env.d.ts +0 -66
  45. package/dist/core/embeddings/http-client.d.ts +7 -0
  46. package/dist/core/embeddings/http-client.js +5 -3
  47. package/dist/core/embeddings/onnxruntime-common-resolver.d.ts +6 -0
  48. package/dist/core/embeddings/onnxruntime-common-resolver.js +130 -0
  49. package/dist/core/graph/import-cycles.d.ts +10 -0
  50. package/dist/core/graph/import-cycles.js +103 -0
  51. package/dist/core/group/extractors/grpc-patterns/proto.js +10 -6
  52. package/dist/core/group/extractors/http-patterns/kotlin.js +7 -7
  53. package/dist/core/group/extractors/include-extractor.js +22 -13
  54. package/dist/core/group/sync.d.ts +27 -1
  55. package/dist/core/group/sync.js +0 -0
  56. package/dist/core/incremental/subgraph-extract.js +12 -1
  57. package/dist/core/ingestion/cfg/cfg-builder.d.ts +114 -0
  58. package/dist/core/ingestion/cfg/cfg-builder.js +196 -0
  59. package/dist/core/ingestion/cfg/collect.d.ts +51 -0
  60. package/dist/core/ingestion/cfg/collect.js +77 -0
  61. package/dist/core/ingestion/cfg/control-dependence.d.ts +58 -0
  62. package/dist/core/ingestion/cfg/control-dependence.js +182 -0
  63. package/dist/core/ingestion/cfg/control-flow-context.d.ts +106 -0
  64. package/dist/core/ingestion/cfg/control-flow-context.js +124 -0
  65. package/dist/core/ingestion/cfg/emit.d.ts +228 -0
  66. package/dist/core/ingestion/cfg/emit.js +486 -0
  67. package/dist/core/ingestion/cfg/post-dominators.d.ts +79 -0
  68. package/dist/core/ingestion/cfg/post-dominators.js +176 -0
  69. package/dist/core/ingestion/cfg/reaching-defs-graph.d.ts +18 -0
  70. package/dist/core/ingestion/cfg/reaching-defs-graph.js +312 -0
  71. package/dist/core/ingestion/cfg/reaching-defs.d.ts +148 -0
  72. package/dist/core/ingestion/cfg/reaching-defs.js +757 -0
  73. package/dist/core/ingestion/cfg/synthetic-escape.d.ts +124 -0
  74. package/dist/core/ingestion/cfg/synthetic-escape.js +300 -0
  75. package/dist/core/ingestion/cfg/traversal-result.d.ts +20 -0
  76. package/dist/core/ingestion/cfg/traversal-result.js +2 -0
  77. package/dist/core/ingestion/cfg/types.d.ts +231 -0
  78. package/dist/core/ingestion/cfg/types.js +13 -0
  79. package/dist/core/ingestion/cfg/visitors/c-cpp-harvest.d.ts +111 -0
  80. package/dist/core/ingestion/cfg/visitors/c-cpp-harvest.js +539 -0
  81. package/dist/core/ingestion/cfg/visitors/c-cpp.d.ts +74 -0
  82. package/dist/core/ingestion/cfg/visitors/c-cpp.js +584 -0
  83. package/dist/core/ingestion/cfg/visitors/call-site-harvest.d.ts +152 -0
  84. package/dist/core/ingestion/cfg/visitors/call-site-harvest.js +304 -0
  85. package/dist/core/ingestion/cfg/visitors/csharp-harvest.d.ts +124 -0
  86. package/dist/core/ingestion/cfg/visitors/csharp-harvest.js +587 -0
  87. package/dist/core/ingestion/cfg/visitors/csharp.d.ts +87 -0
  88. package/dist/core/ingestion/cfg/visitors/csharp.js +867 -0
  89. package/dist/core/ingestion/cfg/visitors/dart-harvest.d.ts +168 -0
  90. package/dist/core/ingestion/cfg/visitors/dart-harvest.js +499 -0
  91. package/dist/core/ingestion/cfg/visitors/dart.d.ts +119 -0
  92. package/dist/core/ingestion/cfg/visitors/dart.js +836 -0
  93. package/dist/core/ingestion/cfg/visitors/go-harvest.d.ts +160 -0
  94. package/dist/core/ingestion/cfg/visitors/go-harvest.js +629 -0
  95. package/dist/core/ingestion/cfg/visitors/go.d.ts +108 -0
  96. package/dist/core/ingestion/cfg/visitors/go.js +638 -0
  97. package/dist/core/ingestion/cfg/visitors/java-harvest.d.ts +108 -0
  98. package/dist/core/ingestion/cfg/visitors/java-harvest.js +503 -0
  99. package/dist/core/ingestion/cfg/visitors/java.d.ts +101 -0
  100. package/dist/core/ingestion/cfg/visitors/java.js +812 -0
  101. package/dist/core/ingestion/cfg/visitors/kotlin-harvest.d.ts +170 -0
  102. package/dist/core/ingestion/cfg/visitors/kotlin-harvest.js +505 -0
  103. package/dist/core/ingestion/cfg/visitors/kotlin.d.ts +121 -0
  104. package/dist/core/ingestion/cfg/visitors/kotlin.js +809 -0
  105. package/dist/core/ingestion/cfg/visitors/php-harvest.d.ts +172 -0
  106. package/dist/core/ingestion/cfg/visitors/php-harvest.js +616 -0
  107. package/dist/core/ingestion/cfg/visitors/php.d.ts +96 -0
  108. package/dist/core/ingestion/cfg/visitors/php.js +721 -0
  109. package/dist/core/ingestion/cfg/visitors/python-harvest.d.ts +175 -0
  110. package/dist/core/ingestion/cfg/visitors/python-harvest.js +601 -0
  111. package/dist/core/ingestion/cfg/visitors/python.d.ts +103 -0
  112. package/dist/core/ingestion/cfg/visitors/python.js +558 -0
  113. package/dist/core/ingestion/cfg/visitors/ruby-harvest.d.ts +144 -0
  114. package/dist/core/ingestion/cfg/visitors/ruby-harvest.js +419 -0
  115. package/dist/core/ingestion/cfg/visitors/ruby.d.ts +112 -0
  116. package/dist/core/ingestion/cfg/visitors/ruby.js +756 -0
  117. package/dist/core/ingestion/cfg/visitors/rust-harvest.d.ts +165 -0
  118. package/dist/core/ingestion/cfg/visitors/rust-harvest.js +547 -0
  119. package/dist/core/ingestion/cfg/visitors/rust.d.ts +95 -0
  120. package/dist/core/ingestion/cfg/visitors/rust.js +558 -0
  121. package/dist/core/ingestion/cfg/visitors/scope-tree-harvest.d.ts +87 -0
  122. package/dist/core/ingestion/cfg/visitors/scope-tree-harvest.js +116 -0
  123. package/dist/core/ingestion/cfg/visitors/swift-harvest.d.ts +169 -0
  124. package/dist/core/ingestion/cfg/visitors/swift-harvest.js +505 -0
  125. package/dist/core/ingestion/cfg/visitors/swift.d.ts +116 -0
  126. package/dist/core/ingestion/cfg/visitors/swift.js +787 -0
  127. package/dist/core/ingestion/cfg/visitors/typescript-harvest.d.ts +144 -0
  128. package/dist/core/ingestion/cfg/visitors/typescript-harvest.js +1032 -0
  129. package/dist/core/ingestion/cfg/visitors/typescript.d.ts +66 -0
  130. package/dist/core/ingestion/cfg/visitors/typescript.js +583 -0
  131. package/dist/core/ingestion/import-resolvers/utils.js +2 -0
  132. package/dist/core/ingestion/language-provider.d.ts +23 -2
  133. package/dist/core/ingestion/languages/c-cpp.js +17 -5
  134. package/dist/core/ingestion/languages/cobol.js +4 -0
  135. package/dist/core/ingestion/languages/cpp/arity-metadata.js +41 -2
  136. package/dist/core/ingestion/languages/cpp/captures.js +48 -1
  137. package/dist/core/ingestion/languages/cpp/conversion-rank.d.ts +2 -0
  138. package/dist/core/ingestion/languages/cpp/conversion-rank.js +89 -0
  139. package/dist/core/ingestion/languages/cpp/header-scan.d.ts +1 -1
  140. package/dist/core/ingestion/languages/cpp/header-scan.js +2 -2
  141. package/dist/core/ingestion/languages/cpp/inline-namespaces.js +7 -2
  142. package/dist/core/ingestion/languages/cpp/member-lookup.js +2 -1
  143. package/dist/core/ingestion/languages/cpp/query.js +23 -0
  144. package/dist/core/ingestion/languages/cpp/scope-resolver.js +2 -1
  145. package/dist/core/ingestion/languages/csharp.js +2 -0
  146. package/dist/core/ingestion/languages/dart.js +2 -0
  147. package/dist/core/ingestion/languages/go.js +2 -0
  148. package/dist/core/ingestion/languages/java.js +3 -0
  149. package/dist/core/ingestion/languages/kotlin/query.js +3 -2
  150. package/dist/core/ingestion/languages/kotlin.js +8 -1
  151. package/dist/core/ingestion/languages/php.js +2 -0
  152. package/dist/core/ingestion/languages/python.js +2 -0
  153. package/dist/core/ingestion/languages/ruby.js +2 -0
  154. package/dist/core/ingestion/languages/rust.js +2 -0
  155. package/dist/core/ingestion/languages/swift.js +2 -0
  156. package/dist/core/ingestion/languages/typescript.js +5 -0
  157. package/dist/core/ingestion/languages/vue.js +6 -0
  158. package/dist/core/ingestion/method-extractors/configs/c-cpp.js +6 -13
  159. package/dist/core/ingestion/method-extractors/generic.js +1 -0
  160. package/dist/core/ingestion/method-types.d.ts +2 -0
  161. package/dist/core/ingestion/model/symbol-table.d.ts +1 -0
  162. package/dist/core/ingestion/model/symbol-table.js +1 -0
  163. package/dist/core/ingestion/mro-processor.js +109 -0
  164. package/dist/core/ingestion/parsing-processor.js +44 -0
  165. package/dist/core/ingestion/pipeline-phases/index.d.ts +1 -0
  166. package/dist/core/ingestion/pipeline-phases/index.js +1 -0
  167. package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +0 -21
  168. package/dist/core/ingestion/pipeline-phases/parse-impl.js +18 -1
  169. package/dist/core/ingestion/pipeline-phases/routes.js +64 -14
  170. package/dist/core/ingestion/pipeline-phases/taint-summaries.d.ts +30 -0
  171. package/dist/core/ingestion/pipeline-phases/taint-summaries.js +81 -0
  172. package/dist/core/ingestion/pipeline.d.ts +96 -10
  173. package/dist/core/ingestion/pipeline.js +10 -2
  174. package/dist/core/ingestion/scope-extractor.js +12 -2
  175. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +9 -0
  176. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -1
  177. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +21 -2
  178. package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +4 -0
  179. package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +9 -0
  180. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +1 -1
  181. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +149 -24
  182. package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +16 -0
  183. package/dist/core/ingestion/scope-resolution/pipeline/phase.js +270 -190
  184. package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +43 -3
  185. package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +65 -0
  186. package/dist/core/ingestion/scope-resolution/pipeline/run.js +291 -0
  187. package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +1 -1
  188. package/dist/core/ingestion/taint/emit.d.ts +124 -0
  189. package/dist/core/ingestion/taint/emit.js +204 -0
  190. package/dist/core/ingestion/taint/interproc-emit.d.ts +50 -0
  191. package/dist/core/ingestion/taint/interproc-emit.js +88 -0
  192. package/dist/core/ingestion/taint/interproc-solver.d.ts +110 -0
  193. package/dist/core/ingestion/taint/interproc-solver.js +312 -0
  194. package/dist/core/ingestion/taint/match.d.ts +153 -0
  195. package/dist/core/ingestion/taint/match.js +278 -0
  196. package/dist/core/ingestion/taint/path-codec.d.ts +134 -0
  197. package/dist/core/ingestion/taint/path-codec.js +190 -0
  198. package/dist/core/ingestion/taint/propagate.d.ts +216 -0
  199. package/dist/core/ingestion/taint/propagate.js +659 -0
  200. package/dist/core/ingestion/taint/site-safety.d.ts +29 -0
  201. package/dist/core/ingestion/taint/site-safety.js +98 -0
  202. package/dist/core/ingestion/taint/source-sink-config.d.ts +107 -23
  203. package/dist/core/ingestion/taint/source-sink-config.js +35 -12
  204. package/dist/core/ingestion/taint/source-sink-registry.d.ts +6 -4
  205. package/dist/core/ingestion/taint/source-sink-registry.js +6 -4
  206. package/dist/core/ingestion/taint/summary-harvest-driver.d.ts +56 -0
  207. package/dist/core/ingestion/taint/summary-harvest-driver.js +118 -0
  208. package/dist/core/ingestion/taint/summary-harvest.d.ts +89 -0
  209. package/dist/core/ingestion/taint/summary-harvest.js +537 -0
  210. package/dist/core/ingestion/taint/summary-model.d.ts +200 -0
  211. package/dist/core/ingestion/taint/summary-model.js +86 -0
  212. package/dist/core/ingestion/taint/typescript-model.d.ts +38 -0
  213. package/dist/core/ingestion/taint/typescript-model.js +102 -0
  214. package/dist/core/ingestion/type-extractors/c-cpp.js +21 -0
  215. package/dist/core/ingestion/utils/env.d.ts +7 -0
  216. package/dist/core/ingestion/utils/env.js +12 -0
  217. package/dist/core/ingestion/utils/method-props.js +1 -0
  218. package/dist/core/ingestion/workers/clone-safety.d.ts +109 -0
  219. package/dist/core/ingestion/workers/clone-safety.js +465 -0
  220. package/dist/core/ingestion/workers/parse-worker.d.ts +23 -0
  221. package/dist/core/ingestion/workers/parse-worker.js +81 -53
  222. package/dist/core/ingestion/workers/post-result.d.ts +22 -0
  223. package/dist/core/ingestion/workers/post-result.js +87 -0
  224. package/dist/core/ingestion/workers/result-merge.d.ts +20 -0
  225. package/dist/core/ingestion/workers/result-merge.js +43 -0
  226. package/dist/core/ingestion/workers/worker-pool.d.ts +15 -40
  227. package/dist/core/ingestion/workers/worker-pool.js +43 -16
  228. package/dist/core/lbug/csv-generator.d.ts +46 -3
  229. package/dist/core/lbug/csv-generator.js +361 -255
  230. package/dist/core/lbug/lbug-adapter.d.ts +44 -18
  231. package/dist/core/lbug/lbug-adapter.js +286 -77
  232. package/dist/core/lbug/lbug-config.d.ts +19 -0
  233. package/dist/core/lbug/lbug-config.js +29 -0
  234. package/dist/core/lbug/pdg-emit-sink.d.ts +127 -0
  235. package/dist/core/lbug/pdg-emit-sink.js +358 -0
  236. package/dist/core/lbug/pool-adapter.d.ts +35 -0
  237. package/dist/core/lbug/pool-adapter.js +90 -1
  238. package/dist/core/lbug/rel-pair-routing.d.ts +54 -0
  239. package/dist/core/lbug/rel-pair-routing.js +140 -0
  240. package/dist/core/logger.d.ts +0 -5
  241. package/dist/core/run-analyze.d.ts +141 -0
  242. package/dist/core/run-analyze.js +361 -27
  243. package/dist/core/tree-sitter/parser-loader.js +5 -4
  244. package/dist/core/tree-sitter/safe-parse.d.ts +0 -5
  245. package/dist/core/tree-sitter/vendored-grammars.d.ts +39 -0
  246. package/dist/core/tree-sitter/vendored-grammars.js +57 -0
  247. package/dist/core/wiki/generator.js +3 -1
  248. package/dist/core/wiki/graph-queries.d.ts +6 -0
  249. package/dist/core/wiki/graph-queries.js +9 -1
  250. package/dist/mcp/core/embedder.js +4 -0
  251. package/dist/mcp/http-transport.d.ts +134 -0
  252. package/dist/mcp/http-transport.js +503 -0
  253. package/dist/mcp/local/local-backend.d.ts +130 -26
  254. package/dist/mcp/local/local-backend.js +1191 -33
  255. package/dist/mcp/resources.js +13 -1
  256. package/dist/mcp/tools.d.ts +11 -0
  257. package/dist/mcp/tools.js +224 -5
  258. package/dist/server/analyze-launch.d.ts +29 -0
  259. package/dist/server/analyze-launch.js +137 -0
  260. package/dist/server/analyze-upload.d.ts +33 -0
  261. package/dist/server/analyze-upload.js +123 -0
  262. package/dist/server/analyze-worker-ipc.d.ts +58 -0
  263. package/dist/server/analyze-worker-ipc.js +16 -0
  264. package/dist/server/analyze-worker.d.ts +17 -1
  265. package/dist/server/analyze-worker.js +7 -1
  266. package/dist/server/api.d.ts +17 -0
  267. package/dist/server/api.js +132 -168
  268. package/dist/server/git-clone.d.ts +42 -1
  269. package/dist/server/git-clone.js +198 -12
  270. package/dist/server/mcp-http.d.ts +5 -6
  271. package/dist/server/mcp-http.js +9 -82
  272. package/dist/server/middleware.d.ts +40 -0
  273. package/dist/server/middleware.js +92 -0
  274. package/dist/server/private-ip.d.ts +1 -0
  275. package/dist/server/private-ip.js +15 -0
  276. package/dist/server/upload-ingest.d.ts +56 -0
  277. package/dist/server/upload-ingest.js +276 -0
  278. package/dist/server/upload-paths.d.ts +31 -0
  279. package/dist/server/upload-paths.js +51 -0
  280. package/dist/server/upload-sweep.d.ts +20 -0
  281. package/dist/server/upload-sweep.js +57 -0
  282. package/dist/storage/branch-index.d.ts +52 -0
  283. package/dist/storage/branch-index.js +65 -0
  284. package/dist/storage/git.d.ts +11 -0
  285. package/dist/storage/git.js +33 -8
  286. package/dist/storage/parse-cache.d.ts +22 -1
  287. package/dist/storage/parse-cache.js +32 -10
  288. package/dist/storage/repo-manager.d.ts +153 -10
  289. package/dist/storage/repo-manager.js +162 -21
  290. package/dist/types/pipeline.d.ts +9 -0
  291. package/hooks/antigravity/gitnexus-antigravity-hook.cjs +110 -10
  292. package/hooks/claude/gitnexus-hook.cjs +110 -13
  293. package/hooks/claude/hook-db-lock-probe.cjs +496 -26
  294. package/package.json +4 -2
  295. package/scripts/assert-publish-grammar-coverage.cjs +31 -0
  296. package/scripts/build-tree-sitter-grammars.cjs +16 -10
  297. package/scripts/cross-platform-tests.ts +1 -0
  298. package/skills/gitnexus-debugging.md +16 -4
  299. package/skills/gitnexus-exploring.md +3 -3
  300. package/skills/gitnexus-guide.md +33 -0
  301. package/skills/gitnexus-pdg-query.md +89 -0
  302. package/skills/gitnexus-refactoring.md +1 -1
  303. package/skills/gitnexus-taint-analysis.md +178 -0
  304. package/vendor/tree-sitter-c/package.json +1 -1
  305. package/vendor/tree-sitter-dart/package.json +1 -1
  306. package/vendor/tree-sitter-kotlin/package.json +1 -1
  307. package/vendor/tree-sitter-proto/package.json +1 -1
  308. package/vendor/tree-sitter-swift/package.json +1 -1
  309. package/web/assets/{agent-CKPMqImC.js → agent-fZrOWyvp.js} +91 -91
  310. package/web/assets/architecture-7EHR7CIX-6QZW5X65-DxJw65fT.js +1 -0
  311. package/web/assets/architectureDiagram-UL44E2DR-C1QUdXAJ.js +36 -0
  312. package/web/assets/{blockDiagram-7IZFK4PR-B4niSLvR.js → blockDiagram-7IZFK4PR-BkWhpzWB.js} +1 -1
  313. package/web/assets/{c4Diagram-Y2BXMSZH-DIzEXalR.js → c4Diagram-Y2BXMSZH-DtBvpzWD.js} +1 -1
  314. package/web/assets/{chunk-3SSMPTDK-BzGeeheI.js → chunk-3SSMPTDK-B4_etUhr.js} +2 -2
  315. package/web/assets/{chunk-5IMINLNL-CnTLsXIV.js → chunk-5IMINLNL-DOdTeQri.js} +1 -1
  316. package/web/assets/{chunk-5VCL7Z4A-w1BCx98Z.js → chunk-5VCL7Z4A-CQ-2dYWj.js} +1 -1
  317. package/web/assets/chunk-6764PJDD-DpIS7hxD.js +1 -0
  318. package/web/assets/{chunk-67TQ5CYL-CChC2cAv.js → chunk-67TQ5CYL-4sNPJU1q.js} +3 -3
  319. package/web/assets/{chunk-7W6UQGC5-CgFyfZ6k.js → chunk-7W6UQGC5-KyEG0HQg.js} +1 -1
  320. package/web/assets/{chunk-AZZRMDJM-5E9ARdDQ.js → chunk-AZZRMDJM-y-xJBuMz.js} +1 -1
  321. package/web/assets/{chunk-INKRHTLW-ELpfuk9h.js → chunk-INKRHTLW-Nu4ri9P-.js} +1 -1
  322. package/web/assets/{chunk-JQRUD6KW-Dcq_Qnyy.js → chunk-JQRUD6KW-Dbva2Z17.js} +1 -1
  323. package/web/assets/{chunk-KGFNY3KK-W-VR57xb.js → chunk-KGFNY3KK-JGMJvKCK.js} +1 -1
  324. package/web/assets/chunk-KGYTTC2M-CWC_c3H9.js +161 -0
  325. package/web/assets/{chunk-KNLZD3CH-BuZBOcso.js → chunk-KNLZD3CH-BGlP6X9R.js} +1 -1
  326. package/web/assets/{chunk-KRXBNO2N-DH2NPM7I.js → chunk-KRXBNO2N-BW5o0KUN.js} +1 -1
  327. package/web/assets/{chunk-LCXTWHL2-Dfmux4m1.js → chunk-LCXTWHL2-DyKMcKpM.js} +1 -1
  328. package/web/assets/{chunk-LII3EMHJ-3X33tCpU.js → chunk-LII3EMHJ-D-jm-dLa.js} +1 -1
  329. package/web/assets/{chunk-QA3QBVWF-D5Ha3GgB.js → chunk-QA3QBVWF-BgRW3SXd.js} +1 -1
  330. package/web/assets/{chunk-RG4AUYOV-CAkzcoRj.js → chunk-RG4AUYOV-BBk_-ziu.js} +1 -1
  331. package/web/assets/{chunk-T2UQINTJ-kGYG7ppP.js → chunk-T2UQINTJ-DSBqkzH7.js} +1 -1
  332. package/web/assets/chunk-T5OCTHI4-DdZvN-9i.js +1 -0
  333. package/web/assets/{chunk-UY5QBCOK-Du-c56gs.js → chunk-UY5QBCOK-DyF0vyGd.js} +1 -1
  334. package/web/assets/{chunk-W44A43WB-lrCpuupA.js → chunk-W44A43WB-JqMLIpR0.js} +1 -1
  335. package/web/assets/{chunk-ZXARS5L4-CSZRiyOf.js → chunk-ZXARS5L4-CxN8oiwI.js} +1 -1
  336. package/web/assets/classDiagram-KGZ6W3CR-DvAHnSrC.js +1 -0
  337. package/web/assets/classDiagram-v2-72OJOZXJ-DvAHnSrC.js +1 -0
  338. package/web/assets/{context-builder-_HS0v2ma.js → context-builder-BHiFUA8O.js} +10 -2
  339. package/web/assets/{cose-bilkent-UX7MHV2Q-BHv2bbtl.js → cose-bilkent-UX7MHV2Q-D71wNYRJ.js} +1 -1
  340. package/web/assets/dagre-ND4H6XIP-BYZ9L-MY.js +4 -0
  341. package/web/assets/diagram-3NCE3AQN-C35B8Qr1.js +43 -0
  342. package/web/assets/diagram-GF46GFSD-B-3mb3Bn.js +24 -0
  343. package/web/assets/{diagram-HNR7UZ2L-fUWreZzx.js → diagram-HNR7UZ2L-DFCfd5LI.js} +2 -2
  344. package/web/assets/diagram-QXG6HAR7-MhZTDxog.js +24 -0
  345. package/web/assets/diagram-WEQXMOUZ-D2_JPEOO.js +10 -0
  346. package/web/assets/{erDiagram-L5TCEMPS-QN2eEP1e.js → erDiagram-L5TCEMPS-CBIk8qhW.js} +1 -1
  347. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-BQm9QzEa.js +1 -0
  348. package/web/assets/{flowDiagram-H6V6AXG4-CXbXImlN.js → flowDiagram-H6V6AXG4-DHU3_ouM.js} +3 -3
  349. package/web/assets/{ganttDiagram-JCBTUEKG-BHQssTz6.js → ganttDiagram-JCBTUEKG-D3iL2Aet.js} +1 -1
  350. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-Cr_Bm2Nb.js +1 -0
  351. package/web/assets/gitGraphDiagram-S2ZK5IYY-CPIDgxGm.js +106 -0
  352. package/web/assets/index-RqQ4Yq4b.js +635 -0
  353. package/web/assets/index-_lgn7hs5.css +2 -0
  354. package/web/assets/info-J43DQDTF-KCYPFFUO-Cs4p2oyk.js +1 -0
  355. package/web/assets/infoDiagram-3YFTVSEB-CCrihnq8.js +2 -0
  356. package/web/assets/{ishikawaDiagram-BNXS4ZKH-6LKOvBfp.js → ishikawaDiagram-BNXS4ZKH-DVEB-J8r.js} +1 -1
  357. package/web/assets/{journeyDiagram-M6C3CM3L-DNPYCpvq.js → journeyDiagram-M6C3CM3L-CvArszLo.js} +1 -1
  358. package/web/assets/{kanban-definition-75IXJCU3-DgDi9oJT.js → kanban-definition-75IXJCU3-CKawXQEE.js} +3 -3
  359. package/web/assets/{katex-K3KEBU37-CrVLz8l7.js → katex-K3KEBU37-CTc5BslQ.js} +1 -1
  360. package/web/assets/{mindmap-definition-2TDM6QVE-CwR5sBB-.js → mindmap-definition-2TDM6QVE-C2xIlnT8.js} +1 -1
  361. package/web/assets/packet-YPE3B663-LP52Z2RK-CKCrztD2.js +1 -0
  362. package/web/assets/pie-LRSECV5Y-TCRJHUBD-BB7pHqoD.js +1 -0
  363. package/web/assets/{pieDiagram-CU6KROY3-By8g6f6B.js → pieDiagram-CU6KROY3-Br0hDJqu.js} +1 -1
  364. package/web/assets/{quadrantDiagram-VICAPDV7-bAm6Hi_5.js → quadrantDiagram-VICAPDV7-yXSZ2lLz.js} +1 -1
  365. package/web/assets/radar-GUYGQ44K-RDLRG3WG-DhoTOcuK.js +1 -0
  366. package/web/assets/{requirementDiagram-JXO7QTGE-7oDcJ1_J.js → requirementDiagram-JXO7QTGE-BBeY6vfo.js} +1 -1
  367. package/web/assets/{sankeyDiagram-URQDO5SZ-LFJz53u5.js → sankeyDiagram-URQDO5SZ-1qEjlFIB.js} +1 -1
  368. package/web/assets/{sequenceDiagram-VS2MUI6T-FySeKCUy.js → sequenceDiagram-VS2MUI6T-BuX0bsxG.js} +3 -3
  369. package/web/assets/stateDiagram-7D4R322I-DrNPOC9J.js +1 -0
  370. package/web/assets/stateDiagram-v2-36443NZ5-CFoCCKMc.js +1 -0
  371. package/web/assets/{timeline-definition-O6YCAMPW-Ds2CnVZK.js → timeline-definition-O6YCAMPW-DON8Do19.js} +1 -1
  372. package/web/assets/treeView-BLDUP644-QA4HXRO3-ODehyGKL.js +1 -0
  373. package/web/assets/treemap-LRROVOQU-LLAWBHMP-BfpgC-7o.js +1 -0
  374. package/web/assets/{vennDiagram-MWXL3ELB-DUIEwXWp.js → vennDiagram-MWXL3ELB-CcKzBfSq.js} +3 -3
  375. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-CNeL6VHE.js +1 -0
  376. package/web/assets/{wardleyDiagram-CUQ6CDDI-DEiFPQih.js → wardleyDiagram-CUQ6CDDI-BI3b8uwK.js} +1 -1
  377. package/web/assets/{xychartDiagram-N2JHSOCM-BUbayhST.js → xychartDiagram-N2JHSOCM--B4ADFFR.js} +1 -1
  378. package/web/index.html +13 -15
  379. package/scripts/materialize-vendor-grammars.cjs +0 -97
  380. package/web/assets/architecture-7EHR7CIX-6QZW5X65-BETj2x4g.js +0 -1
  381. package/web/assets/architectureDiagram-UL44E2DR-D1EXI0zA.js +0 -36
  382. package/web/assets/chunk-2T2R6R2M-n6s9JZqv.js +0 -4
  383. package/web/assets/chunk-2UTLFMKG-CMBB1TMN.js +0 -1
  384. package/web/assets/chunk-4R4BOZG6-mKhL59ul.js +0 -159
  385. package/web/assets/chunk-6764PJDD-ChwMM2z4.js +0 -1
  386. package/web/assets/chunk-7J6CGLKN-DT-b53FT.js +0 -10
  387. package/web/assets/chunk-C62D2QBJ-CDAWj26E.js +0 -1
  388. package/web/assets/chunk-CEXFNPSA-D68Tk6ls.js +0 -1
  389. package/web/assets/chunk-CilyBKbf.js +0 -1
  390. package/web/assets/chunk-J5EP6P6S-DxWW0yvu.js +0 -1
  391. package/web/assets/chunk-KGYTTC2M-C6PHeuay.js +0 -1
  392. package/web/assets/chunk-RERM46MO-DQNbXtfw.js +0 -1
  393. package/web/assets/chunk-RKZBBQEN-BmTPLSyv.js +0 -1
  394. package/web/assets/chunk-RLI5ZMPA-DExu2DOK.js +0 -1
  395. package/web/assets/chunk-T5OCTHI4--9wWpVws.js +0 -1
  396. package/web/assets/chunk-UP6H54XL-DsKdC6jC.js +0 -1
  397. package/web/assets/chunk-UXSXWOXI-DR81EqLr.js +0 -1
  398. package/web/assets/classDiagram-KGZ6W3CR-Bv93af_b.js +0 -1
  399. package/web/assets/classDiagram-v2-72OJOZXJ-CLfEqHUa.js +0 -1
  400. package/web/assets/dagre-ND4H6XIP-DsIr9MOv.js +0 -4
  401. package/web/assets/diagram-3NCE3AQN-BqAtKUpW.js +0 -43
  402. package/web/assets/diagram-GF46GFSD-CaBG6n6o.js +0 -24
  403. package/web/assets/diagram-QXG6HAR7-CZ-O3rcV.js +0 -24
  404. package/web/assets/diagram-WEQXMOUZ-P4lSL4GH.js +0 -10
  405. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-B3myHUst.js +0 -1
  406. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DF3rtf4A.js +0 -1
  407. package/web/assets/gitGraphDiagram-S2ZK5IYY-CCwVLT__.js +0 -106
  408. package/web/assets/index-BKWA-m7o.css +0 -2
  409. package/web/assets/index-CG6q8eTs.js +0 -626
  410. package/web/assets/info-J43DQDTF-KCYPFFUO-R4XV_akJ.js +0 -1
  411. package/web/assets/infoDiagram-3YFTVSEB-DmLICZx1.js +0 -2
  412. package/web/assets/packet-YPE3B663-LP52Z2RK-CgQPdNZa.js +0 -1
  413. package/web/assets/pie-LRSECV5Y-TCRJHUBD-BzWOwc_c.js +0 -1
  414. package/web/assets/radar-GUYGQ44K-RDLRG3WG-B7KG0FN7.js +0 -1
  415. package/web/assets/stateDiagram-7D4R322I-CB2nABwH.js +0 -1
  416. package/web/assets/stateDiagram-v2-36443NZ5-COBGd2RL.js +0 -1
  417. package/web/assets/treeView-BLDUP644-QA4HXRO3-CRSxEwLO.js +0 -1
  418. package/web/assets/treemap-LRROVOQU-LLAWBHMP-a0PfKoVn.js +0 -1
  419. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-BKQ6e5mC.js +0 -1
  420. /package/web/assets/{chunk-AQ6EADP3-CCFje6lL.js → chunk-AQ6EADP3-CZhslHi-.js} +0 -0
package/README.md CHANGED
@@ -34,7 +34,7 @@ That's it. This indexes the codebase, installs agent skills, registers Claude Co
34
34
 
35
35
  To configure MCP for your editor, run `npx gitnexus setup` once — or set it up manually below.
36
36
 
37
- `gitnexus setup` auto-detects your editors and writes the correct global MCP config. You only need to run it once.
37
+ `gitnexus setup` auto-detects your editors and writes the correct global MCP config. You only need to run it once. To configure only selected integrations, pass `--coding-agent`/`-c` with a comma-separated list or repeat the option, for example `gitnexus setup -c cursor,codex`.
38
38
 
39
39
  ### Editor Support
40
40
 
@@ -134,7 +134,7 @@ Your AI agent gets these tools automatically:
134
134
  | `rename` | Multi-file coordinated rename with graph + text search | Optional |
135
135
  | `cypher` | Raw Cypher graph queries | Optional |
136
136
 
137
- > With one indexed repo, the `repo` param is optional. With multiple, specify which: `query({query: "auth", repo: "my-app"})`.
137
+ > With one indexed repo, the `repo` param is optional. With multiple, specify which: `query({search_query: "auth", repo: "my-app"})`.
138
138
 
139
139
  ## MCP Resources
140
140
 
@@ -158,7 +158,7 @@ Your AI agent gets these tools automatically:
158
158
  ## CLI Commands
159
159
 
160
160
  ```bash
161
- gitnexus setup # Configure MCP for your editors (one-time)
161
+ gitnexus setup # Configure MCP for detected editors (one-time; use -c to select)
162
162
  gitnexus uninstall # Preview removal of GitNexus MCP/skills/hooks (add --force to apply)
163
163
  gitnexus analyze [path] # Index a repository (or update stale index)
164
164
  gitnexus analyze --repair-fts # Fast path: rebuild/verify only FTS indexes on existing index data
@@ -79,7 +79,21 @@ export type RelationshipType = 'CONTAINS' | 'CALLS' | 'INHERITS' | 'METHOD_OVERR
79
79
  | 'SANITIZES'
80
80
  /** Materialized source→sink taint path. Working name — final name/representation
81
81
  * is confirmed when M3/M4 emits it; no persisted edge exists before then. */
82
- | 'TAINT_PATH';
82
+ | 'TAINT_PATH'
83
+ /** Control-dependence edge (PDG, issue #2085 M5): block `dependent` (target)
84
+ * executes only because the branch at block `controller` (source) took a
85
+ * given side. The branch sense (`'T'` | `'F'`) rides the relation's existing
86
+ * `reason` column — mirroring how `CFG` stores its edge kind there — since
87
+ * the single `CodeRelation` table has no dedicated label column. */
88
+ | 'CDG'
89
+ /** Debug-only post-dominator-tree edge (#2085 M5): a block → its immediate
90
+ * post-dominator, emitted behind the `GITNEXUS_PDG_EMIT_POST_DOMINATE` env
91
+ * flag for inspection. Never emitted in a normal `--pdg` run. Note: as a
92
+ * member of this exported union it is a forward-compatibility commitment —
93
+ * removing it later is a breaking schema change — and it is deliberately
94
+ * excluded from `VALID_RELATION_TYPES` so it never enters impact-style
95
+ * symbol-space traversal (same posture as the taint substrate edges). */
96
+ | 'POST_DOMINATE';
83
97
  export interface GraphNode {
84
98
  id: string;
85
99
  label: NodeLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA+CpD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OACQ,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,kBAAkB,GAAG,IAkB/E,CAAC;AAwDF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAUhE,CAAC"}
1
+ {"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAyDpD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OACQ,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,kBAAkB,GAAG,IAkB/E,CAAC;AAwDF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAUhE,CAAC"}
@@ -29,7 +29,17 @@ const EXTENSION_MAP = {
29
29
  [SupportedLanguages.Python]: ['.py'],
30
30
  [SupportedLanguages.Java]: ['.java'],
31
31
  [SupportedLanguages.C]: ['.c'],
32
- [SupportedLanguages.CPlusPlus]: ['.cpp', '.cc', '.cxx', '.h', '.hpp', '.hxx', '.hh'],
32
+ [SupportedLanguages.CPlusPlus]: [
33
+ '.cpp',
34
+ '.cc',
35
+ '.cxx',
36
+ '.h',
37
+ '.hpp',
38
+ '.hxx',
39
+ '.hh',
40
+ '.cu',
41
+ '.cuh',
42
+ ],
33
43
  [SupportedLanguages.CSharp]: ['.cs'],
34
44
  [SupportedLanguages.Go]: ['.go'],
35
45
  [SupportedLanguages.Ruby]: ['.rb', '.rake', '.gemspec'],
@@ -1 +1 @@
1
- {"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  export declare const NODE_TABLES: readonly ["File", "Folder", "Function", "Class", "Interface", "Method", "CodeElement", "Community", "Process", "Section", "Struct", "Enum", "Macro", "Typedef", "Union", "Namespace", "Trait", "Impl", "TypeAlias", "Const", "Static", "Variable", "Property", "Record", "Delegate", "Annotation", "Constructor", "Template", "Module", "Route", "Tool", "BasicBlock"];
11
11
  export type NodeTableName = (typeof NODE_TABLES)[number];
12
12
  export declare const REL_TABLE_NAME = "CodeRelation";
13
- export declare const REL_TYPES: readonly ["CONTAINS", "DEFINES", "IMPORTS", "CALLS", "EXTENDS", "IMPLEMENTS", "HAS_METHOD", "HAS_PROPERTY", "ACCESSES", "METHOD_OVERRIDES", "OVERRIDES", "METHOD_IMPLEMENTS", "MEMBER_OF", "STEP_IN_PROCESS", "HANDLES_ROUTE", "FETCHES", "HANDLES_TOOL", "ENTRY_POINT_OF", "WRAPS", "QUERIES", "CFG", "REACHING_DEF", "TAINTED", "SANITIZES", "TAINT_PATH"];
13
+ export declare const REL_TYPES: readonly ["CONTAINS", "DEFINES", "IMPORTS", "CALLS", "EXTENDS", "IMPLEMENTS", "HAS_METHOD", "HAS_PROPERTY", "ACCESSES", "METHOD_OVERRIDES", "OVERRIDES", "METHOD_IMPLEMENTS", "MEMBER_OF", "STEP_IN_PROCESS", "HANDLES_ROUTE", "FETCHES", "HANDLES_TOOL", "ENTRY_POINT_OF", "WRAPS", "QUERIES", "CFG", "REACHING_DEF", "TAINTED", "SANITIZES", "TAINT_PATH", "CDG", "POST_DOMINATE"];
14
14
  export type RelType = (typeof REL_TYPES)[number];
15
15
  export declare const EMBEDDING_TABLE_NAME = "CodeEmbedding";
16
16
  //# sourceMappingURL=schema-constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,wWAkCd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,SAAS,8VA6BZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
1
+ {"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,wWAkCd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,SAAS,sXAmCZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
@@ -72,6 +72,12 @@ export const REL_TYPES = [
72
72
  'TAINTED',
73
73
  'SANITIZES',
74
74
  'TAINT_PATH',
75
+ // Control dependence (PDG, issue #2085 M5) — CDG carries its 'T'|'F' branch
76
+ // label in the relation's `reason` column; POST_DOMINATE is debug-only
77
+ // (behind GITNEXUS_PDG_EMIT_POST_DOMINATE). Both are BasicBlock→BasicBlock,
78
+ // reusing the existing FROM BasicBlock TO BasicBlock pair in RELATION_SCHEMA.
79
+ 'CDG',
80
+ 'POST_DOMINATE',
75
81
  ];
76
82
  export const EMBEDDING_TABLE_NAME = 'CodeEmbedding';
77
83
  //# sourceMappingURL=schema-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,2EAA2E;IAC3E,YAAY;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,WAAW,EAAE,mEAAmE;IAChF,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,SAAS;IACT,yEAAyE;IACzE,yEAAyE;IACzE,6EAA6E;IAC7E,KAAK;IACL,cAAc;IACd,SAAS;IACT,WAAW;IACX,YAAY;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,2EAA2E;IAC3E,YAAY;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,WAAW,EAAE,mEAAmE;IAChF,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,SAAS;IACT,yEAAyE;IACzE,yEAAyE;IACzE,6EAA6E;IAC7E,KAAK;IACL,cAAc;IACd,SAAS;IACT,WAAW;IACX,YAAY;IACZ,4EAA4E;IAC5E,uEAAuE;IACvE,4EAA4E;IAC5E,8EAA8E;IAC9E,KAAK;IACL,eAAe;CACP,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
@@ -96,5 +96,26 @@ export interface ParsedFile {
96
96
  * side effects — the contract default) leave this undefined.
97
97
  */
98
98
  readonly captureSideChannel?: unknown;
99
+ /**
100
+ * Per-function control-flow graphs for this file (#2081 M1, PDG/taint
101
+ * substrate). A DISTINCT field from {@link captureSideChannel} — different
102
+ * producer, consumer, and lifecycle: the worker builds it from the
103
+ * tree-sitter AST via `LanguageProvider.cfgVisitor` (only on a `--pdg` run),
104
+ * and scope-resolution emits BasicBlock nodes + CFG edges from it while the
105
+ * disk-backed ParsedFile store is still live (it is NOT a capture-time
106
+ * marker the resolver restores into module maps). Kept separate so a future
107
+ * change to either channel's shape invalidates independently.
108
+ *
109
+ * Shared / ingestion code treats this as opaque (`unknown`) per AGENTS.md.
110
+ * Concretely it is a `readonly FunctionCfg[]` (see
111
+ * `core/ingestion/cfg/types.ts`) — plain JSON-serializable data (no AST
112
+ * refs, no class instances) so it round-trips through the parse cache and
113
+ * the `parsedfile-store` (whose interning reviver keys on `nodeId`, which
114
+ * these blocks/edges deliberately lack).
115
+ *
116
+ * Optional: `undefined` on non-`--pdg` runs and for languages with no
117
+ * `cfgVisitor` — the default for every run today.
118
+ */
119
+ readonly cfgSideChannel?: unknown;
99
120
  }
100
121
  //# sourceMappingURL=parsed-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsed-file.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/parsed-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC"}
1
+ {"version":3,"file":"parsed-file.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/parsed-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC"}
@@ -18,6 +18,8 @@ export interface ParameterTypeClass {
18
18
  indirection: 'value' | 'lvalue-ref' | 'rvalue-ref' | 'pointer' | 'unknown';
19
19
  /** Number of pointer markers when indirection is `pointer`; otherwise 0. */
20
20
  pointerDepth: number;
21
+ /** Normalized top-level template arguments, when a language preserves them. */
22
+ templateArguments?: string[];
21
23
  }
22
24
  export interface SymbolDefinition {
23
25
  nodeId: string;
@@ -54,6 +56,10 @@ export interface SymbolDefinition {
54
56
  * Currently used by C++ overload ranking to exclude explicit constructors
55
57
  * from implicit user-defined conversion candidates. */
56
58
  isExplicit?: boolean;
59
+ /** True when the callable is declared unavailable (for example C++ `= delete`).
60
+ * Unavailable callables still participate in overload selection, but a
61
+ * selected unavailable target must suppress edge emission. */
62
+ isDeleted?: boolean;
57
63
  /** Links Method/Constructor/Property to owning Class/Struct/Trait nodeId */
58
64
  ownerId?: string;
59
65
  /** #1982/#1993: bridge-held enclosing-namespace path (e.g. `NS1`, `Outer.Inner`)
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;iEAO6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;mEAE+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;iEAO6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -24,6 +24,12 @@ export interface AIContextOptions {
24
24
  * plain caller that omits it gets "main", preserving prior behavior.
25
25
  */
26
26
  defaultBranch?: string;
27
+ /**
28
+ * Whether the index was built with `--pdg` (#2086 M6). Gates the `pdg_query`
29
+ * line in the generated block — without the PDG layer the tool only returns a
30
+ * "no PDG layer" note, so advertising it on a non-`--pdg` index is noise.
31
+ */
32
+ hasPdg?: boolean;
27
33
  }
28
34
  /**
29
35
  * Strip backticks from a branch name before it is embedded in a Markdown
@@ -32,7 +38,31 @@ export interface AIContextOptions {
32
38
  * the generation sink so the embedding is provably safe regardless of caller.
33
39
  */
34
40
  export declare function markdownSafeBranch(branch: string): string;
35
- export declare function generateGitNexusContent(projectName: string, stats: RepoStats, generatedSkills?: GeneratedSkillInfo[], groupNames?: string[], noStats?: boolean, skipSkills?: boolean, runnerPath?: string, defaultBranch?: string): string;
41
+ /** Options for {@link generateGitNexusContent} (collapsed from positional
42
+ * params, #2188 review — six `undefined`s to reach `hasPdg` was the smell). */
43
+ export interface GitNexusContentOptions {
44
+ generatedSkills?: GeneratedSkillInfo[];
45
+ groupNames?: string[];
46
+ noStats?: boolean;
47
+ skipSkills?: boolean;
48
+ /** Project-relative path to the runner `gitnexus analyze` drops next to the
49
+ * index (#1945). Referenced by docs so a single CLI-neutral command resolves
50
+ * the available runner (global `gitnexus` → `pnpm dlx` → `npx`) at call time. */
51
+ runnerPath?: string;
52
+ /** Default branch for the regression-compare example (#243). Configurable so
53
+ * projects on `develop`/`master`/etc. don't get `base_ref: "main"` rewritten
54
+ * back over their fix on every analyze. The value is embedded inside a
55
+ * Markdown inline-code span: validateBranchName rejects backticks upstream,
56
+ * and `markdownSafeBranch` strips any remaining backtick here as defense in
57
+ * depth, so JSON.stringify's quote/escape handling is sufficient and the
58
+ * branch cannot break out of the span (#1996 tri-review P1). */
59
+ defaultBranch?: string;
60
+ /** Whether the index was built with `--pdg` (#2086 M6). Gates the pdg_query
61
+ * line below — false (default) omits it, so a non-pdg index doesn't advertise
62
+ * a tool that only returns a "no PDG layer" note. */
63
+ hasPdg?: boolean;
64
+ }
65
+ export declare function generateGitNexusContent(projectName: string, stats: RepoStats, opts?: GitNexusContentOptions): string;
36
66
  /**
37
67
  * Generate AI context files after indexing
38
68
  */
@@ -77,19 +77,8 @@ async function findGroupsContainingRegistryName(registryName) {
77
77
  export function markdownSafeBranch(branch) {
78
78
  return branch.replace(/`/g, '');
79
79
  }
80
- export function generateGitNexusContent(projectName, stats, generatedSkills, groupNames, noStats, skipSkills,
81
- // Project-relative path to the runner `gitnexus analyze` drops next to the
82
- // index (#1945). Referenced by docs so a single CLI-neutral command resolves
83
- // the available runner (global `gitnexus` → `pnpm dlx` → `npx`) at call time.
84
- runnerPath = '.gitnexus/run.cjs',
85
- // Default branch for the regression-compare example (#243). Configurable so
86
- // projects on `develop`/`master`/etc. don't get `base_ref: "main"` rewritten
87
- // back over their fix on every analyze. The value is embedded inside a
88
- // Markdown inline-code span: validateBranchName rejects backticks upstream,
89
- // and `markdownSafeBranch` strips any remaining backtick here as defense in
90
- // depth, so JSON.stringify's quote/escape handling is sufficient and the
91
- // branch cannot break out of the span (#1996 tri-review P1).
92
- defaultBranch = 'main') {
80
+ export function generateGitNexusContent(projectName, stats, opts = {}) {
81
+ const { generatedSkills, groupNames, noStats, skipSkills, runnerPath = '.gitnexus/run.cjs', defaultBranch = 'main', hasPdg = false, } = opts;
93
82
  const generatedRows = generatedSkills && generatedSkills.length > 0
94
83
  ? generatedSkills
95
84
  .map((s) => `| Work in the ${s.label} area (${s.symbolCount} symbols) | \`.claude/skills/generated/${s.name}/SKILL.md\` |`)
@@ -134,8 +123,11 @@ This project is indexed by GitNexus as **${projectName}**${noStats ? '' : ` (${s
134
123
  - **MUST run impact analysis before editing any symbol.** Before modifying a function, class, or method, run \`impact({target: "symbolName", direction: "upstream"})\` and report the blast radius (direct callers, affected processes, risk level) to the user.
135
124
  - **MUST run \`detect_changes()\` before committing** to verify your changes only affect expected symbols and execution flows. For regression review, compare against the default branch: \`detect_changes({scope: "compare", base_ref: ${JSON.stringify(markdownSafeBranch(defaultBranch))}})\`.
136
125
  - **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
137
- - When exploring unfamiliar code, use \`query({query: "concept"})\` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
126
+ - When exploring unfamiliar code, use \`query({search_query: "concept"})\` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
138
127
  - When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use \`context({name: "symbolName"})\`.
128
+ - For security review, \`explain({target: "fileOrSymbol"})\` lists taint findings (source→sink flows; needs \`analyze --pdg\`).${hasPdg
129
+ ? `\n- For control/data dependence, \`pdg_query({mode: "controls", target: "fileOrSymbol"})\` answers "under what condition does X run?" (CDG, incl. guard clauses) and \`pdg_query({mode: "flows", target, variable})\` traces "where does variable Y flow?" (REACHING_DEF). \`--pdg\` layer.`
130
+ : ''}
139
131
 
140
132
  ## Never Do
141
133
 
@@ -348,7 +340,15 @@ export async function generateAIContextFiles(repoPath, storagePath, projectName,
348
340
  catch (err) {
349
341
  logger.warn(`Could not write GitNexus runner to ${runnerPath}: ${String(err)}`);
350
342
  }
351
- const content = generateGitNexusContent(projectName, stats, generatedSkills, groupNames, options?.noStats, options?.skipSkills, runnerPath, options?.defaultBranch ?? 'main');
343
+ const content = generateGitNexusContent(projectName, stats, {
344
+ generatedSkills,
345
+ groupNames,
346
+ noStats: options?.noStats,
347
+ skipSkills: options?.skipSkills,
348
+ runnerPath,
349
+ defaultBranch: options?.defaultBranch ?? 'main',
350
+ hasPdg: options?.hasPdg ?? false,
351
+ });
352
352
  const createdFiles = [];
353
353
  if (!options?.skipAgentsMd) {
354
354
  // Create AGENTS.md (standard for Cursor, Windsurf, OpenCode, Cline, etc.)
@@ -63,6 +63,7 @@ const KEY_SPECS = {
63
63
  skipContextFiles: { target: 'skipAgentsMd', kind: 'boolean' },
64
64
  skipAiContext: { target: 'skipAgentsMd', kind: 'boolean' },
65
65
  skipSkills: { target: 'skipSkills', kind: 'boolean' },
66
+ pdg: { target: 'pdg', kind: 'boolean' },
66
67
  indexOnly: { target: 'indexOnly', kind: 'boolean' },
67
68
  stats: { target: 'stats', kind: 'boolean' },
68
69
  noStats: { target: 'stats', kind: 'boolean-negate' },
@@ -78,6 +79,22 @@ const KEY_SPECS = {
78
79
  embeddingBatchSize: { target: 'embeddingBatchSize', kind: 'numeric-string' },
79
80
  embeddingSubBatchSize: { target: 'embeddingSubBatchSize', kind: 'numeric-string' },
80
81
  embeddingDevice: { target: 'embeddingDevice', kind: 'string' },
82
+ // #1589/#1852 residual — extra fetch-wrapper function names to treat as HTTP
83
+ // consumers. The auto-detector only flags functions that call the bare global
84
+ // `fetch()`; a wrapper built on axios / a custom client, or named outside the
85
+ // built-in convention set, is otherwise invisible to route_map consumers.
86
+ // Listing it here adds it to the cross-file consumer scan.
87
+ fetchWrappers: { target: 'fetchWrappers', kind: 'string-array' },
88
+ // Auth token AND dims are intentionally CLI/env-only — no embeddingAuthToken
89
+ // or embeddingDims key here:
90
+ // - the token keeps secrets out of a committed .gitnexusrc;
91
+ // - dims cannot take effect from .gitnexusrc anyway — schema.ts reads
92
+ // GITNEXUS_EMBEDDING_DIMS at module-load (before .gitnexusrc is loaded in
93
+ // analyzeCommandImpl), so a config value would size nothing and silently
94
+ // mismatch the vector column. Use --embedding-dims or GITNEXUS_EMBEDDING_DIMS.
95
+ // (URL/MODEL are safe as config keys: they are read lazily at runtime, not at module-load.)
96
+ embeddingBaseUrl: { target: 'embeddingBaseUrl', kind: 'string' },
97
+ embeddingModel: { target: 'embeddingModel', kind: 'string' },
81
98
  };
82
99
  /** Top-level container key for the nested form; not itself an `AnalyzeOptions` field. */
83
100
  const NESTED_KEY = 'analyze';
@@ -195,6 +212,39 @@ const normalizeValue = (kind, value, key) => {
195
212
  }
196
213
  return trimmed;
197
214
  }
215
+ case 'string-array': {
216
+ // Generic shared validator — `source` already names the config key, so
217
+ // messages here stay key-agnostic (no fetch-wrapper coupling in the
218
+ // shared normalizer; #1589/#1852 review F7).
219
+ if (!Array.isArray(value)) {
220
+ throw new GitNexusRcError(`${source} must be an array of strings.`);
221
+ }
222
+ const names = [];
223
+ for (const item of value) {
224
+ if (typeof item !== 'string') {
225
+ throw new GitNexusRcError(`${source} entries must all be strings.`);
226
+ }
227
+ const trimmed = item.trim();
228
+ if (!trimmed) {
229
+ throw new GitNexusRcError(`${source} entries must not be empty.`);
230
+ }
231
+ assertNoHiddenChars(trimmed, source);
232
+ // Values may be interpolated into a RegExp downstream. Restrict to
233
+ // identifier / member-access shapes so a config value can never smuggle
234
+ // regex metacharacters into a consumer.
235
+ if (!/^[A-Za-z_$][A-Za-z0-9_$.]*$/.test(trimmed)) {
236
+ throw new GitNexusRcError(`${source} entry "${trimmed}" must be an identifier or member name ` +
237
+ `(letters, digits, _, $, . — e.g. "client.get").`);
238
+ }
239
+ names.push(trimmed);
240
+ }
241
+ if (names.length === 0) {
242
+ throw new GitNexusRcError(`${source} must list at least one string.`);
243
+ }
244
+ // De-duplicate and cap to a sane bound so a pathological config cannot
245
+ // blow up the consumer scan's alternation.
246
+ return Array.from(new Set(names)).slice(0, 100);
247
+ }
198
248
  case 'numeric-string': {
199
249
  // Mirror Commander's contract: these options reach the existing CLI
200
250
  // validation as strings. Accept a JSON number or a string; normalize to a
@@ -37,6 +37,12 @@ export interface AnalyzeOptions {
37
37
  verbose?: boolean;
38
38
  /** Skip AGENTS.md and CLAUDE.md gitnexus block updates. */
39
39
  skipAgentsMd?: boolean;
40
+ /**
41
+ * Build the control-flow-graph / PDG substrate (#2081 M1). Opt-in; off by
42
+ * default. Threaded to both the worker (CFG build) and scope-resolution
43
+ * (BasicBlock/CFG emit).
44
+ */
45
+ pdg?: boolean;
40
46
  /**
41
47
  * Stats inclusion in AGENTS.md and CLAUDE.md.
42
48
  *
@@ -58,6 +64,14 @@ export interface AnalyzeOptions {
58
64
  * before being threaded into the generated AGENTS.md / CLAUDE.md content.
59
65
  */
60
66
  defaultBranch?: string;
67
+ /**
68
+ * Index-branch selector (#2106). From `--branch`. Distinct from
69
+ * `defaultBranch` (cosmetic base_ref): this routes the index to a per-branch
70
+ * slot. NOT sourced from `.gitnexusrc` — the `.gitnexusrc` `branch` key is an
71
+ * alias for `defaultBranch` and must not change index placement. Defaults to
72
+ * the checked-out branch inside `runFullAnalysis` when omitted.
73
+ */
74
+ branch?: string;
61
75
  /** Pure index mode: skip all file injection (AGENTS.md, CLAUDE.md, skills). */
62
76
  indexOnly?: boolean;
63
77
  /** Index the folder even when no .git directory is present. */
@@ -93,6 +107,22 @@ export interface AnalyzeOptions {
93
107
  embeddingBatchSize?: string;
94
108
  embeddingSubBatchSize?: string;
95
109
  embeddingDevice?: string;
110
+ /**
111
+ * Extra fetch-wrapper function names to treat as HTTP consumers (#1589/#1852
112
+ * residual). Supplied via `.gitnexusrc` `fetchWrappers: [...]`. Threaded into
113
+ * the routes phase, where the cross-file consumer scan unions them with the
114
+ * auto-detected `fetch()` wrappers so a custom/axios-based wrapper named
115
+ * outside the built-in convention still produces `route_map` consumers.
116
+ */
117
+ fetchWrappers?: string[];
118
+ /** OpenAI-compatible embeddings base URL (incl. /v1). Overrides GITNEXUS_EMBEDDING_URL. */
119
+ embeddingBaseUrl?: string;
120
+ /** Embedding model name. Overrides GITNEXUS_EMBEDDING_MODEL. */
121
+ embeddingModel?: string;
122
+ /** Bearer token for the embeddings endpoint. Overrides GITNEXUS_EMBEDDING_API_KEY. Never logged. */
123
+ embeddingAuthToken?: string;
124
+ /** Embedding vector dimensions (positive integer string). Overrides GITNEXUS_EMBEDDING_DIMS. */
125
+ embeddingDims?: string;
96
126
  }
97
127
  /**
98
128
  * Whether the post-index skill step should run.