diff --git a/app/MindWork AI Studio/Pages/Assistants.razor b/app/MindWork AI Studio/Pages/Assistants.razor
index 1cd72a5f..3c41920f 100644
--- a/app/MindWork AI Studio/Pages/Assistants.razor
+++ b/app/MindWork AI Studio/Pages/Assistants.razor
@@ -14,54 +14,96 @@
@T("General")
-
-
-
-
-
+ @if (IsAssistantVisible(Components.TEXT_SUMMARIZER_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.TRANSLATION_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.GRAMMAR_SPELLING_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.REWRITE_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.SYNONYMS_ASSISTANT))
+ {
+
+ }
@T("Business")
-
-
- @if (PreviewFeatures.PRE_DOCUMENT_ANALYSIS_2025.IsEnabled(this.SettingsManager))
+ @if (IsAssistantVisible(Components.EMAIL_ASSISTANT))
+ {
+
+ }
+
+ @if (PreviewFeatures.PRE_DOCUMENT_ANALYSIS_2025.IsEnabled(this.SettingsManager) && IsAssistantVisible(Components.DOCUMENT_ANALYSIS_ASSISTANT))
{
}
-
-
-
-
-
-
+
+ @if (IsAssistantVisible(Components.MY_TASKS_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.AGENDA_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.JOB_POSTING_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.LEGAL_CHECK_ASSISTANT))
+ {
+
+ }
+ @if (IsAssistantVisible(Components.ICON_FINDER_ASSISTANT))
+ {
+
+ }
@T("Learning")
-
+ @if (IsAssistantVisible(Components.BIAS_DAY_ASSISTANT))
+ {
+
+ }
-
+
@T("Software Engineering")
-
- @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager))
+ @if (IsAssistantVisible(Components.CODING_ASSISTANT))
+ {
+
+ }
+ @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager) && IsAssistantVisible(Components.ERI_ASSISTANT))
{
}
-
+
@T("AI Studio Development")
-
+ @if (IsAssistantVisible(Components.I18N_ASSISTANT))
+ {
+
+ }
diff --git a/app/MindWork AI Studio/Pages/Assistants.razor.cs b/app/MindWork AI Studio/Pages/Assistants.razor.cs
index e2c2de49..ead98360 100644
--- a/app/MindWork AI Studio/Pages/Assistants.razor.cs
+++ b/app/MindWork AI Studio/Pages/Assistants.razor.cs
@@ -1,5 +1,45 @@
using AIStudio.Components;
+using AIStudio.Settings;
+using AIStudio.Tools;
namespace AIStudio.Pages;
-public partial class Assistants : MSGComponentBase;
\ No newline at end of file
+public partial class Assistants : MSGComponentBase
+{
+ ///
+ /// Checks if an assistant should be visible based on configuration.
+ ///
+ /// The assistant component to check.
+ /// True if the assistant should be visible, false otherwise.
+ private bool IsAssistantVisible(Components component)
+ {
+ // Map Components enum to ConfigurableAssistant enum
+ var configurableAssistant = component switch
+ {
+ Components.GRAMMAR_SPELLING_ASSISTANT => ConfigurableAssistant.GRAMMAR_SPELLING_ASSISTANT,
+ Components.ICON_FINDER_ASSISTANT => ConfigurableAssistant.ICON_FINDER_ASSISTANT,
+ Components.REWRITE_ASSISTANT => ConfigurableAssistant.REWRITE_ASSISTANT,
+ Components.TRANSLATION_ASSISTANT => ConfigurableAssistant.TRANSLATION_ASSISTANT,
+ Components.AGENDA_ASSISTANT => ConfigurableAssistant.AGENDA_ASSISTANT,
+ Components.CODING_ASSISTANT => ConfigurableAssistant.CODING_ASSISTANT,
+ Components.TEXT_SUMMARIZER_ASSISTANT => ConfigurableAssistant.TEXT_SUMMARIZER_ASSISTANT,
+ Components.EMAIL_ASSISTANT => ConfigurableAssistant.EMAIL_ASSISTANT,
+ Components.LEGAL_CHECK_ASSISTANT => ConfigurableAssistant.LEGAL_CHECK_ASSISTANT,
+ Components.SYNONYMS_ASSISTANT => ConfigurableAssistant.SYNONYMS_ASSISTANT,
+ Components.MY_TASKS_ASSISTANT => ConfigurableAssistant.MY_TASKS_ASSISTANT,
+ Components.JOB_POSTING_ASSISTANT => ConfigurableAssistant.JOB_POSTING_ASSISTANT,
+ Components.BIAS_DAY_ASSISTANT => ConfigurableAssistant.BIAS_DAY_ASSISTANT,
+ Components.ERI_ASSISTANT => ConfigurableAssistant.ERI_ASSISTANT,
+ Components.DOCUMENT_ANALYSIS_ASSISTANT => ConfigurableAssistant.DOCUMENT_ANALYSIS_ASSISTANT,
+ Components.I18N_ASSISTANT => ConfigurableAssistant.I18N_ASSISTANT,
+ _ => (ConfigurableAssistant?)null,
+ };
+
+ // If the component doesn't map to a configurable assistant, it's always visible
+ if (configurableAssistant is null)
+ return true;
+
+ // Check if the assistant is hidden in configuration
+ return !this.SettingsManager.ConfigurationData.App.HiddenAssistants.Contains(configurableAssistant.Value);
+ }
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Plugins/configuration/plugin.lua b/app/MindWork AI Studio/Plugins/configuration/plugin.lua
index 8cd62555..9bb5ee44 100644
--- a/app/MindWork AI Studio/Plugins/configuration/plugin.lua
+++ b/app/MindWork AI Studio/Plugins/configuration/plugin.lua
@@ -143,6 +143,15 @@ CONFIG["SETTINGS"] = {}
-- Please note: using an empty string ("") will lock the selection and disable dictation/transcription.
-- CONFIG["SETTINGS"]["DataApp.UseTranscriptionProvider"] = "00000000-0000-0000-0000-000000000000"
+-- Configure which assistants should be hidden from the UI.
+-- Allowed values can be found in ConfigurableAssistant enum.
+-- Examples: GRAMMAR_SPELLING_ASSISTANT, ICON_FINDER_ASSISTANT, REWRITE_ASSISTANT,
+-- TRANSLATION_ASSISTANT, AGENDA_ASSISTANT, CODING_ASSISTANT,
+-- TEXT_SUMMARIZER_ASSISTANT, EMAIL_ASSISTANT, LEGAL_CHECK_ASSISTANT,
+-- SYNONYMS_ASSISTANT, MY_TASKS_ASSISTANT, JOB_POSTING_ASSISTANT,
+-- BIAS_DAY_ASSISTANT, ERI_ASSISTANT, DOCUMENT_ANALYSIS_ASSISTANT, I18N_ASSISTANT
+-- CONFIG["SETTINGS"]["DataApp.HiddenAssistants"] = { "GRAMMAR_SPELLING_ASSISTANT", "SYNONYMS_ASSISTANT" }
+
-- Example chat templates for this configuration:
CONFIG["CHAT_TEMPLATES"] = {}
diff --git a/app/MindWork AI Studio/Settings/ConfigurableAssistant.cs b/app/MindWork AI Studio/Settings/ConfigurableAssistant.cs
new file mode 100644
index 00000000..6e5d22a9
--- /dev/null
+++ b/app/MindWork AI Studio/Settings/ConfigurableAssistant.cs
@@ -0,0 +1,27 @@
+namespace AIStudio.Settings;
+
+///
+/// Enum representing assistants that can be hidden via configuration plugin.
+///
+public enum ConfigurableAssistant
+{
+ GRAMMAR_SPELLING_ASSISTANT,
+ ICON_FINDER_ASSISTANT,
+ REWRITE_ASSISTANT,
+ TRANSLATION_ASSISTANT,
+ AGENDA_ASSISTANT,
+ CODING_ASSISTANT,
+ TEXT_SUMMARIZER_ASSISTANT,
+ EMAIL_ASSISTANT,
+ LEGAL_CHECK_ASSISTANT,
+ SYNONYMS_ASSISTANT,
+ MY_TASKS_ASSISTANT,
+ JOB_POSTING_ASSISTANT,
+ BIAS_DAY_ASSISTANT,
+ ERI_ASSISTANT,
+ DOCUMENT_ANALYSIS_ASSISTANT,
+
+ // ReSharper disable InconsistentNaming
+ I18N_ASSISTANT,
+ // ReSharper restore InconsistentNaming
+}
diff --git a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs
index 720d3b5a..d2ac4bb7 100644
--- a/app/MindWork AI Studio/Settings/DataModel/DataApp.cs
+++ b/app/MindWork AI Studio/Settings/DataModel/DataApp.cs
@@ -86,4 +86,9 @@ public sealed class DataApp(Expression>? configSelection = n
/// Should the user be allowed to add providers?
///
public bool AllowUserToAddProvider { get; set; } = ManagedConfiguration.Register(configSelection, n => n.AllowUserToAddProvider, true);
+
+ ///
+ /// List of assistants that should be hidden from the UI.
+ ///
+ public HashSet HiddenAssistants { get; set; } = ManagedConfiguration.Register(configSelection, n => n.HiddenAssistants, []);
}
\ No newline at end of file