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);
}