Everything the call-graph builder reads, sourced from the GraphProvider
facade (PropertyGraph). Replaces the former direct ProjectIndex
dependency (#696): the file inventory, the symbol table (for enclosing-symbol
attribution) and the import/reexport adjacency (for scope-aware callee
resolution). Source content itself is still read fresh from disk per file.
Which scope step resolved a callee structurally — the strength of the
evidence. Same-file and imported definitions are bound by the caller’s own
scope; a name that is merely unique project-wide may still be an external
function of the same name.
Current content hashes of the indexed files — the same values a
CallGraph records in file_hashes — without building or loading a
call graph. For callers that need only the hashes (semantic cache keys
and project revision), which is a fraction of a call-graph build.
Resolve callee names to a single defining file when scope makes it
unambiguous across all call sites. Names that resolve to different files
from different scopes are omitted, so callers never attribute a call to the
wrong file. Keyed by callee name to match the call graph’s name-keyed nodes.
Resolve each edge’s callee to its defining file in that edge’s own caller
scope (index-aligned with edges). None = ambiguous or unknown; never
guesses. Use this for per-edge consumers (graph edges); the name-keyed
resolve_callee_files additionally drops names that differ across scopes.