UNPKG

mira-consciousness

Version:

Memory & Intelligence Retention Archive - Preserving The Spark

241 lines 7.32 kB
/** * Analyzer Configuration System * Provides configurable rules and thresholds for all analyzers */ export interface AnalyzerConfig { enabled: boolean; severity: { critical: number; high: number; medium: number; low: number; }; security?: SecurityAnalyzerConfig; performance?: PerformanceAnalyzerConfig; documentation?: DocumentationAnalyzerConfig; codeQuality?: CodeQualityAnalyzerConfig; crossPlatform?: CrossPlatformAnalyzerConfig; unusedCode?: UnusedCodeAnalyzerConfig; } export interface SecurityAnalyzerConfig { enabled: boolean; rules: { hardcodedSecrets: { enabled: boolean; severity: 'critical' | 'high' | 'medium' | 'low'; patterns?: RegExp[]; excludePatterns?: RegExp[]; }; vulnerableDependencies: { enabled: boolean; severity: 'critical' | 'high' | 'medium' | 'low'; checkDevDependencies: boolean; auditLevel: 'low' | 'moderate' | 'high' | 'critical'; }; owaspCompliance: { enabled: boolean; minComplianceScore: number; categories: string[]; }; entropyAnalysis: { enabled: boolean; minEntropy: number; fileExtensions: string[]; excludePaths: string[]; }; }; thresholds: { criticalIssuesMax: number; highIssuesMax: number; minSecurityScore: number; entropyThreshold: number; }; } export interface PerformanceAnalyzerConfig { enabled: boolean; rules: { bundleSize: { enabled: boolean; maxSizeKB: number; warnSizeKB: number; checkSourceMaps: boolean; }; complexityAnalysis: { enabled: boolean; maxCyclomaticComplexity: number; maxCognitiveComplexity: number; maxFunctionLength: number; maxFileLength: number; }; memoryLeaks: { enabled: boolean; patterns: string[]; severity: 'critical' | 'high' | 'medium' | 'low'; }; caching: { enabled: boolean; minCacheableResponseTime: number; recommendedCacheDuration: number; }; }; thresholds: { maxLoadTimeMs: number; maxMemoryUsageMB: number; minPerformanceScore: number; }; } export interface DocumentationAnalyzerConfig { enabled: boolean; rules: { readmeQuality: { enabled: boolean; requiredSections: string[]; minWordCount: number; requireExamples: boolean; requireBadges: boolean; }; apiDocumentation: { enabled: boolean; requireJSDoc: boolean; requireParamDescriptions: boolean; requireReturnDescriptions: boolean; requireExamples: boolean; minCoveragePercent: number; }; changelog: { enabled: boolean; requireSemanticVersioning: boolean; requireDates: boolean; format: 'keepachangelog' | 'conventional' | 'custom'; }; codeComments: { enabled: boolean; minCommentRatio: number; requireComplexFunctionComments: boolean; complexityThreshold: number; }; }; thresholds: { minDocumentationScore: number; minReadmeScore: number; minAPIDocCoverage: number; }; } export interface CodeQualityAnalyzerConfig { enabled: boolean; rules: { duplicateCode: { enabled: boolean; minTokens: number; minLines: number; threshold: number; }; codeSmells: { enabled: boolean; detectLongMethods: boolean; detectLargeClasses: boolean; detectDeepNesting: boolean; maxNestingDepth: number; }; namingConventions: { enabled: boolean; variablePattern: RegExp; functionPattern: RegExp; classPattern: RegExp; constantPattern: RegExp; }; testCoverage: { enabled: boolean; minCoverage: number; requireUnitTests: boolean; requireIntegrationTests: boolean; }; }; thresholds: { maxDuplicatePercent: number; maxComplexity: number; minMaintainabilityIndex: number; minTestCoverage: number; }; } export interface CrossPlatformAnalyzerConfig { enabled: boolean; targetPlatforms: Array<'windows' | 'macOS' | 'linux' | 'unix'>; rules: { pathHandling: { enabled: boolean; severity: 'critical' | 'high' | 'medium' | 'low'; requirePathModule: boolean; }; shellCommands: { enabled: boolean; allowedCommands: string[]; requireCrossPlatformChecks: boolean; }; filePermissions: { enabled: boolean; checkSymlinks: boolean; checkExecutePermissions: boolean; }; environmentVariables: { enabled: boolean; requireFallbacks: boolean; platformSpecificVars: { [key: string]: string[]; }; }; }; thresholds: { minCompatibilityScore: number; maxPlatformSpecificCode: number; }; } export interface UnusedCodeAnalyzerConfig { enabled: boolean; rules: { unusedFunctions: { enabled: boolean; excludePatterns: string[]; checkPrivateMethods: boolean; checkExports: boolean; }; unusedImports: { enabled: boolean; checkTypeImports: boolean; checkSideEffectImports: boolean; }; unusedVariables: { enabled: boolean; checkGlobalVariables: boolean; checkParameters: boolean; allowUnusedCatchErrors: boolean; }; deadCode: { enabled: boolean; checkUnreachableCode: boolean; checkEmptyBlocks: boolean; checkCommentedCode: boolean; }; }; thresholds: { maxUnusedPercent: number; minActiveCodeRatio: number; }; } export declare const defaultAnalyzerConfig: AnalyzerConfig; export declare class AnalyzerConfigLoader { private config; constructor(customConfig?: Partial<AnalyzerConfig>); private mergeConfig; private mergeAnalyzerConfig; getConfig(): AnalyzerConfig; getSecurityConfig(): SecurityAnalyzerConfig | undefined; getPerformanceConfig(): PerformanceAnalyzerConfig | undefined; getDocumentationConfig(): DocumentationAnalyzerConfig | undefined; getCodeQualityConfig(): CodeQualityAnalyzerConfig | undefined; getCrossPlatformConfig(): CrossPlatformAnalyzerConfig | undefined; getUnusedCodeConfig(): UnusedCodeAnalyzerConfig | undefined; static loadFromFile(configPath: string): Promise<AnalyzerConfigLoader>; saveToFile(configPath: string): Promise<void>; } //# sourceMappingURL=analyzer-config.d.ts.map