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;