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

40 lines
1.5 KiB
C#
Executable File

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