gitnexus 1.6.6-rc.3 → 1.6.6-rc.30

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 (158) hide show
  1. package/README.md +12 -1
  2. package/dist/_shared/index.d.ts +1 -1
  3. package/dist/_shared/index.d.ts.map +1 -1
  4. package/dist/_shared/index.js.map +1 -1
  5. package/dist/_shared/scope-resolution/reference-site.d.ts +8 -0
  6. package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
  7. package/dist/_shared/scope-resolution/registries/context.d.ts +18 -1
  8. package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -1
  9. package/dist/_shared/scope-resolution/registries/context.js.map +1 -1
  10. package/dist/_shared/scope-resolution/registries/lookup-core.d.ts +4 -2
  11. package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
  12. package/dist/_shared/scope-resolution/registries/lookup-core.js +8 -23
  13. package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
  14. package/dist/cli/analyze.d.ts +3 -0
  15. package/dist/cli/analyze.js +149 -5
  16. package/dist/cli/eval-server.d.ts +16 -3
  17. package/dist/cli/eval-server.js +91 -9
  18. package/dist/cli/index.js +10 -1
  19. package/dist/cli/setup.js +6 -4
  20. package/dist/cli/wiki.d.ts +1 -0
  21. package/dist/cli/wiki.js +51 -8
  22. package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
  23. package/dist/core/group/extractors/http-route-extractor.js +23 -12
  24. package/dist/core/ingestion/filesystem-walker.js +22 -4
  25. package/dist/core/ingestion/languages/cpp/captures.js +165 -9
  26. package/dist/core/ingestion/languages/cpp/constraint-filter.js +102 -32
  27. package/dist/core/ingestion/languages/cpp/conversion-rank.d.ts +19 -21
  28. package/dist/core/ingestion/languages/cpp/conversion-rank.js +43 -25
  29. package/dist/core/ingestion/languages/cpp/type-classifier.d.ts +9 -9
  30. package/dist/core/ingestion/languages/cpp/type-classifier.js +12 -8
  31. package/dist/core/ingestion/languages/java.js +35 -0
  32. package/dist/core/ingestion/languages/javascript/arity.d.ts +11 -0
  33. package/dist/core/ingestion/languages/javascript/arity.js +11 -0
  34. package/dist/core/ingestion/languages/javascript/captures.d.ts +30 -0
  35. package/dist/core/ingestion/languages/javascript/captures.js +655 -0
  36. package/dist/core/ingestion/languages/javascript/import-target.d.ts +29 -0
  37. package/dist/core/ingestion/languages/javascript/import-target.js +53 -0
  38. package/dist/core/ingestion/languages/javascript/index.d.ts +48 -0
  39. package/dist/core/ingestion/languages/javascript/index.js +48 -0
  40. package/dist/core/ingestion/languages/javascript/interpret.d.ts +29 -0
  41. package/dist/core/ingestion/languages/javascript/interpret.js +41 -0
  42. package/dist/core/ingestion/languages/javascript/merge-bindings.d.ts +16 -0
  43. package/dist/core/ingestion/languages/javascript/merge-bindings.js +18 -0
  44. package/dist/core/ingestion/languages/javascript/query.d.ts +52 -0
  45. package/dist/core/ingestion/languages/javascript/query.js +413 -0
  46. package/dist/core/ingestion/languages/javascript/scope-resolver.d.ts +37 -0
  47. package/dist/core/ingestion/languages/javascript/scope-resolver.js +73 -0
  48. package/dist/core/ingestion/languages/javascript/simple-hooks.d.ts +32 -0
  49. package/dist/core/ingestion/languages/javascript/simple-hooks.js +37 -0
  50. package/dist/core/ingestion/languages/kotlin/arity-metadata.d.ts +7 -0
  51. package/dist/core/ingestion/languages/kotlin/arity-metadata.js +20 -0
  52. package/dist/core/ingestion/languages/kotlin/arity.d.ts +2 -0
  53. package/dist/core/ingestion/languages/kotlin/arity.js +15 -0
  54. package/dist/core/ingestion/languages/kotlin/cache-stats.d.ts +7 -0
  55. package/dist/core/ingestion/languages/kotlin/cache-stats.js +15 -0
  56. package/dist/core/ingestion/languages/kotlin/captures.d.ts +2 -0
  57. package/dist/core/ingestion/languages/kotlin/captures.js +376 -0
  58. package/dist/core/ingestion/languages/kotlin/import-decomposer.d.ts +3 -0
  59. package/dist/core/ingestion/languages/kotlin/import-decomposer.js +37 -0
  60. package/dist/core/ingestion/languages/kotlin/import-target.d.ts +6 -0
  61. package/dist/core/ingestion/languages/kotlin/import-target.js +60 -0
  62. package/dist/core/ingestion/languages/kotlin/index.d.ts +8 -0
  63. package/dist/core/ingestion/languages/kotlin/index.js +8 -0
  64. package/dist/core/ingestion/languages/kotlin/interpret.d.ts +4 -0
  65. package/dist/core/ingestion/languages/kotlin/interpret.js +70 -0
  66. package/dist/core/ingestion/languages/kotlin/merge-bindings.d.ts +2 -0
  67. package/dist/core/ingestion/languages/kotlin/merge-bindings.js +25 -0
  68. package/dist/core/ingestion/languages/kotlin/owners.d.ts +2 -0
  69. package/dist/core/ingestion/languages/kotlin/owners.js +50 -0
  70. package/dist/core/ingestion/languages/kotlin/query.d.ts +3 -0
  71. package/dist/core/ingestion/languages/kotlin/query.js +112 -0
  72. package/dist/core/ingestion/languages/kotlin/receiver-binding.d.ts +3 -0
  73. package/dist/core/ingestion/languages/kotlin/receiver-binding.js +100 -0
  74. package/dist/core/ingestion/languages/kotlin/scope-resolver.d.ts +17 -0
  75. package/dist/core/ingestion/languages/kotlin/scope-resolver.js +37 -0
  76. package/dist/core/ingestion/languages/kotlin/simple-hooks.d.ts +4 -0
  77. package/dist/core/ingestion/languages/kotlin/simple-hooks.js +19 -0
  78. package/dist/core/ingestion/languages/kotlin.js +10 -0
  79. package/dist/core/ingestion/languages/typescript/captures.js +59 -10
  80. package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +10 -0
  81. package/dist/core/ingestion/languages/typescript/simple-hooks.js +4 -1
  82. package/dist/core/ingestion/languages/typescript.js +15 -0
  83. package/dist/core/ingestion/model/field-registry.d.ts +17 -3
  84. package/dist/core/ingestion/model/field-registry.js +19 -4
  85. package/dist/core/ingestion/model/owned-members-lookup.d.ts +19 -0
  86. package/dist/core/ingestion/model/owned-members-lookup.js +43 -0
  87. package/dist/core/ingestion/model/type-registry.d.ts +9 -0
  88. package/dist/core/ingestion/model/type-registry.js +18 -0
  89. package/dist/core/ingestion/parsing-processor.js +61 -7
  90. package/dist/core/ingestion/pipeline-phases/parse-impl.js +312 -74
  91. package/dist/core/ingestion/pipeline.d.ts +50 -0
  92. package/dist/core/ingestion/registry-primary-flag.js +1 -0
  93. package/dist/core/ingestion/resolve-references.d.ts +3 -1
  94. package/dist/core/ingestion/resolve-references.js +5 -1
  95. package/dist/core/ingestion/scope-extractor.js +4 -0
  96. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +1 -0
  97. package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +40 -8
  98. package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +4 -2
  99. package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +47 -6
  100. package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +2 -0
  101. package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.d.ts +4 -2
  102. package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +48 -9
  103. package/dist/core/ingestion/scope-resolution/pipeline/registry.js +4 -0
  104. package/dist/core/ingestion/scope-resolution/pipeline/run.js +2 -0
  105. package/dist/core/ingestion/workers/parse-worker.js +54 -11
  106. package/dist/core/ingestion/workers/quarantine.d.ts +45 -0
  107. package/dist/core/ingestion/workers/quarantine.js +38 -0
  108. package/dist/core/ingestion/workers/worker-pool.d.ts +184 -2
  109. package/dist/core/ingestion/workers/worker-pool.js +814 -72
  110. package/dist/core/lbug/lbug-adapter.d.ts +3 -1
  111. package/dist/core/lbug/lbug-adapter.js +18 -19
  112. package/dist/core/lbug/pool-adapter.d.ts +19 -7
  113. package/dist/core/lbug/pool-adapter.js +68 -41
  114. package/dist/core/lbug/query-params.d.ts +1 -0
  115. package/dist/core/lbug/query-params.js +21 -0
  116. package/dist/core/run-analyze.d.ts +14 -0
  117. package/dist/core/run-analyze.js +79 -3
  118. package/dist/core/search/bm25-index.js +4 -6
  119. package/dist/core/search/fts-indexes.d.ts +6 -1
  120. package/dist/core/search/fts-indexes.js +28 -1
  121. package/dist/core/wiki/generator.d.ts +13 -0
  122. package/dist/core/wiki/generator.js +45 -4
  123. package/dist/core/wiki/llm-client.d.ts +1 -1
  124. package/dist/core/wiki/llm-client.js +23 -6
  125. package/dist/mcp/local/local-backend.d.ts +18 -3
  126. package/dist/mcp/local/local-backend.js +128 -12
  127. package/dist/mcp/tools.js +10 -0
  128. package/dist/server/api.d.ts +3 -0
  129. package/dist/server/api.js +66 -45
  130. package/package.json +3 -3
  131. package/web/assets/agent-Warpie3K.js +608 -0
  132. package/web/assets/{architectureDiagram-UL44E2DR-DvIkEGkp.js → architectureDiagram-UL44E2DR-BVMgctd1.js} +1 -1
  133. package/web/assets/{chunk-LCXTWHL2-CqJ0oo1x.js → chunk-LCXTWHL2-D0Ojsf12.js} +1 -1
  134. package/web/assets/{chunk-RG4AUYOV-D0M6vdq9.js → chunk-RG4AUYOV-CGOYR7mA.js} +1 -1
  135. package/web/assets/{classDiagram-KGZ6W3CR-BB-saqC1.js → classDiagram-KGZ6W3CR-BWNNFh9P.js} +1 -1
  136. package/web/assets/{classDiagram-v2-72OJOZXJ-Bp2bAlS5.js → classDiagram-v2-72OJOZXJ-D6den_PS.js} +1 -1
  137. package/web/assets/{diagram-3NCE3AQN-BUxnDPOY.js → diagram-3NCE3AQN-fpPDz4AJ.js} +1 -1
  138. package/web/assets/{diagram-GF46GFSD-BJTyqqvI.js → diagram-GF46GFSD-CBCK4dz-.js} +1 -1
  139. package/web/assets/{diagram-QXG6HAR7-DilMHamP.js → diagram-QXG6HAR7-Dp7brFCQ.js} +1 -1
  140. package/web/assets/{diagram-WEQXMOUZ-8KUrarg1.js → diagram-WEQXMOUZ-CcNoPnrZ.js} +1 -1
  141. package/web/assets/{erDiagram-L5TCEMPS-Doj9mSiW.js → erDiagram-L5TCEMPS-C7gqztHL.js} +1 -1
  142. package/web/assets/{flowDiagram-H6V6AXG4-BOSR-i3p.js → flowDiagram-H6V6AXG4-AhdoRoMl.js} +1 -1
  143. package/web/assets/{index-j4-NuleT.js → index-DHb4KmNb.js} +86 -85
  144. package/web/assets/{infoDiagram-3YFTVSEB-Ce_TvtaV.js → infoDiagram-3YFTVSEB-mP4ELRFj.js} +1 -1
  145. package/web/assets/{ishikawaDiagram-BNXS4ZKH-4MXIDCSF.js → ishikawaDiagram-BNXS4ZKH-CPiYSQcK.js} +1 -1
  146. package/web/assets/{kanban-definition-75IXJCU3-yYdfm8Kk.js → kanban-definition-75IXJCU3-EI3ocXjG.js} +1 -1
  147. package/web/assets/{mindmap-definition-2TDM6QVE-DFNEKM77.js → mindmap-definition-2TDM6QVE-293vIByN.js} +1 -1
  148. package/web/assets/{pieDiagram-CU6KROY3-iZAqpvhd.js → pieDiagram-CU6KROY3-DhdftcYl.js} +1 -1
  149. package/web/assets/{requirementDiagram-JXO7QTGE-CtDijhnf.js → requirementDiagram-JXO7QTGE-DdPq7kYS.js} +1 -1
  150. package/web/assets/{sequenceDiagram-VS2MUI6T-BdjvyCHM.js → sequenceDiagram-VS2MUI6T-CuIcQieZ.js} +1 -1
  151. package/web/assets/{stateDiagram-7D4R322I-e5odN9fG.js → stateDiagram-7D4R322I-CjVShw_t.js} +1 -1
  152. package/web/assets/{stateDiagram-v2-36443NZ5-vPsvjR2D.js → stateDiagram-v2-36443NZ5-D9CkWeqa.js} +1 -1
  153. package/web/assets/{timeline-definition-O6YCAMPW-DPAksNQp.js → timeline-definition-O6YCAMPW-Dzybzo6D.js} +1 -1
  154. package/web/assets/{vennDiagram-MWXL3ELB-Dtlfdt7J.js → vennDiagram-MWXL3ELB-CapSiCmK.js} +1 -1
  155. package/web/assets/{wardleyDiagram-CUQ6CDDI-B23uRMUC.js → wardleyDiagram-CUQ6CDDI-CohjGBRu.js} +1 -1
  156. package/web/assets/{xychartDiagram-N2JHSOCM-DxwHeksW.js → xychartDiagram-N2JHSOCM-CiYjF6Jz.js} +1 -1
  157. package/web/index.html +1 -1
  158. package/web/assets/agent-D2kLt6Dl.js +0 -597
package/README.md CHANGED
@@ -151,7 +151,8 @@ Your AI agent gets these tools automatically:
151
151
  ```bash
152
152
  gitnexus setup # Configure MCP for your editors (one-time)
153
153
  gitnexus analyze [path] # Index a repository (or update stale index)
154
- gitnexus analyze --force # Force full re-index
154
+ gitnexus analyze --repair-fts # Fast path: rebuild/verify only FTS indexes on existing index data
155
+ gitnexus analyze --force # Full rebuild: re-parse + graph rebuild + FTS rebuild
155
156
  gitnexus analyze --embeddings # Enable embedding generation (slower, better search)
156
157
  gitnexus analyze --skip-agents-md # Preserve custom AGENTS.md/CLAUDE.md gitnexus section edits
157
158
  gitnexus analyze --verbose # Log skipped files when parsers are unavailable
@@ -358,6 +359,16 @@ npx gitnexus analyze
358
359
 
359
360
  For repositories with very large source files, `GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES` controls the worker job byte budget. The default is **8388608 bytes (8 MB)**.
360
361
 
362
+ ### Worker pool resilience tuning
363
+
364
+ Three env vars expose the pool's resilience layers (respawn budget, cumulative-timeout cap, circuit breaker). Defaults are tuned for typical repos; bump them when an analyze legitimately needs more retries, or lower them to fail-fast on a known-bad shape.
365
+
366
+ | Variable | Default | Effect |
367
+ | ------------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
368
+ | `GITNEXUS_WORKER_MAX_RESPAWNS_PER_SLOT` | `3` | Max replacement spawns per slot before the slot is dropped from the active rotation. |
369
+ | `GITNEXUS_WORKER_MAX_CUMULATIVE_TIMEOUT_MS` | `5 × subBatchTimeoutMs` | Total retry wall-time budget per job before quarantining. Bounds exponentially-growing retry waits. |
370
+ | `GITNEXUS_WORKER_CONSECUTIVE_FAILURE_THRESHOLD` | `max(3, poolSize)` | Per-slot consecutive deaths before the pool's circuit breaker trips. After tripping, dispatches require a fresh pool. |
371
+
361
372
  ## Privacy
362
373
 
363
374
  - All processing happens locally on your machine
@@ -41,7 +41,7 @@ export type { RawSignals } from './scope-resolution/registries/evidence.js';
41
41
  export { compareByConfidenceWithTiebreaks, CONFIDENCE_EPSILON, } from './scope-resolution/registries/tie-breaks.js';
42
42
  export type { TieBreakKey } from './scope-resolution/registries/tie-breaks.js';
43
43
  export { CLASS_KINDS, METHOD_KINDS, FIELD_KINDS } from './scope-resolution/registries/context.js';
44
- export type { RegistryContext, RegistryProviders, OwnerScopedContributor, ArityVerdict, ConstraintContext, } from './scope-resolution/registries/context.js';
44
+ export type { RegistryContext, RegistryProviders, OwnedMembersByOwnerLookup, OwnerScopedContributor, ArityVerdict, ConstraintContext, } from './scope-resolution/registries/context.js';
45
45
  export { makeScopeId, clearScopeIdInternPool } from './scope-resolution/scope-id.js';
46
46
  export type { ScopeIdInput } from './scope-resolution/scope-id.js';
47
47
  export { buildScopeTree, canParentScope, ScopeTreeInvariantError, } from './scope-resolution/scope-tree.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAiCjG,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAOxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AASlG,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEjG,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAG3C,mDAAmD;AACnD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sCAAsC,CAAC;AAG9C,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAiCjG,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAOxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAUpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAUlG,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEjG,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAG3C,mDAAmD;AACnD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sCAAsC,CAAC;AAG9C,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAMpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
@@ -20,6 +20,7 @@
20
20
  * resolution step that reads this record and produces a `Reference`
21
21
  * (defined in `./types.ts`).
22
22
  */
23
+ import type { ParameterTypeClass } from './symbol-definition.js';
23
24
  import type { Range, ScopeId } from './types.js';
24
25
  /**
25
26
  * What kind of usage this reference represents — the graph-edge kind
@@ -71,5 +72,12 @@ export interface ReferenceSite {
71
72
  * (C#: `42` → `'int'`, `"alice"` → `'string'`).
72
73
  */
73
74
  readonly argumentTypes?: readonly string[];
75
+ /**
76
+ * Optional per-argument type-shape sidecar for languages that need
77
+ * cv/ref/pointer distinctions during constraint filtering. This is
78
+ * intentionally separate from `argumentTypes`, which stays normalized
79
+ * for existing overload narrowing and conversion-rank logic.
80
+ */
81
+ readonly argumentTypeClasses?: readonly ParameterTypeClass[];
74
82
  }
75
83
  //# sourceMappingURL=reference-site.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference-site.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/reference-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,YAAY,CAAC;AAEjB;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C"}
1
+ {"version":3,"file":"reference-site.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/reference-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,YAAY,CAAC;AAEjB;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D"}
@@ -12,7 +12,7 @@
12
12
  * reaches into the CLI package.
13
13
  */
14
14
  import type { NodeLabel } from '../../graph/types.js';
15
- import type { SymbolDefinition } from '../symbol-definition.js';
15
+ import type { ParameterTypeClass, SymbolDefinition } from '../symbol-definition.js';
16
16
  import type { Callsite, DefId } from '../types.js';
17
17
  import type { DefIndex } from '../def-index.js';
18
18
  import type { QualifiedNameIndex } from '../qualified-name-index.js';
@@ -54,6 +54,13 @@ export interface ConstraintContext {
54
54
  * `narrowOverloadCandidates`' `argTypes` parameter.
55
55
  */
56
56
  readonly argumentTypes?: readonly string[];
57
+ /**
58
+ * Optional shape-preserving sidecar aligned with `argumentTypes`.
59
+ * Unknown or unsupported slots should be omitted by producers or
60
+ * marked with `indirection: 'unknown'`; consumers must preserve the
61
+ * monotonic fallback and return 'unknown' instead of guessing.
62
+ */
63
+ readonly argumentTypeClasses?: readonly ParameterTypeClass[];
57
64
  }
58
65
  /**
59
66
  * Per-owner membership view plugged into `LookupParams.ownerScopedContributor`.
@@ -78,11 +85,21 @@ export interface OwnerScopedContributor {
78
85
  */
79
86
  byName(name: string): readonly SymbolDefinition[];
80
87
  }
88
+ /**
89
+ * Required owner-keyed lookup hook for Step 2 receiver/MRO member walks.
90
+ * Production callers wire this to the SemanticModel's authoritative
91
+ * method/field/nested-type registries so each `(ownerDefId, memberName)`
92
+ * probe is O(1). Implementations MUST return `[]` on an indexed miss —
93
+ * Step 2 treats `[]` as authoritative and does not consult `defs` for a
94
+ * fallback scan.
95
+ */
96
+ export type OwnedMembersByOwnerLookup = (ownerDefId: DefId, memberName: string) => readonly SymbolDefinition[];
81
97
  export interface RegistryContext {
82
98
  readonly scopes: ScopeTree;
83
99
  readonly defs: DefIndex;
84
100
  readonly qualifiedNames: QualifiedNameIndex;
85
101
  readonly moduleScopes: ModuleScopeIndex;
102
+ readonly ownedMembersByOwner: OwnedMembersByOwnerLookup;
86
103
  /**
87
104
  * Method-dispatch index; required for method/field registries that
88
105
  * honor `useReceiverTypeBinding`. Omit for class-only lookups.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/scope-resolution/registries/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC;IAE7E;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,CACtB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,iBAAiB,GACrB,YAAY,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC;AAOD,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAc1C,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,SAAS,SAAS,EAI3C,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAK1C,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/scope-resolution/registries/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC;IAE7E;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,CACtB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,iBAAiB,GACrB,YAAY,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,MAAM,KACf,SAAS,gBAAgB,EAAE,CAAC;AAIjC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC;AAOD,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAc1C,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,SAAS,SAAS,EAI3C,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAK1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/scope-resolution/registries/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkGH,8EAA8E;AAC9E,EAAE;AACF,0EAA0E;AAC1E,6DAA6D;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC7D,OAAO;IACP,WAAW;IACX,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC9D,QAAQ;IACR,UAAU;IACV,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC7D,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;CACT,CAAC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/scope-resolution/registries/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuHH,8EAA8E;AAC9E,EAAE;AACF,0EAA0E;AAC1E,6DAA6D;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC7D,OAAO;IACP,WAAW;IACX,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC9D,QAAQ;IACR,UAAU;IACV,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC7D,UAAU;IACV,UAAU;IACV,OAAO;IACP,QAAQ;CACT,CAAC,CAAC"}
@@ -27,8 +27,10 @@
27
27
  * is true, resolve the receiver's type at `startScope` (from
28
28
  * `scope.typeBindings`), then walk the MRO via
29
29
  * `MethodDispatchIndex.mroFor(ownerDefId)`. Membership per owner comes
30
- * through `RegistryContext.methodDispatch` + owner lookups into
31
- * `scope.ownedDefs`; each hit records a raw signal with the owner's
30
+ * through an optional `RegistryContext.ownedMembersByOwner` hook when
31
+ * supplied (`undefined` fall back to `defs.byId`; `[]` indexed
32
+ * miss), otherwise via the compatibility fallback scan over
33
+ * `defs.byId`; each hit records a raw signal with the owner's
32
34
  * MRO depth.
33
35
  *
34
36
  * **Step 3 — Owner-scoped contributor.** When
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-core.d.ts","sourceRoot":"","sources":["../../../src/scope-resolution/registries/lookup-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAIH,OAAO,KAAK,EAEV,QAAQ,EAER,YAAY,EACZ,UAAU,EAEV,OAAO,EACR,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAgB,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI1F,wFAAwF;AACxF,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC;IACpF,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/D,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,eAAe,GACnB,SAAS,UAAU,EAAE,CAwCvB"}
1
+ {"version":3,"file":"lookup-core.d.ts","sourceRoot":"","sources":["../../../src/scope-resolution/registries/lookup-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAIH,OAAO,KAAK,EAEV,QAAQ,EAER,YAAY,EACZ,UAAU,EAEV,OAAO,EACR,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAgB,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI1F,wFAAwF;AACxF,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC;IACpF,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/D,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,eAAe,GACnB,SAAS,UAAU,EAAE,CAwCvB"}
@@ -27,8 +27,10 @@
27
27
  * is true, resolve the receiver's type at `startScope` (from
28
28
  * `scope.typeBindings`), then walk the MRO via
29
29
  * `MethodDispatchIndex.mroFor(ownerDefId)`. Membership per owner comes
30
- * through `RegistryContext.methodDispatch` + owner lookups into
31
- * `scope.ownedDefs`; each hit records a raw signal with the owner's
30
+ * through an optional `RegistryContext.ownedMembersByOwner` hook when
31
+ * supplied (`undefined` fall back to `defs.byId`; `[]` indexed
32
+ * miss), otherwise via the compatibility fallback scan over
33
+ * `defs.byId`; each hit records a raw signal with the owner's
32
34
  * MRO depth.
33
35
  *
34
36
  * **Step 3 — Owner-scoped contributor.** When
@@ -170,14 +172,15 @@ function walkReceiverTypeBinding(name, startScope, acceptedKinds, params, ctx, p
170
172
  return;
171
173
  // Walk the owner itself at depth 0, then its MRO chain.
172
174
  const walk = [ownerDefId, ...ctx.methodDispatch.mroFor(ownerDefId)];
173
- for (let mroDepth = 0; mroDepth < walk.length; mroDepth++) {
174
- const currentOwnerId = walk[mroDepth];
175
+ let mroDepth = 0;
176
+ for (const currentOwnerId of walk) {
175
177
  const members = collectOwnedMembers(currentOwnerId, name, ctx);
176
178
  for (const def of members) {
177
179
  if (!acceptedKinds.has(def.type))
178
180
  continue;
179
181
  recordTypeBindingHit(perCandidate, def, mroDepth, ownerDefId);
180
182
  }
183
+ mroDepth++;
181
184
  }
182
185
  }
183
186
  function resolveReceiverOwner(startScope, params, ctx) {
@@ -226,25 +229,7 @@ function lookupReceiverType(startScope, receiverName, ctx) {
226
229
  return undefined;
227
230
  }
228
231
  function collectOwnedMembers(ownerDefId, memberName, ctx) {
229
- // An owner's members are defs whose `ownerId === ownerDefId` and whose
230
- // simple name matches `memberName`. We iterate `defs.byId` — O(D) per
231
- // call today. A future by-owner index would make this O(K); tracked as
232
- // a follow-up optimization before Ring 3 flips go production.
233
- const out = [];
234
- for (const def of ctx.defs.byId.values()) {
235
- if (def.ownerId !== ownerDefId)
236
- continue;
237
- if (simpleNameOf(def) !== memberName)
238
- continue;
239
- out.push(def);
240
- }
241
- return out;
242
- }
243
- function simpleNameOf(def) {
244
- if (def.qualifiedName === undefined || def.qualifiedName.length === 0)
245
- return undefined;
246
- const dot = def.qualifiedName.lastIndexOf('.');
247
- return dot === -1 ? def.qualifiedName : def.qualifiedName.slice(dot + 1);
232
+ return ctx.ownedMembersByOwner(ownerDefId, memberName);
248
233
  }
249
234
  function recordTypeBindingHit(perCandidate, def, mroDepth, receiverOwner) {
250
235
  const state = ensureCandidate(perCandidate, def);
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-core.js","sourceRoot":"","sources":["../../../src/scope-resolution/registries/lookup-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookup-core.js","sourceRoot":"","sources":["../../../src/scope-resolution/registries/lookup-core.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  export interface AnalyzeOptions {
11
11
  force?: boolean;
12
+ repairFts?: boolean;
12
13
  /**
13
14
  * Embedding generation toggle. Commander parses `--embeddings [limit]` as:
14
15
  * - `undefined` when the flag is omitted
@@ -68,6 +69,8 @@ export interface AnalyzeOptions {
68
69
  maxFileSize?: string;
69
70
  /** Override worker sub-batch idle timeout in seconds. */
70
71
  workerTimeout?: string;
72
+ /** Parse worker pool size; 0 disables workers (sequential fallback). */
73
+ workers?: string;
71
74
  embeddingThreads?: string;
72
75
  embeddingBatchSize?: string;
73
76
  embeddingSubBatchSize?: string;
@@ -58,12 +58,55 @@ const installFatalHandlers = () => {
58
58
  process.exit(1);
59
59
  });
60
60
  };
61
- const HEAP_MB = 8192;
62
- const HEAP_FLAG = `--max-old-space-size=${HEAP_MB}`;
61
+ const HEAP_MB = 16384;
62
+ const TEST_RESPAWN_HEAP_MB = Number(process.env.GITNEXUS_TEST_RESPAWN_HEAP_MB);
63
+ const RESPAWN_HEAP_MB = Number.isFinite(TEST_RESPAWN_HEAP_MB) && TEST_RESPAWN_HEAP_MB > 0
64
+ ? Math.floor(TEST_RESPAWN_HEAP_MB)
65
+ : HEAP_MB;
66
+ const HEAP_FLAG = `--max-old-space-size=${RESPAWN_HEAP_MB}`;
63
67
  /** Increase default stack size (KB) to prevent stack overflow on deep class hierarchies. */
64
68
  const STACK_KB = 4096;
65
69
  const STACK_FLAG = `--stack-size=${STACK_KB}`;
66
- /** Re-exec the process with an 8GB heap and larger stack if we're currently below that. */
70
+ /**
71
+ * Heuristic for "child re-exec likely died from V8 OOM".
72
+ *
73
+ * Platform-independent detection is best-effort: V8/Node usually emit
74
+ * stable heap-exhaustion phrases in stderr/message across Linux/macOS/Windows
75
+ * (for example "JavaScript heap out of memory" or "Reached heap limit"),
76
+ * while some environments only expose status/signal (e.g. 134/SIGABRT).
77
+ * We combine both text signatures and process-exit signatures.
78
+ */
79
+ const childProcessLikelyOom = (err) => {
80
+ if (!err || typeof err !== 'object')
81
+ return false;
82
+ const e = err;
83
+ const hasHeapOomSignature = (v) => {
84
+ const text = (Buffer.isBuffer(v) ? v.toString('utf8') : typeof v === 'string' ? v : '').toLowerCase();
85
+ if (!text)
86
+ return false;
87
+ return (text.includes('javascript heap out of memory') ||
88
+ text.includes('reached heap limit') ||
89
+ text.includes('allocation failed - javascript heap out of memory') ||
90
+ text.includes('fatalprocessoutofmemory'));
91
+ };
92
+ const fields = [e.message, e.stderr, e.stdout];
93
+ if (fields.some((v) => hasHeapOomSignature(v)))
94
+ return true;
95
+ const hasAnyChildOutput = [e.stderr, e.stdout].some((v) => (Buffer.isBuffer(v) && v.length > 0) || (typeof v === 'string' && v.length > 0));
96
+ if (hasAnyChildOutput)
97
+ return false;
98
+ return e.status === 134 || e.signal === 'SIGABRT';
99
+ };
100
+ const forceHeapOOMForTestIfEnabled = () => {
101
+ if (process.env.GITNEXUS_TEST_FORCE_HEAP_OOM !== '1')
102
+ return;
103
+ // Allocate JS strings (not Buffers) so pressure lands on V8 heap itself.
104
+ // Buffers can allocate off-heap, which makes OOM triggering less reliable.
105
+ const chunks = [];
106
+ for (;;)
107
+ chunks.push('x'.repeat(1024 * 1024));
108
+ };
109
+ /** Re-exec the process with a 16GB heap and larger stack if we're currently below that. */
67
110
  function ensureHeap() {
68
111
  const nodeOpts = process.env.NODE_OPTIONS || '';
69
112
  if (nodeOpts.includes('--max-old-space-size'))
@@ -83,10 +126,53 @@ function ensureHeap() {
83
126
  });
84
127
  }
85
128
  catch (e) {
86
- process.exitCode = e.status ?? 1;
129
+ if (childProcessLikelyOom(e)) {
130
+ cliError(` Analysis likely ran out of memory.\n` +
131
+ ` Retry with a larger heap if your machine allows it:\n` +
132
+ ` NODE_OPTIONS="--max-old-space-size=24576" gitnexus analyze [your-args]\n` +
133
+ ` (Windows: set NODE_OPTIONS=--max-old-space-size=24576 && gitnexus analyze [your-args])\n` +
134
+ ` If this persists, it may be a native crash unrelated to heap size.\n`, { recoveryHint: 'heap-oom-respawn' });
135
+ }
136
+ const status = typeof e === 'object' && e !== null && 'status' in e && typeof e.status === 'number'
137
+ ? e.status
138
+ : 1;
139
+ process.exitCode = status;
87
140
  }
88
141
  return true;
89
142
  }
143
+ /**
144
+ * GITNEXUS_* env vars that `analyzeCommand` writes for backward-compatible
145
+ * downstream consumption. Snapshotted at function entry and restored in the
146
+ * finally block so that programmatic callers (tests, long-running hosts)
147
+ * don't see leaked state across invocations. `GITNEXUS_WORKER_POOL_SIZE` is
148
+ * NOT in this list: that knob is threaded through `runFullAnalysis` options
149
+ * (see `workerPoolSize` plumbing) so the CLI never has to mutate `process.env`
150
+ * for it in the first place.
151
+ */
152
+ const ANALYZE_CLI_ENV_KEYS = [
153
+ 'GITNEXUS_VERBOSE',
154
+ 'GITNEXUS_MAX_FILE_SIZE',
155
+ 'GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS',
156
+ 'GITNEXUS_EMBEDDING_THREADS',
157
+ 'GITNEXUS_EMBEDDING_BATCH_SIZE',
158
+ 'GITNEXUS_EMBEDDING_SUB_BATCH_SIZE',
159
+ 'GITNEXUS_EMBEDDING_DEVICE',
160
+ ];
161
+ const snapshotAnalyzeEnv = () => {
162
+ const snap = {};
163
+ for (const k of ANALYZE_CLI_ENV_KEYS)
164
+ snap[k] = process.env[k];
165
+ return snap;
166
+ };
167
+ const restoreAnalyzeEnv = (snap) => {
168
+ for (const k of ANALYZE_CLI_ENV_KEYS) {
169
+ const v = snap[k];
170
+ if (v === undefined)
171
+ delete process.env[k];
172
+ else
173
+ process.env[k] = v;
174
+ }
175
+ };
90
176
  /**
91
177
  * Whether the post-index skill step should run.
92
178
  *
@@ -104,10 +190,27 @@ export const shouldGenerateCommunitySkillFiles = (options, pipelineResult) => Bo
104
190
  export const analyzeCommand = async (inputPath, options) => {
105
191
  if (ensureHeap())
106
192
  return;
193
+ forceHeapOOMForTestIfEnabled();
107
194
  // Install fatal handlers immediately after re-exec resolution so any
108
195
  // async error that escapes the try/catch below (#1169) surfaces with
109
196
  // a stack trace and a non-zero exit code instead of a silent exit 0.
110
197
  installFatalHandlers();
198
+ // Snapshot the GITNEXUS_* env vars that the impl writes for downstream
199
+ // consumption, so they don't leak across `analyzeCommand` invocations in
200
+ // programmatic callers (tests, long-running hosts). `process.exit(0)` on
201
+ // the success path bypasses `finally` — intentional: when the process is
202
+ // exiting, restoration is moot. For early-return paths (validation
203
+ // errors) and the alreadyUpToDate fast path the finally restores the
204
+ // pre-call values.
205
+ const envSnap = snapshotAnalyzeEnv();
206
+ try {
207
+ await analyzeCommandImpl(inputPath, options);
208
+ }
209
+ finally {
210
+ restoreAnalyzeEnv(envSnap);
211
+ }
212
+ };
213
+ const analyzeCommandImpl = async (inputPath, options) => {
111
214
  if (options?.verbose) {
112
215
  process.env.GITNEXUS_VERBOSE = '1';
113
216
  }
@@ -123,6 +226,23 @@ export const analyzeCommand = async (inputPath, options) => {
123
226
  }
124
227
  process.env.GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS = String(Math.round(workerTimeoutSeconds * 1000));
125
228
  }
229
+ // `--workers` is threaded through `runFullAnalysis` options → PipelineOptions
230
+ // → createWorkerPool, intentionally bypassing the GITNEXUS_WORKER_POOL_SIZE
231
+ // env channel so this CLI surface never mutates `process.env` for pool size.
232
+ // Tests can therefore re-invoke analyzeCommand with different --workers
233
+ // values back-to-back and observe the value they passed, not whatever the
234
+ // previous call leaked.
235
+ let workerPoolSize;
236
+ if (options?.workers !== undefined) {
237
+ const parsedWorkers = Number(options.workers);
238
+ if (!Number.isInteger(parsedWorkers) || parsedWorkers < 0) {
239
+ cliError(' --workers must be a non-negative integer. ' +
240
+ 'Pass 0 to disable the worker pool (sequential fallback).\n');
241
+ process.exitCode = 1;
242
+ return;
243
+ }
244
+ workerPoolSize = parsedWorkers;
245
+ }
126
246
  // Parse `--embeddings [limit]`: `true` → default cap, string → numeric cap
127
247
  // (0 disables the cap entirely). Validated up here so failures match the
128
248
  // sibling-validation pattern (exit before bar.start() — otherwise
@@ -165,6 +285,12 @@ export const analyzeCommand = async (inputPath, options) => {
165
285
  }
166
286
  process.env.GITNEXUS_EMBEDDING_DEVICE = options.embeddingDevice;
167
287
  }
288
+ if (options?.repairFts && options?.force) {
289
+ cliError(' Cannot combine `--repair-fts` with `--force`. ' +
290
+ 'Use `--repair-fts` for fast FTS-only repair, or `--force` for a full rebuild.\n');
291
+ process.exitCode = 1;
292
+ return;
293
+ }
168
294
  console.log('\n GitNexus Analyzer\n');
169
295
  // `--index-only` is the stronger contract — it suppresses every form of file
170
296
  // injection, including community skill writes that `--skills` would normally
@@ -317,9 +443,11 @@ export const analyzeCommand = async (inputPath, options) => {
317
443
  // needs a fresh pipelineResult. Has no bearing on the registry
318
444
  // collision guard (see allowDuplicateName below).
319
445
  force: options?.force || options?.skills,
446
+ repairFts: options?.repairFts,
320
447
  embeddings: embeddingsEnabled,
321
448
  embeddingsNodeLimit,
322
449
  dropEmbeddings: options?.dropEmbeddings,
450
+ verbose: options?.verbose,
323
451
  skipGit: options?.skipGit,
324
452
  skipAgentsMd,
325
453
  skipSkills,
@@ -335,6 +463,10 @@ export const analyzeCommand = async (inputPath, options) => {
335
463
  // be able to accept the duplicate name without also paying the
336
464
  // cost of a full pipeline re-index. See #829 review round 2.
337
465
  allowDuplicateName: options?.allowDuplicateName,
466
+ // Worker pool size threaded from --workers, replacing the previous
467
+ // GITNEXUS_WORKER_POOL_SIZE env mutation. `undefined` defers to the
468
+ // env / auto-formula fallback inside the pipeline.
469
+ workerPoolSize,
338
470
  }, {
339
471
  onProgress: (_phase, percent, message) => {
340
472
  updateBar(percent, message);
@@ -360,6 +492,18 @@ export const analyzeCommand = async (inputPath, options) => {
360
492
  // runFullAnalysis never opens LadybugDB, so no native handles prevent exit.
361
493
  return;
362
494
  }
495
+ if (result.ftsRepairedOnly) {
496
+ clearInterval(elapsedTimer);
497
+ process.removeListener('SIGINT', sigintHandler);
498
+ console.log = origLog;
499
+ // eslint-disable-next-line no-console -- restoring after intentional progress-bar routing
500
+ console.warn = origWarn;
501
+ // eslint-disable-next-line no-console -- restoring after intentional progress-bar routing
502
+ console.error = origError;
503
+ bar.stop();
504
+ console.log(' FTS indexes repaired successfully\n');
505
+ return;
506
+ }
363
507
  // Post-finalize invariant (#1169): runFullAnalysis nominally writes
364
508
  // meta.json and registers the repo, but on Windows it has been
365
509
  // observed to return successfully with neither artifact present
@@ -444,7 +588,7 @@ export const analyzeCommand = async (inputPath, options) => {
444
588
  // eslint-disable-next-line no-console -- restoring after intentional progress-bar routing
445
589
  console.error = origError;
446
590
  bar.stop();
447
- const msg = err.message || String(err);
591
+ const msg = err instanceof Error ? err.message : String(err);
448
592
  // Registry name-collision from --name (#829) — surface as an
449
593
  // actionable error rather than a generic stack-trace.
450
594
  if (err instanceof RegistryNameCollisionError) {
@@ -14,9 +14,14 @@
14
14
  * Agent bash cmd → curl localhost:PORT/tool/query → eval-server → LocalBackend → format → text
15
15
  *
16
16
  * Usage:
17
- * gitnexus eval-server # default port 4848
18
- * gitnexus eval-server --port 4848 # explicit port
19
- * gitnexus eval-server --idle-timeout 300 # auto-shutdown after 300s idle
17
+ * gitnexus eval-server # default port 4848, binds 127.0.0.1
18
+ * gitnexus eval-server --port 4848 # explicit port
19
+ * gitnexus eval-server --host 0.0.0.0 # reachable from other VMs / containers
20
+ * gitnexus eval-server --idle-timeout 300 # auto-shutdown after 300s idle
21
+ *
22
+ * READY signal format: GITNEXUS_EVAL_SERVER_READY:<host>:<port>
23
+ * IPv4: GITNEXUS_EVAL_SERVER_READY:127.0.0.1:4848
24
+ * IPv6: GITNEXUS_EVAL_SERVER_READY:[::1]:4848
20
25
  *
21
26
  * API:
22
27
  * POST /tool/:name — Call a tool. Body is JSON arguments. Returns formatted text.
@@ -25,8 +30,16 @@
25
30
  */
26
31
  export interface EvalServerOptions {
27
32
  port?: string;
33
+ host?: string;
28
34
  idleTimeout?: string;
29
35
  }
36
+ /**
37
+ * Validate the --host value. Accepts IPv4, IPv6, or "localhost".
38
+ * Returns the host string unchanged, or null if invalid.
39
+ * "localhost" is passed through so the OS resolves it to the correct loopback
40
+ * address (127.0.0.1 or ::1) at bind time rather than forcing IPv4.
41
+ */
42
+ export declare function validateHost(raw: string): string | null;
30
43
  export declare function formatQueryResult(result: any): string;
31
44
  export declare function formatContextResult(result: any): string;
32
45
  export declare function formatImpactResult(result: any): string;