import { createRouter, createWebHistory } from 'vue-router' import { useAuthStore } from '@/stores/auth' import { Terminal } from 'lucide-vue-next' const router = createRouter({ history: createWebHistory(), routes: [ { path: '/login', name: 'login', component: () => import('@/views/LoginView.vue'), meta: { guest: true }, }, { path: '/', component: () => import('@/views/LayoutView.vue'), meta: { requiresAuth: true }, children: [ { path: '', redirect: '/chat', }, { path: 'chat', name: 'chat', component: () => import('@/views/ChatView.vue'), }, { path: 'knowledge', name: 'knowledge', component: () => import('@/views/KnowledgeView.vue'), }, { path: 'graph', name: 'graph', component: () => import('@/views/GraphView.vue'), }, { path: 'kanban', name: 'kanban', component: () => import('@/views/KanbanView.vue'), }, { path: 'forum', name: 'forum', component: () => import('@/views/ForumView.vue'), }, { path: 'agents', name: 'agents', component: () => import('@/views/AgentView.vue'), }, { path: 'stats', name: 'stats', component: () => import('@/views/StatsView.vue'), }, { path: 'skills', name: 'skills', component: () => import('@/views/SkillView.vue'), }, { path: 'todo', name: 'todo', component: () => import('@/views/TodoView.vue'), }, { path: 'settings', name: 'settings', component: () => import('@/views/SettingsView.vue'), }, { path: 'logs', name: 'logs', component: () => import('@/views/LogView.vue'), }, ], }, ], }) router.beforeEach((to, _from, next) => { const auth = useAuthStore() if (to.meta.requiresAuth && !auth.isAuthenticated) { next('/login') } else if (to.meta.guest && auth.isAuthenticated) { next('/chat') } else { next() } }) export default router