Package-level declarations
Types
Computes the affected graph for a diff: which modules a set of changed files touches, and the downstream blast radius that a build must therefore rebuild and retest.
Lakos-style system-wide coupling metrics and the strongly-connected-component partition that underpins them. All computation is over main (non-test) edges only, consistent with the rest of GraphAnalyzer. Pure functions - no I/O, no mutation of the input.
Turns detected dependency cycles into actionable break-up advice: for each cycle, the specific edge(s) to remove to make it acyclic.
Stateless graph analysis algorithms that operate on a ModuleDependencyGraph.
Produces a subset of a module graph for export - the machinery behind the mermaid { } focus/exclude filters that keep a large graph's diagram readable.
How big a project is, and therefore how it should be presented.
Groups modules into regions, so a project too large to read module-by-module can be read region-by-region.
An aggregated dependency between two regions, weighted by how many module edges it stands for.
The project collapsed to regions and the flows between them.
Where a region partition came from - and therefore how much to trust it.
Lakos-style system-wide coupling numbers returned by CouplingAnalyzer.systemCoupling.