Ajoute la base organisable par carnet (schéma, champs partagés, valeurs par note) avec activation guidée, tableau éditable, kanban et suppression de colonnes. Corrige le multiselect en vue tableau et enrichit sidebar, grille et i18n FR/EN. Inclut aussi les améliorations flashcards SM-2, l'audit consentement IA et la robustesse du serveur MCP (config, validation, rate-limit, métriques). Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Configuration Validation Script
|
|
* Run with: npm run validate
|
|
*/
|
|
|
|
import { validateConfig, getPublicConfig, printConfig } from '../config.js';
|
|
|
|
console.log('═══════════════════════════════════════════════════');
|
|
console.log(' Memento MCP Server - Configuration Validation');
|
|
console.log('═══════════════════════════════════════════════════\n');
|
|
|
|
const errors = validateConfig();
|
|
|
|
if (errors.length === 0) {
|
|
console.log('✅ Configuration is valid!\n');
|
|
console.log('Public config:');
|
|
console.log(JSON.stringify(getPublicConfig(), null, 2));
|
|
process.exit(0);
|
|
}
|
|
|
|
const critical = errors.filter((e) => e.critical);
|
|
const warnings = errors.filter((e) => !e.critical);
|
|
|
|
if (critical.length > 0) {
|
|
console.error('❌ CRITICAL ERRORS:\n');
|
|
critical.forEach((e) => {
|
|
console.error(` ${e.key}: ${e.message}`);
|
|
});
|
|
console.error('');
|
|
}
|
|
|
|
if (warnings.length > 0) {
|
|
console.warn('⚠️ WARNINGS:\n');
|
|
warnings.forEach((e) => {
|
|
console.warn(` ${e.key}: ${e.message}`);
|
|
});
|
|
console.warn('');
|
|
}
|
|
|
|
if (critical.length > 0) {
|
|
process.exit(1);
|
|
} else {
|
|
console.log('⚠️ Configuration has warnings but is usable.');
|
|
process.exit(0);
|
|
}
|