UNPKG

@moikas/code-audit-mcp

Version:

AI-powered code auditing via MCP using local Ollama models for security, performance, and quality analysis

183 lines 4.57 kB
/** * Configuration utility for Code Audit MCP * Provides type-safe configuration management with global and project-specific overrides */ /** * Custom error class for configuration issues */ export declare class ConfigError extends Error { configPath?: string; constructor(message: string, configPath?: string); } /** * Configuration schema for validation */ export interface ConfigSchema { ollama: { host: string; timeout: number; models: { primary: string; fallback: string[]; }; }; audit: { rules: { security: boolean; performance: boolean; quality: boolean; documentation: boolean; testing: boolean; architecture: boolean; completeness: boolean; }; output: { format: 'json' | 'markdown' | 'html'; includeMetrics: boolean; verbosity: 'minimal' | 'normal' | 'detailed'; }; filters: { excludePatterns: string[]; includePatterns: string[]; maxFileSize: number; }; }; server: { port: number; transport: 'stdio' | 'http'; logLevel: 'error' | 'warn' | 'info' | 'debug'; shutdown?: { gracefulTimeout: number; forceTimeout: number; }; }; updates: { checkInterval: number; autoUpdate: boolean; prerelease: boolean; }; telemetry: { enabled: boolean; anonymousId: string; }; } /** * Configuration manager class */ declare class ConfigManager { private globalConfig; private projectConfigPath; private projectConfig; private configVersion; constructor(); /** * Get configuration schema for validation */ private getConfigSchema; /** * Initialize global configuration directory and files */ private initializeGlobalConfig; /** * Generate anonymous telemetry ID */ private generateAnonymousId; /** * Detect project-specific configuration */ private detectProjectConfig; /** * Get merged configuration (global + project overrides) */ getConfig(): ConfigSchema; /** * Get specific configuration value with support for nested keys */ get<T>(key: string): T | undefined; /** * Set configuration value with support for nested keys */ set(key: string, value: unknown, isGlobal?: boolean): void; /** * Reset configuration to defaults */ reset(confirmCallback?: () => Promise<boolean>): Promise<boolean>; /** * Get configuration file paths */ getConfigPaths(): { global: string; project?: string; }; /** * Validate configuration value */ private validateConfigValue; /** * Merge configurations with deep merge */ private mergeConfigs; /** * Get nested configuration value */ private getNestedValue; /** * Set nested configuration value */ private setNestedValue; /** * Migrate configuration to newer version if needed */ migrateConfig(): Promise<boolean>; /** * Export configuration for backup */ exportConfig(): { global: ConfigSchema; project?: Partial<ConfigSchema>; }; /** * Import configuration from backup */ importConfig(config: { global: ConfigSchema; project?: Partial<ConfigSchema>; }): void; /** * Check if configuration is valid */ validateConfig(): { isValid: boolean; errors: string[]; }; } /** * Get configuration manager instance */ export declare function getConfigManager(): ConfigManager; /** * Get merged configuration */ export declare function getConfig(): Promise<ConfigSchema>; /** * Get specific configuration value */ export declare function getConfigValue<T>(key: string): Promise<T | undefined>; /** * Set configuration value */ export declare function setConfigValue(key: string, value: unknown, isGlobal?: boolean): Promise<void>; /** * Reset configuration to defaults */ export declare function resetConfig(confirmCallback?: () => Promise<boolean>): Promise<boolean>; /** * Get default configuration */ export declare function getDefaultConfig(): ConfigSchema; /** * Check if project has local configuration */ export declare function hasProjectConfig(): boolean; export {}; //# sourceMappingURL=config.d.ts.map