From d010a2f515ad145cbf8a0232584db63bef5eec11 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Thu, 6 Jul 2023 20:05:20 -0300 Subject: [PATCH 01/39] style: Fix characters passing through password icon --- src/frontend/src/components/inputComponent/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/components/inputComponent/index.tsx b/src/frontend/src/components/inputComponent/index.tsx index 61942f834..f1159cdd5 100644 --- a/src/frontend/src/components/inputComponent/index.tsx +++ b/src/frontend/src/components/inputComponent/index.tsx @@ -45,7 +45,7 @@ export default function InputComponent({ if (disableCopyPaste) setDisableCopyPaste(false); }} className={classNames( - " pr-12 ", + " pr-9 ", disabled ? " input-disable " : "", password && !pwdVisible && myValue !== "" ? "password" : "", editNode ? " input-edit-node " : " input-primary ", From 512b499915e8b24a9675cf9b0d35e6d5321a7bd3 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 7 Jul 2023 13:51:16 -0300 Subject: [PATCH 02/39] =?UTF-8?q?=E2=9C=A8=20feat(constants.tsx):=20add=20?= =?UTF-8?q?support=20for=20dynamic=20inputs=20in=20getPythonApiCode=20and?= =?UTF-8?q?=20getCurlCode=20functions=20In=20the=20getPythonApiCode=20func?= =?UTF-8?q?tion,=20the=20run=5Fflow=20function=20had=20an=20unnecessary=20?= =?UTF-8?q?type=20annotation=20for=20the=20message=20parameter.=20It=20was?= =?UTF-8?q?=20removed=20to=20improve=20code=20readability.=20Additionally,?= =?UTF-8?q?=20the=20variable=20name=20in=20the=20run=5Fflow=20function=20w?= =?UTF-8?q?as=20changed=20from=20inputs=20to=20payload=20to=20better=20ref?= =?UTF-8?q?lect=20its=20purpose.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the getCurlCode function, support for dynamic inputs was added. The inputs variable is now passed as an argument to the flow function, allowing for flexibility in providing different inputs when generating the curl code. 🐛 fix(constants.tsx): remove unnecessary type annotation and fix variable name in run_flow function --- src/frontend/src/constants.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/constants.tsx b/src/frontend/src/constants.tsx index a31074a16..8c14f919c 100644 --- a/src/frontend/src/constants.tsx +++ b/src/frontend/src/constants.tsx @@ -85,6 +85,7 @@ export const getPythonApiCode = ( const tweaks = buildTweaks(flow); const inputs = buildInputs(tabsState, flow.id); return `import requests + from typing import Optional BASE_API_URL = "${window.location.protocol}//${ window.location.host @@ -98,7 +99,7 @@ TWEAKS = ${ : JSON.stringify(tweaks, null, 2) } -def run_flow(message: str, flow_id: str, tweaks: dict = None) -> dict: +def run_flow(inputs: dict, flow_id: str, tweaks: Optional[dict] = None) -> dict: """ Run a flow with a given message and optional tweaks. @@ -109,7 +110,7 @@ def run_flow(message: str, flow_id: str, tweaks: dict = None) -> dict: """ api_url = f"{BASE_API_URL}/{flow_id}" - payload = {"inputs": ${inputs}} + payload = {"inputs": inputs} if tweaks: payload["tweaks"] = tweaks @@ -118,8 +119,8 @@ def run_flow(message: str, flow_id: str, tweaks: dict = None) -> dict: return response.json() # Setup any tweaks you want to apply to the flow - -print(run_flow("Your message", flow_id=FLOW_ID, tweaks=TWEAKS))`; +inputs = ${inputs} +print(run_flow(inputs, flow_id=FLOW_ID, tweaks=TWEAKS))`; }; /** * Function to get the curl code for the API @@ -134,6 +135,7 @@ export const getCurlCode = ( const flowId = flow.id; const tweaks = buildTweaks(flow); const inputs = buildInputs(tabsState, flow.id); + return `curl -X POST \\ ${window.location.protocol}//${ window.location.host @@ -166,7 +168,8 @@ TWEAKS = ${ } flow = load_flow_from_json("${flowName}.json", tweaks=TWEAKS) # Now you can use it like any chain -flow(${inputs})`; +inputs = ${inputs} +flow(inputs)`; }; function buildTweakObject(tweak) { From e422ed9c78bb590f1abf24fedc54b311eb9589fb Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 7 Jul 2023 13:55:15 -0300 Subject: [PATCH 03/39] =?UTF-8?q?=F0=9F=90=9B=20fix(constants.tsx):=20fix?= =?UTF-8?q?=20indentation=20issue=20in=20getPythonApiCode=20function=20The?= =?UTF-8?q?=20import=20statement=20for=20the=20'typing'=20module=20was=20i?= =?UTF-8?q?ncorrectly=20indented,=20causing=20a=20syntax=20error.=20The=20?= =?UTF-8?q?import=20statement=20has=20been=20fixed=20to=20align=20with=20t?= =?UTF-8?q?he=20correct=20indentation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/constants.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/constants.tsx b/src/frontend/src/constants.tsx index 8c14f919c..601b2ba23 100644 --- a/src/frontend/src/constants.tsx +++ b/src/frontend/src/constants.tsx @@ -85,7 +85,7 @@ export const getPythonApiCode = ( const tweaks = buildTweaks(flow); const inputs = buildInputs(tabsState, flow.id); return `import requests - from typing import Optional +from typing import Optional BASE_API_URL = "${window.location.protocol}//${ window.location.host From 2262e8e0bd1527fb79265d57c088b26b5808dde9 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Fri, 7 Jul 2023 14:12:04 -0300 Subject: [PATCH 04/39] =?UTF-8?q?=F0=9F=90=9B=20fix(index.css):=20increase?= =?UTF-8?q?=20right=20padding=20of=20.search-icon=20class=20to=20improve?= =?UTF-8?q?=20alignment=20with=20other=20elements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/index.css b/src/frontend/src/index.css index b95a930da..b4a2d5a91 100644 --- a/src/frontend/src/index.css +++ b/src/frontend/src/index.css @@ -173,7 +173,7 @@ The cursor: default; property value restores the browser's default cursor style @apply w-full overflow-auto scrollbar-hide } .search-icon { - @apply absolute inset-y-0 right-0 flex items-center py-1.5 pr-3 + @apply absolute inset-y-0 right-0 flex items-center py-1.5 pr-4 } .extra-side-bar-save-disable { @apply text-muted-foreground From dcb8de533596cb17236230c1c70f8d1a85f9f874 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Fri, 7 Jul 2023 14:24:17 -0300 Subject: [PATCH 05/39] =?UTF-8?q?=F0=9F=90=9B=20fix(index.css):=20increase?= =?UTF-8?q?=20right=20padding=20of=20.search-icon=20class=20to=20improve?= =?UTF-8?q?=20alignment=20with=20other=20elements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/index.css b/src/frontend/src/index.css index b4a2d5a91..82c7f027c 100644 --- a/src/frontend/src/index.css +++ b/src/frontend/src/index.css @@ -173,7 +173,7 @@ The cursor: default; property value restores the browser's default cursor style @apply w-full overflow-auto scrollbar-hide } .search-icon { - @apply absolute inset-y-0 right-0 flex items-center py-1.5 pr-4 + @apply absolute inset-y-0 right-0 flex items-center py-1.5 pr-5 } .extra-side-bar-save-disable { @apply text-muted-foreground From 54f7cfb8212c03728ee716ad4c08a26312e8abda Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Fri, 7 Jul 2023 14:41:48 -0300 Subject: [PATCH 06/39] =?UTF-8?q?=F0=9F=94=A5=20refactor(cardComponent/ind?= =?UTF-8?q?ex.tsx):=20remove=20unnecessary=20dialog=20component=20and=20si?= =?UTF-8?q?mplify=20delete=20button=20implementation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/cardComponent/index.tsx | 27 +++---------------- 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 83228d92d..276f0a7cd 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -47,30 +47,9 @@ export const CardComponent = ({ > {flow.name} {onDelete && ( - - - - - - - Are you sure absolutely sure? - - This action cannot be undone. Are you sure you want to - permanently delete this file from our servers? - - - - - - - + )} From 257e73059f68ff5dca922cba69a0ddda6ad33e42 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Fri, 7 Jul 2023 14:57:21 -0300 Subject: [PATCH 07/39] =?UTF-8?q?=F0=9F=94=A7=20fix(constants.tsx):=20impo?= =?UTF-8?q?rt=20missing=20lucide-react=20icons=20to=20fix=20compilation=20?= =?UTF-8?q?errors=20=F0=9F=94=A7=20fix(chatMessage/index.tsx):=20import=20?= =?UTF-8?q?missing=20lucide-react=20icons=20to=20fix=20compilation=20error?= =?UTF-8?q?s=20=F0=9F=94=A7=20fix(formModal/index.tsx):=20import=20missing?= =?UTF-8?q?=20THOUGHTS=5FICON=20constant=20to=20fix=20compilation=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/constants.tsx | 4 ++++ .../modals/formModal/chatMessage/index.tsx | 19 ++++++++++++------- src/frontend/src/modals/formModal/index.tsx | 4 ++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/frontend/src/constants.tsx b/src/frontend/src/constants.tsx index 601b2ba23..c823abc1d 100644 --- a/src/frontend/src/constants.tsx +++ b/src/frontend/src/constants.tsx @@ -1,8 +1,10 @@ // src/constants.tsx +import { MessageSquareDashed } 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) @@ -57,6 +59,8 @@ export const CHAT_CANNOT_OPEN_DESCRIPTION = "This is not a chat flow."; export const FLOW_NOT_BUILT_TITLE = "Flow not built"; +export const THOUGHTS_ICON = MessageSquare; + export const FLOW_NOT_BUILT_DESCRIPTION = "Please build the flow before chatting."; diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index dfd04a585..b6d62b900 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -10,7 +10,13 @@ import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import { CodeBlock } from "./codeBlock"; import Convert from "ansi-to-html"; -import { User2, MessageSquare, ChevronDown } from "lucide-react"; +import { + User2, + MessageSquare, + ChevronDown, + MessageCircle, + MessageSquareDashed, +} from "lucide-react"; import { Accordion, AccordionContent, @@ -18,6 +24,7 @@ import { AccordionTrigger, } from "../../../components/ui/accordion"; import { Badge } from "../../../components/ui/badge"; +import { THOUGHTS_ICON } from "../../../constants"; export default function ChatMessage({ chat, @@ -45,26 +52,24 @@ export default function ChatMessage({
🤖
- Chatbot ) : (
👨‍💻
- User
)} {!chat.isSend ? ( -
+
- {hidden && ( + {hidden && chat.thought && chat.thought !== "" && (
setHidden((prev) => !prev)} - className="absolute -left-8 -top-5 cursor-pointer" + className="absolute -left-8 -top-3 cursor-pointer" > - +
)} {chat.thought && chat.thought !== "" && !hidden && ( diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index eee866bb0..a6633265b 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -18,7 +18,7 @@ import { DialogTitle, DialogTrigger, } from "../../components/ui/dialog"; -import { CHAT_FORM_DIALOG_SUBTITLE } from "../../constants"; +import { CHAT_FORM_DIALOG_SUBTITLE, THOUGHTS_ICON } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; import { Accordion, @@ -535,7 +535,7 @@ export default function FormModal({ Start a conversation and click the agent's thoughts{" "} - + {" "} to inspect the chaining process. From 1c6fd14fa5554246bd8190fe4d26b0f851f588ed Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Fri, 7 Jul 2023 14:58:03 -0300 Subject: [PATCH 08/39] =?UTF-8?q?=F0=9F=90=9B=20fix(chatMessage):=20adjust?= =?UTF-8?q?=20styling=20of=20chat=20message=20container=20to=20improve=20a?= =?UTF-8?q?lignment=20and=20spacing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/modals/formModal/chatMessage/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index b6d62b900..a7a32d49e 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -46,7 +46,7 @@ export default function ChatMessage({ chat.isSend ? "" : " " )} > -
+
{!chat.isSend ? (
From 0c3517149d86f2e032927148556c1de2dd8e77a9 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Fri, 7 Jul 2023 15:07:21 -0300 Subject: [PATCH 09/39] =?UTF-8?q?=F0=9F=8E=A8=20style(chatMessage/index.ts?= =?UTF-8?q?x):=20add=20images=20for=20robot=20and=20male=20technologist=20?= =?UTF-8?q?icons=20to=20improve=20visual=20representation=20=F0=9F=94=A7?= =?UTF-8?q?=20chore(chatMessage/index.tsx):=20update=20image=20paths=20for?= =?UTF-8?q?=20robot=20and=20male=20technologist=20icons=20to=20match=20new?= =?UTF-8?q?=20file=20locations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/assets/male-technologist.png | Bin 0 -> 23161 bytes src/frontend/src/assets/robot.png | Bin 0 -> 26806 bytes .../src/modals/formModal/chatMessage/index.tsx | 12 +++++++----- 3 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 src/frontend/src/assets/male-technologist.png create mode 100644 src/frontend/src/assets/robot.png diff --git a/src/frontend/src/assets/male-technologist.png b/src/frontend/src/assets/male-technologist.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5281237fc9b5d3fd5a3974ec366abbc1e2594b GIT binary patch literal 23161 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 literal 0 HcmV?d00001 diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index a7a32d49e..19cb40d4d 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -3,6 +3,8 @@ 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 ReactMarkdown from "react-markdown"; import rehypeMathjax from "rehype-mathjax"; @@ -49,14 +51,14 @@ export default function ChatMessage({
    {!chat.isSend ? (
    -
    - 🤖 +
    +
    ) : (
    -
    - 👨‍💻 +
    +
    )} @@ -150,7 +152,7 @@ export default function ChatMessage({ ) : (