using System.Runtime.CompilerServices; namespace LehrerApp.Desktop.Services.Mcp; /// /// Zeigt dem Nutzer eine über MCP vorgeschlagene Änderung an, bevor sie tatsächlich geschrieben /// wird — Sicherheitsmodell aus dem Planungsdokument: "Tool-Aufruf erzeugt einen Vorschlag/Diff, /// der im Avalonia-Client als Bestätigungsdialog angezeigt wird, [...] kein 'silent write' durch /// das Modell." Als Interface gehalten, damit Write-Tool-Tests ohne echtes UI laufen können (siehe /// für die produktive Implementierung). /// public interface IMcpConfirmationService { /// Identifiziert die Art der Operation für eine mögliche /// Sitzungsfreigabe ("diese Aktion für den Rest der Sitzung nicht mehr nachfragen") — bewusst /// per automatisch befüllt (der Name der aufrufenden /// Tool-Methode, z.B. "AddLessonPhase"), damit kein Aufrufer diesen Parameter selbst pflegen /// muss. Nicht Teil des MCP-Wire-Protokolls, rein internes Bestätigungs-Bookkeeping. /// true, wenn der Nutzer bestätigt hat (direkt oder über eine bereits erteilte /// Sitzungsfreigabe); false bei Ablehnung, Timeout oder falls kein Hauptfenster verfügbar ist /// (z.B. während des DB-Passwort-Prompts beim Start). Task ConfirmAsync(string title, string message, CancellationToken ct, [CallerMemberName] string operationKey = ""); }