import type { Reports } from "./contracts"; /** Keep the original report-based conversation suggestions in the debug sidebar. */ export function reportSuggestions(reports: Reports) { const labels = reports.entries .map((entry) => entry.sourceScheduleLabel?.trim()) .filter((label): label is string => !!label); const first = labels[0]; if (!first) { return []; } const second = labels[1] ?? first; const third = labels[2] ?? first; const templates: [RegExp, (label: string) => string][] = [ [ /riesgo|mortalidad|porcentaje|kpi/i, (label) => `Dame un resumen ejecutivo de los riesgos operativos y KPIs del reporte de ${label}.`, ], [/diari[oa]|informe/i, (label) => `Cuéntame los puntos clave del informe diario más reciente (${label}).`], [/métrica|metrica|medici[oó]n/i, (label) => `Compara las métricas de la última semana del reporte ${label}.`], [/producto|servicio/i, (label) => `¿Qué hay de nuevo en productos y servicios según el reporte ${label}?`], [ /supply|cadena|log[ií]stica|env[ií]o|chile|latin/i, (label) => `¿Hay novedades en la cadena de suministro o logística en el reporte ${label}?`, ], [ /synapse|ejecuci[oó]n|calendario/i, (label) => `¿Qué ejecuciones del calendario Synapse TI están reportadas? (${label}).`, ], [/podcast|briefing|mañana|matutino|morning/i, (label) => `Lee el podcast briefing matutino de hoy (${label}).`], [ /financier|finanza|costo|presupuesto|venta/i, (label) => `Análisis financiero: costos, presupuesto y ventas del reporte ${label}.`, ], [ /ejecutivo|ceo|reuni[oó]n|semanal/i, (label) => `Puntos de agenda para la reunión ejecutiva semanal según el reporte ${label}.`, ], ]; const contextual = templates.flatMap(([pattern, text]) => { const label = labels.find((label) => pattern.test(label)); return label ? [text(label)] : []; }); return [ ...contextual, `¿Qué highlights hay en el reporte más reciente «${first}»?`, `Resume los 3 hallazgos principales de los reportes de hoy (${String(reports.count)} disponibles).`, ...(reports.count >= 2 ? [`Compara ${first} vs ${second} y dime cuál tiene mayor prioridad.`] : []), ...(reports.count >= 3 ? [`Plan de acción sugerido con base en ${first}, ${second} y ${third}.`] : []), ].slice(0, 4); }