diff --git a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/MemoryContent.tsx b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/MemoryContent.tsx index ed0e6095c..ef17e5a89 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/MemoryContent.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/MemoryContent.tsx @@ -182,7 +182,7 @@ export function MemoryContent() {

SurfSense uses this personal memory to personalize your responses across all - conversations. Use the input below to add, update, or remove memory entries. + conversations.

diff --git a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/PurchaseHistoryContent.tsx b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/PurchaseHistoryContent.tsx index 2eb56520b..9bc77edff 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/PurchaseHistoryContent.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/user-settings/components/PurchaseHistoryContent.tsx @@ -1,7 +1,7 @@ "use client"; import { useQuery } from "@tanstack/react-query"; -import { Receipt } from "lucide-react"; +import { ReceiptText } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Spinner } from "@/components/ui/spinner"; import { @@ -65,7 +65,7 @@ export function PurchaseHistoryContent() { if (purchases.length === 0) { return (
- +

No purchases yet

Your page-pack purchases will appear here after checkout. diff --git a/surfsense_web/components/settings/image-model-manager.tsx b/surfsense_web/components/settings/image-model-manager.tsx index 55dfe3d31..831519aa2 100644 --- a/surfsense_web/components/settings/image-model-manager.tsx +++ b/surfsense_web/components/settings/image-model-manager.tsx @@ -190,7 +190,7 @@ export function ImageModelManager({ searchSpaceId }: ImageModelManagerProps) { ? "model" : "models"} {" "} - available from your administrator. Use the model selector to view and select them. + available from your administrator.

diff --git a/surfsense_web/components/settings/llm-role-manager.tsx b/surfsense_web/components/settings/llm-role-manager.tsx index 995159d58..e8088716e 100644 --- a/surfsense_web/components/settings/llm-role-manager.tsx +++ b/surfsense_web/components/settings/llm-role-manager.tsx @@ -10,7 +10,6 @@ import { FileText, ImageIcon, RefreshCw, - Shuffle, } from "lucide-react"; import { useCallback, useEffect, useRef, useState } from "react"; import { toast } from "sonner"; @@ -44,7 +43,6 @@ import { } from "@/components/ui/select"; import { Skeleton } from "@/components/ui/skeleton"; import { Spinner } from "@/components/ui/spinner"; -import { getProviderIcon } from "@/lib/provider-icons"; import { cn } from "@/lib/utils"; const ROLE_DESCRIPTIONS = { @@ -79,8 +77,8 @@ const ROLE_DESCRIPTIONS = { icon: Eye, title: "Vision LLM", description: "Vision-capable model for screenshot analysis and context extraction", - color: "text-amber-600 dark:text-amber-400", - bgColor: "bg-amber-500/10", + color: "text-muted-foreground", + bgColor: "bg-muted", prefKey: "vision_llm_config_id" as const, configType: "vision" as const, }, @@ -205,11 +203,6 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { ), ]; - const isAssignmentComplete = - allLLMConfigs.some((c) => c.id === assignments.agent_llm_id) && - allLLMConfigs.some((c) => c.id === assignments.document_summary_llm_id) && - allImageConfigs.some((c) => c.id === assignments.image_generation_config_id); - const isLoading = configsLoading || preferencesLoading || @@ -231,7 +224,7 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { return (
{/* Header actions */} -
+
- {isAssignmentComplete && !isLoading && !hasError && ( - - - All roles assigned - - )}
{/* Error Alert */} @@ -343,8 +330,6 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { const assignedConfig = roleAllConfigs.find((config) => config.id === currentAssignment); const isAssigned = !!assignedConfig; - const isAutoMode = - assignedConfig && "is_auto_mode" in assignedConfig && assignedConfig.is_auto_mode; return (
@@ -389,7 +374,7 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) { - +
- {isAuto ? ( - - ) : ( - getProviderIcon(config.provider, { - className: "size-3 md:size-3.5 shrink-0", - }) - )} {config.name} - {!isAuto && ( - - ({config.model_name}) - - )} {isAuto && (
- {getProviderIcon(config.provider, { - className: "size-3 md:size-3.5 shrink-0", - })} {config.name} - - ({config.model_name}) -
))} @@ -473,62 +440,6 @@ export function LLMRoleManager({ searchSpaceId }: LLMRoleManagerProps) {
- {/* Assigned Config Summary */} - {assignedConfig && ( -
- {isAutoMode ? ( -
- -
-

- Auto Mode -

-

- Routes across all available providers -

-
-
- ) : ( -
- -
-
- {assignedConfig.name} - {"is_global" in assignedConfig && assignedConfig.is_global && ( - - 🌐 Global - - )} -
-
- {getProviderIcon(assignedConfig.provider, { - className: "size-3 shrink-0", - })} - - {assignedConfig.model_name} - -
- {assignedConfig.api_base && ( -

- {assignedConfig.api_base} -

- )} -
-
- )} -
- )}
diff --git a/surfsense_web/components/settings/model-config-manager.tsx b/surfsense_web/components/settings/model-config-manager.tsx index 0b89379be..f83251426 100644 --- a/surfsense_web/components/settings/model-config-manager.tsx +++ b/surfsense_web/components/settings/model-config-manager.tsx @@ -196,7 +196,7 @@ export function ModelConfigManager({ searchSpaceId }: ModelConfigManagerProps) { {globalConfigs.length} global {globalConfigs.length === 1 ? "model" : "models"} {" "} - available from your administrator. Use the model selector to view and select them. + available from your administrator.

diff --git a/surfsense_web/components/settings/search-space-settings-dialog.tsx b/surfsense_web/components/settings/search-space-settings-dialog.tsx index 54dc3aacc..a19841b2a 100644 --- a/surfsense_web/components/settings/search-space-settings-dialog.tsx +++ b/surfsense_web/components/settings/search-space-settings-dialog.tsx @@ -2,15 +2,15 @@ import { useAtom } from "jotai"; import { - BookMarked, Bot, + BookText, Brain, + CircleUser, + Earth, Eye, - FileText, - Globe, ImageIcon, - MessageSquare, - Shield, + ListChecks, + UserKey } from "lucide-react"; import dynamic from "next/dynamic"; import { useTranslations } from "next-intl"; @@ -86,9 +86,9 @@ export function SearchSpaceSettingsDialog({ searchSpaceId }: SearchSpaceSettings const [state, setState] = useAtom(searchSpaceSettingsDialogAtom); const navItems = [ - { value: "general", label: t("nav_general"), icon: }, + { value: "general", label: t("nav_general"), icon: }, + { value: "roles", label: t("nav_role_assignments"), icon: }, { value: "models", label: t("nav_agent_configs"), icon: }, - { value: "roles", label: t("nav_role_assignments"), icon: }, { value: "image-models", label: t("nav_image_models"), @@ -99,18 +99,18 @@ export function SearchSpaceSettingsDialog({ searchSpaceId }: SearchSpaceSettings label: t("nav_vision_models"), icon: , }, - { value: "team-roles", label: t("nav_team_roles"), icon: }, + { value: "team-roles", label: t("nav_team_roles"), icon: }, { value: "prompts", label: t("nav_system_instructions"), - icon: , + icon: , }, { value: "team-memory", label: "Team Memory", - icon: , + icon: , }, - { value: "public-links", label: t("nav_public_links"), icon: }, + { value: "public-links", label: t("nav_public_links"), icon: }, ]; const content: Record = { diff --git a/surfsense_web/components/settings/team-memory-manager.tsx b/surfsense_web/components/settings/team-memory-manager.tsx index 872b3da1c..67369879b 100644 --- a/surfsense_web/components/settings/team-memory-manager.tsx +++ b/surfsense_web/components/settings/team-memory-manager.tsx @@ -188,7 +188,7 @@ export function TeamMemoryManager({ searchSpaceId }: TeamMemoryManagerProps) {

SurfSense uses this shared memory to provide team-wide context across all conversations - in this search space. Use the input below to add, update, or remove memory entries. + in this search space.

diff --git a/surfsense_web/components/settings/user-settings-dialog.tsx b/surfsense_web/components/settings/user-settings-dialog.tsx index 1229e56a7..0732b63b9 100644 --- a/surfsense_web/components/settings/user-settings-dialog.tsx +++ b/surfsense_web/components/settings/user-settings-dialog.tsx @@ -1,7 +1,7 @@ "use client"; import { useAtom } from "jotai"; -import { Brain, Globe, KeyRound, Monitor, Receipt, Sparkles, User } from "lucide-react"; +import { Brain, CircleUser, Globe, KeyRound, Monitor, ReceiptText, Sparkles } from "lucide-react"; import dynamic from "next/dynamic"; import { useTranslations } from "next-intl"; import { useMemo } from "react"; @@ -66,7 +66,7 @@ export function UserSettingsDialog() { const navItems = useMemo( () => [ - { value: "profile", label: t("profile_nav_label"), icon: }, + { value: "profile", label: t("profile_nav_label"), icon: }, { value: "api-key", label: t("api_key_nav_label"), @@ -90,7 +90,7 @@ export function UserSettingsDialog() { { value: "purchases", label: "Purchase History", - icon: , + icon: , }, ...(isDesktop ? [{ value: "desktop", label: "Desktop", icon: }] diff --git a/surfsense_web/components/settings/vision-model-manager.tsx b/surfsense_web/components/settings/vision-model-manager.tsx index 31e6655cb..57ea8c205 100644 --- a/surfsense_web/components/settings/vision-model-manager.tsx +++ b/surfsense_web/components/settings/vision-model-manager.tsx @@ -191,7 +191,7 @@ export function VisionModelManager({ searchSpaceId }: VisionModelManagerProps) { ? "model" : "models"} {" "} - available from your administrator. Use the model selector to view and select them. + available from your administrator.

diff --git a/surfsense_web/components/ui/alert-dialog.tsx b/surfsense_web/components/ui/alert-dialog.tsx index ec0d3cbd5..21632ca18 100644 --- a/surfsense_web/components/ui/alert-dialog.tsx +++ b/surfsense_web/components/ui/alert-dialog.tsx @@ -45,7 +45,7 @@ function AlertDialogContent({