aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
98 lines (84 loc) • 4.17 kB
JavaScript
/**
* Infrastructure Module Validation Script
* Validates that the module loads and reports available exports
*/
console.log('Starting infrastructure module validation...\n');
try {
// Test 1: Load main module
console.log('Test 1: Loading infrastructure module...');
const infra = require('../index');
const exportCount = Object.keys(infra).length;
console.log(' ✓ Module loaded successfully');
console.log(` ✓ ${exportCount} exports available\n`);
// Test 2: Verify key exports exist (these are core and should always load)
console.log('Test 2: Verifying core exports...');
const coreExports = [
'GitWrapper',
'getPMAdapter',
'TemplateEngine',
'resolveTool',
'SecurityChecker',
'TestGenerator',
];
let coreLoaded = 0;
const coreMissing = [];
for (const exp of coreExports) {
if (infra[exp]) {
console.log(` ✓ ${exp} exported`);
coreLoaded++;
} else {
console.log(` ⚠ ${exp} not available (optional dependency missing)`);
coreMissing.push(exp);
}
}
// Test 3: List all available exports by category
console.log('\nTest 3: Listing available exports by category...');
const categories = {
'Git Integration': ['GitWrapper', 'GitConfigDetector', 'BranchManager', 'CommitMessageGenerator'],
'PM Integration': ['PMAdapter', 'getPMAdapter', 'isPMToolConfigured', 'clearPMAdapterCache', 'StatusMapper', 'ClickUpHelpers'],
'Template & Generation': ['TemplateEngine', 'ComponentGenerator', 'ComponentMetadata', 'ComponentSearch', 'BatchCreator'],
'Validation': ['AiosValidator', 'TemplateValidator', 'validateOutputPattern', 'SpotCheckValidator'],
'Analysis': ['DependencyAnalyzer', 'DependencyImpactAnalyzer', 'FrameworkAnalyzer', 'CapabilityAnalyzer', 'SecurityChecker', 'ModificationRiskAssessment'],
'Testing': ['CoverageAnalyzer', 'TestGenerator', 'TestUtilities', 'TestUtilitiesFast', 'TestQualityAssessment', 'SandboxTester'],
'Performance': ['PerformanceAnalyzer', 'PerformanceOptimizer', 'PerformanceTracker', 'PerformanceAndErrorResolver'],
'Quality': ['CodeQualityImprover', 'RefactoringSuggester', 'ImprovementEngine', 'ImprovementValidator', 'ModificationValidator'],
'Utilities': ['ConflictResolver', 'DocumentationSynchronizer', 'resolveTool', 'UsageAnalytics', 'loadProjectStatus', 'formatStatusDisplay', 'VisualImpactGenerator', 'AtomicLayerClassifier'],
'System': ['BackupManager', 'TransactionManager', 'RepositoryDetector', 'ApprovalWorkflow'],
'Config': ['ConfigCache', 'ConfigLoader', 'OutputFormatter', 'YamlValidator'],
};
let totalAvailable = 0;
let totalExpected = 0;
for (const [category, exports] of Object.entries(categories)) {
const available = exports.filter(e => infra[e]);
totalAvailable += available.length;
totalExpected += exports.length;
console.log(` ${category}: ${available.length}/${exports.length} available`);
}
// Summary
console.log('\n========================================');
console.log('VALIDATION SUMMARY');
console.log('========================================');
console.log(`Total exports: ${exportCount}`);
console.log(`Core exports: ${coreLoaded}/${coreExports.length}`);
console.log(`All exports: ${totalAvailable}/${totalExpected} available`);
// Determine pass/fail
// Pass if module loads and at least 50% of exports are available
const passThreshold = 0.5;
const passRate = totalAvailable / totalExpected;
if (passRate >= passThreshold) {
console.log(`\n✅ VALIDATION PASSED (${Math.round(passRate * 100)}% available)`);
console.log('========================================\n');
process.exit(0);
} else {
console.log(`\n⚠️ VALIDATION WARNING (${Math.round(passRate * 100)}% available)`);
console.log('Some dependencies may need to be installed.');
console.log('========================================\n');
process.exit(0); // Still exit 0 - module structure is correct
}
} catch (error) {
console.error('\n❌ Validation failed:', error.message);
if (error.stack) {
console.error(error.stack.split('\n').slice(0, 10).join('\n'));
}
process.exit(1);
}