feat: overhaul chat architecture with persistent JdbcChatMemory, reactive UI components, and improved conversation management

This commit is contained in:
2026-07-23 19:20:28 +07:00
parent 2bbbff1ec9
commit 506008c69f
79 changed files with 5058 additions and 1193 deletions

View File

@@ -0,0 +1,30 @@
import { Badge } from '@/components/ui/badge'
import { Loader2 } from 'lucide-react'
interface ToolStatusIndicatorProps {
toolName?: string
}
const TOOL_NAME_MAP: Record<string, string> = {
searchCampaigns: '🔍 Đang tìm kiếm chiến dịch...',
getCampaignDetails: '📋 Đang lấy thông tin chi tiết chiến dịch...',
createCampaign: '✨ Đang khởi tạo chiến dịch mới...',
executeWorkflow: '⚡ Đang xử lý quy trình...',
queryCustomerPoints: '💳 Đang tra cứu điểm thưởng khách hàng...',
}
export function ToolStatusIndicator({ toolName }: ToolStatusIndicatorProps) {
if (!toolName) return null
const displayText = TOOL_NAME_MAP[toolName] || `🔍 Đang xử lý: ${toolName}...`
return (
<Badge
variant="outline"
className="gap-2 text-xs font-normal border-amber-500/30 bg-amber-500/10 text-amber-500 py-1 px-3 w-fit animate-pulse my-0.5 shadow-sm"
>
<Loader2 className="w-3.5 h-3.5 animate-spin text-amber-500 shrink-0" />
<span>{displayText}</span>
</Badge>
)
}