using EAIAdminDAL.DTO;
using GB5Shared.DTO.Framework.Login;
using System.Threading;
using System.Threading.Tasks;
namespace EAIAdminBLL.EAIExecution
{
/// GB5's first live AI-execution proxy (as opposed to Part 1's admin-config-push and
/// KMS's async-job-trigger patterns) — the Report Viewer's "AI Co-Analyst" now routes through
/// here instead of calling the downstream analyzer directly with no auth and no report
/// identity. See the approved plan's Phase 2 "Report-analysis side" section.
public interface IEAIExecutionBLL
{
Task AnalyzeReportAsync(
EAIAnalyzeReportRequestDTO dto, LoginDTO login, CancellationToken ct = default);
Task AnalyzeReportChatAsync(
EAIAnalyzeReportChatRequestDTO dto, LoginDTO login, CancellationToken ct = default);
/// The one generalized entry point every functional-module caller uses — resolves
/// (InitiativeCode, CapabilityCode) to a gbEAI agent slug via MEAIAGENTROUTE and executes
/// it, optionally with a file. See EAIExecuteCapabilityRequestDTO's doc comment.
Task ExecuteCapabilityAsync(
EAIExecuteCapabilityRequestDTO dto, LoginDTO login,
(string FileName, byte[] Bytes)? file = null, CancellationToken ct = default);
}
}