import type { AgentRunStatus } from "@umt/contracts"; import { FlaskConical, ShieldCheck } from "lucide-react"; import { useState } from "react"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import { agentMockEnabled, useCreateAgentRun } from "~/api/agent.ts"; import { GoalComposer } from "~/components/agent/agent-run-panel.tsx"; 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 { errorMessage } from "~/lib/api.ts"; export default function AgentPage() { const [status, setStatus] = useState<"" | AgentRunStatus>(""); const create = useCreateAgentRun(); const navigate = useNavigate(); const mock = agentMockEnabled(); return ( <> {mock ? (
演示模式:会话是本地假数据,不连接后端,不执行任何操作。
) : null}

新会话

create.mutate( { goal, ...opts }, { onSuccess: (run) => navigate(`/console/agent/${run.id}${mock ? "?mock=1" : ""}`), onError: (e) => toast.error(errorMessage(e)), }, ) } />

每次工具调用都经服务端授权校验。控制台发起的会话里,没有持续授权的下载、整理、策略发布会在对应步骤出审批卡。

汇报分两栏:模型自述仅供参考,"系统核实的结果"取自下载计划、下载任务和整理记录。

); }