diff --git a/ui/desktop/src/components/recipes/RecipeActivityEditor.tsx b/ui/desktop/src/components/recipes/RecipeActivityEditor.tsx index b0949791ba..e641df4d62 100644 --- a/ui/desktop/src/components/recipes/RecipeActivityEditor.tsx +++ b/ui/desktop/src/components/recipes/RecipeActivityEditor.tsx @@ -59,14 +59,14 @@ export default function RecipeActivityEditor({ -

- The top-line prompts and activities that will display within your goose home page. +

+ The top-line prompts and activity buttons that will display in the recipe chat window.

{/* Message Field */} -
+

A formatted message that will appear at the top of the recipe. Supports markdown @@ -78,7 +78,7 @@ export default function RecipeActivityEditor({ onChange={(e) => handleMessageChange(e.target.value)} onBlur={onBlur} className="w-full px-4 py-3 border rounded-lg bg-background-default text-textStandard placeholder-textPlaceholder focus:outline-none focus:ring-2 focus:ring-borderProminent resize-vertical" - placeholder="Enter a message for your recipe (supports **bold**, *italic*, `code`, etc.)" + placeholder="Enter a user facing introduction message for your recipe (supports **bold**, *italic*, `code`, etc.)" rows={3} autoCorrect="off" autoCapitalize="off" @@ -93,30 +93,33 @@ export default function RecipeActivityEditor({ Activity Buttons

- Clickable buttons that will appear below the message. + Clickable buttons that will appear below the message to help users interact with your + recipe.

-
- {nonMessageActivities.map((activity, index) => ( -
100 ? activity : undefined} - > - {activity.length > 100 ? activity.slice(0, 100) + '...' : activity} - -
- ))} -
+ {activity.length > 100 ? activity.slice(0, 100) + '...' : activity} + +
+ ))} + + )}
- +
diff --git a/ui/desktop/src/components/recipes/shared/JsonSchemaEditor.tsx b/ui/desktop/src/components/recipes/shared/JsonSchemaEditor.tsx index 65760b7a27..2f65457820 100644 --- a/ui/desktop/src/components/recipes/shared/JsonSchemaEditor.tsx +++ b/ui/desktop/src/components/recipes/shared/JsonSchemaEditor.tsx @@ -111,7 +111,7 @@ export default function JsonSchemaEditor({
@@ -358,7 +358,11 @@ export default function RecipeFormFields({ return (
-

Parameters

+ +

+ Parameters will be automatically detected from {`{{parameter_name}}`} syntax in + instructions/prompt/activities or you can manually add them below. +

{/* Add Parameter Input - Always Visible */}
@@ -380,7 +384,7 @@ export default function RecipeFormFields({
- {field.state.value.length > 0 ? ( + {field.state.value.length > 0 && field.state.value .filter((parameter: Parameter) => parameter.key && parameter.key.trim()) // Filter out empty parameters .map((parameter: Parameter) => { @@ -408,16 +412,7 @@ export default function RecipeFormFields({ }} /> ); - }) - ) : ( -
-

- No parameters defined. Parameters will be automatically detected from{' '} - {`{{parameter_name}}`} syntax in instructions/prompt, or you can manually add - them using the input above. -

-
- )} + })}
); }} @@ -427,10 +422,13 @@ export default function RecipeFormFields({ {(field: FormFieldApi) => (
+ +

+ Define the expected structure of the AI's response using JSON Schema format +

-
-
0 ? 'border-red-500' : 'border-border-subtle' - }`} - > - {field.state.value && field.state.value.trim() ? ( + {field.state.value && field.state.value.trim() && ( +
0 ? 'border-red-500' : 'border-border-subtle' + }`} + >
                   {field.state.value}
                 
- ) : ( -

- No JSON schema defined. Click "Open Editor" to add one. -

- )} -
+
+ )} -

- Define the expected structure of the AI's response using JSON Schema format -

{field.state.meta.errors.length > 0 && (

{field.state.meta.errors[0]}

)}