using System; using System.Collections.Generic; namespace MarketAlly.AIPlugin.Analysis.Infrastructure { /// /// Configuration settings for analysis operations /// public class AnalysisConfiguration { /// /// Default parameters to apply to all plugins /// public Dictionary DefaultParameters { get; set; } = new(); /// /// Default timeout for analysis operations /// public TimeSpan DefaultTimeout { get; set; } = TimeSpan.FromMinutes(10); /// /// Maximum number of concurrent analyses /// public int MaxConcurrentAnalyses { get; set; } = Environment.ProcessorCount; /// /// Enable caching of syntax trees and analysis results /// public bool EnableCaching { get; set; } = true; /// /// Cache expiration time for syntax trees /// public TimeSpan CacheExpiration { get; set; } = TimeSpan.FromMinutes(30); /// /// Cache expiration time for analysis results /// public TimeSpan CacheExpirationTime { get; set; } = TimeSpan.FromMinutes(30); /// /// Maximum memory usage before triggering cache cleanup (in MB) /// public int MaxCacheMemoryMB { get; set; } = 512; /// /// Enable parallel processing for multi-file analysis /// public bool EnableParallelProcessing { get; set; } = true; /// /// Enable detailed logging for debugging /// public bool EnableDetailedLogging { get; set; } = false; /// /// Validate plugin parameters before execution /// public bool ValidateParameters { get; set; } = true; /// /// Enable security features like path validation /// public bool EnableSecurityValidation { get; set; } = true; /// /// Allow loading plugins from external assemblies /// public bool AllowDynamicPluginLoading { get; set; } = false; /// /// Directory containing trusted plugin assemblies /// public string TrustedPluginDirectory { get; set; } = string.Empty; } }