gitnexus 1.6.4-rc.1 → 1.6.4-rc.100

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 (423) hide show
  1. package/README.md +35 -0
  2. package/dist/_shared/index.d.ts +1 -1
  3. package/dist/_shared/index.d.ts.map +1 -1
  4. package/dist/_shared/index.js +1 -1
  5. package/dist/_shared/index.js.map +1 -1
  6. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +33 -23
  7. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
  8. package/dist/_shared/scope-resolution/finalize-algorithm.js +380 -64
  9. package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
  10. package/dist/_shared/scope-resolution/scope-tree.d.ts +23 -1
  11. package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
  12. package/dist/_shared/scope-resolution/scope-tree.js +36 -2
  13. package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
  14. package/dist/_shared/scope-resolution/types.d.ts +47 -3
  15. package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
  16. package/dist/_shared/scope-resolution/types.js +10 -2
  17. package/dist/_shared/scope-resolution/types.js.map +1 -1
  18. package/dist/cli/ai-context.js +2 -1
  19. package/dist/cli/analyze.d.ts +14 -1
  20. package/dist/cli/analyze.js +223 -40
  21. package/dist/cli/clean.js +4 -3
  22. package/dist/cli/cli-message.d.ts +15 -0
  23. package/dist/cli/cli-message.js +61 -0
  24. package/dist/cli/doctor.d.ts +1 -0
  25. package/dist/cli/doctor.js +31 -0
  26. package/dist/cli/eval-server.js +37 -12
  27. package/dist/cli/group.js +4 -3
  28. package/dist/cli/index-repo.js +2 -2
  29. package/dist/cli/index.js +16 -2
  30. package/dist/cli/mcp.d.ts +21 -0
  31. package/dist/cli/mcp.js +52 -15
  32. package/dist/cli/optional-grammars.d.ts +47 -0
  33. package/dist/cli/optional-grammars.js +87 -0
  34. package/dist/cli/remove.js +7 -4
  35. package/dist/cli/serve.js +31 -13
  36. package/dist/cli/setup.js +46 -16
  37. package/dist/cli/tool.js +6 -5
  38. package/dist/cli/wiki.js +39 -6
  39. package/dist/config/ignore-service.js +4 -1
  40. package/dist/core/augmentation/engine.js +1 -1
  41. package/dist/core/embedding-mode.d.ts +21 -0
  42. package/dist/core/embedding-mode.js +18 -0
  43. package/dist/core/embeddings/config.d.ts +2 -0
  44. package/dist/core/embeddings/config.js +36 -0
  45. package/dist/core/embeddings/embedder.js +55 -26
  46. package/dist/core/embeddings/embedding-pipeline.d.ts +7 -1
  47. package/dist/core/embeddings/embedding-pipeline.js +106 -40
  48. package/dist/core/embeddings/exact-search.d.ts +15 -0
  49. package/dist/core/embeddings/exact-search.js +27 -0
  50. package/dist/core/embeddings/hf-env.d.ts +163 -0
  51. package/dist/core/embeddings/hf-env.js +250 -0
  52. package/dist/core/embeddings/types.d.ts +4 -0
  53. package/dist/core/embeddings/types.js +2 -0
  54. package/dist/core/git-staleness.d.ts +6 -0
  55. package/dist/core/git-staleness.js +35 -5
  56. package/dist/core/group/bridge-db.js +318 -170
  57. package/dist/core/group/config-parser.js +23 -1
  58. package/dist/core/group/cross-impact.d.ts +44 -0
  59. package/dist/core/group/cross-impact.js +82 -8
  60. package/dist/core/group/extractors/elixir-workspace-extractor.d.ts +15 -0
  61. package/dist/core/group/extractors/elixir-workspace-extractor.js +204 -0
  62. package/dist/core/group/extractors/go-workspace-extractor.d.ts +14 -0
  63. package/dist/core/group/extractors/go-workspace-extractor.js +217 -0
  64. package/dist/core/group/extractors/grpc-extractor.js +15 -3
  65. package/dist/core/group/extractors/http-route-extractor.js +9 -1
  66. package/dist/core/group/extractors/include-extractor.d.ts +39 -0
  67. package/dist/core/group/extractors/include-extractor.js +565 -0
  68. package/dist/core/group/extractors/java-workspace-extractor.d.ts +16 -0
  69. package/dist/core/group/extractors/java-workspace-extractor.js +204 -0
  70. package/dist/core/group/extractors/manifest-extractor.js +34 -6
  71. package/dist/core/group/extractors/node-workspace-extractor.d.ts +14 -0
  72. package/dist/core/group/extractors/node-workspace-extractor.js +207 -0
  73. package/dist/core/group/extractors/python-workspace-extractor.d.ts +15 -0
  74. package/dist/core/group/extractors/python-workspace-extractor.js +205 -0
  75. package/dist/core/group/extractors/rust-workspace-extractor.d.ts +44 -0
  76. package/dist/core/group/extractors/rust-workspace-extractor.js +240 -0
  77. package/dist/core/group/extractors/thrift-extractor.d.ts +22 -0
  78. package/dist/core/group/extractors/thrift-extractor.js +282 -0
  79. package/dist/core/group/extractors/thrift-patterns/index.d.ts +4 -0
  80. package/dist/core/group/extractors/thrift-patterns/index.js +10 -0
  81. package/dist/core/group/extractors/thrift-patterns/java.d.ts +2 -0
  82. package/dist/core/group/extractors/thrift-patterns/java.js +220 -0
  83. package/dist/core/group/extractors/thrift-patterns/types.d.ts +17 -0
  84. package/dist/core/group/extractors/thrift-patterns/types.js +1 -0
  85. package/dist/core/group/extractors/topic-extractor.js +14 -14
  86. package/dist/core/group/extractors/workspace-extractor.d.ts +13 -0
  87. package/dist/core/group/extractors/workspace-extractor.js +65 -0
  88. package/dist/core/group/matching.d.ts +3 -3
  89. package/dist/core/group/matching.js +136 -50
  90. package/dist/core/group/service.d.ts +1 -0
  91. package/dist/core/group/service.js +5 -4
  92. package/dist/core/group/storage.js +70 -4
  93. package/dist/core/group/sync.js +85 -14
  94. package/dist/core/group/types.d.ts +22 -1
  95. package/dist/core/ingestion/ast-cache.js +2 -1
  96. package/dist/core/ingestion/call-processor.d.ts +3 -3
  97. package/dist/core/ingestion/call-processor.js +61 -67
  98. package/dist/core/ingestion/cluster-enricher.js +3 -2
  99. package/dist/core/ingestion/cobol/cobol-copy-expander.js +4 -20
  100. package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +2 -0
  101. package/dist/core/ingestion/cobol/cobol-preprocessor.js +14 -2
  102. package/dist/core/ingestion/constants.d.ts +4 -3
  103. package/dist/core/ingestion/constants.js +8 -3
  104. package/dist/core/ingestion/entry-point-scoring.d.ts +0 -18
  105. package/dist/core/ingestion/entry-point-scoring.js +7 -188
  106. package/dist/core/ingestion/field-extractors/configs/csharp.js +8 -3
  107. package/dist/core/ingestion/filesystem-walker.js +3 -2
  108. package/dist/core/ingestion/finalize-orchestrator.js +6 -3
  109. package/dist/core/ingestion/framework-detection.d.ts +0 -120
  110. package/dist/core/ingestion/framework-detection.js +7 -365
  111. package/dist/core/ingestion/heritage-processor.js +5 -4
  112. package/dist/core/ingestion/import-processor.js +15 -13
  113. package/dist/core/ingestion/language-config.js +6 -5
  114. package/dist/core/ingestion/language-provider.d.ts +23 -0
  115. package/dist/core/ingestion/languages/c-cpp.js +70 -0
  116. package/dist/core/ingestion/languages/cobol.js +2 -0
  117. package/dist/core/ingestion/languages/csharp/captures.js +97 -1
  118. package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +14 -13
  119. package/dist/core/ingestion/languages/csharp/namespace-siblings.js +62 -50
  120. package/dist/core/ingestion/languages/csharp/query.js +6 -0
  121. package/dist/core/ingestion/languages/csharp.js +49 -0
  122. package/dist/core/ingestion/languages/dart.js +36 -0
  123. package/dist/core/ingestion/languages/go/arity-metadata.d.ts +8 -0
  124. package/dist/core/ingestion/languages/go/arity-metadata.js +37 -0
  125. package/dist/core/ingestion/languages/go/arity.d.ts +2 -0
  126. package/dist/core/ingestion/languages/go/arity.js +14 -0
  127. package/dist/core/ingestion/languages/go/cache-stats.d.ts +7 -0
  128. package/dist/core/ingestion/languages/go/cache-stats.js +15 -0
  129. package/dist/core/ingestion/languages/go/captures.d.ts +2 -0
  130. package/dist/core/ingestion/languages/go/captures.js +128 -0
  131. package/dist/core/ingestion/languages/go/expand-wildcards.d.ts +15 -0
  132. package/dist/core/ingestion/languages/go/expand-wildcards.js +93 -0
  133. package/dist/core/ingestion/languages/go/import-decomposer.d.ts +3 -0
  134. package/dist/core/ingestion/languages/go/import-decomposer.js +44 -0
  135. package/dist/core/ingestion/languages/go/import-target.d.ts +21 -0
  136. package/dist/core/ingestion/languages/go/import-target.js +67 -0
  137. package/dist/core/ingestion/languages/go/index.d.ts +17 -0
  138. package/dist/core/ingestion/languages/go/index.js +17 -0
  139. package/dist/core/ingestion/languages/go/interface-impls.d.ts +4 -0
  140. package/dist/core/ingestion/languages/go/interface-impls.js +72 -0
  141. package/dist/core/ingestion/languages/go/interpret.d.ts +11 -0
  142. package/dist/core/ingestion/languages/go/interpret.js +146 -0
  143. package/dist/core/ingestion/languages/go/merge-bindings.d.ts +2 -0
  144. package/dist/core/ingestion/languages/go/merge-bindings.js +18 -0
  145. package/dist/core/ingestion/languages/go/method-owners.d.ts +17 -0
  146. package/dist/core/ingestion/languages/go/method-owners.js +96 -0
  147. package/dist/core/ingestion/languages/go/namespace-mirror.d.ts +15 -0
  148. package/dist/core/ingestion/languages/go/namespace-mirror.js +53 -0
  149. package/dist/core/ingestion/languages/go/package-siblings.d.ts +11 -0
  150. package/dist/core/ingestion/languages/go/package-siblings.js +84 -0
  151. package/dist/core/ingestion/languages/go/query.d.ts +3 -0
  152. package/dist/core/ingestion/languages/go/query.js +207 -0
  153. package/dist/core/ingestion/languages/go/range-binding.d.ts +8 -0
  154. package/dist/core/ingestion/languages/go/range-binding.js +108 -0
  155. package/dist/core/ingestion/languages/go/receiver-binding.d.ts +3 -0
  156. package/dist/core/ingestion/languages/go/receiver-binding.js +21 -0
  157. package/dist/core/ingestion/languages/go/scope-resolver.d.ts +2 -0
  158. package/dist/core/ingestion/languages/go/scope-resolver.js +33 -0
  159. package/dist/core/ingestion/languages/go/simple-hooks.d.ts +4 -0
  160. package/dist/core/ingestion/languages/go/simple-hooks.js +21 -0
  161. package/dist/core/ingestion/languages/go/type-binding.d.ts +3 -0
  162. package/dist/core/ingestion/languages/go/type-binding.js +237 -0
  163. package/dist/core/ingestion/languages/go.js +50 -0
  164. package/dist/core/ingestion/languages/java.js +21 -0
  165. package/dist/core/ingestion/languages/kotlin.js +41 -0
  166. package/dist/core/ingestion/languages/php.js +35 -0
  167. package/dist/core/ingestion/languages/python/captures.js +25 -2
  168. package/dist/core/ingestion/languages/python/import-target.js +121 -25
  169. package/dist/core/ingestion/languages/python/index.d.ts +1 -1
  170. package/dist/core/ingestion/languages/python/index.js +1 -1
  171. package/dist/core/ingestion/languages/python/simple-hooks.d.ts +3 -1
  172. package/dist/core/ingestion/languages/python/simple-hooks.js +8 -0
  173. package/dist/core/ingestion/languages/python.js +43 -1
  174. package/dist/core/ingestion/languages/ruby.js +25 -0
  175. package/dist/core/ingestion/languages/rust.js +35 -0
  176. package/dist/core/ingestion/languages/swift.js +68 -0
  177. package/dist/core/ingestion/languages/typescript/arity-metadata.d.ts +59 -0
  178. package/dist/core/ingestion/languages/typescript/arity-metadata.js +103 -0
  179. package/dist/core/ingestion/languages/typescript/arity.d.ts +37 -0
  180. package/dist/core/ingestion/languages/typescript/arity.js +54 -0
  181. package/dist/core/ingestion/languages/typescript/cache-stats.d.ts +17 -0
  182. package/dist/core/ingestion/languages/typescript/cache-stats.js +28 -0
  183. package/dist/core/ingestion/languages/typescript/captures.d.ts +28 -0
  184. package/dist/core/ingestion/languages/typescript/captures.js +473 -0
  185. package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +49 -0
  186. package/dist/core/ingestion/languages/typescript/import-decomposer.js +371 -0
  187. package/dist/core/ingestion/languages/typescript/import-target.d.ts +50 -0
  188. package/dist/core/ingestion/languages/typescript/import-target.js +61 -0
  189. package/dist/core/ingestion/languages/typescript/index.d.ts +94 -0
  190. package/dist/core/ingestion/languages/typescript/index.js +94 -0
  191. package/dist/core/ingestion/languages/typescript/interpret.d.ts +35 -0
  192. package/dist/core/ingestion/languages/typescript/interpret.js +317 -0
  193. package/dist/core/ingestion/languages/typescript/merge-bindings.d.ts +62 -0
  194. package/dist/core/ingestion/languages/typescript/merge-bindings.js +158 -0
  195. package/dist/core/ingestion/languages/typescript/query.d.ts +84 -0
  196. package/dist/core/ingestion/languages/typescript/query.js +978 -0
  197. package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +59 -0
  198. package/dist/core/ingestion/languages/typescript/receiver-binding.js +171 -0
  199. package/dist/core/ingestion/languages/typescript/scope-resolver.d.ts +16 -0
  200. package/dist/core/ingestion/languages/typescript/scope-resolver.js +113 -0
  201. package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +71 -0
  202. package/dist/core/ingestion/languages/typescript/simple-hooks.js +131 -0
  203. package/dist/core/ingestion/languages/typescript.js +151 -11
  204. package/dist/core/ingestion/languages/vue.js +2 -0
  205. package/dist/core/ingestion/method-extractors/configs/swift.js +3 -4
  206. package/dist/core/ingestion/method-extractors/generic.js +2 -1
  207. package/dist/core/ingestion/model/resolve.js +31 -11
  208. package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +14 -1
  209. package/dist/core/ingestion/parsing-processor.js +26 -14
  210. package/dist/core/ingestion/pipeline-phases/cobol.js +4 -3
  211. package/dist/core/ingestion/pipeline-phases/communities.js +2 -1
  212. package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +5 -4
  213. package/dist/core/ingestion/pipeline-phases/cross-file.js +3 -2
  214. package/dist/core/ingestion/pipeline-phases/markdown.js +2 -1
  215. package/dist/core/ingestion/pipeline-phases/mro.js +2 -1
  216. package/dist/core/ingestion/pipeline-phases/orm.js +2 -1
  217. package/dist/core/ingestion/pipeline-phases/parse-impl.js +9 -8
  218. package/dist/core/ingestion/pipeline-phases/processes.js +12 -6
  219. package/dist/core/ingestion/pipeline-phases/routes.js +4 -3
  220. package/dist/core/ingestion/pipeline-phases/runner.js +3 -2
  221. package/dist/core/ingestion/pipeline-phases/tools.d.ts +1 -0
  222. package/dist/core/ingestion/pipeline-phases/tools.js +12 -5
  223. package/dist/core/ingestion/process-processor.js +4 -3
  224. package/dist/core/ingestion/registry-primary-flag.d.ts +3 -1
  225. package/dist/core/ingestion/registry-primary-flag.js +5 -1
  226. package/dist/core/ingestion/scope-extractor-bridge.d.ts +5 -2
  227. package/dist/core/ingestion/scope-extractor-bridge.js +9 -4
  228. package/dist/core/ingestion/scope-extractor.js +37 -23
  229. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +132 -11
  230. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +48 -10
  231. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +33 -3
  232. package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +283 -14
  233. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -1
  234. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +49 -1
  235. package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +30 -3
  236. package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +110 -38
  237. package/dist/core/ingestion/scope-resolution/passes/mro.js +5 -2
  238. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +57 -26
  239. package/dist/core/ingestion/scope-resolution/pipeline/phase.js +14 -4
  240. package/dist/core/ingestion/scope-resolution/pipeline/registry.js +4 -0
  241. package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +8 -0
  242. package/dist/core/ingestion/scope-resolution/pipeline/run.js +48 -11
  243. package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.d.ts +39 -0
  244. package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +65 -0
  245. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +1 -1
  246. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +7 -1
  247. package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +54 -11
  248. package/dist/core/ingestion/scope-resolution/scope/walkers.js +128 -30
  249. package/dist/core/ingestion/tree-sitter-queries.d.ts +2 -2
  250. package/dist/core/ingestion/tree-sitter-queries.js +149 -0
  251. package/dist/core/ingestion/type-env.js +2 -1
  252. package/dist/core/ingestion/type-extractors/swift.js +7 -4
  253. package/dist/core/ingestion/utils/ast-helpers.d.ts +14 -1
  254. package/dist/core/ingestion/utils/ast-helpers.js +27 -1
  255. package/dist/core/ingestion/utils/env.d.ts +10 -0
  256. package/dist/core/ingestion/utils/env.js +14 -0
  257. package/dist/core/ingestion/utils/max-file-size.js +2 -1
  258. package/dist/core/ingestion/vue-sfc-extractor.js +18 -1
  259. package/dist/core/ingestion/workers/parse-worker.d.ts +1 -0
  260. package/dist/core/ingestion/workers/parse-worker.js +20 -13
  261. package/dist/core/ingestion/workers/worker-pool.d.ts +11 -4
  262. package/dist/core/ingestion/workers/worker-pool.js +303 -49
  263. package/dist/core/lbug/csv-generator.js +5 -1
  264. package/dist/core/lbug/extension-loader.d.ts +86 -0
  265. package/dist/core/lbug/extension-loader.js +186 -0
  266. package/dist/core/lbug/lbug-adapter.d.ts +57 -21
  267. package/dist/core/lbug/lbug-adapter.js +205 -164
  268. package/dist/core/lbug/lbug-config.d.ts +102 -0
  269. package/dist/core/lbug/lbug-config.js +303 -0
  270. package/dist/core/lbug/pool-adapter.d.ts +1 -4
  271. package/dist/core/lbug/pool-adapter.js +82 -39
  272. package/dist/core/lbug/schema.d.ts +1 -1
  273. package/dist/core/lbug/schema.js +12 -1
  274. package/dist/core/logger.d.ts +125 -0
  275. package/dist/core/logger.js +323 -0
  276. package/dist/core/platform/capabilities.d.ts +24 -0
  277. package/dist/core/platform/capabilities.js +54 -0
  278. package/dist/core/run-analyze.d.ts +8 -1
  279. package/dist/core/run-analyze.js +75 -22
  280. package/dist/core/search/bm25-index.d.ts +6 -18
  281. package/dist/core/search/bm25-index.js +35 -126
  282. package/dist/core/search/fts-indexes.d.ts +1 -0
  283. package/dist/core/search/fts-indexes.js +7 -0
  284. package/dist/core/search/fts-schema.d.ts +6 -0
  285. package/dist/core/search/fts-schema.js +7 -0
  286. package/dist/core/search/hybrid-search.d.ts +4 -3
  287. package/dist/core/search/hybrid-search.js +6 -5
  288. package/dist/core/tree-sitter/parser-loader.d.ts +2 -2
  289. package/dist/core/tree-sitter/parser-loader.js +173 -68
  290. package/dist/core/wiki/cursor-client.js +2 -1
  291. package/dist/core/wiki/llm-client.js +6 -11
  292. package/dist/mcp/compatible-stdio-transport.js +7 -1
  293. package/dist/mcp/core/embedder.js +37 -14
  294. package/dist/mcp/core/lbug-adapter.d.ts +7 -1
  295. package/dist/mcp/core/lbug-adapter.js +7 -1
  296. package/dist/mcp/local/local-backend.d.ts +9 -0
  297. package/dist/mcp/local/local-backend.js +199 -45
  298. package/dist/mcp/server.js +26 -8
  299. package/dist/mcp/stdio-capture.d.ts +40 -0
  300. package/dist/mcp/stdio-capture.js +53 -0
  301. package/dist/mcp/stdio-context.d.ts +47 -0
  302. package/dist/mcp/stdio-context.js +145 -0
  303. package/dist/mcp/tools.d.ts +2 -0
  304. package/dist/mcp/tools.js +33 -0
  305. package/dist/server/api.d.ts +25 -0
  306. package/dist/server/api.js +323 -79
  307. package/dist/server/git-clone.d.ts +75 -2
  308. package/dist/server/git-clone.js +229 -13
  309. package/dist/server/mcp-http.js +2 -1
  310. package/dist/server/validation.d.ts +98 -0
  311. package/dist/server/validation.js +142 -0
  312. package/dist/storage/git.d.ts +57 -0
  313. package/dist/storage/git.js +124 -2
  314. package/dist/storage/repo-manager.d.ts +40 -2
  315. package/dist/storage/repo-manager.js +121 -13
  316. package/hooks/claude/gitnexus-hook.cjs +62 -3
  317. package/package.json +14 -10
  318. package/scripts/build-tree-sitter-dart.cjs +53 -0
  319. package/scripts/build-tree-sitter-proto.cjs +12 -1
  320. package/scripts/build.js +22 -2
  321. package/scripts/install-duckdb-extension.mjs +48 -0
  322. package/skills/gitnexus-cli.md +1 -1
  323. package/vendor/tree-sitter-dart/README.md +18 -0
  324. package/vendor/tree-sitter-dart/binding.gyp +31 -0
  325. package/vendor/tree-sitter-dart/bindings/node/binding.cc +20 -0
  326. package/vendor/tree-sitter-dart/bindings/node/index.d.ts +28 -0
  327. package/vendor/tree-sitter-dart/bindings/node/index.js +7 -0
  328. package/vendor/tree-sitter-dart/grammar.js +2895 -0
  329. package/vendor/tree-sitter-dart/package.json +18 -0
  330. package/vendor/tree-sitter-dart/queries/highlights.scm +246 -0
  331. package/vendor/tree-sitter-dart/queries/tags.scm +92 -0
  332. package/vendor/tree-sitter-dart/queries/test.scm +1 -0
  333. package/vendor/tree-sitter-dart/src/grammar.json +12459 -0
  334. package/vendor/tree-sitter-dart/src/node-types.json +15055 -0
  335. package/vendor/tree-sitter-dart/src/parser.c +196127 -0
  336. package/vendor/tree-sitter-dart/src/scanner.c +130 -0
  337. package/vendor/tree-sitter-dart/src/tree_sitter/alloc.h +54 -0
  338. package/vendor/tree-sitter-dart/src/tree_sitter/array.h +290 -0
  339. package/vendor/tree-sitter-dart/src/tree_sitter/parser.h +265 -0
  340. package/vendor/tree-sitter-swift/LICENSE +21 -0
  341. package/vendor/tree-sitter-swift/README.md +139 -0
  342. package/vendor/tree-sitter-swift/bindings/node/index.d.ts +28 -0
  343. package/vendor/tree-sitter-swift/bindings/node/index.js +7 -0
  344. package/vendor/tree-sitter-swift/package.json +28 -0
  345. package/vendor/tree-sitter-swift/prebuilds/darwin-arm64/tree-sitter-swift.node +0 -0
  346. package/vendor/tree-sitter-swift/prebuilds/darwin-x64/tree-sitter-swift.node +0 -0
  347. package/vendor/tree-sitter-swift/prebuilds/linux-arm64/tree-sitter-swift.node +0 -0
  348. package/vendor/tree-sitter-swift/prebuilds/linux-x64/tree-sitter-swift.node +0 -0
  349. package/vendor/tree-sitter-swift/prebuilds/win32-arm64/tree-sitter-swift.node +0 -0
  350. package/vendor/tree-sitter-swift/prebuilds/win32-x64/tree-sitter-swift.node +0 -0
  351. package/vendor/tree-sitter-swift/src/node-types.json +30694 -0
  352. package/web/assets/agent-Dl2d-mDi.js +597 -0
  353. package/web/assets/architecture-YZFGNWBL-S5CXDPWN-BYXnTu07.js +1 -0
  354. package/web/assets/architectureDiagram-EMZXCZ2Q-uiiIna83.js +36 -0
  355. package/web/assets/blockDiagram-IGV67L2C-uBKdDzXA.js +132 -0
  356. package/web/assets/c4Diagram-DFAF54RM-DTxaX43T.js +10 -0
  357. package/web/assets/chunk-3GS5O3IE-BxKKu7d7.js +231 -0
  358. package/web/assets/chunk-3YCYZ6SJ-BJZnGFjg.js +1 -0
  359. package/web/assets/chunk-6NTNNK5N-CIL_eO2d.js +1 -0
  360. package/web/assets/chunk-7RZVMHOQ-BdIU-RGO.js +321 -0
  361. package/web/assets/chunk-A34GCYZU-Dv4Vkem9.js +1 -0
  362. package/web/assets/chunk-AEOMTBSW-D7qjBMHW.js +1 -0
  363. package/web/assets/chunk-CilyBKbf.js +1 -0
  364. package/web/assets/chunk-DJ7UZH7F-Cskl-nb3.js +1 -0
  365. package/web/assets/chunk-DKKBVRCY-D3S2BD56.js +4 -0
  366. package/web/assets/chunk-DU5LTGQ6-B8Zh51LG.js +1 -0
  367. package/web/assets/chunk-FXACKDTF-Cb4xHVUz.js +159 -0
  368. package/web/assets/chunk-H3VCZNTA-BOGhqvxW.js +1 -0
  369. package/web/assets/chunk-HN6EAY2L-CitKFy1e.js +1 -0
  370. package/web/assets/chunk-KSICW3F5-C2tZmXwv.js +15 -0
  371. package/web/assets/chunk-O5ABG6QK-V3sk7Bps.js +1 -0
  372. package/web/assets/chunk-PK6DOVAG-FvG7aKfZ.js +206 -0
  373. package/web/assets/chunk-RNJOYNJ4-BPANsy8V.js +1 -0
  374. package/web/assets/chunk-RWUO3TPN-BHusg2jI.js +1 -0
  375. package/web/assets/chunk-TBF5ZNIQ-CXamrpH3.js +1 -0
  376. package/web/assets/chunk-TU3PZOEN-DE5Qhc0N.js +1 -0
  377. package/web/assets/chunk-TYMNRAUI-BnMe6HfP.js +1 -0
  378. package/web/assets/chunk-VELTKBKT-C9dVN39o.js +1 -0
  379. package/web/assets/chunk-W7ZLLLMY-BqZFKM5j.js +1 -0
  380. package/web/assets/chunk-WSB5WSVC-EKS7-Nnc.js +1 -0
  381. package/web/assets/chunk-XGPFEOL4-BBab-enK.js +1 -0
  382. package/web/assets/classDiagram-PPOCWD7C-B-LkKU0P.js +1 -0
  383. package/web/assets/classDiagram-v2-23LJLIIU-_NGI4VEh.js +1 -0
  384. package/web/assets/context-builder-CqQNhRj1.js +15 -0
  385. package/web/assets/cose-bilkent-PNC4W37J-DjEQkTZ4.js +1 -0
  386. package/web/assets/dagre-E77IOHMT-D6Xacg1x.js +4 -0
  387. package/web/assets/diagram-H7BISOXX-CMuISoJL.js +43 -0
  388. package/web/assets/diagram-JC5VWROH-DHq_eoeM.js +24 -0
  389. package/web/assets/diagram-LXUTUG65-C0NczIgW.js +10 -0
  390. package/web/assets/diagram-WEHSV5V5-WsBnpSuc.js +24 -0
  391. package/web/assets/erDiagram-GCSMX5X6-DxHFHFR6.js +85 -0
  392. package/web/assets/flowDiagram-OTCZ4VVT-_G1VxyQS.js +162 -0
  393. package/web/assets/ganttDiagram-MUNLMDZQ-BIHObj0t.js +292 -0
  394. package/web/assets/gitGraph-7Q5UKJZL-54BCDZD5-BXJXsixL.js +1 -0
  395. package/web/assets/gitGraphDiagram-3HKGZ4G3-COZUkHTD.js +106 -0
  396. package/web/assets/index-BleGLU8S.css +2 -0
  397. package/web/assets/index-DDcYO1IJ.js +886 -0
  398. package/web/assets/info-OMHHGYJF-BF2H5H6G-C820LK0J.js +1 -0
  399. package/web/assets/infoDiagram-MN7RKWGX-BeOjfPc_.js +2 -0
  400. package/web/assets/ishikawaDiagram-YMYX4NHK-C-JI2Ih7.js +70 -0
  401. package/web/assets/journeyDiagram-SO5T7YLQ-IPX4h3iD.js +139 -0
  402. package/web/assets/kanban-definition-LJHFXRCJ-B23LtshQ.js +89 -0
  403. package/web/assets/katex-GD7MH7QM-CJiOjBBJ.js +261 -0
  404. package/web/assets/mindmap-definition-2EUWGEK5-DJKUsrCo.js +96 -0
  405. package/web/assets/packet-4T2RLAQJ-EV4IVRXR-BvWtM5jq.js +1 -0
  406. package/web/assets/pie-ZZUOXDRM-N23DN5KN-BnDgj0TQ.js +1 -0
  407. package/web/assets/pieDiagram-3IATQBI2-Bj26KTKk.js +30 -0
  408. package/web/assets/quadrantDiagram-E256RVCF-VAk5oIRr.js +7 -0
  409. package/web/assets/radar-PYXPWWZC-P6TP7ZYP-2IuDlZ6r.js +1 -0
  410. package/web/assets/requirementDiagram-M5DCFWZL-CmlTJ_vQ.js +84 -0
  411. package/web/assets/sankeyDiagram-L3NBLAOT-C-f_DdcX.js +10 -0
  412. package/web/assets/sequenceDiagram-ZOUHS735-DmtNf1NF.js +157 -0
  413. package/web/assets/stateDiagram-MLPALWAM-Lq7UVrkj.js +1 -0
  414. package/web/assets/stateDiagram-v2-B5LQ5ZB2-DCiXBPeS.js +1 -0
  415. package/web/assets/timeline-definition-5SPVSISX-BkpqZxt2.js +120 -0
  416. package/web/assets/treeView-SZITEDCU-5DXDK3XO-Ipq1EIaF.js +1 -0
  417. package/web/assets/treemap-W4RFUUIX-WYLRDWKO-DESFxovu.js +1 -0
  418. package/web/assets/vennDiagram-IE5QUKF5-iAJ08JBe.js +34 -0
  419. package/web/assets/wardley-RL74JXVD-BCRCBASE-BVkhckBY.js +1 -0
  420. package/web/assets/wardleyDiagram-XU3VSMPF-BDiKTkL4.js +20 -0
  421. package/web/assets/xychartDiagram-ZHJ5623Y-CknyZyQK.js +7 -0
  422. package/web/index.html +21 -0
  423. package/scripts/patch-tree-sitter-swift.cjs +0 -78
package/README.md CHANGED
@@ -156,6 +156,7 @@ gitnexus analyze --embeddings # Enable embedding generation (slower, better s
156
156
  gitnexus analyze --skip-agents-md # Preserve custom AGENTS.md/CLAUDE.md gitnexus section edits
157
157
  gitnexus analyze --verbose # Log skipped files when parsers are unavailable
158
158
  gitnexus analyze --max-file-size 1024 # Skip files larger than N KB (default: 512, cap: 32768)
159
+ gitnexus analyze --worker-timeout 60 # Increase worker idle timeout for slow parses
159
160
  gitnexus mcp # Start MCP server (stdio) — serves all indexed repos
160
161
  gitnexus serve # Start local HTTP server (multi-repo) for web UI
161
162
  gitnexus index # Register an existing .gitnexus/ folder into the global registry
@@ -295,6 +296,25 @@ If `npm install -g gitnexus` fails on native modules:
295
296
  npm install -g gitnexus
296
297
  ```
297
298
 
299
+ ### Analyze warns about unavailable FTS or VECTOR extensions
300
+
301
+ GitNexus uses optional DuckDB extensions for BM25 and vector search. The `gitnexus serve` and MCP read paths only ever try to `LOAD` the extensions — they never block on a network install. The `analyze` command, by default, attempts one bounded out-of-process `INSTALL` if `LOAD` fails and proceeds even when that install times out, so the index is always written to disk; BM25/vector search degrade gracefully until the extensions become available.
302
+
303
+ Configure the behavior with two environment variables:
304
+
305
+ | Variable | Values | Default | Effect |
306
+ |----------|--------|---------|--------|
307
+ | `GITNEXUS_LBUG_EXTENSION_INSTALL` | `auto`, `load-only`, `never` | `auto` | `auto` runs one bounded INSTALL if LOAD fails. `load-only` only uses already-installed extensions (recommended for offline / firewalled environments). `never` skips optional extensions entirely. |
308
+ | `GITNEXUS_LBUG_EXTENSION_INSTALL_TIMEOUT_MS` | positive integer | `15000` | Wall-clock budget for the out-of-process `INSTALL` child before it is killed. |
309
+
310
+ ```bash
311
+ # Offline/airgapped: never reach the network for extensions
312
+ GITNEXUS_LBUG_EXTENSION_INSTALL=load-only npx gitnexus analyze
313
+
314
+ # Slow network: give extension downloads more time
315
+ GITNEXUS_LBUG_EXTENSION_INSTALL_TIMEOUT_MS=30000 npx gitnexus analyze
316
+ ```
317
+
298
318
  ### Analysis runs out of memory
299
319
 
300
320
  For very large repositories:
@@ -323,6 +343,21 @@ npx gitnexus analyze
323
343
 
324
344
  Values above **32768 KB (32 MB)** are clamped to the tree-sitter parser ceiling; invalid values fall back to the 512 KB default with a one-time warning. When an override is active, `analyze` prints the effective threshold in its startup banner (e.g. `GITNEXUS_MAX_FILE_SIZE: effective threshold 2048KB (default 512KB)`).
325
345
 
346
+ ### Analyze reports a worker timeout
347
+
348
+ Worker parse timeouts are recoverable. GitNexus retries stalled worker jobs with backoff, splits large jobs to isolate slow files, and falls back to the sequential parser when needed. If a large repository needs more time per worker job, use either:
349
+
350
+ ```bash
351
+ # CLI flag, in seconds
352
+ npx gitnexus analyze --worker-timeout 60
353
+
354
+ # Environment variable, in milliseconds
355
+ export GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS=60000
356
+ npx gitnexus analyze
357
+ ```
358
+
359
+ For repositories with very large source files, `GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES` controls the worker job byte budget. The default is **8388608 bytes (8 MB)**.
360
+
326
361
  ## Privacy
327
362
 
328
363
  - All processing happens locally on your machine
@@ -44,7 +44,7 @@ export { CLASS_KINDS, METHOD_KINDS, FIELD_KINDS } from './scope-resolution/regis
44
44
  export type { RegistryContext, RegistryProviders, OwnerScopedContributor, ArityVerdict, } from './scope-resolution/registries/context.js';
45
45
  export { makeScopeId, clearScopeIdInternPool } from './scope-resolution/scope-id.js';
46
46
  export type { ScopeIdInput } from './scope-resolution/scope-id.js';
47
- export { buildScopeTree, ScopeTreeInvariantError } from './scope-resolution/scope-tree.js';
47
+ export { buildScopeTree, canParentScope, ScopeTreeInvariantError, } from './scope-resolution/scope-tree.js';
48
48
  export type { ScopeTree } from './scope-resolution/scope-tree.js';
49
49
  export { buildPositionIndex } from './scope-resolution/position-index.js';
50
50
  export type { PositionIndex } from './scope-resolution/position-index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export { compareByConfidenceWithTiebreaks, CONFIDENCE_EPSILON, } from './scope-r
31
31
  export { CLASS_KINDS, METHOD_KINDS, FIELD_KINDS } from './scope-resolution/registries/context.js';
32
32
  // Scope tree spine + position lookup (RFC §2.2 + §3.1; Ring 2 SHARED #912)
33
33
  export { makeScopeId, clearScopeIdInternPool } from './scope-resolution/scope-id.js';
34
- export { buildScopeTree, ScopeTreeInvariantError } from './scope-resolution/scope-tree.js';
34
+ export { buildScopeTree, canParentScope, ScopeTreeInvariantError, } from './scope-resolution/scope-tree.js';
35
35
  export { buildPositionIndex } from './scope-resolution/position-index.js';
36
36
  // Shadow-mode diff + aggregation (RFC §6.3; Ring 2 SHARED #918)
37
37
  export { diffResolutions } from './scope-resolution/shadow/diff.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAiCjG,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAOxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAQlG,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAiCjG,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAOxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAQlG,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
@@ -26,9 +26,9 @@
26
26
  * (`resolveImportTarget`, `expandsWildcardTo`, `mergeBindings`) that
27
27
  * match the LanguageProvider surface from #911.
28
28
  *
29
- * **Dynamic imports rule.** `kind === 'dynamic-unresolved'` passes through
30
- * as an `ImportEdge { kind: 'dynamic-unresolved', targetFile: null }`
31
- * with no `BindingRef`. They are parse-time signals, not linkable targets.
29
+ * **Non-binding imports rule.** `dynamic-unresolved` passes through with
30
+ * `targetFile: null`; `dynamic-resolved` and `side-effect` resolve to
31
+ * file-level `ImportEdge`s. None of these materialize `BindingRef`s.
32
32
  */
33
33
  import type { SymbolDefinition } from './symbol-definition.js';
34
34
  import type { BindingRef, ImportEdge, ParsedImport, ScopeId, WorkspaceIndex } from './types.js';
@@ -41,20 +41,28 @@ export interface FinalizeFile {
41
41
  /**
42
42
  * Defs exported from this file — the "what other files can import by name"
43
43
  * surface. Typically those with `isExported: true` (the module's own
44
- * declarations) plus, for multi-hop re-export chains, the re-exported
45
- * names the parser chose to surface here.
44
+ * declarations); parsers MAY also surface re-exported names here as a
45
+ * shortcut, but it is no longer required for correctness.
46
46
  *
47
47
  * **Multi-hop re-export contract.** `finalize` resolves an edge
48
- * `A → B (importedName: 'X')` by looking up `X` in `B.localDefs`. If B
49
- * only has `export { X } from './C'` and the parser *does not* include
50
- * `X` in `B.localDefs`, A's edge hits the fixpoint cap and is marked
51
- * `linkStatus: 'unresolved'`. The fixpoint does NOT mutate `localDefs`
52
- * across iterations it is static input.
48
+ * `A → B (importedName: 'X')` by first looking up `X` in `B.localDefs`.
49
+ * If `B` only has `export { X } from './C'` and does NOT surface `X` in
50
+ * its own `localDefs`, `finalize` falls back to the precomputed
51
+ * per-file re-export closure (`buildReexportClosures`), which encodes
52
+ * every name reachable through `B`'s named and wildcard re-exports —
53
+ * including transitively through cyclic SCCs. The lookup is O(1) and
54
+ * inherits the upstream `targetDefId`, populating `transitiveVia` with
55
+ * the file paths traversed to reach the leaf def.
53
56
  *
54
- * Parsers that want multi-hop re-export chains to settle end-to-end must
55
- * include re-exported names in the intermediate file's `localDefs` (with
56
- * the original `DefId` of the source symbol). This keeps the algorithm
57
- * O(1) per lookup and avoids graph-crawl during finalize.
57
+ * Surfacing re-exported names in `localDefs` is still a valid (and
58
+ * slightly cheaper) optimization: the direct lookup short-circuits the
59
+ * closure consult. Parsers SHOULD prefer surfacing names they can resolve
60
+ * statically (e.g., `export { X } from './c'` when `c.ts` is parsed in
61
+ * the same workspace), and rely on the closure for the long tail of
62
+ * barrel patterns.
63
+ *
64
+ * The fixpoint does NOT mutate `localDefs` across iterations — it is
65
+ * static input.
58
66
  */
59
67
  readonly localDefs: readonly SymbolDefinition[];
60
68
  }
@@ -75,7 +83,7 @@ export interface FinalizeHooks {
75
83
  * Return `null` when no target file is resolvable (e.g., `np.foo` when
76
84
  * `numpy` is external to the workspace).
77
85
  */
78
- resolveImportTarget(targetRaw: string, fromFile: string, workspaceIndex: WorkspaceIndex): string | null;
86
+ resolveImportTarget(targetRaw: string, fromFile: string, workspaceIndex: WorkspaceIndex): string | readonly string[] | null;
79
87
  /**
80
88
  * For a wildcard `import * from M`, return the names visible in the
81
89
  * exporting module scope `M`. The finalize pass looks each name up in
@@ -101,20 +109,22 @@ export interface FinalizedScc {
101
109
  /**
102
110
  * Counters reported by `finalize`.
103
111
  *
104
- * **Counting granularity** — all edge counters are **per-`ParsedImport`**,
105
- * not per-materialized-`ImportEdge`. A single `wildcard` ParsedImport that
106
- * expands to N exports counts as one linked edge in these stats; the
107
- * materialized output (`FinalizeOutput.imports`) will have N edges for
108
- * that input. `dynamic-unresolved` ParsedImports count as linked (they
109
- * pass through with no `linkStatus`), so `linkedEdges` ≠ "has a
112
+ * **Counting granularity** — `totalEdges` is **per-generated-`ImportEdgeDraft`**,
113
+ * which may exceed the number of `ParsedImport` records when
114
+ * `resolveImportTarget` returns a multi-file array (e.g. Go package-scoped
115
+ * imports fan out to every `.go` file in the target directory). A single
116
+ * `wildcard` ParsedImport that expands to N exports also counts as one
117
+ * linked edge here; the materialized output (`FinalizeOutput.imports`) will
118
+ * have N edges for that input. `dynamic-unresolved` ParsedImports count as
119
+ * linked (they pass through with no `linkStatus`), so `linkedEdges` ≠ "has a
110
120
  * BindingRef" — use the `bindings` map for that.
111
121
  *
112
- * In other words: `totalEdges === input.parsedImports.length` summed
122
+ * In other words: `totalEdges >= input.parsedImports.length` summed
113
123
  * across files, and `linkedEdges + unresolvedEdges === totalEdges`.
114
124
  */
115
125
  export interface FinalizeStats {
116
126
  readonly totalFiles: number;
117
- /** Total `ParsedImport` records seen across all files. */
127
+ /** Total `ImportEdgeDraft` records generated (≥ ParsedImport count). */
118
128
  readonly totalEdges: number;
119
129
  /**
120
130
  * `ParsedImport`s whose finalized edge does NOT carry
@@ -1 +1 @@
1
- {"version":3,"file":"finalize-algorithm.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhG,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,GAAG,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IAEjG;;;;;;OAMG;IACH,aAAa,CACX,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,OAAO,GACb,SAAS,UAAU,EAAE,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpF,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CAiInF"}
1
+ {"version":3,"file":"finalize-algorithm.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/finalize-algorithm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhG,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;IAEjG;;;;;;OAMG;IACH,aAAa,CACX,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,KAAK,EAAE,OAAO,GACb,SAAS,UAAU,EAAE,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpF,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CA8InF"}