overmind-mcp
Version:
Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour
158 lines (141 loc) • 6.48 kB
JavaScript
/**
* ═══════════════════════════════════════════════════════════════════════════════
* TEST INSTALLATION OVERMIND-MCP
* ═══════════════════════════════════════════════════════════════════════════════
* Script de vérification de l'installation complète d'OverMind-MCP
*
* Usage:
* node scripts/test-installation.mjs
* ═══════════════════════════════════════════════════════════════════════════════
*/
import { execSync } from 'child_process';
import { existsSync } from 'fs';
import { join } from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const INSTALL_DIR = join(
process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH,
'.overmind'
);
function logSection(title) {
console.log('\n╔══════════════════════════════════════════════════════════════════╗');
console.log(`║ ${title.padEnd(64)} ║`);
console.log('╚══════════════════════════════════════════════════════════════════╝');
}
function runCommand(cmd) {
try {
return execSync(cmd, { stdio: 'pipe', encoding: 'utf8' });
} catch {
return null;
}
}
async function testInstallation() {
console.log('╔══════════════════════════════════════════════════════════════════╗');
console.log('║ ║');
console.log('║ 🧪 TEST INSTALLATION OVERMIND-MCP ║');
console.log('║ ║');
console.log('╚══════════════════════════════════════════════════════════════════╝');
console.log('');
const results = {
docker: false,
postgres: false,
postgresMCP: false,
configFiles: false,
connection: false
};
// Test 1: Docker
logSection('TEST 1: DOCKER');
const dockerVersion = runCommand('docker --version');
if (dockerVersion) {
console.log('✅ Docker installé:', dockerVersion.trim());
results.docker = true;
} else {
console.log('❌ Docker NON installé');
}
// Test 2: PostgreSQL Container
logSection('TEST 2: POSTGRESQL CONTAINER');
const postgresContainer = runCommand('docker ps --filter "name=postgres" --format "{{.Names}}"');
if (postgresContainer) {
console.log('✅ PostgreSQL container actif:', postgresContainer.trim());
results.postgres = true;
} else {
console.log('❌ PostgreSQL container NON actif');
}
// Test 3: overmind-postgres-mcp
logSection('TEST 3: OVERMIND-POSTGRES-MCP');
const postgresMCP = runCommand('npm list -g overmind-postgres-mcp');
if (postgresMCP && postgresMCP.includes('overmind-postgres-mcp')) {
console.log('✅ overmind-postgres-mcp installé');
results.postgresMCP = true;
} else {
console.log('❌ overmind-postgres-mcp NON installé');
}
// Test 4: Fichiers de configuration
logSection('TEST 4: FICHIERS DE CONFIGURATION');
const envFile = join(INSTALL_DIR, '.env');
const postgresEnvFile = join(INSTALL_DIR, '.env.postgres');
const mcpFile = join(INSTALL_DIR, '.mcp.json');
const filesExist = existsSync(envFile) && existsSync(postgresEnvFile) && existsSync(mcpFile);
if (filesExist) {
console.log('✅ Fichiers de configuration créés:');
console.log(' • .env');
console.log(' • .env.postgres');
console.log(' • .mcp.json');
results.configFiles = true;
} else {
console.log('❌ Fichiers de configuration manquants');
}
// Test 5: Connexion PostgreSQL
logSection('TEST 5: CONNEXION POSTGRESQL');
if (results.postgres) {
try {
const pgVersion = execSync('docker exec overmind-postgres-pgvector psql -U postgres -t -c "SELECT version();"');
if (pgVersion) {
console.log('✅ Connexion PostgreSQL réussie');
results.connection = true;
}
} catch {
console.log('❌ Connexion PostgreSQL échouée');
}
} else {
console.log('⏭️ Test ignoré (PostgreSQL non actif)');
}
// Résultat final
logSection('RÉSULTAT FINAL');
const totalTests = Object.keys(results).length;
const passedTests = Object.values(results).filter(Boolean).length;
console.log(`Tests passés: ${passedTests}/${totalTests}`);
console.log('');
if (passedTests === totalTests) {
console.log('🎉 INSTALLATION PARFAITE ! OverMind-MCP est prêt à l\'emploi.');
console.log('');
console.log('📋 Prochaines étapes:');
console.log(' 1. Créez votre premier agent: overmind create-agent');
console.log(' 2. Listez les agents: overmind list-agents');
console.log(' 3. Testez la mémoire: overmind memory-store "Test"');
} else {
console.log('⚠️ CERTAINS TESTS ONT ÉCHOUÉ. Vérifiez les erreurs ci-dessus.');
console.log('');
console.log('💡 Solutions possibles:');
if (!results.docker) {
console.log(' • Installez Docker: https://www.docker.com/products/docker-desktop/');
}
if (!results.postgres) {
console.log(' • Démarrez PostgreSQL: overmind-postgres up');
}
if (!results.postgresMCP) {
console.log(' • Installez le MCP: npm install -g overmind-postgres-mcp');
}
if (!results.configFiles) {
console.log(' • Lancez: npm install -g overmind-mcp');
}
}
}
// Run tests
testInstallation().catch(error => {
console.error('❌ ERREUR:', error.message);
process.exit(1);
});