gitnexus 1.6.10-rc.99 → 1.6.10

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 (775) hide show
  1. package/README.md +177 -18
  2. package/dist/_shared/graph/types.d.ts +21 -2
  3. package/dist/_shared/graph/types.d.ts.map +1 -1
  4. package/dist/_shared/index.d.ts +3 -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 +16 -0
  11. package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
  12. package/dist/_shared/integrations/resilient-fetch.js +19 -7
  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/evidence-weights.d.ts.map +1 -1
  20. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +5 -0
  21. package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
  22. package/dist/_shared/scope-resolution/finalize-algorithm.js +315 -36
  23. package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
  24. package/dist/_shared/scope-resolution/reference-site.d.ts +115 -0
  25. package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
  26. package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
  27. package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
  28. package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
  29. package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
  30. package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
  31. package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
  32. package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
  33. package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
  34. package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
  35. package/dist/_shared/scope-resolution/types.d.ts +278 -3
  36. package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
  37. package/dist/cli/ai-context.d.ts +3 -2
  38. package/dist/cli/ai-context.js +71 -16
  39. package/dist/cli/analyze-config.d.ts +1 -1
  40. package/dist/cli/analyze-options.d.ts +131 -0
  41. package/dist/cli/analyze-options.js +1 -0
  42. package/dist/cli/analyze.d.ts +21 -113
  43. package/dist/cli/analyze.js +172 -29
  44. package/dist/cli/cli-message.d.ts +1 -1
  45. package/dist/cli/detect-changes-format.js +19 -2
  46. package/dist/cli/doctor.d.ts +12 -0
  47. package/dist/cli/doctor.js +32 -5
  48. package/dist/cli/editor-targets.js +6 -0
  49. package/dist/cli/eval-server.js +2 -1
  50. package/dist/cli/format-symbol.d.ts +15 -0
  51. package/dist/cli/format-symbol.js +17 -0
  52. package/dist/cli/generated-skill.d.ts +17 -0
  53. package/dist/cli/generated-skill.js +1 -0
  54. package/dist/cli/group.js +229 -21
  55. package/dist/cli/help-i18n.js +1 -2
  56. package/dist/cli/i18n/en.d.ts +11 -9
  57. package/dist/cli/i18n/en.js +13 -9
  58. package/dist/cli/i18n/resources.d.ts +15 -11
  59. package/dist/cli/i18n/zh-CN.d.ts +4 -2
  60. package/dist/cli/i18n/zh-CN.js +11 -9
  61. package/dist/cli/index.js +8 -4
  62. package/dist/cli/resolve-invocation.d.ts +7 -3
  63. package/dist/cli/resolve-invocation.js +7 -3
  64. package/dist/cli/setup.js +4 -3
  65. package/dist/cli/skill-gen.d.ts +1 -6
  66. package/dist/cli/tool.d.ts +1 -0
  67. package/dist/cli/tool.js +74 -17
  68. package/dist/cli/wiki.js +53 -10
  69. package/dist/config/ignore-service.d.ts +2 -0
  70. package/dist/config/ignore-service.js +54 -13
  71. package/dist/core/analyzer-identity.d.ts +80 -0
  72. package/dist/core/analyzer-identity.js +364 -26
  73. package/dist/core/augmentation/engine.js +86 -71
  74. package/dist/core/embedding-checkpoint.d.ts +143 -0
  75. package/dist/core/embedding-checkpoint.js +221 -0
  76. package/dist/core/embedding-count.d.ts +61 -0
  77. package/dist/core/embedding-count.js +69 -0
  78. package/dist/core/embeddings/ast-utils.js +9 -1
  79. package/dist/core/embeddings/embedding-pipeline.d.ts +8 -0
  80. package/dist/core/embeddings/embedding-pipeline.js +253 -14
  81. package/dist/core/embeddings/http-client.d.ts +5 -0
  82. package/dist/core/embeddings/http-client.js +142 -27
  83. package/dist/core/graph/graph.js +3 -0
  84. package/dist/core/graph/import-cycles.d.ts +194 -3
  85. package/dist/core/graph/import-cycles.js +522 -73
  86. package/dist/core/graph/types.d.ts +18 -0
  87. package/dist/core/group/bridge-db.d.ts +204 -1
  88. package/dist/core/group/bridge-db.js +401 -28
  89. package/dist/core/group/completeness.d.ts +130 -0
  90. package/dist/core/group/completeness.js +83 -0
  91. package/dist/core/group/config-parser.js +0 -5
  92. package/dist/core/group/cross-impact.d.ts +46 -1
  93. package/dist/core/group/cross-impact.js +220 -19
  94. package/dist/core/group/cross-trace.d.ts +32 -11
  95. package/dist/core/group/cross-trace.js +114 -20
  96. package/dist/core/group/extractors/http-patterns/java.js +278 -22
  97. package/dist/core/group/extractors/http-patterns/node.js +332 -216
  98. package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
  99. package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
  100. package/dist/core/group/extractors/http-route-extractor.js +122 -48
  101. package/dist/core/group/extractors/include-extractor.js +20 -2
  102. package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
  103. package/dist/core/group/extractors/manifest-extractor.js +7 -7
  104. package/dist/core/group/extractors/python-workspace-extractor.js +5 -2
  105. package/dist/core/group/group-lock.d.ts +31 -0
  106. package/dist/core/group/group-lock.js +166 -0
  107. package/dist/core/group/service.js +297 -16
  108. package/dist/core/group/storage.d.ts +3 -0
  109. package/dist/core/group/storage.js +7 -39
  110. package/dist/core/group/sync.d.ts +49 -3
  111. package/dist/core/group/sync.js +0 -0
  112. package/dist/core/group/types.d.ts +183 -8
  113. package/dist/core/group/types.js +28 -1
  114. package/dist/core/incremental/subgraph-extract.d.ts +9 -6
  115. package/dist/core/incremental/subgraph-extract.js +33 -10
  116. package/dist/core/index-freshness.d.ts +77 -2
  117. package/dist/core/index-freshness.js +109 -2
  118. package/dist/core/ingestion/call-processor.d.ts +13 -1
  119. package/dist/core/ingestion/call-processor.js +110 -3
  120. package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
  121. package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
  122. package/dist/core/ingestion/cfg/emit.d.ts +8 -23
  123. package/dist/core/ingestion/cfg/emit.js +9 -23
  124. package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
  125. package/dist/core/ingestion/cluster-enricher.js +8 -4
  126. package/dist/core/ingestion/community-processor.d.ts +21 -3
  127. package/dist/core/ingestion/community-processor.js +81 -82
  128. package/dist/core/ingestion/di-extractors/index.d.ts +9 -33
  129. package/dist/core/ingestion/di-extractors/spring.d.ts +1 -1
  130. package/dist/core/ingestion/di-extractors/spring.js +8 -1
  131. package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
  132. package/dist/core/ingestion/di-extractors/types.js +15 -0
  133. package/dist/core/ingestion/filesystem-walker.js +30 -14
  134. package/dist/core/ingestion/finalize-orchestrator.js +1 -0
  135. package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +6 -0
  136. package/dist/core/ingestion/frameworks/spring/analysis-features.js +35 -1
  137. package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
  138. package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
  139. package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
  140. package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
  141. package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
  142. package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
  143. package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
  144. package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
  145. package/dist/core/ingestion/frameworks/spring/bean-catalog.js +1 -0
  146. package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
  147. package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
  148. package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
  149. package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
  150. package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +3 -0
  151. package/dist/core/ingestion/frameworks/spring/di-metadata.js +162 -13
  152. package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
  153. package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
  154. package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
  155. package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
  156. package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
  157. package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
  158. package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
  159. package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
  160. package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
  161. package/dist/core/ingestion/import-resolvers/go.js +44 -17
  162. package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
  163. package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
  164. package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +429 -0
  165. package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
  166. package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
  167. package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
  168. package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
  169. package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
  170. package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
  171. package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
  172. package/dist/core/ingestion/import-resolvers/php.js +65 -19
  173. package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
  174. package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
  175. package/dist/core/ingestion/import-resolvers/python.js +25 -6
  176. package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
  177. package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
  178. package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
  179. package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
  180. package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
  181. package/dist/core/ingestion/import-resolvers/utils.js +215 -36
  182. package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
  183. package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
  184. package/dist/core/ingestion/language-config.d.ts +29 -1
  185. package/dist/core/ingestion/language-config.js +110 -35
  186. package/dist/core/ingestion/language-provider.d.ts +209 -7
  187. package/dist/core/ingestion/language-provider.js +37 -0
  188. package/dist/core/ingestion/languages/c/captures.js +7 -0
  189. package/dist/core/ingestion/languages/c/import-target.js +12 -16
  190. package/dist/core/ingestion/languages/c/scope-resolver.js +20 -19
  191. package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
  192. package/dist/core/ingestion/languages/c-cpp.js +13 -0
  193. package/dist/core/ingestion/languages/cobol/scope-resolver.js +27 -20
  194. package/dist/core/ingestion/languages/cobol.js +13 -0
  195. package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
  196. package/dist/core/ingestion/languages/cpp/adl.js +67 -44
  197. package/dist/core/ingestion/languages/cpp/captures.js +14 -2
  198. package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
  199. package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
  200. package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
  201. package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
  202. package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
  203. package/dist/core/ingestion/languages/cpp/query.js +106 -0
  204. package/dist/core/ingestion/languages/cpp/scope-resolver.js +48 -20
  205. package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
  206. package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
  207. package/dist/core/ingestion/languages/csharp/captures.js +19 -0
  208. package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
  209. package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
  210. package/dist/core/ingestion/languages/csharp/query.js +25 -5
  211. package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
  212. package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
  213. package/dist/core/ingestion/languages/dart/captures.js +598 -16
  214. package/dist/core/ingestion/languages/dart/import-target.js +32 -9
  215. package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
  216. package/dist/core/ingestion/languages/dart/index.js +1 -1
  217. package/dist/core/ingestion/languages/dart/query.js +98 -1
  218. package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
  219. package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
  220. package/dist/core/ingestion/languages/dart.js +6 -1
  221. package/dist/core/ingestion/languages/go/captures.js +108 -3
  222. package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
  223. package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
  224. package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
  225. package/dist/core/ingestion/languages/go/import-target.js +34 -30
  226. package/dist/core/ingestion/languages/go/index.d.ts +1 -1
  227. package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
  228. package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
  229. package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
  230. package/dist/core/ingestion/languages/go/interpret.js +22 -8
  231. package/dist/core/ingestion/languages/go/method-owners.js +31 -12
  232. package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
  233. package/dist/core/ingestion/languages/go/package-clause.js +75 -0
  234. package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
  235. package/dist/core/ingestion/languages/go/query.js +56 -3
  236. package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
  237. package/dist/core/ingestion/languages/go.js +9 -0
  238. package/dist/core/ingestion/languages/java/analysis-features.d.ts +4 -0
  239. package/dist/core/ingestion/languages/java/analysis-features.js +12 -0
  240. package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +12 -0
  241. package/dist/core/ingestion/languages/java/capture-side-channel.js +48 -0
  242. package/dist/core/ingestion/languages/java/captures.js +77 -32
  243. package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
  244. package/dist/core/ingestion/languages/java/import-target.js +68 -88
  245. package/dist/core/ingestion/languages/java/interpret.js +3 -2
  246. package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
  247. package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
  248. package/dist/core/ingestion/languages/java/query.js +15 -3
  249. package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
  250. package/dist/core/ingestion/languages/java/record-components.js +185 -0
  251. package/dist/core/ingestion/languages/java/scope-resolver.js +10 -2
  252. package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
  253. package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
  254. package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
  255. package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
  256. package/dist/core/ingestion/languages/java/spring-di.d.ts +4 -1
  257. package/dist/core/ingestion/languages/java/spring-di.js +41 -9
  258. package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
  259. package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
  260. package/dist/core/ingestion/languages/java.js +94 -3
  261. package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
  262. package/dist/core/ingestion/languages/javascript/captures.js +262 -4
  263. package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
  264. package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
  265. package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
  266. package/dist/core/ingestion/languages/javascript/index.js +54 -5
  267. package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
  268. package/dist/core/ingestion/languages/javascript/query.js +211 -5
  269. package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
  270. package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
  271. package/dist/core/ingestion/languages/jvm/package-siblings.js +77 -9
  272. package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
  273. package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +48 -0
  274. package/dist/core/ingestion/languages/kotlin/captures.js +43 -1
  275. package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
  276. package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
  277. package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
  278. package/dist/core/ingestion/languages/kotlin/index.js +1 -0
  279. package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
  280. package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
  281. package/dist/core/ingestion/languages/kotlin/query.js +28 -2
  282. package/dist/core/ingestion/languages/kotlin/scope-resolver.js +23 -2
  283. package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
  284. package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
  285. package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
  286. package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
  287. package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +2 -0
  288. package/dist/core/ingestion/languages/kotlin/spring-di.js +60 -11
  289. package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
  290. package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
  291. package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
  292. package/dist/core/ingestion/languages/php/captures.js +319 -51
  293. package/dist/core/ingestion/languages/php/import-target.d.ts +3 -4
  294. package/dist/core/ingestion/languages/php/import-target.js +192 -62
  295. package/dist/core/ingestion/languages/php/query.js +31 -0
  296. package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
  297. package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
  298. package/dist/core/ingestion/languages/python/captures.js +29 -0
  299. package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
  300. package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
  301. package/dist/core/ingestion/languages/python/import-target.js +277 -91
  302. package/dist/core/ingestion/languages/python/index.d.ts +1 -1
  303. package/dist/core/ingestion/languages/python/index.js +1 -1
  304. package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
  305. package/dist/core/ingestion/languages/python/interpret.js +249 -7
  306. package/dist/core/ingestion/languages/python/query.js +9 -0
  307. package/dist/core/ingestion/languages/python/receiver-binding.d.ts +8 -6
  308. package/dist/core/ingestion/languages/python/receiver-binding.js +108 -12
  309. package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
  310. package/dist/core/ingestion/languages/python/simple-hooks.js +2 -8
  311. package/dist/core/ingestion/languages/python.js +13 -0
  312. package/dist/core/ingestion/languages/ruby/captures.js +158 -0
  313. package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
  314. package/dist/core/ingestion/languages/ruby/query.js +93 -0
  315. package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
  316. package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
  317. package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
  318. package/dist/core/ingestion/languages/rust/captures.js +39 -1
  319. package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
  320. package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
  321. package/dist/core/ingestion/languages/rust/module-path.js +214 -0
  322. package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
  323. package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
  324. package/dist/core/ingestion/languages/rust/query.js +39 -6
  325. package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
  326. package/dist/core/ingestion/languages/rust.js +17 -0
  327. package/dist/core/ingestion/languages/swift/captures.js +87 -3
  328. package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
  329. package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
  330. package/dist/core/ingestion/languages/swift/import-target.js +4 -9
  331. package/dist/core/ingestion/languages/swift/query.js +17 -0
  332. package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
  333. package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
  334. package/dist/core/ingestion/languages/swift.js +2 -0
  335. package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
  336. package/dist/core/ingestion/languages/typescript/captures.js +267 -5
  337. package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
  338. package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
  339. package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
  340. package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
  341. package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.d.ts +7 -0
  342. package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.js +92 -0
  343. package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
  344. package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
  345. package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
  346. package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
  347. package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
  348. package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
  349. package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
  350. package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
  351. package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
  352. package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
  353. package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
  354. package/dist/core/ingestion/languages/typescript/query.js +303 -14
  355. package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
  356. package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
  357. package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
  358. package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
  359. package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
  360. package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
  361. package/dist/core/ingestion/languages/typescript/tsconfig.js +292 -0
  362. package/dist/core/ingestion/languages/typescript.js +93 -2
  363. package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
  364. package/dist/core/ingestion/languages/vue/import-target.js +11 -47
  365. package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
  366. package/dist/core/ingestion/local-symbol-pruner.js +11 -11
  367. package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
  368. package/dist/core/ingestion/method-extractors/generic.js +1 -0
  369. package/dist/core/ingestion/method-types.d.ts +16 -0
  370. package/dist/core/ingestion/pipeline-phases/di.d.ts +1 -1
  371. package/dist/core/ingestion/pipeline-phases/di.js +136 -21
  372. package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
  373. package/dist/core/ingestion/pipeline-phases/index.js +2 -0
  374. package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
  375. package/dist/core/ingestion/pipeline-phases/parse-impl.js +154 -4
  376. package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
  377. package/dist/core/ingestion/pipeline-phases/processes.d.ts +3 -2
  378. package/dist/core/ingestion/pipeline-phases/processes.js +91 -6
  379. package/dist/core/ingestion/pipeline-phases/routes.js +116 -25
  380. package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
  381. package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
  382. package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
  383. package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
  384. package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
  385. package/dist/core/ingestion/pipeline.d.ts +26 -2
  386. package/dist/core/ingestion/pipeline.js +60 -11
  387. package/dist/core/ingestion/process-processor.d.ts +109 -2
  388. package/dist/core/ingestion/process-processor.js +464 -52
  389. package/dist/core/ingestion/resolve-references.d.ts +6 -1
  390. package/dist/core/ingestion/resolve-references.js +66 -6
  391. package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +8 -2
  392. package/dist/core/ingestion/route-extractors/constant-resolver.js +11 -7
  393. package/dist/core/ingestion/route-extractors/data-route-table.d.ts +40 -0
  394. package/dist/core/ingestion/route-extractors/data-route-table.js +876 -0
  395. package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
  396. package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
  397. package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +114 -0
  398. package/dist/core/ingestion/route-extractors/java-const-resolver.js +569 -0
  399. package/dist/core/ingestion/route-extractors/js-const-resolver.d.ts +192 -0
  400. package/dist/core/ingestion/route-extractors/js-const-resolver.js +1033 -0
  401. package/dist/core/ingestion/route-extractors/nest.d.ts +53 -0
  402. package/dist/core/ingestion/route-extractors/nest.js +523 -0
  403. package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
  404. package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
  405. package/dist/core/ingestion/route-extractors/spring.js +214 -29
  406. package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
  407. package/dist/core/ingestion/scope-extractor.d.ts +22 -7
  408. package/dist/core/ingestion/scope-extractor.js +309 -15
  409. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +311 -21
  410. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
  411. package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +12 -0
  412. package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +47 -0
  413. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
  414. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +280 -42
  415. package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
  416. package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
  417. package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +58 -1
  418. package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +137 -34
  419. package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
  420. package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +39 -1
  421. package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +18 -1
  422. package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +113 -18
  423. package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
  424. package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
  425. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -0
  426. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +101 -41
  427. package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
  428. package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
  429. package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +5 -1
  430. package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +8 -1
  431. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +105 -5
  432. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
  433. package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
  434. package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
  435. package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
  436. package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
  437. package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +29 -0
  438. package/dist/core/ingestion/scope-resolution/pipeline/phase.js +57 -0
  439. package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +55 -1
  440. package/dist/core/ingestion/scope-resolution/pipeline/run.js +241 -19
  441. package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
  442. package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
  443. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
  444. package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
  445. package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
  446. package/dist/core/ingestion/scope-resolution/scope/walkers.js +905 -22
  447. package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
  448. package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
  449. package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
  450. package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
  451. package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
  452. package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
  453. package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
  454. package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
  455. package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
  456. package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
  457. package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
  458. package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
  459. package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
  460. package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
  461. package/dist/core/ingestion/tree-sitter-queries.js +678 -4
  462. package/dist/core/ingestion/type-env.js +11 -7
  463. package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
  464. package/dist/core/ingestion/type-extractors/shared.js +16 -0
  465. package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
  466. package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
  467. package/dist/core/ingestion/type-extractors/typescript.js +26 -0
  468. package/dist/core/ingestion/utils/ast-helpers.d.ts +297 -15
  469. package/dist/core/ingestion/utils/ast-helpers.js +578 -46
  470. package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
  471. package/dist/core/ingestion/utils/call-analysis.js +202 -7
  472. package/dist/core/ingestion/utils/callable-flow-captures.d.ts +59 -0
  473. package/dist/core/ingestion/utils/callable-flow-captures.js +51 -1
  474. package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
  475. package/dist/core/ingestion/utils/callable-labels.js +31 -0
  476. package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
  477. package/dist/core/ingestion/utils/effective-ram.js +58 -0
  478. package/dist/core/ingestion/utils/line-base.d.ts +14 -0
  479. package/dist/core/ingestion/utils/line-base.js +14 -0
  480. package/dist/core/ingestion/utils/method-props.d.ts +27 -4
  481. package/dist/core/ingestion/utils/method-props.js +29 -4
  482. package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
  483. package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
  484. package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
  485. package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
  486. package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
  487. package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
  488. package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
  489. package/dist/core/ingestion/utils/template-arguments.js +196 -0
  490. package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
  491. package/dist/core/ingestion/utils/type-parameters.js +206 -0
  492. package/dist/core/ingestion/workers/callable-id.d.ts +80 -0
  493. package/dist/core/ingestion/workers/callable-id.js +125 -0
  494. package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
  495. package/dist/core/ingestion/workers/parse-worker.js +493 -54
  496. package/dist/core/ingestion/workers/worker-pool.d.ts +20 -27
  497. package/dist/core/ingestion/workers/worker-pool.js +91 -3
  498. package/dist/core/lbug/csv-generator.d.ts +27 -0
  499. package/dist/core/lbug/csv-generator.js +72 -17
  500. package/dist/core/lbug/extension-load-error.js +13 -2
  501. package/dist/core/lbug/extension-loader.d.ts +29 -0
  502. package/dist/core/lbug/extension-loader.js +31 -6
  503. package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
  504. package/dist/core/lbug/graph-emit-sink.js +581 -0
  505. package/dist/core/lbug/lbug-adapter.d.ts +290 -11
  506. package/dist/core/lbug/lbug-adapter.js +652 -69
  507. package/dist/core/lbug/native-check.d.ts +21 -0
  508. package/dist/core/lbug/native-check.js +248 -32
  509. package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
  510. package/dist/core/lbug/pdg-emit-sink.js +21 -111
  511. package/dist/core/lbug/pool-adapter.d.ts +9 -0
  512. package/dist/core/lbug/pool-adapter.js +164 -14
  513. package/dist/core/lbug/query-batch.d.ts +75 -0
  514. package/dist/core/lbug/query-batch.js +102 -0
  515. package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
  516. package/dist/core/lbug/rel-pair-routing.js +228 -10
  517. package/dist/core/lbug/schema.d.ts +163 -4
  518. package/dist/core/lbug/schema.js +404 -159
  519. package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
  520. package/dist/core/lbug/sync-csv-writer.js +108 -0
  521. package/dist/core/run-analyze.d.ts +147 -0
  522. package/dist/core/run-analyze.js +1215 -179
  523. package/dist/core/search/bm25-index.d.ts +11 -0
  524. package/dist/core/search/bm25-index.js +60 -26
  525. package/dist/core/search/fts-indexes.d.ts +150 -9
  526. package/dist/core/search/fts-indexes.js +241 -23
  527. package/dist/core/wiki/graph-queries.js +145 -112
  528. package/dist/core/wiki/llm-client.d.ts +29 -3
  529. package/dist/core/wiki/llm-client.js +47 -12
  530. package/dist/core/wiki/prompts.d.ts +19 -0
  531. package/dist/core/wiki/prompts.js +20 -1
  532. package/dist/lib/utils.d.ts +113 -0
  533. package/dist/lib/utils.js +185 -0
  534. package/dist/mcp/local/aop-metadata.d.ts +77 -0
  535. package/dist/mcp/local/aop-metadata.js +227 -0
  536. package/dist/mcp/local/bean-metadata.d.ts +2 -1
  537. package/dist/mcp/local/bean-metadata.js +22 -1
  538. package/dist/mcp/local/convex-metadata.d.ts +8 -0
  539. package/dist/mcp/local/convex-metadata.js +45 -0
  540. package/dist/mcp/local/local-backend.d.ts +174 -11
  541. package/dist/mcp/local/local-backend.js +1678 -331
  542. package/dist/mcp/local/path-predicate.d.ts +19 -0
  543. package/dist/mcp/local/path-predicate.js +21 -0
  544. package/dist/mcp/local/pdg-impact.d.ts +132 -10
  545. package/dist/mcp/local/pdg-impact.js +391 -98
  546. package/dist/mcp/repository-policy.d.ts +1 -0
  547. package/dist/mcp/repository-policy.js +5 -0
  548. package/dist/mcp/resources.js +26 -4
  549. package/dist/mcp/server.js +23 -13
  550. package/dist/mcp/tools.d.ts +8 -0
  551. package/dist/mcp/tools.js +76 -23
  552. package/dist/server/analyze-job.d.ts +37 -2
  553. package/dist/server/analyze-job.js +13 -2
  554. package/dist/server/analyze-launch.d.ts +1 -1
  555. package/dist/server/analyze-launch.js +79 -10
  556. package/dist/server/analyze-worker-core.d.ts +1 -1
  557. package/dist/server/analyze-worker-core.js +10 -1
  558. package/dist/server/analyze-worker-ipc.d.ts +1 -1
  559. package/dist/server/analyze-worker-ipc.js +4 -0
  560. package/dist/server/analyze-worker-protocol.d.ts +59 -0
  561. package/dist/server/analyze-worker-protocol.js +1 -0
  562. package/dist/server/analyze-worker.d.ts +1 -17
  563. package/dist/server/api.d.ts +2 -11
  564. package/dist/server/api.js +164 -163
  565. package/dist/server/embed-run-outcome.d.ts +89 -0
  566. package/dist/server/embed-run-outcome.js +88 -0
  567. package/dist/server/git-clone.js +6 -2
  568. package/dist/server/middleware.d.ts +116 -9
  569. package/dist/server/middleware.js +291 -22
  570. package/dist/server/sse-progress.d.ts +41 -0
  571. package/dist/server/sse-progress.js +125 -0
  572. package/dist/storage/branch-index.d.ts +11 -6
  573. package/dist/storage/branch-index.js +15 -7
  574. package/dist/storage/file-hash.js +2 -2
  575. package/dist/storage/fs-atomic.d.ts +25 -0
  576. package/dist/storage/fs-atomic.js +42 -0
  577. package/dist/storage/git.d.ts +131 -0
  578. package/dist/storage/git.js +236 -2
  579. package/dist/storage/index-lock.d.ts +102 -0
  580. package/dist/storage/index-lock.js +660 -0
  581. package/dist/storage/parse-cache.js +588 -6
  582. package/dist/storage/parsedfile-store.js +76 -6
  583. package/dist/storage/repo-manager.d.ts +54 -441
  584. package/dist/storage/repo-manager.js +312 -221
  585. package/dist/storage/repo-meta.d.ts +530 -0
  586. package/dist/storage/repo-meta.js +100 -0
  587. package/dist/types/pipeline.d.ts +37 -0
  588. package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
  589. package/hooks/claude/gitnexus-hook.cjs +1 -1
  590. package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
  591. package/package.json +11 -2
  592. package/scripts/cross-platform-shard.ts +153 -0
  593. package/scripts/cross-platform-tests.ts +122 -0
  594. package/scripts/run-cross-platform.ts +16 -5
  595. package/skills/gitnexus-cli.md +3 -3
  596. package/skills/gitnexus-debugging.md +37 -7
  597. package/skills/gitnexus-exploring.md +26 -4
  598. package/skills/gitnexus-impact-analysis.md +71 -10
  599. package/skills/gitnexus-plan/README.md +11 -6
  600. package/skills/gitnexus-plan/references/evidence-provenance.md +49 -12
  601. package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +654 -372
  602. package/skills/gitnexus-refactoring.md +48 -5
  603. package/skills/gitnexus-review/SKILL.md +12 -6
  604. package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +1 -1
  605. package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +1 -1
  606. package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +1 -1
  607. package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +1 -1
  608. package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +1 -1
  609. package/skills/gitnexus-review/ci-personas/ci-security-lens.md +1 -1
  610. package/skills/gitnexus-taint-analysis.md +13 -7
  611. package/skills/gitnexus-work/SKILL.md +4 -1
  612. package/skills/gitnexus-work/references/evidence-provenance.md +49 -12
  613. package/skills/gitnexus-work/scripts/evidence-provenance.mjs +654 -372
  614. package/vendor/leiden/utils.cjs +28 -1
  615. package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
  616. package/web/assets/{__vite-browser-external-bMKyYQkO.js → __vite-browser-external-COxE8F0G.js} +1 -1
  617. package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
  618. package/web/assets/agent-Dr4l5EOp.js +662 -0
  619. package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
  620. package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
  621. package/web/assets/{blockDiagram-7IZFK4PR-DBefcjof.js → blockDiagram-54WLDVWM-Dg_hrRWE.js} +4 -4
  622. package/web/assets/{c4Diagram-Y2BXMSZH-EjWnjEJl.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +2 -2
  623. package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
  624. package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
  625. package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
  626. package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
  627. package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
  628. package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
  629. package/web/assets/{chunk-LII3EMHJ-BL6lKJ_P.js → chunk-6L755F7B-CMhLBxi2.js} +1 -1
  630. package/web/assets/{chunk-QA3QBVWF-DVXPOIxe.js → chunk-7CWYLC5S-DRgGkkpF.js} +1 -1
  631. package/web/assets/{chunk-ZXARS5L4-C3v-4Fsw.js → chunk-A7VWPJGB-B4O3oQdQ.js} +1 -1
  632. package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
  633. package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
  634. package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
  635. package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
  636. package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
  637. package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
  638. package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
  639. package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
  640. package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
  641. package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
  642. package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
  643. package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
  644. package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
  645. package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
  646. package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
  647. package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
  648. package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
  649. package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
  650. package/web/assets/{chunk-INKRHTLW-Ckl3_KkO.js → chunk-SZD42YQK-ijyKKVr1.js} +21 -21
  651. package/web/assets/{chunk-LCXTWHL2-C162wE5z.js → chunk-TFPGFQPA-Dj6a-0pC.js} +3 -3
  652. package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
  653. package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
  654. package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
  655. package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
  656. package/web/assets/{chunk-RG4AUYOV-ZNgyLFq6.js → chunk-VJFVEZTB-CX66F2ep.js} +3 -3
  657. package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
  658. package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
  659. package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
  660. package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
  661. package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
  662. package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
  663. package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
  664. package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
  665. package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
  666. package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
  667. package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
  668. package/web/assets/{diagram-HNR7UZ2L-DVRltWbL.js → diagram-KFBZAVDW-Dfmf_4ti.js} +3 -3
  669. package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
  670. package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
  671. package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
  672. package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
  673. package/web/assets/error-D9MtuG9s.js +1 -0
  674. package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
  675. package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
  676. package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
  677. package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
  678. package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
  679. package/web/assets/{index-D7mTFcvQ.js → index-2zdvEdzg.js} +51 -51
  680. package/web/assets/index-CJDpyH-n.css +2 -0
  681. package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
  682. package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
  683. package/web/assets/{ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +2 -2
  684. package/web/assets/{journeyDiagram-M6C3CM3L-C6wjooas.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +3 -3
  685. package/web/assets/{kanban-definition-75IXJCU3-5_UVY79g.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +6 -6
  686. package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
  687. package/web/assets/{mindmap-definition-2TDM6QVE-8xDLzk2e.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +5 -5
  688. package/web/assets/node.browser-U-KyT5AW.js +1 -0
  689. package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
  690. package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
  691. package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
  692. package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
  693. package/web/assets/{quadrantDiagram-VICAPDV7-DR54jOeR.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +3 -3
  694. package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
  695. package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
  696. package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
  697. package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
  698. package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
  699. package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
  700. package/web/assets/{requirementDiagram-JXO7QTGE-PEkg7sKC.js → requirementDiagram-RASO5HTO-B-l8InpK.js} +4 -4
  701. package/web/assets/{sankeyDiagram-URQDO5SZ-DDWEtjcs.js → sankeyDiagram-F32LOJ6L-Kd7zjJgX.js} +3 -3
  702. package/web/assets/{sequenceDiagram-VS2MUI6T-Bv-uwANx.js → sequenceDiagram-URATNSBD-BlcdY9DS.js} +7 -7
  703. package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
  704. package/web/assets/src-C5sx_gMp.js +1 -0
  705. package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
  706. package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
  707. package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
  708. package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
  709. package/web/assets/{timeline-definition-O6YCAMPW-Qmsuo7qS.js → timeline-definition-WJXWRH4I-DUfp1R3E.js} +3 -3
  710. package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
  711. package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
  712. package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
  713. package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
  714. package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
  715. package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
  716. package/web/index.html +16 -15
  717. package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
  718. package/dist/core/ingestion/languages/python/index-stats.js +0 -25
  719. package/web/assets/ProcessFlowModal-CwkpVkv-.js +0 -22
  720. package/web/assets/agent-Ds-lkZjX.js +0 -626
  721. package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
  722. package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +0 -36
  723. package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +0 -4
  724. package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
  725. package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
  726. package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
  727. package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +0 -124
  728. package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +0 -10
  729. package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
  730. package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
  731. package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
  732. package/web/assets/chunk-KGFNY3KK-BZeP-55u.js +0 -62
  733. package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
  734. package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
  735. package/web/assets/chunk-LRIF4GLE-n59lhprL.js +0 -1
  736. package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
  737. package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
  738. package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +0 -1
  739. package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
  740. package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
  741. package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +0 -1
  742. package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +0 -2
  743. package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +0 -1
  744. package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +0 -1
  745. package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +0 -4
  746. package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +0 -43
  747. package/web/assets/diagram-GF46GFSD-B2atbzmU.js +0 -24
  748. package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +0 -24
  749. package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +0 -10
  750. package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +0 -85
  751. package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
  752. package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +0 -162
  753. package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +0 -292
  754. package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
  755. package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +0 -106
  756. package/web/assets/index-CX_fADmQ.css +0 -2
  757. package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
  758. package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +0 -2
  759. package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
  760. package/web/assets/node-Ct_zna8U.js +0 -8
  761. package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
  762. package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
  763. package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +0 -30
  764. package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
  765. package/web/assets/sdk-CzHHH8tD.js +0 -37
  766. package/web/assets/src-Cv1eWg0o.js +0 -1
  767. package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +0 -1
  768. package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +0 -1
  769. package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
  770. package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
  771. package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +0 -34
  772. package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
  773. package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +0 -78
  774. package/web/assets/xychartDiagram-N2JHSOCM-CoZ_Tits.js +0 -7
  775. /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
@@ -1,5 +1,18 @@
1
- import type { Range } from '../../../_shared/index.js';
2
- export type ResolutionSuppressionReason = 'adl-ordinary-lookup-blocked' | 'conversion-rank-tied' | 'inline-ns-ambiguous' | 'member-lookup-ambiguous' | 'selected-callable-deleted' | 'overload-ambiguous' | 'overload-ambiguous-normalization' | 'free-call-instance-ownership';
1
+ import type { Range, ReferenceKind } from '../../../_shared/index.js';
2
+ import type { DecodedReceiverChain } from '../utils/receiver-chain-codec.js';
3
+ export type ResolutionSuppressionReason = 'adl-ordinary-lookup-blocked' | 'conversion-rank-tied' | 'inline-ns-ambiguous' | 'member-lookup-ambiguous' | 'selected-callable-deleted' | 'overload-ambiguous' | 'overload-ambiguous-normalization' | 'free-call-instance-ownership'
4
+ /** #2701 — the receiver is rebound by its own scope and has no type
5
+ * there (a JS/TS ordinary `function`'s `this`), so no enclosing type
6
+ * can be its type. See `isReceiverOwnedButUnbound`. */
7
+ | 'receiver-owned-but-unbound'
8
+ /** #2744 — the receiver is a compound expression (a call, a chain, a
9
+ * construction) whose TYPE could not be established, so the member call
10
+ * was dropped with no candidate at all. Distinct from the ambiguity
11
+ * reasons above: there is nothing to be ambiguous between. Consumers use
12
+ * this to report `impact()`/`context()` counts as a lower bound rather
13
+ * than as exact, since a dropped site's callee is by definition unknown
14
+ * and cannot be attributed to any target. */
15
+ | 'receiver-unresolved';
3
16
  export type ResolutionOutcome = {
4
17
  readonly kind: 'resolved';
5
18
  readonly targetId: string;
@@ -20,5 +33,102 @@ export type ResolutionOutcome = {
20
33
  readonly filePath: string;
21
34
  readonly name: string;
22
35
  readonly range: Range;
36
+ /**
37
+ * The reference kind of the site the suppression happened at, when the
38
+ * emitting case knows it.
39
+ *
40
+ * Set for `receiver-unresolved` because Case 0's gate fires on any
41
+ * compound receiver regardless of what the reference *is*, so a property
42
+ * write (`x.argtypes = [...]`) and a property read (`d.source.kind`) land
43
+ * in the same bucket as a genuinely dropped method call. Anything
44
+ * measuring resolver gaps has to separate them, and the site kind is the
45
+ * only authoritative signal — re-deriving it from the source line means
46
+ * regex-classifying the number that gates the work, which is the same
47
+ * textual-shape dispatch the structural-receiver work exists to remove.
48
+ *
49
+ * Diagnostic only. `summarizeUnresolvedReceivers` ignores it, so the
50
+ * persisted `RepoMeta.unresolvedReceiverMembers` artifact is unchanged.
51
+ */
52
+ readonly siteKind?: ReferenceKind;
53
+ /**
54
+ * Structural shape of the receiver whose type could not be established.
55
+ *
56
+ * Derived from the site's ENCODED RECEIVER CHAIN — the compact string the
57
+ * capture emitters mint by walking the real AST — never from the source
58
+ * line. Re-deriving a shape textually would mean regex-classifying the
59
+ * number that gates this work, which is exactly the textual-shape dispatch
60
+ * the structural-receiver line of work exists to remove.
61
+ *
62
+ * Lets a consumer ask "which KIND of receiver are we losing?" instead of
63
+ * only "how many". Without it, `callDropsByExtension` is the finest
64
+ * available split and a language's bucket says nothing about whether the
65
+ * cause is one defect or five.
66
+ *
67
+ * NOTE ON COVERAGE: only drops that REACH the recorder carry a shape, and
68
+ * Case 0's gate fires on receiver punctuation, so shapes that mint no
69
+ * reference site at all (`?.`, explicit type args, subscript) are absent
70
+ * from this breakdown entirely — they are the INVISIBLE-GAP population the
71
+ * bench shape arm exists to see. A shape census here is a census of the
72
+ * VISIBLE drops, not of all lost calls.
73
+ *
74
+ * Diagnostic only. `summarizeUnresolvedReceivers` ignores it, so the
75
+ * persisted `RepoMeta.unresolvedReceiverMembers` artifact is unchanged.
76
+ */
77
+ readonly receiverShape?: ReceiverShape;
78
+ /**
79
+ * Whether the receiver is rooted INSIDE the analyzed program.
80
+ *
81
+ * The single most important distinction a static-analysis tool can make
82
+ * about a call it did not resolve, and the one this codebase previously
83
+ * collapsed:
84
+ *
85
+ * - `in-program` — the receiver's base is a local, parameter, field or a
86
+ * type this index knows. Failing to type it is a RESOLVER DEFECT: a real
87
+ * caller exists in the graph and was lost.
88
+ * - `external` — the base is rooted in code this index does not contain
89
+ * (`System.out.println`, `fetch(...)`, `os.environ.setdefault`). There is
90
+ * NO node to point an edge at, so nothing was lost. A compiler resolves
91
+ * these against the JDK / BCL / lib.d.ts; without those, the honest
92
+ * answer is "outside the program", not "unknown".
93
+ *
94
+ * Only `in-program` makes an `impact` count a lower bound. Reporting an
95
+ * external target as uncertainty is what made the hedge fire on nearly
96
+ * every real codebase and taught readers to ignore it.
97
+ */
98
+ readonly receiverOrigin?: ReceiverOrigin;
23
99
  };
100
+ /**
101
+ * How a dropped receiver was spelled, structurally.
102
+ *
103
+ * - `chain-call` every recorded step is a call — `svc.getUser().save()`
104
+ * - `chain-field` every recorded step is a field — `h.repo.save()`
105
+ * - `chain-mixed` the chain interleaves both — `svc.getUser().addr.save()`
106
+ * - `chain-unwrap` the chain contains an `await` or `index` step — the shapes
107
+ * this work exists to expose. They were previously counted as
108
+ * FIELDS, because the classifier's parameter widened `kind` to
109
+ * `string` and they fell into its `else`.
110
+ * - `no-chain` the site carried no chain, so the receiver was a compound
111
+ * expression the capture walk could not reduce to a nameable
112
+ * base (it stopped early, or the base was unencodable)
113
+ */
114
+ export type ReceiverShape = 'chain-call' | 'chain-field' | 'chain-mixed' | 'chain-unwrap' | 'no-chain';
115
+ /**
116
+ * Is the receiver rooted inside the analyzed program, or outside it?
117
+ *
118
+ * `unknown` is for a site carrying no usable base at all — neither a chain nor
119
+ * an explicit receiver — where the question cannot be asked. It is treated as
120
+ * `in-program` for hedging purposes, because assuming completeness we cannot
121
+ * demonstrate is the unsafe direction.
122
+ */
123
+ export type ReceiverOrigin = 'in-program' | 'external' | 'unknown';
124
+ /** Classify a dropped receiver from its encoded chain. `undefined` chain ⇒
125
+ * `no-chain`; an undecodable one is also `no-chain`, since what we know about
126
+ * it is exactly that no usable structure survived.
127
+ *
128
+ * Takes `DecodedReceiverChain` rather than a structural duck-type: widening
129
+ * `kind` to `string` let `await` and `index` fall into an `else` branch and be
130
+ * counted as FIELDS, so the two shapes this work exists to expose were
131
+ * censused as `chain-field`. The discriminated union makes a new step kind a
132
+ * compile error instead of a silent bucket. */
133
+ export declare function classifyReceiverShape(decoded: DecodedReceiverChain | undefined): ReceiverShape;
24
134
  export type ResolutionOutcomeRecorder = (outcome: ResolutionOutcome) => void;
@@ -1 +1,38 @@
1
- export {};
1
+ /** Classify a dropped receiver from its encoded chain. `undefined` chain ⇒
2
+ * `no-chain`; an undecodable one is also `no-chain`, since what we know about
3
+ * it is exactly that no usable structure survived.
4
+ *
5
+ * Takes `DecodedReceiverChain` rather than a structural duck-type: widening
6
+ * `kind` to `string` let `await` and `index` fall into an `else` branch and be
7
+ * counted as FIELDS, so the two shapes this work exists to expose were
8
+ * censused as `chain-field`. The discriminated union makes a new step kind a
9
+ * compile error instead of a silent bucket. */
10
+ export function classifyReceiverShape(decoded) {
11
+ if (decoded === undefined || decoded.steps.length === 0)
12
+ return 'no-chain';
13
+ let calls = 0;
14
+ let fields = 0;
15
+ let unwraps = 0;
16
+ for (const step of decoded.steps) {
17
+ switch (step.kind) {
18
+ case 'call':
19
+ calls++;
20
+ break;
21
+ case 'field':
22
+ fields++;
23
+ break;
24
+ case 'await':
25
+ case 'index':
26
+ unwraps++;
27
+ break;
28
+ }
29
+ }
30
+ // An unwrap step dominates: a chain containing one fails for reasons a pure
31
+ // field or call chain does not, so folding it into either bucket would
32
+ // misattribute the population a fix has to target.
33
+ if (unwraps > 0)
34
+ return 'chain-unwrap';
35
+ if (calls > 0 && fields > 0)
36
+ return 'chain-mixed';
37
+ return calls > 0 ? 'chain-call' : 'chain-field';
38
+ }
@@ -15,8 +15,19 @@
15
15
  *
16
16
  * Next-consumer contract: any language with namespace-style imports
17
17
  * (TypeScript `import * as X`, Java static import, Ruby `require`)
18
- * uses this directly. `ParsedImport.kind === 'namespace'` is the
19
- * cross-language hook.
18
+ * uses this directly. The finalized `ImportEdge.kind === 'namespace'`
19
+ * classification is authoritative; providers may produce it directly from
20
+ * syntax or reclassify a named import after target resolution proves it names
21
+ * a module.
22
+ *
23
+ * A namespace edge may be reachable under TWO receiver spellings: the name it
24
+ * binds locally, and — for a language that opts in via
25
+ * `ScopeResolver.namespaceReceiverIncludesImportPath` — the dotted module path
26
+ * it was imported under (#2826). Python's `import a.b` binds only `a` while
27
+ * the call site writes `a.b`, so both keys are needed. The opt-in exists
28
+ * because the edge shape alone cannot tell that case from Swift's
29
+ * `import Foo.Bar`, where the same pair means the opposite thing — see the
30
+ * hook's contract note.
20
31
  *
21
32
  * Scope-chain concern (verified 2026-04-21): `pythonImportOwningScope`
22
33
  * documents that function-local and class-body imports bind to the
@@ -33,4 +44,15 @@
33
44
  */
34
45
  import type { ParsedFile } from '../../../../_shared/index.js';
35
46
  import type { ScopeResolutionIndexes } from '../../model/scope-resolution-indexes.js';
36
- export declare function collectNamespaceTargets(parsed: ParsedFile, scopes: ScopeResolutionIndexes): Map<string, string[]>;
47
+ import type { ScopeResolver } from '../contract/scope-resolver.js';
48
+ export interface NamespaceTargetOptions {
49
+ /** `ScopeResolver.namespaceReceiverPaths` for the file's language. Absent
50
+ * (or returning `undefined` per edge) keeps the local-name-only default:
51
+ * the extra spellings are opt-in, never inferred from the edge shape. */
52
+ readonly receiverPaths?: ScopeResolver['namespaceReceiverPaths'];
53
+ /** Whether a path is a module the workspace parsed. Lets a provider propose
54
+ * a prefix file and have it dropped when absent, instead of minting a key
55
+ * to a file that does not exist. Defaults to "nothing exists". */
56
+ readonly moduleFileExists?: (filePath: string) => boolean;
57
+ }
58
+ export declare function collectNamespaceTargets(parsed: ParsedFile, scopes: ScopeResolutionIndexes, options?: NamespaceTargetOptions): Map<string, string[]>;
@@ -15,8 +15,19 @@
15
15
  *
16
16
  * Next-consumer contract: any language with namespace-style imports
17
17
  * (TypeScript `import * as X`, Java static import, Ruby `require`)
18
- * uses this directly. `ParsedImport.kind === 'namespace'` is the
19
- * cross-language hook.
18
+ * uses this directly. The finalized `ImportEdge.kind === 'namespace'`
19
+ * classification is authoritative; providers may produce it directly from
20
+ * syntax or reclassify a named import after target resolution proves it names
21
+ * a module.
22
+ *
23
+ * A namespace edge may be reachable under TWO receiver spellings: the name it
24
+ * binds locally, and — for a language that opts in via
25
+ * `ScopeResolver.namespaceReceiverIncludesImportPath` — the dotted module path
26
+ * it was imported under (#2826). Python's `import a.b` binds only `a` while
27
+ * the call site writes `a.b`, so both keys are needed. The opt-in exists
28
+ * because the edge shape alone cannot tell that case from Swift's
29
+ * `import Foo.Bar`, where the same pair means the opposite thing — see the
30
+ * hook's contract note.
20
31
  *
21
32
  * Scope-chain concern (verified 2026-04-21): `pythonImportOwningScope`
22
33
  * documents that function-local and class-body imports bind to the
@@ -31,28 +42,37 @@
31
42
  * honor the hook's per-scope contract, this function must walk the
32
43
  * reference-site scope chain (mirror `findExportedDefByName`).
33
44
  */
34
- export function collectNamespaceTargets(parsed, scopes) {
45
+ export function collectNamespaceTargets(parsed, scopes, options) {
35
46
  const out = new Map();
36
47
  const moduleEdges = scopes.imports.get(parsed.moduleScope);
37
48
  if (moduleEdges === undefined)
38
49
  return out;
39
- const namespaceLocals = new Set();
40
- for (const imp of parsed.parsedImports) {
41
- if (imp.kind === 'namespace')
42
- namespaceLocals.add(imp.localName);
43
- }
50
+ const addTarget = (key, targetFile) => {
51
+ let targets = out.get(key);
52
+ if (targets === undefined) {
53
+ targets = [];
54
+ out.set(key, targets);
55
+ }
56
+ if (!targets.includes(targetFile))
57
+ targets.push(targetFile);
58
+ };
59
+ const moduleFileExists = options?.moduleFileExists ?? (() => false);
44
60
  for (const edge of moduleEdges) {
45
- if (edge.targetFile === null)
61
+ if (edge.targetFile === null || edge.kind !== 'namespace')
46
62
  continue;
47
- if (!namespaceLocals.has(edge.localName))
63
+ const spellings = options?.receiverPaths?.({
64
+ localName: edge.localName,
65
+ importPath: edge.targetExportedName,
66
+ targetFile: edge.targetFile,
67
+ }, moduleFileExists);
68
+ // A provider that declines this edge — or has no hook — gets the default:
69
+ // the bound name alone, pointing at this edge's own target.
70
+ if (spellings === undefined) {
71
+ addTarget(edge.localName, edge.targetFile);
48
72
  continue;
49
- let targets = out.get(edge.localName);
50
- if (targets === undefined) {
51
- targets = [];
52
- out.set(edge.localName, targets);
53
73
  }
54
- if (!targets.includes(edge.targetFile))
55
- targets.push(edge.targetFile);
74
+ for (const [spelling, targetFile] of spellings)
75
+ addTarget(spelling, targetFile);
56
76
  }
57
77
  return out;
58
78
  }
@@ -22,7 +22,7 @@
22
22
  import type { BindingRef, ParsedFile, ScopeId, SymbolDefinition, TypeRef } from '../../../../_shared/index.js';
23
23
  import type { ScopeResolutionIndexes } from '../../model/scope-resolution-indexes.js';
24
24
  import type { SemanticModel } from '../../model/semantic-model.js';
25
- import type { WorkspaceResolutionIndex } from '../workspace-index.js';
25
+ import type { WorkspaceResolutionIndex } from '../workspace-index-types.js';
26
26
  /**
27
27
  * Look up binding refs at `scopeId` for `name`, consulting both the
28
28
  * finalize-owned `bindings` channel and the post-finalize
@@ -75,11 +75,99 @@ export declare function namesAtScope(scopeId: ScopeId, scopes: ScopeResolutionIn
75
75
  * parsed output.
76
76
  */
77
77
  export declare function isClassLike(t: string): boolean;
78
+ /**
79
+ * Does this label declare MEMBERS addressable by name?
80
+ *
81
+ * `isClassLike` answers two questions that only coincide for classes:
82
+ * 1. does this declare members I can look up? — a SHAPE (structural)
83
+ * 2. does this participate in inheritance / MRO? — a NOMINAL TYPE
84
+ *
85
+ * A TypeScript object-type alias answers YES to (1) and emphatically NO to
86
+ * (2): it declares the same `property_signature` members as the interface
87
+ * beside it, but has no supertypes and no place in a linearization. Answering
88
+ * (2) "yes" merely to buy (1) is what widening `isClassLike` would do, and it
89
+ * would enrol every language's aliases (Rust `type_item`, Kotlin/Swift/Dart
90
+ * typealias, C `typedef`) into MRO and heritage.
91
+ *
92
+ * So the two questions get two predicates. Use THIS one where the question is
93
+ * "find the shape so I can look up a member"; keep `isClassLike` where the
94
+ * question is inheritance. The call sites announce which they are:
95
+ * `resolveInheritanceBaseInScope` and `resolveQualifiedInheritanceBase` are
96
+ * (2); receiver typing is (1).
97
+ *
98
+ * NOT YET INCLUDED, deliberately: `Typedef` and `Union`. They belong here
99
+ * conceptually — the `union_item` note on `MEMBER_OWNER_NODE_TYPES` records
100
+ * the same gap, that a union owns fields captured as `Property` yet is not a
101
+ * recognized owner — but neither is wired as a member container today, so
102
+ * adding them would widen a predicate nothing exercises. They join when their
103
+ * containers do, with fixtures.
104
+ */
105
+ export declare function isShapeLike(t: string): boolean;
78
106
  /**
79
107
  * Walk the scope chain from `startScope` looking for a typeBinding
80
108
  * named `receiverName`. Returns the TypeRef or undefined if no binding
81
109
  * exists in the chain.
110
+ *
111
+ * A scope that declares `ownsReceivers.has(receiverName)` terminates the
112
+ * walk with `undefined` (#2701): it binds that receiver itself, so an
113
+ * enclosing scope's binding is not visible through it. The check runs
114
+ * AFTER this scope's own `typeBindings`, so a scope that both owns and
115
+ * binds the receiver — a class method, which is where `this` is bound TO
116
+ * the class — still resolves normally. The namespace/global fallbacks
117
+ * below are also skipped: they answer "which type is named X", which is a
118
+ * different question from "what is this scope's receiver", and reaching
119
+ * them for an owned-but-unbound receiver is how a static method or a
120
+ * detached callback acquires a fabricated one.
121
+ */
122
+ /**
123
+ * True when `receiverName` is DEFINITIVELY unresolvable at `startScope`:
124
+ * a scope on the chain declares it owns that receiver (`Scope.ownsReceivers`)
125
+ * and carries no type binding for it (#2701).
126
+ *
127
+ * This is a stronger statement than `findReceiverTypeBinding` returning
128
+ * `undefined`, which only means "no type found" — an ordinary miss that later
129
+ * passes are free to resolve by other means. Here the language has said the
130
+ * receiver is REBOUND at this scope, so no enclosing type can be its type:
131
+ * `this.m()` inside a nested JS/TS `function` is a call on whatever the
132
+ * function is invoked with, which the graph does not model. A member call
133
+ * whose receiver is unresolvable in this sense must be suppressed rather
134
+ * than left to the receiver-blind lexical fallback in `lookupCore`, which
135
+ * would find the enclosing class's member by name alone.
136
+ *
137
+ * Returns false for every language that leaves `ownsReceivers` unset.
82
138
  */
139
+ export declare function isReceiverOwnedButUnbound(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes): boolean;
140
+ /**
141
+ * True when a declaration between the call site and its module scope shadows a
142
+ * file-level namespace import of the same name. Namespace targets are collected
143
+ * per FILE, so every consumer of that map must apply this lexical guard before
144
+ * trusting it at an inner scope — otherwise `def f(pkg): pkg.db.query()`
145
+ * resolves through the import that the parameter shadows, producing a wrong
146
+ * edge rather than a missing one.
147
+ *
148
+ * A namespace key may itself be a dotted import path (`pkg.db`, #2826), but the
149
+ * name a declaration can shadow is always the ROOT identifier — `pkg = Decoy()`
150
+ * shadows `pkg.db` too. Testing the whole dotted string would never match a
151
+ * binding, so the guard would silently stop guarding for exactly the keys it
152
+ * was extended to cover. Single-segment names are unaffected: their root is
153
+ * themselves.
154
+ *
155
+ * Fails closed (returns `true`) on a missing scope or a parent cycle: for every
156
+ * caller, suppressing a resolution costs a missing edge, while trusting a
157
+ * corrupt scope chain costs a wrong one.
158
+ *
159
+ * Reads `scope.bindings` DIRECTLY rather than through `lookupBindingsAt`, and
160
+ * that is deliberate — the opposite of the fix #2745 applied to Rust's
161
+ * `headBoundLocally`. There the question was "is this name bound at all?", so
162
+ * missing the finalized/augmented import channels lost real bindings. Here the
163
+ * question is "does something LOCAL shadow the import?", and the import's own
164
+ * finalized binding is the one thing that must NOT count: routing this through
165
+ * `lookupBindingsAt` would find the namespace import shadowing itself and
166
+ * suppress every namespace receiver in the workspace. Locals, parameters and
167
+ * lexical names all live in the scope's own tables, which is exactly the set
168
+ * this walk wants.
169
+ */
170
+ export declare function isNamespaceNameShadowed(namespaceName: string, inScope: ScopeId, scopes: ScopeResolutionIndexes): boolean;
83
171
  export declare function findReceiverTypeBinding(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes): TypeRef | undefined;
84
172
  /**
85
173
  * Resolve a typeBinding for `name` from the per-namespace channel
@@ -113,7 +201,103 @@ export declare function moduleScopeIdOf(startScope: ScopeId, scopes: ScopeResolu
113
201
  *
114
202
  * Without (2) we'd miss every cross-file class-receiver call.
115
203
  */
116
- export declare function findClassBindingInScope(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes): SymbolDefinition | undefined;
204
+ /**
205
+ * Every class-like definition visible for `name`, from the scope chain AND the
206
+ * qualified-name index, deduped by `nodeId`.
207
+ *
208
+ * Exists because `walkScopeChain` returns the FIRST match and cannot report a
209
+ * collision, so a caller that widens what a name can match (the decoration
210
+ * normalizer below) has no way to tell "one answer" from "picked the nearest of
211
+ * several". Mirrors `findAllCallableBindingsInScope`, which solved the same
212
+ * problem for callables.
213
+ */
214
+ export declare function findAllClassBindingsInScope(startScope: ScopeId, name: string, scopes: ScopeResolutionIndexes): readonly SymbolDefinition[];
215
+ /**
216
+ * Strip one layer of type-preserving decoration off a declared type name, or
217
+ * `undefined` when there is nothing left to strip. Supplied per language through
218
+ * the `ScopeResolver` contract; the core never names a language (AGENTS.md R6).
219
+ *
220
+ * TYPE-PRESERVING only — pointer, reference, `const`, nullable, borrow,
221
+ * deref-transparent smart pointer, sigil. A CONTAINER (array, slice, map,
222
+ * `Option`) changes the member set, so stripping one here would type
223
+ * `repos: Repo[]` as `Repo` and let `repos.find(x)` fold to `Repo.find`. Those
224
+ * are unwrapped only by an index step that consumed a subscript.
225
+ */
226
+ export type DecorationStripper = (typeName: string) => string | undefined;
227
+ /**
228
+ * Does the scope chain at `scopeId` bind `name` as a declared TYPE PARAMETER?
229
+ *
230
+ * The question a class-binding lookup has to ask before it answers, because a
231
+ * type parameter and a class are spelled identically and only the declaration
232
+ * says which one a name is. `class Box<T> { t: T }` beside a workspace
233
+ * `export class T` resolved `t` to the CLASS and emitted a confident wrong edge
234
+ * from every member call on `t` — the exact failure mode this subsystem treats
235
+ * as worse than a missing edge.
236
+ *
237
+ * WHY LEXICAL GROUNDING CANNOT SUBSTITUTE. The erasure grounds in
238
+ * `resolveErasedBaseName` all ask "can the file SEE a declaration by this
239
+ * name", and here it plainly can: `export class T` is imported, bound, and
240
+ * lexically visible. Visibility is not the defect — the name means something
241
+ * else at this site regardless of what else is visible, and only the enclosing
242
+ * declaration's parameter list records that. Measured: with the grounding rule
243
+ * in place the false edge still emitted.
244
+ *
245
+ * ABSENCE IS NOT EVIDENCE. `typeParameters` is populated only by the languages
246
+ * whose captures were extended for it, and is absent both for a non-generic
247
+ * declaration and for every declaration in a language that does not populate it
248
+ * yet. So only a POSITIVE match declines; an absent list changes nothing, which
249
+ * is what keeps every unconverted language behaving exactly as it does today.
250
+ */
251
+ export declare function bindsTypeParameter(scopeId: ScopeId, name: string, scopes: ScopeResolutionIndexes): boolean;
252
+ export declare function findClassBindingInScope(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes,
253
+ /**
254
+ * OPT-IN. When supplied, a name that binds nothing is retried with decoration
255
+ * stripped one layer at a time, and each retry must resolve to exactly ONE
256
+ * class-like definition or it declines.
257
+ *
258
+ * Opt-in rather than global because roughly two dozen call sites use the shape
259
+ * `findClassBindingInScope(...) ?? otherResolver(...)`: turning a former
260
+ * `undefined` into a hit SUPPRESSES the fallback that used to answer, which
261
+ * would retarget inheritance edges and bypass generic-specialization
262
+ * selection. Only receiver-chain base and step resolution passes this.
263
+ */
264
+ stripDecoration?: DecorationStripper): SymbolDefinition | undefined;
265
+ /**
266
+ * Resolve a class-like binding for a declared type name, tolerating a spelling
267
+ * that carries TYPE ARGUMENTS (`Repo<User>`, `Vec<int>`) where the declaration
268
+ * itself is registered under the bare base name.
269
+ *
270
+ * Two normalizations, and they are not the same thing:
271
+ *
272
+ * 1. DECORATION stripping (`stripDecoration`, opt-in — see the parameter).
273
+ * Peels type-PRESERVING wrappers (`*T`, `const T&`) off the name.
274
+ * 2. Type-argument ERASURE (unconditional, and the wider of the two).
275
+ * `Repo<User>` → `Repo`. This is what actually widens what binds, because
276
+ * it makes one declaration answer for EVERY instantiation of it — right
277
+ * for a language where a generic class has a single declaration, and a
278
+ * hazard where it does not, which is why the exact-argument match runs
279
+ * first and why the base-name route below refuses to return a
280
+ * declaration that pinned its own arguments.
281
+ *
282
+ * Order: exact spelling → exact type-argument match (lexically visible
283
+ * candidates first, workspace-wide index second) → base name.
284
+ */
285
+ export declare function resolveClassBindingForName(scopeId: string, rawClassName: string, scopes: ScopeResolutionIndexes,
286
+ /**
287
+ * OPT-IN, and it governs (1) only — argument erasure happens either way.
288
+ * `findClassBindingInScope`'s own docstring explains the opt-in: a name that
289
+ * previously bound nothing starts binding, which SUPPRESSES the
290
+ * `?? otherResolver(...)` fallbacks several callers rely on.
291
+ *
292
+ * THE RULE, not a roll-call of who currently passes it (that list has been
293
+ * appended to once per round of this work and is stale the moment it is
294
+ * written): pass it from a receiver-TYPING site, and only where the site
295
+ * already forwarded the same `stripTypePreservingDecoration` to the bare
296
+ * lookup — so a Go pointer receiver keeps resolving exactly as it did. A site
297
+ * that has never stripped must keep calling without it, because starting to
298
+ * strip is what suppresses its fallback.
299
+ */
300
+ stripDecoration?: DecorationStripper): SymbolDefinition | undefined;
117
301
  /**
118
302
  * Resolve a class-like inheritance target using the shared inheritance
119
303
  * resolution chain. Keeps pre-emitted heritage edges and language-specific
@@ -178,6 +362,17 @@ export declare function isOwnableValueLabel(t: string): boolean;
178
362
  * predicate differs.
179
363
  */
180
364
  export declare function findValueBindingInScope(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes): SymbolDefinition | undefined;
365
+ /**
366
+ * Look up a SHAPE binding (class-like, or an object-type alias) by name.
367
+ *
368
+ * Mirrors `findClassBindingInScope` exactly; only the accepted def-type
369
+ * predicate differs — the same relationship `findValueBindingInScope` has to
370
+ * it. Exists so a receiver typed as an object-type alias can reach that
371
+ * alias's members WITHOUT the alias becoming eligible as an inheritance base:
372
+ * `findClassBindingInScope` is what `resolveInheritanceBaseInScope` calls, so
373
+ * widening that one would answer a question about hierarchies with a shape.
374
+ */
375
+ export declare function findShapeBindingInScope(startScope: ScopeId, receiverName: string, scopes: ScopeResolutionIndexes): SymbolDefinition | undefined;
181
376
  /**
182
377
  * Look up a callable (Function/Method/Constructor) by name in the
183
378
  * given scope's chain. Uses the dual-source pattern (scope.bindings +
@@ -189,14 +384,18 @@ export declare function findValueBindingInScope(startScope: ScopeId, receiverNam
189
384
  * def-type predicate differs.
190
385
  */
191
386
  export declare function findCallableBindingInScope(startScope: ScopeId, callableName: string, scopes: ScopeResolutionIndexes): SymbolDefinition | undefined;
387
+ export interface CallableBindingCandidate {
388
+ readonly def: SymbolDefinition;
389
+ /** Every visibility path for this definition, in binding precedence order. */
390
+ readonly bindings: readonly BindingRef[];
391
+ }
192
392
  /**
193
- * Look up all callable bindings (Function/Method/Constructor) by name
194
- * from the nearest scope in the chain that binds `callableName`.
195
- *
196
- * Preserves the original scope-walk boundary used by
197
- * `findCallableBindingInScope`: once any callable binding is found in a
198
- * scope, outer scopes are not consulted.
393
+ * Binding-aware callable lookup for consumers that need visibility evidence.
394
+ * Unlike `lookupBindingsAt`, duplicate definitions retain every binding path,
395
+ * so a weaker augmentation can contribute provenance even when a finalized
396
+ * binding remains the candidate's canonical definition.
199
397
  */
398
+ export declare function findAllCallableBindingCandidatesInScope(startScope: ScopeId, callableName: string, scopes: ScopeResolutionIndexes): readonly CallableBindingCandidate[];
200
399
  export declare function findAllCallableBindingsInScope(startScope: ScopeId, callableName: string, scopes: ScopeResolutionIndexes): readonly SymbolDefinition[];
201
400
  /**
202
401
  * ISO C++ `[basic.lookup.unqual]` §7: ADL is suppressed when ordinary
@@ -254,7 +453,9 @@ export declare function populateClassOwnedMembers(parsed: ParsedFile): void;
254
453
  * for nested namespaces regardless of whether the inner namespace's name is
255
454
  * stored simple or already dotted. Skips defs already carrying the prefix.
256
455
  */
257
- export declare function tagNamespacePrefixes(parsed: ParsedFile): void;
456
+ export declare function tagNamespacePrefixes(parsed: ParsedFile, options?: {
457
+ readonly qualifiedNamesCarryNamespace?: boolean;
458
+ }): void;
258
459
  /**
259
460
  * Walk a scope chain upward looking for the innermost enclosing
260
461
  * Class scope and return that class's def. Used by per-language