diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor index 1859192b..b5774e02 100644 --- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor @@ -9,7 +9,8 @@ case AssistantUiCompontentType.TEXT_AREA: if (component is AssistantTextArea textArea) { - + var lines = textArea.IsSingleLine ? 1 : 6; + } break; diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs index cb6926ce..375f235b 100644 --- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs @@ -51,7 +51,7 @@ public partial class AssistantDynamic : AssistantBaseCore case AssistantUiCompontentType.TEXT_AREA: if (component is AssistantTextArea textArea) { - this.inputFields.Add(textArea.Name, string.Empty); + this.inputFields.Add(textArea.Name, textArea.PrefillText); } break; } @@ -78,10 +78,28 @@ public partial class AssistantDynamic : AssistantBaseCore private string CollectUserPrompt() { var prompt = string.Empty; - foreach (var entry in this.inputFields) + + foreach (var component in this.RootComponent!.Children) { - prompt += $"{entry.Value}{Environment.NewLine}"; + var userInput = string.Empty; + switch (component.Type) + { + case AssistantUiCompontentType.TEXT_AREA: + if (component is AssistantTextArea textArea) + { + prompt += $"context:{Environment.NewLine}{textArea.UserPrompt}{Environment.NewLine}{Environment.NewLine}---{Environment.NewLine}"; + if (this.inputFields.TryGetValue(textArea.Name, out userInput)) + { + prompt += $"user prompt:{Environment.NewLine}{userInput}"; + } + } + break; + default: + prompt += $"{userInput}{Environment.NewLine}"; + break; + } } + return prompt; } diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantTextArea.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantTextArea.cs index d51c131f..94194301 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantTextArea.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantTextArea.cs @@ -22,6 +22,28 @@ public class AssistantTextArea : AssistantComponentBase set => this.Props[nameof(this.Label)] = value; } + public string UserPrompt + { + get => this.Props.TryGetValue(nameof(this.UserPrompt), out var val) + ? val.ToString() ?? string.Empty + : string.Empty; + set => this.Props[nameof(this.UserPrompt)] = value; + } + + public string PrefillText + { + get => this.Props.TryGetValue(nameof(this.PrefillText), out var val) + ? val.ToString() ?? string.Empty + : string.Empty; + set => this.Props[nameof(this.PrefillText)] = value; + } + + public bool IsSingleLine + { + get => this.Props.TryGetValue(nameof(this.IsSingleLine), out var val) && val is true; + set => this.Props[nameof(this.IsSingleLine)] = value; + } + public bool ReadOnly { get => this.Props.TryGetValue(nameof(this.ReadOnly), out var val) && val is true; diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs index b9104c05..34b98341 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs @@ -11,7 +11,7 @@ public static class ComponentPropSpecs ), [AssistantUiCompontentType.TEXT_AREA] = new( required: ["Name", "Label"], - optional: [] + optional: ["UserPrompt", "PrefillText", "ReadOnly", "IsSingleLine"] ), [AssistantUiCompontentType.BUTTON] = new( required: ["Name", "Text", "Action"], diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/PluginAssistants.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/PluginAssistants.cs index 3797001c..ac8167cd 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/PluginAssistants.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/PluginAssistants.cs @@ -262,14 +262,12 @@ public sealed class PluginAssistants(bool isInternal, LuaState state, PluginType return true; } - // AssistantDropdownItem if (val.TryRead(out var table) && this.TryParseDropdownItem(table, out var item)) { result = item; return true; } - // List if (val.TryRead(out var listTable) && this.TryParseDropdownItemList(listTable, out var itemList)) { result = itemList;