UNPKG

bc-code-intelligence-mcp

Version:

BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows

104 lines • 4.86 kB
/** * Test Enhanced Layer Service with Configuration System * Run with: npm run dev -- --test-enhanced-layers */ import { ConfigurationLoader } from './config-loader.js'; import { MultiContentLayerService } from '../services/multi-content-layer-service.js'; import { LayerSourceType } from '../types/index.js'; async function testEnhancedLayerService() { console.log('šŸ”§ Testing Enhanced Layer Service...'); try { // 1. Load configuration console.log('šŸ“‹ Loading configuration...'); const configLoader = new ConfigurationLoader(); const configResult = await configLoader.loadConfiguration(); if (configResult.validation_errors.length > 0) { console.error('āŒ Configuration validation errors:'); configResult.validation_errors.forEach(error => { console.error(` - ${error.field}: ${error.message}`); }); return; } console.log(`āœ… Configuration loaded with ${configResult.config.layers.length} layers`); // 2. Add a git layer for testing (if not in environment) if (!process.env['BCKB_COMPANY_KNOWLEDGE_URL']) { configResult.config.layers.push({ name: 'test-git-layer', priority: 50, source: { type: LayerSourceType.GIT, url: 'https://github.com/microsoft/vscode-docs', branch: 'main', subpath: 'docs' }, enabled: true }); console.log('šŸ“¦ Added test git layer for demonstration'); } // 3. Create enhanced layer service console.log('šŸ—ļø Creating enhanced layer service...'); const layerService = new MultiContentLayerService(); // 4. Initialize from configuration console.log('šŸ”„ Initializing layers from configuration...'); const initResults = await layerService.initializeFromConfiguration(configResult.config); console.log('\nšŸ“‹ Layer Initialization Results:'); console.log('─'.repeat(60)); let totalTopics = 0; let successfulLayers = 0; for (const [layerName, result] of initResults) { const status = result.success ? 'āœ…' : 'āŒ'; console.log(`${status} ${result.layer_name}:`); console.log(` Layer: ${layerName}`); console.log(` Topics: ${result.content_counts.topics || 0}`); console.log(` Specialists: ${result.content_counts.specialists || 0}`); console.log(` Load time: ${result.load_time_ms}ms`); if (result.error) { console.log(` Error: ${result.error}`); } if (result.success) { totalTopics += result.content_counts.topics || 0; successfulLayers++; } console.log(); } console.log('šŸ“Š Summary:'); console.log(` Successful layers: ${successfulLayers}/${initResults.size}`); console.log(` Total topics loaded: ${totalTopics}`); // 5. Test topic resolution if (successfulLayers > 0) { console.log('\nšŸ” Testing topic resolution...'); // Test getting a topic const testTopic = await layerService.resolveTopic('performance/sift-optimization'); if (testTopic) { console.log(`āœ… Resolved topic: ${testTopic.topic.id}`); console.log(` Source layer: ${testTopic.sourceLayer}`); console.log(` Is override: ${testTopic.isOverride}`); } else { console.log('ā„¹ļø No SIFT optimization topic found (expected for test setup)'); } // Test search functionality const searchResults = await layerService.searchTopics({ domain: 'performance', limit: 3 }); console.log(`\nšŸ”Ž Search results for performance domain (${searchResults.length}):`); searchResults.slice(0, 3).forEach((result, index) => { console.log(` ${index + 1}. ${result.id}: ${result.title}`); console.log(` Relevance: ${result.relevance_score?.toFixed(2) || 'N/A'}`); }); } console.log('\nāœ… Enhanced layer service test completed successfully!'); } catch (error) { console.error('āŒ Enhanced layer service test failed:', error instanceof Error ? error.message : String(error)); throw error; } } // Export for use in other tests export { testEnhancedLayerService }; // Run if called directly if (process.argv.includes('--test-enhanced-layers')) { testEnhancedLayerService().catch(console.error); } //# sourceMappingURL=test-enhanced-layer-service.js.map