diff --git a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs index 61d40cae..71b5aa7c 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/PluginFactory.cs @@ -10,11 +10,20 @@ namespace AIStudio.Tools.PluginSystem; public static partial class PluginFactory { private static readonly ILogger LOG = Program.LOGGER_FACTORY.CreateLogger("PluginFactory"); + private static readonly string DATA_DIR = SettingsManager.DataDirectory!; + private static readonly string PLUGINS_ROOT = Path.Join(DATA_DIR, "plugins"); + private static readonly Dictionary AVAILABLE_PLUGINS = new(); + private static readonly SettingsManager SETTINGS = Program.SERVICE_PROVIDER.GetRequiredService(); + private static readonly Guid[] MANDATORY_INTERNAL_PLUGINS = + [ + new("97dfb1ba-50c4-4440-8dfa-6575daf543c8"), // Language EN-US (base language) + ]; + /// /// A list of all available plugins. /// @@ -23,12 +32,12 @@ public static partial class PluginFactory /// /// A list of all enabled plugins. /// - public static IEnumerable EnabledPlugins => AVAILABLE_PLUGINS.Keys.Where(x => SETTINGS.ConfigurationData.EnabledPlugins.Contains(x.Id)); + public static IEnumerable EnabledPlugins => AVAILABLE_PLUGINS.Keys.Where(x => SETTINGS.ConfigurationData.EnabledPlugins.Contains(x.Id) || MANDATORY_INTERNAL_PLUGINS.Contains(x.Id)); /// /// A list of all disabled plugins. /// - public static IEnumerable DisabledPlugins => AVAILABLE_PLUGINS.Keys.Where(x => !SETTINGS.ConfigurationData.EnabledPlugins.Contains(x.Id)); + public static IEnumerable DisabledPlugins => AVAILABLE_PLUGINS.Keys.Where(x => !(SETTINGS.ConfigurationData.EnabledPlugins.Contains(x.Id) || MANDATORY_INTERNAL_PLUGINS.Contains(x.Id))); /// /// Try to load all plugins from the plugins directory.