diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor new file mode 100644 index 00000000..b1947cc3 --- /dev/null +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor @@ -0,0 +1,27 @@ +@attribute [Route(Routes.ASSISTANT_DYNAMIC)] +@using AIStudio.Tools.PluginSystem.Assistants.DataModel +@inherits AssistantBaseCore + +@foreach (var component in this.RootComponent!.Children) +{ + @switch (component.Type) + { + case AssistantUiCompontentType.TEXT_AREA: + if (component is AssistantTextArea textArea) + { + + } + break; + + case AssistantUiCompontentType.PROVIDER_SELECTION: + if (component is AssistantProviderSelection providerSelection) + { + + } + break; + + default: + break; + } +} + diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs new file mode 100644 index 00000000..418ede95 --- /dev/null +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs @@ -0,0 +1,52 @@ +using AIStudio.Dialogs.Settings; +using AIStudio.Tools.PluginSystem; +using AIStudio.Tools.PluginSystem.Assistants; +using AIStudio.Tools.PluginSystem.Assistants.DataModel; +using Microsoft.AspNetCore.Components; + +namespace AIStudio.Assistants.Dynamic; + +public partial class AssistantDynamic : AssistantBaseCore +{ + [Parameter] + public AssistantForm? RootComponent { get; set; } = null!; + + private string? inputText; + private string title = string.Empty; + private string description = string.Empty; + private string systemPrompt = string.Empty; + private bool allowProfiles = true; + + protected override string Title => this.title; + protected override string Description => this.description; + protected override string SystemPrompt => this.systemPrompt; + protected override bool AllowProfiles => this.allowProfiles; + public override Tools.Components Component { get; } + protected override void OnInitialized() + { + var guid = Guid.Parse("958312de-a9e7-4666-901f-4d5b61647efb"); + var plugin = PluginFactory.RunningPlugins.FirstOrDefault(e => e.Id == guid); + if (plugin is PluginAssistants assistantPlugin) + { + this.RootComponent = assistantPlugin.RootComponent; + this.title = assistantPlugin.AssistantTitle; + this.description = assistantPlugin.AssistantDescription; + this.systemPrompt = assistantPlugin.SystemPrompt; + this.allowProfiles = assistantPlugin.AllowProfiles; + } + base.OnInitialized(); + } + + protected override void ResetForm() + { + throw new NotImplementedException(); + } + + protected override bool MightPreselectValues() + { + throw new NotImplementedException(); + } + + protected override string SubmitText { get; } + protected override Func SubmitAction { get; } +} \ No newline at end of file