using System.Text.Json; using System.Text.Json.Serialization; namespace AnchorCli; internal sealed class AnchorConfig { public string ApiKey { get; set; } = ""; public string Model { get; set; } = "qwen/qwen3.5-397b-a17b"; public string Provider { get; set; } = "openrouter"; public string Endpoint { get; set; } = "https://openrouter.ai/api/v1"; // ── Persistence ────────────────────────────────────────────────────── private static string ConfigPath => Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "anchor", "config.json"); public static AnchorConfig Load() { try { if (File.Exists(ConfigPath)) { var json = File.ReadAllText(ConfigPath); return JsonSerializer.Deserialize(json, AppJsonContext.Default.AnchorConfig) ?? new AnchorConfig(); } } catch { /* fall through to defaults */ } return new AnchorConfig(); } public void Save() { Directory.CreateDirectory(Path.GetDirectoryName(ConfigPath)!); var json = JsonSerializer.Serialize(this, AppJsonContext.Default.AnchorConfig); File.WriteAllText(ConfigPath, json); } }