using BotSharp.Abstraction.Functions.Models; using BotSharp.Abstraction.Models; using BotSharp.Abstraction.Routing; using BotSharp.Abstraction.Routing.Settings; namespace BotSharp.Core.Routing.Handlers; public class InterruptTaskExecutionRoutingHandler : RoutingHandlerBase, IRoutingHandler { public string Name => "interrupt_task_execution"; public string Description => "Can't continue user's request becauase the requirements are not met."; public List Parameters => new List { new NameDesc("reason", "the reason why the request is interrupted"), new NameDesc("answer", "the content response to user") }; public bool IsReasoning => true; public InterruptTaskExecutionRoutingHandler(IServiceProvider services, ILogger logger, RoutingSettings settings) : base(services, logger, settings) { } public async Task Handle(IRoutingService routing, FunctionCallFromLlm inst, RoleDialogModel message) { message.FunctionName = inst.Function; message.StopCompletion = true; return true; } }