loadAllSettings function

Future<Map<String, dynamic>> loadAllSettings({
  1. required String projectDir,
  2. String? configDir,
})

Implementation

Future<Map<String, dynamic>> loadAllSettings({
  required String projectDir,
  String? configDir,
}) async {
  final home = Platform.environment['HOME'] ?? '';
  final cfgDir = configDir ?? '/.neomage';

  // Layer settings: user -> project -> local -> policy
  final userSettings = await _loadSettingsFile('$cfgDir/settings.json');
  final projectSettings = await _loadSettingsFile(
    '$projectDir/.neomage/settings.json',
  );
  final localSettings = await _loadSettingsFile(
    '$projectDir/.neomage/settings.local.json',
  );

  // Policy settings (from org)
  final policySettings = await _loadSettingsFile('$cfgDir/policy.json');

  // Merge: policy overrides everything, then local, then project, then user
  final merged = <String, dynamic>{};
  merged.addAll(userSettings);
  merged.addAll(projectSettings);
  merged.addAll(localSettings);
  merged.addAll(policySettings);

  return merged;
}