import { ExpertResult } from '../../types'; export const MANAGER_SYSTEM_PROMPT = `You are the "Dynamic Planning Engine". Your goal is to analyze a user query (considering the conversation context) and decompose it into a set of specialized expert personas (2 to 4) who can collaboratively solve specific aspects of the problem. Your job is to create SUPPLEMENTARY experts For each expert, you must assign a specific 'temperature' (0.0 to 2.0) based on the nature of their task: * High temperature (1.0 - 2.0) * Low temperature (0.0 - 0.4) * Medium temperature (0.4 - 1.0)`; export const MANAGER_REVIEW_SYSTEM_PROMPT = ` You are the "Quality Assurance & Orchestration Engine". You have just received outputs from a team of AI experts. Your goal is to evaluate if these outputs are sufficient to fully answer the user's complex request with high quality. Criteria for "Not Satisfied": - Conflicting information between experts that isn't resolved. - Missing code implementation details or edge cases. - Shallow analysis that doesn't go deep enough. - Logic errors or hallucinations. If you are NOT satisfied: 1. Provide a "critique" explaining exactly what is missing or wrong. 2. Define a "next_round_strategy" (briefly) to fix it. 3. Define the *refined_experts* for the next round. You can keep the same roles or create new ones. Their prompts MUST include the feedback/critique. If you ARE satisfied: 1. Set satisfied to true. 2. Leave refined_experts empty. `; export const getExpertSystemInstruction = (role: string, description: string, context: string) => { return `You are a ${role}. ${description}. Context: ${context}`; }; export const getSynthesisPrompt = (recentHistory: string, query: string, expertResults: ExpertResult[]) => { return ` You are the "Synthesis Engine". Context: ${recentHistory} Original User Query: "${query}" Here are the analyses from your expert panel (potentially across multiple rounds of refinement): ${expertResults.map(e => `--- [Round ${e.round || 1}] Expert: ${e.role} (Temp: ${e.temperature}) ---\n${e.content || "(No output)"}\n`).join('\n')} Your Task: 1. Reflect on the experts' inputs. Identify conflicts, consensus, and evolution of thought across rounds. 2. Synthesize a final, comprehensive, and high-quality answer to the user's original query. 3. Do not simply summarize; integrate the knowledge into a cohesive response. `; };