using BotSharp.Abstraction.Functions.Models;
using BotSharp.Abstraction.Hooks;
namespace BotSharp.Abstraction.Routing;
public interface IRoutingHook : IHookBase
{
///
/// Routing instruction is received from Router
///
/// routing instruction
/// message
///
Task OnRoutingInstructionReceived(FunctionCallFromLlm instruct, RoleDialogModel message)
=> Task.CompletedTask;
Task OnRoutingInstructionRevised(FunctionCallFromLlm instruct, RoleDialogModel message)
=> Task.CompletedTask;
Task OnAgentEnqueued(string agentId, string preAgentId, string? reason = null)
=> Task.CompletedTask;
Task OnAgentDequeued(string agentId, string currentAgentId, string? reason = null)
=> Task.CompletedTask;
Task OnAgentReplaced(string fromAgentId, string toAgentId, string? reason = null)
=> Task.CompletedTask;
Task OnAgentQueueEmptied(string agentId, string? reason = null)
=> Task.CompletedTask;
}