import { createLogger } from '../utils/logger';
import { getContext, updateContext } from '../utils/contextStore';
import { getLlmClient } from '../llm/llmRouter';
import { reviewerAgentPrompt } from '../utils/promptTemplates';

const logger = createLogger('reviewerAgent');

export const runReviewerAgent = async () => {
  logger.start();
  const context = getContext();
  const { agents } = context;

  const llmClient = getLlmClient();
  const prompt = reviewerAgentPrompt
    .replace('{{code}}', JSON.stringify({ 
      backend: agents.backendDeveloper.output, 
      frontend: agents.frontendDeveloper.output 
    }, null, 2))
    .replace('{{docs}}', agents.documentationAgent.doc);

  const report = await llmClient.generate(prompt);

  updateContext({ agents: { ...context.agents, reviewerAgent: { output: report, completed: true } } });
  logger.stop();
  logger.success('Generated review.');
  return report;
};
