1
0
Files
AnchorCli/AnchorConfig.cs

42 lines
1.4 KiB
C#

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);
}
}