using GB5Shared.DTO.Framework.Login;
using GB5Shared.ExternalAI;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace EAIAdminBLL.Sync
{
///
/// Calls one of gbEAI's live agent-execution routes (POST /<slug>) — as opposed to
/// IEAISyncClient, which only pushes/pulls admin config. Built on the same shared
/// IAIEngineSyncClient transport EAISyncClient uses, reusing EAIAdmin's existing
/// "EAIAdmin:AIExtract" options (no third named-options section needed — see the approved
/// plan's Phase 2 "Report-analysis side" note).
///
public interface IEAIExecutionSyncClient
{
/// file is required for gbEAI agents with requires_file=True (e.g.
/// document_identifier, parse_validate) and ignored otherwise.
Task ExecuteAgentAsync(
string agentSlug,
IReadOnlyDictionary formFields,
LoginDTO login,
(string FileName, byte[] Bytes)? file = null,
CancellationToken ct = default);
}
}