importFromNeomage method

Future<bool> importFromNeomage()

Attempt to migrate settings from an existing Neomage installation at ~/.neomage/.

This reads ~/.neomage/settings.json (if present) and maps known keys into the Neomage configuration format.

Implementation

Future<bool> importFromNeomage() async {
  final home =
      Platform.environment['HOME'] ?? Platform.environment['USERPROFILE'];
  if (home == null) return false;
  final settingsFile = File('$home/.neomage/settings.json');
  if (!await settingsFile.exists()) return false;

  try {
    final content = await settingsFile.readAsString();
    final map = json.decode(content) as Map<String, dynamic>;

    // Map Neomage keys to Neomage keys where possible.
    const mapping = <String, String>{
      'model': ConfigKeys.model,
      'apiKey': ConfigKeys.apiKey,
      'permissions': ConfigKeys.permissionMode,
      'theme': ConfigKeys.theme,
      'telemetry': ConfigKeys.telemetryEnabled,
      'maxTokens': ConfigKeys.maxTokens,
      'systemPrompt': ConfigKeys.systemPrompt,
      'allowedTools': ConfigKeys.allowedTools,
      'mcpServers': ConfigKeys.mcpServers,
    };

    for (final entry in mapping.entries) {
      if (map.containsKey(entry.key)) {
        _store[ConfigScope.global]![entry.value] = map[entry.key];
        _sources[ConfigScope.global]![entry.value] = ConfigSource.file;
      }
    }
    return true;
  } catch (_) {
    return false;
  }
}