test-documentation-generator.jsā¢3.23 kB
#!/usr/bin/env node
import { SemanticEngine } from '../dist/engines/semantic-engine.js';
import { PatternEngine } from '../dist/engines/pattern-engine.js';
import { SQLiteDatabase } from '../dist/storage/sqlite-db.js';
import { SemanticVectorDB } from '../dist/storage/vector-db.js';
import { CoreAnalysisTools } from '../dist/mcp-server/tools/core-analysis.js';
import { writeFileSync } from 'fs';
async function testDocumentationGenerator() {
console.log('š Testing Intelligent Documentation Generator...\n');
try {
// Initialize components
const database = new SQLiteDatabase('./test-docs.db');
const vectorDB = new SemanticVectorDB();
const semanticEngine = new SemanticEngine(database, vectorDB);
const patternEngine = new PatternEngine(database);
const coreTools = new CoreAnalysisTools(semanticEngine, patternEngine, database);
console.log('ā
Initialized all components');
// Test documentation generation
console.log('\nš Generating documentation for ./src...');
const result = await coreTools.generateDocumentation({
path: './src',
format: 'markdown',
includeExamples: true,
includeArchitecture: true
});
console.log('\nš Documentation Generation Results:');
console.log(` Success: Generated documentation`);
console.log(` Format: ${result.metadata.format}`);
console.log(` Generated at: ${result.metadata.generatedAt.toLocaleString()}`);
console.log(` Sections: ${result.metadata.sections.join(', ')}`);
console.log(` Length: ${result.documentation.length} characters`);
// Save documentation to file
const filename = `docs/GENERATED_DOCS_${Date.now()}.md`;
writeFileSync(filename, result.documentation);
console.log(`\nš¾ Documentation saved to: ${filename}`);
// Show preview of generated content
console.log('\nš Documentation Preview (first 500 characters):');
console.log('ā'.repeat(60));
console.log(result.documentation.substring(0, 500) + '...');
console.log('ā'.repeat(60));
// Test different formats
console.log('\nš Testing different formats...');
// HTML format
const htmlResult = await coreTools.generateDocumentation({
path: './src',
format: 'html',
includeExamples: false
});
console.log(` HTML format: ${htmlResult.documentation.length} characters`);
// JSON format
const jsonResult = await coreTools.generateDocumentation({
path: './src',
format: 'json',
includeArchitecture: false
});
console.log(` JSON format: ${jsonResult.documentation.length} characters`);
console.log('\nš Documentation generator working successfully!');
console.log('\n⨠Key Features Demonstrated:');
console.log(' ā
Intelligent codebase analysis');
console.log(' ā
Pattern-based documentation');
console.log(' ā
Multiple output formats');
console.log(' ā
Configurable sections');
console.log(' ā
Automated insights generation');
} catch (error) {
console.error('ā Test failed:', error);
console.error('Stack:', error.stack);
}
}
testDocumentationGenerator();