From 7d6880644e4e38fffd75cd48521adb00a8a151e9 Mon Sep 17 00:00:00 2001 From: Craig Jellick Date: Fri, 24 Jan 2025 18:29:42 -0700 Subject: [PATCH] Revert "enhance: add icon for agents (#1399)" (#1452) This reverts commit 1337fead9361ec4fc613800e67d1bf943eb61f6e. --- ui/admin/app/components/agent/AgentForm.tsx | 71 ++----- .../app/components/agent/icon/AgentIcon.tsx | 146 ------------- .../components/agent/icon/AgentImageUrl.tsx | 180 ---------------- ui/admin/app/components/chat/ChatContext.tsx | 9 - ui/admin/app/components/chat/Message.tsx | 192 +++++++----------- ui/admin/app/components/chat/MessagePane.tsx | 17 +- ui/admin/app/components/ui/button.tsx | 2 - ui/admin/app/components/workflow/Workflow.tsx | 6 +- .../app/hooks/messages/useThreadEvents.ts | 6 - ui/admin/app/lib/model/agents.ts | 1 - ui/admin/app/lib/model/chatEvents.ts | 1 - ui/admin/app/lib/model/messages.ts | 1 - ui/admin/app/lib/utils/index.ts | 2 +- .../app/lib/utils/{time.ts => timeSince.ts} | 23 --- ui/admin/app/routes/_auth.agents.$agent.tsx | 2 - ui/user/src/lib/icons/AssistantIcon.svelte | 17 +- ui/user/static/agent/images/obot_alt_1.svg | 28 --- ui/user/static/agent/images/obot_alt_10.svg | 33 --- ui/user/static/agent/images/obot_alt_2.svg | 26 --- ui/user/static/agent/images/obot_alt_3.svg | 26 --- ui/user/static/agent/images/obot_alt_4.svg | 30 --- ui/user/static/agent/images/obot_alt_5.svg | 28 --- ui/user/static/agent/images/obot_alt_6.svg | 28 --- ui/user/static/agent/images/obot_alt_7.svg | 28 --- ui/user/static/agent/images/obot_alt_8.svg | 30 --- ui/user/static/agent/images/obot_alt_9.svg | 30 --- 26 files changed, 104 insertions(+), 859 deletions(-) delete mode 100644 ui/admin/app/components/agent/icon/AgentIcon.tsx delete mode 100644 ui/admin/app/components/agent/icon/AgentImageUrl.tsx rename ui/admin/app/lib/utils/{time.ts => timeSince.ts} (64%) delete mode 100644 ui/user/static/agent/images/obot_alt_1.svg delete mode 100644 ui/user/static/agent/images/obot_alt_10.svg delete mode 100644 ui/user/static/agent/images/obot_alt_2.svg delete mode 100644 ui/user/static/agent/images/obot_alt_3.svg delete mode 100644 ui/user/static/agent/images/obot_alt_4.svg delete mode 100644 ui/user/static/agent/images/obot_alt_5.svg delete mode 100644 ui/user/static/agent/images/obot_alt_6.svg delete mode 100644 ui/user/static/agent/images/obot_alt_7.svg delete mode 100644 ui/user/static/agent/images/obot_alt_8.svg delete mode 100644 ui/user/static/agent/images/obot_alt_9.svg diff --git a/ui/admin/app/components/agent/AgentForm.tsx b/ui/admin/app/components/agent/AgentForm.tsx index cf76a704e..d18caab8c 100644 --- a/ui/admin/app/components/agent/AgentForm.tsx +++ b/ui/admin/app/components/agent/AgentForm.tsx @@ -4,7 +4,6 @@ import { useEffect } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { AgentIcon } from "~/components/agent/icon/AgentIcon"; import { ControlledAutosizeTextarea, ControlledInput, @@ -19,14 +18,6 @@ const formSchema = z.object({ description: z.string().optional(), prompt: z.string().optional(), model: z.string().optional(), - icons: z - .object({ - icon: z.string(), - iconDark: z.string(), - collapsed: z.string(), - collapsedDark: z.string(), - }) - .optional(), }); export type AgentInfoFormValues = z.infer; @@ -35,15 +26,9 @@ type AgentFormProps = { agent: AgentInfoFormValues; onSubmit?: (values: AgentInfoFormValues) => void; onChange?: (values: AgentInfoFormValues) => void; - hideImageField?: boolean; }; -export function AgentForm({ - agent, - onSubmit, - onChange, - hideImageField, -}: AgentFormProps) { +export function AgentForm({ agent, onSubmit, onChange }: AgentFormProps) { const form = useForm({ resolver: zodResolver(formSchema), mode: "onChange", @@ -52,7 +37,6 @@ export function AgentForm({ description: agent.description || "", prompt: agent.prompt || "", model: agent.model || "", - icons: agent.icons, }, }); @@ -79,20 +63,22 @@ export function AgentForm({ return (
- {hideImageField ? ( - renderTitleDescription() - ) : ( -
- form.setValue("icons", icons)} - /> -
- {renderTitleDescription()} -
-
- )} + + +

@@ -112,27 +98,4 @@ export function AgentForm({ ); - - function renderTitleDescription() { - return ( - <> - - - - - ); - } } diff --git a/ui/admin/app/components/agent/icon/AgentIcon.tsx b/ui/admin/app/components/agent/icon/AgentIcon.tsx deleted file mode 100644 index 857526ee6..000000000 --- a/ui/admin/app/components/agent/icon/AgentIcon.tsx +++ /dev/null @@ -1,146 +0,0 @@ -import { EraserIcon, LinkIcon, PaintbrushIcon, PencilIcon } from "lucide-react"; -import { useState } from "react"; - -import { AgentIcons } from "~/lib/model/agents"; -import { AppTheme } from "~/lib/service/themeService"; -import { cn } from "~/lib/utils/cn"; - -import { AgentImageUrl } from "~/components/agent/icon/AgentImageUrl"; -import { useTheme } from "~/components/theme"; -import { Avatar, AvatarFallback, AvatarImage } from "~/components/ui/avatar"; -import { Button } from "~/components/ui/button"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuPortal, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from "~/components/ui/dropdown-menu"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; - -const iconOptions = [ - "obot_alt_1.svg", - "obot_alt_2.svg", - "obot_alt_3.svg", - "obot_alt_4.svg", - "obot_alt_5.svg", - "obot_alt_6.svg", - "obot_alt_7.svg", - "obot_alt_8.svg", - "obot_alt_9.svg", - "obot_alt_10.svg", -]; - -type AgentIconProps = { - icons?: AgentIcons; - onChange: (icons?: AgentIcons) => void; - name?: string; -}; - -export function AgentIcon({ icons, onChange, name }: AgentIconProps) { - const { theme } = useTheme(); - const [imageUrlDialogOpen, setImageUrlDialogOpen] = useState(false); - - const { icon = "", iconDark = "" } = icons ?? {}; - const isDarkMode = theme === AppTheme.Dark; - return ( - <> - - - - - - - - Change Agent Icon - - - - - Select Icon - - - - {renderIconOptions()} - - - - setImageUrlDialogOpen(true)} - > - Use Image URL - - { - onChange(undefined); - }} - > - Clear - - - - - - ); - - function renderIconOptions() { - return ( -
- {iconOptions.map((icon) => ( - { - onChange({ - icon: generateIconUrl(icon), - iconDark: "", - collapsed: "", - collapsedDark: "", - }); - }} - > - Agent Icon - - ))} -
- ); - } - - function generateIconUrl(icon: string) { - return `${window.location.protocol}//${window.location.host}/agent/images/${icon}`; - } -} diff --git a/ui/admin/app/components/agent/icon/AgentImageUrl.tsx b/ui/admin/app/components/agent/icon/AgentImageUrl.tsx deleted file mode 100644 index 00e02e3e9..000000000 --- a/ui/admin/app/components/agent/icon/AgentImageUrl.tsx +++ /dev/null @@ -1,180 +0,0 @@ -import { zodResolver } from "@hookform/resolvers/zod"; -import { GearIcon } from "@radix-ui/react-icons"; -import { ImagePlusIcon } from "lucide-react"; -import { Control, useForm } from "react-hook-form"; -import { z } from "zod"; - -import { AgentIcons } from "~/lib/model/agents"; - -import { ControlledInput } from "~/components/form/controlledInputs"; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "~/components/ui/accordion"; -import { Avatar, AvatarFallback, AvatarImage } from "~/components/ui/avatar"; -import { Button } from "~/components/ui/button"; -import { - Dialog, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, -} from "~/components/ui/dialog"; -import { ScrollArea } from "~/components/ui/scroll-area"; - -type AgentImageUrlProps = { - icons?: AgentIcons; - onChange: (icons: AgentIcons) => void; - onOpenChange: (open: boolean) => void; - open: boolean; -}; - -const formSchema = z.object({ - collapsed: z.string(), - collapsedDark: z.string(), - icon: z.string(), - iconDark: z.string(), -}); - -type AgentIconFormValues = z.infer; - -export function AgentImageUrl({ - icons, - onChange, - onOpenChange, - open, -}: AgentImageUrlProps) { - const form = useForm({ - resolver: zodResolver(formSchema), - mode: "onChange", - defaultValues: { - collapsed: getDefaultUrl(icons?.collapsed), - collapsedDark: getDefaultUrl(icons?.collapsedDark), - icon: getDefaultUrl(icons?.icon), - iconDark: getDefaultUrl(icons?.iconDark), - }, - }); - - const handleOpenChange = (open: boolean) => { - onOpenChange(open); - form.reset(); - }; - - const handleApply = () => { - onChange(form.getValues()); - onOpenChange(false); - }; - - const icon = form.watch("icon"); - - return ( - - - - Use Image URL - - - - - Include the full URL to the image you want to use as your agent - icon. - -
- -
- - - -

- - Extra Customization -

-
- - - {["iconDark", "collapsed", "collapsedDark"].map((key) => ( - - ))} - -
-
-
- - - - -
-
- ); - - function getIconLabel(key: string) { - switch (key) { - case "icon": - return "Icon"; - case "iconDark": - return "Icon (Dark)"; - case "collapsed": - return "Collapsed"; - case "collapsedDark": - return "Collapsed (Dark)"; - default: - return ""; - } - } - - function getDefaultUrl(url?: string) { - if (!url) return ""; - - const isDefaultAsset = url.toLowerCase().startsWith("/admin/assets/agent/"); - return isDefaultAsset ? "" : url; - } -} - -function IconInput({ - control, - label, - name, - value, -}: { - value: string; - name: string; - label: string; - control: Control; -}) { - return ( -
- - - - - - - -
- ); -} diff --git a/ui/admin/app/components/chat/ChatContext.tsx b/ui/admin/app/components/chat/ChatContext.tsx index cd3b3b23b..4e2afce82 100644 --- a/ui/admin/app/components/chat/ChatContext.tsx +++ b/ui/admin/app/components/chat/ChatContext.tsx @@ -1,7 +1,6 @@ import { ReactNode, createContext, useContext } from "react"; import { mutate } from "swr"; -import { AgentIcons } from "~/lib/model/agents"; import { Message } from "~/lib/model/messages"; import { InvokeService } from "~/lib/service/api/invokeService"; import { ThreadsService } from "~/lib/service/api/threadsService"; @@ -24,8 +23,6 @@ interface ChatContextType { isInvoking: boolean; introductionMessage?: string; starterMessages?: string[]; - agentName?: string; - icons?: AgentIcons; } const ChatContext = createContext(undefined); @@ -39,8 +36,6 @@ export function ChatProvider({ readOnly, introductionMessage, starterMessages, - agentName, - icons, }: { children: ReactNode; mode?: Mode; @@ -50,8 +45,6 @@ export function ChatProvider({ readOnly?: boolean; introductionMessage?: string; starterMessages?: string[]; - agentName?: string; - icons?: AgentIcons; }) { const invoke = (prompt?: string) => { if (readOnly) return; @@ -97,8 +90,6 @@ export function ChatProvider({ readOnly, introductionMessage, starterMessages, - agentName, - icons, }} > {children} diff --git a/ui/admin/app/components/chat/Message.tsx b/ui/admin/app/components/chat/Message.tsx index be6ba4997..6d105ec04 100644 --- a/ui/admin/app/components/chat/Message.tsx +++ b/ui/admin/app/components/chat/Message.tsx @@ -3,17 +3,15 @@ import { AlertCircleIcon, WrenchIcon } from "lucide-react"; import React, { useMemo, useState } from "react"; import { useForm } from "react-hook-form"; -import { AgentIcons } from "~/lib/model/agents"; import { AuthPrompt } from "~/lib/model/chatEvents"; import { Message as MessageType } from "~/lib/model/messages"; import { PromptApiService } from "~/lib/service/api/PromptApi"; -import { cn, formatTime } from "~/lib/utils"; +import { cn } from "~/lib/utils"; import { MessageDebug } from "~/components/chat/MessageDebug"; import { ToolCallInfo } from "~/components/chat/ToolCallInfo"; import { ControlledInput } from "~/components/form/controlledInputs"; import { ToolIcon } from "~/components/tools/ToolIcon"; -import { Avatar, AvatarFallback, AvatarImage } from "~/components/ui/avatar"; import { Button } from "~/components/ui/button"; import { Dialog, @@ -32,133 +30,97 @@ import { useAsync } from "~/hooks/useAsync"; interface MessageProps { message: MessageType; isRunning?: boolean; - icons?: AgentIcons; - isDarkMode?: boolean; - isMostRecent?: boolean; - agentName?: string; } const OpenMarkdownLinkRegex = new RegExp(/\[([^\]]+)\]\(https?:\/\/[^)]*$/); -export const Message = React.memo( - ({ message, isRunning, icons, isDarkMode, agentName }: MessageProps) => { - const isUser = message.sender === "user"; +export const Message = React.memo(({ message, isRunning }: MessageProps) => { + const isUser = message.sender === "user"; - // note(ryanhopperlowe) we only support one tool call per message for now - // leaving it in case that changes in the future - const [toolCall = null] = message.tools || []; + // note(ryanhopperlowe) we only support one tool call per message for now + // leaving it in case that changes in the future + const [toolCall = null] = message.tools || []; - // prevent animation for messages that never run - // only calculate on mount because we don't want to stop animation when the message finishes streaming - const [shouldAnimate] = useState(isRunning); - const animatedText = useAnimatedText( - message.text, - !shouldAnimate || isUser - ); + // prevent animation for messages that never run + // only calculate on mount because we don't want to stop animation when the message finishes streaming + const [shouldAnimate] = useState(isRunning); + const animatedText = useAnimatedText(message.text, !shouldAnimate || isUser); - const parsedMessage = useMemo(() => { - if (OpenMarkdownLinkRegex.test(animatedText)) { - return animatedText.replace( - OpenMarkdownLinkRegex, - (_, linkText) => `[${linkText}]()` - ); - } - return animatedText; - }, [animatedText]); + const parsedMessage = useMemo(() => { + if (OpenMarkdownLinkRegex.test(animatedText)) { + return animatedText.replace( + OpenMarkdownLinkRegex, + (_, linkText) => `[${linkText}]()` + ); + } + return animatedText; + }, [animatedText]); - const icon = isDarkMode ? icons?.iconDark || icons?.icon : icons?.icon; - const showIcon = !isUser && !message.prompt && !toolCall; - return ( -
- {showIcon && ( -
- - - {agentName?.charAt(0) ?? ""} - -

{agentName}

- - {message.time && formatTime(message.time)} - -
- )} + return ( +
+
-
-
- {message.aborted && ( - - )} +
+ {message.aborted && ( + + )} + + {toolCall?.metadata?.icon && ( + + )} - {toolCall?.metadata?.icon && ( - - )} - - {message.prompt ? ( - - ) : ( - - {parsedMessage || "Waiting for more information..."} - - )} - - {toolCall && ( - - - - )} - - {message.runId && !isUser && ( -
- -
- )} - - {/* this is a hack to take up space for the debug button */} - {!toolCall && !message.runId && !isUser && ( -
-
- )} -
+ {message.prompt ? ( + + ) : ( + + {parsedMessage || "Waiting for more information..."} + + )} + + {toolCall && ( + + + + )} + + {message.runId && !isUser && ( +
+ +
+ )} + + {/* this is a hack to take up space for the debug button */} + {!toolCall && !message.runId && !isUser && ( +
+
+ )}
- ); - } -); +
+ ); +}); Message.displayName = "Message"; diff --git a/ui/admin/app/components/chat/MessagePane.tsx b/ui/admin/app/components/chat/MessagePane.tsx index c726b8231..db9527999 100644 --- a/ui/admin/app/components/chat/MessagePane.tsx +++ b/ui/admin/app/components/chat/MessagePane.tsx @@ -7,7 +7,6 @@ import { cn } from "~/lib/utils"; import { useChat } from "~/components/chat/ChatContext"; import { Message } from "~/components/chat/Message"; import { NoMessages } from "~/components/chat/NoMessages"; -import { useTheme } from "~/components/theme"; import { ScrollArea } from "~/components/ui/scroll-area"; interface MessagePaneProps { @@ -28,9 +27,7 @@ export function MessagePane({ }: MessagePaneProps) { const [shouldCenter, setShouldCenter] = useState(true); const noMessagesRef = useRef(null); - const { readOnly, isRunning, mode, icons, agentName } = useChat(); - const { theme } = useTheme(); - const isDarkMode = theme === "dark"; + const { readOnly, isRunning, mode } = useChat(); const isEmpty = messages.length === 0 && !readOnly && mode === "agent"; @@ -62,17 +59,9 @@ export function MessagePane({
) : ( -
+
{messages.map((message, i) => ( - + ))}
)} diff --git a/ui/admin/app/components/ui/button.tsx b/ui/admin/app/components/ui/button.tsx index 739585003..dc595b7ab 100644 --- a/ui/admin/app/components/ui/button.tsx +++ b/ui/admin/app/components/ui/button.tsx @@ -34,8 +34,6 @@ const buttonVariants = cva( lg: "h-10 px-8", icon: "h-9 min-h-9 w-9 min-w-9 [&_svg]:size-[1.375rem]", "icon-sm": "h-8 min-h-8 w-8 min-w-8 [&_svg]:size-[1.125rem]", - "icon-xl": - "h-20 min-h-20 w-20 min-w-20 [&_img]:size-[6rem] [&_svg]:size-[6rem]", }, shape: { none: "", diff --git a/ui/admin/app/components/workflow/Workflow.tsx b/ui/admin/app/components/workflow/Workflow.tsx index ee40d02c3..9d899b70d 100644 --- a/ui/admin/app/components/workflow/Workflow.tsx +++ b/ui/admin/app/components/workflow/Workflow.tsx @@ -88,11 +88,7 @@ function WorkflowContent({ className }: WorkflowProps) { />
- +
diff --git a/ui/admin/app/hooks/messages/useThreadEvents.ts b/ui/admin/app/hooks/messages/useThreadEvents.ts index 47bb6f2bc..f153ed440 100644 --- a/ui/admin/app/hooks/messages/useThreadEvents.ts +++ b/ui/admin/app/hooks/messages/useThreadEvents.ts @@ -19,7 +19,6 @@ export function useThreadEvents(threadId?: Nullish) { runID, contentID, replayComplete, - time, } = event; setIsRunning(!runComplete && !replayComplete); @@ -37,7 +36,6 @@ export function useThreadEvents(threadId?: Nullish) { copy[existingIndex] = { ...existing, text: existing.text + content, - time: existing.time || time, }; return copy; @@ -51,7 +49,6 @@ export function useThreadEvents(threadId?: Nullish) { runId: runID, contentID, aborted: true, - time, }); return copy; @@ -63,7 +60,6 @@ export function useThreadEvents(threadId?: Nullish) { runId: runID, error: true, contentID, - time, }); return copy; } @@ -74,7 +70,6 @@ export function useThreadEvents(threadId?: Nullish) { text: input, runId: runID, contentID, - time, }); return copy; } @@ -94,7 +89,6 @@ export function useThreadEvents(threadId?: Nullish) { text: content, runId: runID, contentID, - time, }); return copy; } diff --git a/ui/admin/app/lib/model/agents.ts b/ui/admin/app/lib/model/agents.ts index 5b1c4ebd0..a2dafa3bc 100644 --- a/ui/admin/app/lib/model/agents.ts +++ b/ui/admin/app/lib/model/agents.ts @@ -26,7 +26,6 @@ export type AgentBase = { env?: EnvVariable[]; starterMessages?: string[]; introductionMessage?: string; - icons?: AgentIcons; }; export type AgentOAuthStatus = { diff --git a/ui/admin/app/lib/model/chatEvents.ts b/ui/admin/app/lib/model/chatEvents.ts index 8499d3620..a0d80be42 100644 --- a/ui/admin/app/lib/model/chatEvents.ts +++ b/ui/admin/app/lib/model/chatEvents.ts @@ -47,7 +47,6 @@ export type ChatEvent = { toolInput?: ToolInput; toolCall?: ToolCall; prompt?: AuthPrompt; - time?: string; }; export function combineChatEvents(events: ChatEvent[]): ChatEvent[] { diff --git a/ui/admin/app/lib/model/messages.ts b/ui/admin/app/lib/model/messages.ts index a6c01fa7d..4cfb82606 100644 --- a/ui/admin/app/lib/model/messages.ts +++ b/ui/admin/app/lib/model/messages.ts @@ -13,7 +13,6 @@ export interface Message { aborted?: boolean; error?: boolean; contentID?: string; - time?: Date | string; } export const runsToMessages = (runs: Run[]) => { diff --git a/ui/admin/app/lib/utils/index.ts b/ui/admin/app/lib/utils/index.ts index 462d8884a..4694cb215 100644 --- a/ui/admin/app/lib/utils/index.ts +++ b/ui/admin/app/lib/utils/index.ts @@ -1,6 +1,6 @@ export * from "~/lib/utils/cn"; export * from "~/lib/utils/noop"; export * from "~/lib/utils/pluralize"; -export * from "~/lib/utils/time"; +export * from "~/lib/utils/timeSince"; export * from "~/lib/utils/assetUrl"; export * from "~/lib/utils/getAliasFrom"; diff --git a/ui/admin/app/lib/utils/time.ts b/ui/admin/app/lib/utils/timeSince.ts similarity index 64% rename from ui/admin/app/lib/utils/time.ts rename to ui/admin/app/lib/utils/timeSince.ts index 70a8ea797..2ea1c8dd2 100644 --- a/ui/admin/app/lib/utils/time.ts +++ b/ui/admin/app/lib/utils/timeSince.ts @@ -28,26 +28,3 @@ export const timeSince = (date: Date) => { } return Math.floor(seconds) + " " + pluralize(seconds, "second", "seconds"); }; - -export const formatTime = (time: Date | string) => { - const now = new Date(); - if (typeof time === "string") { - time = new Date(time); - } - if ( - time.getDate() == now.getDate() && - time.getMonth() == now.getMonth() && - time.getFullYear() == now.getFullYear() - ) { - return time.toLocaleTimeString(undefined, { - hour: "numeric", - minute: "numeric", - }); - } - return time.toLocaleDateString(undefined, { - month: "short", - day: "numeric", - hour: "numeric", - minute: "numeric", - }); -}; diff --git a/ui/admin/app/routes/_auth.agents.$agent.tsx b/ui/admin/app/routes/_auth.agents.$agent.tsx index bf1c7bd6a..d6b7dc2c9 100644 --- a/ui/admin/app/routes/_auth.agents.$agent.tsx +++ b/ui/admin/app/routes/_auth.agents.$agent.tsx @@ -107,8 +107,6 @@ export default function ChatAgent() { onCreateThreadId={updateThreadId} introductionMessage={updatedAgent?.introductionMessage} starterMessages={updatedAgent?.starterMessages} - icons={updatedAgent?.icons} - agentName={updatedAgent?.name} > diff --git a/ui/user/src/lib/icons/AssistantIcon.svelte b/ui/user/src/lib/icons/AssistantIcon.svelte index 6383e975a..cd14b225c 100644 --- a/ui/user/src/lib/icons/AssistantIcon.svelte +++ b/ui/user/src/lib/icons/AssistantIcon.svelte @@ -1,5 +1,5 @@ -{#if getIcon(assistant)} - assistant icon +{#if icon(assistant)} + assistant icon {:else}
- - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_10.svg b/ui/user/static/agent/images/obot_alt_10.svg deleted file mode 100644 index 9c8a97c2e..000000000 --- a/ui/user/static/agent/images/obot_alt_10.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_2.svg b/ui/user/static/agent/images/obot_alt_2.svg deleted file mode 100644 index 08c9b0bb1..000000000 --- a/ui/user/static/agent/images/obot_alt_2.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_3.svg b/ui/user/static/agent/images/obot_alt_3.svg deleted file mode 100644 index fbbd092b3..000000000 --- a/ui/user/static/agent/images/obot_alt_3.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_4.svg b/ui/user/static/agent/images/obot_alt_4.svg deleted file mode 100644 index a82788de5..000000000 --- a/ui/user/static/agent/images/obot_alt_4.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_5.svg b/ui/user/static/agent/images/obot_alt_5.svg deleted file mode 100644 index da73bf37c..000000000 --- a/ui/user/static/agent/images/obot_alt_5.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_6.svg b/ui/user/static/agent/images/obot_alt_6.svg deleted file mode 100644 index 7a96a62cf..000000000 --- a/ui/user/static/agent/images/obot_alt_6.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_7.svg b/ui/user/static/agent/images/obot_alt_7.svg deleted file mode 100644 index 0327bc083..000000000 --- a/ui/user/static/agent/images/obot_alt_7.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_8.svg b/ui/user/static/agent/images/obot_alt_8.svg deleted file mode 100644 index cf88b0b5c..000000000 --- a/ui/user/static/agent/images/obot_alt_8.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - diff --git a/ui/user/static/agent/images/obot_alt_9.svg b/ui/user/static/agent/images/obot_alt_9.svg deleted file mode 100644 index 0b4d5f583..000000000 --- a/ui/user/static/agent/images/obot_alt_9.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - -