"use client"; import { useTranslation } from "react-i18next"; import { Star, Trash2 } from "lucide-react"; import { formatKnowledgeTimestamp, type KnowledgeBase, } from "@/lib/knowledge-helpers"; interface KbSettingsSectionProps { kb: KnowledgeBase; onSetDefault: () => Promise; onDelete: () => Promise; } export default function KbSettingsSection({ kb, onSetDefault, onDelete, }: KbSettingsSectionProps) { const { t } = useTranslation(); const meta = kb.metadata || {}; const provider = kb.statistics?.rag_provider || "llamaindex"; const embeddingLabel = meta.embedding_model ? typeof meta.embedding_dim === "number" ? `${meta.embedding_model} ยท ${meta.embedding_dim}${t("d")}` : meta.embedding_model : t("Default embedding"); const created = formatKnowledgeTimestamp(meta.created_at); const updated = formatKnowledgeTimestamp(meta.last_updated); const lastIndexed = formatKnowledgeTimestamp(meta.last_indexed_at); return (
{t("Overview")}

{t("Read-only metadata. Use the actions below to manage this KB.")}

{provider} {embeddingLabel} {created || "โ€”"} {updated || "โ€”"} {lastIndexed || "โ€”"} {kb.path && ( {kb.path} )}
{t("Default knowledge base")}

{t("The default KB is selected automatically in chat & partners.")}

{kb.is_default ? ( {t("Currently default")} ) : ( )}
{t("Danger zone")}

{t( "Deleting a knowledge base permanently removes its raw documents and index versions.", )}

); } function Field({ label, children, className = "", }: { label: string; children: React.ReactNode; className?: string; }) { return (
{label}
{children}
); }