namespace Toak.Configuration; public class ToakConfig { public string GroqApiKey { get; set; } = string.Empty; public string TogetherApiKey { get; set; } = string.Empty; public string CerebrasApiKey { get; set; } = string.Empty; public string FireworksApiKey { get; set; } = string.Empty; public string LlmProvider { get; set; } = "groq"; // groq, together, cerebras, or fireworks public string WhisperProvider { get; set; } = "groq"; // groq or fireworks public string TypingBackend { get; set; } = "xdotool"; // wtype or xdotool public string AudioBackend { get; set; } = "pw-record"; // pw-record or ffmpeg public bool ModulePunctuation { get; set; } = true; public bool ModuleTechnicalSanitization { get; set; } = true; public int MinRecordingDuration { get; set; } = 500; public string WhisperLanguage { get; set; } = string.Empty; public string LlmModel { get; set; } = Core.Constants.Defaults.LlmModel; public string ReasoningEffort { get; set; } = "none"; // none or low public string WhisperModel { get; set; } = Core.Constants.Defaults.WhisperModel; public string StartSoundPath { get; set; } = "Assets/Audio/beep.wav"; public string StopSoundPath { get; set; } = "Assets/Audio/beep.wav"; public List ActiveSkills { get; set; } = ["Terminal", "Translate"]; }