From a5b5566f84a188efbf431cd1b81bfd1fe93667e7 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sun, 23 Mar 2025 15:51:38 +0100 Subject: [PATCH] Consider mandatory internal plugins --- .../Tools/PluginSystem/PluginFactory.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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.