MarketAlly.AIPlugin.Extensions/MarketAlly.AIPlugin.Analysis/Infrastructure/AnalysisConfiguration.cs

76 lines
2.5 KiB
C#
Executable File

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