vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
86 lines (85 loc) • 3.14 kB
JavaScript
import { performance } from 'perf_hooks';
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import { v4 as uuidv4 } from 'uuid';
import { executeCodeMapGeneration } from './index.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const args = process.argv.slice(2);
const targetDir = args[0] || __dirname;
const options = {
incremental: args.includes('--incremental'),
noIncremental: args.includes('--no-incremental'),
splitOutput: args.includes('--split-output'),
outputFormat: args.find(arg => arg.startsWith('--output-format='))?.split('=')[1] || 'markdown'
};
const context = {
sessionId: 'test-session',
transportType: 'stdio'
};
const jobId = uuidv4();
const params = {
ignored_files_patterns: [
'node_modules',
'.git',
'dist',
'build',
'out',
'coverage',
'vendor'
],
output_format: options.outputFormat
};
function formatMemorySize(bytes) {
if (bytes < 1024)
return bytes + ' bytes';
else if (bytes < 1048576)
return (bytes / 1024).toFixed(2) + ' KB';
else if (bytes < 1073741824)
return (bytes / 1048576).toFixed(2) + ' MB';
else
return (bytes / 1073741824).toFixed(2) + ' GB';
}
function getMemoryUsage() {
const memoryUsage = process.memoryUsage();
return {
rss: formatMemorySize(memoryUsage.rss),
heapTotal: formatMemorySize(memoryUsage.heapTotal),
heapUsed: formatMemorySize(memoryUsage.heapUsed),
external: formatMemorySize(memoryUsage.external),
arrayBuffers: formatMemorySize(memoryUsage.arrayBuffers || 0)
};
}
async function runTest() {
console.log('=== Code-Map Generator Performance Test ===');
console.log(`Target directory: ${path.resolve(targetDir)}`);
console.log(`Incremental processing: ${options.incremental && !options.noIncremental ? 'enabled' : 'disabled'}`);
console.log(`Split output: ${options.splitOutput ? 'enabled' : 'disabled'}`);
console.log(`Output format: ${options.outputFormat}`);
console.log('Initial memory usage:', getMemoryUsage());
const startTime = performance.now();
try {
const result = await executeCodeMapGeneration(params, {}, context, jobId);
const endTime = performance.now();
const executionTime = (endTime - startTime) / 1000;
console.log('\n=== Results ===');
console.log(`Total execution time: ${executionTime.toFixed(2)} seconds`);
console.log('Final memory usage:', getMemoryUsage());
if (result.isError) {
console.error('Error:', result.content[0].text);
}
else {
console.log('Success!');
const resultText = result.content[0].text;
const fileCountMatch = resultText.match(/Processed (\d+) files/);
if (fileCountMatch) {
console.log(`Files processed: ${fileCountMatch[1]}`);
}
}
}
catch (error) {
console.error('Test failed with error:', error);
}
}
runTest().catch(console.error);