using MeetingAssistant.Notifications; namespace MeetingAssistant.MacOs; public sealed class MacOsAgentApprovalPromptService(DesktopUserRequestStore requests) : IAgentApprovalPromptService { public async Task ConfirmAsync(AgentApprovalPrompt prompt, CancellationToken cancellationToken) { var request = requests.Add(new DesktopUserRequestSpec( "agent-approval", prompt.Title, prompt.Message, prompt.Timeout, [new("yes", "Yes"), new("no", "No")]), cancellationToken); try { var response = await request.Decision.WaitAsync(cancellationToken); cancellationToken.ThrowIfCancellationRequested(); return response == "yes"; } finally { requests.Dismiss(request.Id); } } }