gitnexus 1.6.10-rc.21 → 1.6.10-rc.211

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 (870) hide show
  1. package/README.md +212 -22
  2. package/dist/_shared/graph/types.d.ts +27 -8
  3. package/dist/_shared/graph/types.d.ts.map +1 -1
  4. package/dist/_shared/index.d.ts +4 -3
  5. package/dist/_shared/index.d.ts.map +1 -1
  6. package/dist/_shared/index.js +1 -1
  7. package/dist/_shared/index.js.map +1 -1
  8. package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
  9. package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
  10. package/dist/_shared/integrations/resilient-fetch.d.ts +19 -1
  11. package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
  12. package/dist/_shared/integrations/resilient-fetch.js +23 -10
  13. package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
  14. package/dist/_shared/language-detection.d.ts.map +1 -1
  15. package/dist/_shared/lbug/schema-constants.d.ts +2 -2
  16. package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
  17. package/dist/_shared/lbug/schema-constants.js +3 -0
  18. package/dist/_shared/lbug/schema-constants.js.map +1 -1
  19. package/dist/_shared/scope-resolution/callable-flow-site.d.ts +110 -0
  20. package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
  21. package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
  22. package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
  23. package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
  24. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +6 -1
  25. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
  26. package/dist/_shared/scope-resolution/finalize-algorithm.js +316 -37
  27. package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
  28. package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
  29. package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
  30. package/dist/_shared/scope-resolution/reference-site.d.ts +124 -1
  31. package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
  32. package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
  33. package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
  34. package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
  35. package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
  36. package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
  37. package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
  38. package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
  39. package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
  40. package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
  41. package/dist/_shared/scope-resolution/types.d.ts +297 -5
  42. package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
  43. package/dist/cli/ai-context.d.ts +10 -2
  44. package/dist/cli/ai-context.js +128 -61
  45. package/dist/cli/analyze-config.d.ts +1 -1
  46. package/dist/cli/analyze-options.d.ts +131 -0
  47. package/dist/cli/analyze-options.js +1 -0
  48. package/dist/cli/analyze.d.ts +25 -114
  49. package/dist/cli/analyze.js +194 -36
  50. package/dist/cli/cli-message.d.ts +1 -1
  51. package/dist/cli/detect-changes-format.js +19 -2
  52. package/dist/cli/doctor.d.ts +23 -0
  53. package/dist/cli/doctor.js +72 -9
  54. package/dist/cli/editor-targets.js +6 -0
  55. package/dist/cli/eval-server.d.ts +23 -1
  56. package/dist/cli/eval-server.js +128 -9
  57. package/dist/cli/format-symbol.d.ts +15 -0
  58. package/dist/cli/format-symbol.js +17 -0
  59. package/dist/cli/generated-skill.d.ts +17 -0
  60. package/dist/cli/generated-skill.js +1 -0
  61. package/dist/cli/group.js +23 -2
  62. package/dist/cli/help-i18n.js +3 -0
  63. package/dist/cli/i18n/en.d.ts +17 -8
  64. package/dist/cli/i18n/en.js +19 -8
  65. package/dist/cli/i18n/resources.d.ts +26 -8
  66. package/dist/cli/i18n/zh-CN.d.ts +9 -0
  67. package/dist/cli/i18n/zh-CN.js +17 -8
  68. package/dist/cli/index.js +16 -9
  69. package/dist/cli/lazy-action.d.ts +7 -0
  70. package/dist/cli/lazy-action.js +27 -0
  71. package/dist/cli/mcp.js +6 -3
  72. package/dist/cli/resolve-invocation.d.ts +7 -3
  73. package/dist/cli/resolve-invocation.js +7 -3
  74. package/dist/cli/setup.d.ts +8 -0
  75. package/dist/cli/setup.js +30 -7
  76. package/dist/cli/skill-gen.d.ts +1 -6
  77. package/dist/cli/skill-gen.js +88 -18
  78. package/dist/cli/standard-skills.d.ts +76 -0
  79. package/dist/cli/standard-skills.js +45 -0
  80. package/dist/cli/status.d.ts +4 -1
  81. package/dist/cli/status.js +57 -4
  82. package/dist/cli/tool.d.ts +1 -0
  83. package/dist/cli/tool.js +75 -7
  84. package/dist/cli/uninstall.js +7 -2
  85. package/dist/cli/wiki.d.ts +1 -0
  86. package/dist/cli/wiki.js +59 -10
  87. package/dist/config/ignore-service.d.ts +2 -0
  88. package/dist/config/ignore-service.js +31 -4
  89. package/dist/core/analysis-features.d.ts +21 -0
  90. package/dist/core/analysis-features.js +59 -0
  91. package/dist/core/analyzer-identity.d.ts +154 -0
  92. package/dist/core/analyzer-identity.js +2158 -0
  93. package/dist/core/augmentation/engine.js +95 -76
  94. package/dist/core/embedding-checkpoint.d.ts +143 -0
  95. package/dist/core/embedding-checkpoint.js +221 -0
  96. package/dist/core/embedding-count.d.ts +61 -0
  97. package/dist/core/embedding-count.js +69 -0
  98. package/dist/core/embeddings/ast-utils.js +9 -1
  99. package/dist/core/embeddings/embedder.d.ts +3 -2
  100. package/dist/core/embeddings/embedder.js +8 -5
  101. package/dist/core/embeddings/embedding-identity.d.ts +11 -0
  102. package/dist/core/embeddings/embedding-identity.js +24 -0
  103. package/dist/core/embeddings/embedding-pipeline.d.ts +24 -1
  104. package/dist/core/embeddings/embedding-pipeline.js +341 -19
  105. package/dist/core/embeddings/http-client.d.ts +10 -2
  106. package/dist/core/embeddings/http-client.js +282 -47
  107. package/dist/core/embeddings/node-module-compat.d.ts +4 -2
  108. package/dist/core/embeddings/node-module-compat.js +4 -2
  109. package/dist/core/embeddings/onnxruntime-common-resolver.js +5 -5
  110. package/dist/core/embeddings/onnxruntime-node-resolver.js +2 -2
  111. package/dist/core/embeddings/runtime-install.js +1 -1
  112. package/dist/core/git-staleness.js +1 -1
  113. package/dist/core/graph/graph.js +3 -0
  114. package/dist/core/graph/import-cycles.d.ts +194 -3
  115. package/dist/core/graph/import-cycles.js +522 -73
  116. package/dist/core/graph/types.d.ts +18 -0
  117. package/dist/core/group/bridge-db.js +5 -27
  118. package/dist/core/group/cross-impact.d.ts +21 -0
  119. package/dist/core/group/cross-impact.js +128 -15
  120. package/dist/core/group/cross-trace.js +27 -16
  121. package/dist/core/group/extractors/http-patterns/java.js +91 -14
  122. package/dist/core/group/extractors/http-patterns/node.js +19 -0
  123. package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
  124. package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
  125. package/dist/core/group/extractors/http-route-extractor.js +122 -48
  126. package/dist/core/group/extractors/include-extractor.js +20 -2
  127. package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
  128. package/dist/core/group/extractors/manifest-extractor.js +7 -7
  129. package/dist/core/group/service.js +10 -1
  130. package/dist/core/group/storage.js +2 -33
  131. package/dist/core/group/types.d.ts +18 -0
  132. package/dist/core/incremental/subgraph-extract.d.ts +9 -6
  133. package/dist/core/incremental/subgraph-extract.js +33 -10
  134. package/dist/core/index-freshness.d.ts +80 -0
  135. package/dist/core/index-freshness.js +120 -0
  136. package/dist/core/ingestion/call-processor.d.ts +13 -1
  137. package/dist/core/ingestion/call-processor.js +110 -3
  138. package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
  139. package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
  140. package/dist/core/ingestion/cfg/emit.d.ts +8 -23
  141. package/dist/core/ingestion/cfg/emit.js +9 -23
  142. package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
  143. package/dist/core/ingestion/class-extractors/configs/jvm.js +29 -0
  144. package/dist/core/ingestion/cluster-enricher.js +8 -4
  145. package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
  146. package/dist/core/ingestion/community-processor.d.ts +21 -3
  147. package/dist/core/ingestion/community-processor.js +88 -83
  148. package/dist/core/ingestion/di-extractors/index.d.ts +22 -34
  149. package/dist/core/ingestion/di-extractors/index.js +17 -18
  150. package/dist/core/ingestion/di-extractors/spring.d.ts +27 -5
  151. package/dist/core/ingestion/di-extractors/spring.js +87 -3
  152. package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
  153. package/dist/core/ingestion/di-extractors/types.js +15 -0
  154. package/dist/core/ingestion/emit-references.js +4 -0
  155. package/dist/core/ingestion/filesystem-walker.js +16 -12
  156. package/dist/core/ingestion/finalize-orchestrator.js +1 -0
  157. package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +9 -0
  158. package/dist/core/ingestion/frameworks/spring/analysis-features.js +41 -0
  159. package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
  160. package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
  161. package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
  162. package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
  163. package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
  164. package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
  165. package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
  166. package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
  167. package/dist/core/ingestion/frameworks/spring/bean-candidates.d.ts +30 -0
  168. package/dist/core/ingestion/frameworks/spring/bean-candidates.js +182 -0
  169. package/dist/core/ingestion/frameworks/spring/bean-catalog.d.ts +12 -0
  170. package/dist/core/ingestion/frameworks/spring/bean-catalog.js +27 -0
  171. package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
  172. package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
  173. package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
  174. package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
  175. package/dist/core/ingestion/frameworks/spring/config-bindings.d.ts +24 -0
  176. package/dist/core/ingestion/frameworks/spring/config-bindings.js +115 -0
  177. package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +48 -0
  178. package/dist/core/ingestion/frameworks/spring/di-metadata.js +379 -0
  179. package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
  180. package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
  181. package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
  182. package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
  183. package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
  184. package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
  185. package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
  186. package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
  187. package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
  188. package/dist/core/ingestion/import-resolvers/go.js +44 -17
  189. package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
  190. package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
  191. package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +428 -0
  192. package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
  193. package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
  194. package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
  195. package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
  196. package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
  197. package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
  198. package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
  199. package/dist/core/ingestion/import-resolvers/php.js +27 -8
  200. package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
  201. package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
  202. package/dist/core/ingestion/import-resolvers/python.js +25 -6
  203. package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
  204. package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
  205. package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
  206. package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
  207. package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
  208. package/dist/core/ingestion/import-resolvers/utils.js +215 -36
  209. package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
  210. package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
  211. package/dist/core/ingestion/language-config.d.ts +20 -1
  212. package/dist/core/ingestion/language-config.js +18 -23
  213. package/dist/core/ingestion/language-provider.d.ts +133 -7
  214. package/dist/core/ingestion/languages/c/captures.js +63 -0
  215. package/dist/core/ingestion/languages/c/import-target.js +12 -16
  216. package/dist/core/ingestion/languages/c/query.js +17 -0
  217. package/dist/core/ingestion/languages/c/scope-resolver.js +26 -19
  218. package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
  219. package/dist/core/ingestion/languages/c-cpp.js +13 -0
  220. package/dist/core/ingestion/languages/cobol/captures.js +93 -0
  221. package/dist/core/ingestion/languages/cobol/scope-resolver.js +34 -20
  222. package/dist/core/ingestion/languages/cobol.js +13 -0
  223. package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
  224. package/dist/core/ingestion/languages/cpp/adl.js +67 -44
  225. package/dist/core/ingestion/languages/cpp/captures.js +222 -3
  226. package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
  227. package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
  228. package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
  229. package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
  230. package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
  231. package/dist/core/ingestion/languages/cpp/query.js +106 -0
  232. package/dist/core/ingestion/languages/cpp/scope-resolver.js +62 -20
  233. package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
  234. package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
  235. package/dist/core/ingestion/languages/csharp/captures.js +44 -0
  236. package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
  237. package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
  238. package/dist/core/ingestion/languages/csharp/query.js +25 -5
  239. package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
  240. package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
  241. package/dist/core/ingestion/languages/dart/captures.js +686 -16
  242. package/dist/core/ingestion/languages/dart/extension-type-preprocess.d.ts +7 -0
  243. package/dist/core/ingestion/languages/dart/extension-type-preprocess.js +30 -0
  244. package/dist/core/ingestion/languages/dart/import-target.js +32 -9
  245. package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
  246. package/dist/core/ingestion/languages/dart/index.js +1 -1
  247. package/dist/core/ingestion/languages/dart/query.js +98 -1
  248. package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
  249. package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
  250. package/dist/core/ingestion/languages/dart.js +8 -1
  251. package/dist/core/ingestion/languages/go/captures.js +142 -3
  252. package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
  253. package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
  254. package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
  255. package/dist/core/ingestion/languages/go/import-target.js +34 -30
  256. package/dist/core/ingestion/languages/go/index.d.ts +1 -1
  257. package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
  258. package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
  259. package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
  260. package/dist/core/ingestion/languages/go/interpret.js +22 -8
  261. package/dist/core/ingestion/languages/go/method-owners.js +31 -12
  262. package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
  263. package/dist/core/ingestion/languages/go/package-clause.js +75 -0
  264. package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
  265. package/dist/core/ingestion/languages/go/query.js +56 -3
  266. package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
  267. package/dist/core/ingestion/languages/go.js +9 -0
  268. package/dist/core/ingestion/languages/java/analysis-features.d.ts +7 -0
  269. package/dist/core/ingestion/languages/java/analysis-features.js +25 -0
  270. package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +38 -0
  271. package/dist/core/ingestion/languages/java/capture-side-channel.js +124 -0
  272. package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
  273. package/dist/core/ingestion/languages/java/captures.js +321 -49
  274. package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
  275. package/dist/core/ingestion/languages/java/import-target.js +68 -88
  276. package/dist/core/ingestion/languages/java/interpret.js +3 -2
  277. package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
  278. package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
  279. package/dist/core/ingestion/languages/java/package-facts.d.ts +5 -0
  280. package/dist/core/ingestion/languages/java/package-facts.js +9 -0
  281. package/dist/core/ingestion/languages/java/package-siblings.d.ts +3 -16
  282. package/dist/core/ingestion/languages/java/package-siblings.js +8 -147
  283. package/dist/core/ingestion/languages/java/query.js +39 -3
  284. package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
  285. package/dist/core/ingestion/languages/java/record-components.js +185 -0
  286. package/dist/core/ingestion/languages/java/scope-resolver.js +35 -2
  287. package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
  288. package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
  289. package/dist/core/ingestion/languages/java/spring-bean-metadata.d.ts +2 -0
  290. package/dist/core/ingestion/languages/java/spring-bean-metadata.js +8 -0
  291. package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
  292. package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
  293. package/dist/core/ingestion/languages/java/spring-config-bindings.d.ts +23 -0
  294. package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
  295. package/dist/core/ingestion/languages/java/spring-di.d.ts +20 -0
  296. package/dist/core/ingestion/languages/java/spring-di.js +160 -0
  297. package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
  298. package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
  299. package/dist/core/ingestion/languages/java.js +76 -3
  300. package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
  301. package/dist/core/ingestion/languages/javascript/captures.js +278 -4
  302. package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
  303. package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
  304. package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
  305. package/dist/core/ingestion/languages/javascript/index.js +54 -5
  306. package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
  307. package/dist/core/ingestion/languages/javascript/query.js +232 -5
  308. package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
  309. package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
  310. package/dist/core/ingestion/languages/jvm/package-facts.d.ts +35 -0
  311. package/dist/core/ingestion/languages/jvm/package-facts.js +40 -0
  312. package/dist/core/ingestion/languages/jvm/package-siblings.d.ts +14 -0
  313. package/dist/core/ingestion/languages/jvm/package-siblings.js +197 -0
  314. package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +40 -3
  315. package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +111 -8
  316. package/dist/core/ingestion/languages/kotlin/captures.js +112 -0
  317. package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
  318. package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
  319. package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
  320. package/dist/core/ingestion/languages/kotlin/index.js +1 -0
  321. package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
  322. package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
  323. package/dist/core/ingestion/languages/kotlin/package-facts.d.ts +5 -0
  324. package/dist/core/ingestion/languages/kotlin/package-facts.js +9 -0
  325. package/dist/core/ingestion/languages/kotlin/package-siblings.d.ts +4 -0
  326. package/dist/core/ingestion/languages/kotlin/package-siblings.js +8 -0
  327. package/dist/core/ingestion/languages/kotlin/query.js +47 -2
  328. package/dist/core/ingestion/languages/kotlin/scope-resolver.js +36 -3
  329. package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
  330. package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
  331. package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.d.ts +2 -0
  332. package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.js +8 -0
  333. package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
  334. package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
  335. package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +20 -0
  336. package/dist/core/ingestion/languages/kotlin/spring-di.js +299 -0
  337. package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
  338. package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
  339. package/dist/core/ingestion/languages/kotlin.js +5 -6
  340. package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
  341. package/dist/core/ingestion/languages/php/captures.js +359 -51
  342. package/dist/core/ingestion/languages/php/import-decomposer.js +12 -0
  343. package/dist/core/ingestion/languages/php/import-target.d.ts +2 -1
  344. package/dist/core/ingestion/languages/php/import-target.js +229 -7
  345. package/dist/core/ingestion/languages/php/interpret.js +10 -0
  346. package/dist/core/ingestion/languages/php/query.js +31 -0
  347. package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
  348. package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
  349. package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
  350. package/dist/core/ingestion/languages/python/captures.d.ts +3 -4
  351. package/dist/core/ingestion/languages/python/captures.js +53 -5
  352. package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
  353. package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
  354. package/dist/core/ingestion/languages/python/import-target.js +277 -91
  355. package/dist/core/ingestion/languages/python/index.d.ts +1 -1
  356. package/dist/core/ingestion/languages/python/index.js +1 -1
  357. package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
  358. package/dist/core/ingestion/languages/python/interpret.js +249 -3
  359. package/dist/core/ingestion/languages/python/query.js +9 -0
  360. package/dist/core/ingestion/languages/python/receiver-binding.d.ts +17 -2
  361. package/dist/core/ingestion/languages/python/receiver-binding.js +192 -2
  362. package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
  363. package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
  364. package/dist/core/ingestion/languages/python/simple-hooks.js +9 -5
  365. package/dist/core/ingestion/languages/ruby/captures.js +200 -0
  366. package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
  367. package/dist/core/ingestion/languages/ruby/query.js +93 -0
  368. package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
  369. package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
  370. package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
  371. package/dist/core/ingestion/languages/rust/captures.js +52 -1
  372. package/dist/core/ingestion/languages/rust/interpret.js +18 -0
  373. package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
  374. package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
  375. package/dist/core/ingestion/languages/rust/module-path.js +214 -0
  376. package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
  377. package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
  378. package/dist/core/ingestion/languages/rust/query.js +48 -6
  379. package/dist/core/ingestion/languages/rust/range-binding.d.ts +1 -11
  380. package/dist/core/ingestion/languages/rust/range-binding.js +149 -63
  381. package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
  382. package/dist/core/ingestion/languages/rust.js +17 -0
  383. package/dist/core/ingestion/languages/swift/captures.js +99 -3
  384. package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
  385. package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
  386. package/dist/core/ingestion/languages/swift/import-target.js +4 -9
  387. package/dist/core/ingestion/languages/swift/query.js +17 -0
  388. package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
  389. package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
  390. package/dist/core/ingestion/languages/swift.js +2 -0
  391. package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
  392. package/dist/core/ingestion/languages/typescript/captures.js +288 -5
  393. package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
  394. package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
  395. package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
  396. package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
  397. package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
  398. package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
  399. package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
  400. package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
  401. package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
  402. package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
  403. package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
  404. package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
  405. package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
  406. package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
  407. package/dist/core/ingestion/languages/typescript/nuxt-auto-imports.js +2 -1
  408. package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
  409. package/dist/core/ingestion/languages/typescript/query.js +340 -14
  410. package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
  411. package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
  412. package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
  413. package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
  414. package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
  415. package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
  416. package/dist/core/ingestion/languages/typescript/tsconfig.js +291 -0
  417. package/dist/core/ingestion/languages/typescript.js +87 -1
  418. package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
  419. package/dist/core/ingestion/languages/vue/import-target.js +11 -47
  420. package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
  421. package/dist/core/ingestion/local-symbol-pruner.js +11 -11
  422. package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
  423. package/dist/core/ingestion/method-extractors/generic.js +1 -0
  424. package/dist/core/ingestion/method-types.d.ts +16 -0
  425. package/dist/core/ingestion/parsing-processor.js +32 -1
  426. package/dist/core/ingestion/pipeline-phases/di.d.ts +8 -33
  427. package/dist/core/ingestion/pipeline-phases/di.js +275 -157
  428. package/dist/core/ingestion/pipeline-phases/index.d.ts +3 -0
  429. package/dist/core/ingestion/pipeline-phases/index.js +3 -0
  430. package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
  431. package/dist/core/ingestion/pipeline-phases/parse-impl.js +158 -3
  432. package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
  433. package/dist/core/ingestion/pipeline-phases/processes.d.ts +11 -2
  434. package/dist/core/ingestion/pipeline-phases/processes.js +102 -7
  435. package/dist/core/ingestion/pipeline-phases/routes.js +56 -10
  436. package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
  437. package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
  438. package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
  439. package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
  440. package/dist/core/ingestion/pipeline-phases/spring-config.d.ts +37 -0
  441. package/dist/core/ingestion/pipeline-phases/spring-config.js +433 -0
  442. package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
  443. package/dist/core/ingestion/pipeline.d.ts +27 -3
  444. package/dist/core/ingestion/pipeline.js +62 -12
  445. package/dist/core/ingestion/process-processor.d.ts +109 -2
  446. package/dist/core/ingestion/process-processor.js +464 -52
  447. package/dist/core/ingestion/resolve-references.d.ts +6 -1
  448. package/dist/core/ingestion/resolve-references.js +78 -6
  449. package/dist/core/ingestion/route-extractors/data-route-table.d.ts +25 -0
  450. package/dist/core/ingestion/route-extractors/data-route-table.js +864 -0
  451. package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
  452. package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
  453. package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
  454. package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
  455. package/dist/core/ingestion/route-extractors/spring.js +109 -24
  456. package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
  457. package/dist/core/ingestion/scope-extractor.d.ts +22 -7
  458. package/dist/core/ingestion/scope-extractor.js +617 -59
  459. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +381 -22
  460. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
  461. package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
  462. package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
  463. package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +15 -1
  464. package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +53 -0
  465. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
  466. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +275 -41
  467. package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
  468. package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
  469. package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +56 -1
  470. package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +130 -32
  471. package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
  472. package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +46 -3
  473. package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +64 -0
  474. package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1233 -0
  475. package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
  476. package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
  477. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +19 -4
  478. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +160 -4
  479. package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
  480. package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
  481. package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +64 -0
  482. package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +118 -0
  483. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +109 -8
  484. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
  485. package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
  486. package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
  487. package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
  488. package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
  489. package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +34 -0
  490. package/dist/core/ingestion/scope-resolution/pipeline/phase.js +82 -38
  491. package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +61 -1
  492. package/dist/core/ingestion/scope-resolution/pipeline/run.js +384 -48
  493. package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
  494. package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
  495. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
  496. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
  497. package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
  498. package/dist/core/ingestion/scope-resolution/scope/walkers.js +968 -56
  499. package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
  500. package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
  501. package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
  502. package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
  503. package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
  504. package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
  505. package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
  506. package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
  507. package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
  508. package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
  509. package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
  510. package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
  511. package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
  512. package/dist/core/ingestion/taint/typescript-model.js +34 -2
  513. package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
  514. package/dist/core/ingestion/tree-sitter-queries.js +688 -5
  515. package/dist/core/ingestion/type-env.js +11 -7
  516. package/dist/core/ingestion/type-extractors/jvm.js +17 -2
  517. package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
  518. package/dist/core/ingestion/type-extractors/shared.js +16 -0
  519. package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
  520. package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
  521. package/dist/core/ingestion/type-extractors/typescript.js +26 -0
  522. package/dist/core/ingestion/utils/ast-helpers.d.ts +311 -14
  523. package/dist/core/ingestion/utils/ast-helpers.js +745 -48
  524. package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
  525. package/dist/core/ingestion/utils/call-analysis.js +202 -7
  526. package/dist/core/ingestion/utils/callable-flow-captures.d.ts +153 -0
  527. package/dist/core/ingestion/utils/callable-flow-captures.js +928 -0
  528. package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
  529. package/dist/core/ingestion/utils/callable-labels.js +31 -0
  530. package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
  531. package/dist/core/ingestion/utils/effective-ram.js +58 -0
  532. package/dist/core/ingestion/utils/line-base.d.ts +14 -0
  533. package/dist/core/ingestion/utils/line-base.js +14 -0
  534. package/dist/core/ingestion/utils/method-props.d.ts +27 -4
  535. package/dist/core/ingestion/utils/method-props.js +29 -4
  536. package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
  537. package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
  538. package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
  539. package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
  540. package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
  541. package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
  542. package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
  543. package/dist/core/ingestion/utils/template-arguments.js +196 -0
  544. package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
  545. package/dist/core/ingestion/utils/type-parameters.js +206 -0
  546. package/dist/core/ingestion/workers/callable-id.d.ts +72 -0
  547. package/dist/core/ingestion/workers/callable-id.js +116 -0
  548. package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
  549. package/dist/core/ingestion/workers/parse-worker.js +409 -39
  550. package/dist/core/ingestion/workers/worker-pool.d.ts +34 -27
  551. package/dist/core/ingestion/workers/worker-pool.js +133 -25
  552. package/dist/core/lbug/csv-generator.d.ts +27 -0
  553. package/dist/core/lbug/csv-generator.js +80 -17
  554. package/dist/core/lbug/extension-load-error.d.ts +2 -2
  555. package/dist/core/lbug/extension-load-error.js +44 -27
  556. package/dist/core/lbug/extension-loader.d.ts +29 -0
  557. package/dist/core/lbug/extension-loader.js +32 -7
  558. package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
  559. package/dist/core/lbug/graph-emit-sink.js +581 -0
  560. package/dist/core/lbug/lbug-adapter.d.ts +337 -3
  561. package/dist/core/lbug/lbug-adapter.js +772 -67
  562. package/dist/core/lbug/lbug-config.d.ts +93 -6
  563. package/dist/core/lbug/lbug-config.js +269 -9
  564. package/dist/core/lbug/native-check.d.ts +39 -0
  565. package/dist/core/lbug/native-check.js +323 -46
  566. package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
  567. package/dist/core/lbug/pdg-emit-sink.js +21 -111
  568. package/dist/core/lbug/pool-adapter.d.ts +23 -1
  569. package/dist/core/lbug/pool-adapter.js +115 -7
  570. package/dist/core/lbug/query-batch.d.ts +75 -0
  571. package/dist/core/lbug/query-batch.js +102 -0
  572. package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
  573. package/dist/core/lbug/rel-pair-routing.js +228 -10
  574. package/dist/core/lbug/schema.d.ts +162 -3
  575. package/dist/core/lbug/schema.js +392 -157
  576. package/dist/core/lbug/sidecar-recovery.d.ts +1 -0
  577. package/dist/core/lbug/sidecar-recovery.js +1 -1
  578. package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
  579. package/dist/core/lbug/sync-csv-writer.js +108 -0
  580. package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
  581. package/dist/core/platform/capabilities.d.ts +0 -1
  582. package/dist/core/platform/capabilities.js +12 -7
  583. package/dist/core/run-analyze.d.ts +150 -3
  584. package/dist/core/run-analyze.js +1562 -151
  585. package/dist/core/search/bm25-index.d.ts +11 -0
  586. package/dist/core/search/bm25-index.js +60 -26
  587. package/dist/core/search/fts-indexes.d.ts +167 -2
  588. package/dist/core/search/fts-indexes.js +264 -10
  589. package/dist/core/wiki/graph-queries.js +145 -112
  590. package/dist/core/wiki/llm-client.d.ts +37 -5
  591. package/dist/core/wiki/llm-client.js +88 -17
  592. package/dist/core/wiki/prompts.d.ts +19 -0
  593. package/dist/core/wiki/prompts.js +20 -1
  594. package/dist/lib/utils.d.ts +113 -0
  595. package/dist/lib/utils.js +185 -0
  596. package/dist/mcp/http-transport.d.ts +5 -0
  597. package/dist/mcp/http-transport.js +19 -5
  598. package/dist/mcp/local/aop-metadata.d.ts +77 -0
  599. package/dist/mcp/local/aop-metadata.js +227 -0
  600. package/dist/mcp/local/bean-metadata.d.ts +3 -0
  601. package/dist/mcp/local/bean-metadata.js +46 -0
  602. package/dist/mcp/local/local-backend.d.ts +167 -6
  603. package/dist/mcp/local/local-backend.js +1756 -405
  604. package/dist/mcp/local/path-predicate.d.ts +19 -0
  605. package/dist/mcp/local/path-predicate.js +21 -0
  606. package/dist/mcp/local/pdg-impact.d.ts +132 -10
  607. package/dist/mcp/local/pdg-impact.js +391 -98
  608. package/dist/mcp/output-budget.d.ts +5 -0
  609. package/dist/mcp/output-budget.js +52 -0
  610. package/dist/mcp/read-only-policy.d.ts +12 -0
  611. package/dist/mcp/read-only-policy.js +102 -0
  612. package/dist/mcp/repository-policy.d.ts +35 -0
  613. package/dist/mcp/repository-policy.js +333 -0
  614. package/dist/mcp/resources.js +34 -7
  615. package/dist/mcp/server.d.ts +5 -2
  616. package/dist/mcp/server.js +48 -18
  617. package/dist/mcp/tools.d.ts +8 -8
  618. package/dist/mcp/tools.js +91 -20
  619. package/dist/server/analyze-job.d.ts +40 -2
  620. package/dist/server/analyze-job.js +30 -2
  621. package/dist/server/analyze-launch.d.ts +1 -1
  622. package/dist/server/analyze-launch.js +79 -10
  623. package/dist/server/analyze-worker-core.d.ts +3 -2
  624. package/dist/server/analyze-worker-core.js +15 -3
  625. package/dist/server/analyze-worker-ipc.d.ts +1 -1
  626. package/dist/server/analyze-worker-ipc.js +4 -0
  627. package/dist/server/analyze-worker-protocol.d.ts +59 -0
  628. package/dist/server/analyze-worker-protocol.js +1 -0
  629. package/dist/server/analyze-worker.d.ts +1 -17
  630. package/dist/server/analyze-worker.js +29 -6
  631. package/dist/server/api.d.ts +2 -11
  632. package/dist/server/api.js +200 -155
  633. package/dist/server/embed-run-outcome.d.ts +89 -0
  634. package/dist/server/embed-run-outcome.js +88 -0
  635. package/dist/server/git-clone.js +6 -2
  636. package/dist/server/mcp-http.d.ts +1 -1
  637. package/dist/server/mcp-http.js +4 -2
  638. package/dist/server/middleware.d.ts +116 -9
  639. package/dist/server/middleware.js +291 -22
  640. package/dist/server/sse-progress.d.ts +41 -0
  641. package/dist/server/sse-progress.js +125 -0
  642. package/dist/server/upload-ingest.js +2 -1
  643. package/dist/server/validation.js +2 -1
  644. package/dist/storage/branch-index.d.ts +11 -6
  645. package/dist/storage/branch-index.js +15 -7
  646. package/dist/storage/file-hash.js +2 -2
  647. package/dist/storage/fs-atomic.d.ts +25 -0
  648. package/dist/storage/fs-atomic.js +42 -0
  649. package/dist/storage/git.d.ts +165 -0
  650. package/dist/storage/git.js +352 -3
  651. package/dist/storage/index-lock.d.ts +83 -0
  652. package/dist/storage/index-lock.js +654 -0
  653. package/dist/storage/parse-cache.js +482 -1
  654. package/dist/storage/parsedfile-store.d.ts +8 -0
  655. package/dist/storage/parsedfile-store.js +235 -1
  656. package/dist/storage/repo-manager.d.ts +29 -309
  657. package/dist/storage/repo-manager.js +187 -165
  658. package/dist/storage/repo-meta.d.ts +530 -0
  659. package/dist/storage/repo-meta.js +100 -0
  660. package/dist/types/pipeline.d.ts +37 -0
  661. package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
  662. package/hooks/claude/gitnexus-hook.cjs +1 -1
  663. package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
  664. package/package.json +20 -12
  665. package/scripts/cross-platform-shard.ts +143 -0
  666. package/scripts/cross-platform-tests.ts +94 -0
  667. package/scripts/ensure-fts.ts +14 -3
  668. package/scripts/run-cross-platform.ts +36 -10
  669. package/scripts/sync-plugin-manifests.mjs +192 -0
  670. package/skills/gitnexus-cli.md +3 -3
  671. package/skills/gitnexus-debugging.md +37 -7
  672. package/skills/gitnexus-exploring.md +26 -4
  673. package/skills/gitnexus-impact-analysis.md +71 -10
  674. package/skills/gitnexus-lfg/README.md +55 -0
  675. package/skills/gitnexus-lfg/SKILL.md +86 -0
  676. package/skills/gitnexus-plan/README.md +147 -0
  677. package/skills/gitnexus-plan/SKILL.md +348 -0
  678. package/skills/gitnexus-plan/references/context-ledger.md +137 -0
  679. package/skills/gitnexus-plan/references/context-pack.md +126 -0
  680. package/skills/gitnexus-plan/references/evidence-provenance.md +309 -0
  681. package/skills/gitnexus-plan/references/pdg-slice.md +109 -0
  682. package/skills/gitnexus-plan/references/plan-template.md +201 -0
  683. package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +2366 -0
  684. package/skills/gitnexus-refactoring.md +48 -5
  685. package/skills/gitnexus-review/SKILL.md +279 -0
  686. package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +42 -0
  687. package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +39 -0
  688. package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +37 -0
  689. package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +40 -0
  690. package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +42 -0
  691. package/skills/gitnexus-review/ci-personas/ci-security-lens.md +39 -0
  692. package/skills/gitnexus-taint-analysis.md +13 -7
  693. package/skills/gitnexus-work/README.md +71 -0
  694. package/skills/gitnexus-work/SKILL.md +272 -0
  695. package/skills/gitnexus-work/references/evidence-provenance.md +309 -0
  696. package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2366 -0
  697. package/vendor/leiden/utils.cjs +28 -1
  698. package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
  699. package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
  700. package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
  701. package/web/assets/agent-DIzEQ1JJ.js +626 -0
  702. package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
  703. package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
  704. package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +132 -0
  705. package/web/assets/{c4Diagram-Y2BXMSZH-DOXVs7-C.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +6 -6
  706. package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
  707. package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
  708. package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
  709. package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
  710. package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
  711. package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
  712. package/web/assets/chunk-6L755F7B-CMhLBxi2.js +1 -0
  713. package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +2 -0
  714. package/web/assets/chunk-A7VWPJGB-B4O3oQdQ.js +1 -0
  715. package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
  716. package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
  717. package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
  718. package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
  719. package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
  720. package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
  721. package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
  722. package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
  723. package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
  724. package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
  725. package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
  726. package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
  727. package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
  728. package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
  729. package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
  730. package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
  731. package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
  732. package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
  733. package/web/assets/chunk-SZD42YQK-ijyKKVr1.js +70 -0
  734. package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +231 -0
  735. package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
  736. package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
  737. package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
  738. package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
  739. package/web/assets/chunk-VJFVEZTB-CX66F2ep.js +206 -0
  740. package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
  741. package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
  742. package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
  743. package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
  744. package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
  745. package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
  746. package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
  747. package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
  748. package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
  749. package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
  750. package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
  751. package/web/assets/diagram-KFBZAVDW-Dfmf_4ti.js +3 -0
  752. package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
  753. package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
  754. package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
  755. package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
  756. package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
  757. package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
  758. package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
  759. package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
  760. package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
  761. package/web/assets/{index-B4eB4dNZ.js → index-BBNl0qfX.js} +51 -51
  762. package/web/assets/index-CJDpyH-n.css +2 -0
  763. package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
  764. package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
  765. package/web/assets/{ishikawaDiagram-BNXS4ZKH-BLjivjXL.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +6 -6
  766. package/web/assets/{journeyDiagram-M6C3CM3L-Cetgs3NH.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +6 -6
  767. package/web/assets/{kanban-definition-75IXJCU3-DMlCaIpf.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +27 -27
  768. package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
  769. package/web/assets/{mindmap-definition-2TDM6QVE-B4GbXQBc.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +29 -29
  770. package/web/assets/node-Ct_zna8U.js +8 -0
  771. package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
  772. package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
  773. package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
  774. package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
  775. package/web/assets/preload-helper-Czpn1I53.js +1 -0
  776. package/web/assets/{quadrantDiagram-VICAPDV7-B1TQnlm0.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +6 -6
  777. package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
  778. package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
  779. package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
  780. package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
  781. package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
  782. package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
  783. package/web/assets/requirementDiagram-RASO5HTO-B-l8InpK.js +84 -0
  784. package/web/assets/sankeyDiagram-F32LOJ6L-Kd7zjJgX.js +40 -0
  785. package/web/assets/sdk-CzHHH8tD.js +37 -0
  786. package/web/assets/sequenceDiagram-URATNSBD-BlcdY9DS.js +162 -0
  787. package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
  788. package/web/assets/src-C5sx_gMp.js +1 -0
  789. package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
  790. package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
  791. package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
  792. package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
  793. package/web/assets/timeline-definition-WJXWRH4I-DUfp1R3E.js +120 -0
  794. package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
  795. package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
  796. package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
  797. package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
  798. package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
  799. package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
  800. package/web/index.html +17 -15
  801. package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
  802. package/dist/core/ingestion/languages/python/index-stats.js +0 -25
  803. package/skills/gitnexus-pr-review.md +0 -163
  804. package/web/assets/ProcessFlowModal-Dna7GkwO.js +0 -22
  805. package/web/assets/agent-DNYDy-KA.js +0 -660
  806. package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
  807. package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +0 -36
  808. package/web/assets/blockDiagram-7IZFK4PR-Dut1BpTV.js +0 -132
  809. package/web/assets/chunk-2T2R6R2M-pkw2oXHH.js +0 -4
  810. package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
  811. package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
  812. package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
  813. package/web/assets/chunk-67TQ5CYL-zxhDWgyF.js +0 -124
  814. package/web/assets/chunk-7J6CGLKN-AmkN8jJN.js +0 -10
  815. package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
  816. package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
  817. package/web/assets/chunk-INKRHTLW-D9BM9HWZ.js +0 -70
  818. package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
  819. package/web/assets/chunk-KGFNY3KK-tD2F6wxK.js +0 -62
  820. package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
  821. package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
  822. package/web/assets/chunk-LCXTWHL2-Ba9JK-6F.js +0 -231
  823. package/web/assets/chunk-LII3EMHJ-EGx-eBIu.js +0 -1
  824. package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +0 -1
  825. package/web/assets/chunk-QA3QBVWF-D4cSJBf6.js +0 -2
  826. package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
  827. package/web/assets/chunk-RG4AUYOV-OqBBMwuQ.js +0 -206
  828. package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
  829. package/web/assets/chunk-T2UQINTJ-BJusEiGe.js +0 -1
  830. package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
  831. package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
  832. package/web/assets/chunk-UY5QBCOK-BCpUlARQ.js +0 -1
  833. package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +0 -2
  834. package/web/assets/chunk-ZXARS5L4-BI_qR2Nm.js +0 -1
  835. package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +0 -1
  836. package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +0 -1
  837. package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +0 -4
  838. package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +0 -43
  839. package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +0 -24
  840. package/web/assets/diagram-HNR7UZ2L-DxKW2a2Y.js +0 -3
  841. package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +0 -24
  842. package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +0 -10
  843. package/web/assets/erDiagram-L5TCEMPS-D0fvpWEX.js +0 -85
  844. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
  845. package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +0 -162
  846. package/web/assets/ganttDiagram-JCBTUEKG-TzODrLzv.js +0 -292
  847. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
  848. package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js +0 -106
  849. package/web/assets/index-CX_fADmQ.css +0 -2
  850. package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
  851. package/web/assets/infoDiagram-3YFTVSEB-DIPVUIQ6.js +0 -2
  852. package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
  853. package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
  854. package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
  855. package/web/assets/pieDiagram-CU6KROY3-D3YC_xyg.js +0 -30
  856. package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
  857. package/web/assets/requirementDiagram-JXO7QTGE-f8wczLQf.js +0 -84
  858. package/web/assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js +0 -40
  859. package/web/assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js +0 -162
  860. package/web/assets/src-BNCXICdA.js +0 -1
  861. package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +0 -1
  862. package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +0 -1
  863. package/web/assets/timeline-definition-O6YCAMPW-07BR8R8G.js +0 -120
  864. package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
  865. package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
  866. package/web/assets/vennDiagram-MWXL3ELB-BQX2ossk.js +0 -34
  867. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
  868. package/web/assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js +0 -78
  869. package/web/assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js +0 -7
  870. /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
@@ -71,7 +71,7 @@ const TSX_GRAMMAR = TS.tsx;
71
71
  function isTsxFile(filePath) {
72
72
  return filePath.endsWith('.tsx');
73
73
  }
74
- const TYPESCRIPT_SCOPE_QUERY = `
74
+ export const TYPESCRIPT_SCOPE_QUERY = `
75
75
  ;; Scopes — module / namespace / class-likes / function-likes
76
76
  (program) @scope.module
77
77
 
@@ -87,14 +87,53 @@ const TYPESCRIPT_SCOPE_QUERY = `
87
87
  ;; class expressions omit it); ScopeExtractor tolerates missing names.
88
88
  (class) @scope.class
89
89
 
90
- (function_declaration) @scope.function
91
- (generator_function_declaration) @scope.function
92
- (function_signature) @scope.function
93
- (method_definition) @scope.function
94
- (method_signature) @scope.function
95
- (abstract_method_signature) @scope.function
90
+ ;; \`@receiver-owner.this\` marks a scope that BINDS its own \`this\` rather
91
+ ;; than inheriting one (#2701) — see \`Scope.ownsReceivers\`. Every function
92
+ ;; form except \`arrow_function\` carries it: ECMA-262 gives an arrow
93
+ ;; \`[[ThisMode]] = lexical\` (no \`this\` in its environment record, so the
94
+ ;; lookup passes through), while every other form binds \`this\` at call time.
95
+ ;; \`method_definition\` is marked too and is unaffected — it also carries a
96
+ ;; synthesized \`this\` typeBinding, which the walk consults first.
97
+ ;; The marker rides on the same node as \`@scope.function\`; it is outside the
98
+ ;; \`@scope.\` namespace so \`anchorCaptureFor\` cannot mistake it for the anchor.
99
+ (function_declaration) @scope.function @receiver-owner.this
100
+ (generator_function_declaration) @scope.function @receiver-owner.this
101
+ (function_signature) @scope.function @receiver-owner.this
102
+ (method_definition) @scope.function @receiver-owner.this
103
+ (method_signature) @scope.function @receiver-owner.this
104
+ (abstract_method_signature) @scope.function @receiver-owner.this
96
105
  (arrow_function) @scope.function
97
- (function_expression) @scope.function
106
+ (function_expression) @scope.function @receiver-owner.this
107
+ ;; \`function*(){}\` as an EXPRESSION. Absent from this list before #2701, so it
108
+ ;; was not a scope at all and \`this\` inside one read as the enclosing method's.
109
+ (generator_function) @scope.function @receiver-owner.this
110
+
111
+ ;; Object literals (the { ... } value expression, NOT object_type or
112
+ ;; object_pattern) get their own scope boundary. Without it, a
113
+ ;; method_definition/property-arrow's auto-hoist (scope-extractor.ts)
114
+ ;; has nowhere to stop and leaks the name past the literal into whatever
115
+ ;; lexically encloses it -- e.g. 'export default { async fetch(req) {} }'
116
+ ;; would bind fetch at Module scope, letting an unrelated same-file
117
+ ;; fetch(...) call (the platform global) incorrectly resolve to it
118
+ ;; (#2545). Object (not Block or Class): object-literal members are
119
+ ;; reachable only via property access, never as bare identifiers -- not
120
+ ;; even by a SIBLING property's function body, unlike a real Block
121
+ ;; (if/for/while, where a nested closure legitimately sees a sibling
122
+ ;; let/const) or a Class (implicit-this sibling dispatch). Scope-chain
123
+ ;; walkers (scope-resolution/scope/walkers.ts) skip an Object scope's
124
+ ;; own bindings entirely while still treating it as a hoist boundary
125
+ ;; (#2551).
126
+ (object) @scope.object
127
+
128
+ ;; Statement blocks are BINDING scopes (#2699). ECMAScript gives every block its
129
+ ;; own environment record, so \`let\`/\`const\`/\`class\`/\`function\` declared in
130
+ ;; sibling blocks of one function are DIFFERENT bindings — without this the
131
+ ;; resolver sees both as function-level and a call in one branch resolves to
132
+ ;; both. \`tsBindingScopeFor\` already implements the other half of the rule:
133
+ ;; \`var\` hoists past blocks to the enclosing Function/Module, \`let\`/\`const\`
134
+ ;; take the innermost scope, which is now the block.
135
+ (statement_block) @scope.block
136
+
98
137
 
99
138
  ;; Type aliases that contain an object_type are structurally class-like —
100
139
  ;; they define a shape with named members. Emit @scope.class so the
@@ -104,30 +143,45 @@ const TYPESCRIPT_SCOPE_QUERY = `
104
143
  value: (object_type)) @scope.class
105
144
 
106
145
  ;; Declarations — types
146
+ ;; The type-parameter list is captured with \`?\` rather than as a second
147
+ ;; pattern: a separate rule would make a GENERIC declaration match twice, and
148
+ ;; both matches mint the same def id (filePath+range+type+name), so which one
149
+ ;; survived — the one carrying the parameters or the one without — would be
150
+ ;; decided by match order. An optional child keeps it at one match either way.
107
151
  (class_declaration
108
- name: (type_identifier) @declaration.name) @declaration.class
152
+ name: (type_identifier) @declaration.name
153
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
109
154
 
110
155
  (abstract_class_declaration
111
- name: (type_identifier) @declaration.name) @declaration.class
156
+ name: (type_identifier) @declaration.name
157
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
112
158
 
113
159
  (interface_declaration
114
- name: (type_identifier) @declaration.name) @declaration.interface
160
+ name: (type_identifier) @declaration.name
161
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.interface
115
162
 
116
163
  (enum_declaration
117
164
  name: (identifier) @declaration.name) @declaration.enum
118
165
 
166
+ ;; Tagged @declaration.type_alias, NOT @declaration.type: normalizeNodeLabel
167
+ ;; accepts typealias / type_alias and has no "type" case, so the old tag mapped
168
+ ;; to no label and TypeScript aliases produced NO scope-resolution def at all.
169
+ ;; Kotlin and Dart already spell it this way.
119
170
  (type_alias_declaration
120
- name: (type_identifier) @declaration.name) @declaration.type
171
+ name: (type_identifier) @declaration.name
172
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.type_alias
121
173
 
122
174
  (internal_module
123
175
  name: (identifier) @declaration.name) @declaration.namespace
124
176
 
125
177
  ;; Declarations — methods / functions / constructors
126
178
  (function_declaration
127
- name: (identifier) @declaration.name) @declaration.function
179
+ name: (identifier) @declaration.name
180
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.function
128
181
 
129
182
  (generator_function_declaration
130
- name: (identifier) @declaration.name) @declaration.function
183
+ name: (identifier) @declaration.name
184
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.function
131
185
 
132
186
  ;; Function overload signatures (declaration-only; body in a separate
133
187
  ;; function_declaration). Extractors dedup by (name, parameterTypes).
@@ -169,6 +223,51 @@ const TYPESCRIPT_SCOPE_QUERY = `
169
223
  name: (identifier) @declaration.name
170
224
  value: (function_expression) @declaration.function))
171
225
 
226
+ ;; CJS property-assignment exports (#2723) — see the matching block in
227
+ ;; \`languages/javascript/query.ts\` for the rationale. Mirrored here because
228
+ ;; \`.ts\` files in a CommonJS package use the same form, and because the JS
229
+ ;; provider delegates several hooks to these TypeScript counterparts.
230
+ ;; One pattern per receiver form, RHS forms folded into an inner LEAF
231
+ ;; alternation — see the matching note in \`languages/javascript/query.ts\` for
232
+ ;; why that shape is safe under the tree-sitter 0.21.1 alternation hazard.
233
+ (assignment_expression
234
+ left: (member_expression
235
+ object: (identifier) @_cjs.receiver
236
+ property: (property_identifier) @declaration.name)
237
+ right: [
238
+ (arrow_function)
239
+ (function_expression)
240
+ (generator_function)
241
+ ] @declaration.function)
242
+
243
+ ;; \`this.X = fn\` at MODULE level of a CommonJS file — there \`this\` IS
244
+ ;; \`module.exports\`, so this declares an export. Pruned emit-side for ESM
245
+ ;; files (where top-level \`this\` is undefined) and for a \`this\` inside a
246
+ ;; function, which is an instance member rather than an export.
247
+ (assignment_expression
248
+ left: (member_expression
249
+ object: (this)
250
+ property: (property_identifier) @declaration.name)
251
+ right: [
252
+ (arrow_function)
253
+ (function_expression)
254
+ (generator_function)
255
+ ] @declaration.function)
256
+
257
+ (assignment_expression
258
+ left: (member_expression
259
+ object: (member_expression
260
+ object: (identifier) @_cjs.module
261
+ property: (property_identifier) @_cjs.exports)
262
+ property: (property_identifier) @declaration.name)
263
+ right: [
264
+ (arrow_function)
265
+ (function_expression)
266
+ (generator_function)
267
+ ] @declaration.function
268
+ (#eq? @_cjs.module "module")
269
+ (#eq? @_cjs.exports "exports"))
270
+
172
271
  ;; Object-property arrows / function expressions named by their pair key:
173
272
  ;; \`{ addItem: (item) => ..., removeItem: (item) => ... }\`. The legacy
174
273
  ;; TYPESCRIPT_QUERIES emits the same shape; mirroring it here keeps
@@ -407,6 +506,48 @@ const TYPESCRIPT_SCOPE_QUERY = `
407
506
  (method_signature
408
507
  name: (property_identifier) @declaration.name) @declaration.method
409
508
 
509
+ ;; Members of a declared SHAPE — interface bodies and object-type aliases both
510
+ ;; spell them as property_signature (A4). The sibling method_signature rule
511
+ ;; above declared interface METHODS, so only properties were missing: a typed
512
+ ;; receiver resolved to the shape's scope and then found no member there, and
513
+ ;; the field's consumers were unreachable. TypeScript sets
514
+ ;; fieldFallbackOnMethodLookup:false, so there is no name-based safety net
515
+ ;; here — the precise path is the only one, and it needs the declaration.
516
+ ;; ANCHORED to declared shapes — see the matching rule in TYPESCRIPT_QUERIES
517
+ ;; for why. Unanchored this matched inline parameter and return types and
518
+ ;; nested object types, whose members then collided onto the enclosing
519
+ ;; class/interface/alias.
520
+ (interface_body
521
+ (property_signature
522
+ name: (property_identifier) @declaration.name) @declaration.property)
523
+
524
+ ;; Object-literal keys of a NAMED object — the scope-resolution half of the
525
+ ;; matching rule in TYPESCRIPT_QUERIES. The parse query mints the Property NODE;
526
+ ;; this mints the DEF a precise read can resolve to.
527
+ (variable_declarator
528
+ name: (identifier)
529
+ value: (object
530
+ (pair
531
+ key: (property_identifier) @declaration.name) @declaration.property))
532
+
533
+ (variable_declarator
534
+ name: (identifier)
535
+ value: (call_expression
536
+ function: (member_expression
537
+ object: (identifier) @_ts.identity.obj
538
+ property: (property_identifier) @_ts.identity.fn)
539
+ arguments: (arguments
540
+ (object
541
+ (pair
542
+ key: (property_identifier) @declaration.name) @declaration.property)))
543
+ (#eq? @_ts.identity.obj "Object")
544
+ (#match? @_ts.identity.fn "^(freeze|seal|preventExtensions)$"))
545
+
546
+ (type_alias_declaration
547
+ value: (object_type
548
+ (property_signature
549
+ name: (property_identifier) @declaration.name) @declaration.property))
550
+
410
551
  ;; Declarations — class fields
411
552
  (public_field_definition
412
553
  name: (property_identifier) @declaration.name) @declaration.property
@@ -791,6 +932,40 @@ const TYPESCRIPT_SCOPE_QUERY = `
791
932
  type: (type_annotation
792
933
  (type_identifier) @type-binding.type)) @type-binding.annotation
793
934
 
935
+ ;; Type bindings — class field constructor-inferred: \`private p = new Outer()\`.
936
+ ;; The annotation patterns above cover a field that DECLARES its type; a field
937
+ ;; whose type must be inferred from its initializer matched nothing, so it had
938
+ ;; no typeBinding, so \`this.p\` could not be typed and the receiver fold declined
939
+ ;; the whole chain — losing even the first, ordinary named link (#2807).
940
+ ;;
941
+ ;; Anchored on \`public_field_definition\` exactly like the annotation patterns,
942
+ ;; so the binding lands in the same (class body) scope with no bindingScopeFor
943
+ ;; override. \`annotation\` outranks \`constructor-inferred\` in
944
+ ;; typeBindingStrength, so \`private p: Outer = new Outer()\` still resolves
945
+ ;; through its annotation regardless of which pattern matches first.
946
+ ;;
947
+ ;; Kotlin and Swift express both a local and a stored property with ONE grammar
948
+ ;; node (property_declaration) and so needed no separate field pattern; the
949
+ ;; TypeScript grammar splits them (variable_declarator vs
950
+ ;; public_field_definition), which is why only the local form was ever covered.
951
+ (public_field_definition
952
+ name: (property_identifier) @type-binding.name
953
+ value: (new_expression
954
+ constructor: (identifier) @type-binding.type)) @type-binding.constructor
955
+
956
+ ;; Qualified: \`private p = new models.Outer()\` — mirrors the local form above;
957
+ ;; the member_expression's text is resolved via QualifiedNameIndex.
958
+ (public_field_definition
959
+ name: (property_identifier) @type-binding.name
960
+ value: (new_expression
961
+ constructor: (member_expression) @type-binding.type)) @type-binding.constructor
962
+
963
+ ;; Private-name field: \`#p = new Outer()\`.
964
+ (public_field_definition
965
+ name: (private_property_identifier) @type-binding.name
966
+ value: (new_expression
967
+ constructor: (identifier) @type-binding.type)) @type-binding.constructor
968
+
794
969
  ;; Type bindings — method return type: \`save(): User { … }\` / \`function f(): User { … }\`.
795
970
  ;; Function/method return-type is the type_annotation that is a direct
796
971
  ;; child of the function node (not the parameter's annotation). Anchor on
@@ -919,6 +1094,78 @@ const TYPESCRIPT_SCOPE_QUERY = `
919
1094
  right: (new_expression
920
1095
  constructor: (identifier) @type-binding.type)) @type-binding.constructor
921
1096
 
1097
+ ;; Type bindings — field assigned through \`this\`: \`this.p = new Outer()\` on a
1098
+ ;; field that declares no type (#2807). The rebind pattern above only matches a
1099
+ ;; bare identifier LHS, so an unannotated field assigned in the constructor had
1100
+ ;; no typeBinding at all. (An ANNOTATED field does not need this — its
1101
+ ;; annotation already types it, which is why \`private p: Outer;\` + the same
1102
+ ;; assignment always resolved.)
1103
+ ;;
1104
+ ;; The nesting is the whole safety property. \`this.x = new Y()\` is a legal
1105
+ ;; statement ANYWHERE, and the binding it produces is hoisted onto the nearest
1106
+ ;; enclosing Class — so a context-free version of this pattern typed a class's
1107
+ ;; field from an assignment whose \`this\` was some OTHER object, overwriting the
1108
+ ;; field's real type (pass4CollectTypeBindings resolves a same-source tie in
1109
+ ;; favour of the LATER match). Requiring the chain
1110
+ ;; \`class_body → method_definition → statement_block → expression_statement\`
1111
+ ;; makes the marker fire only where \`this\` provably IS an instance of the class
1112
+ ;; the binding lands on. It rejects, in order of how easily each was hit:
1113
+ ;; a non-arrow callback inside a method (\`function () { this.x = new Y(); }\` —
1114
+ ;; \`this\` is the call's receiver), an object-literal method (also a
1115
+ ;; \`method_definition\`, but under \`object\`, not \`class_body\`), and module top
1116
+ ;; level (no enclosing Class at all, where the hoist used to fall back to the
1117
+ ;; innermost scope and could overwrite a module local of the same name).
1118
+ ;;
1119
+ ;; This mirrors \`synthesizeConstructorFieldBindings\` in
1120
+ ;; \`languages/javascript/captures.ts\`, which walks only \`method_definition\`
1121
+ ;; bodies and only their DIRECT \`expression_statement\` children — the two
1122
+ ;; languages must not read the same source differently. TypeScript accepts any
1123
+ ;; method rather than only \`constructor\` (a later \`setUp()\` assignment types
1124
+ ;; the field just as well), which is the one intended divergence.
1125
+ ;;
1126
+ ;; Two shapes are deliberately NOT matched, both erring toward no binding:
1127
+ ;; an assignment nested in a block (\`if (…) { this.p = new Outer(); }\`) and one
1128
+ ;; inside an arrow (\`() => { this.p = new Outer(); }\`, where \`this\` IS the
1129
+ ;; instance). Both are only ever a MISSING binding, never a wrong one, and JS
1130
+ ;; declines them too.
1131
+ ;;
1132
+ ;; \`@type-binding.this-field\` is a MARKER, not the anchor: it sits on the narrow
1133
+ ;; \`(this)\` node, so anchorCaptureFor's broadest-range rule keeps the whole
1134
+ ;; assignment_expression (@type-binding.constructor) as the anchor and the
1135
+ ;; source stays \`constructor-inferred\`. tsBindingScopeFor reads the marker to
1136
+ ;; hoist the binding onto the enclosing Class scope — without that hoist the
1137
+ ;; binding would land on the method's own Function scope, where
1138
+ ;; typeOfMemberOnClass never looks. The marker must stay specific to THIS
1139
+ ;; pattern: hoisting every constructor-inferred binding would move method-local
1140
+ ;; \`const o = new Outer()\` out of its own scope.
1141
+ ;;
1142
+ ;; One constraint the grammar cannot carry: \`static\` is an ANONYMOUS token on
1143
+ ;; \`method_definition\` with no field name, and tree-sitter patterns cannot
1144
+ ;; negate one. \`this\` in a static method is the class object, so that last
1145
+ ;; wrong receiver is dropped by \`emitTsScopeCaptures\` instead.
1146
+ (class_body
1147
+ (method_definition
1148
+ body: (statement_block
1149
+ (expression_statement
1150
+ (assignment_expression
1151
+ left: (member_expression
1152
+ object: (this) @type-binding.this-field
1153
+ property: (property_identifier) @type-binding.name)
1154
+ right: (new_expression
1155
+ constructor: (identifier) @type-binding.type)) @type-binding.constructor))))
1156
+
1157
+ ;; Qualified form: \`this.p = new models.Outer()\`.
1158
+ (class_body
1159
+ (method_definition
1160
+ body: (statement_block
1161
+ (expression_statement
1162
+ (assignment_expression
1163
+ left: (member_expression
1164
+ object: (this) @type-binding.this-field
1165
+ property: (property_identifier) @type-binding.name)
1166
+ right: (new_expression
1167
+ constructor: (member_expression) @type-binding.type)) @type-binding.constructor))))
1168
+
922
1169
  (assignment_expression
923
1170
  left: (identifier) @type-binding.name
924
1171
  right: (call_expression
@@ -987,6 +1234,85 @@ const TYPESCRIPT_SCOPE_QUERY = `
987
1234
  (member_expression
988
1235
  object: (_) @reference.receiver
989
1236
  property: (property_identifier) @reference.name) @reference.read.member
1237
+
1238
+ ;; References — value position (#2437): a function identifier assigned as an
1239
+ ;; object-literal property value (\`{ emitScopeCaptures: emitCppScopeCaptures }\`)
1240
+ ;; or shorthand (\`{ emitHook }\`). Resolution keeps only callable targets
1241
+ ;; (MethodRegistry), so plain-value pairs (\`{ port: DEFAULT_PORT }\`) emit
1242
+ ;; nothing; the emitted edge is a reference-class USES (registration ≠
1243
+ ;; invocation). \`@reference.property-key\` records the key so the
1244
+ ;; property-dispatch pass can synthesize CALLS at \`x.<key>()\` sites; for
1245
+ ;; shorthand the key IS the name (both tags on one node). Two separate
1246
+ ;; patterns — never combined in \`[...]\` (tree-sitter 0.21 drops alternation
1247
+ ;; siblings around predicates). Destructuring shorthand is a different node
1248
+ ;; (\`shorthand_property_identifier_pattern\`), so \`const { a } = o\` cannot
1249
+ ;; match; string/computed keys carry no \`property_identifier\` and register
1250
+ ;; without a dispatch key.
1251
+ (pair
1252
+ key: (property_identifier) @reference.property-key
1253
+ value: (identifier) @reference.name @reference.value-ref)
1254
+
1255
+ (object
1256
+ (shorthand_property_identifier) @reference.name @reference.property-key @reference.value-ref)
1257
+
1258
+ ;; Bare-identifier reads (A2), VALUE POSITIONS ONLY — a blanket \`(identifier)\`
1259
+ ;; rule would mint a site for every token in the file.
1260
+ ;;
1261
+ ;; These existed only in the JavaScript query, so A2 did not work for
1262
+ ;; TypeScript AT ALL: a \`.ts\` module reading its own \`const\` by bare name
1263
+ ;; produced no reference site, and "who uses this constant?" answered a
1264
+ ;; confident zero for an entire language. Found by writing the namespace
1265
+ ;; fixture below and watching it fail for the wrong reason.
1266
+ (arguments
1267
+ (identifier) @reference.name @reference.read.identifier)
1268
+
1269
+ (assignment_pattern
1270
+ right: (identifier) @reference.name @reference.read.identifier)
1271
+
1272
+ (return_statement
1273
+ (identifier) @reference.name @reference.read.identifier)
1274
+
1275
+ ;; \`const next = LIMIT\` and \`n > LIMIT\` — both plainly value reads, and both
1276
+ ;; named in review as gaps between what A2 claimed and what it matched.
1277
+ (variable_declarator
1278
+ value: (identifier) @reference.name @reference.read.identifier)
1279
+
1280
+ (binary_expression
1281
+ left: (identifier) @reference.name @reference.read.identifier)
1282
+
1283
+ (binary_expression
1284
+ right: (identifier) @reference.name @reference.read.identifier)
1285
+
1286
+ ;; References — TYPE POSITION (R2-2). An annotation naming a declared type is
1287
+ ;; the only thing that makes that type's declaration reachable from the code
1288
+ ;; that depends on it, and TypeScript captured none: only cpp and csharp emitted
1289
+ ;; type references at all. So an exported API-contract type owned its members
1290
+ ;; (round 1) but had \`incoming: {}\`, and "what breaks if I remove this field?"
1291
+ ;; — the question a contract type exists to answer — had no edge to walk.
1292
+ ;;
1293
+ ;; The resolution path was already complete on the other side:
1294
+ ;; \`type-reference\` routes to the ClassRegistry, whose CLASS_KINDS already
1295
+ ;; lists TypeAlias, Interface and Enum, and \`edges.ts\` already maps the kind to
1296
+ ;; USES. Only the capture was missing.
1297
+ ;;
1298
+ ;; Anchored to the CONTEXTS a type is used in — annotations, type arguments,
1299
+ ;; and heritage \`implements\` — never a bare \`(type_identifier)\`. A blanket rule
1300
+ ;; would also match the identifier in \`type X = …\` and \`interface X\`, making
1301
+ ;; every declaration a consumer of itself.
1302
+ (type_annotation
1303
+ (type_identifier) @reference.name @reference.type_reference)
1304
+
1305
+ (type_annotation
1306
+ (generic_type
1307
+ name: (type_identifier) @reference.name @reference.type_reference))
1308
+
1309
+ (type_arguments
1310
+ (type_identifier) @reference.name @reference.type_reference)
1311
+
1312
+ ;; \`x as SomeType\` / \`satisfies SomeType\` — an assertion is a claim ABOUT a
1313
+ ;; declared type, so the code making it depends on that declaration.
1314
+ (as_expression
1315
+ (type_identifier) @reference.name @reference.type_reference)
990
1316
  `;
991
1317
  /**
992
1318
  * JSX-only query suffix. Appended to the base query when compiling
@@ -57,3 +57,20 @@ import { type SyntaxNode } from '../../utils/ast-helpers.js';
57
57
  * of the scope function nodes the scope query emits.
58
58
  */
59
59
  export declare function synthesizeTsReceiverBinding(fnNode: SyntaxNode): CaptureMatch | null;
60
+ /**
61
+ * Nodes that REBIND `this`, so the walk for an enclosing type must stop at them.
62
+ *
63
+ * Without these the walk ran to the top of the file and happily synthesized a binding
64
+ * from a type that does not own the member. An object-literal method nested in a class
65
+ * bound `this` to the CLASS:
66
+ *
67
+ * class A { outer() { const o = { inner() { return this.x; } }; return o; } }
68
+ *
69
+ * `this` inside `o.inner` is `o`, never `A` — so every `this.…` in such a method
70
+ * resolved against the wrong type. Only the module-level object literal escaped, because
71
+ * there was no enclosing class to reach.
72
+ *
73
+ * An arrow is deliberately absent: it inherits `this` lexically, so the walk SHOULD pass
74
+ * through it (that is what makes a class-field arrow `m = () => this.x` resolve).
75
+ */
76
+ export declare const THIS_REBINDING_BOUNDARY_TYPES: ReadonlySet<string>;
@@ -140,9 +140,36 @@ function isStaticMember(memberNode) {
140
140
  }
141
141
  return false;
142
142
  }
143
+ /**
144
+ * Nodes that REBIND `this`, so the walk for an enclosing type must stop at them.
145
+ *
146
+ * Without these the walk ran to the top of the file and happily synthesized a binding
147
+ * from a type that does not own the member. An object-literal method nested in a class
148
+ * bound `this` to the CLASS:
149
+ *
150
+ * class A { outer() { const o = { inner() { return this.x; } }; return o; } }
151
+ *
152
+ * `this` inside `o.inner` is `o`, never `A` — so every `this.…` in such a method
153
+ * resolved against the wrong type. Only the module-level object literal escaped, because
154
+ * there was no enclosing class to reach.
155
+ *
156
+ * An arrow is deliberately absent: it inherits `this` lexically, so the walk SHOULD pass
157
+ * through it (that is what makes a class-field arrow `m = () => this.x` resolve).
158
+ */
159
+ export const THIS_REBINDING_BOUNDARY_TYPES = new Set([
160
+ 'object', // object literal — `this` is the literal, not any enclosing type
161
+ 'function_declaration',
162
+ 'function_expression',
163
+ 'generator_function',
164
+ 'generator_function_declaration',
165
+ ]);
143
166
  function findEnclosingType(node) {
144
167
  let cur = node.parent;
145
168
  while (cur !== null) {
169
+ // Boundary before the type check: a rebinding node between the member and a type
170
+ // means the type does not own this `this`.
171
+ if (THIS_REBINDING_BOUNDARY_TYPES.has(cur.type))
172
+ return null;
146
173
  if (TYPE_DECL_NODE_TYPES.has(cur.type))
147
174
  return cur;
148
175
  cur = cur.parent;
@@ -17,9 +17,10 @@ import { buildMro, defaultLinearize } from '../../scope-resolution/passes/mro.js
17
17
  import { populateClassOwnedMembers } from '../../scope-resolution/scope/walkers.js';
18
18
  import { simpleKey } from '../../scope-resolution/graph-bridge/node-lookup.js';
19
19
  import { typescriptProvider } from '../typescript.js';
20
- import { loadTsconfigPaths } from '../../language-config.js';
21
- import { buildSuffixIndex } from '../../import-resolvers/utils.js';
22
- import { typescriptArityCompatibility, typescriptMergeBindings, resolveTsTarget, } from './index.js';
20
+ import { loadTsconfigIndex } from './tsconfig.js';
21
+ import { loadNodeWorkspacePackages, } from '../../import-resolvers/node-workspace-packages.js';
22
+ import { indexOnlyElementType } from '../../type-extractors/shared.js';
23
+ import { typescriptArityCompatibility, typescriptMergeBindings, resolveTsTarget } from './index.js';
23
24
  import { getNuxtAutoImportEntry, hasNuxtAutoImports, loadNuxtAutoImports, } from './nuxt-auto-imports.js';
24
25
  const TYPESCRIPT_TYPE_ONLY_BINDING_TYPES = new Set([
25
26
  'Interface',
@@ -31,47 +32,32 @@ const TYPESCRIPT_TYPE_ONLY_BINDING_TYPES = new Set([
31
32
  'Decorator',
32
33
  ]);
33
34
  /**
34
- * Build a `resolveImportTarget` adapter that memoizes the workspace
35
- * file list, the lower-cased file list, and the per-pass `resolveCache`
36
- * across every import lookup in a single workspace pass. The
37
- * orchestrator passes the same `ReadonlySet` reference for every call
38
- * within a pass — we use that identity to detect when the workspace
39
- * changes and recompute the derived state lazily.
35
+ * Build the `resolveImportTarget` adapter.
40
36
  *
41
- * Without this memoization, `resolveTsTarget` re-derived
42
- * `allFileList` and `normalizedFileList` (both O(N_files)) and threw
43
- * away the `resolveCache` on every import — O(N_files × N_imports)
44
- * total work for what should be O(N_files + N_imports).
37
+ * No per-file-set memo any more: the suffix index it existed to amortize is
38
+ * gone with #2953. Real resolution derives nothing from the file list — every
39
+ * candidate comes from a config the repo declares, and checking one is a
40
+ * `Set.has` — so there is nothing left to cache per pass.
45
41
  */
46
42
  function makeTsResolveImportTarget() {
47
- let cached = null;
48
43
  return (targetRaw, fromFile, allFilePaths, resolutionConfig) => {
49
- if (cached === null || cached.key !== allFilePaths) {
50
- const allFileList = Array.from(allFilePaths);
51
- const normalizedFileList = allFileList.map((f) => f.toLowerCase());
52
- cached = {
53
- key: allFilePaths,
54
- allFilePaths: new Set(allFilePaths),
55
- allFileList,
56
- normalizedFileList,
57
- index: buildSuffixIndex(normalizedFileList, allFileList),
58
- resolveCache: new Map(),
59
- };
60
- }
61
44
  const cfg = resolutionConfig;
62
- const ws = {
45
+ return resolveTsTarget(targetRaw, {
63
46
  fromFile,
64
- allFilePaths: cached.allFilePaths,
65
- allFileList: cached.allFileList,
66
- normalizedFileList: cached.normalizedFileList,
67
- index: cached.index,
68
- resolveCache: cached.resolveCache,
69
- tsconfigPaths: cfg?.tsconfigPaths ?? null,
70
- };
71
- return resolveTsTarget(targetRaw, ws);
47
+ allFilePaths,
48
+ tsconfigs: cfg?.tsconfigs ?? null,
49
+ nodeWorkspacePackages: cfg?.nodeWorkspacePackages ?? null,
50
+ });
72
51
  };
73
52
  }
74
53
  const typescriptScopeResolver = {
54
+ // One hook, both routes. TypeScript exposes collection views as METHOD calls
55
+ // (`.values()`), which the call-expression branch already handles, so the
56
+ // accessor route yields nothing here — but it is now the same hook rather
57
+ // than a second one left undefined.
58
+ elementTypeOf: indexOnlyElementType,
59
+ // Construction is keyword-prefixed: `new Service(db).doWork()` (#2708).
60
+ constructionSyntax: { keyword: 'new' },
75
61
  language: SupportedLanguages.TypeScript,
76
62
  languageProvider: typescriptProvider,
77
63
  importEdgeReason: 'typescript-scope: import',
@@ -83,7 +69,8 @@ const typescriptScopeResolver = {
83
69
  // `nuxtAutoImports` is null for non-Nuxt projects (no .nuxt/imports.d.ts),
84
70
  // so this adds zero overhead to ordinary TypeScript repos.
85
71
  loadResolutionConfig: async (repoPath) => ({
86
- tsconfigPaths: await loadTsconfigPaths(repoPath),
72
+ tsconfigs: await loadTsconfigIndex(repoPath),
73
+ nodeWorkspacePackages: await loadNodeWorkspacePackages(repoPath),
87
74
  nuxtAutoImports: await loadNuxtAutoImports(repoPath),
88
75
  }),
89
76
  // TypeScript declaration merging + LEGB: local > import > wildcard,
@@ -109,10 +96,10 @@ const typescriptScopeResolver = {
109
96
  // boundaries and resolve chained member calls).
110
97
  fieldFallbackOnMethodLookup: false,
111
98
  propagatesReturnTypesAcrossImports: true,
112
- // TypeScript uses `.values()` / `.keys()` method-call syntax for
113
- // collection views -- no property-style accessors like C#'s
114
- // `Dictionary<K,V>.Values`. Leave `unwrapCollectionAccessor`
115
- // undefined and let the regular member-call branch handle them.
99
+ // TypeScript uses `.values()` / `.keys()` method-call syntax for collection
100
+ // views -- no property-style accessors like C#'s `Dictionary<K,V>.Values` --
101
+ // so `elementTypeOf` answers only the `index` route and lets the regular
102
+ // member-call branch handle the rest.
116
103
  //
117
104
  // `collapseMemberCallsByCallerTarget` left undefined (= false) --
118
105
  // TypeScript legacy DAG emits one edge per call site, so
@@ -26,16 +26,6 @@ import type { CaptureMatch, ParsedImport, Scope, ScopeId, ScopeTree, TypeRef } f
26
26
  * propagation.
27
27
  */
28
28
  export declare function tsBindingScopeFor(decl: CaptureMatch, innermost: Scope, tree: ScopeTree): ScopeId | null;
29
- /**
30
- * Walk up the scope chain to find the first scope whose `kind` matches
31
- * any of `kinds`. Returns the matching scope's id or `null` when no
32
- * ancestor matches (e.g., a return type binding emitted outside any
33
- * Module scope — shouldn't happen in well-formed input).
34
- *
35
- * Exported so language-specific hook wrappers (e.g. `jsBindingScopeFor`)
36
- * can reuse it without duplicating the traversal logic.
37
- */
38
- export declare function walkToScope(from: Scope, tree: ScopeTree, ...kinds: readonly Scope['kind'][]): ScopeId | null;
39
29
  /**
40
30
  * TypeScript imports are syntactically top-level: `import_statement` is
41
31
  * legal only inside `program` (the module root). `namespace X { … }`