diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/AuthConfig.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/AuthConfig.vue new file mode 100644 index 000000000..4e6483319 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/AuthConfig.vue @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CreateCustomToolDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CreateCustomToolDialog.vue new file mode 100644 index 000000000..891e36edf --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CreateCustomToolDialog.vue @@ -0,0 +1,55 @@ + + + + + + + + diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolForm.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolForm.vue new file mode 100644 index 000000000..755360a81 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolForm.vue @@ -0,0 +1,228 @@ + + + + + + + + + + + + {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.HTTP_METHOD.LABEL') }} + + + + + + + + + {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.AUTH_TYPE.LABEL') }} + + + + + + + + + {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.PARAMETERS.LABEL') }} + + + {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.PARAMETERS.HELP_TEXT') }} + + + + + + + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ParamRow.vue b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ParamRow.vue new file mode 100644 index 000000000..5564635d0 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/customTool/ParamRow.vue @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.PARAM_REQUIRED.LABEL') }} + + + + + + + {{ t(`CAPTAIN.CUSTOM_TOOLS.FORM.ERRORS.${validationError}`) }} + + + diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json index 8d098829f..b4d9873de 100644 --- a/app/javascript/dashboard/i18n/locale/en/integrations.json +++ b/app/javascript/dashboard/i18n/locale/en/integrations.json @@ -760,6 +760,87 @@ "TITLE": "Custom Tools", "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities." } + }, + "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs", + "CREATE": { + "TITLE": "Create Custom Tool", + "SUCCESS_MESSAGE": "Custom tool created successfully", + "ERROR_MESSAGE": "Failed to create custom tool" + }, + "FORM": { + "TITLE": { + "LABEL": "Tool Name", + "PLACEHOLDER": "Order Lookup", + "ERROR": "Tool name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Looks up order details by order ID" + }, + "HTTP_METHOD": { + "LABEL": "Method" + }, + "ENDPOINT_URL": { + "LABEL": "Endpoint URL", + "PLACEHOLDER": "https://api.example.com/orders/{{ order_id }}", + "ERROR": "Valid URL is required" + }, + "AUTH_TYPE": { + "LABEL": "Authentication Type" + }, + "AUTH_TYPES": { + "NONE": "None", + "BEARER": "Bearer Token", + "BASIC": "Basic Auth", + "API_KEY": "API Key" + }, + "AUTH_CONFIG": { + "BEARER_TOKEN": "Bearer Token", + "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token", + "USERNAME": "Username", + "USERNAME_PLACEHOLDER": "Enter username", + "PASSWORD": "Password", + "PASSWORD_PLACEHOLDER": "Enter password", + "API_KEY": "Header Name", + "API_KEY_PLACEHOLDER": "X-API-Key", + "API_VALUE": "Header Value", + "API_VALUE_PLACEHOLDER": "Enter API key value" + }, + "PARAMETERS": { + "LABEL": "Parameters", + "HELP_TEXT": "Define the parameters that will be extracted from user queries" + }, + "ADD_PARAMETER": "Add Parameter", + "PARAM_NAME": { + "PLACEHOLDER": "Parameter name (e.g., order_id)" + }, + "PARAM_TYPE": { + "PLACEHOLDER": "Type" + }, + "PARAM_TYPES": { + "STRING": "String", + "NUMBER": "Number", + "BOOLEAN": "Boolean", + "ARRAY": "Array", + "OBJECT": "Object" + }, + "PARAM_DESCRIPTION": { + "PLACEHOLDER": "Description of the parameter" + }, + "PARAM_REQUIRED": { + "LABEL": "Required" + }, + "REQUEST_TEMPLATE": { + "LABEL": "Request Body Template (Optional)", + "PLACEHOLDER": "{\n \"order_id\": \"{{ order_id }}\"\n}" + }, + "RESPONSE_TEMPLATE": { + "LABEL": "Response Template (Optional)", + "PLACEHOLDER": "Order {{ order_id }} status: {{ status }}" + }, + "ERRORS": { + "PARAM_NAME_REQUIRED": "Parameter name is required" + } } }, "RESPONSES": { diff --git a/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue index 86e887630..50b7d1204 100644 --- a/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue @@ -1,11 +1,12 @@
+ {{ t('CAPTAIN.CUSTOM_TOOLS.FORM.PARAMETERS.HELP_TEXT') }} +