diff --git a/frontend/chains/editor/styles.js b/frontend/chains/editor/styles.js
index f984c7fc..b830fae7 100644
--- a/frontend/chains/editor/styles.js
+++ b/frontend/chains/editor/styles.js
@@ -20,6 +20,9 @@ import { ChainNode } from "chains/flow/ChainNode";
import { BranchNode } from "chains/flow/BranchNode";
import { MapNode } from "chains/flow/MapNode";
import { RootNode } from "chains/flow/RootNode";
+import { LoopIcon } from "icons/LoopIcon";
+import { SplitIcon } from "icons/SplitIcon";
+import { MergeIcon } from "icons/MergeIcon";
export const NODE_STYLES = {
llm: {
@@ -35,7 +38,9 @@ export const NODE_STYLES = {
component: ChainNode,
},
flow: {
- icon: faList,
+ icon: {
+ component: LoopIcon,
+ },
component: ChainNode,
},
memory: {
@@ -92,11 +97,15 @@ export const NODE_STYLES = {
icon: faBrain,
},
branch: {
- icon: faArrowRightFromBracket,
+ icon: {
+ component: SplitIcon,
+ },
component: BranchNode,
},
map: {
- icon: faArrowRightToBracket,
+ icon: {
+ component: MergeIcon,
+ },
component: MapNode,
},
root: {
diff --git a/frontend/chains/flow/ConfigNode.js b/frontend/chains/flow/ConfigNode.js
index 844eb445..e030ef30 100644
--- a/frontend/chains/flow/ConfigNode.js
+++ b/frontend/chains/flow/ConfigNode.js
@@ -1,5 +1,5 @@
import React, { useCallback, useContext, useMemo } from "react";
-import { Box, Flex, Heading, VStack } from "@chakra-ui/react";
+import { Box, Flex, Heading, HStack, Text, VStack } from "@chakra-ui/react";
import { Handle, useEdges, useReactFlow } from "reactflow";
import { faTrash } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
@@ -232,10 +232,12 @@ export const ConfigNode = ({ id, data, selected }) => {
className="drag-handle"
>
-
+
{" "}
- {node.name || type?.name || node.class_path.split(".").pop()}
-
+
+ {node.name || type?.name || node.class_path.split(".").pop()}
+
+
diff --git a/frontend/icons/ChatHistoryIcon.js b/frontend/icons/ChatHistoryIcon.js
new file mode 100644
index 00000000..2e758166
--- /dev/null
+++ b/frontend/icons/ChatHistoryIcon.js
@@ -0,0 +1,23 @@
+import React from "react";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faMessage, faClock } from "@fortawesome/free-solid-svg-icons";
+import { useColorMode } from "@chakra-ui/color-mode";
+import { Box } from "@chakra-ui/layout";
+import { StackableIcon } from "icons/StackableIcon";
+import { IndicatorIcon } from "icons/IndicatorIcon";
+
+const ChatHistoryIcon = () => {
+ const { colorMode } = useColorMode();
+ const iconColor = colorMode === "light" ? "gray.200" : "black";
+
+ return (
+
+
+
+
+
+
+ );
+};
+
+export default ChatHistoryIcon;
diff --git a/frontend/icons/IndicatorIcon.js b/frontend/icons/IndicatorIcon.js
index 965da103..4ef0f3a0 100644
--- a/frontend/icons/IndicatorIcon.js
+++ b/frontend/icons/IndicatorIcon.js
@@ -11,8 +11,8 @@ export const IndicatorIcon = ({ children, color, indicatorSize }) => {
bottom: 0,
right: 0,
transform: "translate(40%, 0%)",
- width: indicatorSize + 2 + "px", // Adjust size as needed
- height: indicatorSize + 2 + "px", // Adjust size as needed
+ width: (indicatorSize || 11) + 2 + "px", // Adjust size as needed
+ height: (indicatorSize || 11) + 2 + "px", // Adjust size as needed
borderRadius: "50%",
display: "flex",
justifyContent: "center",
diff --git a/frontend/icons/LoopIcon.js b/frontend/icons/LoopIcon.js
new file mode 100644
index 00000000..7567c798
--- /dev/null
+++ b/frontend/icons/LoopIcon.js
@@ -0,0 +1,13 @@
+import React from "react";
+import SVGIcon from "icons/SVGIcon";
+
+export const LoopIcon = ({ ...props }) => {
+ return (
+
+
+
+ );
+};
diff --git a/frontend/icons/MergeIcon.js b/frontend/icons/MergeIcon.js
new file mode 100644
index 00000000..4301e866
--- /dev/null
+++ b/frontend/icons/MergeIcon.js
@@ -0,0 +1,13 @@
+import React from "react";
+import SVGIcon from "icons/SVGIcon";
+
+export const MergeIcon = ({ ...props }) => {
+ return (
+
+
+
+ );
+};
diff --git a/frontend/icons/SVGIcon.js b/frontend/icons/SVGIcon.js
new file mode 100644
index 00000000..7b4f311b
--- /dev/null
+++ b/frontend/icons/SVGIcon.js
@@ -0,0 +1,22 @@
+import React from "react";
+import { Box, useToken } from "@chakra-ui/react";
+
+export const SVGIcon = ({ color, bg, children, svgProps, ...props }) => {
+ const colorToken = useToken("colors", color || "white");
+
+ return (
+
+
+
+ );
+};
+
+export default SVGIcon;
diff --git a/frontend/icons/SplitIcon.js b/frontend/icons/SplitIcon.js
new file mode 100644
index 00000000..6e739c2c
--- /dev/null
+++ b/frontend/icons/SplitIcon.js
@@ -0,0 +1,10 @@
+import React from "react";
+import SVGIcon from "icons/SVGIcon";
+
+export const SplitIcon = ({ ...props }) => {
+ return (
+
+
+
+ );
+};
diff --git a/frontend/site/Navigation.js b/frontend/site/Navigation.js
index 2257eef2..59074b8b 100644
--- a/frontend/site/Navigation.js
+++ b/frontend/site/Navigation.js
@@ -6,6 +6,7 @@ import { Link } from "react-router-dom";
import { useColorMode } from "@chakra-ui/color-mode";
import { SecretsMenuItem } from "secrets/SecretsMenuItem";
import { MenuItem } from "site/MenuItem";
+import ChatHistoryIcon from "icons/ChatHistoryIcon";
function Navigation() {
const { colorMode } = useColorMode();
@@ -25,7 +26,7 @@ function Navigation() {
{false && (