using BotSharp.Abstraction.Routing.Models; namespace BotSharp.Abstraction.Routing; public interface IRoutingService { Agent Router { get; } /// /// Get routable agents /// /// router's profile /// RoutableAgent[] GetRoutableAgents(List profiles); RoutingRule[] GetRulesByName(string name); RoutingRule[] GetRulesByAgentId(string id); List GetHandlers(); void ResetRecursiveCounter(); Task InvokeAgent(string agentId, List dialogs); Task InvokeFunction(string name, RoleDialogModel message); Task InstructLoop(RoleDialogModel message); /// /// Talk to a specific Agent directly, bypassing the Router /// /// /// /// Task InstructDirect(Agent agent, RoleDialogModel message); }