namespace BotSharp.Abstraction.Routing.Models; public class RoutingContext { private Stack _stack { get; set; } = new Stack(); /// /// Intent name /// public string IntentName { get; set; } public string OriginAgentId => _stack.Last(); public string CurrentAgentId => _stack.Peek(); public void Push(string agentId) { if (_stack.Count == 0 || _stack.Peek() != agentId) { _stack.Push(agentId); } } /// /// Pop current agent /// /// Return next agent public string Pop() { if (_stack.Count > 1) { _stack.Pop(); } return _stack.Peek(); } }