/** * Phase: scopeResolution * * Generic registry-primary resolution phase (RFC #909 Ring 3). * * For every language whose provider is registered in `SCOPE_RESOLVERS`: * 1. Filter scanned files by language extension. * 2. Read file contents. * 3. Drive the scope-based pipeline end-to-end via the generic * `runScopeResolution(input, provider)` orchestrator. * 4. Emit IMPORTS / CALLS / ACCESSES / INHERITS / USES edges. * * This is the sole resolution path — RING4-1 (#942) deleted the legacy * call-resolution DAG, so there is no longer a per-language flag gating * registry-vs-legacy. * * Adding a language is one change: implement `ScopeResolver` in * `languages//scope-resolver.ts` and register it in * `scope-resolution/pipeline/registry.ts`. * * @deps parse (needs Symbol nodes already in the graph so emit-references * can attach edges to existing Function/Method/Class nodes) * @reads scannedFiles * @writes graph (IMPORTS, CALLS, ACCESSES, INHERITS, USES) */ import type { PipelinePhase } from '../../pipeline-phases/types.js'; import { SupportedLanguages } from '../../../../_shared/index.js'; import type { ResolutionOutcome } from '../resolution-outcome.js'; export interface ScopeResolutionOutput { /** True when at least one language ran. */ readonly ran: boolean; /** Files seen across all languages. `0` when `ran === false`. */ readonly filesProcessed: number; /** IMPORTS edges emitted across all languages. */ readonly importsEmitted: number; /** Reference (CALLS / ACCESSES / INHERITS / USES) edges emitted. */ readonly referenceEdgesEmitted: number; /** Additive stream of resolver diagnostics; does not affect graph edges. */ readonly resolutionOutcomes: readonly ResolutionOutcome[]; /** Per-language breakdown for telemetry. */ readonly perLanguage: ReadonlyMap; } export declare const scopeResolutionPhase: PipelinePhase;