diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor b/app/MindWork AI Studio/Components/AssistantBase.razor
index 45d86e12..61bf2cef 100644
--- a/app/MindWork AI Studio/Components/AssistantBase.razor
+++ b/app/MindWork AI Studio/Components/AssistantBase.razor
@@ -30,6 +30,30 @@
+
+ @if (this.FooterButtons.Count > 0)
+ {
+
+ @foreach (var buttonData in this.FooterButtons)
+ {
+ switch (buttonData)
+ {
+ case var _ when !string.IsNullOrWhiteSpace(buttonData.Tooltip):
+
+
+ @buttonData.Text
+
+
+ break;
+
+ default:
+
+ @buttonData.Text
+
+ break;
+ }
+ }
+
}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor.cs b/app/MindWork AI Studio/Components/AssistantBase.razor.cs
index a0541dc9..8c87ce80 100644
--- a/app/MindWork AI Studio/Components/AssistantBase.razor.cs
+++ b/app/MindWork AI Studio/Components/AssistantBase.razor.cs
@@ -31,6 +31,8 @@ public abstract partial class AssistantBase : ComponentBase
protected virtual bool ShowResult => true;
+ protected virtual IReadOnlyList FooterButtons => [];
+
protected static readonly Dictionary USER_INPUT_ATTRIBUTES = new();
protected AIStudio.Settings.Provider providerSettings;
diff --git a/app/MindWork AI Studio/Tools/ButtonData.cs b/app/MindWork AI Studio/Tools/ButtonData.cs
new file mode 100644
index 00000000..7f05ddfc
--- /dev/null
+++ b/app/MindWork AI Studio/Tools/ButtonData.cs
@@ -0,0 +1,3 @@
+namespace AIStudio.Tools;
+
+public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction);
\ No newline at end of file