using Nexus.Api.Models; namespace Nexus.Api.Services; public enum QueueDeleteOutcome { Deleted, NotFound, GatewayError, TaskNotFound, InvalidTaskId, Ignored } public enum QueuePriorityOutcome { Updated, Ignored, TaskNotFound, InvalidTaskId } public sealed record QueueDeleteResult(QueueDeleteOutcome Outcome); public sealed record QueuePriorityResult(QueuePriorityOutcome Outcome, string? NewPriority = null); public interface IDashboardService { Task GetStatusAsync(); Task> GetAgentsAsync(); Task> GetOperationsAsync(int limit, string? agentFilter); Task SendChatAsync(string agentId, string message); Task> GetMessagesAsync(string? sessionKey, int limit, int offset); Task> GetQueueAsync(CancellationToken ct); Task DeleteQueueItemAsync(string id, string? source, CancellationToken ct); Task CycleQueuePriorityAsync(string id, CancellationToken ct); Task GetAgentModelAsync(string agentId); Task SetAgentModelAsync(string agentId, string model); Task> GetAgentActivityAsync(string agentId, int limit); List GetAvailableModels(); }