import { FlaskConical } from "lucide-react";
import { Outlet, useParams } from "react-router";
import { agentMockEnabled } from "~/api/agent.ts";
import { agentRunHref, pageListMemory, usePageListGroup, useRunGroup } from "~/components/agent/agent-nav.ts";
import { AgentSessionList } from "~/components/agent/agent-session-list.tsx";
import { PageHeader } from "~/components/console/page-header.tsx";
import { Button } from "~/components/ui/button.tsx";
import { cn } from "~/lib/utils.ts";
/**
* 智能体页的外壳(AGUI-3):列表页与会话页共用。标题、演示提示与左栏会话列表在这里,只挂载一次;
* 右栏是子路由(新对话输入框 / 某个会话)。切换会话、回到列表都不重挂载左栏,也不重播入场动画,
* 标题与两栏的位置不跳。
*/
export default function AgentLayout() {
const { runId } = useParams();
const mock = agentMockEnabled();
const runGroupOf = useRunGroup(runId);
// 列表页没有 tab 就是「对话」;会话页的左栏分栏跟随当前会话(巡检会话及其子会话在「自动巡检」),也可以手动切换(记在 URL)
const [group, setGroup] = usePageListGroup(runId ? runGroupOf : undefined);
return (
<>