Pure graph algorithms for dependency analysis.
Operates on abstract graphs represented as adjacency lists
(HashMap<String, HashSet<String>>). No filesystem, CLI, or
normalize-specific types.
Algorithms: Tarjan SCC, bridge-finding, diamond detection, transitive edge detection, longest chains, weakly connected components.