import { ApiRoute } from '../crawler/api';
import { PageAnalysis } from '../mcp/pageAnalyzer';
import { mcpAgentConfig } from '../config/mcp-ai.config';
// --------------------
// Load MCP AI Config
// --------------------
export function loadMCPConfig(projectName?: string) {
if (projectName && mcpAgentConfig.projectOverrides?.[projectName]) {
return { ...mcpAgentConfig, ...mcpAgentConfig.projectOverrides[projectName] };
}
return mcpAgentConfig;
}
// --------------------
// Suggest Hook Implementation
// --------------------
export async function suggestHookImplementation(
hookName: string,
route: ApiRoute,
aiAgent: 'none' | 'copilot' | 'openai' | 'custom' = 'none',
): Promise<string> {
if (!mcpAgentConfig.enableAI || aiAgent === 'none') {
return `// No AI suggestion for ${hookName} (${route.kind})`;
}
// Example: simulate AI suggestion based on agent
switch (aiAgent) {
case 'copilot':
return `// Copilot AI suggestion for ${hookName} (${route.kind})\nreturn await fetch("${route.path}");`;
case 'openai':
return `// OpenAI AI suggestion for ${hookName} (${route.kind})\nreturn await fetch("${route.path}");`;
case 'custom':
return `// Custom AI suggestion for ${hookName} (${route.kind})\nreturn await fetch("${route.path}");`;
default:
return `// Default AI suggestion for ${hookName} (${route.kind})\nreturn await fetch("${route.path}");`;
}
}
// --------------------
// Suggest Page Props / Render Mode
// --------------------
export async function suggestPageProps(
pagePath: string,
page: PageAnalysis,
aiAgent: 'none' | 'copilot' | 'openai' | 'custom' = 'none',
): Promise<string> {
if (!mcpAgentConfig.enableAI || aiAgent === 'none') {
return `// No AI suggestion for ${pagePath}`;
}
const boilerplate = `export async function getServerSideProps() { return { props: {} }; }`;
switch (aiAgent) {
case 'copilot':
return `// Copilot suggestion for ${pagePath}: ${page.suggestedRenderMode}\n${boilerplate}`;
case 'openai':
return `// OpenAI suggestion for ${pagePath}: ${page.suggestedRenderMode}\n${boilerplate}`;
case 'custom':
return `// Custom suggestion for ${pagePath}: ${page.suggestedRenderMode}\n${boilerplate}`;
default:
return `// Default suggestion for ${pagePath}: ${page.suggestedRenderMode}\n${boilerplate}`;
}
}