pub fn infer_layers( modules: &[Module], file_imports: &[(String, String)], ) -> (Vec<LayerInfo>, Vec<LayerViolation>)
Infer layers from modules and file-level imports. Returns (layers sorted by instability, violations).