vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
59 lines (58 loc) • 2.71 kB
JavaScript
import logger from '../../../logger.js';
import { ImportResolverManager } from './ImportResolverManager.js';
import { ImportResolverFactory } from '../importResolvers/importResolverFactory.js';
import path from 'path';
let resolverFactory = null;
export function initializeImportResolver(config) {
const manager = ImportResolverManager.getInstance();
if (resolverFactory) {
resolverFactory.dispose();
resolverFactory = null;
}
if (config.importResolver?.enabled) {
const importResolverConfig = {
enabled: true,
useCache: config.importResolver.useCache !== false,
cacheSize: config.importResolver.cacheSize || 10000,
extensions: config.importResolver.extensions,
expandSecurityBoundary: true,
enhanceImports: config.importResolver.enhanceImports === true
};
manager.initialize(importResolverConfig);
resolverFactory = new ImportResolverFactory({
allowedDir: config.allowedMappingDirectory,
outputDir: config.output?.outputDir || path.join(process.env.VIBE_CODER_OUTPUT_DIR || '.', 'code-map-generator'),
maxDepth: config.importResolver?.importMaxDepth || 3,
tsConfig: config.importResolver?.tsConfig,
pythonPath: config.importResolver?.pythonPath,
pythonVersion: config.importResolver?.pythonVersion,
venvPath: config.importResolver?.venvPath,
clangdPath: config.importResolver?.clangdPath,
compileFlags: config.importResolver?.compileFlags,
includePaths: config.importResolver?.includePaths,
semgrepPatterns: config.importResolver?.semgrepPatterns,
semgrepTimeout: config.importResolver?.semgrepTimeout,
semgrepMaxMemory: config.importResolver?.semgrepMaxMemory,
disableSemgrepFallback: config.importResolver?.disableSemgrepFallback
});
logger.info({
enabled: importResolverConfig.enabled,
expandSecurityBoundary: importResolverConfig.enabled ? true : false,
enhanceImports: importResolverConfig.enhanceImports
}, 'Import resolver initialized with configuration');
}
else {
manager.initialize({ enabled: false });
logger.info('Import resolver disabled in configuration');
}
}
export function disposeImportResolver() {
if (resolverFactory) {
resolverFactory.dispose();
resolverFactory = null;
logger.info('Import resolver factory disposed');
}
const manager = ImportResolverManager.getInstance();
manager.clearCache();
logger.info('Import resolver manager cache cleared');
}