diff --git a/surfsense_web/components/assistant-ui/thread.tsx b/surfsense_web/components/assistant-ui/thread.tsx index cb28d668c..c0139c1b7 100644 --- a/surfsense_web/components/assistant-ui/thread.tsx +++ b/surfsense_web/components/assistant-ui/thread.tsx @@ -88,6 +88,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover import { Switch } from "@/components/ui/switch"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { getConnectorIcon } from "@/contracts/enums/connectorIcons"; +import { getToolIcon } from "@/contracts/enums/toolIcons"; import type { Document } from "@/contracts/types/document.types"; import { useBatchCommentsPreload } from "@/hooks/use-comments"; import { useCommentsElectric } from "@/hooks/use-comments-electric"; @@ -670,11 +671,13 @@ const ComposerAction: FC = ({ isBlockedByOtherUser = false
{filteredTools?.map((tool) => { const isDisabled = disabledTools.includes(tool.name); + const ToolIcon = getToolIcon(tool.name); return (
+ {formatToolName(tool.name)} @@ -742,8 +745,10 @@ const ComposerAction: FC = ({ isBlockedByOtherUser = false > {filteredTools?.map((tool) => { const isDisabled = disabledTools.includes(tool.name); + const ToolIcon = getToolIcon(tool.name); const row = (
+ {formatToolName(tool.name)} diff --git a/surfsense_web/contracts/enums/toolIcons.tsx b/surfsense_web/contracts/enums/toolIcons.tsx new file mode 100644 index 000000000..0cf384e49 --- /dev/null +++ b/surfsense_web/contracts/enums/toolIcons.tsx @@ -0,0 +1,32 @@ +import { + BookOpen, + Brain, + Database, + FileText, + Globe, + ImageIcon, + Link2, + type LucideIcon, + Podcast, + ScanLine, + Sparkles, + Wrench, +} from "lucide-react"; + +const TOOL_ICONS: Record = { + search_knowledge_base: Database, + generate_podcast: Podcast, + generate_report: FileText, + link_preview: Link2, + display_image: ImageIcon, + generate_image: Sparkles, + scrape_webpage: ScanLine, + web_search: Globe, + search_surfsense_docs: BookOpen, + save_memory: Brain, + recall_memory: Brain, +}; + +export function getToolIcon(name: string): LucideIcon { + return TOOL_ICONS[name] ?? Wrench; +}