1
0

feat: Implement new commands for recording control, configuration management, latency testing, and status display, updating program entry and project references.

This commit is contained in:
2026-02-27 01:12:23 +01:00
parent d910fe1441
commit 482fe84eb1
8 changed files with 494 additions and 368 deletions

View File

@@ -0,0 +1,51 @@
using System.Threading.Tasks;
using Spectre.Console;
using Toak.Configuration;
namespace Toak.Commands;
public static class ConfigUpdaterCommand
{
public static async Task ExecuteAsync(string key, string val, bool verbose)
{
Toak.Core.Logger.Verbose = verbose;
var config = ConfigManager.LoadConfig();
key = key.ToLowerInvariant();
val = val.ToLowerInvariant();
switch (key)
{
case "llm": config.LlmModel = val; break;
case "whisper": config.WhisperModel = val; break;
case "style":
if (val == "professional" || val == "concise" || val == "casual") { config.StyleMode = val; }
else { AnsiConsole.MarkupLine("[red]Invalid style.[/] Use: professional, concise, casual"); return; }
break;
case "language":
case "lang": config.WhisperLanguage = val; break;
case "backend": config.TypingBackend = val; break;
case "punctuation":
if (bool.TryParse(val, out var p)) { config.ModulePunctuation = p; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return; }
break;
case "tech":
if (bool.TryParse(val, out var t)) { config.ModuleTechnicalSanitization = t; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return; }
break;
case "bullets":
if (bool.TryParse(val, out var b)) { config.StructureBulletPoints = b; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return; }
break;
case "paragraphs":
if (bool.TryParse(val, out var sp)) { config.StructureSmartParagraphing = sp; }
else { AnsiConsole.MarkupLine("[red]Invalid value. Use true or false.[/]"); return; }
break;
default:
AnsiConsole.MarkupLine($"[red]Unknown config key: {key}[/]");
return;
}
ConfigManager.SaveConfig(config);
AnsiConsole.MarkupLine($"[green]Successfully[/] set {key} to [blue]{val}[/].");
}
}