forked from Manuel/meeting-assistant
24 lines
812 B
C#
24 lines
812 B
C#
using MeetingAssistant.Notifications;
|
|
|
|
namespace MeetingAssistant.MacOs;
|
|
|
|
public sealed class MacOsAgentApprovalPromptService(DesktopUserRequestStore requests) : IAgentApprovalPromptService
|
|
{
|
|
public async Task<bool> 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);
|
|
}
|
|
}
|
|
}
|