168 lines
5.4 KiB
TypeScript
168 lines
5.4 KiB
TypeScript
import { Navigate, Route, Routes } from "react-router-dom";
|
|
import { Toaster } from "sonner";
|
|
|
|
import { getStoredAuth } from "@/core/auth";
|
|
import { RouteBaseProvider } from "@/core/route-base";
|
|
import { SidebarProvider } from "@/components/ui/sidebar";
|
|
|
|
import GeneralQA from "@/strategy-components/components/qa/GeneralQA";
|
|
import { ChatRuntime } from "./WorkspaceRoutes";
|
|
import AgentsPage from "./AgentsPage";
|
|
import ChatsPage from "./ChatsPage";
|
|
import ChatPage from "./ChatPage";
|
|
import NewAgentPage from "./NewAgentPage";
|
|
import AgentChatPage from "./AgentChatPage";
|
|
import SkillsPage from "./SkillsPage";
|
|
import SkillEvolutionPage from "./SkillEvolutionPage";
|
|
import MemoryPage from "./MemoryPage";
|
|
import ScheduledTasksPage from "./ScheduledTasksPage";
|
|
import ScheduledTaskRunDetailPage from "./ScheduledTaskRunDetailPage";
|
|
import RecommendedQuestionsPage from "./RecommendedQuestionsPage";
|
|
import PromptPrefixSettingsPage from "./PromptPrefixSettingsPage";
|
|
import LlmMetricsPage from "./LlmMetricsPage";
|
|
import UsersPage from "./UsersPage";
|
|
import AdminScheduledTasksPage from "./AdminScheduledTasksPage";
|
|
import AdminUserActivityPage from "./AdminUserActivityPage";
|
|
import TagsPage from "./TagsPage";
|
|
import LightAppNewNotePage from "./LightAppNewNotePage";
|
|
import LightAppNoteListPage from "./LightAppNoteListPage";
|
|
import LightAppNoteQAPage from "./LightAppNoteQAPage";
|
|
|
|
export default function StrategyRoutes() {
|
|
return (
|
|
<RouteBaseProvider value="/page/strategy">
|
|
<SidebarProvider>
|
|
<div className="h-full w-full overflow-hidden">
|
|
<Routes>
|
|
<Route index element={<Navigate to="qa/general" replace />} />
|
|
|
|
{/* 问答中心 */}
|
|
<Route path="qa/general" element={<GeneralQA />} />
|
|
|
|
{/* 轻应用 */}
|
|
<Route path="light-app/new-note" element={<LightAppNewNotePage />} />
|
|
<Route path="light-app/notes" element={<LightAppNoteListPage />} />
|
|
<Route path="light-app/note-qa" element={<LightAppNoteQAPage />} />
|
|
|
|
{/* 对话 */}
|
|
<Route path="chats" element={<ChatsPage />} />
|
|
<Route
|
|
path="chats/:thread_id"
|
|
element={
|
|
<ChatRuntime>
|
|
<ChatPage />
|
|
</ChatRuntime>
|
|
}
|
|
/>
|
|
|
|
{/* 智能体管理 */}
|
|
<Route path="agents" element={<AgentsPage />} />
|
|
<Route path="agents/new" element={<NewAgentPage />} />
|
|
<Route
|
|
path="agents/:agent_id/chats"
|
|
element={<Navigate to="/page/strategy/agents" replace />}
|
|
/>
|
|
<Route
|
|
path="agents/:agent_id/chats/:thread_id"
|
|
element={
|
|
<ChatRuntime>
|
|
<AgentChatPage />
|
|
</ChatRuntime>
|
|
}
|
|
/>
|
|
|
|
{/* 技能 / 记忆 */}
|
|
<Route path="skills" element={<SkillsPage />} />
|
|
<Route path="skills/evolution" element={<SkillEvolutionPage />} />
|
|
<Route path="memory" element={<MemoryPage />} />
|
|
|
|
{/* 定时任务 */}
|
|
<Route
|
|
path="scheduled"
|
|
element={<Navigate to="/page/strategy/scheduled/tasks" replace />}
|
|
/>
|
|
<Route path="scheduled/tasks" element={<ScheduledTasksPage />} />
|
|
<Route
|
|
path="scheduled/runs/:run_id"
|
|
element={<ScheduledTaskRunDetailPage />}
|
|
/>
|
|
|
|
{/* 设置 / 管理 — 权限与 workspace 侧一致,非 admin 重定向到 chats/new */}
|
|
<Route
|
|
path="settings/recommended-questions"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<RecommendedQuestionsPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="settings/prompt-prefix"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<PromptPrefixSettingsPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="settings/llm-metrics"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<LlmMetricsPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="admin/users"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<UsersPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="admin/scheduled-tasks"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<AdminScheduledTasksPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="admin/user-activity"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<AdminUserActivityPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
<Route
|
|
path="admin/tags"
|
|
element={
|
|
getStoredAuth()?.system_role === "admin" ? (
|
|
<TagsPage />
|
|
) : (
|
|
<Navigate to="/page/workspace/chats/new" replace />
|
|
)
|
|
}
|
|
/>
|
|
</Routes>
|
|
</div>
|
|
</SidebarProvider>
|
|
<Toaster position="top-center" />
|
|
</RouteBaseProvider>
|
|
);
|
|
}
|