import './index.css'; import React, { lazy, Suspense } from 'react'; import { createRoot } from 'react-dom/client'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider, useAuth } from './src/contexts/AuthContext'; import { LanguageProvider } from './contexts/LanguageContext'; import { ToastProvider } from './contexts/ToastContext'; import { ConfirmProvider } from './contexts/ConfirmContext'; import Login from './src/pages/auth/Login'; import WorkspaceLayout from './src/components/layouts/WorkspaceLayout'; // Lazy-loaded page components const ChatPage = lazy(() => import('./src/pages/workspace/ChatPage')); const AgentsPage = lazy(() => import('./src/pages/workspace/AgentsPage')); const PluginsPage = lazy(() => import('./src/pages/workspace/PluginsPage')); const KnowledgePage = lazy(() => import('./src/pages/workspace/KnowledgePage')); const NotebooksPage = lazy(() => import('./src/pages/workspace/NotebooksPage')); const MemosPage = lazy(() => import('./src/pages/workspace/MemosPage')); const SettingsPage = lazy(() => import('./src/pages/workspace/SettingsPage')); const PageLoader = () => (
); function ProtectedRoute({ children, allowedRoles }: { children: React.ReactNode, allowedRoles?: string[] }) { const { user, isLoading } = useAuth(); if (isLoading) { return (
); } if (!user) return ; if (allowedRoles && !allowedRoles.includes(user.role)) return ; return <>{children}; } function OverviewPage() { const { user } = useAuth(); return (

Welcome back ๐Ÿ‘‹

Signed in as {user?.displayName || user?.username}{' '} ยท role {user?.role?.replace(/_/g, ' ')}

); } function App() { return (
} > {/* Public */} } /> {/* Workspace */} } > } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Remove standalone Admin routes as we integrated Dashboard into Settings */} ); } // โ”€โ”€ Mount โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ const container = document.getElementById('root')!; createRoot(container).render( , );