40 lines
1.5 KiB
C#
Executable File
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);
|
|
}
|
|
} |