using Fleet.Core; using Monitor.Protocol; namespace Monitor.Backend.Application; /// /// Application 通往 Agent 连接的端口(由 Gateway 实现):下发状态变化、发起按需测试。 /// public interface IAgentGateway { IReadOnlyCollection OnlineAgents { get; } bool IsOnline(NodeId agent); /// 某个 Agent 的期望状态变了:Gateway 重新计算并推送。 void NotifyTaskSetChanged(NodeId agent); void NotifyAllTaskSetsChanged(); /// 失败时错误码为 probe_offline、test_busy、agent_offline 等。 ValueTask> RunTestAsync(NodeId agent, TestRunParams run, CancellationToken ct); ValueTask CancelTestAsync(NodeId agent, TestId test, CancellationToken ct); /// 让 Agent 断开某个 Probe 的会话。返回 Agent 是否真的有这个会话。 ValueTask> DisconnectProbeAsync(NodeId agent, ProbeId probe, CancellationToken ct); ValueTask DisconnectAsync(NodeId agent, string reason, CancellationToken ct); }