Skip to main content
Glama

In Memoria

test-codebase-analysis.js•1.78 kB
#!/usr/bin/env node import { SemanticAnalyzer } from './rust-core/index.js'; async function testCodebaseAnalysis() { console.log('šŸ” Testing full codebase analysis...\n'); const analyzer = new SemanticAnalyzer(); try { console.log('šŸ“ Analyzing src/ directory...'); const result = await analyzer.analyzeCodebase('./src'); console.log('\nšŸ“Š Analysis Results:'); console.log(` Languages detected: ${result.languages.join(', ')}`); console.log(` Frameworks detected: ${result.frameworks.join(', ')}`); console.log(` Total concepts found: ${result.concepts.length}`); console.log('\nšŸ“ˆ Complexity Metrics:'); console.log(` Cyclomatic complexity: ${result.complexity.cyclomatic.toFixed(2)}`); console.log(` Cognitive complexity: ${result.complexity.cognitive.toFixed(2)}`); console.log(` Total lines: ${result.complexity.lines}`); console.log('\nšŸŽÆ Concept Breakdown:'); const conceptTypes = {}; result.concepts.forEach(concept => { conceptTypes[concept.conceptType] = (conceptTypes[concept.conceptType] || 0) + 1; }); Object.entries(conceptTypes).forEach(([type, count]) => { console.log(` ${type}: ${count}`); }); console.log('\nšŸ“ Sample concepts (first 10):'); result.concepts.slice(0, 10).forEach((concept, i) => { console.log(` [${i+1}] ${concept.name} (${concept.conceptType}) in ${concept.filePath.split('/').pop()}`); }); if (result.concepts.length > 10) { console.log(` ... and ${result.concepts.length - 10} more concepts`); } } catch (error) { console.error(`āŒ Codebase analysis failed: ${error.message}`); console.error('Stack:', error.stack); } } testCodebaseAnalysis();

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pi22by7/In-Memoria'

If you have feedback or need assistance with the MCP directory API, please join our Discord server