mcp-prompt-optimizer
Version:
Professional cloud-based MCP server for AI-powered prompt optimization with intelligent context detection, Bayesian optimization, AG-UI real-time optimization, template auto-save, optimization insights, personal model configuration via WebUI, team collabo
103 lines (86 loc) โข 4.66 kB
JavaScript
/**
* Diagnostic Command for MCP Prompt Optimizer
* Enhanced with comprehensive network analysis and development mode support
*/
const CloudApiKeyManager = require('./api-key-manager');
const packageJson = require('../package.json');
async function runDiagnostic() {
const developmentMode = process.env.NODE_ENV === 'development' || process.env.OPTIMIZER_DEV_MODE === 'true';
const modeText = developmentMode ? ' (Development Mode)' : '';
console.log(`๐ฌ MCP Prompt Optimizer v${packageJson.version} - Comprehensive Diagnostic${modeText}\n`);
try {
const apiKey = process.env.OPTIMIZER_API_KEY;
if (!apiKey) {
console.log('โ ๏ธ No API key found, running partial diagnostic');
console.log('Set OPTIMIZER_API_KEY for complete analysis\n');
}
const manager = new CloudApiKeyManager(apiKey || 'dummy-key-for-diagnostic', {
developmentMode
});
const diagnostic = await manager.getDiagnosticInfo();
console.log('๐ Diagnostic Information:');
console.log('=' .repeat(60));
// Basic system information
console.log(`๐ API Key: ${diagnostic.apiKey}`);
console.log(`๐ Backend URL: ${diagnostic.backendUrl}`);
console.log(`๐พ Cache File: ${diagnostic.cacheFile}`);
console.log(`๐ฅ Health File: ${diagnostic.healthFile}`);
console.log(`โฐ Cache Expiry: ${diagnostic.cacheExpiry / 1000 / 60} minutes`);
console.log(`โฐ Fallback Cache Expiry: ${diagnostic.fallbackCacheExpiry / 1000 / 60 / 60} hours`);
console.log(`๐ฑ Offline Mode: ${diagnostic.offlineMode}`);
console.log(`๐งช Development Mode: ${diagnostic.developmentMode}`);
console.log(`๐ Max Retries: ${diagnostic.maxRetries}`);
console.log(`โฑ๏ธ Request Timeout: ${diagnostic.requestTimeout}ms`);
console.log(`๐ง Node Environment: ${diagnostic.nodeEnv || 'not set'}`);
console.log(`๐ฆ Package Version: ${diagnostic.packageVersion}`);
// Network health section
console.log('\n๐ Network Health:');
const health = diagnostic.networkHealth;
console.log(` ๐ Consecutive Failures: ${health.consecutiveFailures}`);
console.log(` โ
Last Successful: ${health.lastSuccessful ? new Date(health.lastSuccessful).toLocaleString() : 'Never'}`);
console.log(` โก Avg Response Time: ${health.avgResponseTime ? health.avgResponseTime + 'ms' : 'Unknown'}`);
console.log(` โ Last Error Type: ${health.lastErrorType || 'None'}`);
// Cache status
console.log('\n๐ Cache Status:');
if (diagnostic.cache.error) {
console.log(` โ Error: ${diagnostic.cache.error}`);
} else {
console.log(` ๐ Exists: ${diagnostic.cache.exists}`);
console.log(` โณ Normal Cache Expired: ${diagnostic.cache.expired}`);
console.log(` ๐ Fallback Cache Expired: ${diagnostic.cache.fallbackExpired}`);
console.log(` ๐
Age: ${diagnostic.cache.age} minutes`);
if (diagnostic.cache.backendUrl) {
console.log(` ๐ Cached Backend: ${diagnostic.cache.backendUrl}`);
}
if (diagnostic.cache.packageVersion) {
console.log(` ๐ฆ Cached Version: ${diagnostic.cache.packageVersion}`);
}
}
// API key format check
console.log('\n๐ API Key Format Check:');
if (diagnostic.keyFormat.valid) {
console.log(` โ
Valid: ${diagnostic.keyFormat.keyType}`);
} else {
console.log(` โ Invalid: ${diagnostic.keyFormat.error}`);
}
// Backend connectivity analysis
console.log('\n๐ Backend Connectivity Analysis:');
const connectivity = diagnostic.backendConnectivity;
if (connectivity.status === 'success') {
console.log(' โ
Connection successful');
if (connectivity.responseTime) {
console.log(` โก Response time: ${connectivity.responseTime}ms`);
}
} else {
console.log(` โ Connection failed: ${connectivity.error}`);
}
} catch (error) {
console.error('โ Diagnostic failed:', error.message);
process.exit(1);
}
}
if (require.main === module) {
runDiagnostic();
}
module.exports = runDiagnostic;