import { createBrowserRouter, Navigate, useParams } from 'react-router-dom'
import { routerBasename } from './utils/basePath'
import App from './App'
import Home from './pages/Home'
import Chat from './pages/Chat'
import Models from './pages/Models'
import Manage from './pages/Manage'
import ImageGen from './pages/ImageGen'
import VideoGen from './pages/VideoGen'
import TTS from './pages/TTS'
import Sound from './pages/Sound'
import AudioTransform from './pages/AudioTransform'
import Talk from './pages/Talk'
import Backends from './pages/Backends'
import Settings from './pages/Settings'
import Traces from './pages/Traces'
import P2P from './pages/P2P'
import Agents from './pages/Agents'
import AgentCreate from './pages/AgentCreate'
import AgentChat from './pages/AgentChat'
import AgentStatus from './pages/AgentStatus'
import Collections from './pages/Collections'
import CollectionDetails from './pages/CollectionDetails'
import Skills from './pages/Skills'
import SkillEdit from './pages/SkillEdit'
import AgentJobs from './pages/AgentJobs'
import AgentTaskDetails from './pages/AgentTaskDetails'
import AgentJobDetails from './pages/AgentJobDetails'
import ModelEditor from './pages/ModelEditor'
// PipelineEditor removed — the Model Editor with templates handles all model types
import ImportModel from './pages/ImportModel'
import BackendLogs from './pages/BackendLogs'
import Explorer from './pages/Explorer'
import Login from './pages/Login'
import FineTune from './pages/FineTune'
import Quantize from './pages/Quantize'
import Studio from './pages/Studio'
import FaceRecognition from './pages/FaceRecognition'
import VoiceRecognition from './pages/VoiceRecognition'
import Nodes from './pages/Nodes'
import NodeBackendLogs from './pages/NodeBackendLogs'
import NotFound from './pages/NotFound'
import Usage from './pages/Usage'
import Users from './pages/Users'
import Account from './pages/Account'
import RequireAdmin from './components/RequireAdmin'
import RequireAuth from './components/RequireAuth'
import RequireFeature from './components/RequireFeature'
function BrowseRedirect() {
const { '*': splat } = useParams()
return
}
function Admin({ children }) {
return {children}
}
function Feature({ feature, children }) {
return {children}
}
const appChildren = [
{ index: true, element: },
{ path: 'models', element: },
{ path: 'chat', element: },
{ path: 'chat/:model', element: },
{ path: 'image', element: },
{ path: 'image/:model', element: },
{ path: 'video', element: },
{ path: 'video/:model', element: },
{ path: 'tts', element: },
{ path: 'tts/:model', element: },
{ path: 'sound', element: },
{ path: 'sound/:model', element: },
{ path: 'transform', element: },
{ path: 'transform/:model', element: },
{ path: 'studio', element: },
{ path: 'talk', element: },
{ path: 'face', element: },
{ path: 'face/:model', element: },
{ path: 'voice', element: },
{ path: 'voice/:model', element: },
{ path: 'usage', element: },
{ path: 'account', element: },
{ path: 'users', element: },
{ path: 'manage', element: },
{ path: 'backends', element: },
{ path: 'settings', element: },
{ path: 'traces', element: },
{ path: 'backend-logs/:modelId', element: },
{ path: 'p2p', element: },
{ path: 'nodes', element: },
{ path: 'node-backend-logs/:nodeId/:modelId', element: },
{ path: 'agents', element: },
{ path: 'agents/new', element: },
{ path: 'agents/:name/edit', element: },
{ path: 'agents/:name/chat', element: },
{ path: 'agents/:name/status', element: },
{ path: 'collections', element: },
{ path: 'collections/:name', element: },
{ path: 'skills', element: },
{ path: 'skills/new', element: },
{ path: 'skills/edit/:name', element: },
{ path: 'agent-jobs', element: },
{ path: 'agent-jobs/tasks/new', element: },
{ path: 'agent-jobs/tasks/:id', element: },
{ path: 'agent-jobs/tasks/:id/edit', element: },
{ path: 'agent-jobs/jobs/:id', element: },
{ path: 'fine-tune', element: },
{ path: 'quantize', element: },
{ path: 'model-editor', element: },
{ path: 'model-editor/:name', element: },
{ path: 'import-model', element: },
{ path: '*', element: },
]
export const router = createBrowserRouter([
{
path: '/login',
element: ,
},
{
path: '/invite/:code',
element: ,
},
{
path: '/explorer',
element: ,
},
{
path: '/app',
element: ,
children: appChildren,
},
// Backward compatibility: redirect /browse/* to /app/*
{
path: '/browse/*',
element: ,
},
{
path: '/',
element: ,
},
], { basename: routerBasename })