diff --git a/assets/javascripts/discourse/admin/models/ai-tool.js b/assets/javascripts/discourse/admin/models/ai-tool.js
index 4b9cdf7c..25b60a84 100644
--- a/assets/javascripts/discourse/admin/models/ai-tool.js
+++ b/assets/javascripts/discourse/admin/models/ai-tool.js
@@ -32,8 +32,10 @@ export default class AiTool extends RestModel {
if (parameter.enum && parameter.enum.length) {
parameter.enum = new TrackedArray(parameter.enum);
+ parameter.isEnum = true;
} else {
parameter.enum = null;
+ parameter.isEnum = false;
}
return parameter;
diff --git a/assets/javascripts/discourse/components/ai-tool-editor-form.gjs b/assets/javascripts/discourse/components/ai-tool-editor-form.gjs
index aed8e30d..4e842411 100644
--- a/assets/javascripts/discourse/components/ai-tool-editor-form.gjs
+++ b/assets/javascripts/discourse/components/ai-tool-editor-form.gjs
@@ -28,12 +28,13 @@ export default class AiToolEditorForm extends Component {
];
get formData() {
+ const parameters = this.args.editingModel.parameters || [];
return {
name: this.args.editingModel.name || "",
tool_name: this.args.editingModel.tool_name || "",
description: this.args.editingModel.description || "",
summary: this.args.editingModel.summary || "",
- parameters: this.args.editingModel.parameters || [],
+ parameters,
script: this.args.editingModel.script || "",
rag_uploads: this.args.editingModel.rag_uploads || [],
};
@@ -109,6 +110,10 @@ export default class AiToolEditorForm extends Component {
return data.parameters[index].type;
}
+ parameterIsEnum(data, index) {
+ return data.parameters[index].isEnum;
+ }
+
get ragUploadsDescription() {
return this.siteSettings.rag_images_enabled
? i18n("discourse_ai.rag.uploads.description_with_images")
@@ -229,7 +234,7 @@ export default class AiToolEditorForm extends Component {