using AxCopilot.Models; namespace AxCopilot.Services.Agent; internal interface IToolExecutionCoordinator { Task TryPrefetchReadOnlyToolAsync( ContentBlock block, IReadOnlyCollection tools, AgentContext context, CancellationToken ct); Task> SendWithToolsWithRecoveryAsync( List messages, IReadOnlyCollection tools, CancellationToken ct, string phaseLabel, AgentLoopService.RunState? runState = null, bool forceToolCall = false, Func>? prefetchToolCallAsync = null, Func? onStreamEventAsync = null); }