diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor
index d9bd21fb..e35c6440 100644
--- a/app/MindWork AI Studio/Assistants/AssistantBase.razor
+++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor
@@ -9,7 +9,10 @@
@this.Title
-
+ @if (this.HasSettingsPanel)
+ {
+
+ }
@@ -145,4 +148,4 @@
-
\ No newline at end of file
+
diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs
index b260b8ed..0e1d6812 100644
--- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs
+++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs
@@ -1,6 +1,7 @@
using AIStudio.Chat;
using AIStudio.Provider;
using AIStudio.Settings;
+using AIStudio.Dialogs.Settings;
using AIStudio.Tools.Services;
using Microsoft.AspNetCore.Components;
@@ -81,6 +82,8 @@ public abstract partial class AssistantBase : AssistantLowerBase wher
protected virtual ChatThread ConvertToChatThread => this.chatThread ?? new();
protected virtual IReadOnlyList FooterButtons => [];
+
+ protected virtual bool HasSettingsPanel => typeof(TSettings) != typeof(NoSettingsPanel);
protected AIStudio.Settings.Provider providerSettings = Settings.Provider.NONE;
protected MudForm? form;
@@ -310,6 +313,9 @@ public abstract partial class AssistantBase : AssistantLowerBase wher
protected async Task OpenSettingsDialog()
{
+ if (!this.HasSettingsPanel)
+ return;
+
var dialogParameters = new DialogParameters();
await this.DialogService.ShowAsync(null, dialogParameters, DialogOptions.FULLSCREEN);
}
@@ -398,4 +404,4 @@ public abstract partial class AssistantBase : AssistantLowerBase wher
}
#endregion
-}
\ No newline at end of file
+}
diff --git a/app/MindWork AI Studio/Components/AssistantBlock.razor b/app/MindWork AI Studio/Components/AssistantBlock.razor
index 372fae7e..8af43e72 100644
--- a/app/MindWork AI Studio/Components/AssistantBlock.razor
+++ b/app/MindWork AI Studio/Components/AssistantBlock.razor
@@ -26,8 +26,11 @@
@this.ButtonText
-
+ @if (this.HasSettingsPanel)
+ {
+
+ }
-}
\ No newline at end of file
+}
diff --git a/app/MindWork AI Studio/Components/AssistantBlock.razor.cs b/app/MindWork AI Studio/Components/AssistantBlock.razor.cs
index 69dfe49b..09f0d73d 100644
--- a/app/MindWork AI Studio/Components/AssistantBlock.razor.cs
+++ b/app/MindWork AI Studio/Components/AssistantBlock.razor.cs
@@ -1,4 +1,5 @@
using AIStudio.Settings.DataModel;
+using AIStudio.Dialogs.Settings;
using Microsoft.AspNetCore.Components;
@@ -37,6 +38,9 @@ public partial class AssistantBlock : MSGComponentBase where TSetting
private async Task OpenSettingsDialog()
{
+ if (!this.HasSettingsPanel)
+ return;
+
var dialogParameters = new DialogParameters();
await this.DialogService.ShowAsync(T("Open Settings"), dialogParameters, DialogOptions.FULLSCREEN);
@@ -51,4 +55,6 @@ public partial class AssistantBlock : MSGComponentBase where TSetting
private string BlockStyle => $"border-width: 2px; border-color: {this.BorderColor}; border-radius: 12px; border-style: solid; max-width: 20em;";
private bool IsVisible => this.SettingsManager.IsAssistantVisible(this.Component, assistantName: this.Name, requiredPreviewFeature: this.RequiredPreviewFeature);
-}
\ No newline at end of file
+
+ private bool HasSettingsPanel => typeof(TSettings) != typeof(NoSettingsPanel);
+}
diff --git a/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor b/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor
new file mode 100644
index 00000000..132ca131
--- /dev/null
+++ b/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor
@@ -0,0 +1,2 @@
+@namespace AIStudio.Dialogs.Settings
+