UNPKG

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
#!/usr/bin/env node /** * 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;