using System.Text.Json.Nodes; using Microsoft.Extensions.AI; namespace MeetingAssistant.Summary; internal static class FunctionInvocationGuard { public static ValueTask InvokeAsync( FunctionInvocationContext context, CancellationToken cancellationToken) { if (context.CallContent.Exception is not null) { return ValueTask.FromResult(new JsonObject { ["error"] = new JsonObject { ["code"] = "invalid_tool_arguments", ["message"] = "Tool arguments must be a valid JSON object." } }); } return context.Function.InvokeAsync(context.Arguments, cancellationToken); } }