import { callAI } from '@/services/ai' export interface SessionExtraction { sessionTitle: string summary: string objectives: { text: string; isNew: boolean }[] pendingTasks: { description: string; origin: string; priority: string }[] commitments: { description: string; responsible: string; dueDate: string; status: string }[] decisions: string[] completedTasks: string[] keyPoints: string[] } const SESSION_SYSTEM_PROMPT = `Eres un asistente de gestión de proyectos. Analizás transcripciones de reuniones y extraés información estructurada. Reglas: 1. Identificá el título de la sesión basado en el contenido y fecha 2. Extraé un resumen ejecutivo de 2-3 oraciones 3. Listá objetivos mencionados, marcando cuáles son NUEVOS vs existentes 4. Extraé tareas pendientes con su origen y prioridad (Alta/Media/Baja) 5. Identificá compromisos con responsable, fecha límite y estado 6. Listá decisiones tomadas durante la sesión 7. Detectá tareas completadas (si hay evidencia) 8. Incluí puntos clave, bloqueos o descubrimientos 9. No inventes información que no esté en la transcripción 10. Respondé SOLO con JSON válido Formato de respuesta JSON: { "sessionTitle": "Título descriptivo de la sesión", "summary": "Resumen ejecutivo de 2-3 oraciones", "objectives": [ { "text": "Descripción del objetivo", "isNew": true } ], "pendingTasks": [ { "description": "Descripción de la tarea", "origin": "Sesión o contexto", "priority": "Alta|Media|Baja" } ], "commitments": [ { "description": "Compromiso", "responsible": "Nombre", "dueDate": "YYYY-MM-DD", "status": "Pendiente|Cumplido|Vencido" } ], "decisions": ["Decisión 1", "Decisión 2"], "completedTasks": ["Tarea completada 1"], "keyPoints": ["Punto clave 1"] }` export async function analyzeSession( transcription: string, projectName: string, signal?: AbortSignal ): Promise { const userContent = `Proyecto: ${projectName}\n\nTranscripción:\n${transcription}` console.log(`[Alpha] Session analyze — project: ${projectName}, text: ${transcription.length} chars`) const content = await callAI( [ { role: 'system', content: SESSION_SYSTEM_PROMPT }, { role: 'user', content: userContent }, ], 0.3, 4096, signal, ) try { const jsonStr = content.replace(/```json\s*/gi, '').replace(/```\s*$/g, '').trim() const result: SessionExtraction = JSON.parse(jsonStr) console.log(`[Alpha] Session analysis complete — ${result.pendingTasks.length} tasks, ${result.decisions.length} decisions`) return result } catch (e) { console.error('[Alpha] Failed to parse session analysis:', content) throw new Error('No se pudo parsear el análisis de la sesión') } }