gitnexus 1.6.6-rc.133 → 1.6.6-rc.134

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 (112) hide show
  1. package/dist/_shared/scope-resolution/symbol-definition.d.ts +9 -0
  2. package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
  3. package/dist/core/ingestion/call-processor.d.ts +32 -218
  4. package/dist/core/ingestion/call-processor.js +30 -2530
  5. package/dist/core/ingestion/call-routing.d.ts +2 -2
  6. package/dist/core/ingestion/call-routing.js +6 -6
  7. package/dist/core/ingestion/call-types.d.ts +0 -75
  8. package/dist/core/ingestion/class-extractors/configs/c-cpp.js +23 -1
  9. package/dist/core/ingestion/finalize-orchestrator.js +1 -1
  10. package/dist/core/ingestion/import-processor.js +6 -2
  11. package/dist/core/ingestion/language-provider.d.ts +5 -81
  12. package/dist/core/ingestion/language-provider.js +0 -1
  13. package/dist/core/ingestion/languages/c-cpp.js +0 -3
  14. package/dist/core/ingestion/languages/csharp/captures.js +5 -4
  15. package/dist/core/ingestion/languages/csharp.js +0 -3
  16. package/dist/core/ingestion/languages/dart.js +0 -2
  17. package/dist/core/ingestion/languages/go/captures.js +5 -5
  18. package/dist/core/ingestion/languages/go.js +0 -3
  19. package/dist/core/ingestion/languages/java/captures.js +6 -6
  20. package/dist/core/ingestion/languages/java/scope-resolver.d.ts +2 -8
  21. package/dist/core/ingestion/languages/java/scope-resolver.js +2 -8
  22. package/dist/core/ingestion/languages/java.js +0 -3
  23. package/dist/core/ingestion/languages/javascript/captures.js +5 -5
  24. package/dist/core/ingestion/languages/kotlin/captures.js +5 -4
  25. package/dist/core/ingestion/languages/kotlin/scope-resolver.d.ts +5 -7
  26. package/dist/core/ingestion/languages/kotlin/scope-resolver.js +5 -7
  27. package/dist/core/ingestion/languages/kotlin.js +0 -2
  28. package/dist/core/ingestion/languages/php/captures.js +5 -6
  29. package/dist/core/ingestion/languages/php.js +0 -2
  30. package/dist/core/ingestion/languages/python/captures.js +3 -3
  31. package/dist/core/ingestion/languages/python/query.js +0 -23
  32. package/dist/core/ingestion/languages/python.js +0 -2
  33. package/dist/core/ingestion/languages/ruby/captures.js +11 -13
  34. package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -2
  35. package/dist/core/ingestion/languages/ruby.js +4 -52
  36. package/dist/core/ingestion/languages/rust/captures.js +4 -4
  37. package/dist/core/ingestion/languages/rust/scope-resolver.js +1 -1
  38. package/dist/core/ingestion/languages/rust.js +0 -2
  39. package/dist/core/ingestion/languages/swift/captures.js +5 -5
  40. package/dist/core/ingestion/languages/swift.d.ts +0 -1
  41. package/dist/core/ingestion/languages/swift.js +0 -4
  42. package/dist/core/ingestion/languages/typescript/captures.js +6 -8
  43. package/dist/core/ingestion/languages/typescript.js +0 -3
  44. package/dist/core/ingestion/languages/vue.js +0 -2
  45. package/dist/core/ingestion/model/index.d.ts +0 -2
  46. package/dist/core/ingestion/model/index.js +0 -5
  47. package/dist/core/ingestion/model/resolve.d.ts +7 -43
  48. package/dist/core/ingestion/model/resolve.js +7 -226
  49. package/dist/core/ingestion/model/semantic-model.d.ts +2 -4
  50. package/dist/core/ingestion/parsing-processor.d.ts +1 -2
  51. package/dist/core/ingestion/parsing-processor.js +0 -5
  52. package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +9 -8
  53. package/dist/core/ingestion/pipeline-phases/cross-file.js +16 -12
  54. package/dist/core/ingestion/pipeline-phases/parse-impl.js +31 -170
  55. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +8 -9
  56. package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +8 -9
  57. package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +2 -0
  58. package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +8 -11
  59. package/dist/core/ingestion/scope-resolution/pipeline/phase.js +15 -25
  60. package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +3 -4
  61. package/dist/core/ingestion/scope-resolution/pipeline/registry.js +3 -4
  62. package/dist/core/ingestion/scope-resolution/pipeline/run.js +6 -14
  63. package/dist/core/ingestion/scope-resolution/scope/walkers.js +52 -2
  64. package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
  65. package/dist/core/ingestion/tree-sitter-queries.js +4 -221
  66. package/dist/core/ingestion/type-extractors/types.d.ts +1 -1
  67. package/dist/core/ingestion/utils/ast-helpers.js +3 -3
  68. package/dist/core/ingestion/workers/parse-worker.d.ts +0 -2
  69. package/dist/core/ingestion/workers/parse-worker.js +10 -82
  70. package/dist/storage/parse-cache.js +5 -1
  71. package/package.json +1 -2
  72. package/scripts/bench-scope-resolution.ts +1 -3
  73. package/dist/core/ingestion/heritage-extractors/configs/cpp.d.ts +0 -16
  74. package/dist/core/ingestion/heritage-extractors/configs/cpp.js +0 -18
  75. package/dist/core/ingestion/heritage-extractors/configs/csharp.d.ts +0 -27
  76. package/dist/core/ingestion/heritage-extractors/configs/csharp.js +0 -35
  77. package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +0 -37
  78. package/dist/core/ingestion/heritage-extractors/configs/go.js +0 -57
  79. package/dist/core/ingestion/heritage-extractors/configs/java.d.ts +0 -11
  80. package/dist/core/ingestion/heritage-extractors/configs/java.js +0 -13
  81. package/dist/core/ingestion/heritage-extractors/configs/javascript.d.ts +0 -8
  82. package/dist/core/ingestion/heritage-extractors/configs/javascript.js +0 -10
  83. package/dist/core/ingestion/heritage-extractors/configs/kotlin.d.ts +0 -11
  84. package/dist/core/ingestion/heritage-extractors/configs/kotlin.js +0 -13
  85. package/dist/core/ingestion/heritage-extractors/configs/python.d.ts +0 -9
  86. package/dist/core/ingestion/heritage-extractors/configs/python.js +0 -11
  87. package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +0 -25
  88. package/dist/core/ingestion/heritage-extractors/configs/ruby.js +0 -74
  89. package/dist/core/ingestion/heritage-extractors/configs/rust.d.ts +0 -9
  90. package/dist/core/ingestion/heritage-extractors/configs/rust.js +0 -11
  91. package/dist/core/ingestion/heritage-extractors/configs/typescript.d.ts +0 -15
  92. package/dist/core/ingestion/heritage-extractors/configs/typescript.js +0 -19
  93. package/dist/core/ingestion/heritage-extractors/generic.d.ts +0 -23
  94. package/dist/core/ingestion/heritage-extractors/generic.js +0 -60
  95. package/dist/core/ingestion/heritage-extractors/supertype-alternation.d.ts +0 -82
  96. package/dist/core/ingestion/heritage-extractors/supertype-alternation.js +0 -193
  97. package/dist/core/ingestion/heritage-processor.d.ts +0 -54
  98. package/dist/core/ingestion/heritage-processor.js +0 -373
  99. package/dist/core/ingestion/heritage-types.d.ts +0 -93
  100. package/dist/core/ingestion/heritage-types.js +0 -2
  101. package/dist/core/ingestion/model/heritage-map.d.ts +0 -105
  102. package/dist/core/ingestion/model/heritage-map.js +0 -294
  103. package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +0 -17
  104. package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +0 -209
  105. package/dist/core/ingestion/registry-primary-flag.d.ts +0 -89
  106. package/dist/core/ingestion/registry-primary-flag.js +0 -125
  107. package/dist/core/ingestion/shadow-harness.d.ts +0 -113
  108. package/dist/core/ingestion/shadow-harness.js +0 -148
  109. package/dist/core/ingestion/utils/ruby-self-call.d.ts +0 -52
  110. package/dist/core/ingestion/utils/ruby-self-call.js +0 -59
  111. package/scripts/ci-list-migrated-languages.ts +0 -24
  112. package/scripts/run-parity.ts +0 -139
@@ -56,5 +56,14 @@ export interface SymbolDefinition {
56
56
  isExplicit?: boolean;
57
57
  /** Links Method/Constructor/Property to owning Class/Struct/Trait nodeId */
58
58
  ownerId?: string;
59
+ /** #1982/#1993: bridge-held enclosing-namespace path (e.g. `NS1`, `Outer.Inner`)
60
+ * tagged during the C++ resolution phase. Lets the graph bridge retry a
61
+ * namespace-prefixed node-lookup key and lets the qualified-base resolver
62
+ * break same-tail cross-namespace inheritance ties. A deliberate sidecar,
63
+ * separate from `qualifiedName`: it does NOT participate in graph node
64
+ * identity (node keys derive from filePath/type/qualifiedName) and leaves the
65
+ * qualifiedName-keyed resolution index untouched. Absent for the common case
66
+ * (non-namespace-nested defs and all non-C++ languages). */
67
+ namespacePrefix?: string;
59
68
  }
60
69
  //# sourceMappingURL=symbol-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;iEAO6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -1,231 +1,46 @@
1
+ /**
2
+ * Route / fetch edge emission + exported-type-map helpers.
3
+ *
4
+ * The legacy call-resolution DAG that previously lived here (per-file type
5
+ * inference → receiver inference → dispatch selection → MRO walk over the
6
+ * legacy heritage map) was deleted in RING4-1 (#942): all languages now resolve
7
+ * calls through the scope-resolution registry pipeline. What remains are the
8
+ * language-agnostic edge emitters that are NOT part of call resolution:
9
+ *
10
+ * - `processRoutesFromExtracted` — CALLS edges from framework routes
11
+ * (e.g. Laravel) to their controller methods.
12
+ * - `processNextjsFetchRoutes` / `extractFetchCallsFromFiles` /
13
+ * `extractConsumerAccessedKeys` — FETCHES edges from `fetch()` calls to
14
+ * Next.js Route nodes.
15
+ * - `buildExportedTypeMapFromGraph` — exported symbol → return/declared type
16
+ * map, consumed by the cross-file enrichment pass.
17
+ */
1
18
  import { KnowledgeGraph } from '../graph/types.js';
2
19
  import { ASTCache } from './ast-cache.js';
3
- import type { SymbolDefinition } from '../../_shared/index.js';
4
- import type { SymbolTableReader, HeritageMap, ExtractedHeritage } from './model/index.js';
5
- import Parser from 'tree-sitter';
20
+ import type { SymbolTableReader } from './model/index.js';
6
21
  import type { ResolutionContext } from './model/resolution-context.js';
7
- import type { TieredCandidates } from './model/resolution-context.js';
8
- import { SupportedLanguages } from '../../_shared/index.js';
9
- import type { TypeEnvironment } from './type-env.js';
10
- import type { BindingAccumulator } from './binding-accumulator.js';
11
- import type { ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, FileConstructorBindings } from './workers/parse-worker.js';
12
- import type { LiteralTypeInferrer } from './type-extractors/types.js';
13
- import type { SyntaxNode } from './utils/ast-helpers.js';
22
+ import type { ExtractedRoute, ExtractedFetchCall } from './workers/parse-worker.js';
14
23
  /** Per-file resolved type bindings for exported symbols.
15
- * Populated during call processing, consumed by Phase 14 re-resolution pass. */
24
+ * Consumed by the cross-file re-resolution / enrichment pass. */
16
25
  export type ExportedTypeMap = Map<string, Map<string, string>>;
17
- /** Build a map of imported callee names → return types for cross-file call-result binding.
18
- * Consulted ONLY when SymbolTable has no unambiguous local match (local-first principle).
19
- *
20
- * Overlapping mechanism (1 of 3): this is the SymbolTable-backed path.
21
- * See also:
22
- * 2. collectExportedBindings (~line 168) / enrichExportedTypeMap — TypeEnv + graph isExported
23
- * 3. Phase 9 fallback in verifyConstructorBindings (~line 563) — namedImportMap + BindingAccumulator
24
- * A future cleanup should merge these into a single resolution pass. */
25
- export declare function buildImportedReturnTypes(filePath: string, namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
26
- sourcePath: string;
27
- exportedName: string;
28
- }>>, symbolTable: {
29
- lookupExactFull(filePath: string, name: string): {
30
- returnType?: string;
31
- } | undefined;
32
- }): ReadonlyMap<string, string>;
33
- /** Build cross-file RAW return types for imported callables.
34
- * Unlike buildImportedReturnTypes (which stores extractReturnTypeName output),
35
- * this stores the raw declared return type string (e.g., 'User[]', 'List<User>').
36
- * Used by lookupRawReturnType for for-loop element extraction via extractElementTypeFromString. */
37
- export declare function buildImportedRawReturnTypes(filePath: string, namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
38
- sourcePath: string;
39
- exportedName: string;
40
- }>>, symbolTable: {
41
- lookupExactFull(filePath: string, name: string): {
42
- returnType?: string;
43
- } | undefined;
44
- }): ReadonlyMap<string, string>;
45
- /** Build ExportedTypeMap from graph nodes — used for worker path where TypeEnv
46
- * is not available in the main thread. Collects returnType/declaredType from
47
- * exported symbols that have callables with known return types. */
26
+ /** Build ExportedTypeMap from graph nodes — used for the worker path where the
27
+ * sequential TypeEnv is not available in the main thread. Collects
28
+ * returnType/declaredType from exported symbols with known types. */
48
29
  export declare function buildExportedTypeMapFromGraph(graph: KnowledgeGraph, symbolTable: SymbolTableReader): ExportedTypeMap;
49
- /** Seed cross-file receiver types into pre-extracted call records.
50
- * Fills missing receiverTypeName for single-hop imported variables
51
- * using ExportedTypeMap + namedImportMap — zero disk I/O, zero AST re-parsing.
52
- * Mutates calls in-place. Runs BEFORE processCallsFromExtracted. */
53
- export declare function seedCrossFileReceiverTypes(calls: ExtractedCall[], namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
54
- sourcePath: string;
55
- exportedName: string;
56
- }>>, exportedTypeMap: ReadonlyMap<string, ReadonlyMap<string, string>>): {
57
- enrichedCount: number;
58
- };
59
- /**
60
- * Resolution result with confidence scoring
61
- */
62
- interface ResolveResult {
63
- nodeId: string;
64
- confidence: number;
65
- reason: string;
66
- returnType?: string;
67
- }
68
- export declare const processCalls: (graph: KnowledgeGraph, files: {
69
- path: string;
70
- content: string;
71
- }[], astCache: ASTCache, ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, exportedTypeMap?: ExportedTypeMap,
72
- /** Phase 14: pre-resolved cross-file bindings to seed into buildTypeEnv. Keyed by filePath → Map<localName, typeName>. */
73
- importedBindingsMap?: ReadonlyMap<string, ReadonlyMap<string, string>>,
74
- /** Phase 14 E3: cross-file return types for imported callables. Keyed by filePath → Map<calleeName, returnType>.
75
- * Consulted ONLY when SymbolTable has no unambiguous match (local-first principle). */
76
- importedReturnTypesMap?: ReadonlyMap<string, ReadonlyMap<string, string>>,
77
- /** Phase 14 E3: cross-file RAW return types for for-loop element extraction. Keyed by filePath → Map<calleeName, rawReturnType>. */
78
- importedRawReturnTypesMap?: ReadonlyMap<string, ReadonlyMap<string, string>>, heritageMap?: HeritageMap, bindingAccumulator?: BindingAccumulator,
79
- /**
80
- * Optional cache for compiled `Parser.Query` objects keyed by language name.
81
- * When provided, compiled queries are reused across calls instead of being
82
- * re-compiled from the query string for every file. Callers that invoke
83
- * `processCalls` many times with single-file batches (e.g. the cross-file
84
- * propagation phase) should pass a long-lived map here to avoid O(N)
85
- * query recompilation overhead.
86
- */
87
- compiledQueryCache?: Map<SupportedLanguages, Parser.Query>) => Promise<ExtractedHeritage[]>;
88
- /** Per-file cache for module-alias widening. Cleared between files. */
89
- type WidenCache = Map<string, readonly SymbolDefinition[]>;
90
- /**
91
- * Optional hints for overload disambiguation via argument literal types.
92
- * Only available on the sequential path (has AST); worker path passes undefined.
93
- *
94
- * @internal Exported so tests can exercise the D0 skip-condition path without
95
- * constructing a real SyntaxNode. Do not use outside `call-processor.ts`
96
- * and its unit tests.
97
- */
98
- export interface OverloadHints {
99
- callNode: SyntaxNode;
100
- inferLiteralType: LiteralTypeInferrer;
101
- typeEnv?: TypeEnvironment;
102
- }
103
- /** @internal Exported for unit tests. Do not use outside tests. */
104
- export declare const _resolveCallTargetForTesting: (call: Pick<ExtractedCall, "calledName" | "argCount" | "callForm" | "receiverTypeName" | "receiverName">, currentFile: string, ctx: ResolutionContext, opts?: {
105
- overloadHints?: OverloadHints;
106
- widenCache?: WidenCache;
107
- preComputedArgTypes?: (string | undefined)[];
108
- heritageMap?: HeritageMap;
109
- }) => ResolveResult | null;
110
- /**
111
- * Resolve a member call using owner-scoped + MRO resolution only (no fuzzy lookup).
112
- * Used for `obj.method()` calls where the receiver type is known.
113
- *
114
- * Delegates to {@link resolveMethodByOwner} which performs an O(1) owner-scoped
115
- * method lookup and, when a {@link HeritageMap} is provided, walks the MRO chain
116
- * via {@link lookupMethodByOwnerWithMRO}.
117
- *
118
- * {@link resolveCallTarget} delegates here for member calls.
119
- *
120
- * **SEMANTIC CHANGE (2026-04-09):** The confidence tier reflects how the
121
- * owner TYPE was resolved, not how the method NAME was resolved globally.
122
- * more accurate for owner-scoped resolution (the discriminant IS the class,
123
- * not the method name). Downstream consumers that filter CALLS edges by
124
- * confidence threshold may see shifted values on otherwise-unchanged code.
125
- * See the "returns result with correct confidence tier" tests below for the
126
- * locked-in behavior.
127
- *
128
- * **Performance:** Callers that only need the return type (e.g. `walkMixedChain`)
129
- * should call {@link resolveMethodByOwner} directly and use the `.def.returnType`
130
- * field instead, to avoid building a throwaway `ResolveResult`.
131
- *
132
- * @param ownerType - The receiver's type name (e.g. 'User')
133
- * @param methodName - The method being called (e.g. 'save')
134
- * @param currentFile - File path of the call site
135
- * @param ctx - Resolution context
136
- * @param heritageMap - Optional heritage map for MRO-aware ancestor walking
137
- */
138
- export declare const resolveMemberCall: (ownerType: string, methodName: string, currentFile: string, ctx: ResolutionContext, heritageMap?: HeritageMap, argCount?: number, ancestryView?: "instance" | "singleton") => ResolveResult | null;
139
- /**
140
- * Resolve a free-function call using `lookupExact` (same-file) + import-scoped
141
- * resolution via `ctx.resolve()`.
142
- *
143
- * Used for `foo()`, `doStuff()` — unqualified calls with no receiver.
144
- * Also handles implicit constructors (`User()` without `new`) by delegating
145
- * to {@link resolveStaticCall} when the tiered pool contains class-like
146
- * targets.
147
- *
148
- * {@link resolveCallTarget} delegates here for `callForm === 'free'`.
149
- *
150
- * `resolveFreeCall` does not take a `widenCache` parameter. Free calls
151
- * have no receiver type and rely exclusively on the tiered pool
152
- * from `ctx.resolve()`.
153
- *
154
- * @param calledName - The called function name (e.g. 'doStuff')
155
- * @param filePath - File path of the call site
156
- * @param ctx - Resolution context
157
- * @param argCount - Optional argument count for arity filtering
158
- * @param tieredOverride - Pre-computed tiered candidates from an upstream
159
- * `ctx.resolve` call. When provided, skips the redundant
160
- * lookup inside this function.
161
- * @param overloadHints - Optional AST-based overload disambiguation hints
162
- * @param preComputedArgTypes - Optional pre-computed argument types (worker path)
163
- */
164
- export declare const resolveFreeCall: (calledName: string, filePath: string, ctx: ResolutionContext, argCount?: number, tieredOverride?: TieredCandidates, overloadHints?: OverloadHints, preComputedArgTypes?: (string | undefined)[]) => ResolveResult | null;
165
30
  /**
166
- * Resolve a constructor or static call using class-scoped lookup (no fuzzy lookup).
167
- * Used for `new User()` / `User()` calls where the calledName targets a class.
168
- *
169
- * Uses {@link TypeRegistry.lookupClassByName} for O(1) class lookup and
170
- * {@link MethodRegistry.lookupMethodByOwner} for constructor resolution.
171
- * {@link resolveCallTarget} delegates here for constructor and free-form calls
172
- * that target a class.
173
- *
174
- * Resolution strategy:
175
- * 1. `lookupClassByName(className)` — O(1) pre-check; bail early if no class exists.
176
- * 2. `ctx.resolve(className, currentFile)` — import-scoped tier for confidence.
177
- * 3. Filter to class-like candidates via `CLASS_LIKE_TYPES` and walk each
178
- * with `lookupMethodByOwner(classNodeId, className, argCount)` — O(1)
179
- * constructor lookup. Only accept results with `type === 'Constructor'`.
180
- * 4. If step 3 found nothing and the tiered pool contains ownerless
181
- * `Constructor` nodes (common in some extractors), bail out so
182
- * `filterCallableCandidates` downstream handles Constructor-vs-Class
183
- * preference correctly.
184
- * 5. Class-node fallback: filter `classCandidates` through
185
- * `INSTANTIABLE_CLASS_TYPES` and return the sole survivor when there is
186
- * exactly one. Null-route on zero survivors (Interface / Trait / Impl
187
- * stripped) or multiple (homonym ambiguity).
188
- *
189
- * @param className - The class name (e.g. 'User'). Also used as the method
190
- * name for the `lookupMethodByOwner` scan, because the
191
- * only constructor-shaped call we handle today is
192
- * `ClassName(...)` / `new ClassName(...)`. Named
193
- * constructors like Dart `User.fromJson()` arrive as
194
- * member calls and route through `resolveMemberCall`,
195
- * so this function does not yet need a separate
196
- * `methodName` parameter. Revisit if a language surfaces
197
- * a static-method-shaped call with a distinct member
198
- * name.
199
- * @param currentFile - File path of the call site
200
- * @param ctx - Resolution context
201
- * @param argCount - Optional argument count for arity filtering
202
- * @param tieredOverride - Pre-computed tiered candidates for `className` from
203
- * an upstream `ctx.resolve` call. When provided, skips
204
- * the redundant lookup inside this function. Leave
205
- * unset for direct callers without a prior resolution.
31
+ * Create CALLS edges from extracted framework routes (e.g. Laravel) to their
32
+ * controller methods. Runs for all languages — independent of call resolution.
206
33
  */
207
- export declare const resolveStaticCall: (className: string, currentFile: string, ctx: ResolutionContext, argCount?: number, tieredOverride?: TieredCandidates, overloadHints?: OverloadHints, preComputedArgTypes?: (string | undefined)[]) => ResolveResult | null;
34
+ export declare const processRoutesFromExtracted: (graph: KnowledgeGraph, extractedRoutes: ExtractedRoute[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
208
35
  /**
209
- * Fast path: resolve pre-extracted call sites from workers.
210
- * No AST parsing — workers already extracted calledName + sourceId.
36
+ * Extract property access keys from a consumer file's source code near fetch calls.
211
37
  *
212
- * @param bindingAccumulator Phase 9: optional accumulator carrying file-scope
213
- * TypeEnv bindings from all worker-processed files. When the SymbolTable has
214
- * no return type for a cross-file callee, `verifyConstructorBindings` falls
215
- * back to the accumulator via `namedImportMap` to bind the variable to the
216
- * callee's resolved type (e.g. `var x = getUser()` → `x: User`).
38
+ * Looks for destructuring (`const { data } = await res.json()`), property access
39
+ * (`response.data`), and optional chaining (`data?.key`). Returns deduplicated
40
+ * top-level property names accessed on the response. Scans the whole file, so
41
+ * all accessed keys are attributed to each fetch — acceptable for regex-based
42
+ * extraction.
217
43
  */
218
- export declare const processCallsFromExtracted: (graph: KnowledgeGraph, extractedCalls: ExtractedCall[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, constructorBindings?: FileConstructorBindings[], heritageMap?: HeritageMap, bindingAccumulator?: BindingAccumulator) => Promise<void>;
219
- /**
220
- * Resolve pre-extracted field write assignments to ACCESSES {reason: 'write'} edges.
221
- * Accepts optional constructorBindings for return-type-aware receiver inference,
222
- * mirroring processCallsFromExtracted's verified binding lookup.
223
- */
224
- export declare const processAssignmentsFromExtracted: (graph: KnowledgeGraph, assignments: ExtractedAssignment[], ctx: ResolutionContext, constructorBindings?: FileConstructorBindings[], bindingAccumulator?: BindingAccumulator) => void;
225
- /**
226
- * Resolve pre-extracted Laravel routes to CALLS edges from route files to controller methods.
227
- */
228
- export declare const processRoutesFromExtracted: (graph: KnowledgeGraph, extractedRoutes: ExtractedRoute[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
229
44
  export declare const extractConsumerAccessedKeys: (content: string) => string[];
230
45
  /**
231
46
  * Create FETCHES edges from extracted fetch() calls to matching Route nodes.
@@ -243,4 +58,3 @@ export declare const extractFetchCallsFromFiles: (files: {
243
58
  path: string;
244
59
  content: string;
245
60
  }[], astCache: ASTCache) => Promise<ExtractedFetchCall[]>;
246
- export {};