using MarketAlly.AIPlugin; using System.Collections.Generic; using System.Threading.Tasks; namespace MarketAlly.AIPlugin.Analysis.Infrastructure { /// /// Interface for discovering and loading analysis plugins /// public interface IPluginDiscovery { /// /// Discovers all plugins in the specified directory /// /// Directory to search for plugins /// Collection of discovered plugins Task> DiscoverPluginsAsync(string pluginDirectory); /// /// Loads a specific plugin from an assembly /// /// Path to the plugin assembly /// Full name of the plugin type /// Loaded plugin instance Task LoadPluginAsync(string assemblyPath, string typeName); /// /// Gets all built-in analysis plugins /// /// Collection of built-in plugins IEnumerable GetBuiltInPlugins(); /// /// Validates that a plugin implements the required interfaces /// /// Plugin to validate /// True if plugin is valid bool ValidatePlugin(IAIPlugin plugin); } }