UNPKG

aios-core

Version:

Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework

98 lines (84 loc) 4.17 kB
/** * 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); }