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); } }