diff --git a/archon-ui-main/src/components/layout/hooks/useBackendHealth.ts b/archon-ui-main/src/components/layout/hooks/useBackendHealth.ts index 4851dee89c..e3fcbd9beb 100644 --- a/archon-ui-main/src/components/layout/hooks/useBackendHealth.ts +++ b/archon-ui-main/src/components/layout/hooks/useBackendHealth.ts @@ -1,5 +1,5 @@ import { useQuery } from "@tanstack/react-query"; -import { callAPIWithETag } from "../../../features/projects/shared/apiWithEtag"; +import { callAPIWithETag } from "../../../features/shared/apiWithEtag"; import type { HealthResponse } from "../types"; /** diff --git a/archon-ui-main/src/features/knowledge/components/AddKnowledgeDialog.tsx b/archon-ui-main/src/features/knowledge/components/AddKnowledgeDialog.tsx index 26834e9878..10d30d0629 100644 --- a/archon-ui-main/src/features/knowledge/components/AddKnowledgeDialog.tsx +++ b/archon-ui-main/src/features/knowledge/components/AddKnowledgeDialog.tsx @@ -7,8 +7,8 @@ import { Globe, Loader2, Upload } from "lucide-react"; import { useId, useState } from "react"; import { useToast } from "../../ui/hooks/useToast"; import { Button, Input, Label } from "../../ui/primitives"; -import { cn } from "../../ui/primitives/styles"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "../../ui/primitives/dialog"; +import { cn } from "../../ui/primitives/styles"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../ui/primitives/tabs"; import { useCrawlUrl, useUploadDocument } from "../hooks"; import type { CrawlRequest, UploadMetadata } from "../types"; @@ -145,7 +145,7 @@ export const AddKnowledgeDialog: React.FC = ({ "backdrop-blur-md border-2 font-medium text-sm", activeTab === "crawl" ? "bg-gradient-to-b from-cyan-100/70 via-cyan-50/40 to-white/80 dark:from-cyan-900/40 dark:via-cyan-800/25 dark:to-black/50 border-cyan-400/60 text-cyan-700 dark:text-cyan-300 shadow-[0_0_20px_rgba(34,211,238,0.25)]" - : "bg-gradient-to-b from-white/40 via-white/30 to-white/60 dark:from-gray-800/40 dark:via-gray-800/30 dark:to-black/60 border-gray-300/40 dark:border-gray-600/40 text-gray-600 dark:text-gray-300 hover:border-cyan-300/50 hover:text-cyan-600 dark:hover:text-cyan-400 hover:shadow-[0_0_15px_rgba(34,211,238,0.15)]" + : "bg-gradient-to-b from-white/40 via-white/30 to-white/60 dark:from-gray-800/40 dark:via-gray-800/30 dark:to-black/60 border-gray-300/40 dark:border-gray-600/40 text-gray-600 dark:text-gray-300 hover:border-cyan-300/50 hover:text-cyan-600 dark:hover:text-cyan-400 hover:shadow-[0_0_15px_rgba(34,211,238,0.15)]", )} > {/* Top accent glow for active state */} @@ -155,10 +155,7 @@ export const AddKnowledgeDialog: React.FC = ({
)} - +
Crawl Website Scan web pages @@ -174,7 +171,7 @@ export const AddKnowledgeDialog: React.FC = ({ "backdrop-blur-md border-2 font-medium text-sm", activeTab === "upload" ? "bg-gradient-to-b from-purple-100/70 via-purple-50/40 to-white/80 dark:from-purple-900/40 dark:via-purple-800/25 dark:to-black/50 border-purple-400/60 text-purple-700 dark:text-purple-300 shadow-[0_0_20px_rgba(147,51,234,0.25)]" - : "bg-gradient-to-b from-white/40 via-white/30 to-white/60 dark:from-gray-800/40 dark:via-gray-800/30 dark:to-black/60 border-gray-300/40 dark:border-gray-600/40 text-gray-600 dark:text-gray-300 hover:border-purple-300/50 hover:text-purple-600 dark:hover:text-purple-400 hover:shadow-[0_0_15px_rgba(147,51,234,0.15)]" + : "bg-gradient-to-b from-white/40 via-white/30 to-white/60 dark:from-gray-800/40 dark:via-gray-800/30 dark:to-black/60 border-gray-300/40 dark:border-gray-600/40 text-gray-600 dark:text-gray-300 hover:border-purple-300/50 hover:text-purple-600 dark:hover:text-purple-400 hover:shadow-[0_0_15px_rgba(147,51,234,0.15)]", )} > {/* Top accent glow for active state */} @@ -184,10 +181,7 @@ export const AddKnowledgeDialog: React.FC = ({
)} - +
Upload Document Add local files @@ -204,7 +198,7 @@ export const AddKnowledgeDialog: React.FC = ({
- +
= ({
- + - +
= ({ disabled={isProcessing} className="absolute inset-0 w-full h-full opacity-0 cursor-pointer disabled:cursor-not-allowed z-10" /> -
- +
+
{selectedFile ? (
-

- {selectedFile.name} -

+

{selectedFile.name}

{Math.round(selectedFile.size / 1024)} KB

) : (
-

- Click to browse or drag & drop -

+

Click to browse or drag & drop

PDF, DOC, DOCX, TXT, MD files supported

@@ -317,11 +300,7 @@ export const AddKnowledgeDialog: React.FC = ({
- + = ({ {isUrl ? "Web Page" : "Document"}
- +
{/* Actions */} @@ -300,7 +297,9 @@ export const KnowledgeCard: React.FC = ({
{/* Right: pills */}
- +
{ @@ -321,10 +320,7 @@ export const KnowledgeCard: React.FC = ({ content={`${codeExamplesCount} code example${codeExamplesCount !== 1 ? "s" : ""} extracted - ${onViewCodeExamples ? "Click to view" : "No examples available"}`} >
{ e.stopPropagation(); if (onViewCodeExamples) { diff --git a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx index 5eb4157b04..3334bc0a99 100644 --- a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx +++ b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTags.tsx @@ -75,7 +75,7 @@ export const KnowledgeCardTags: React.FC = ({ sourceId, // If we're editing an existing tag, remove the original first if (originalTagBeingEdited) { - newTags = newTags.filter(tag => tag !== originalTagBeingEdited); + newTags = newTags.filter((tag) => tag !== originalTagBeingEdited); } // Add the new/modified tag if it doesn't already exist @@ -84,7 +84,7 @@ export const KnowledgeCardTags: React.FC = ({ sourceId, } // Save directly without updating local state first - const updatedTags = newTags.filter(tag => tag.trim().length > 0); + const updatedTags = newTags.filter((tag) => tag.trim().length > 0); try { await updateMutation.mutateAsync({ @@ -128,7 +128,7 @@ export const KnowledgeCardTags: React.FC = ({ sourceId, // If we're editing an existing tag, remove the original first if (originalTagBeingEdited) { - newTags = newTags.filter(tag => tag !== originalTagBeingEdited); + newTags = newTags.filter((tag) => tag !== originalTagBeingEdited); } // Add the new/modified tag if it doesn't already exist diff --git a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTitle.tsx b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTitle.tsx index 63ee41c17d..a019156c5a 100644 --- a/archon-ui-main/src/features/knowledge/components/KnowledgeCardTitle.tsx +++ b/archon-ui-main/src/features/knowledge/components/KnowledgeCardTitle.tsx @@ -7,7 +7,7 @@ import { Info } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { Input } from "../../ui/primitives"; import { cn } from "../../ui/primitives/styles"; -import { SimpleTooltip, Tooltip, TooltipTrigger, TooltipContent } from "../../ui/primitives/tooltip"; +import { SimpleTooltip, Tooltip, TooltipContent, TooltipTrigger } from "../../ui/primitives/tooltip"; import { useUpdateKnowledgeItem } from "../hooks"; // Centralized color class mappings @@ -23,12 +23,15 @@ const ICON_COLOR_CLASSES: Record = { const TOOLTIP_COLOR_CLASSES: Record = { cyan: "border-cyan-500/50 shadow-[0_0_15px_rgba(34,211,238,0.5)] dark:border-cyan-400/50 dark:shadow-[0_0_15px_rgba(34,211,238,0.7)]", - purple: "border-purple-500/50 shadow-[0_0_15px_rgba(168,85,247,0.5)] dark:border-purple-400/50 dark:shadow-[0_0_15px_rgba(168,85,247,0.7)]", + purple: + "border-purple-500/50 shadow-[0_0_15px_rgba(168,85,247,0.5)] dark:border-purple-400/50 dark:shadow-[0_0_15px_rgba(168,85,247,0.7)]", blue: "border-blue-500/50 shadow-[0_0_15px_rgba(59,130,246,0.5)] dark:border-blue-400/50 dark:shadow-[0_0_15px_rgba(59,130,246,0.7)]", pink: "border-pink-500/50 shadow-[0_0_15px_rgba(236,72,153,0.5)] dark:border-pink-400/50 dark:shadow-[0_0_15px_rgba(236,72,153,0.7)]", red: "border-red-500/50 shadow-[0_0_15px_rgba(239,68,68,0.5)] dark:border-red-400/50 dark:shadow-[0_0_15px_rgba(239,68,68,0.7)]", - yellow: "border-yellow-500/50 shadow-[0_0_15px_rgba(234,179,8,0.5)] dark:border-yellow-400/50 dark:shadow-[0_0_15px_rgba(234,179,8,0.7)]", - default: "border-cyan-500/50 shadow-[0_0_15px_rgba(34,211,238,0.5)] dark:border-cyan-400/50 dark:shadow-[0_0_15px_rgba(34,211,238,0.7)]", + yellow: + "border-yellow-500/50 shadow-[0_0_15px_rgba(234,179,8,0.5)] dark:border-yellow-400/50 dark:shadow-[0_0_15px_rgba(234,179,8,0.7)]", + default: + "border-cyan-500/50 shadow-[0_0_15px_rgba(34,211,238,0.5)] dark:border-cyan-400/50 dark:shadow-[0_0_15px_rgba(34,211,238,0.7)]", }; interface KnowledgeCardTitleProps { @@ -144,16 +147,16 @@ export const KnowledgeCardTitle: React.FC = ({ disabled={updateMutation.isPending} className={cn( "text-base font-semibold bg-transparent border-cyan-400 dark:border-cyan-600", - "focus:ring-1 focus:ring-cyan-400 px-2 py-1" + "focus:ring-1 focus:ring-cyan-400 px-2 py-1", )} /> - {(description && description.trim()) && ( + {description && description.trim() && ( @@ -173,20 +176,20 @@ export const KnowledgeCardTitle: React.FC = ({ className={cn( "text-base font-semibold text-gray-900 dark:text-white/90 line-clamp-2 cursor-pointer", "hover:text-gray-700 dark:hover:text-white transition-colors", - updateMutation.isPending && "opacity-50" + updateMutation.isPending && "opacity-50", )} onClick={handleClick} > {title} - {(description && description.trim()) && ( + {description && description.trim() && ( @@ -197,4 +200,4 @@ export const KnowledgeCardTitle: React.FC = ({ )}
); -}; \ No newline at end of file +}; diff --git a/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx b/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx index 107a8d4a46..ac2f8afedb 100644 --- a/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx +++ b/archon-ui-main/src/features/knowledge/components/KnowledgeCardType.tsx @@ -15,10 +15,7 @@ interface KnowledgeCardTypeProps { knowledgeType: "technical" | "business"; } -export const KnowledgeCardType: React.FC = ({ - sourceId, - knowledgeType, -}) => { +export const KnowledgeCardType: React.FC = ({ sourceId, knowledgeType }) => { const [isEditing, setIsEditing] = useState(false); const updateMutation = useUpdateKnowledgeItem(); @@ -61,10 +58,7 @@ export const KnowledgeCardType: React.FC = ({ if (isEditing) { return ( -
e.stopPropagation()} - onKeyDown={(e) => e.stopPropagation()} - > +
e.stopPropagation()} onKeyDown={(e) => e.stopPropagation()}>