diff --git a/src/frontend/src/components/inputListComponent/index.tsx b/src/frontend/src/components/inputListComponent/index.tsx
index 7dd6d79c6..d165d58a2 100644
--- a/src/frontend/src/components/inputListComponent/index.tsx
+++ b/src/frontend/src/components/inputListComponent/index.tsx
@@ -1,9 +1,8 @@
import { useContext, useEffect, useState } from "react";
import { InputListComponentType } from "../../types/components";
-import { TabsContext } from "../../contexts/tabsContext";
import _ from "lodash";
-import { X, Plus } from "lucide-react";
+import { Plus, X } from "lucide-react";
import { PopUpContext } from "../../contexts/popUpContext";
export default function InputListComponent({
diff --git a/src/frontend/src/components/intComponent/index.tsx b/src/frontend/src/components/intComponent/index.tsx
index 473febd91..2428d03ee 100644
--- a/src/frontend/src/components/intComponent/index.tsx
+++ b/src/frontend/src/components/intComponent/index.tsx
@@ -1,8 +1,7 @@
import { useContext, useEffect, useState } from "react";
-import { FloatComponentType } from "../../types/components";
-import { TabsContext } from "../../contexts/tabsContext";
-import { classNames } from "../../utils";
import { PopUpContext } from "../../contexts/popUpContext";
+import { TabsContext } from "../../contexts/tabsContext";
+import { FloatComponentType } from "../../types/components";
export default function IntComponent({
value,
diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx
index 7e90f323c..7385518c8 100644
--- a/src/frontend/src/components/promptComponent/index.tsx
+++ b/src/frontend/src/components/promptComponent/index.tsx
@@ -1,13 +1,13 @@
import { useContext, useEffect, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
-import { TextAreaComponentType } from "../../types/components";
import GenericModal from "../../modals/genericModal";
+import { TextAreaComponentType } from "../../types/components";
import { TypeModal } from "../../utils";
-import { ExternalLink } from "lucide-react";
-import { postValidatePrompt } from "../../controllers/API";
-import { typesContext } from "../../contexts/typesContext";
import * as _ from "lodash";
+import { ExternalLink } from "lucide-react";
+import { typesContext } from "../../contexts/typesContext";
+import { postValidatePrompt } from "../../controllers/API";
export default function PromptAreaComponent({
field_name,
diff --git a/src/frontend/src/components/textAreaComponent/index.tsx b/src/frontend/src/components/textAreaComponent/index.tsx
index 6b41cbe40..a50969cfb 100644
--- a/src/frontend/src/components/textAreaComponent/index.tsx
+++ b/src/frontend/src/components/textAreaComponent/index.tsx
@@ -1,8 +1,8 @@
import { useContext, useEffect, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
-import { TextAreaComponentType } from "../../types/components";
import GenericModal from "../../modals/genericModal";
-import { TypeModal, classNames } from "../../utils";
+import { TextAreaComponentType } from "../../types/components";
+import { TypeModal } from "../../utils";
import { ExternalLink } from "lucide-react";
diff --git a/src/frontend/src/components/toggleComponent/index.tsx b/src/frontend/src/components/toggleComponent/index.tsx
index c7b72a025..81a2b2d8b 100644
--- a/src/frontend/src/components/toggleComponent/index.tsx
+++ b/src/frontend/src/components/toggleComponent/index.tsx
@@ -1,7 +1,7 @@
import { Switch } from "@headlessui/react";
-import { classNames } from "../../utils";
import { useEffect } from "react";
import { ToggleComponentType } from "../../types/components";
+import { classNames } from "../../utils";
export default function ToggleComponent({
enabled,
diff --git a/src/frontend/src/components/toggleShadComponent/index.tsx b/src/frontend/src/components/toggleShadComponent/index.tsx
index 9b73ee07d..c06d42430 100644
--- a/src/frontend/src/components/toggleShadComponent/index.tsx
+++ b/src/frontend/src/components/toggleShadComponent/index.tsx
@@ -1,4 +1,3 @@
-import { useEffect } from "react";
import { ToggleComponentType } from "../../types/components";
import { Switch } from "../ui/switch";
diff --git a/src/frontend/src/components/ui/accordion.tsx b/src/frontend/src/components/ui/accordion.tsx
index 5e3e76f33..4b5a12384 100644
--- a/src/frontend/src/components/ui/accordion.tsx
+++ b/src/frontend/src/components/ui/accordion.tsx
@@ -1,8 +1,8 @@
"use client";
-import * as React from "react";
import * as AccordionPrimitive from "@radix-ui/react-accordion";
import { ChevronDownIcon } from "@radix-ui/react-icons";
+import * as React from "react";
import { cn } from "../../utils";
const Accordion = AccordionPrimitive.Root;
diff --git a/src/frontend/src/components/ui/badge.tsx b/src/frontend/src/components/ui/badge.tsx
index 36c44ac4d..5464f382e 100644
--- a/src/frontend/src/components/ui/badge.tsx
+++ b/src/frontend/src/components/ui/badge.tsx
@@ -1,5 +1,5 @@
-import * as React from "react";
import { cva, type VariantProps } from "class-variance-authority";
+import * as React from "react";
import { cn } from "../../utils";
const badgeVariants = cva(
diff --git a/src/frontend/src/components/ui/button.tsx b/src/frontend/src/components/ui/button.tsx
index 648ce43c9..170494927 100644
--- a/src/frontend/src/components/ui/button.tsx
+++ b/src/frontend/src/components/ui/button.tsx
@@ -1,6 +1,6 @@
-import * as React from "react";
import { Slot } from "@radix-ui/react-slot";
import { cva, type VariantProps } from "class-variance-authority";
+import * as React from "react";
import { cn } from "../../utils";
const buttonVariants = cva(
diff --git a/src/frontend/src/components/ui/checkbox.tsx b/src/frontend/src/components/ui/checkbox.tsx
index 4e4905bb9..18332b073 100644
--- a/src/frontend/src/components/ui/checkbox.tsx
+++ b/src/frontend/src/components/ui/checkbox.tsx
@@ -1,8 +1,8 @@
"use client";
-import * as React from "react";
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
import { Check } from "lucide-react";
+import * as React from "react";
import { cn } from "../../utils";
const Checkbox = React.forwardRef<
diff --git a/src/frontend/src/components/ui/dialog.tsx b/src/frontend/src/components/ui/dialog.tsx
index a02379087..2ad709f48 100644
--- a/src/frontend/src/components/ui/dialog.tsx
+++ b/src/frontend/src/components/ui/dialog.tsx
@@ -1,6 +1,6 @@
-import * as React from "react";
import * as DialogPrimitive from "@radix-ui/react-dialog";
import { X } from "lucide-react";
+import * as React from "react";
import { cn } from "../../utils";
const Dialog = DialogPrimitive.Root;
diff --git a/src/frontend/src/components/ui/dropdown-menu.tsx b/src/frontend/src/components/ui/dropdown-menu.tsx
index ee62abc4a..0e5468e6e 100644
--- a/src/frontend/src/components/ui/dropdown-menu.tsx
+++ b/src/frontend/src/components/ui/dropdown-menu.tsx
@@ -1,8 +1,8 @@
"use client";
-import * as React from "react";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import { Check, ChevronRight, Circle } from "lucide-react";
+import * as React from "react";
import { cn } from "../../utils";
const DropdownMenu = DropdownMenuPrimitive.Root;
diff --git a/src/frontend/src/components/ui/label.tsx b/src/frontend/src/components/ui/label.tsx
index ab5129253..57fbc9d8a 100644
--- a/src/frontend/src/components/ui/label.tsx
+++ b/src/frontend/src/components/ui/label.tsx
@@ -1,8 +1,8 @@
"use client";
-import * as React from "react";
import * as LabelPrimitive from "@radix-ui/react-label";
import { cva, type VariantProps } from "class-variance-authority";
+import * as React from "react";
import { cn } from "../../utils";
const labelVariants = cva(
diff --git a/src/frontend/src/components/ui/menubar.tsx b/src/frontend/src/components/ui/menubar.tsx
index 2eb3a61f4..0a3362ca6 100644
--- a/src/frontend/src/components/ui/menubar.tsx
+++ b/src/frontend/src/components/ui/menubar.tsx
@@ -1,8 +1,8 @@
"use client";
-import * as React from "react";
import * as MenubarPrimitive from "@radix-ui/react-menubar";
import { Check, ChevronRight, Circle } from "lucide-react";
+import * as React from "react";
import { cn } from "../../utils";
diff --git a/src/frontend/src/components/ui/progress.tsx b/src/frontend/src/components/ui/progress.tsx
index 69d1f86fb..a08efeb52 100644
--- a/src/frontend/src/components/ui/progress.tsx
+++ b/src/frontend/src/components/ui/progress.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
import * as ProgressPrimitive from "@radix-ui/react-progress";
+import * as React from "react";
import { cn } from "../../utils";
const Progress = React.forwardRef<
diff --git a/src/frontend/src/components/ui/rename-label.tsx b/src/frontend/src/components/ui/rename-label.tsx
index e703020f5..e5fef11bf 100644
--- a/src/frontend/src/components/ui/rename-label.tsx
+++ b/src/frontend/src/components/ui/rename-label.tsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, useRef } from "react";
+import { useEffect, useRef, useState } from "react";
import { cn } from "../../utils";
export default function RenameLabel(props) {
diff --git a/src/frontend/src/components/ui/separator.tsx b/src/frontend/src/components/ui/separator.tsx
index 84a16676d..a770af987 100644
--- a/src/frontend/src/components/ui/separator.tsx
+++ b/src/frontend/src/components/ui/separator.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
import * as SeparatorPrimitive from "@radix-ui/react-separator";
+import * as React from "react";
import { cn } from "../../utils";
const Separator = React.forwardRef<
diff --git a/src/frontend/src/components/ui/switch.tsx b/src/frontend/src/components/ui/switch.tsx
index 8f473a0eb..8ec7c3c80 100644
--- a/src/frontend/src/components/ui/switch.tsx
+++ b/src/frontend/src/components/ui/switch.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
import * as SwitchPrimitives from "@radix-ui/react-switch";
+import * as React from "react";
import { cn } from "../../utils";
const Switch = React.forwardRef<
diff --git a/src/frontend/src/components/ui/tabs.tsx b/src/frontend/src/components/ui/tabs.tsx
index 39864abed..8c382e35e 100644
--- a/src/frontend/src/components/ui/tabs.tsx
+++ b/src/frontend/src/components/ui/tabs.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
import * as TabsPrimitive from "@radix-ui/react-tabs";
+import * as React from "react";
import { cn } from "../../utils";
const Tabs = TabsPrimitive.Root;
diff --git a/src/frontend/src/components/ui/tooltip.tsx b/src/frontend/src/components/ui/tooltip.tsx
index b2ec0f701..dc847052e 100644
--- a/src/frontend/src/components/ui/tooltip.tsx
+++ b/src/frontend/src/components/ui/tooltip.tsx
@@ -1,7 +1,7 @@
"use client";
-import * as React from "react";
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
+import * as React from "react";
import { cn } from "../../utils";
const TooltipProvider = TooltipPrimitive.Provider;
diff --git a/src/frontend/src/constants.tsx b/src/frontend/src/constants.tsx
index c823abc1d..bb54427f9 100644
--- a/src/frontend/src/constants.tsx
+++ b/src/frontend/src/constants.tsx
@@ -1,10 +1,9 @@
// src/constants.tsx
-import { MessageSquareDashed } from "lucide-react";
+import { MessageSquare } from "lucide-react";
import { FlowType } from "./types/flow";
import { TabsState } from "./types/tabs";
import { buildInputs, buildTweaks } from "./utils";
-import { MessageSquare } from "lucide-react";
/**
* The base text for subtitle of Export Dialog (Toolbar)
diff --git a/src/frontend/src/contexts/SSEContext.tsx b/src/frontend/src/contexts/SSEContext.tsx
index 83b1d4c89..9db32310b 100644
--- a/src/frontend/src/contexts/SSEContext.tsx
+++ b/src/frontend/src/contexts/SSEContext.tsx
@@ -1,10 +1,4 @@
-import {
- createContext,
- useContext,
- useState,
- useEffect,
- useCallback,
-} from "react";
+import { createContext, useCallback, useContext, useState } from "react";
const initialValue = {
updateSSEData: ({}) => {},
diff --git a/src/frontend/src/contexts/index.tsx b/src/frontend/src/contexts/index.tsx
index 750df65d2..13771673c 100644
--- a/src/frontend/src/contexts/index.tsx
+++ b/src/frontend/src/contexts/index.tsx
@@ -1,13 +1,13 @@
import { ReactNode } from "react";
+import { ReactFlowProvider } from "reactflow";
+import { SSEProvider } from "./SSEContext";
import { AlertProvider } from "./alertContext";
import { DarkProvider } from "./darkContext";
import { LocationProvider } from "./locationContext";
import PopUpProvider from "./popUpContext";
import { TabsProvider } from "./tabsContext";
import { TypesProvider } from "./typesContext";
-import { ReactFlowProvider } from "reactflow";
import { UndoRedoProvider } from "./undoRedoContext";
-import { SSEProvider } from "./SSEContext";
export default function ContextWrapper({ children }: { children: ReactNode }) {
//element to wrap all context
diff --git a/src/frontend/src/contexts/popUpContext.tsx b/src/frontend/src/contexts/popUpContext.tsx
index d46f51f00..8da50278c 100644
--- a/src/frontend/src/contexts/popUpContext.tsx
+++ b/src/frontend/src/contexts/popUpContext.tsx
@@ -1,5 +1,4 @@
-import { createContext } from "react";
-import React, { useState } from "react";
+import React, { createContext, useState } from "react";
// context to set JSX element on the DOM
export const PopUpContext = createContext({
diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx
index 8105819a0..001152c9c 100644
--- a/src/frontend/src/contexts/tabsContext.tsx
+++ b/src/frontend/src/contexts/tabsContext.tsx
@@ -1,33 +1,33 @@
+import _ from "lodash";
import {
- createContext,
- useEffect,
- useState,
- useRef,
ReactNode,
+ createContext,
useContext,
+ useEffect,
+ useRef,
+ useState,
} from "react";
+import { addEdge } from "reactflow";
+import ShortUniqueId from "short-unique-id";
+import {
+ deleteFlowFromDatabase,
+ downloadFlowsFromDatabase,
+ readFlowsFromDatabase,
+ saveFlowToDatabase,
+ updateFlowInDatabase,
+ uploadFlowsToDatabase,
+} from "../controllers/API";
+import { APIClassType, APITemplateType } from "../types/api";
import { FlowType, NodeType } from "../types/flow";
import { TabsContextType, TabsState } from "../types/tabs";
import {
- updateIds,
- updateTemplate,
getRandomDescription,
getRandomName,
+ updateIds,
+ updateTemplate,
} from "../utils";
import { alertContext } from "./alertContext";
import { typesContext } from "./typesContext";
-import { APIClassType, APITemplateType } from "../types/api";
-import ShortUniqueId from "short-unique-id";
-import { addEdge } from "reactflow";
-import {
- readFlowsFromDatabase,
- deleteFlowFromDatabase,
- saveFlowToDatabase,
- downloadFlowsFromDatabase,
- uploadFlowsToDatabase,
- updateFlowInDatabase,
-} from "../controllers/API";
-import _ from "lodash";
const uid = new ShortUniqueId({ length: 5 });
diff --git a/src/frontend/src/contexts/typesContext.tsx b/src/frontend/src/contexts/typesContext.tsx
index 3179e582e..ff4cc1c29 100644
--- a/src/frontend/src/contexts/typesContext.tsx
+++ b/src/frontend/src/contexts/typesContext.tsx
@@ -1,8 +1,8 @@
import { createContext, ReactNode, useEffect, useState } from "react";
import { Node } from "reactflow";
-import { typesContextType } from "../types/typesContext";
import { getAll } from "../controllers/API";
import { APIKindType } from "../types/api";
+import { typesContextType } from "../types/typesContext";
//context to share types adn functions from nodes to flow
diff --git a/src/frontend/src/contexts/undoRedoContext.tsx b/src/frontend/src/contexts/undoRedoContext.tsx
index b0f8ca6b9..3df201082 100644
--- a/src/frontend/src/contexts/undoRedoContext.tsx
+++ b/src/frontend/src/contexts/undoRedoContext.tsx
@@ -1,3 +1,4 @@
+import { cloneDeep } from "lodash";
import {
createContext,
useCallback,
@@ -6,7 +7,6 @@ import {
useState,
} from "react";
import { Edge, Node, useReactFlow } from "reactflow";
-import { cloneDeep } from "lodash";
import { TabsContext } from "./tabsContext";
type undoRedoContextType = {
diff --git a/src/frontend/src/controllers/API/index.ts b/src/frontend/src/controllers/API/index.ts
index 72204ee68..2d6f951f0 100644
--- a/src/frontend/src/controllers/API/index.ts
+++ b/src/frontend/src/controllers/API/index.ts
@@ -1,15 +1,15 @@
-import {
- BuildStatusTypeAPI,
- errorsTypeAPI,
- InitTypeAPI,
- UploadFileTypeAPI,
- APIClassType,
- PromptTypeAPI,
-} from "./../../types/api/index";
-import { APIObjectType, sendAllProps } from "../../types/api/index";
import axios, { AxiosResponse } from "axios";
-import { FlowStyleType, FlowType } from "../../types/flow";
import { ReactFlowJsonObject } from "reactflow";
+import { APIObjectType, sendAllProps } from "../../types/api/index";
+import { FlowStyleType, FlowType } from "../../types/flow";
+import {
+ APIClassType,
+ BuildStatusTypeAPI,
+ InitTypeAPI,
+ PromptTypeAPI,
+ UploadFileTypeAPI,
+ errorsTypeAPI,
+} from "./../../types/api/index";
/**
* Fetches all objects from the API endpoint.
diff --git a/src/frontend/src/index.tsx b/src/frontend/src/index.tsx
index 088db15a8..794fcbf32 100644
--- a/src/frontend/src/index.tsx
+++ b/src/frontend/src/index.tsx
@@ -1,9 +1,8 @@
-import React from "react";
import ReactDOM from "react-dom/client";
-import App from "./App";
-import reportWebVitals from "./reportWebVitals";
import { BrowserRouter } from "react-router-dom";
+import App from "./App";
import ContextWrapper from "./contexts";
+import reportWebVitals from "./reportWebVitals";
import "./index.css";
diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx
index 99fd03941..ea802cbad 100644
--- a/src/frontend/src/modals/ApiModal/index.tsx
+++ b/src/frontend/src/modals/ApiModal/index.tsx
@@ -1,42 +1,15 @@
-import { useContext, useEffect, useRef, useState } from "react";
-import { PopUpContext } from "../../contexts/popUpContext";
+import "ace-builds/src-noconflict/ext-language_tools";
import "ace-builds/src-noconflict/mode-python";
import "ace-builds/src-noconflict/theme-github";
import "ace-builds/src-noconflict/theme-twilight";
-import "ace-builds/src-noconflict/ext-language_tools";
+import { useContext, useEffect, useRef, useState } from "react";
+import { PopUpContext } from "../../contexts/popUpContext";
// import "ace-builds/webpack-resolver";
-import { darkContext } from "../../contexts/darkContext";
+import { Check, Clipboard, Code2 } from "lucide-react";
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism";
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "../../components/ui/dialog";
-import { FlowType } from "../../types/flow/index";
-import { getCurlCode, getPythonApiCode, getPythonCode } from "../../constants";
-import { EXPORT_CODE_DIALOG } from "../../constants";
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "../../components/ui/tabs";
-import { Check, Clipboard, Code2 } from "lucide-react";
-import {
- Table,
- TableBody,
- TableCaption,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "../../components/ui/table";
-import { buildTweaks, classNames, limitScrollFieldsModal } from "../../utils";
import AccordionComponent from "../../components/AccordionComponent";
+import ShadTooltip from "../../components/ShadTooltipComponent";
import CodeAreaComponent from "../../components/codeAreaComponent";
import Dropdown from "../../components/dropdownComponent";
import FloatComponent from "../../components/floatComponent";
@@ -47,9 +20,38 @@ import IntComponent from "../../components/intComponent";
import PromptAreaComponent from "../../components/promptComponent";
import TextAreaComponent from "../../components/textAreaComponent";
import ToggleShadComponent from "../../components/toggleShadComponent";
-import ShadTooltip from "../../components/ShadTooltipComponent";
-import { cloneDeep, filter } from "lodash";
+import {
+ Dialog,
+ DialogContent,
+ DialogDescription,
+ DialogHeader,
+ DialogTitle,
+ DialogTrigger,
+} from "../../components/ui/dialog";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "../../components/ui/table";
+import {
+ Tabs,
+ TabsContent,
+ TabsList,
+ TabsTrigger,
+} from "../../components/ui/tabs";
+import {
+ EXPORT_CODE_DIALOG,
+ getCurlCode,
+ getPythonApiCode,
+ getPythonCode,
+} from "../../constants";
+import { darkContext } from "../../contexts/darkContext";
import { TabsContext } from "../../contexts/tabsContext";
+import { FlowType } from "../../types/flow/index";
+import { buildTweaks, classNames } from "../../utils";
export default function ApiModal({ flow }: { flow: FlowType }) {
const [open, setOpen] = useState(true);
@@ -420,7 +422,6 @@ export default function ApiModal({ flow }: { flow: FlowType }) {
) : t.data.node.template[n]
.multiline ? (
))}
- {/*
+ {/*
diff --git a/src/frontend/src/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx
index c6cd65243..7bf8f54df 100644
--- a/src/frontend/src/modals/EditNodeModal/index.tsx
+++ b/src/frontend/src/modals/EditNodeModal/index.tsx
@@ -1,26 +1,17 @@
+import { Variable } from "lucide-react";
import { useContext, useEffect, useRef, useState } from "react";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { NodeDataType } from "../../types/flow";
-import { classNames, limitScrollFieldsModal } from "../../utils";
-import { typesContext } from "../../contexts/typesContext";
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "../../components/ui/table";
-import ToggleShadComponent from "../../components/toggleShadComponent";
-import InputListComponent from "../../components/inputListComponent";
-import TextAreaComponent from "../../components/textAreaComponent";
-import InputComponent from "../../components/inputComponent";
-import FloatComponent from "../../components/floatComponent";
-import Dropdown from "../../components/dropdownComponent";
-import IntComponent from "../../components/intComponent";
-import InputFileComponent from "../../components/inputFileComponent";
-import PromptAreaComponent from "../../components/promptComponent";
import CodeAreaComponent from "../../components/codeAreaComponent";
+import Dropdown from "../../components/dropdownComponent";
+import FloatComponent from "../../components/floatComponent";
+import InputComponent from "../../components/inputComponent";
+import InputFileComponent from "../../components/inputFileComponent";
+import InputListComponent from "../../components/inputListComponent";
+import IntComponent from "../../components/intComponent";
+import PromptAreaComponent from "../../components/promptComponent";
+import TextAreaComponent from "../../components/textAreaComponent";
+import ToggleShadComponent from "../../components/toggleShadComponent";
+import { Badge } from "../../components/ui/badge";
+import { Button } from "../../components/ui/button";
import {
Dialog,
DialogContent,
@@ -30,10 +21,19 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
-import { Button } from "../../components/ui/button";
-import { Badge } from "../../components/ui/badge";
-import { Variable } from "lucide-react";
import { TabsContext } from "../../contexts/tabsContext";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "../../components/ui/table";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { typesContext } from "../../contexts/typesContext";
+import { NodeDataType } from "../../types/flow";
+import { classNames, limitScrollFieldsModal } from "../../utils";
export default function EditNodeModal({ data }: { data: NodeDataType }) {
const [open, setOpen] = useState(true);
diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx
index 70344a996..3208b989b 100644
--- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx
+++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx
@@ -1,14 +1,14 @@
import { useState } from "react";
-import InputListComponent from "../../../../components/inputListComponent";
-import Dropdown from "../../../../components/dropdownComponent";
-import TextAreaComponent from "../../../../components/textAreaComponent";
-import InputComponent from "../../../../components/inputComponent";
-import ToggleComponent from "../../../../components/toggleComponent";
-import FloatComponent from "../../../../components/floatComponent";
-import IntComponent from "../../../../components/intComponent";
-import InputFileComponent from "../../../../components/inputFileComponent";
-import PromptAreaComponent from "../../../../components/promptComponent";
import CodeAreaComponent from "../../../../components/codeAreaComponent";
+import Dropdown from "../../../../components/dropdownComponent";
+import FloatComponent from "../../../../components/floatComponent";
+import InputComponent from "../../../../components/inputComponent";
+import InputFileComponent from "../../../../components/inputFileComponent";
+import InputListComponent from "../../../../components/inputListComponent";
+import IntComponent from "../../../../components/intComponent";
+import PromptAreaComponent from "../../../../components/promptComponent";
+import TextAreaComponent from "../../../../components/textAreaComponent";
+import ToggleComponent from "../../../../components/toggleComponent";
import { classNames } from "../../../../utils";
export default function ModalField({
diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx
index 41ca699a9..c61af4ff4 100644
--- a/src/frontend/src/modals/NodeModal/index.tsx
+++ b/src/frontend/src/modals/NodeModal/index.tsx
@@ -1,6 +1,8 @@
import { Dialog, Transition } from "@headlessui/react";
+import { X } from "lucide-react";
import { Fragment, useContext, useRef, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
+import { typesContext } from "../../contexts/typesContext";
import { NodeDataType } from "../../types/flow";
import {
classNames,
@@ -9,9 +11,7 @@ import {
nodeIconsLucide,
toTitleCase,
} from "../../utils";
-import { typesContext } from "../../contexts/typesContext";
import ModalField from "./components/ModalField";
-import { X } from "lucide-react";
export default function NodeModal({ data }: { data: NodeDataType }) {
const [open, setOpen] = useState(true);
diff --git a/src/frontend/src/modals/chatModal/chatMessage/index.tsx b/src/frontend/src/modals/chatModal/chatMessage/index.tsx
index 6b1aecca2..5e130015a 100644
--- a/src/frontend/src/modals/chatModal/chatMessage/index.tsx
+++ b/src/frontend/src/modals/chatModal/chatMessage/index.tsx
@@ -1,17 +1,17 @@
+import Convert from "ansi-to-html";
+import DOMPurify from "dompurify";
+import { MessageCircle, User2 } from "lucide-react";
import { useEffect, useRef, useState } from "react";
-import { ChatMessageType } from "../../../types/chat";
-import { classNames } from "../../../utils";
-import AiIcon from "../../../assets/Gooey Ring-5s-271px.svg";
-import AiIconStill from "../../../assets/froze-flow.png";
-import FileCard from "../fileComponent";
import ReactMarkdown from "react-markdown";
import rehypeMathjax from "rehype-mathjax";
import remarkGfm from "remark-gfm";
import remarkMath from "remark-math";
+import AiIcon from "../../../assets/Gooey Ring-5s-271px.svg";
+import AiIconStill from "../../../assets/froze-flow.png";
+import { ChatMessageType } from "../../../types/chat";
+import { classNames } from "../../../utils";
+import FileCard from "../fileComponent";
import { CodeBlock } from "./codeBlock";
-import Convert from "ansi-to-html";
-import { User2, MessageCircle } from "lucide-react";
-import DOMPurify from "dompurify";
export default function ChatMessage({
chat,
lockChat,
diff --git a/src/frontend/src/modals/chatModal/index.tsx b/src/frontend/src/modals/chatModal/index.tsx
index 8cae31d8c..5cbc2d17b 100644
--- a/src/frontend/src/modals/chatModal/index.tsx
+++ b/src/frontend/src/modals/chatModal/index.tsx
@@ -1,14 +1,14 @@
import { Dialog, Transition } from "@headlessui/react";
+import { Eraser, MessagesSquare, X } from "lucide-react";
import { Fragment, useContext, useEffect, useRef, useState } from "react";
-import { FlowType } from "../../types/flow";
import { alertContext } from "../../contexts/alertContext";
-import { validateNodes } from "../../utils";
import { typesContext } from "../../contexts/typesContext";
-import ChatMessage from "./chatMessage";
-import { X, MessagesSquare, Eraser } from "lucide-react";
import { sendAllProps } from "../../types/api";
import { ChatMessageType } from "../../types/chat";
+import { FlowType } from "../../types/flow";
+import { validateNodes } from "../../utils";
import ChatInput from "./chatInput";
+import ChatMessage from "./chatMessage";
import _ from "lodash";
import { getHealth } from "../../controllers/API";
diff --git a/src/frontend/src/modals/codeAreaModal/index.tsx b/src/frontend/src/modals/codeAreaModal/index.tsx
index 8c2ebae86..e327bbb1b 100644
--- a/src/frontend/src/modals/codeAreaModal/index.tsx
+++ b/src/frontend/src/modals/codeAreaModal/index.tsx
@@ -1,14 +1,14 @@
+// organize-imports-ignore
import { useContext, useRef, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
import AceEditor from "react-ace";
+import "ace-builds/src-noconflict/ext-language_tools";
import "ace-builds/src-noconflict/mode-python";
import "ace-builds/src-noconflict/theme-github";
import "ace-builds/src-noconflict/theme-twilight";
-import "ace-builds/src-noconflict/ext-language_tools";
// import "ace-builds/webpack-resolver";
-import { darkContext } from "../../contexts/darkContext";
-import { postValidateCode } from "../../controllers/API";
-import { alertContext } from "../../contexts/alertContext";
+import { TerminalSquare } from "lucide-react";
+import { Button } from "../../components/ui/button";
import {
Dialog,
DialogContent,
@@ -18,9 +18,10 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
-import { Button } from "../../components/ui/button";
import { CODE_PROMPT_DIALOG_SUBTITLE } from "../../constants";
-import { TerminalSquare } from "lucide-react";
+import { alertContext } from "../../contexts/alertContext";
+import { darkContext } from "../../contexts/darkContext";
+import { postValidateCode } from "../../controllers/API";
import { APIClassType } from "../../types/api";
export default function CodeAreaModal({
diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx
index bef5b9244..f4a66c7b9 100644
--- a/src/frontend/src/modals/exportModal/index.tsx
+++ b/src/frontend/src/modals/exportModal/index.tsx
@@ -1,8 +1,8 @@
+import { Download } from "lucide-react";
import { useContext, useRef, useState } from "react";
-import { alertContext } from "../../contexts/alertContext";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { TabsContext } from "../../contexts/tabsContext";
-import { removeApiKeys } from "../../utils";
+import EditFlowSettings from "../../components/EditFlowSettingsComponent";
+import { Button } from "../../components/ui/button";
+import { Checkbox } from "../../components/ui/checkbox";
import {
Dialog,
DialogContent,
@@ -12,11 +12,11 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
-import { Button } from "../../components/ui/button";
-import { Checkbox } from "../../components/ui/checkbox";
import { EXPORT_DIALOG_SUBTITLE } from "../../constants";
-import { Download } from "lucide-react";
-import EditFlowSettings from "../../components/EditFlowSettingsComponent";
+import { alertContext } from "../../contexts/alertContext";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { TabsContext } from "../../contexts/tabsContext";
+import { removeApiKeys } from "../../utils";
export default function ExportModal() {
const [open, setOpen] = useState(true);
diff --git a/src/frontend/src/modals/flowSettingsModal/index.tsx b/src/frontend/src/modals/flowSettingsModal/index.tsx
index ce9e474b8..44f82e331 100644
--- a/src/frontend/src/modals/flowSettingsModal/index.tsx
+++ b/src/frontend/src/modals/flowSettingsModal/index.tsx
@@ -1,7 +1,7 @@
+import { Settings2 } from "lucide-react";
import { useContext, useRef, useState } from "react";
-import { alertContext } from "../../contexts/alertContext";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { TabsContext } from "../../contexts/tabsContext";
+import EditFlowSettings from "../../components/EditFlowSettingsComponent";
+import { Button } from "../../components/ui/button";
import {
Dialog,
DialogContent,
@@ -11,11 +11,10 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
-import { Button } from "../../components/ui/button";
import { SETTINGS_DIALOG_SUBTITLE } from "../../constants";
-import EditFlowSettings from "../../components/EditFlowSettingsComponent";
-import { Settings2 } from "lucide-react";
-import { updateFlowInDatabase } from "../../controllers/API";
+import { alertContext } from "../../contexts/alertContext";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { TabsContext } from "../../contexts/tabsContext";
export default function FlowSettingsModal() {
const [open, setOpen] = useState(true);
diff --git a/src/frontend/src/modals/formModal/chatInput/index.tsx b/src/frontend/src/modals/formModal/chatInput/index.tsx
index f5eeed885..3b31b0d42 100644
--- a/src/frontend/src/modals/formModal/chatInput/index.tsx
+++ b/src/frontend/src/modals/formModal/chatInput/index.tsx
@@ -1,7 +1,6 @@
+import { Lock, LucideSend } from "lucide-react";
+import { useEffect } from "react";
import { classNames } from "../../../utils";
-import { useContext, useEffect, useRef, useState } from "react";
-import { TabsContext } from "../../../contexts/tabsContext";
-import { Eraser, Lock, LucideSend } from "lucide-react";
export default function ChatInput({
lockChat,
diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx
index 19cb40d4d..af3388596 100644
--- a/src/frontend/src/modals/formModal/chatMessage/index.tsx
+++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx
@@ -1,32 +1,17 @@
-import { useEffect, useRef, useState } from "react";
-import { ChatMessageType } from "../../../types/chat";
-import { classNames } from "../../../utils";
-import AiIcon from "../../../assets/Gooey Ring-5s-271px.svg";
-import AiIconStill from "../../../assets/froze-flow.png";
-import Robot from "../../../assets/robot.png";
-import MaleTechnology from "../../../assets/male-technologist.png";
-import FileCard from "../fileComponent";
+import Convert from "ansi-to-html";
+import { ChevronDown } from "lucide-react";
+import { useState } from "react";
import ReactMarkdown from "react-markdown";
import rehypeMathjax from "rehype-mathjax";
import remarkGfm from "remark-gfm";
import remarkMath from "remark-math";
-import { CodeBlock } from "./codeBlock";
-import Convert from "ansi-to-html";
-import {
- User2,
- MessageSquare,
- ChevronDown,
- MessageCircle,
- MessageSquareDashed,
-} from "lucide-react";
-import {
- Accordion,
- AccordionContent,
- AccordionItem,
- AccordionTrigger,
-} from "../../../components/ui/accordion";
-import { Badge } from "../../../components/ui/badge";
+import MaleTechnology from "../../../assets/male-technologist.png";
+import Robot from "../../../assets/robot.png";
import { THOUGHTS_ICON } from "../../../constants";
+import { ChatMessageType } from "../../../types/chat";
+import { classNames } from "../../../utils";
+import FileCard from "../fileComponent";
+import { CodeBlock } from "./codeBlock";
export default function ChatMessage({
chat,
diff --git a/src/frontend/src/modals/formModal/fileComponent/index.tsx b/src/frontend/src/modals/formModal/fileComponent/index.tsx
index 74f6155b7..6ede4e136 100644
--- a/src/frontend/src/modals/formModal/fileComponent/index.tsx
+++ b/src/frontend/src/modals/formModal/fileComponent/index.tsx
@@ -1,6 +1,6 @@
import * as base64js from "base64-js";
-import { useState } from "react";
import { DownloadCloud, File } from "lucide-react";
+import { useState } from "react";
export default function FileCard({ fileName, content, fileType }) {
const handleDownload = () => {
diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx
index a6633265b..0168708ec 100644
--- a/src/frontend/src/modals/formModal/index.tsx
+++ b/src/frontend/src/modals/formModal/index.tsx
@@ -1,15 +1,23 @@
+import { Eraser, TerminalSquare, Variable } from "lucide-react";
import { useContext, useEffect, useRef, useState } from "react";
-import { FlowType } from "../../types/flow";
import { alertContext } from "../../contexts/alertContext";
-import { classNames, validateNodes } from "../../utils";
import { typesContext } from "../../contexts/typesContext";
-import ChatMessage from "./chatMessage";
-import { TerminalSquare, MessageSquare, Variable, Eraser } from "lucide-react";
import { sendAllProps } from "../../types/api";
import { ChatMessageType } from "../../types/chat";
+import { FlowType } from "../../types/flow";
+import { classNames, validateNodes } from "../../utils";
import ChatInput from "./chatInput";
+import ChatMessage from "./chatMessage";
import _ from "lodash";
+import ToggleShadComponent from "../../components/toggleShadComponent";
+import {
+ Accordion,
+ AccordionContent,
+ AccordionItem,
+ AccordionTrigger,
+} from "../../components/ui/accordion";
+import { Badge } from "../../components/ui/badge";
import {
Dialog,
DialogContent,
@@ -18,17 +26,9 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
+import { Textarea } from "../../components/ui/textarea";
import { CHAT_FORM_DIALOG_SUBTITLE, THOUGHTS_ICON } from "../../constants";
import { TabsContext } from "../../contexts/tabsContext";
-import {
- Accordion,
- AccordionContent,
- AccordionItem,
- AccordionTrigger,
-} from "../../components/ui/accordion";
-import { Textarea } from "../../components/ui/textarea";
-import { Badge } from "../../components/ui/badge";
-import ToggleShadComponent from "../../components/toggleShadComponent";
export default function FormModal({
flow,
diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx
index b0a0ae315..ba3fb672f 100644
--- a/src/frontend/src/modals/genericModal/index.tsx
+++ b/src/frontend/src/modals/genericModal/index.tsx
@@ -1,8 +1,9 @@
-import { useContext, useRef, useState, useEffect } from "react";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { darkContext } from "../../contexts/darkContext";
-import { postValidatePrompt } from "../../controllers/API";
-import { alertContext } from "../../contexts/alertContext";
+import DOMPurify from "dompurify";
+import { FileText, Variable } from "lucide-react";
+import { useContext, useEffect, useRef, useState } from "react";
+import ShadTooltip from "../../components/ShadTooltipComponent";
+import { Badge } from "../../components/ui/badge";
+import { Button } from "../../components/ui/button";
import {
Dialog,
DialogContent,
@@ -12,14 +13,16 @@ import {
DialogTitle,
DialogTrigger,
} from "../../components/ui/dialog";
-import { Button } from "../../components/ui/button";
import { Textarea } from "../../components/ui/textarea";
import {
HIGHLIGH_CSS,
PROMPT_DIALOG_SUBTITLE,
TEXT_DIALOG_SUBTITLE,
} from "../../constants";
-import { FileText } from "lucide-react";
+import { alertContext } from "../../contexts/alertContext";
+import { darkContext } from "../../contexts/darkContext";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { postValidatePrompt } from "../../controllers/API";
import { APIClassType } from "../../types/api";
import {
INVALID_CHARACTERS,
@@ -29,10 +32,6 @@ import {
regexHighlight,
varHighlightHTML,
} from "../../utils";
-import { Badge } from "../../components/ui/badge";
-import ShadTooltip from "../../components/ShadTooltipComponent";
-import DOMPurify from "dompurify";
-import { Variable } from "lucide-react";
export default function GenericModal({
field_name = "",
@@ -238,39 +237,38 @@ export default function GenericModal({
{type == TypeModal.PROMPT && (
<>
-
-
-
-
- Input Variables:
-
+
+
+
+
+ Input Variables:
+
- {wordsHighlight.map((word, index) => (
-
- (
+
-
-
- {word.replace(/[{}]/g, "").length > 59
- ? word.replace(/[{}]/g, "").slice(0, 56) + "..."
- : word.replace(/[{}]/g, "")}
-
-
-
-
- ))}
+
+
+
+ {word.replace(/[{}]/g, "").length > 59
+ ? word.replace(/[{}]/g, "").slice(0, 56) + "..."
+ : word.replace(/[{}]/g, "")}
+
+
+
+
+ ))}
+
-
- >
+ >
)}
diff --git a/src/frontend/src/modals/importModal/buttonBox/index.tsx b/src/frontend/src/modals/importModal/buttonBox/index.tsx
index ffe79abaa..a1116a8d4 100644
--- a/src/frontend/src/modals/importModal/buttonBox/index.tsx
+++ b/src/frontend/src/modals/importModal/buttonBox/index.tsx
@@ -1,4 +1,4 @@
-import React, { ReactNode } from "react";
+import { ReactNode } from "react";
import { classNames } from "../../../utils";
export default function ButtonBox({
diff --git a/src/frontend/src/modals/importModal/index.tsx b/src/frontend/src/modals/importModal/index.tsx
index 600192d4c..4302fd9d8 100644
--- a/src/frontend/src/modals/importModal/index.tsx
+++ b/src/frontend/src/modals/importModal/index.tsx
@@ -1,18 +1,11 @@
import {
- DocumentDuplicateIcon,
- ComputerDesktopIcon,
- ArrowUpTrayIcon,
ArrowLeftIcon,
+ ArrowUpTrayIcon,
+ ComputerDesktopIcon,
+ DocumentDuplicateIcon,
} from "@heroicons/react/24/outline";
import { useContext, useRef, useState } from "react";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { TabsContext } from "../../contexts/tabsContext";
-import ButtonBox from "./buttonBox";
-import { getExamples } from "../../controllers/API";
-import { alertContext } from "../../contexts/alertContext";
import LoadingComponent from "../../components/loadingComponent";
-import { FlowType } from "../../types/flow";
-import { classNames } from "../../utils";
import {
Dialog,
DialogContent,
@@ -23,6 +16,13 @@ import {
DialogTrigger,
} from "../../components/ui/dialog";
import { IMPORT_DIALOG_SUBTITLE } from "../../constants";
+import { alertContext } from "../../contexts/alertContext";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { TabsContext } from "../../contexts/tabsContext";
+import { getExamples } from "../../controllers/API";
+import { FlowType } from "../../types/flow";
+import { classNames } from "../../utils";
+import ButtonBox from "./buttonBox";
export default function ImportModal() {
const [open, setOpen] = useState(true);
diff --git a/src/frontend/src/modals/promptModal/index.tsx b/src/frontend/src/modals/promptModal/index.tsx
index 1f575ded9..54fd46528 100644
--- a/src/frontend/src/modals/promptModal/index.tsx
+++ b/src/frontend/src/modals/promptModal/index.tsx
@@ -1,10 +1,10 @@
import { Dialog, Transition } from "@headlessui/react";
-import { XMarkIcon, DocumentTextIcon } from "@heroicons/react/24/outline";
+import { DocumentTextIcon, XMarkIcon } from "@heroicons/react/24/outline";
import { Fragment, useContext, useRef, useState } from "react";
-import { PopUpContext } from "../../contexts/popUpContext";
-import { darkContext } from "../../contexts/darkContext";
-import { checkPrompt } from "../../controllers/API";
import { alertContext } from "../../contexts/alertContext";
+import { darkContext } from "../../contexts/darkContext";
+import { PopUpContext } from "../../contexts/popUpContext";
+import { checkPrompt } from "../../controllers/API";
export default function PromptAreaModal({
value,
setValue,
diff --git a/src/frontend/src/modals/textAreaModal/index.tsx b/src/frontend/src/modals/textAreaModal/index.tsx
index 6064b3955..83186bbea 100644
--- a/src/frontend/src/modals/textAreaModal/index.tsx
+++ b/src/frontend/src/modals/textAreaModal/index.tsx
@@ -1,7 +1,7 @@
import { Dialog, Transition } from "@headlessui/react";
import {
- XMarkIcon,
ClipboardDocumentListIcon,
+ XMarkIcon,
} from "@heroicons/react/24/outline";
import { Fragment, useContext, useRef, useState } from "react";
import { PopUpContext } from "../../contexts/popUpContext";
diff --git a/src/frontend/src/pages/CommunityPage/index.tsx b/src/frontend/src/pages/CommunityPage/index.tsx
index b5e197f2c..6d09999cc 100644
--- a/src/frontend/src/pages/CommunityPage/index.tsx
+++ b/src/frontend/src/pages/CommunityPage/index.tsx
@@ -1,13 +1,13 @@
+import { GitFork, GithubIcon, Users2 } from "lucide-react";
import { useContext, useEffect, useState } from "react";
-import { GithubIcon, Users2, GitFork } from "lucide-react";
-import { TabsContext } from "../../contexts/tabsContext";
-import { alertContext } from "../../contexts/alertContext";
import { Button } from "../../components/ui/button";
+import { alertContext } from "../../contexts/alertContext";
+import { TabsContext } from "../../contexts/tabsContext";
+import { useNavigate } from "react-router-dom";
+import { CardComponent } from "../../components/cardComponent";
import { getExamples } from "../../controllers/API";
import { FlowType } from "../../types/flow";
-import { CardComponent } from "../../components/cardComponent";
-import { useNavigate } from "react-router-dom";
export default function CommunityPage() {
const { flows, setTabId, downloadFlows, uploadFlows, addFlow } =
useContext(TabsContext);
diff --git a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx
index 2f3b1d4ff..d49a099a5 100644
--- a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx
+++ b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx
@@ -1,6 +1,6 @@
import { Disclosure } from "@headlessui/react";
-import { DisclosureComponentType } from "../../../../types/components";
import { ChevronRight } from "lucide-react";
+import { DisclosureComponentType } from "../../../../types/components";
export default function DisclosureComponent({
button: { title, Icon, buttons = [] },
diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx
index 48a3f94ff..51c84580e 100644
--- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx
+++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx
@@ -1,21 +1,21 @@
-import _, { set } from "lodash";
-import { useContext, useRef, useState, useEffect, useCallback } from "react";
+import _ from "lodash";
+import { useCallback, useContext, useEffect, useRef, useState } from "react";
import ReactFlow, {
- OnSelectionChangeParams,
- useNodesState,
- useEdgesState,
- useReactFlow,
- EdgeChange,
- Connection,
- addEdge,
- NodeDragHandler,
- SelectionDragHandler,
- OnEdgesDelete,
- Edge,
- updateEdge,
Background,
+ Connection,
Controls,
+ Edge,
+ EdgeChange,
NodeChange,
+ NodeDragHandler,
+ OnEdgesDelete,
+ OnSelectionChangeParams,
+ SelectionDragHandler,
+ addEdge,
+ updateEdge,
+ useEdgesState,
+ useNodesState,
+ useReactFlow,
} from "reactflow";
import GenericNode from "../../../../CustomNodes/GenericNode";
import Chat from "../../../../components/chatComponent";
@@ -23,12 +23,12 @@ import { alertContext } from "../../../../contexts/alertContext";
import { locationContext } from "../../../../contexts/locationContext";
import { TabsContext } from "../../../../contexts/tabsContext";
import { typesContext } from "../../../../contexts/typesContext";
+import { undoRedoContext } from "../../../../contexts/undoRedoContext";
import { APIClassType } from "../../../../types/api";
import { FlowType, NodeType } from "../../../../types/flow";
import { isValidConnection } from "../../../../utils";
import ConnectionLineComponent from "../ConnectionLineComponent";
import ExtraSidebar from "../extraSidebarComponent";
-import { undoRedoContext } from "../../../../contexts/undoRedoContext";
const nodeTypes = {
genericNode: GenericNode,
diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
index 591bdf2d6..4a77975d4 100644
--- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
+++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
@@ -1,22 +1,21 @@
-import DisclosureComponent from "../DisclosureComponent";
+import { Code2, FileDown, FileUp, Menu, Save, Search } from "lucide-react";
+import { useContext, useState } from "react";
+import ShadTooltip from "../../../../components/ShadTooltipComponent";
+import { Separator } from "../../../../components/ui/separator";
+import { alertContext } from "../../../../contexts/alertContext";
+import { PopUpContext } from "../../../../contexts/popUpContext";
+import { TabsContext } from "../../../../contexts/tabsContext";
+import { typesContext } from "../../../../contexts/typesContext";
+import ApiModal from "../../../../modals/ApiModal";
+import ExportModal from "../../../../modals/exportModal";
+import { APIClassType, APIObjectType } from "../../../../types/api";
import {
classNames,
nodeColors,
nodeIconsLucide,
nodeNames,
} from "../../../../utils";
-import { useContext, useState } from "react";
-import { typesContext } from "../../../../contexts/typesContext";
-import { APIClassType, APIObjectType } from "../../../../types/api";
-import ShadTooltip from "../../../../components/ShadTooltipComponent";
-import { Code2, FileDown, FileUp, Save, Search } from "lucide-react";
-import { PopUpContext } from "../../../../contexts/popUpContext";
-import ExportModal from "../../../../modals/exportModal";
-import ApiModal from "../../../../modals/ApiModal";
-import { TabsContext } from "../../../../contexts/tabsContext";
-import { alertContext } from "../../../../contexts/alertContext";
-import { Separator } from "../../../../components/ui/separator";
-import { Menu } from "lucide-react";
+import DisclosureComponent from "../DisclosureComponent";
export default function ExtraSidebar() {
const { data } = useContext(typesContext);
diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx
index 0087d3759..0183dcb16 100644
--- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx
+++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx
@@ -1,10 +1,10 @@
+import { Copy, FileText, Settings2, Trash2 } from "lucide-react";
import { useContext, useState } from "react";
-import { Settings2, Copy, Trash2, FileText } from "lucide-react";
-import { classNames } from "../../../../utils";
-import { TabsContext } from "../../../../contexts/tabsContext";
import { useReactFlow } from "reactflow";
-import EditNodeModal from "../../../../modals/EditNodeModal";
import ShadTooltip from "../../../../components/ShadTooltipComponent";
+import { TabsContext } from "../../../../contexts/tabsContext";
+import EditNodeModal from "../../../../modals/EditNodeModal";
+import { classNames } from "../../../../utils";
const NodeToolbarComponent = (props) => {
const [nodeLength, setNodeLength] = useState(
diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx
index a13fabd98..f9b170197 100644
--- a/src/frontend/src/pages/FlowPage/index.tsx
+++ b/src/frontend/src/pages/FlowPage/index.tsx
@@ -1,8 +1,8 @@
import { useContext, useEffect, useState } from "react";
-import Page from "./components/PageComponent";
-import { TabsContext } from "../../contexts/tabsContext";
import { useParams } from "react-router-dom";
+import { TabsContext } from "../../contexts/tabsContext";
import { getVersion } from "../../controllers/API";
+import Page from "./components/PageComponent";
export default function FlowPage() {
const { flows, tabId, setTabId } = useContext(TabsContext);
diff --git a/src/frontend/src/pages/MainPage/index.tsx b/src/frontend/src/pages/MainPage/index.tsx
index 99df6a8a8..e2871a313 100644
--- a/src/frontend/src/pages/MainPage/index.tsx
+++ b/src/frontend/src/pages/MainPage/index.tsx
@@ -1,10 +1,10 @@
+import { Download, ExternalLink, Home, Plus, Upload } from "lucide-react";
import { useContext, useEffect } from "react";
-import { Download, Upload, Plus, Home, ExternalLink } from "lucide-react";
-import { TabsContext } from "../../contexts/tabsContext";
-import { Button } from "../../components/ui/button";
import { Link, useNavigate } from "react-router-dom";
import { CardComponent } from "../../components/cardComponent";
+import { Button } from "../../components/ui/button";
import { USER_PROJECTS_HEADER } from "../../constants";
+import { TabsContext } from "../../contexts/tabsContext";
export default function HomePage() {
const { flows, setTabId, downloadFlows, uploadFlows, addFlow, removeFlow } =
useContext(TabsContext);
diff --git a/src/frontend/src/prettierrc.js b/src/frontend/src/prettierrc.js
new file mode 100644
index 000000000..0be5884c6
--- /dev/null
+++ b/src/frontend/src/prettierrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ // ...
+ organizeImportsSkipDestructiveCodeActions: true,
+};
diff --git a/src/frontend/src/routes.tsx b/src/frontend/src/routes.tsx
index a208b121a..21b73f70b 100644
--- a/src/frontend/src/routes.tsx
+++ b/src/frontend/src/routes.tsx
@@ -1,7 +1,7 @@
import { Route, Routes } from "react-router-dom";
-import HomePage from "./pages/MainPage";
-import FlowPage from "./pages/FlowPage";
import CommunityPage from "./pages/CommunityPage";
+import FlowPage from "./pages/FlowPage";
+import HomePage from "./pages/MainPage";
const Router = () => {
return (
diff --git a/src/frontend/src/types/api/index.ts b/src/frontend/src/types/api/index.ts
index 505aae044..eaf862f29 100644
--- a/src/frontend/src/types/api/index.ts
+++ b/src/frontend/src/types/api/index.ts
@@ -1,4 +1,4 @@
-import { Node, Edge, Viewport } from "reactflow";
+import { Edge, Node, Viewport } from "reactflow";
//kind and class are just representative names to represent the actual structure of the object received by the API
export type APIObjectType = { kind: APIKindType; [key: string]: APIKindType };
diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts
index ece87a292..56269627e 100644
--- a/src/frontend/src/types/components/index.ts
+++ b/src/frontend/src/types/components/index.ts
@@ -1,7 +1,7 @@
import { ReactElement, ReactNode } from "react";
+import { APIClassType } from "../api";
import { NodeDataType } from "../flow/index";
import { typesContextType } from "../typesContext";
-import { APIClassType } from "../api";
export type InputComponentType = {
value: string;
disabled?: boolean;
diff --git a/src/frontend/src/types/flow/index.ts b/src/frontend/src/types/flow/index.ts
index b1f86392b..ccf9933ee 100644
--- a/src/frontend/src/types/flow/index.ts
+++ b/src/frontend/src/types/flow/index.ts
@@ -1,6 +1,5 @@
-import { ChatMessageType } from "./../chat/index";
-import { APIClassType } from "../api/index";
import { ReactFlowJsonObject, XYPosition } from "reactflow";
+import { APIClassType } from "../api/index";
export type FlowType = {
name: string;
diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts
index f74f0d584..7fb0cacb1 100644
--- a/src/frontend/src/utils.ts
+++ b/src/frontend/src/utils.ts
@@ -1,34 +1,9 @@
-import { Connection, Edge, Node, ReactFlowInstance } from "reactflow";
-import { FlowType, NodeType } from "./types/flow";
-import { APITemplateType } from "./types/api";
-import _ from "lodash";
-import { ChromaIcon } from "./icons/ChromaIcon";
-import { AnthropicIcon } from "./icons/Anthropic";
-import { AirbyteIcon } from "./icons/Airbyte";
-import { BingIcon } from "./icons/Bing";
-import { CohereIcon } from "./icons/Cohere";
-import { EvernoteIcon } from "./icons/Evernote";
-import { FBIcon } from "./icons/FacebookMessenger";
-import { GitBookIcon } from "./icons/GitBook";
-import { GoogleIcon } from "./icons/Google";
-import { HackerNewsIcon } from "./icons/hackerNews";
-import { HugginFaceIcon } from "./icons/HuggingFace";
-import { IFixIcon } from "./icons/IFixIt";
-import { MetaIcon } from "./icons/Meta";
-import { MidjourneyIcon } from "./icons/Midjorney";
-import { NotionIcon } from "./icons/Notion";
-import { OpenAiIcon } from "./icons/OpenAi";
-import { QDrantIcon } from "./icons/QDrant";
-import { SearxIcon } from "./icons/Searx";
-import { SlackIcon } from "./icons/Slack";
-import { PineconeIcon } from "./icons/Pinecone";
import clsx, { ClassValue } from "clsx";
-import { twMerge } from "tailwind-merge";
-import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants";
-import { ComponentType, SVGProps } from "react";
+import _ from "lodash";
import {
Compass,
Cpu,
+ FileSearch,
Fingerprint,
Gift,
Hammer,
@@ -41,15 +16,40 @@ import {
Paperclip,
Rocket,
Scissors,
- FileSearch,
TerminalSquare,
Wand2,
Wrench,
} from "lucide-react";
-import { SupabaseIcon } from "./icons/supabase";
+import { ComponentType, SVGProps } from "react";
+import { Connection, Edge, Node, ReactFlowInstance } from "reactflow";
+import { twMerge } from "tailwind-merge";
+import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants";
+import { AirbyteIcon } from "./icons/Airbyte";
+import { AnthropicIcon } from "./icons/Anthropic";
+import { BingIcon } from "./icons/Bing";
+import { ChromaIcon } from "./icons/ChromaIcon";
+import { CohereIcon } from "./icons/Cohere";
+import { EvernoteIcon } from "./icons/Evernote";
+import { FBIcon } from "./icons/FacebookMessenger";
+import { GitBookIcon } from "./icons/GitBook";
+import { GoogleIcon } from "./icons/Google";
+import { HugginFaceIcon } from "./icons/HuggingFace";
+import { IFixIcon } from "./icons/IFixIt";
+import { MetaIcon } from "./icons/Meta";
+import { MidjourneyIcon } from "./icons/Midjorney";
import { MongoDBIcon } from "./icons/MongoDB";
+import { NotionIcon } from "./icons/Notion";
+import { OpenAiIcon } from "./icons/OpenAi";
+import { PineconeIcon } from "./icons/Pinecone";
+import { QDrantIcon } from "./icons/QDrant";
+import { SearxIcon } from "./icons/Searx";
+import { SlackIcon } from "./icons/Slack";
import { VertexAIIcon } from "./icons/VertexAI";
+import { HackerNewsIcon } from "./icons/hackerNews";
+import { SupabaseIcon } from "./icons/supabase";
+import { APITemplateType } from "./types/api";
import { IVarHighlightType } from "./types/components";
+import { FlowType, NodeType } from "./types/flow";
export function classNames(...classes: Array) {
return classes.filter(Boolean).join(" ");
diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts
index 860c690ea..f051c2eee 100644
--- a/src/frontend/vite.config.ts
+++ b/src/frontend/vite.config.ts
@@ -1,5 +1,5 @@
-import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
+import { defineConfig } from "vite";
import svgr from "vite-plugin-svgr";
const apiRoutes = ["^/api/v1/", "/health"];
diff --git a/tests/test_agents_template.py b/tests/test_agents_template.py
index bf89f9996..93f4f8b5b 100644
--- a/tests/test_agents_template.py
+++ b/tests/test_agents_template.py
@@ -16,30 +16,94 @@ def test_zero_shot_agent(client: TestClient):
}
template = zero_shot_agent["template"]
- assert template["llm_chain"] == {
+ assert template["tools"] == {
"required": True,
"placeholder": "",
"show": True,
"multiline": False,
"password": False,
- "name": "llm_chain",
- "type": "LLMChain",
+ "name": "tools",
+ "type": "BaseTool",
+ "list": True,
+ "advanced": False,
+ "info": "",
+ }
+
+ # Additional assertions for other template variables
+ assert template["callback_manager"] == {
+ "required": False,
+ "placeholder": "",
+ "show": False,
+ "multiline": False,
+ "password": False,
+ "name": "callback_manager",
+ "type": "BaseCallbackManager",
"list": False,
"advanced": False,
"info": "",
}
- assert template["allowed_tools"] == {
- "required": False,
+ assert template["llm"] == {
+ "required": True,
"placeholder": "",
"show": True,
"multiline": False,
"password": False,
- "name": "allowed_tools",
- "type": "Tool",
+ "name": "llm",
+ "type": "BaseLanguageModel",
+ "list": False,
+ "advanced": False,
+ "info": "",
+ }
+ assert template["output_parser"] == {
+ "required": False,
+ "placeholder": "",
+ "show": False,
+ "multiline": False,
+ "password": False,
+ "name": "output_parser",
+ "type": "AgentOutputParser",
+ "list": False,
+ "advanced": False,
+ "info": "",
+ }
+ assert template["input_variables"] == {
+ "required": False,
+ "placeholder": "",
+ "show": False,
+ "multiline": False,
+ "password": False,
+ "name": "input_variables",
+ "type": "str",
"list": True,
"advanced": False,
"info": "",
}
+ assert template["prefix"] == {
+ "required": False,
+ "placeholder": "",
+ "show": True,
+ "multiline": True,
+ "value": "Answer the following questions as best you can. You have access to the following tools:",
+ "password": False,
+ "name": "prefix",
+ "type": "str",
+ "list": False,
+ "advanced": False,
+ "info": "",
+ }
+ assert template["suffix"] == {
+ "required": False,
+ "placeholder": "",
+ "show": True,
+ "multiline": True,
+ "value": "Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}",
+ "password": False,
+ "name": "suffix",
+ "type": "str",
+ "list": False,
+ "advanced": False,
+ "info": "",
+ }
def test_json_agent(client: TestClient):
diff --git a/tests/test_endpoints.py b/tests/test_endpoints.py
index 9e07dfb24..045af1ba5 100644
--- a/tests/test_endpoints.py
+++ b/tests/test_endpoints.py
@@ -1,6 +1,86 @@
import pytest
from fastapi.testclient import TestClient
from langflow.interface.tools.constants import CUSTOM_TOOLS
+from langflow.template.frontend_node.chains import TimeTravelGuideChainNode
+
+
+PROMPT_REQUEST = {
+ "name": "string",
+ "template": "string",
+ "frontend_node": {
+ "template": {},
+ "description": "string",
+ "base_classes": ["string"],
+ "name": "",
+ "display_name": "",
+ "documentation": "",
+ "custom_fields": {},
+ "output_types": [],
+ "field_formatters": {
+ "formatters": {"openai_api_key": {}},
+ "base_formatters": {
+ "kwargs": {},
+ "optional": {},
+ "list": {},
+ "dict": {},
+ "union": {},
+ "multiline": {},
+ "show": {},
+ "password": {},
+ "default": {},
+ "headers": {},
+ "dict_code_file": {},
+ "model_fields": {
+ "MODEL_DICT": {
+ "OpenAI": [
+ "text-davinci-003",
+ "text-davinci-002",
+ "text-curie-001",
+ "text-babbage-001",
+ "text-ada-001",
+ ],
+ "ChatOpenAI": [
+ "gpt-3.5-turbo-0613",
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-16k-0613",
+ "gpt-3.5-turbo-16k",
+ "gpt-4-0613",
+ "gpt-4-32k-0613",
+ "gpt-4",
+ "gpt-4-32k",
+ ],
+ "Anthropic": [
+ "claude-v1",
+ "claude-v1-100k",
+ "claude-instant-v1",
+ "claude-instant-v1-100k",
+ "claude-v1.3",
+ "claude-v1.3-100k",
+ "claude-v1.2",
+ "claude-v1.0",
+ "claude-instant-v1.1",
+ "claude-instant-v1.1-100k",
+ "claude-instant-v1.0",
+ ],
+ "ChatAnthropic": [
+ "claude-v1",
+ "claude-v1-100k",
+ "claude-instant-v1",
+ "claude-instant-v1-100k",
+ "claude-v1.3",
+ "claude-v1.3-100k",
+ "claude-v1.2",
+ "claude-v1.0",
+ "claude-instant-v1.1",
+ "claude-instant-v1.1-100k",
+ "claude-instant-v1.0",
+ ],
+ }
+ },
+ },
+ },
+ },
+}
def test_get_all(client: TestClient):
@@ -8,7 +88,7 @@ def test_get_all(client: TestClient):
assert response.status_code == 200
json_response = response.json()
# We need to test the custom nodes
- assert "ZeroShotPrompt" in json_response["prompts"]
+ assert "PromptTemplate" in json_response["prompts"]
# All CUSTOM_TOOLS(dict) should be in the response
assert all(tool in json_response["tools"] for tool in CUSTOM_TOOLS.keys())
@@ -95,15 +175,20 @@ INVALID_PROMPT = "This is an invalid prompt without any input variable."
def test_valid_prompt(client: TestClient):
- response = client.post("api/v1/validate/prompt", json={"template": VALID_PROMPT})
+ PROMPT_REQUEST["template"] = VALID_PROMPT
+ response = client.post("api/v1/validate/prompt", json=PROMPT_REQUEST)
assert response.status_code == 200
- assert response.json() == {"input_variables": ["product"]}
+ assert response.json()["input_variables"] == ["product"]
def test_invalid_prompt(client: TestClient):
- response = client.post("api/v1/validate/prompt", json={"template": INVALID_PROMPT})
+ PROMPT_REQUEST["template"] = INVALID_PROMPT
+ response = client.post(
+ "api/v1/validate/prompt",
+ json=PROMPT_REQUEST,
+ )
assert response.status_code == 200
- assert response.json() == {"input_variables": []}
+ assert response.json()["input_variables"] == []
@pytest.mark.parametrize(
@@ -116,8 +201,8 @@ def test_invalid_prompt(client: TestClient):
],
)
def test_various_prompts(client, prompt, expected_input_variables):
- response = client.post("api/v1/validate/prompt", json={"template": prompt})
+ TimeTravelGuideChainNode().to_dict()
+ PROMPT_REQUEST["template"] = prompt
+ response = client.post("api/v1/validate/prompt", json=PROMPT_REQUEST)
assert response.status_code == 200
- assert response.json() == {
- "input_variables": expected_input_variables,
- }
+ assert response.json()["input_variables"] == expected_input_variables
diff --git a/tests/test_graph.py b/tests/test_graph.py
index 11f97e044..228bbb4d6 100644
--- a/tests/test_graph.py
+++ b/tests/test_graph.py
@@ -9,13 +9,9 @@ from langchain.chains.base import Chain
from langchain.llms.fake import FakeListLLM
from langflow.graph import Graph
from langflow.graph.vertex.types import (
- AgentVertex,
- ChainVertex,
FileToolVertex,
LLMVertex,
- PromptVertex,
ToolkitVertex,
- ToolVertex,
WrapperVertex,
)
from langflow.processing.process import get_result_and_thought
@@ -244,10 +240,9 @@ def test_build_params(basic_graph):
assert "memory" in root.params
-def test_build(basic_graph, complex_graph):
+def test_build(basic_graph):
"""Test Node's build method"""
assert_agent_was_built(basic_graph)
- assert_agent_was_built(complex_graph)
def assert_agent_was_built(graph):
@@ -260,34 +255,6 @@ def assert_agent_was_built(graph):
assert isinstance(result, Chain)
-def test_agent_node_build(complex_graph):
- agent_node = get_node_by_type(complex_graph, AgentVertex)
- assert agent_node is not None
- built_object = agent_node.build()
- assert built_object is not None
-
-
-def test_tool_node_build(complex_graph):
- tool_node = get_node_by_type(complex_graph, ToolVertex)
- assert tool_node is not None
- built_object = tool_node.build()
- assert built_object is not None
-
-
-def test_chain_node_build(complex_graph):
- chain_node = get_node_by_type(complex_graph, ChainVertex)
- assert chain_node is not None
- built_object = chain_node.build()
- assert built_object is not None
-
-
-def test_prompt_node_build(complex_graph):
- prompt_node = get_node_by_type(complex_graph, PromptVertex)
- assert prompt_node is not None
- built_object = prompt_node.build()
- assert built_object is not None
-
-
def test_llm_node_build(basic_graph):
llm_node = get_node_by_type(basic_graph, LLMVertex)
assert llm_node is not None
diff --git a/tests/test_prompts_template.py b/tests/test_prompts_template.py
index 4e6030cab..5486f3034 100644
--- a/tests/test_prompts_template.py
+++ b/tests/test_prompts_template.py
@@ -92,51 +92,3 @@ def test_prompt_template(client: TestClient):
"advanced": False,
"info": "",
}
-
-
-def test_zero_shot_prompt(client: TestClient):
- response = client.get("api/v1/all")
- assert response.status_code == 200
- json_response = response.json()
- prompts = json_response["prompts"]
- prompt = prompts["ZeroShotPrompt"]
- template = prompt["template"]
- assert template["prefix"] == {
- "required": False,
- "placeholder": "",
- "show": True,
- "multiline": True,
- "value": "Answer the following questions as best you can. You have access to the following tools:", # noqa: E501
- "password": False,
- "name": "prefix",
- "type": "prompt",
- "list": False,
- "advanced": False,
- "info": "",
- }
- assert template["suffix"] == {
- "required": True,
- "placeholder": "",
- "show": True,
- "multiline": True,
- "value": "Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}",
- "password": False,
- "name": "suffix",
- "type": "prompt",
- "list": False,
- "advanced": False,
- "info": "",
- }
- assert template["format_instructions"] == {
- "required": True,
- "placeholder": "",
- "show": True,
- "multiline": True,
- "value": "Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question", # noqa: E501
- "password": False,
- "name": "format_instructions",
- "type": "prompt",
- "list": False,
- "advanced": False,
- "info": "",
- }