From 7d11ae26449eb71dead57ec9fdc0b2ef13cb421a Mon Sep 17 00:00:00 2001 From: tzt <14718231+flying-travel@user.noreply.gitee.com> Date: Tue, 1 Sep 2026 22:30:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(v3):=20T27=20=E4=BC=9A=E8=AF=9D=E5=BC=8F?= =?UTF-8?q?=E6=99=BA=E8=83=BD=E4=BD=93=EF=BC=88=E5=A4=9A=E8=BD=AE=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=96=87/=E5=81=9C=E6=AD=A2/=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E5=BC=8F=20UI=EF=BC=8C=E5=AF=B9=E9=BD=90=20dsh=20=E8=8C=83?= =?UTF-8?q?=E5=BC=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ToolLoop 增 history 参数(既往轮次折叠为对话上下文,近 6 轮) - 会话制:AgentSession/SessionStore 持久化 agent_runs/sessions/{sid}.json, /agent/sessions CRUD + /agent 带 session_id(继承会话工作区与执行者配置,busy 并发控制) - POST /agent/{id}/cancel:取消运行中任务 - AgentView 重构为对话式:会话列表 + 居中消息流(用户蓝气泡/助手白卡)+ 底部 composer (工作区/执行者/命令 chips,Enter 发送,运行中红色停止钮),工具过程折叠收纳 - 工具步数统计统一至事件写入层并透出 status.tool_calls - fix(tests): 会话存储测试隔离,防测试数据泄漏进真实 sessions 目录 - 测试 +4,全量 281 passed --- gateway/agent.py | 152 ++- gateway/api.py | 89 +- ...XWyaX.js => CollaborationView-BmtDAtzA.js} | 2 +- ...ew-Oto8AtT0.js => MetricsView-C48cZGC4.js} | 2 +- ...iew-C4zpJWvh.js => ReviewView-BfRRKakQ.js} | 2 +- ...w-CTDHQ2go.js => SettingsView-DF8Zhz99.js} | 2 +- gateway/static/assets/index-8a-EFu_T.js | 11 - gateway/static/assets/index-CzrTgC9J.css | 1 + gateway/static/assets/index-DdcvGqdd.js | 11 + gateway/static/assets/index-DtUWLrmy.css | 1 - gateway/static/index.html | 4 +- router_system/tools.py | 10 +- tests/test_agent_api.py | 116 +++ tests/test_tools.py | 14 + ...ac6-43f2-b2f3-8833b3150465-4843032ba9.json | 6 +- webapp/src/api/index.ts | 72 +- webapp/src/views/AgentView.vue | 926 +++++++++--------- 任务拆解与执行计划.md | 1 + 实现方案_v4_模型池与工具智能体.md | 14 + 毕业设计_进度记录.md | 10 + 20 files changed, 973 insertions(+), 473 deletions(-) rename gateway/static/assets/{CollaborationView-BGbXWyaX.js => CollaborationView-BmtDAtzA.js} (98%) rename gateway/static/assets/{MetricsView-Oto8AtT0.js => MetricsView-C48cZGC4.js} (98%) rename gateway/static/assets/{ReviewView-C4zpJWvh.js => ReviewView-BfRRKakQ.js} (97%) rename gateway/static/assets/{SettingsView-CTDHQ2go.js => SettingsView-DF8Zhz99.js} (99%) delete mode 100644 gateway/static/assets/index-8a-EFu_T.js create mode 100644 gateway/static/assets/index-CzrTgC9J.css create mode 100644 gateway/static/assets/index-DdcvGqdd.js delete mode 100644 gateway/static/assets/index-DtUWLrmy.css diff --git a/gateway/agent.py b/gateway/agent.py index b99e4c2..f70825d 100644 --- a/gateway/agent.py +++ b/gateway/agent.py @@ -167,6 +167,7 @@ class AgentRunInfo: workspace: str = "" # 本次运行使用的工作区根目录(绝对路径) executor_model: str = "" # 两级模式:执行者模型名(空 = 单模型模式) mode: str = "single" # single | dual + tool_calls: int = 0 # 本次运行的工具调用步数 asyncio_task: Optional[asyncio.Task] = field(default=None, repr=False) def to_dict(self) -> Dict[str, Any]: @@ -186,6 +187,7 @@ class AgentRunInfo: "workspace": self.workspace, "executor_model": self.executor_model, "mode": self.mode, + "tool_calls": self.tool_calls, } @@ -231,12 +233,16 @@ class AgentService: max_rounds: int = 8, token_cap: int = 0, allow_shell: bool = False, shell_timeout_s: int = 20, executor_chat: Any = None, - max_handoffs: int = DEFAULT_MAX_HANDOFFS) -> None: + max_handoffs: int = DEFAULT_MAX_HANDOFFS, + session: Optional["AgentSession"] = None) -> None: """执行智能体任务(由调用方包成后台协程)。 executor_chat 为空 = 单模型模式(chat 全程包办); 提供时进入两级模式:chat 作规划者,executor_chat 作执行者(D7)。 + session 提供时:既往轮次作为对话上下文,完成后把本轮追加进会话。 """ + history = self._history_from_session(session) + try: if executor_chat is not None: result = await self.run_dual( @@ -249,7 +255,8 @@ class AgentService: shell_timeout_s=shell_timeout_s) loop = ToolLoop(tools, chat, max_rounds=max_rounds, token_cap=token_cap, on_event=self._make_event_writer(info)) - result = await loop.run(info.task, system=AGENT_SYSTEM_PROMPT) + result = await loop.run(info.task, system=AGENT_SYSTEM_PROMPT, + history=history) self._apply_result(info, result) except Exception as exc: # pragma: no cover info.state = STATE_FAILED @@ -259,6 +266,33 @@ class AgentService: finally: info.finished_at = time.time() self._write_status(info) + if session is not None: + session.data["turns"].append({ + "request_id": info.request_id, + "task": info.task, + "response": info.response, + "state": info.state, + "tool_calls": info.tool_calls, + "tokens": info.prompt_tokens + info.completion_tokens, + "error": info.error, + "ts": info.finished_at, + }) + get_session_store().save(session) + + @staticmethod + def _history_from_session(session: Optional["AgentSession"], + max_turns: int = 6, + max_chars: int = 1500) -> List[Dict[str, Any]]: + """把会话既往轮次折叠成对话上下文(不含工具细节)。""" + if session is None: + return [] + turns = [t for t in session.data.get("turns", []) + if t.get("state") == STATE_DONE and t.get("response")] + out: List[Dict[str, Any]] = [] + for t in turns[-max_turns:]: + out.append({"role": "user", "content": str(t["task"])[:max_chars]}) + out.append({"role": "assistant", "content": str(t["response"])[:max_chars]}) + return out def _apply_result(self, info: AgentRunInfo, result: Dict[str, Any]) -> None: """把循环结果落到运行状态(单/两级模式共用)。""" @@ -413,6 +447,8 @@ class AgentService: # ---------- 事件 ---------- def _make_event_writer(self, info: AgentRunInfo): def _on_event(ev: Dict[str, Any]) -> None: + if ev.get("type") == "tool_call": + info.tool_calls += 1 # 工具步数统计(单/两级模式统一在此) self._append_event(info, ev) return _on_event @@ -509,3 +545,115 @@ def reset_agent_service() -> None: def new_request_id() -> str: return "ag" + uuid.uuid4().hex[:10] + + +# ───────────────────────────────────────────────────────────────────────────── +# 会话(dsh 式:工作区内多轮对话,持久化到磁盘) +# ───────────────────────────────────────────────────────────────────────────── +SESSIONS_DIR = Path("agent_runs") / "sessions" + + +class AgentSession: + """一个智能体会话:多轮任务 + 配置快照(磁盘持久化)。""" + + def __init__(self, data: Dict[str, Any]): + self.data = data + + @classmethod + def new(cls, sid: str, title: str, workspace: str, + pool_id: str = "", executor_pool_id: str = "") -> "AgentSession": + now = time.time() + return cls({ + "id": sid, "title": title[:24] or "新会话", "workspace": workspace, + "pool_id": pool_id, "executor_pool_id": executor_pool_id, + "created_at": now, "updated_at": now, "busy": False, + "turns": [], # [{request_id, task, response, state, tool_calls, tokens}] + }) + + def to_dict(self) -> Dict[str, Any]: + return dict(self.data) + + def view(self, include_turns: bool = True) -> Dict[str, Any]: + out = self.to_dict() + if not include_turns: + out["turns"] = len(self.data.get("turns", [])) + return out + + +class SessionStore: + """会话注册表(内存索引 + sessions/{sid}.json 持久化)。""" + + def __init__(self, root: Path = SESSIONS_DIR): + self.root = Path(root) + self.root.mkdir(parents=True, exist_ok=True) + self._cache: Dict[str, AgentSession] = {} + + def _path(self, sid: str) -> Path: + return self.root / f"{sid}.json" + + def create(self, title: str, workspace: str, + pool_id: str = "", executor_pool_id: str = "") -> AgentSession: + sid = "as" + uuid.uuid4().hex[:10] + sess = AgentSession.new(sid, title or "新会话", workspace, pool_id, executor_pool_id) + self._cache[sid] = sess + self._save(sess) + return sess + + def get(self, sid: str) -> Optional[AgentSession]: + if sid in self._cache: + return self._cache[sid] + p = self._path(sid) + if not p.exists(): + return None + try: + sess = AgentSession(json.loads(p.read_text(encoding="utf-8"))) + self._cache[sid] = sess + return sess + except (json.JSONDecodeError, OSError): + return None + + def list(self) -> List[Dict[str, Any]]: + out = [] + for p in sorted(self.root.glob("*.json"), + key=lambda x: x.stat().st_mtime, reverse=True): + try: + out.append(json.loads(p.read_text(encoding="utf-8"))) + except (json.JSONDecodeError, OSError): + continue + return out + + def delete(self, sid: str) -> bool: + self._cache.pop(sid, None) + p = self._path(sid) + if p.exists(): + p.unlink() + return True + return False + + def save(self, sess: AgentSession) -> None: + self._cache[sess.data["id"]] = sess + self._save(sess) + + def _save(self, sess: AgentSession) -> None: + sess.data["updated_at"] = time.time() + try: + self._path(sess.data["id"]).write_text( + json.dumps(sess.data, ensure_ascii=False, indent=2), encoding="utf-8") + except OSError: + pass + + +_session_store: Optional[SessionStore] = None + + +def get_session_store() -> SessionStore: + global _session_store + if _session_store is None: + _session_store = SessionStore() + return _session_store + + +def reset_session_store() -> None: + """测试用。""" + global _session_store + _session_store = None diff --git a/gateway/api.py b/gateway/api.py index a449ace..00c83a0 100644 --- a/gateway/api.py +++ b/gateway/api.py @@ -501,12 +501,13 @@ try: @app.post("/agent", tags=["agent"]) async def agent_run(req: dict): - """提交智能体任务:{"task", "pool_id"?, "workspace"?}。 + """提交智能体任务:{"task", "pool_id"?, "workspace"?, "executor_pool_id"?, "session_id"?}。 - workspace 为用户选择的工作目录(绝对路径);缺省用设置里的 agent.workspace_dir。 + workspace 为用户选择的工作目录;缺省继承会话目录,再缺省用设置默认值。 + session_id 提供时任务在会话内执行(多轮上下文 + 轮次记录)。 立即返回 request_id;过程事件经 GET /agent/{id}/stream (SSE) 推送。 """ - from gateway.agent import get_agent_service, new_request_id + from gateway.agent import get_agent_service, get_session_store, new_request_id from router_system.tools import WorkspaceTools task = str((req or {}).get("task") or "").strip() @@ -518,7 +519,23 @@ try: s = settings_store().to_dict() agent_cfg = s.get("agent", {}) + + # 会话(可选):须存在且空闲;工作区缺省继承会话目录 + session = None + session_id = str((req or {}).get("session_id") or "").strip() + if session_id: + session = get_session_store().get(session_id) + if session is None: + raise HTTPException(status_code=404, detail=f"会话不存在: {session_id}") + if session.data.get("busy"): + raise HTTPException(status_code=409, detail="该会话有任务正在运行,请稍候") + # 会话级配置继承(创建时指定,后续轮次沿用) + if not pool_id: + pool_id = str(session.data.get("pool_id") or "") + ws_raw = str((req or {}).get("workspace") or "").strip() + if not ws_raw and session is not None: + ws_raw = str(session.data.get("workspace") or "") if ws_raw: ws_path = Path(ws_raw) if not ws_path.exists(): @@ -533,6 +550,8 @@ try: # 两级模式(D7):显式指定执行者(本地小模型)时,规划=chat、执行=executor_chat executor_pool_id = str((req or {}).get("executor_pool_id") or "").strip() + if not executor_pool_id and session is not None: + executor_pool_id = str(session.data.get("executor_pool_id") or "") executor_chat = None executor_model = "" if executor_pool_id: @@ -565,8 +584,11 @@ try: if info is None: raise HTTPException(status_code=503, detail="智能体同时运行任务已达上限") - s = settings_store().to_dict() - agent_cfg = s.get("agent", {}) + if session is not None: + session.data["busy"] = True + if not session.data.get("workspace"): + session.data["workspace"] = workspace_dir + get_session_store().save(session) async def _run(): try: @@ -579,6 +601,7 @@ try: shell_timeout_s=int(agent_cfg.get("shell_timeout_s", 20)), executor_chat=executor_chat, max_handoffs=int(agent_cfg.get("max_handoffs", 2)), + session=session, ) except Exception as exc: import traceback @@ -587,11 +610,65 @@ try: info.error = str(exc) info.finished_at = __import__("time").time() service._write_status(info) + finally: + if session is not None: + session.data["busy"] = False + get_session_store().save(session) info.asyncio_task = asyncio.create_task(_run()) return {"request_id": request_id, "status": "running", "model": model, "workspace": workspace_dir, "mode": mode, - "executor_model": executor_model} + "executor_model": executor_model, "session_id": session_id or None} + + @app.post("/agent/{request_id}/cancel", tags=["agent"]) + async def agent_cancel(request_id: str): + """停止运行中的智能体任务。""" + from gateway.agent import get_agent_service + service = get_agent_service() + info = service.get(request_id) + if info is None: + raise HTTPException(status_code=404, detail=f"智能体任务不存在: {request_id}") + if info.state != "running": + return {"ok": False, "detail": f"任务已结束({info.state})"} + if info.asyncio_task is not None: + info.asyncio_task.cancel() + info.state = "failed" + info.error = "cancelled_by_user" + info.finished_at = __import__("time").time() + service._write_status(info) + return {"ok": True} + + # ---------------- 会话(dsh 式多轮对话) ---------------- + @app.post("/agent/sessions", tags=["agent"]) + async def agent_session_create(req: dict = None): + """创建会话:{"title"?, "workspace"?, "pool_id"?, "executor_pool_id"?}""" + from gateway.agent import get_session_store + r = req or {} + sess = get_session_store().create( + title=str(r.get("title") or "").strip(), + workspace=str(r.get("workspace") or "").strip(), + pool_id=str(r.get("pool_id") or ""), + executor_pool_id=str(r.get("executor_pool_id") or "")) + return sess.view() + + @app.get("/agent/sessions", tags=["agent"]) + async def agent_sessions(): + """会话列表(按更新时间倒序)。""" + from gateway.agent import get_session_store + return get_session_store().list() + + @app.get("/agent/sessions/{sid}", tags=["agent"]) + async def agent_session_detail(sid: str): + from gateway.agent import get_session_store + sess = get_session_store().get(sid) + if sess is None: + raise HTTPException(status_code=404, detail=f"会话不存在: {sid}") + return sess.view() + + @app.delete("/agent/sessions/{sid}", tags=["agent"]) + async def agent_session_delete(sid: str): + from gateway.agent import get_session_store + return {"ok": get_session_store().delete(sid)} @app.get("/agent/fs", tags=["agent"]) async def agent_fs_browse(path: str = ""): diff --git a/gateway/static/assets/CollaborationView-BGbXWyaX.js b/gateway/static/assets/CollaborationView-BmtDAtzA.js similarity index 98% rename from gateway/static/assets/CollaborationView-BGbXWyaX.js rename to gateway/static/assets/CollaborationView-BmtDAtzA.js index 9cf17e0..9168b88 100644 --- a/gateway/static/assets/CollaborationView-BGbXWyaX.js +++ b/gateway/static/assets/CollaborationView-BmtDAtzA.js @@ -1 +1 @@ -import{A as e,C as t,D as n,G as r,H as ee,I as i,L as a,M as o,N as s,O as c,R as l,U as u,V as d,W as te,j as f,k as p,n as ne,t as m}from"./index-8a-EFu_T.js";var re={class:`collab-view`},ie={class:`collab-sidebar`},ae={class:`session-list`},oe=[`onClick`],se={class:`meta`},ce={key:0,class:`stats`},h={class:`stat-grid`},g={class:`route-flow`},_={class:`collab-main`},v={key:0,class:`empty`},y={class:`section brief-section`},b={class:`brief-card`},x={class:`goal`},S={class:`tags`},C={key:0,class:`domain`},w={key:0,class:`constraints`},T={class:`section plan-section`},E={class:`plan-timeline`},D={class:`step-content`},O={class:`step-header`},k={class:`step-id`},A={class:`step-status`},j={class:`step-task`},M={key:0,class:`step-deps`},N={key:1,class:`step-artifact`},P={class:`section progress-section`},le={class:`progress-bar-wrap`},F={class:`progress-label`},I={class:`progress-bar`},L={class:`progress-steps`},R={class:`pg-icon`},z={key:0,class:`pg-note`},B={key:0,class:`section issues-section`},V={class:`issue-header`},H={class:`issue-id`},U={class:`issue-step`},W={key:0,class:`decision`},ue={key:1,class:`section archive-section`},de={class:`archive-list`},fe={key:2,class:`section deliver-section`},pe={class:`response-block`},G=m(s({__name:`CollaborationView`,setup(s){let m=ne(),G=d(m.currentId),K=d(null),q=c(()=>m.sessions.find(e=>e.requestId===G.value)??null),J=c(()=>K.value??q.value?.workspace??null);function Y(e){G.value=e,K.value=null}let X=null;function me(e){X?.close(),X=t(e),X.subscribe({onWorkspace(t){t.request_id===G.value&&(K.value=t,m.updateWorkspace(e,t))},onStatus(){m.pollStatus(e)},onDone(){m.pollStatus(e)},onError(){}})}l(()=>m.sessions,e=>{G.value&&(e.find(e=>e.requestId===G.value)||(G.value=e[0]?.requestId??null))},{deep:!0}),l(G,e=>{if(!e)return;let t=m.sessions.find(t=>t.requestId===e);t?.workspace&&(K.value=t.workspace),me(e)},{immediate:!0});function Z(e){return J.value?.progress?.find(t=>t.step===e)?.status??`pending`}function Q(e){return J.value?.progress?.find(t=>t.step===e)?.artifact??null}function $(e){return J.value?.decisions?.find(t=>t.ref===e)??null}return(t,s)=>(i(),f(`div`,re,[p(`aside`,ie,[s[6]||=p(`h3`,null,`协作会话`,-1),p(`ul`,ae,[(i(!0),f(n,null,a(ee(m).sessions,e=>(i(),f(`li`,{key:e.requestId,class:u([`session-item`,{active:e.requestId===G.value}]),onClick:t=>Y(e.requestId)},[p(`span`,null,r(e.query.slice(0,24))+r(e.query.length>24?`…`:``),1),p(`span`,se,r(e.status?.rounds_used??`?`)+` 轮 · `+r(e.status?.model_used??`—`),1)],10,oe))),128))]),q.value?(i(),f(`div`,ce,[s[4]||=p(`h4`,null,`运行统计`,-1),p(`div`,h,[s[0]||=p(`span`,null,`输入 Token`,-1),p(`b`,null,r(q.value.status?.api_input_tokens??0),1),s[1]||=p(`span`,null,`输出 Token`,-1),p(`b`,null,r(q.value.status?.api_output_tokens??0),1),s[2]||=p(`span`,null,`延迟`,-1),p(`b`,null,r(q.value.status?.latency_ms?.toFixed(0)??`—`)+` ms`,1),s[3]||=p(`span`,null,`快路径`,-1),p(`b`,null,r(q.value.status?.fast_path?`是`:`否`),1)]),s[5]||=p(`h4`,null,`路由路径`,-1),p(`div`,g,[(i(!0),f(n,null,a(q.value.status?.route??[],(e,t)=>(i(),f(`span`,{key:t,class:`route-node`},r(e),1))),128))])])):e(``,!0)]),p(`main`,_,[J.value?(i(),f(n,{key:1},[p(`section`,y,[s[8]||=p(`h2`,{class:`section-title`},`📋 Brief(任务简报)`,-1),p(`div`,b,[p(`div`,x,r(J.value.brief?.goal??`(未生成)`),1),p(`div`,S,[(i(!0),f(n,null,a(J.value.brief?.tags??[],e=>(i(),f(`span`,{key:e,class:`tag`},r(e),1))),128)),J.value.brief?.domain?(i(),f(`span`,C,r(J.value.brief.domain),1)):e(``,!0)]),J.value.brief?.constraints?.length?(i(),f(`ul`,w,[(i(!0),f(n,null,a(J.value.brief.constraints,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])):e(``,!0)])]),p(`section`,T,[s[12]||=p(`h2`,{class:`section-title`},`📌 Plan(执行计划)`,-1),p(`div`,E,[(i(!0),f(n,null,a(J.value.plan??[],t=>(i(),f(`div`,{key:t.id,class:u([`plan-step`,Z(t.id)])},[s[11]||=p(`div`,{class:`step-dot`},null,-1),p(`div`,D,[p(`div`,O,[p(`span`,k,r(t.id),1),p(`span`,A,r(Z(t.id)),1)]),p(`p`,j,r(t.task),1),t.deps.length?(i(),f(`div`,M,[s[9]||=o(` 依赖:`,-1),(i(!0),f(n,null,a(t.deps,e=>(i(),f(`span`,{key:e,class:`dep`},r(e),1))),128))])):e(``,!0),Q(t.id)?(i(),f(`div`,N,[p(`details`,null,[s[10]||=p(`summary`,null,`📄 工件内容`,-1),p(`pre`,null,r(Q(t.id)),1)])])):e(``,!0)])],2))),128))])]),p(`section`,P,[s[13]||=p(`h2`,{class:`section-title`},`🔄 进度(实时)`,-1),p(`div`,le,[p(`div`,F,` 第 `+r(J.value.meta.round)+` / `+r(J.value.meta.rounds_cap)+` 轮 `,1),p(`div`,I,[p(`div`,{class:`progress-fill`,style:te({width:`${J.value.meta.round/J.value.meta.rounds_cap*100}%`})},null,4)])]),p(`div`,L,[(i(!0),f(n,null,a(J.value.progress??[],t=>(i(),f(`div`,{key:t.step,class:u([`pg-step`,t.status])},[p(`span`,R,r(t.status===`done`?`✅`:t.status===`running`?`⏳`:`⭕`),1),p(`span`,null,r(t.step),1),t.note?(i(),f(`span`,z,r(t.note),1)):e(``,!0)],2))),128))])]),J.value.issues?.length?(i(),f(`section`,B,[s[15]||=p(`h2`,{class:`section-title`},`⚠️ Issues & 裁决`,-1),(i(!0),f(n,null,a(J.value.issues,t=>(i(),f(`div`,{key:t.id,class:`issue-card`},[p(`div`,V,[p(`span`,H,r(t.id),1),p(`span`,U,`Step: `+r(t.step),1)]),p(`p`,null,r(t.description),1),$(t.id)?(i(),f(`div`,W,[s[14]||=p(`strong`,null,`Architect 裁决:`,-1),o(r($(t.id)?.reply),1)])):e(``,!0)]))),128))])):e(``,!0),J.value.archive?.length?(i(),f(`section`,ue,[s[16]||=p(`h2`,{class:`section-title`},`📦 Archive(摘要归档)`,-1),p(`ul`,de,[(i(!0),f(n,null,a(J.value.archive,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])])):e(``,!0),J.value.meta.state===`done`?(i(),f(`section`,fe,[s[17]||=p(`h2`,{class:`section-title`},`🎉 交付`,-1),p(`div`,pe,[p(`pre`,null,r(q.value?.status?.response??`(无内容)`),1)])])):e(``,!0)],64)):(i(),f(`div`,v,[...s[7]||=[p(`p`,null,`从左侧选择一个会话,或在「对话」页发起新提问。`,-1),p(`p`,null,`协作过程通过 SSE 实时推送,无需刷新。`,-1)]]))])]))}}),[[`__scopeId`,`data-v-556e88a4`]]);export{G as default}; \ No newline at end of file +import{A as e,C as t,D as n,G as r,H as ee,I as i,L as a,M as o,N as s,O as c,R as l,U as u,V as d,W as te,j as f,k as p,n as ne,t as m}from"./index-DdcvGqdd.js";var re={class:`collab-view`},ie={class:`collab-sidebar`},ae={class:`session-list`},oe=[`onClick`],se={class:`meta`},ce={key:0,class:`stats`},h={class:`stat-grid`},g={class:`route-flow`},_={class:`collab-main`},v={key:0,class:`empty`},y={class:`section brief-section`},b={class:`brief-card`},x={class:`goal`},S={class:`tags`},C={key:0,class:`domain`},w={key:0,class:`constraints`},T={class:`section plan-section`},E={class:`plan-timeline`},D={class:`step-content`},O={class:`step-header`},k={class:`step-id`},A={class:`step-status`},j={class:`step-task`},M={key:0,class:`step-deps`},N={key:1,class:`step-artifact`},P={class:`section progress-section`},le={class:`progress-bar-wrap`},F={class:`progress-label`},I={class:`progress-bar`},L={class:`progress-steps`},R={class:`pg-icon`},z={key:0,class:`pg-note`},B={key:0,class:`section issues-section`},V={class:`issue-header`},H={class:`issue-id`},U={class:`issue-step`},W={key:0,class:`decision`},ue={key:1,class:`section archive-section`},de={class:`archive-list`},fe={key:2,class:`section deliver-section`},pe={class:`response-block`},G=m(s({__name:`CollaborationView`,setup(s){let m=ne(),G=d(m.currentId),K=d(null),q=c(()=>m.sessions.find(e=>e.requestId===G.value)??null),J=c(()=>K.value??q.value?.workspace??null);function Y(e){G.value=e,K.value=null}let X=null;function me(e){X?.close(),X=t(e),X.subscribe({onWorkspace(t){t.request_id===G.value&&(K.value=t,m.updateWorkspace(e,t))},onStatus(){m.pollStatus(e)},onDone(){m.pollStatus(e)},onError(){}})}l(()=>m.sessions,e=>{G.value&&(e.find(e=>e.requestId===G.value)||(G.value=e[0]?.requestId??null))},{deep:!0}),l(G,e=>{if(!e)return;let t=m.sessions.find(t=>t.requestId===e);t?.workspace&&(K.value=t.workspace),me(e)},{immediate:!0});function Z(e){return J.value?.progress?.find(t=>t.step===e)?.status??`pending`}function Q(e){return J.value?.progress?.find(t=>t.step===e)?.artifact??null}function $(e){return J.value?.decisions?.find(t=>t.ref===e)??null}return(t,s)=>(i(),f(`div`,re,[p(`aside`,ie,[s[6]||=p(`h3`,null,`协作会话`,-1),p(`ul`,ae,[(i(!0),f(n,null,a(ee(m).sessions,e=>(i(),f(`li`,{key:e.requestId,class:u([`session-item`,{active:e.requestId===G.value}]),onClick:t=>Y(e.requestId)},[p(`span`,null,r(e.query.slice(0,24))+r(e.query.length>24?`…`:``),1),p(`span`,se,r(e.status?.rounds_used??`?`)+` 轮 · `+r(e.status?.model_used??`—`),1)],10,oe))),128))]),q.value?(i(),f(`div`,ce,[s[4]||=p(`h4`,null,`运行统计`,-1),p(`div`,h,[s[0]||=p(`span`,null,`输入 Token`,-1),p(`b`,null,r(q.value.status?.api_input_tokens??0),1),s[1]||=p(`span`,null,`输出 Token`,-1),p(`b`,null,r(q.value.status?.api_output_tokens??0),1),s[2]||=p(`span`,null,`延迟`,-1),p(`b`,null,r(q.value.status?.latency_ms?.toFixed(0)??`—`)+` ms`,1),s[3]||=p(`span`,null,`快路径`,-1),p(`b`,null,r(q.value.status?.fast_path?`是`:`否`),1)]),s[5]||=p(`h4`,null,`路由路径`,-1),p(`div`,g,[(i(!0),f(n,null,a(q.value.status?.route??[],(e,t)=>(i(),f(`span`,{key:t,class:`route-node`},r(e),1))),128))])])):e(``,!0)]),p(`main`,_,[J.value?(i(),f(n,{key:1},[p(`section`,y,[s[8]||=p(`h2`,{class:`section-title`},`📋 Brief(任务简报)`,-1),p(`div`,b,[p(`div`,x,r(J.value.brief?.goal??`(未生成)`),1),p(`div`,S,[(i(!0),f(n,null,a(J.value.brief?.tags??[],e=>(i(),f(`span`,{key:e,class:`tag`},r(e),1))),128)),J.value.brief?.domain?(i(),f(`span`,C,r(J.value.brief.domain),1)):e(``,!0)]),J.value.brief?.constraints?.length?(i(),f(`ul`,w,[(i(!0),f(n,null,a(J.value.brief.constraints,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])):e(``,!0)])]),p(`section`,T,[s[12]||=p(`h2`,{class:`section-title`},`📌 Plan(执行计划)`,-1),p(`div`,E,[(i(!0),f(n,null,a(J.value.plan??[],t=>(i(),f(`div`,{key:t.id,class:u([`plan-step`,Z(t.id)])},[s[11]||=p(`div`,{class:`step-dot`},null,-1),p(`div`,D,[p(`div`,O,[p(`span`,k,r(t.id),1),p(`span`,A,r(Z(t.id)),1)]),p(`p`,j,r(t.task),1),t.deps.length?(i(),f(`div`,M,[s[9]||=o(` 依赖:`,-1),(i(!0),f(n,null,a(t.deps,e=>(i(),f(`span`,{key:e,class:`dep`},r(e),1))),128))])):e(``,!0),Q(t.id)?(i(),f(`div`,N,[p(`details`,null,[s[10]||=p(`summary`,null,`📄 工件内容`,-1),p(`pre`,null,r(Q(t.id)),1)])])):e(``,!0)])],2))),128))])]),p(`section`,P,[s[13]||=p(`h2`,{class:`section-title`},`🔄 进度(实时)`,-1),p(`div`,le,[p(`div`,F,` 第 `+r(J.value.meta.round)+` / `+r(J.value.meta.rounds_cap)+` 轮 `,1),p(`div`,I,[p(`div`,{class:`progress-fill`,style:te({width:`${J.value.meta.round/J.value.meta.rounds_cap*100}%`})},null,4)])]),p(`div`,L,[(i(!0),f(n,null,a(J.value.progress??[],t=>(i(),f(`div`,{key:t.step,class:u([`pg-step`,t.status])},[p(`span`,R,r(t.status===`done`?`✅`:t.status===`running`?`⏳`:`⭕`),1),p(`span`,null,r(t.step),1),t.note?(i(),f(`span`,z,r(t.note),1)):e(``,!0)],2))),128))])]),J.value.issues?.length?(i(),f(`section`,B,[s[15]||=p(`h2`,{class:`section-title`},`⚠️ Issues & 裁决`,-1),(i(!0),f(n,null,a(J.value.issues,t=>(i(),f(`div`,{key:t.id,class:`issue-card`},[p(`div`,V,[p(`span`,H,r(t.id),1),p(`span`,U,`Step: `+r(t.step),1)]),p(`p`,null,r(t.description),1),$(t.id)?(i(),f(`div`,W,[s[14]||=p(`strong`,null,`Architect 裁决:`,-1),o(r($(t.id)?.reply),1)])):e(``,!0)]))),128))])):e(``,!0),J.value.archive?.length?(i(),f(`section`,ue,[s[16]||=p(`h2`,{class:`section-title`},`📦 Archive(摘要归档)`,-1),p(`ul`,de,[(i(!0),f(n,null,a(J.value.archive,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])])):e(``,!0),J.value.meta.state===`done`?(i(),f(`section`,fe,[s[17]||=p(`h2`,{class:`section-title`},`🎉 交付`,-1),p(`div`,pe,[p(`pre`,null,r(q.value?.status?.response??`(无内容)`),1)])])):e(``,!0)],64)):(i(),f(`div`,v,[...s[7]||=[p(`p`,null,`从左侧选择一个会话,或在「对话」页发起新提问。`,-1),p(`p`,null,`协作过程通过 SSE 实时推送,无需刷新。`,-1)]]))])]))}}),[[`__scopeId`,`data-v-556e88a4`]]);export{G as default}; \ No newline at end of file diff --git a/gateway/static/assets/MetricsView-Oto8AtT0.js b/gateway/static/assets/MetricsView-C48cZGC4.js similarity index 98% rename from gateway/static/assets/MetricsView-Oto8AtT0.js rename to gateway/static/assets/MetricsView-C48cZGC4.js index 1ee062e..30d11de 100644 --- a/gateway/static/assets/MetricsView-Oto8AtT0.js +++ b/gateway/static/assets/MetricsView-C48cZGC4.js @@ -1 +1 @@ -import{A as e,D as t,G as n,I as r,L as i,N as a,O as o,P as s,V as c,W as l,j as u,k as d,s as f,t as p}from"./index-8a-EFu_T.js";var m={class:`metrics-view`},h={key:0,class:`loading`},g={key:1,class:`error`},_={class:`card-grid`},v={class:`metric-card`},y={class:`kv-list`},b={class:`metric-card`},x={class:`kv-list`},S={key:0,class:`metric-card highlight`},C={class:`kv-list`},w={key:0},T={key:1},E={key:1,class:`metric-card`},D={class:`by-model`},O={class:`mono`},k={key:2,class:`metric-card review-card`},A={class:`review-stats`},j={class:`stat-item`},M={class:`stat-num`},N={class:`stat-item`},P={class:`stat-num`},F={key:0,class:`progress-wrap`},I={class:`review-rate`},L={class:`raw-json`},R=p(a({__name:`MetricsView`,setup(a){let p=c(null),R=c(!1),z=c(``),B=o(()=>p.value?.v2?.by_model||null);async function V(){R.value=!0,z.value=``;try{p.value=await f()}catch(e){z.value=e instanceof Error?e.message:`指标加载失败,请检查后端服务`}finally{R.value=!1}}return s(V),(a,o)=>(r(),u(`div`,m,[d(`header`,{class:`metrics-header`},[o[0]||=d(`h2`,null,`系统指标`,-1),d(`button`,{class:`refresh`,onClick:V},`🔄 刷新`)]),R.value?(r(),u(`div`,h,`加载中…`)):z.value?(r(),u(`div`,g,n(z.value),1)):p.value?(r(),u(t,{key:2},[d(`div`,_,[d(`div`,v,[o[1]||=d(`h3`,null,`路由器(v1)`,-1),d(`div`,y,[(r(!0),u(t,null,i(p.value.router,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),d(`div`,b,[o[2]||=d(`h3`,null,`缓存`,-1),d(`div`,x,[(r(!0),u(t,null,i(p.value.cache,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),p.value.v2?(r(),u(`div`,S,[o[3]||=d(`h3`,null,`协作管线(v2)`,-1),d(`div`,C,[(r(!0),u(t,null,i(p.value.v2,(i,a)=>(r(),u(t,{key:a},[a===`by_model`?e(``,!0):(r(),u(`span`,w,n(a),1)),a===`by_model`?e(``,!0):(r(),u(`b`,T,n(i),1))],64))),128))])])):e(``,!0),B.value&&Object.keys(B.value).length?(r(),u(`div`,E,[o[5]||=d(`h3`,null,`按模型分账(token / 成本)`,-1),d(`table`,D,[o[4]||=d(`thead`,null,[d(`tr`,null,[d(`th`,null,`模型`),d(`th`,null,`次数`),d(`th`,null,`入`),d(`th`,null,`出`),d(`th`,null,`成本 $`)])],-1),d(`tbody`,null,[(r(!0),u(t,null,i(B.value,(e,t)=>(r(),u(`tr`,{key:t},[d(`td`,O,n(t),1),d(`td`,null,n(e.requests),1),d(`td`,null,n(e.input_tokens),1),d(`td`,null,n(e.output_tokens),1),d(`td`,null,n(e.cost_est_usd),1)]))),128))])]),o[6]||=d(`p`,{class:`hint`},`单价来自模型池条目($/1M tokens);经典设置下的模型成本不计入。`,-1)])):e(``,!0),p.value.review?(r(),u(`div`,k,[o[9]||=d(`h3`,null,`人工检验`,-1),d(`div`,A,[d(`div`,j,[d(`span`,M,n(p.value.review.pending),1),o[7]||=d(`span`,{class:`stat-label`},`待审核`,-1)]),d(`div`,N,[d(`span`,P,n(p.value.review.total),1),o[8]||=d(`span`,{class:`stat-label`},`总提交`,-1)])]),p.value.review.total>0?(r(),u(`div`,F,[d(`div`,{class:`reviewed-bar`,style:l({width:`${(p.value.review.total-p.value.review.pending)/p.value.review.total*100}%`})},null,4)])):e(``,!0),d(`p`,I,` 通过率: `+n(((p.value.review.total-p.value.review.pending)/p.value.review.total*100).toFixed(1))+`% `,1)])):e(``,!0)]),d(`details`,L,[o[10]||=d(`summary`,null,`原始 JSON`,-1),d(`pre`,null,n(JSON.stringify(p.value,null,2)),1)])],64)):e(``,!0)]))}}),[[`__scopeId`,`data-v-8b237097`]]);export{R as default}; \ No newline at end of file +import{A as e,D as t,G as n,I as r,L as i,N as a,O as o,P as s,V as c,W as l,j as u,k as d,s as f,t as p}from"./index-DdcvGqdd.js";var m={class:`metrics-view`},h={key:0,class:`loading`},g={key:1,class:`error`},_={class:`card-grid`},v={class:`metric-card`},y={class:`kv-list`},b={class:`metric-card`},x={class:`kv-list`},S={key:0,class:`metric-card highlight`},C={class:`kv-list`},w={key:0},T={key:1},E={key:1,class:`metric-card`},D={class:`by-model`},O={class:`mono`},k={key:2,class:`metric-card review-card`},A={class:`review-stats`},j={class:`stat-item`},M={class:`stat-num`},N={class:`stat-item`},P={class:`stat-num`},F={key:0,class:`progress-wrap`},I={class:`review-rate`},L={class:`raw-json`},R=p(a({__name:`MetricsView`,setup(a){let p=c(null),R=c(!1),z=c(``),B=o(()=>p.value?.v2?.by_model||null);async function V(){R.value=!0,z.value=``;try{p.value=await f()}catch(e){z.value=e instanceof Error?e.message:`指标加载失败,请检查后端服务`}finally{R.value=!1}}return s(V),(a,o)=>(r(),u(`div`,m,[d(`header`,{class:`metrics-header`},[o[0]||=d(`h2`,null,`系统指标`,-1),d(`button`,{class:`refresh`,onClick:V},`🔄 刷新`)]),R.value?(r(),u(`div`,h,`加载中…`)):z.value?(r(),u(`div`,g,n(z.value),1)):p.value?(r(),u(t,{key:2},[d(`div`,_,[d(`div`,v,[o[1]||=d(`h3`,null,`路由器(v1)`,-1),d(`div`,y,[(r(!0),u(t,null,i(p.value.router,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),d(`div`,b,[o[2]||=d(`h3`,null,`缓存`,-1),d(`div`,x,[(r(!0),u(t,null,i(p.value.cache,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),p.value.v2?(r(),u(`div`,S,[o[3]||=d(`h3`,null,`协作管线(v2)`,-1),d(`div`,C,[(r(!0),u(t,null,i(p.value.v2,(i,a)=>(r(),u(t,{key:a},[a===`by_model`?e(``,!0):(r(),u(`span`,w,n(a),1)),a===`by_model`?e(``,!0):(r(),u(`b`,T,n(i),1))],64))),128))])])):e(``,!0),B.value&&Object.keys(B.value).length?(r(),u(`div`,E,[o[5]||=d(`h3`,null,`按模型分账(token / 成本)`,-1),d(`table`,D,[o[4]||=d(`thead`,null,[d(`tr`,null,[d(`th`,null,`模型`),d(`th`,null,`次数`),d(`th`,null,`入`),d(`th`,null,`出`),d(`th`,null,`成本 $`)])],-1),d(`tbody`,null,[(r(!0),u(t,null,i(B.value,(e,t)=>(r(),u(`tr`,{key:t},[d(`td`,O,n(t),1),d(`td`,null,n(e.requests),1),d(`td`,null,n(e.input_tokens),1),d(`td`,null,n(e.output_tokens),1),d(`td`,null,n(e.cost_est_usd),1)]))),128))])]),o[6]||=d(`p`,{class:`hint`},`单价来自模型池条目($/1M tokens);经典设置下的模型成本不计入。`,-1)])):e(``,!0),p.value.review?(r(),u(`div`,k,[o[9]||=d(`h3`,null,`人工检验`,-1),d(`div`,A,[d(`div`,j,[d(`span`,M,n(p.value.review.pending),1),o[7]||=d(`span`,{class:`stat-label`},`待审核`,-1)]),d(`div`,N,[d(`span`,P,n(p.value.review.total),1),o[8]||=d(`span`,{class:`stat-label`},`总提交`,-1)])]),p.value.review.total>0?(r(),u(`div`,F,[d(`div`,{class:`reviewed-bar`,style:l({width:`${(p.value.review.total-p.value.review.pending)/p.value.review.total*100}%`})},null,4)])):e(``,!0),d(`p`,I,` 通过率: `+n(((p.value.review.total-p.value.review.pending)/p.value.review.total*100).toFixed(1))+`% `,1)])):e(``,!0)]),d(`details`,L,[o[10]||=d(`summary`,null,`原始 JSON`,-1),d(`pre`,null,n(JSON.stringify(p.value,null,2)),1)])],64)):e(``,!0)]))}}),[[`__scopeId`,`data-v-8b237097`]]);export{R as default}; \ No newline at end of file diff --git a/gateway/static/assets/ReviewView-C4zpJWvh.js b/gateway/static/assets/ReviewView-BfRRKakQ.js similarity index 97% rename from gateway/static/assets/ReviewView-C4zpJWvh.js rename to gateway/static/assets/ReviewView-BfRRKakQ.js index 49c1b2f..991148f 100644 --- a/gateway/static/assets/ReviewView-C4zpJWvh.js +++ b/gateway/static/assets/ReviewView-BfRRKakQ.js @@ -1 +1 @@ -import{A as e,D as t,E as n,G as r,I as i,L as a,M as o,N as s,O as c,P as l,U as u,V as d,f,j as p,k as m,t as h,v as g,z as _}from"./index-8a-EFu_T.js";var v={class:`review-view`},y={class:`review-header`},b={class:`controls`},x={key:0,class:`loading`},S={key:1,class:`error`},C={key:2,class:`queue-list`},w={key:0,class:`empty`},T={class:`card-header`},E={class:`card-id`},D={class:`tags`},O={class:`date`},k={class:`query-block`},A={class:`response-block`},j={key:0,class:`actions`},M=[`onUpdate:modelValue`],N={class:`btn-row`},P=[`onClick`],F=[`onClick`],I={key:1,class:`correction`},L=h(s({__name:`ReviewView`,setup(s){let h=d([]),L=d(!1),R=d(``),z=d(`pending`),B=d({}),V=c(()=>z.value===`all`?h.value:h.value.filter(e=>e.verdict===z.value));async function H(){L.value=!0,R.value=``;try{h.value=await f()}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}}async function U(e,t){try{await g(e,t,B.value[e]||void 0),await H()}catch(e){R.value=e instanceof Error?e.message:String(e)}}return l(H),(s,c)=>(i(),p(`div`,v,[m(`header`,y,[c[4]||=m(`h2`,null,`人工检验队列`,-1),m(`div`,b,[m(`button`,{class:u({active:z.value===`all`}),onClick:c[0]||=e=>z.value=`all`},`全部`,2),m(`button`,{class:u({active:z.value===`pending`}),onClick:c[1]||=e=>z.value=`pending`},`待审核`,2),m(`button`,{class:u({active:z.value===`approved`}),onClick:c[2]||=e=>z.value=`approved`},`已通过`,2),m(`button`,{class:u({active:z.value===`rejected`}),onClick:c[3]||=e=>z.value=`rejected`},`已拒绝`,2),m(`button`,{class:`refresh-btn`,onClick:H},`🔄 刷新`)])]),L.value?(i(),p(`div`,x,`加载中…`)):R.value?(i(),p(`div`,S,r(R.value),1)):(i(),p(`div`,C,[V.value.length?e(``,!0):(i(),p(`div`,w,`队列为空。`)),(i(!0),p(t,null,a(V.value,s=>(i(),p(`div`,{key:s.id,class:`review-card`},[m(`div`,T,[m(`span`,E,`#`+r(s.id),1),m(`span`,{class:u([`verdict-badge`,s.verdict])},r(s.verdict),3),m(`span`,D,[(i(!0),p(t,null,a(s.tags,e=>(i(),p(`span`,{key:e,class:`tag`},r(e),1))),128))]),m(`span`,O,r(s.created_at),1)]),m(`div`,k,[c[5]||=m(`strong`,null,`Query:`,-1),o(r(s.query),1)]),m(`div`,A,[c[6]||=m(`strong`,null,`Response:`,-1),m(`pre`,null,r(s.response),1)]),s.verdict===`pending`?(i(),p(`div`,j,[_(m(`textarea`,{"onUpdate:modelValue":e=>B.value[s.id]=e,placeholder:`修正意见(可选)`,rows:`2`},null,8,M),[[n,B.value[s.id]]]),m(`div`,N,[m(`button`,{class:`approve`,onClick:e=>U(s.id,`approved`)},`✅ 通过`,8,P),m(`button`,{class:`reject`,onClick:e=>U(s.id,`rejected`)},`❌ 拒绝`,8,F)])])):s.correction?(i(),p(`div`,I,[c[7]||=m(`strong`,null,`修正:`,-1),o(r(s.correction),1)])):e(``,!0)]))),128))]))]))}}),[[`__scopeId`,`data-v-d5b38f1c`]]);export{L as default}; \ No newline at end of file +import{A as e,D as t,E as n,G as r,I as i,L as a,M as o,N as s,O as c,P as l,U as u,V as d,f,j as p,k as m,t as h,v as g,z as _}from"./index-DdcvGqdd.js";var v={class:`review-view`},y={class:`review-header`},b={class:`controls`},x={key:0,class:`loading`},S={key:1,class:`error`},C={key:2,class:`queue-list`},w={key:0,class:`empty`},T={class:`card-header`},E={class:`card-id`},D={class:`tags`},O={class:`date`},k={class:`query-block`},A={class:`response-block`},j={key:0,class:`actions`},M=[`onUpdate:modelValue`],N={class:`btn-row`},P=[`onClick`],F=[`onClick`],I={key:1,class:`correction`},L=h(s({__name:`ReviewView`,setup(s){let h=d([]),L=d(!1),R=d(``),z=d(`pending`),B=d({}),V=c(()=>z.value===`all`?h.value:h.value.filter(e=>e.verdict===z.value));async function H(){L.value=!0,R.value=``;try{h.value=await f()}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}}async function U(e,t){try{await g(e,t,B.value[e]||void 0),await H()}catch(e){R.value=e instanceof Error?e.message:String(e)}}return l(H),(s,c)=>(i(),p(`div`,v,[m(`header`,y,[c[4]||=m(`h2`,null,`人工检验队列`,-1),m(`div`,b,[m(`button`,{class:u({active:z.value===`all`}),onClick:c[0]||=e=>z.value=`all`},`全部`,2),m(`button`,{class:u({active:z.value===`pending`}),onClick:c[1]||=e=>z.value=`pending`},`待审核`,2),m(`button`,{class:u({active:z.value===`approved`}),onClick:c[2]||=e=>z.value=`approved`},`已通过`,2),m(`button`,{class:u({active:z.value===`rejected`}),onClick:c[3]||=e=>z.value=`rejected`},`已拒绝`,2),m(`button`,{class:`refresh-btn`,onClick:H},`🔄 刷新`)])]),L.value?(i(),p(`div`,x,`加载中…`)):R.value?(i(),p(`div`,S,r(R.value),1)):(i(),p(`div`,C,[V.value.length?e(``,!0):(i(),p(`div`,w,`队列为空。`)),(i(!0),p(t,null,a(V.value,s=>(i(),p(`div`,{key:s.id,class:`review-card`},[m(`div`,T,[m(`span`,E,`#`+r(s.id),1),m(`span`,{class:u([`verdict-badge`,s.verdict])},r(s.verdict),3),m(`span`,D,[(i(!0),p(t,null,a(s.tags,e=>(i(),p(`span`,{key:e,class:`tag`},r(e),1))),128))]),m(`span`,O,r(s.created_at),1)]),m(`div`,k,[c[5]||=m(`strong`,null,`Query:`,-1),o(r(s.query),1)]),m(`div`,A,[c[6]||=m(`strong`,null,`Response:`,-1),m(`pre`,null,r(s.response),1)]),s.verdict===`pending`?(i(),p(`div`,j,[_(m(`textarea`,{"onUpdate:modelValue":e=>B.value[s.id]=e,placeholder:`修正意见(可选)`,rows:`2`},null,8,M),[[n,B.value[s.id]]]),m(`div`,N,[m(`button`,{class:`approve`,onClick:e=>U(s.id,`approved`)},`✅ 通过`,8,P),m(`button`,{class:`reject`,onClick:e=>U(s.id,`rejected`)},`❌ 拒绝`,8,F)])])):s.correction?(i(),p(`div`,I,[c[7]||=m(`strong`,null,`修正:`,-1),o(r(s.correction),1)])):e(``,!0)]))),128))]))]))}}),[[`__scopeId`,`data-v-d5b38f1c`]]);export{L as default}; \ No newline at end of file diff --git a/gateway/static/assets/SettingsView-CTDHQ2go.js b/gateway/static/assets/SettingsView-DF8Zhz99.js similarity index 99% rename from gateway/static/assets/SettingsView-CTDHQ2go.js rename to gateway/static/assets/SettingsView-DF8Zhz99.js index 3a9d5b2..5cb0af0 100644 --- a/gateway/static/assets/SettingsView-CTDHQ2go.js +++ b/gateway/static/assets/SettingsView-DF8Zhz99.js @@ -1 +1 @@ -import{A as e,B as t,D as n,E as r,F as i,G as a,I as o,L as s,M as c,N as ee,O as l,P as te,S as ne,T as u,U as d,V as f,W as re,_ as ie,a as ae,b as oe,c as se,d as ce,g as le,h as ue,i as de,j as p,k as m,l as fe,m as pe,o as me,p as he,r as ge,t as h,u as _e,w as ve,x as ye,y as be,z as g}from"./index-8a-EFu_T.js";var xe={class:`settings-view`},Se={class:`settings-section`},Ce={class:`section-body`},we={class:`role-bar`},Te=[`onUpdate:modelValue`],Ee=[`value`],De={key:0,class:`pool-table`},Oe={class:`mono`},ke=[`onUpdate:modelValue`,`onChange`],Ae={class:`row-actions`},je=[`disabled`,`onClick`],Me=[`onClick`],Ne=[`onClick`],Pe={key:1,class:`no-models`},Fe={key:3,class:`pool-edit`},Ie={class:`pool-edit-title`},Le={class:`form-grid`},Re={class:`field`},ze={class:`field`},Be={class:`field`},Ve={class:`field`},He=[`disabled`],Ue={id:`pool-model-options`},We=[`value`],Ge={key:0,class:`field full-width`},Ke={key:1,class:`field`},qe={class:`field`},Je={class:`field`},Ye={class:`field`},Xe={class:`field`},Ze={class:`pool-edit-actions`},Qe={class:`checkbox-label`},$e=[`disabled`],et={class:`settings-section`},tt={class:`section-title`},nt={class:`title-right`},rt={class:`section-body`},it={class:`server-control-bar`},at={class:`server-info`},ot={class:`model-chip`},st={class:`model-chip port-chip`},ct={class:`model-chip pid-chip`},lt={key:1,class:`server-idle`},ut={class:`server-actions`},dt=[`disabled`],ft=[`disabled`],pt={key:0,class:`error-msg llama-error`},mt={class:`local-models`},ht={class:`local-models-header`},gt=[`disabled`],_t={key:0,class:`no-models`},vt={key:1,class:`model-list`},yt=[`onClick`],bt={class:`model-item-name`},xt={class:`model-item-size`},St={class:`download-section`},Ct={class:`download-form`},wt=[`disabled`],Tt=[`disabled`],Et={key:0,class:`progress-wrap`},Dt={class:`progress-bar`},Ot={class:`progress-info`},kt={key:1,class:`error-msg download-error`},At={key:2,class:`done-msg`},jt={class:`form-grid`,style:{"margin-top":`16px`}},Mt={class:`field full-width`},Nt={key:0,class:`field full-width`},Pt=[`disabled`],Ft={class:`input-row`},It=[`placeholder`],Lt={key:1,class:`field full-width`},Rt=[`disabled`],zt=[`value`],Bt=[`value`],Vt={key:3,class:`field-hint warn`},Ht={key:2,class:`field`},Ut={class:`field`},Wt={class:`field`},Gt={class:`field`},Kt={class:`settings-section`},qt={class:`section-title`},Jt={class:`title-right`},Yt={class:`section-body`},Xt={class:`form-grid`},Zt={class:`field full-width`},Qt=[`disabled`],$t={class:`field full-width`},en={class:`field full-width`},tn=[`disabled`],nn=[`value`],rn={key:0,class:`field-hint warn`},an={class:`settings-section`},on={class:`section-body`},sn={class:`form-grid`},cn={class:`field full-width`},ln={class:`checkbox-label`},un={class:`field`},dn={class:`field`},fn={class:`field full-width`},pn={class:`actions`},mn=[`disabled`],hn=[`disabled`],_=h(ee({__name:`SettingsView`,setup(ee){let h=f(!1),_=f(``),v=f(null),gn=[{key:`architect`,label:`🧠 Architect(决策/终审)`},{key:`worker`,label:`🔧 Worker(实现/自验证)`},{key:`agent`,label:`🤖 Agent(智能体工具)`}],_n={local:`本地/零成本`,budget:`低价 API`,premium:`旗舰 API`},y=f({roles:{architect:``,worker:``,agent:``},entries:[]}),b=t({architect:``,worker:``,agent:``}),x=f(null),S=f(!1),C=f(``),w=f(``),T=f(!1),E=f(!1),D=f(!1),vn=f([]),yn=l(()=>y.value.entries.filter(e=>e.enabled));function bn(e){return _n[e]??e}async function xn(){try{y.value=await se(),b.architect=y.value.roles.architect||``,b.worker=y.value.roles.worker||``,b.agent=y.value.roles.agent||``}catch{}}async function Sn(){try{y.value=await ue({...b}),v.value={ok:!0,msg:`✅ 角色已更新,管线已重建`}}catch(e){v.value={ok:!1,msg:`❌ 角色指派失败:`+(e?.response?.data?.detail||e?.message||e)},await xn()}setTimeout(()=>v.value=null,3e3)}function Cn(){S.value=!0,x.value={name:``,tier:`budget`,backend:`openai`,base_url:``,model:``,api_key:``,price_in:.1,price_out:.1,temperature:.3,max_tokens:4096,enabled:!0}}function wn(e){S.value=!1,x.value={...e,api_key:``}}async function Tn(){if(x.value){E.value=!0;try{y.value=await ye(x.value),x.value=null,v.value={ok:!0,msg:`✅ 模型条目已保存`}}catch(e){v.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)}}finally{E.value=!1,setTimeout(()=>v.value=null,3e3)}}}async function En(e){confirm(`删除模型条目「${e.name}」?相关角色指派会一并清空。`)&&(y.value=await ge(e.id))}async function Dn(e){y.value=await ye({...e,api_key:``})}async function On(e){C.value=e.id,w.value=``;try{let t=await be(e.id);T.value=t.ok,w.value=t.ok?`✅ ${e.name} 连接正常`:`❌ ${e.name}: ${t.detail||`连接失败`}`}catch(e){T.value=!1,w.value=`❌ `+(e?.message||String(e))}finally{C.value=``}}async function kn(){if(x.value){D.value=!0;try{let e;e=!S.value&&x.value.id?await ce(x.value.id):x.value.backend===`mock`?{models:[{id:`mock`,name:`mock(内置模拟)`}]}:await _e(x.value.backend||`openai`,x.value.base_url||``,x.value.api_key||``),e.error?(T.value=!1,w.value=e.error,vn.value=[]):vn.value=e.models||[]}finally{D.value=!1}}}let O=f({running:!1}),k=f(!1),A=f(!1),j=f([]),M=f(!1),N=f(``),P=f(!1),F=f(``),I=f(0),L=f(``),An=f(``),jn=f(``),R=f(null),Mn=f(``),z=f(``),Nn=f(!1),B=null,V=f([]),H=f([]),U=t({worker:!1,architect:!1}),W=t({worker:``,architect:``}),G=t({worker:!1,architect:!1}),K=t({worker:null,architect:null}),q=t({worker:``,architect:``}),J=[{id:`deepseek-v4-flash`,name:`deepseek-v4-flash(推荐)`},{id:`deepseek-v4-pro`,name:`deepseek-v4-pro(推理模式)`},{id:`deepseek-coder`,name:`deepseek-coder`},{id:`gpt-4o-mini`,name:`gpt-4o-mini`},{id:`gpt-4o`,name:`gpt-4o`},{id:`claude-3-5-sonnet-20241022`,name:`claude-3.5-sonnet`},{id:`qwen-plus`,name:`qwen-plus`},{id:`qwen-max`,name:`qwen-max`}],Y=f(null),X=t({worker:{backend:`mock`,model:``,base_url:``,port:8901,temperature:.3,max_fix_attempts:2,code_timeout_s:10},architect:{model:`deepseek-v4-flash`,base_url:`https://api.deepseek.com`,api_key:``},pipeline:{fast_path:!0,rounds_cap:6,api_token_cap:8e3,breach_policy:`architect_do`}}),Pn=l(()=>X.worker.backend===`llama_server`?`http://127.0.0.1:${X.worker.port}/v1`:`http://127.0.0.1:11434/v1`),Fn=l(()=>Y.value?JSON.stringify(X)!==JSON.stringify(Y.value):!1);function In(e){return e>=1e9?(e/1e9).toFixed(1)+` GB`:e>=1e6?(e/1e6).toFixed(1)+` MB`:e>=1e3?(e/1e3).toFixed(0)+` KB`:e+` B`}async function Ln(){try{let e=await me();return O.value=e,e}catch{return O.value={running:!1},{running:!1}}}async function Z(){M.value=!0;try{j.value=await fe()}catch{j.value=[]}finally{M.value=!1}}async function Rn(){if(!X.worker.model){alert(`请先从上方「本地模型」列表中选择一个模型,再启动服务`);return}k.value=!0;try{let e=await le(X.worker.model,X.worker.port,99,4096);O.value=e,e.running&&(X.worker.backend=`llama_server`,X.worker.base_url=`http://127.0.0.1:${e.port}/v1`,await Z(),await Q())}catch(e){O.value={running:!1,error:String(e?.message||e)}}finally{k.value=!1}}async function zn(){A.value=!0;try{await ie(),O.value={running:!1}}catch{O.value={running:!1}}finally{A.value=!1}}function Bn(e){N.value=e.id,X.worker.model=e.id}function Vn(){F.value.trim()&&(z.value=``,Nn.value=!1,I.value=0,L.value=``,An.value=``,jn.value=`0 B`,R.value=null,P.value=!0,de(F.value.trim()).then(e=>{if(e.error){z.value=e.error,P.value=!1;return}if(e.done){Hn(e);return}B=ne(F.value.trim()),B.subscribe({onProgress:Hn,onDone:e=>{Hn(e),B?.close(),B=null}})}))}function Hn(e){I.value=Math.round(e.progress_pct),L.value=e.speed,An.value=e.eta,jn.value=In(e.downloaded_bytes),R.value=e.total_bytes?In(e.total_bytes):null,Mn.value=e.dest,e.done&&(P.value=!1,e.error?z.value=e.error:(Nn.value=!0,Z()))}async function Un(){W.worker=``,V.value=[],X.worker.backend!==`mock`&&await Q()}async function Wn(){W.architect=``,H.value=[],await Gn()}async function Q(){if(X.worker.backend!==`mock`){U.worker=!0,W.worker=``;try{let e=await _e(X.worker.backend,X.worker.base_url,``);e.error?X.worker.backend===`llama_server`?W.worker=`💡 llama-server 未启动,请先点击上方「启动服务」`:W.worker=e.error||`连接失败`:V.value=e.models||[]}catch{W.worker=`获取模型列表失败`}finally{U.worker=!1}}}async function Gn(){if(U.architect=!0,W.architect=``,!X.architect.base_url){H.value=[...J],U.architect=!1;return}try{let e=await _e(`openai`,X.architect.base_url,X.architect.api_key||``);e.error?(W.architect=e.error,H.value=[...J]):(e.models||[]).length>0?H.value=e.models||[]:H.value=[...J]}catch{W.architect=`获取模型列表失败`,H.value=[...J]}finally{U.architect=!1}}async function Kn(){if(X.worker.backend!==`mock`){G.worker=!0,K.worker=null,q.worker=``;try{let e=await he(X.worker.backend,X.worker.base_url,``);K.worker=e.ok,e.ok||(q.worker=e.detail||`连接失败`)}catch(e){K.worker=!1,q.worker=e?.message||String(e)}finally{G.worker=!1}}}async function qn(){if(!X.architect.base_url){K.architect=!1,q.architect=`请先填写 API 端点`;return}G.architect=!0,K.architect=null,q.architect=``;try{let e=await he(`openai`,X.architect.base_url,X.architect.api_key||``);K.architect=e.ok,e.ok||(q.architect=e.detail||`连接失败`)}catch(e){K.architect=!1,q.architect=e?.message||String(e)}finally{G.architect=!1}}function $(e,t){if(t)for(let n of Object.keys(e))t[n]!==void 0&&(typeof e[n]==`object`&&typeof t[n]==`object`&&e[n]!==null?$(e[n],t[n]):e[n]=t[n])}async function Jn(){_.value=``;try{let[e,t]=await Promise.all([ae(),Ln()]);O.value=t,xn(),e.worker&&$(X.worker,e.worker),e.architect&&$(X.architect,e.architect),e.pipeline&&$(X.pipeline,e.pipeline),Y.value=JSON.parse(JSON.stringify(X)),await Z(),H.value=[...J],X.worker.backend!==`mock`&&Q(),X.worker.model&&(N.value=X.worker.model)}catch(e){_.value=`加载配置失败:`+(e?.message||String(e))}}async function Yn(){h.value=!0,v.value=null;try{let e=JSON.parse(JSON.stringify(X));e.architect.api_key||delete e.architect.api_key;let t=await oe(e);$(X.worker,t.worker||{}),$(X.architect,t.architect||{}),$(X.pipeline,t.pipeline||{}),Y.value=JSON.parse(JSON.stringify(X)),v.value={ok:!0,msg:`✅ 设置已保存,管线已重建`},setTimeout(()=>v.value=null,3e3)}catch(e){v.value={ok:!1,msg:`❌ 保存失败:`+(e?.message||String(e))}}finally{h.value=!1}}async function Xn(){if(confirm(`确定恢复默认设置?`)){h.value=!0,v.value=null;try{let e=await pe();$(X.worker,e.worker||{}),$(X.architect,e.architect||{}),$(X.pipeline,e.pipeline||{}),Y.value=JSON.parse(JSON.stringify(X)),V.value=[],H.value=[...J],K.worker=null,K.architect=null,v.value={ok:!0,msg:`✅ 已恢复默认设置`},setTimeout(()=>v.value=null,3e3)}catch(e){v.value={ok:!1,msg:`❌ 重置失败:`+(e?.message||String(e))}}finally{h.value=!1}}}return te(Jn),i(()=>{B?.close()}),(t,i)=>(o(),p(`div`,xe,[i[68]||=m(`header`,{class:`settings-header`},[m(`h2`,null,`⚙️ 模型设置`),m(`p`,{class:`subtitle`},`配置小模型(Worker)与大模型(Architect)参数,保存后实时生效`)],-1),m(`section`,Se,[m(`div`,{class:`section-title`},[i[29]||=m(`span`,null,`🗄️ 模型池(多价位异构模型)`,-1),m(`div`,{class:`title-right`},[m(`button`,{class:`btn-refresh`,onClick:Cn},`+ 添加模型`)])]),m(`div`,Ce,[m(`div`,we,[(o(),p(n,null,s(gn,e=>m(`div`,{class:`role-item`,key:e.key},[m(`label`,null,a(e.label),1),g(m(`select`,{"onUpdate:modelValue":t=>b[e.key]=t,onChange:Sn},[i[30]||=m(`option`,{value:``},`经典设置(下方表单)`,-1),(o(!0),p(n,null,s(yn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,Ee))),128))],40,Te),[[u,b[e.key]]])])),64))]),i[44]||=m(`p`,{class:`role-hint`},` 按价位组织模型:本地 llama.cpp 为零成本档,低价 API 干批量活,旗舰 API 做决策—— 随时切换,保存后管线自动重建。 `,-1),y.value.entries.length?(o(),p(`table`,De,[i[31]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`名称`),m(`th`,null,`档位`),m(`th`,null,`后端`),m(`th`,null,`模型`),m(`th`,null,`单价 $/1M(入/出)`),m(`th`,null,`启用`),m(`th`,null,`操作`)])],-1),m(`tbody`,null,[(o(!0),p(n,null,s(y.value.entries,e=>(o(),p(`tr`,{key:e.id},[m(`td`,null,a(e.name),1),m(`td`,null,[m(`span`,{class:d([`tier-badge`,`tier-`+e.tier])},a(bn(e.tier)),3)]),m(`td`,null,a(e.backend),1),m(`td`,Oe,a(e.model||`—`),1),m(`td`,null,a(e.price_in)+` / `+a(e.price_out),1),m(`td`,null,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":t=>e.enabled=t,onChange:t=>Dn(e)},null,40,ke),[[ve,e.enabled]])]),m(`td`,Ae,[m(`button`,{class:`btn-refresh`,disabled:C.value===e.id,onClick:t=>On(e)},a(C.value===e.id?`…`:`测试`),9,je),m(`button`,{class:`btn-refresh`,onClick:t=>wn(e)},`编辑`,8,Me),m(`button`,{class:`btn-refresh danger`,onClick:t=>En(e)},`删除`,8,Ne)])]))),128))])])):(o(),p(`div`,Pe,` 池为空——可添加本地 llama.cpp 模型(零成本档)、低价 API、旗舰 API 等,随时指派给 Architect / Worker / Agent。 `)),w.value?(o(),p(`div`,{key:2,class:d([`field-hint`,T.value?`ok`:`warn`])},a(w.value),3)):e(``,!0),x.value?(o(),p(`div`,Fe,[m(`div`,Ie,a(S.value?`添加模型`:`编辑模型`),1),m(`div`,Le,[m(`div`,Re,[i[32]||=m(`label`,null,`名称`,-1),g(m(`input`,{"onUpdate:modelValue":i[0]||=e=>x.value.name=e,placeholder:`如:DeepSeek 旗舰 / 本地 Qwen4B`},null,512),[[r,x.value.name]])]),m(`div`,ze,[i[34]||=m(`label`,null,`档位`,-1),g(m(`select`,{"onUpdate:modelValue":i[1]||=e=>x.value.tier=e},[...i[33]||=[m(`option`,{value:`local`},`local(本地 / 零边际成本)`,-1),m(`option`,{value:`budget`},`budget(低价 API)`,-1),m(`option`,{value:`premium`},`premium(旗舰 API)`,-1)]],512),[[u,x.value.tier]])]),m(`div`,Be,[i[36]||=m(`label`,null,`后端`,-1),g(m(`select`,{"onUpdate:modelValue":i[2]||=e=>x.value.backend=e},[...i[35]||=[m(`option`,{value:`openai`},`openai / 兼容 API`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地)`,-1),m(`option`,{value:`mock`},`mock(模拟)`,-1)]],512),[[u,x.value.backend]])]),m(`div`,Ve,[m(`label`,null,[i[37]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:D.value,onClick:kn},a(D.value?`…`:`🔄 刷新列表`),9,He)]),g(m(`input`,{"onUpdate:modelValue":i[3]||=e=>x.value.model=e,list:`pool-model-options`,placeholder:`模型名`},null,512),[[r,x.value.model]]),m(`datalist`,Ue,[(o(!0),p(n,null,s(vn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},null,8,We))),128))])]),x.value.backend===`mock`?e(``,!0):(o(),p(`div`,Ge,[i[38]||=m(`label`,null,`API 地址`,-1),g(m(`input`,{"onUpdate:modelValue":i[4]||=e=>x.value.base_url=e,placeholder:`https://api.deepseek.com 或 http://127.0.0.1:8901/v1`},null,512),[[r,x.value.base_url]])])),x.value.backend===`openai`?(o(),p(`div`,Ke,[m(`label`,null,`API Key`+a(x.value.api_key_set?`(已设置,留空保留)`:``),1),g(m(`input`,{"onUpdate:modelValue":i[5]||=e=>x.value.api_key=e,type:`password`,autocomplete:`off`,placeholder:`sk-…`},null,512),[[r,x.value.api_key]])])):e(``,!0),m(`div`,qe,[i[39]||=m(`label`,null,`输入单价 $/1M`,-1),g(m(`input`,{"onUpdate:modelValue":i[6]||=e=>x.value.price_in=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,x.value.price_in,void 0,{number:!0}]])]),m(`div`,Je,[i[40]||=m(`label`,null,`输出单价 $/1M`,-1),g(m(`input`,{"onUpdate:modelValue":i[7]||=e=>x.value.price_out=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,x.value.price_out,void 0,{number:!0}]])]),m(`div`,Ye,[i[41]||=m(`label`,null,`Temperature`,-1),g(m(`input`,{"onUpdate:modelValue":i[8]||=e=>x.value.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,x.value.temperature,void 0,{number:!0}]])]),m(`div`,Xe,[i[42]||=m(`label`,null,`Max Tokens`,-1),g(m(`input`,{"onUpdate:modelValue":i[9]||=e=>x.value.max_tokens=e,type:`number`,min:`256`,max:`32768`},null,512),[[r,x.value.max_tokens,void 0,{number:!0}]])])]),m(`div`,Ze,[m(`label`,Qe,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[10]||=e=>x.value.enabled=e},null,512),[[ve,x.value.enabled]]),i[43]||=c(` 启用 `,-1)]),m(`button`,{class:`btn-primary`,disabled:E.value,onClick:Tn},a(E.value?`保存中…`:`保存条目`),9,$e),m(`button`,{class:`btn-secondary`,onClick:i[11]||=e=>x.value=null},`取消`)])])):e(``,!0)])]),m(`section`,et,[m(`div`,tt,[i[45]||=m(`span`,null,`🔧 小模型 (Worker · 本地 llama.cpp)`,-1),m(`div`,nt,[m(`span`,{class:d([`server-badge`,O.value.running?`badge-running`:`badge-stopped`])},a(O.value.running?`● 运行中`:`○ 已停止`),3)])]),m(`div`,rt,[m(`div`,it,[m(`div`,at,[O.value.running?(o(),p(n,{key:0},[m(`span`,ot,a(O.value.model?.split(/[/\\]/).pop()),1),m(`span`,st,`:`+a(O.value.port),1),m(`span`,ct,`PID `+a(O.value.pid),1)],64)):(o(),p(`span`,lt,`llama-server 未运行 — 点击「启动服务」即可启用`))]),m(`div`,ut,[O.value.running?(o(),p(`button`,{key:1,class:`btn-stop`,disabled:k.value||A.value,onClick:zn},a(A.value?`停止中…`:`■ 停止服务`),9,ft)):(o(),p(`button`,{key:0,class:`btn-start`,disabled:k.value||A.value,onClick:Rn},a(k.value?`启动中…`:`▶ 启动服务`),9,dt))])]),O.value.error?(o(),p(`div`,pt,a(O.value.error),1)):e(``,!0),m(`div`,mt,[m(`div`,ht,[m(`span`,null,`📁 本地模型 (`+a(j.value.length)+`)`,1),m(`button`,{class:`btn-refresh`,disabled:M.value,onClick:Z},a(M.value?`…`:`🔄`),9,gt)]),j.value.length===0&&!M.value?(o(),p(`div`,_t,` 暂无本地模型,请下载或放置 .gguf 文件到 models/ 目录 `)):(o(),p(`div`,vt,[(o(!0),p(n,null,s(j.value,e=>(o(),p(`div`,{key:e.id,class:d([`model-item`,N.value===e.id?`selected`:``]),onClick:t=>Bn(e)},[m(`span`,bt,a(e.name),1),m(`span`,xt,a(e.size_mb)+` MB`,1)],10,yt))),128))]))]),m(`div`,St,[i[46]||=m(`div`,{class:`download-header`},`⬇️ 下载模型`,-1),m(`div`,Ct,[g(m(`input`,{"onUpdate:modelValue":i[12]||=e=>F.value=e,class:`download-input`,placeholder:`HuggingFace 路径或直链,如:Qwen/Qwen3-4B-GGUF/Qwen3-4B-Q4_K_M.gguf`,disabled:P.value},null,8,wt),[[r,F.value]]),m(`button`,{class:`btn-download`,disabled:P.value||!F.value.trim(),onClick:Vn},a(P.value?I.value+`%`:`下载`),9,Tt)]),P.value?(o(),p(`div`,Et,[m(`div`,Dt,[m(`div`,{class:`progress-fill`,style:re({width:I.value+`%`})},null,4)]),m(`div`,Ot,[m(`span`,null,a(L.value),1),m(`span`,null,a(An.value),1),m(`span`,null,a(jn.value)+`/`+a(R.value||`?`),1)])])):e(``,!0),z.value?(o(),p(`div`,kt,a(z.value),1)):e(``,!0),Nn.value&&!z.value?(o(),p(`div`,At,` ✅ 下载完成:`+a(Mn.value),1)):e(``,!0)]),m(`div`,jt,[m(`div`,Mt,[i[48]||=m(`label`,null,`后端类型`,-1),g(m(`select`,{"onUpdate:modelValue":i[13]||=e=>X.worker.backend=e,onChange:Un},[...i[47]||=[m(`option`,{value:`mock`},`mock(模拟,不真实调用)`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地服务,推荐)`,-1),m(`option`,{value:`openai`},`openai / 兼容 API(Ollama 等)`,-1)]],544),[[u,X.worker.backend]])]),X.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Nt,[m(`label`,null,[i[49]||=c(` API 地址 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:G.worker,onClick:Kn},a(G.worker?`…`:`🔗 连接测试`),9,Pt)]),m(`div`,Ft,[g(m(`input`,{"onUpdate:modelValue":i[14]||=e=>X.worker.base_url=e,placeholder:Pn.value,onBlur:Un},null,40,It),[[r,X.worker.base_url]]),K.worker===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,K.worker?`ping-ok`:`ping-err`])},a(K.worker?`✅ 正常`:`❌ `+q.worker),3))])])),X.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Lt,[m(`label`,null,[i[50]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:U.worker,onClick:Q},a(U.worker?`…`:`🔄 刷新列表`),9,Rt)]),X.worker.backend===`llama_server`?g((o(),p(`select`,{key:0,"onUpdate:modelValue":i[15]||=e=>X.worker.model=e},[i[51]||=m(`option`,{value:``,disabled:``},`—— 从本地模型中选择 ——`,-1),(o(!0),p(n,null,s(j.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,zt))),128))],512)),[[u,X.worker.model]]):X.worker.backend===`openai`?g((o(),p(`select`,{key:1,"onUpdate:modelValue":i[16]||=e=>X.worker.model=e},[i[52]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取 ——`,-1),(o(!0),p(n,null,s(V.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,Bt))),128))],512)),[[u,X.worker.model]]):g((o(),p(`input`,{key:2,"onUpdate:modelValue":i[17]||=e=>X.worker.model=e,placeholder:`输入模型名称…`},null,512)),[[r,X.worker.model]]),W.worker?(o(),p(`span`,Vt,a(W.worker),1)):e(``,!0)])),X.worker.backend===`llama_server`?(o(),p(`div`,Ht,[i[53]||=m(`label`,null,`端口`,-1),g(m(`input`,{"onUpdate:modelValue":i[18]||=e=>X.worker.port=e,type:`number`,min:`1`,max:`65535`},null,512),[[r,X.worker.port,void 0,{number:!0}]])])):e(``,!0),m(`div`,Ut,[i[54]||=m(`label`,null,`Temperature`,-1),g(m(`input`,{"onUpdate:modelValue":i[19]||=e=>X.worker.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,X.worker.temperature,void 0,{number:!0}]])]),m(`div`,Wt,[i[55]||=m(`label`,null,`最大修复轮次`,-1),g(m(`input`,{"onUpdate:modelValue":i[20]||=e=>X.worker.max_fix_attempts=e,type:`number`,min:`0`,max:`10`},null,512),[[r,X.worker.max_fix_attempts,void 0,{number:!0}]])]),m(`div`,Gt,[i[56]||=m(`label`,null,`代码执行超时 (秒)`,-1),g(m(`input`,{"onUpdate:modelValue":i[21]||=e=>X.worker.code_timeout_s=e,type:`number`,min:`1`,max:`300`},null,512),[[r,X.worker.code_timeout_s,void 0,{number:!0}]])])])])]),m(`section`,Kt,[m(`div`,qt,[i[57]||=m(`span`,null,`🧠 大模型 (Architect · API 云端)`,-1),m(`div`,Jt,[K.architect===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,K.architect?`ping-ok`:`ping-err`])},a(K.architect?`✅ 已连接`:`❌ `+q.architect),3))])]),m(`div`,Yt,[m(`div`,Xt,[m(`div`,Zt,[m(`label`,null,[i[58]||=c(` API 端点 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:G.architect,onClick:qn},a(G.architect?`…`:`🔗 连接测试`),9,Qt)]),g(m(`input`,{"onUpdate:modelValue":i[22]||=e=>X.architect.base_url=e,placeholder:`https://api.deepseek.com`,onBlur:Wn},null,544),[[r,X.architect.base_url]])]),m(`div`,$t,[i[59]||=m(`label`,null,`API Key(保存在本地 config/settings.json,不入代码库;优先级高于 .env)`,-1),g(m(`input`,{"onUpdate:modelValue":i[23]||=e=>X.architect.api_key=e,type:`password`,placeholder:`sk-xxxxxxxxxxxxxxxx`,autocomplete:`off`},null,512),[[r,X.architect.api_key]])]),m(`div`,en,[m(`label`,null,[i[60]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:U.architect,onClick:Gn},a(U.architect?`…`:`🔄 刷新列表`),9,tn)]),g(m(`select`,{"onUpdate:modelValue":i[24]||=e=>X.architect.model=e,class:`model-select`},[i[61]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取模型列表 ——`,-1),(o(!0),p(n,null,s(H.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,nn))),128))],512),[[u,X.architect.model]]),W.architect?(o(),p(`span`,rn,a(W.architect),1)):e(``,!0)])])])]),m(`section`,an,[i[67]||=m(`div`,{class:`section-title`},[m(`span`,null,`⚙️ 协作管线 (Pipeline)`)],-1),m(`div`,on,[m(`div`,sn,[m(`div`,cn,[m(`label`,ln,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[25]||=e=>X.pipeline.fast_path=e},null,512),[[ve,X.pipeline.fast_path]]),i[62]||=c(` 启用快路径(简单查询跳过本地模型,直接由大模型回答,省 API 费用) `,-1)])]),m(`div`,un,[i[63]||=m(`label`,null,`最大协作轮次`,-1),g(m(`input`,{"onUpdate:modelValue":i[26]||=e=>X.pipeline.rounds_cap=e,type:`number`,min:`1`,max:`20`},null,512),[[r,X.pipeline.rounds_cap,void 0,{number:!0}]])]),m(`div`,dn,[i[64]||=m(`label`,null,`API Token 熔断上限`,-1),g(m(`input`,{"onUpdate:modelValue":i[27]||=e=>X.pipeline.api_token_cap=e,type:`number`,min:`100`,max:`100000`},null,512),[[r,X.pipeline.api_token_cap,void 0,{number:!0}]])]),m(`div`,fn,[i[66]||=m(`label`,null,`超限策略`,-1),g(m(`select`,{"onUpdate:modelValue":i[28]||=e=>X.pipeline.breach_policy=e},[...i[65]||=[m(`option`,{value:`architect_do`},`architect_do(超限交给大模型处理,推荐)`,-1),m(`option`,{value:`local_only`},`local_only(强制留在本地小模型)`,-1)]],512),[[u,X.pipeline.breach_policy]])])])])]),m(`div`,pn,[m(`button`,{class:`btn-primary`,disabled:h.value||!Fn.value,onClick:Yn},a(h.value?`保存中…`:`💾 保存设置`),9,mn),m(`button`,{class:`btn-secondary`,disabled:h.value,onClick:Xn},` 🔁 恢复默认 `,8,hn)]),v.value?(o(),p(`div`,{key:0,class:d([`toast`,v.value.ok?`toast-ok`:`toast-err`])},a(v.value.msg),3)):e(``,!0)]))}}),[[`__scopeId`,`data-v-7b21dc2a`]]);export{_ as default}; \ No newline at end of file +import{A as e,B as t,D as n,E as r,F as i,G as a,I as o,L as s,M as c,N as ee,O as l,P as te,S as ne,T as u,U as d,V as f,W as re,_ as ie,a as ae,b as oe,c as se,d as ce,g as le,h as ue,i as de,j as p,k as m,l as fe,m as pe,o as me,p as he,r as ge,t as h,u as _e,w as ve,x as ye,y as be,z as g}from"./index-DdcvGqdd.js";var xe={class:`settings-view`},Se={class:`settings-section`},Ce={class:`section-body`},we={class:`role-bar`},Te=[`onUpdate:modelValue`],Ee=[`value`],De={key:0,class:`pool-table`},Oe={class:`mono`},ke=[`onUpdate:modelValue`,`onChange`],Ae={class:`row-actions`},je=[`disabled`,`onClick`],Me=[`onClick`],Ne=[`onClick`],Pe={key:1,class:`no-models`},Fe={key:3,class:`pool-edit`},Ie={class:`pool-edit-title`},Le={class:`form-grid`},Re={class:`field`},ze={class:`field`},Be={class:`field`},Ve={class:`field`},He=[`disabled`],Ue={id:`pool-model-options`},We=[`value`],Ge={key:0,class:`field full-width`},Ke={key:1,class:`field`},qe={class:`field`},Je={class:`field`},Ye={class:`field`},Xe={class:`field`},Ze={class:`pool-edit-actions`},Qe={class:`checkbox-label`},$e=[`disabled`],et={class:`settings-section`},tt={class:`section-title`},nt={class:`title-right`},rt={class:`section-body`},it={class:`server-control-bar`},at={class:`server-info`},ot={class:`model-chip`},st={class:`model-chip port-chip`},ct={class:`model-chip pid-chip`},lt={key:1,class:`server-idle`},ut={class:`server-actions`},dt=[`disabled`],ft=[`disabled`],pt={key:0,class:`error-msg llama-error`},mt={class:`local-models`},ht={class:`local-models-header`},gt=[`disabled`],_t={key:0,class:`no-models`},vt={key:1,class:`model-list`},yt=[`onClick`],bt={class:`model-item-name`},xt={class:`model-item-size`},St={class:`download-section`},Ct={class:`download-form`},wt=[`disabled`],Tt=[`disabled`],Et={key:0,class:`progress-wrap`},Dt={class:`progress-bar`},Ot={class:`progress-info`},kt={key:1,class:`error-msg download-error`},At={key:2,class:`done-msg`},jt={class:`form-grid`,style:{"margin-top":`16px`}},Mt={class:`field full-width`},Nt={key:0,class:`field full-width`},Pt=[`disabled`],Ft={class:`input-row`},It=[`placeholder`],Lt={key:1,class:`field full-width`},Rt=[`disabled`],zt=[`value`],Bt=[`value`],Vt={key:3,class:`field-hint warn`},Ht={key:2,class:`field`},Ut={class:`field`},Wt={class:`field`},Gt={class:`field`},Kt={class:`settings-section`},qt={class:`section-title`},Jt={class:`title-right`},Yt={class:`section-body`},Xt={class:`form-grid`},Zt={class:`field full-width`},Qt=[`disabled`],$t={class:`field full-width`},en={class:`field full-width`},tn=[`disabled`],nn=[`value`],rn={key:0,class:`field-hint warn`},an={class:`settings-section`},on={class:`section-body`},sn={class:`form-grid`},cn={class:`field full-width`},ln={class:`checkbox-label`},un={class:`field`},dn={class:`field`},fn={class:`field full-width`},pn={class:`actions`},mn=[`disabled`],hn=[`disabled`],_=h(ee({__name:`SettingsView`,setup(ee){let h=f(!1),_=f(``),v=f(null),gn=[{key:`architect`,label:`🧠 Architect(决策/终审)`},{key:`worker`,label:`🔧 Worker(实现/自验证)`},{key:`agent`,label:`🤖 Agent(智能体工具)`}],_n={local:`本地/零成本`,budget:`低价 API`,premium:`旗舰 API`},y=f({roles:{architect:``,worker:``,agent:``},entries:[]}),b=t({architect:``,worker:``,agent:``}),x=f(null),S=f(!1),C=f(``),w=f(``),T=f(!1),E=f(!1),D=f(!1),vn=f([]),yn=l(()=>y.value.entries.filter(e=>e.enabled));function bn(e){return _n[e]??e}async function xn(){try{y.value=await se(),b.architect=y.value.roles.architect||``,b.worker=y.value.roles.worker||``,b.agent=y.value.roles.agent||``}catch{}}async function Sn(){try{y.value=await ue({...b}),v.value={ok:!0,msg:`✅ 角色已更新,管线已重建`}}catch(e){v.value={ok:!1,msg:`❌ 角色指派失败:`+(e?.response?.data?.detail||e?.message||e)},await xn()}setTimeout(()=>v.value=null,3e3)}function Cn(){S.value=!0,x.value={name:``,tier:`budget`,backend:`openai`,base_url:``,model:``,api_key:``,price_in:.1,price_out:.1,temperature:.3,max_tokens:4096,enabled:!0}}function wn(e){S.value=!1,x.value={...e,api_key:``}}async function Tn(){if(x.value){E.value=!0;try{y.value=await ye(x.value),x.value=null,v.value={ok:!0,msg:`✅ 模型条目已保存`}}catch(e){v.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)}}finally{E.value=!1,setTimeout(()=>v.value=null,3e3)}}}async function En(e){confirm(`删除模型条目「${e.name}」?相关角色指派会一并清空。`)&&(y.value=await ge(e.id))}async function Dn(e){y.value=await ye({...e,api_key:``})}async function On(e){C.value=e.id,w.value=``;try{let t=await be(e.id);T.value=t.ok,w.value=t.ok?`✅ ${e.name} 连接正常`:`❌ ${e.name}: ${t.detail||`连接失败`}`}catch(e){T.value=!1,w.value=`❌ `+(e?.message||String(e))}finally{C.value=``}}async function kn(){if(x.value){D.value=!0;try{let e;e=!S.value&&x.value.id?await ce(x.value.id):x.value.backend===`mock`?{models:[{id:`mock`,name:`mock(内置模拟)`}]}:await _e(x.value.backend||`openai`,x.value.base_url||``,x.value.api_key||``),e.error?(T.value=!1,w.value=e.error,vn.value=[]):vn.value=e.models||[]}finally{D.value=!1}}}let O=f({running:!1}),k=f(!1),A=f(!1),j=f([]),M=f(!1),N=f(``),P=f(!1),F=f(``),I=f(0),L=f(``),An=f(``),jn=f(``),R=f(null),Mn=f(``),z=f(``),Nn=f(!1),B=null,V=f([]),H=f([]),U=t({worker:!1,architect:!1}),W=t({worker:``,architect:``}),G=t({worker:!1,architect:!1}),K=t({worker:null,architect:null}),q=t({worker:``,architect:``}),J=[{id:`deepseek-v4-flash`,name:`deepseek-v4-flash(推荐)`},{id:`deepseek-v4-pro`,name:`deepseek-v4-pro(推理模式)`},{id:`deepseek-coder`,name:`deepseek-coder`},{id:`gpt-4o-mini`,name:`gpt-4o-mini`},{id:`gpt-4o`,name:`gpt-4o`},{id:`claude-3-5-sonnet-20241022`,name:`claude-3.5-sonnet`},{id:`qwen-plus`,name:`qwen-plus`},{id:`qwen-max`,name:`qwen-max`}],Y=f(null),X=t({worker:{backend:`mock`,model:``,base_url:``,port:8901,temperature:.3,max_fix_attempts:2,code_timeout_s:10},architect:{model:`deepseek-v4-flash`,base_url:`https://api.deepseek.com`,api_key:``},pipeline:{fast_path:!0,rounds_cap:6,api_token_cap:8e3,breach_policy:`architect_do`}}),Pn=l(()=>X.worker.backend===`llama_server`?`http://127.0.0.1:${X.worker.port}/v1`:`http://127.0.0.1:11434/v1`),Fn=l(()=>Y.value?JSON.stringify(X)!==JSON.stringify(Y.value):!1);function In(e){return e>=1e9?(e/1e9).toFixed(1)+` GB`:e>=1e6?(e/1e6).toFixed(1)+` MB`:e>=1e3?(e/1e3).toFixed(0)+` KB`:e+` B`}async function Ln(){try{let e=await me();return O.value=e,e}catch{return O.value={running:!1},{running:!1}}}async function Z(){M.value=!0;try{j.value=await fe()}catch{j.value=[]}finally{M.value=!1}}async function Rn(){if(!X.worker.model){alert(`请先从上方「本地模型」列表中选择一个模型,再启动服务`);return}k.value=!0;try{let e=await le(X.worker.model,X.worker.port,99,4096);O.value=e,e.running&&(X.worker.backend=`llama_server`,X.worker.base_url=`http://127.0.0.1:${e.port}/v1`,await Z(),await Q())}catch(e){O.value={running:!1,error:String(e?.message||e)}}finally{k.value=!1}}async function zn(){A.value=!0;try{await ie(),O.value={running:!1}}catch{O.value={running:!1}}finally{A.value=!1}}function Bn(e){N.value=e.id,X.worker.model=e.id}function Vn(){F.value.trim()&&(z.value=``,Nn.value=!1,I.value=0,L.value=``,An.value=``,jn.value=`0 B`,R.value=null,P.value=!0,de(F.value.trim()).then(e=>{if(e.error){z.value=e.error,P.value=!1;return}if(e.done){Hn(e);return}B=ne(F.value.trim()),B.subscribe({onProgress:Hn,onDone:e=>{Hn(e),B?.close(),B=null}})}))}function Hn(e){I.value=Math.round(e.progress_pct),L.value=e.speed,An.value=e.eta,jn.value=In(e.downloaded_bytes),R.value=e.total_bytes?In(e.total_bytes):null,Mn.value=e.dest,e.done&&(P.value=!1,e.error?z.value=e.error:(Nn.value=!0,Z()))}async function Un(){W.worker=``,V.value=[],X.worker.backend!==`mock`&&await Q()}async function Wn(){W.architect=``,H.value=[],await Gn()}async function Q(){if(X.worker.backend!==`mock`){U.worker=!0,W.worker=``;try{let e=await _e(X.worker.backend,X.worker.base_url,``);e.error?X.worker.backend===`llama_server`?W.worker=`💡 llama-server 未启动,请先点击上方「启动服务」`:W.worker=e.error||`连接失败`:V.value=e.models||[]}catch{W.worker=`获取模型列表失败`}finally{U.worker=!1}}}async function Gn(){if(U.architect=!0,W.architect=``,!X.architect.base_url){H.value=[...J],U.architect=!1;return}try{let e=await _e(`openai`,X.architect.base_url,X.architect.api_key||``);e.error?(W.architect=e.error,H.value=[...J]):(e.models||[]).length>0?H.value=e.models||[]:H.value=[...J]}catch{W.architect=`获取模型列表失败`,H.value=[...J]}finally{U.architect=!1}}async function Kn(){if(X.worker.backend!==`mock`){G.worker=!0,K.worker=null,q.worker=``;try{let e=await he(X.worker.backend,X.worker.base_url,``);K.worker=e.ok,e.ok||(q.worker=e.detail||`连接失败`)}catch(e){K.worker=!1,q.worker=e?.message||String(e)}finally{G.worker=!1}}}async function qn(){if(!X.architect.base_url){K.architect=!1,q.architect=`请先填写 API 端点`;return}G.architect=!0,K.architect=null,q.architect=``;try{let e=await he(`openai`,X.architect.base_url,X.architect.api_key||``);K.architect=e.ok,e.ok||(q.architect=e.detail||`连接失败`)}catch(e){K.architect=!1,q.architect=e?.message||String(e)}finally{G.architect=!1}}function $(e,t){if(t)for(let n of Object.keys(e))t[n]!==void 0&&(typeof e[n]==`object`&&typeof t[n]==`object`&&e[n]!==null?$(e[n],t[n]):e[n]=t[n])}async function Jn(){_.value=``;try{let[e,t]=await Promise.all([ae(),Ln()]);O.value=t,xn(),e.worker&&$(X.worker,e.worker),e.architect&&$(X.architect,e.architect),e.pipeline&&$(X.pipeline,e.pipeline),Y.value=JSON.parse(JSON.stringify(X)),await Z(),H.value=[...J],X.worker.backend!==`mock`&&Q(),X.worker.model&&(N.value=X.worker.model)}catch(e){_.value=`加载配置失败:`+(e?.message||String(e))}}async function Yn(){h.value=!0,v.value=null;try{let e=JSON.parse(JSON.stringify(X));e.architect.api_key||delete e.architect.api_key;let t=await oe(e);$(X.worker,t.worker||{}),$(X.architect,t.architect||{}),$(X.pipeline,t.pipeline||{}),Y.value=JSON.parse(JSON.stringify(X)),v.value={ok:!0,msg:`✅ 设置已保存,管线已重建`},setTimeout(()=>v.value=null,3e3)}catch(e){v.value={ok:!1,msg:`❌ 保存失败:`+(e?.message||String(e))}}finally{h.value=!1}}async function Xn(){if(confirm(`确定恢复默认设置?`)){h.value=!0,v.value=null;try{let e=await pe();$(X.worker,e.worker||{}),$(X.architect,e.architect||{}),$(X.pipeline,e.pipeline||{}),Y.value=JSON.parse(JSON.stringify(X)),V.value=[],H.value=[...J],K.worker=null,K.architect=null,v.value={ok:!0,msg:`✅ 已恢复默认设置`},setTimeout(()=>v.value=null,3e3)}catch(e){v.value={ok:!1,msg:`❌ 重置失败:`+(e?.message||String(e))}}finally{h.value=!1}}}return te(Jn),i(()=>{B?.close()}),(t,i)=>(o(),p(`div`,xe,[i[68]||=m(`header`,{class:`settings-header`},[m(`h2`,null,`⚙️ 模型设置`),m(`p`,{class:`subtitle`},`配置小模型(Worker)与大模型(Architect)参数,保存后实时生效`)],-1),m(`section`,Se,[m(`div`,{class:`section-title`},[i[29]||=m(`span`,null,`🗄️ 模型池(多价位异构模型)`,-1),m(`div`,{class:`title-right`},[m(`button`,{class:`btn-refresh`,onClick:Cn},`+ 添加模型`)])]),m(`div`,Ce,[m(`div`,we,[(o(),p(n,null,s(gn,e=>m(`div`,{class:`role-item`,key:e.key},[m(`label`,null,a(e.label),1),g(m(`select`,{"onUpdate:modelValue":t=>b[e.key]=t,onChange:Sn},[i[30]||=m(`option`,{value:``},`经典设置(下方表单)`,-1),(o(!0),p(n,null,s(yn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,Ee))),128))],40,Te),[[u,b[e.key]]])])),64))]),i[44]||=m(`p`,{class:`role-hint`},` 按价位组织模型:本地 llama.cpp 为零成本档,低价 API 干批量活,旗舰 API 做决策—— 随时切换,保存后管线自动重建。 `,-1),y.value.entries.length?(o(),p(`table`,De,[i[31]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`名称`),m(`th`,null,`档位`),m(`th`,null,`后端`),m(`th`,null,`模型`),m(`th`,null,`单价 $/1M(入/出)`),m(`th`,null,`启用`),m(`th`,null,`操作`)])],-1),m(`tbody`,null,[(o(!0),p(n,null,s(y.value.entries,e=>(o(),p(`tr`,{key:e.id},[m(`td`,null,a(e.name),1),m(`td`,null,[m(`span`,{class:d([`tier-badge`,`tier-`+e.tier])},a(bn(e.tier)),3)]),m(`td`,null,a(e.backend),1),m(`td`,Oe,a(e.model||`—`),1),m(`td`,null,a(e.price_in)+` / `+a(e.price_out),1),m(`td`,null,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":t=>e.enabled=t,onChange:t=>Dn(e)},null,40,ke),[[ve,e.enabled]])]),m(`td`,Ae,[m(`button`,{class:`btn-refresh`,disabled:C.value===e.id,onClick:t=>On(e)},a(C.value===e.id?`…`:`测试`),9,je),m(`button`,{class:`btn-refresh`,onClick:t=>wn(e)},`编辑`,8,Me),m(`button`,{class:`btn-refresh danger`,onClick:t=>En(e)},`删除`,8,Ne)])]))),128))])])):(o(),p(`div`,Pe,` 池为空——可添加本地 llama.cpp 模型(零成本档)、低价 API、旗舰 API 等,随时指派给 Architect / Worker / Agent。 `)),w.value?(o(),p(`div`,{key:2,class:d([`field-hint`,T.value?`ok`:`warn`])},a(w.value),3)):e(``,!0),x.value?(o(),p(`div`,Fe,[m(`div`,Ie,a(S.value?`添加模型`:`编辑模型`),1),m(`div`,Le,[m(`div`,Re,[i[32]||=m(`label`,null,`名称`,-1),g(m(`input`,{"onUpdate:modelValue":i[0]||=e=>x.value.name=e,placeholder:`如:DeepSeek 旗舰 / 本地 Qwen4B`},null,512),[[r,x.value.name]])]),m(`div`,ze,[i[34]||=m(`label`,null,`档位`,-1),g(m(`select`,{"onUpdate:modelValue":i[1]||=e=>x.value.tier=e},[...i[33]||=[m(`option`,{value:`local`},`local(本地 / 零边际成本)`,-1),m(`option`,{value:`budget`},`budget(低价 API)`,-1),m(`option`,{value:`premium`},`premium(旗舰 API)`,-1)]],512),[[u,x.value.tier]])]),m(`div`,Be,[i[36]||=m(`label`,null,`后端`,-1),g(m(`select`,{"onUpdate:modelValue":i[2]||=e=>x.value.backend=e},[...i[35]||=[m(`option`,{value:`openai`},`openai / 兼容 API`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地)`,-1),m(`option`,{value:`mock`},`mock(模拟)`,-1)]],512),[[u,x.value.backend]])]),m(`div`,Ve,[m(`label`,null,[i[37]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:D.value,onClick:kn},a(D.value?`…`:`🔄 刷新列表`),9,He)]),g(m(`input`,{"onUpdate:modelValue":i[3]||=e=>x.value.model=e,list:`pool-model-options`,placeholder:`模型名`},null,512),[[r,x.value.model]]),m(`datalist`,Ue,[(o(!0),p(n,null,s(vn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},null,8,We))),128))])]),x.value.backend===`mock`?e(``,!0):(o(),p(`div`,Ge,[i[38]||=m(`label`,null,`API 地址`,-1),g(m(`input`,{"onUpdate:modelValue":i[4]||=e=>x.value.base_url=e,placeholder:`https://api.deepseek.com 或 http://127.0.0.1:8901/v1`},null,512),[[r,x.value.base_url]])])),x.value.backend===`openai`?(o(),p(`div`,Ke,[m(`label`,null,`API Key`+a(x.value.api_key_set?`(已设置,留空保留)`:``),1),g(m(`input`,{"onUpdate:modelValue":i[5]||=e=>x.value.api_key=e,type:`password`,autocomplete:`off`,placeholder:`sk-…`},null,512),[[r,x.value.api_key]])])):e(``,!0),m(`div`,qe,[i[39]||=m(`label`,null,`输入单价 $/1M`,-1),g(m(`input`,{"onUpdate:modelValue":i[6]||=e=>x.value.price_in=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,x.value.price_in,void 0,{number:!0}]])]),m(`div`,Je,[i[40]||=m(`label`,null,`输出单价 $/1M`,-1),g(m(`input`,{"onUpdate:modelValue":i[7]||=e=>x.value.price_out=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,x.value.price_out,void 0,{number:!0}]])]),m(`div`,Ye,[i[41]||=m(`label`,null,`Temperature`,-1),g(m(`input`,{"onUpdate:modelValue":i[8]||=e=>x.value.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,x.value.temperature,void 0,{number:!0}]])]),m(`div`,Xe,[i[42]||=m(`label`,null,`Max Tokens`,-1),g(m(`input`,{"onUpdate:modelValue":i[9]||=e=>x.value.max_tokens=e,type:`number`,min:`256`,max:`32768`},null,512),[[r,x.value.max_tokens,void 0,{number:!0}]])])]),m(`div`,Ze,[m(`label`,Qe,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[10]||=e=>x.value.enabled=e},null,512),[[ve,x.value.enabled]]),i[43]||=c(` 启用 `,-1)]),m(`button`,{class:`btn-primary`,disabled:E.value,onClick:Tn},a(E.value?`保存中…`:`保存条目`),9,$e),m(`button`,{class:`btn-secondary`,onClick:i[11]||=e=>x.value=null},`取消`)])])):e(``,!0)])]),m(`section`,et,[m(`div`,tt,[i[45]||=m(`span`,null,`🔧 小模型 (Worker · 本地 llama.cpp)`,-1),m(`div`,nt,[m(`span`,{class:d([`server-badge`,O.value.running?`badge-running`:`badge-stopped`])},a(O.value.running?`● 运行中`:`○ 已停止`),3)])]),m(`div`,rt,[m(`div`,it,[m(`div`,at,[O.value.running?(o(),p(n,{key:0},[m(`span`,ot,a(O.value.model?.split(/[/\\]/).pop()),1),m(`span`,st,`:`+a(O.value.port),1),m(`span`,ct,`PID `+a(O.value.pid),1)],64)):(o(),p(`span`,lt,`llama-server 未运行 — 点击「启动服务」即可启用`))]),m(`div`,ut,[O.value.running?(o(),p(`button`,{key:1,class:`btn-stop`,disabled:k.value||A.value,onClick:zn},a(A.value?`停止中…`:`■ 停止服务`),9,ft)):(o(),p(`button`,{key:0,class:`btn-start`,disabled:k.value||A.value,onClick:Rn},a(k.value?`启动中…`:`▶ 启动服务`),9,dt))])]),O.value.error?(o(),p(`div`,pt,a(O.value.error),1)):e(``,!0),m(`div`,mt,[m(`div`,ht,[m(`span`,null,`📁 本地模型 (`+a(j.value.length)+`)`,1),m(`button`,{class:`btn-refresh`,disabled:M.value,onClick:Z},a(M.value?`…`:`🔄`),9,gt)]),j.value.length===0&&!M.value?(o(),p(`div`,_t,` 暂无本地模型,请下载或放置 .gguf 文件到 models/ 目录 `)):(o(),p(`div`,vt,[(o(!0),p(n,null,s(j.value,e=>(o(),p(`div`,{key:e.id,class:d([`model-item`,N.value===e.id?`selected`:``]),onClick:t=>Bn(e)},[m(`span`,bt,a(e.name),1),m(`span`,xt,a(e.size_mb)+` MB`,1)],10,yt))),128))]))]),m(`div`,St,[i[46]||=m(`div`,{class:`download-header`},`⬇️ 下载模型`,-1),m(`div`,Ct,[g(m(`input`,{"onUpdate:modelValue":i[12]||=e=>F.value=e,class:`download-input`,placeholder:`HuggingFace 路径或直链,如:Qwen/Qwen3-4B-GGUF/Qwen3-4B-Q4_K_M.gguf`,disabled:P.value},null,8,wt),[[r,F.value]]),m(`button`,{class:`btn-download`,disabled:P.value||!F.value.trim(),onClick:Vn},a(P.value?I.value+`%`:`下载`),9,Tt)]),P.value?(o(),p(`div`,Et,[m(`div`,Dt,[m(`div`,{class:`progress-fill`,style:re({width:I.value+`%`})},null,4)]),m(`div`,Ot,[m(`span`,null,a(L.value),1),m(`span`,null,a(An.value),1),m(`span`,null,a(jn.value)+`/`+a(R.value||`?`),1)])])):e(``,!0),z.value?(o(),p(`div`,kt,a(z.value),1)):e(``,!0),Nn.value&&!z.value?(o(),p(`div`,At,` ✅ 下载完成:`+a(Mn.value),1)):e(``,!0)]),m(`div`,jt,[m(`div`,Mt,[i[48]||=m(`label`,null,`后端类型`,-1),g(m(`select`,{"onUpdate:modelValue":i[13]||=e=>X.worker.backend=e,onChange:Un},[...i[47]||=[m(`option`,{value:`mock`},`mock(模拟,不真实调用)`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地服务,推荐)`,-1),m(`option`,{value:`openai`},`openai / 兼容 API(Ollama 等)`,-1)]],544),[[u,X.worker.backend]])]),X.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Nt,[m(`label`,null,[i[49]||=c(` API 地址 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:G.worker,onClick:Kn},a(G.worker?`…`:`🔗 连接测试`),9,Pt)]),m(`div`,Ft,[g(m(`input`,{"onUpdate:modelValue":i[14]||=e=>X.worker.base_url=e,placeholder:Pn.value,onBlur:Un},null,40,It),[[r,X.worker.base_url]]),K.worker===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,K.worker?`ping-ok`:`ping-err`])},a(K.worker?`✅ 正常`:`❌ `+q.worker),3))])])),X.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Lt,[m(`label`,null,[i[50]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:U.worker,onClick:Q},a(U.worker?`…`:`🔄 刷新列表`),9,Rt)]),X.worker.backend===`llama_server`?g((o(),p(`select`,{key:0,"onUpdate:modelValue":i[15]||=e=>X.worker.model=e},[i[51]||=m(`option`,{value:``,disabled:``},`—— 从本地模型中选择 ——`,-1),(o(!0),p(n,null,s(j.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,zt))),128))],512)),[[u,X.worker.model]]):X.worker.backend===`openai`?g((o(),p(`select`,{key:1,"onUpdate:modelValue":i[16]||=e=>X.worker.model=e},[i[52]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取 ——`,-1),(o(!0),p(n,null,s(V.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,Bt))),128))],512)),[[u,X.worker.model]]):g((o(),p(`input`,{key:2,"onUpdate:modelValue":i[17]||=e=>X.worker.model=e,placeholder:`输入模型名称…`},null,512)),[[r,X.worker.model]]),W.worker?(o(),p(`span`,Vt,a(W.worker),1)):e(``,!0)])),X.worker.backend===`llama_server`?(o(),p(`div`,Ht,[i[53]||=m(`label`,null,`端口`,-1),g(m(`input`,{"onUpdate:modelValue":i[18]||=e=>X.worker.port=e,type:`number`,min:`1`,max:`65535`},null,512),[[r,X.worker.port,void 0,{number:!0}]])])):e(``,!0),m(`div`,Ut,[i[54]||=m(`label`,null,`Temperature`,-1),g(m(`input`,{"onUpdate:modelValue":i[19]||=e=>X.worker.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,X.worker.temperature,void 0,{number:!0}]])]),m(`div`,Wt,[i[55]||=m(`label`,null,`最大修复轮次`,-1),g(m(`input`,{"onUpdate:modelValue":i[20]||=e=>X.worker.max_fix_attempts=e,type:`number`,min:`0`,max:`10`},null,512),[[r,X.worker.max_fix_attempts,void 0,{number:!0}]])]),m(`div`,Gt,[i[56]||=m(`label`,null,`代码执行超时 (秒)`,-1),g(m(`input`,{"onUpdate:modelValue":i[21]||=e=>X.worker.code_timeout_s=e,type:`number`,min:`1`,max:`300`},null,512),[[r,X.worker.code_timeout_s,void 0,{number:!0}]])])])])]),m(`section`,Kt,[m(`div`,qt,[i[57]||=m(`span`,null,`🧠 大模型 (Architect · API 云端)`,-1),m(`div`,Jt,[K.architect===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,K.architect?`ping-ok`:`ping-err`])},a(K.architect?`✅ 已连接`:`❌ `+q.architect),3))])]),m(`div`,Yt,[m(`div`,Xt,[m(`div`,Zt,[m(`label`,null,[i[58]||=c(` API 端点 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:G.architect,onClick:qn},a(G.architect?`…`:`🔗 连接测试`),9,Qt)]),g(m(`input`,{"onUpdate:modelValue":i[22]||=e=>X.architect.base_url=e,placeholder:`https://api.deepseek.com`,onBlur:Wn},null,544),[[r,X.architect.base_url]])]),m(`div`,$t,[i[59]||=m(`label`,null,`API Key(保存在本地 config/settings.json,不入代码库;优先级高于 .env)`,-1),g(m(`input`,{"onUpdate:modelValue":i[23]||=e=>X.architect.api_key=e,type:`password`,placeholder:`sk-xxxxxxxxxxxxxxxx`,autocomplete:`off`},null,512),[[r,X.architect.api_key]])]),m(`div`,en,[m(`label`,null,[i[60]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:U.architect,onClick:Gn},a(U.architect?`…`:`🔄 刷新列表`),9,tn)]),g(m(`select`,{"onUpdate:modelValue":i[24]||=e=>X.architect.model=e,class:`model-select`},[i[61]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取模型列表 ——`,-1),(o(!0),p(n,null,s(H.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,nn))),128))],512),[[u,X.architect.model]]),W.architect?(o(),p(`span`,rn,a(W.architect),1)):e(``,!0)])])])]),m(`section`,an,[i[67]||=m(`div`,{class:`section-title`},[m(`span`,null,`⚙️ 协作管线 (Pipeline)`)],-1),m(`div`,on,[m(`div`,sn,[m(`div`,cn,[m(`label`,ln,[g(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[25]||=e=>X.pipeline.fast_path=e},null,512),[[ve,X.pipeline.fast_path]]),i[62]||=c(` 启用快路径(简单查询跳过本地模型,直接由大模型回答,省 API 费用) `,-1)])]),m(`div`,un,[i[63]||=m(`label`,null,`最大协作轮次`,-1),g(m(`input`,{"onUpdate:modelValue":i[26]||=e=>X.pipeline.rounds_cap=e,type:`number`,min:`1`,max:`20`},null,512),[[r,X.pipeline.rounds_cap,void 0,{number:!0}]])]),m(`div`,dn,[i[64]||=m(`label`,null,`API Token 熔断上限`,-1),g(m(`input`,{"onUpdate:modelValue":i[27]||=e=>X.pipeline.api_token_cap=e,type:`number`,min:`100`,max:`100000`},null,512),[[r,X.pipeline.api_token_cap,void 0,{number:!0}]])]),m(`div`,fn,[i[66]||=m(`label`,null,`超限策略`,-1),g(m(`select`,{"onUpdate:modelValue":i[28]||=e=>X.pipeline.breach_policy=e},[...i[65]||=[m(`option`,{value:`architect_do`},`architect_do(超限交给大模型处理,推荐)`,-1),m(`option`,{value:`local_only`},`local_only(强制留在本地小模型)`,-1)]],512),[[u,X.pipeline.breach_policy]])])])])]),m(`div`,pn,[m(`button`,{class:`btn-primary`,disabled:h.value||!Fn.value,onClick:Yn},a(h.value?`保存中…`:`💾 保存设置`),9,mn),m(`button`,{class:`btn-secondary`,disabled:h.value,onClick:Xn},` 🔁 恢复默认 `,8,hn)]),v.value?(o(),p(`div`,{key:0,class:d([`toast`,v.value.ok?`toast-ok`:`toast-err`])},a(v.value.msg),3)):e(``,!0)]))}}),[[`__scopeId`,`data-v-7b21dc2a`]]);export{_ as default}; \ No newline at end of file diff --git a/gateway/static/assets/index-8a-EFu_T.js b/gateway/static/assets/index-8a-EFu_T.js deleted file mode 100644 index 13f7eac..0000000 --- a/gateway/static/assets/index-8a-EFu_T.js +++ /dev/null @@ -1,11 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CollaborationView-BGbXWyaX.js","assets/CollaborationView-CfueFZKz.css","assets/ReviewView-C4zpJWvh.js","assets/ReviewView-9PXrv1jO.css","assets/MetricsView-Oto8AtT0.js","assets/MetricsView-JgJGH4Og.css","assets/SettingsView-CTDHQ2go.js","assets/SettingsView-DWdd6um_.css"])))=>i.map(i=>d[i]); -var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function n(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var r={},i=[],a=()=>{},o=()=>!1,s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),c=e=>e.startsWith(`onUpdate:`),l=Object.assign,u=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,f=(e,t)=>d.call(e,t),p=Array.isArray,m=e=>C(e)===`[object Map]`,h=e=>C(e)===`[object Set]`,g=e=>C(e)===`[object Date]`,_=e=>typeof e==`function`,v=e=>typeof e==`string`,y=e=>typeof e==`symbol`,b=e=>typeof e==`object`&&!!e,x=e=>(b(e)||_(e))&&_(e.then)&&_(e.catch),S=Object.prototype.toString,C=e=>S.call(e),w=e=>C(e).slice(8,-1),ee=e=>C(e)===`[object Object]`,te=e=>v(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ne=n(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),re=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ie=/-\w/g,T=re(e=>e.replace(ie,e=>e.slice(1).toUpperCase())),E=/\B([A-Z])/g,D=re(e=>e.replace(E,`-$1`).toLowerCase()),O=re(e=>e.charAt(0).toUpperCase()+e.slice(1)),k=re(e=>e?`on${O(e)}`:``),A=(e,t)=>!Object.is(e,t),ae=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},j=e=>{let t=parseFloat(e);return isNaN(t)?e:t},se,M=()=>se||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ce(e){if(p(e)){let t={};for(let n=0;n{if(e){let n=e.split(ue);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function pe(e){let t=``;if(v(e))t=e;else if(p(e))for(let n=0;nye(e,t))}var xe=e=>!!(e&&e.__v_isRef===!0),N=e=>v(e)?e:e==null?``:p(e)||b(e)&&(e.toString===S||!_(e.toString))?xe(e)?N(e.value):JSON.stringify(e,Se,2):String(e),Se=(e,t)=>xe(t)?Se(e,t.value):m(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ce(t,r)+` =>`]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ce(e))}:y(t)?Ce(t):b(t)&&!p(t)&&!ee(t)?String(t):t,Ce=(e,t=``)=>y(e)?`Symbol(${e.description??t})`:e,P,we=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&P&&(P.active?(this.parent=P,this.index=(P.scopes||(P.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(P===this)P=this.prevScope;else{let e=P;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Me){let e=Me;for(Me=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;je;){let t=je;for(je=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Ie(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Le(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Be(r),Ve(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Re(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ze(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ze(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qe)||(e.globalVersion=qe,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Re(e))))return;e.flags|=2;let t=e.dep,n=F,r=He;F=e,He=!0;try{Ie(e);let n=e.fn(e._value);(t.version===0||A(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{F=n,He=r,Le(e),e.flags&=-3}}function Be(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Be(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ve(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var He=!0,Ue=[];function We(){Ue.push(He),He=!1}function Ge(){let e=Ue.pop();He=e===void 0||e}function Ke(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=F;F=void 0;try{t()}finally{F=e}}}var qe=0,Je=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ye=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!F||!He||F===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==F)t=this.activeLink=new Je(F,this),F.deps?(t.prevDep=F.depsTail,F.depsTail.nextDep=t,F.depsTail=t):F.deps=F.depsTail=t,Xe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=F.depsTail,t.nextDep=void 0,F.depsTail.nextDep=t,F.depsTail=t,F.deps===t&&(F.deps=e)}return t}trigger(e){this.version++,qe++,this.notify(e)}notify(e){Pe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Fe()}}};function Xe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Xe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Ze=new WeakMap,Qe=Symbol(``),$e=Symbol(``),et=Symbol(``);function tt(e,t,n){if(He&&F){let t=Ze.get(e);t||Ze.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ye),r.map=t,r.key=n),r.track()}}function nt(e,t,n,r,i,a){let o=Ze.get(e);if(!o){qe++;return}let s=e=>{e&&e.trigger()};if(Pe(),t===`clear`)o.forEach(s);else{let i=p(e),a=i&&te(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===et||!y(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(et)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`delete`:i||(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`set`:m(e)&&s(o.get(Qe))}}Fe()}function rt(e,t){let n=Ze.get(e);return n&&n.get(t)}function it(e){let t=I(e);return t===e?t:(tt(t,`iterate`,et),Ut(e)?t:t.map(Kt))}function at(e){return tt(e=I(e),`iterate`,et),e}function ot(e,t){return Ht(e)?qt(Vt(e)?Kt(t):t):Kt(t)}var st={__proto__:null,[Symbol.iterator](){return ct(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return it(this).concat(...e.map(e=>p(e)?it(e):e))},entries(){return ct(this,`entries`,e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ut(this,`every`,e,t,void 0,arguments)},filter(e,t){return ut(this,`filter`,e,t,e=>e.map(e=>ot(this,e)),arguments)},find(e,t){return ut(this,`find`,e,t,e=>ot(this,e),arguments)},findIndex(e,t){return ut(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ut(this,`findLast`,e,t,e=>ot(this,e),arguments)},findLastIndex(e,t){return ut(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ut(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ft(this,`includes`,e)},indexOf(...e){return ft(this,`indexOf`,e)},join(e){return it(this).join(e)},lastIndexOf(...e){return ft(this,`lastIndexOf`,e)},map(e,t){return ut(this,`map`,e,t,void 0,arguments)},pop(){return pt(this,`pop`)},push(...e){return pt(this,`push`,e)},reduce(e,...t){return dt(this,`reduce`,e,t)},reduceRight(e,...t){return dt(this,`reduceRight`,e,t)},shift(){return pt(this,`shift`)},some(e,t){return ut(this,`some`,e,t,void 0,arguments)},splice(...e){return pt(this,`splice`,e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return pt(this,`unshift`,e)},values(){return ct(this,`values`,e=>ot(this,e))}};function ct(e,t,n){let r=at(e),i=r[t]();return r!==e&&!Ut(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var lt=Array.prototype;function ut(e,t,n,r,i,a){let o=at(e),s=o!==e&&!Ut(e),c=o[t];if(c!==lt[t]){let t=c.apply(e,a);return s?Kt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,ot(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function dt(e,t,n,r){let i=at(e),a=i!==e&&!Ut(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=ot(e,t)),n.call(this,t,ot(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?ot(e,c):c}function ft(e,t,n){let r=I(e);tt(r,`iterate`,et);let i=r[t](...n);return(i===-1||i===!1)&&Wt(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function pt(e,t,n=[]){We(),Pe();let r=I(e)[t].apply(e,n);return Fe(),Ge(),r}var mt=n(`__proto__,__v_isRef,__isVue`),ht=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(y));function gt(e){y(e)||(e=String(e));let t=I(this);return tt(t,`has`,e),t.hasOwnProperty(e)}var _t=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Ft:Pt:i?Nt:Mt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=p(e);if(!r){let e;if(a&&(e=st[t]))return e;if(t===`hasOwnProperty`)return gt}let o=Reflect.get(e,t,L(e)?e:n);if((y(t)?ht.has(t):mt(t))||(r||tt(e,`get`,t),i))return o;if(L(o)){let e=a&&te(t)?o:o.value;return r&&b(e)?zt(e):e}return b(o)?r?zt(o):Lt(o):o}},vt=class extends _t{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=p(e)&&te(t);if(!this._isShallow){let e=Ht(i);if(!Ut(n)&&!Ht(n)&&(i=I(i),n=I(n)),!a&&L(i)&&!L(n))return e||(i.value=n),!0}let o=a?Number(t)e,wt=e=>Reflect.getPrototypeOf(e);function Tt(e,t,n){return function(...r){let i=this.__v_raw,a=I(i),o=m(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,u=i[e](...r),d=n?Ct:t?qt:Kt;return!t&&tt(a,`iterate`,c?$e:Qe),l(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Et(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Dt(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(A(n,a)&&tt(i,`get`,n),tt(i,`get`,a));let{has:o}=wt(i),s=t?Ct:e?qt:Kt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&tt(I(t),`iterate`,Qe),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(A(t,i)&&tt(r,`has`,t),tt(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=I(a),s=t?Ct:e?qt:Kt;return!e&&tt(o,`iterate`,Qe),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return l(n,e?{add:Et(`add`),set:Et(`set`),delete:Et(`delete`),clear:Et(`clear`)}:{add(e){let n=I(this),r=wt(n),i=I(e),a=!t&&!Ut(e)&&!Ht(e)?i:e;return r.has.call(n,a)||A(e,a)&&r.has.call(n,e)||A(i,a)&&r.has.call(n,i)||(n.add(a),nt(n,`add`,a,a)),this},set(e,n){!t&&!Ut(n)&&!Ht(n)&&(n=I(n));let r=I(this),{has:i,get:a}=wt(r),o=i.call(r,e);o||=(e=I(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?A(n,s)&&nt(r,`set`,e,n,s):nt(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=wt(t),i=n.call(t,e);i||=(e=I(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&nt(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&nt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Tt(r,e,t)}),n}function Ot(e,t){let n=Dt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(f(n,r)&&r in t?n:t,r,i)}var kt={get:Ot(!1,!1)},At={get:Ot(!1,!0)},jt={get:Ot(!0,!1)},Mt=new WeakMap,Nt=new WeakMap,Pt=new WeakMap,Ft=new WeakMap;function It(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Lt(e){return Ht(e)?e:Bt(e,!1,bt,kt,Mt)}function Rt(e){return Bt(e,!1,St,At,Nt)}function zt(e){return Bt(e,!0,xt,jt,Pt)}function Bt(e,t,n,r,i){if(!b(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=It(w(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Vt(e){return Ht(e)?Vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ht(e){return!!(e&&e.__v_isReadonly)}function Ut(e){return!!(e&&e.__v_isShallow)}function Wt(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function Gt(e){return!f(e,`__v_skip`)&&Object.isExtensible(e)&&oe(e,`__v_skip`,!0),e}var Kt=e=>b(e)?Lt(e):e,qt=e=>b(e)?zt(e):e;function L(e){return e?e.__v_isRef===!0:!1}function R(e){return Yt(e,!1)}function Jt(e){return Yt(e,!0)}function Yt(e,t){return L(e)?e:new Xt(e,t)}var Xt=class{constructor(e,t){this.dep=new Ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:Kt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Ut(e)||Ht(e);e=n?e:I(e),A(e,t)&&(this._rawValue=e,this._value=n?e:Kt(e),this.dep.trigger())}};function z(e){return L(e)?e.value:e}var Zt={get:(e,t,n)=>t===`__v_raw`?e:z(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return L(i)&&!L(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Qt(e){return Vt(e)?e:new Proxy(e,Zt)}function $t(e){let t=p(e)?Array(e.length):{};for(let n in e)t[n]=tn(e,n);return t}var en=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=y(t)?t:String(t),this._raw=I(e);let r=!0,i=e;if(!p(e)||y(this._key)||!te(this._key))do r=!Wt(i)||Ut(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=z(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&L(this._raw[this._key])){let t=this._object[this._key];if(L(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return rt(this._raw,this._key)}};function tn(e,t,n){return new en(e,t,n)}var nn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qe-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&F!==this)return Ne(this,!0),!0}get value(){let e=this.dep.track();return ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function rn(e,t,n=!1){let r,i;return _(e)?r=e:(r=e.get,i=e.set),new nn(r,i,n)}var an={},on=new WeakMap,sn=void 0;function cn(e,t=!1,n=sn){if(n){let t=on.get(n);t||on.set(n,t=[]),t.push(e)}}function ln(e,t,n=r){let{immediate:i,deep:o,once:s,scheduler:c,augmentJob:l,call:d}=n,f=e=>o?e:Ut(e)||o===!1||o===0?un(e,1):un(e),m,h,g,v,y=!1,b=!1;if(L(e)?(h=()=>e.value,y=Ut(e)):Vt(e)?(h=()=>f(e),y=!0):p(e)?(b=!0,y=e.some(e=>Vt(e)||Ut(e)),h=()=>e.map(e=>{if(L(e))return e.value;if(Vt(e))return f(e);if(_(e))return d?d(e,2):e()})):h=_(e)?t?d?()=>d(e,2):e:()=>{if(g){We();try{g()}finally{Ge()}}let t=sn;sn=m;try{return d?d(e,3,[v]):e(v)}finally{sn=t}}:a,t&&o){let e=h,t=o===!0?1/0:o;h=()=>un(e(),t)}let x=Ee(),S=()=>{m.stop(),x&&x.active&&u(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(an):an,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e)){if(t){let n=m.run();if(e||o||y||(b?n.some((e,t)=>A(e,C[t])):A(n,C))){g&&g();let e=sn;sn=m;try{let e=[n,C===an?void 0:b&&C[0]===an?[]:C,v];C=n,d?d(t,3,e):t(...e)}finally{sn=e}}}else m.run()}};return l&&l(w),m=new ke(h),m.scheduler=c?()=>c(w,!1):w,v=e=>cn(e,!1,m),g=m.onStop=()=>{let e=on.get(m);if(e){if(d)d(e,4);else for(let t of e)t();on.delete(m)}},t?i?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function un(e,t=1/0,n){if(t<=0||!b(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,L(e))un(e.value,t,n);else if(p(e))for(let r=0;r{un(e,t,n)});else if(ee(e)){for(let r in e)un(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&un(e[r],t,n)}return e}function dn(e,t,n,r){try{return r?e(...r):e()}catch(e){pn(e,t,n)}}function fn(e,t,n,r){if(_(e)){let i=dn(e,t,n,r);return i&&x(i)&&i.catch(e=>{pn(e,t,n)}),i}if(p(e)){let i=[];for(let a=0;a>>1,i=hn[r],a=kn(i);a=kn(n)?hn.push(e):hn.splice(Cn(t),0,e),e.flags|=1,Tn()}}function Tn(){xn||=bn.then(An)}function En(e){if(!p(e))vn&&e.id===-1?vn.splice(yn+1,0,e):e.flags&1||(_n.push(e),e.flags|=1);else for(let t=0;tkn(e)-kn(t));if(_n.length=0,vn){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function An(e){try{for(gn=0;gn{r._d&&Ji(-1);let i=Nn(t),a=Wi.length,o;try{o=e(...n)}finally{for(let e=Wi.length;e>a;e--)Ki();Nn(i),r._d&&Ji(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Fn(e,t){if(jn===null)return e;let n=Oa(jn),i=e.dirs||=[];for(let e=0;e1)return n&&_(t)?t.call(r&&r.proxy):t}}function zn(){return!!(ha()||Zr)}var Bn=Symbol.for(`v-scx`),Vn=()=>Rn(Bn);function Hn(e,t,n){return Un(e,t,n)}function Un(e,t,n=r){let{immediate:i,deep:o,flush:s,once:c}=n,u=l({},n),d=t&&i||!t&&s!==`post`,f;if(xa){if(s===`sync`){let e=Vn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=a,e.resume=a,e.pause=a,e}}let p=ma;u.call=(e,t,n)=>fn(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{Oi(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():wn(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=ln(e,t,u);return xa&&(f?f.push(h):d&&h()),h}function Wn(e,t,n){let r=this.proxy,i=v(e)?e.includes(`.`)?Gn(r,e):()=>r[e]:e.bind(r,r),a;_(t)?a=t:(a=t.handler,n=t);let o=va(this),s=Un(i,a.bind(r),n);return o(),s}function Gn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,Jn=Symbol(`_leaveCb`);function Yn(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Hi){t=n;break}}return t}function Xn(e){if(!ar(e))return qn(e.type)&&e.children?Yn(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&_(n.default))return n.default()}}function Zn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Zn(qn(n.type)&&Xn(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qn(e,t){return _(e)?l({name:e.name},t,{setup:e}):e}function $n(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}function er(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var tr=new WeakMap;function nr(e,t,n,i,a=!1){if(p(e)){e.forEach((e,r)=>nr(e,t&&(p(t)?t[r]:t),n,i,a));return}if(ir(i)&&!a){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&nr(e,t,n,i.component.subTree);return}let s=i.shapeFlag&4?Oa(i.component):i.el,c=a?null:s,{i:l,r:d}=e,m=t&&t.r,h=l.refs===r?l.refs={}:l.refs,g=l.setupState,y=I(g),b=g===r?o:e=>!er(h,e)&&f(y,e),x=(e,t)=>!(t&&er(h,t));if(m!=null&&m!==d){if(rr(t),v(m))h[m]=null,b(m)&&(g[m]=null);else if(L(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(_(d))dn(d,l,12,[c,h]);else{let t=v(d),r=L(d);if(t||r){let i=()=>{if(e.f){let n=t?b(d)?g[d]:h[d]:x(d)||!e.k?d.value:h[e.k];if(a)p(n)&&u(n,s);else if(p(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],b(d)&&(g[d]=h[d]);else{let t=[s];x(d,e.k)&&(d.value=t),e.k&&(h[e.k]=t)}}else t?(h[d]=c,b(d)&&(g[d]=c)):r&&(x(d,e.k)&&(d.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),tr.delete(e)};t.id=-1,tr.set(e,t),Oi(t,n)}else rr(e),i()}}}function rr(e){let t=tr.get(e);t&&(t.flags|=8,tr.delete(e))}M().requestIdleCallback,M().cancelIdleCallback;var ir=e=>!!e.type.__asyncLoader,ar=e=>e.type.__isKeepAlive;function or(e,t){cr(e,`a`,t)}function sr(e,t){cr(e,`da`,t)}function cr(e,t,n=ma){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(ur(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ar(e.parent.vnode)&&lr(r,t,n,e),e=e.parent}}function lr(e,t,n,r){let i=ur(t,e,r,!0);_r(()=>{u(r[t],i)},n)}function ur(e,t,n=ma,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{We();let i=va(n),a=fn(t,n,e,r);return i(),Ge(),a};return r?i.unshift(a):i.push(a),a}}var dr=e=>(t,n=ma)=>{(!xa||e===`sp`)&&ur(e,(...e)=>t(...e),n)},fr=dr(`bm`),pr=dr(`m`),mr=dr(`bu`),hr=dr(`u`),gr=dr(`bum`),_r=dr(`um`),vr=dr(`sp`),yr=dr(`rtg`),br=dr(`rtc`);function xr(e,t=ma){ur(`ec`,e,t)}var Sr=`components`;function Cr(e,t){return Tr(Sr,e,!0,t)||e}var wr=Symbol.for(`v-ndc`);function Tr(e,t,n=!0,r=!1){let i=jn||ma;if(i){let n=i.type;if(e===Sr){let e=ka(n,!1);if(e&&(e===t||e===T(t)||e===O(T(t))))return n}let a=Er(i[e]||n[e],t)||Er(i.appContext[e],t);return!a&&r?n:a}}function Er(e,t){return e&&(e[t]||e[T(t)]||e[O(T(t))])}function Dr(e,t,n,r){let i,a=n&&n[r],o=p(e);if(o||v(e)){let n=o&&Vt(e),r=!1,s=!1;n&&(r=!Ut(e),s=Ht(e),e=at(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;re?ba(e)?Oa(e):Or(e.parent):null,kr=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Or(e.parent),$root:e=>Or(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||=()=>{wn(e.update)},$nextTick:e=>e.n||=Sn.bind(e.proxy),$watch:e=>Wn.bind(e)}),Ar=(e,t)=>e!==r&&!e.__isScriptSetup&&f(e,t),jr={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else if(Ar(i,t))return s[t]=1,i[t];else if(a!==r&&f(a,t))return s[t]=2,a[t];else if(f(o,t))return s[t]=3,o[t];else if(n!==r&&f(n,t))return s[t]=4,n[t];else Nr&&(s[t]=0)}let u=kr[t],d,p;if(u)return t===`$attrs`&&tt(e.attrs,`get`,``),u(e);if((d=c.__cssModules)&&(d=d[t]))return d;if(n!==r&&f(n,t))return s[t]=4,n[t];if(p=l.config.globalProperties,f(p,t))return p[t]},set({_:e},t,n){let{data:i,setupState:a,ctx:o}=e;return Ar(a,t)?(a[t]=n,!0):i!==r&&f(i,t)?(i[t]=n,!0):f(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(n[c]||e!==r&&c[0]!==`$`&&f(e,c)||Ar(t,c)||f(o,c)||f(i,c)||f(kr,c)||f(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?f(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function Mr(e){return p(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var Nr=!0;function Pr(e){let t=Rr(e),n=e.proxy,r=e.ctx;Nr=!1,t.beforeCreate&&Ir(t.beforeCreate,e,`bc`);let{data:i,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:f,mounted:m,beforeUpdate:h,updated:g,activated:v,deactivated:y,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:ee,renderTracked:te,renderTriggered:ne,errorCaptured:re,serverPrefetch:ie,expose:T,inheritAttrs:E,components:D,directives:O,filters:k}=t;if(u&&Fr(u,r,null),s)for(let e in s){let t=s[e];_(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);b(t)&&(e.data=Lt(t))}if(Nr=!0,o)for(let e in o){let t=o[e],i=G({get:_(t)?t.bind(n,n):_(t.get)?t.get.bind(n,n):a,set:!_(t)&&_(t.set)?t.set.bind(n):a});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(c)for(let e in c)Lr(c[e],r,n,e);if(l){let e=_(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Ln(t,e[t])})}d&&Ir(d,e,`c`);function A(e,t){p(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(A(fr,f),A(pr,m),A(mr,h),A(hr,g),A(or,v),A(sr,y),A(xr,re),A(br,te),A(yr,ne),A(gr,S),A(_r,w),A(vr,ie),p(T)){if(T.length){let t=e.exposed||={};T.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}ee&&e.render===a&&(e.render=ee),E!=null&&(e.inheritAttrs=E),D&&(e.components=D),O&&(e.directives=O),ie&&$n(e)}function Fr(e,t,n=a){p(e)&&(e=Ur(e));for(let n in e){let r=e[n],i;i=b(r)?`default`in r?Rn(r.from||n,r.default,!0):Rn(r.from||n):Rn(r),L(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Ir(e,t,n){fn(p(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Lr(e,t,n,r){let i=r.includes(`.`)?Gn(n,r):()=>n[r];if(v(e)){let n=t[e];_(n)&&Hn(i,n)}else if(_(e))Hn(i,e.bind(n));else if(b(e)){if(p(e))e.forEach(e=>Lr(e,t,n,r));else{let r=_(e.handler)?e.handler.bind(n):t[e.handler];_(r)&&Hn(i,r,e)}}}function Rr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>zr(c,e,o,!0)),zr(c,t,o)),b(t)&&a.set(t,c),c}function zr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&zr(e,a,n,!0),i&&i.forEach(t=>zr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=Br[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var Br={data:Vr,props:Kr,emits:Kr,methods:Gr,computed:Gr,beforeCreate:Wr,created:Wr,beforeMount:Wr,mounted:Wr,beforeUpdate:Wr,updated:Wr,beforeDestroy:Wr,beforeUnmount:Wr,destroyed:Wr,unmounted:Wr,activated:Wr,deactivated:Wr,errorCaptured:Wr,serverPrefetch:Wr,components:Gr,directives:Gr,watch:qr,provide:Vr,inject:Hr};function Vr(e,t){return t?e?function(){return l(_(e)?e.call(this,this):e,_(t)?t.call(this,this):t)}:t:e}function Hr(e,t){return Gr(Ur(e),Ur(t))}function Ur(e){if(p(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${D(t)}Modifiers`];function $r(e,t,...n){if(e.isUnmounted)return;let i=e.vnode.props||r,a=n,o=t.startsWith(`update:`),s=o&&Qr(i,t.slice(7));s&&(s.trim&&(a=n.map(e=>v(e)?e.trim():e)),s.number&&(a=a.map(j)));let c,l=i[c=k(t)]||i[c=k(T(t))];!l&&o&&(l=i[c=k(D(t))]),l&&fn(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,fn(u,e,6,a)}}var ei=new WeakMap;function ti(e,t,n=!1){let r=n?ei:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!_(e)){let r=e=>{let n=ti(e,t,!0);n&&(s=!0,l(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(b(e)&&r.set(e,null),null):(p(a)?a.forEach(e=>o[e]=null):l(o,a),b(e)&&r.set(e,o),o)}function ni(e,t){return!e||!s(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),f(e,t[0].toLowerCase()+t.slice(1))||f(e,D(t))||f(e,t))}function ri(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=Nn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=oa(u.call(t,e,d,f,m,p,h)),y=s}else{let e=t;v=oa(e.length>1?e(f,{attrs:s,slots:o,emit:l}):e(f,null)),y=t.props?s:ii(s)}}catch(t){Wi.length=0,pn(t,e,1),v=ta(Hi)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(c)&&(y=ai(y,a)),b=ia(b,y,!1,!0))}return n.dirs&&(b=ia(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Zn(qn(b.type)&&Xn(b)||b,n.transition),v=b,Nn(_),v}var ii=e=>{let t;for(let n in e)(n===`class`||n===`style`||s(n))&&((t||={})[n]=e[n]);return t},ai=(e,t)=>{let n={};for(let r in e)(!c(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function oi(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?si(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(ui),fi=e=>Object.getPrototypeOf(e)===ui;function pi(e,t,n,r=!1){let i={},a=di();e.propsDefaults=Object.create(null),hi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Rt(i):e.type.props?i:a,e.attrs=a}function mi(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=I(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{d=!0;let[n,r]=vi(e,t,!0);l(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!d)return b(e)&&a.set(e,i),i;if(p(s))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,xi=e=>p(e)?e.map(oa):[oa(e)],Si=(e,t,n)=>{if(t._n)return t;let r=Pn((...e)=>xi(t(...e)),n);return r._c=!1,r},Ci=(e,t,n)=>{let r=e._ctx;for(let n in e){if(bi(n))continue;let i=e[n];if(_(i))t[n]=Si(n,i,r);else if(i!=null){let e=xi(i);t[n]=()=>e}}},wi=(e,t)=>{let n=xi(t);e.slots.default=()=>n},Ti=(e,t,n)=>{for(let r in t)(n||!bi(r))&&(e[r]=t[r])},Ei=(e,t,n)=>{let r=e.slots=di();if(e.vnode.shapeFlag&32){let e=t._;e?(Ti(r,t,n),n&&oe(r,`_`,e,!0)):Ci(t,r)}else t&&wi(e,t)},Di=(e,t,n)=>{let{vnode:i,slots:a}=e,o=!0,s=r;if(i.shapeFlag&32){let e=t._;e?n&&e===1?o=!1:Ti(a,t,n):(o=!t.$stable,Ci(t,a)),s=t}else t&&(wi(e,t),s={default:1});if(o)for(let e in a)!bi(e)&&s[e]==null&&delete a[e]},Oi=Bi;function ki(e){return Ai(e)}function Ai(e,t){let n=M();n.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=a,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Qi(e,t)&&(r=ge(e),de(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case Vi:y(e,t,n,r);break;case Hi:b(e,t,n,r);break;case Ui:e??x(t,n,r,o);break;case B:D(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ye)}u!=null&&i?nr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&nr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ie(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&re(e.children,d,null,r,i,ji(e,a),s,u),_&&In(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ne(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&ua(f,r,e)}_&&In(e,null,r,`beforeMount`);let v=Ni(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&Oi(()=>{try{f&&ua(f,r,e),v&&g.enter(d),_&&In(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||r,h=t.props||r,g;if(n&&Mi(n,!1),(g=h.onVnodeBeforeUpdate)&&ua(g,n,t,e),f&&In(t,e,n,`beforeUpdate`),n&&Mi(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?T(e.dynamicChildren,d,l,n,i,ji(t,a),o):s||se(e,t,l,null,n,i,ji(t,a),o,!1),u>0){if(u&16)E(l,m,h,n,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=t.dynamicProps;for(let t=0;t{g&&ua(g,n,t,e),f&&In(t,e,n,`updated`)},i)},T=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==r)for(let r in t)!ne(r)&&!(r in n)&&c(e,r,t[r],null,a,i);for(let r in n){if(ne(r))continue;let o=n[r],s=t[r];o!==s&&r!==`value`&&c(e,r,s,o,a,i)}`value`in n&&c(e,`value`,t.value,n.value,a)}},D=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),re(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(T(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&Pi(e,t,!0)):se(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):k(t,n,r,i,a,o,c):A(e,t,c)},k=(e,t,n,r,i,a,o)=>{let s=e.component=pa(e,r,i);if(ar(e)&&(s.ctx.renderer=ye),Sa(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,oe,o),!e.el){let r=s.subTree=ta(Hi);b(null,r,t,n),e.placeholder=r.el}}else oe(s,e,t,n,i,a,o)},A=(e,t,n)=>{let r=t.component=e.component;if(oi(e,t,n)){if(r.asyncDep&&!r.asyncResolved){j(r,t,n);return}r.next=t,r.update()}else t.el=e.el,r.vnode=t},oe=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Ii(e);if(n){t&&(t.el=c.el,j(e,t,o)),n.asyncDep.then(()=>{Oi(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Mi(e,!1),t?(t.el=c.el,j(e,t,o)):t=c,n&&ae(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&ua(d,s,t,c),Mi(e,!0);let f=ri(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ge(p),e,i,a),t.el=f.el,u===null&&li(e,f.el),r&&Oi(r,i),(d=t.props&&t.props.onVnodeUpdated)&&Oi(()=>ua(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=ir(t);if(Mi(e,!1),l&&ae(l),!m&&(o=c&&c.onVnodeBeforeMount)&&ua(o,d,t),Mi(e,!0),s&&xe){let t=()=>{e.subTree=ri(e),xe(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=ri(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&Oi(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;Oi(()=>ua(o,d,e),i)}(t.shapeFlag&256||d&&ir(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&Oi(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ke(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>wn(u),Mi(e,!0),l()},j=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,mi(e,t.props,r,n),Di(e,t.children,n),We(),Dn(e),Ge()},se=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){le(l,d,n,r,i,a,o,s,c);return}if(f&256){ce(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&he(l,i,a),d!==l&&p(n,d)):u&16?m&16?le(l,d,n,r,i,a,o,s,c):he(l,i,a,!0):(u&8&&p(n,``),m&16&&re(d,n,r,i,a,o,s,c))},ce=(e,t,n,r,a,o,s,c,l)=>{e||=i,t||=i;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?he(e,a,o,!0,!1,f):re(t,n,r,a,o,s,c,l,f)},le=(e,t,n,r,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let r=e[u],i=t[u]=l?sa(t[u]):oa(t[u]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?sa(t[p]):oa(t[p]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,i=ep)for(;u<=f;)de(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?sa(t[u]):oa(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){de(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Qi(r,t[_])){i=_;break}i===void 0?de(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?Fi(C):i;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,i=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){ue(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,ye);return}if(c===B){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[Jn];a._isLeaving&&a[Jn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}}else o(a,t,n)},de=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(We(),nr(s,null,n,e,!0),Ge()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!ir(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&ua(_,t,e),u&6)me(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&In(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ye,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?he(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&he(c,t,n),r&&fe(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&Oi(()=>{_&&ua(_,t,e),h&&In(e,null,t,`unmounted`),v&&(e.el=null)},n)},fe=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===B){pe(n,r);return}if(t===Ui){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},pe=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},me=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Li(c),Li(l),r&&ae(r),i.stop(),a&&(a.flags|=8,de(o,e,t,n)),s&&Oi(s,t),Oi(()=>{e.isUnmounted=!0},t)},he=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ge(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Kn];return n?h(n):t},_e=!1,ve=(e,t,n)=>{let r;e==null?t._vnode&&(de(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,_e||=(_e=!0,Dn(r),On(),!1)},ye={p:v,um:de,m:ue,r:fe,mt:k,mc:re,pc:se,pbc:T,n:ge,o:e},be,xe;return t&&([be,xe]=t(ye)),{render:ve,hydrate:be,createApp:Xr(ve,be)}}function ji({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Mi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ni(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Pi(e,t,n=!1){let r=e.children,i=t.children;if(p(r)&&p(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function Ii(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ii(t)}function Li(e){if(e)for(let t=0;te.__isSuspense;function Bi(e,t){t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):En(e)}var B=Symbol.for(`v-fgt`),Vi=Symbol.for(`v-txt`),Hi=Symbol.for(`v-cmt`),Ui=Symbol.for(`v-stc`),Wi=[],Gi=null;function V(e=!1){Wi.push(Gi=e?null:[])}function Ki(){Wi.pop(),Gi=Wi[Wi.length-1]||null}var qi=1;function Ji(e,t=!1){qi+=e,e<0&&Gi&&t&&(Gi.hasOnce=!0)}function Yi(e){return e.dynamicChildren=qi>0?Gi||i:null,Ki(),qi>0&&Gi&&Gi.push(e),e}function H(e,t,n,r,i,a){return Yi(U(e,t,n,r,i,a,!0))}function Xi(e,t,n,r,i){return Yi(ta(e,t,n,r,i,!0))}function Zi(e){return e?e.__v_isVNode===!0:!1}function Qi(e,t){return e.type===t.type&&e.key===t.key}var $i=({key:e})=>e??null,ea=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:v(e)||L(e)||_(e)?{i:jn,r:e,k:t,f:!!n}:e);function U(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$i(t),ref:t&&ea(t),scopeId:Mn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:jn};return s?(ca(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=v(n)?8:16),qi>0&&!o&&Gi&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Gi.push(c),c}var ta=na;function na(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===wr)&&(e=Hi),Zi(e)){let r=ia(e,t,!0);return n&&ca(r,n),qi>0&&!a&&Gi&&(r.shapeFlag&6?Gi[Gi.indexOf(e)]=r:Gi.push(r)),r.patchFlag=-2,r}if(Aa(e)&&(e=e.__vccOpts),t){t=ra(t);let{class:e,style:n}=t;e&&!v(e)&&(t.class=pe(e)),b(n)&&(Wt(n)&&!p(n)&&(n=l({},n)),t.style=ce(n))}let o=v(e)?1:zi(e)?128:qn(e)?64:b(e)?4:_(e)?2:0;return U(e,t,n,r,i,o,a,!0)}function ra(e){return e?Wt(e)||fi(e)?l({},e):e:null}function ia(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?la(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&$i(l),ref:t&&t.ref?n&&a?p(a)?a.concat(ea(t)):[a,ea(t)]:ea(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==B?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ia(e.ssContent),ssFallback:e.ssFallback&&ia(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Zn(u,c.clone(u)),u}function aa(e=` `,t=0){return ta(Vi,null,e,t)}function W(e=``,t=!1){return t?(V(),Xi(Hi,null,e)):ta(Hi,null,e)}function oa(e){return e==null||typeof e==`boolean`?ta(Hi):p(e)?ta(B,null,e.slice()):Zi(e)?sa(e):ta(Vi,null,String(e))}function sa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ia(e)}function ca(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(p(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ca(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!fi(t)?t._ctx=jn:r===3&&jn&&(jn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(_(t)){if(r&65){ca(e,{default:t});return}t={default:t,_ctx:jn},n=32}else t=String(t),r&64?(n=16,t=[aa(t)]):n=8;e.children=t,e.shapeFlag|=n}function la(...e){let t={};for(let n=0;nma||jn,ga,_a;{let e=M(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};ga=t(`__VUE_INSTANCE_SETTERS__`,e=>ma=e),_a=t(`__VUE_SSR_SETTERS__`,e=>xa=e)}var va=e=>{let t=ma;return ga(e),e.scope.on(),()=>{e.scope.off(),ga(t)}},ya=()=>{ma&&ma.scope.off(),ga(null)};function ba(e){return e.vnode.shapeFlag&4}var xa=!1;function Sa(e,t=!1,n=!1){t&&_a(t);let{props:r,children:i}=e.vnode,a=ba(e);pi(e,r,a,t),Ei(e,i,n||t);let o=a?Ca(e,t):void 0;return t&&_a(!1),o}function Ca(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jr);let{setup:r}=n;if(r){We();let n=e.setupContext=r.length>1?Da(e):null,i=va(e),a=dn(r,e,0,[e.props,n]),o=x(a);if(Ge(),i(),(o||e.sp)&&!ir(e)&&$n(e),o){if(a.then(ya,ya),t)return a.then(n=>{_a(!0);try{wa(e,n,t)}finally{_a(!1)}}).catch(t=>{pn(t,e,0)});e.asyncDep=a}else wa(e,a,t)}else Ta(e,t)}function wa(e,t,n){_(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:b(t)&&(e.setupState=Qt(t)),Ta(e,n)}function Ta(e,t,n){let r=e.type;e.render||=r.render||a;{let t=va(e);We();try{Pr(e)}finally{Ge(),t()}}}var Ea={get(e,t){return tt(e,`get`,``),e[t]}};function Da(e){return{attrs:new Proxy(e.attrs,Ea),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Oa(e){return e.exposed?e.exposeProxy||=new Proxy(Qt(Gt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in kr)return kr[n](e)},has(e,t){return t in e||t in kr}}):e.proxy}function ka(e,t=!0){return _(e)?e.displayName||e.name:e.name||t&&e.__name}function Aa(e){return _(e)&&`__vccOpts`in e}var G=(e,t)=>rn(e,t,xa);function ja(e,t,n){try{Ji(-1);let r=arguments.length;return r===2?b(t)&&!p(t)?Zi(t)?ta(e,null,[t]):ta(e,t):ta(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Zi(n)&&(n=[n]),ta(e,t,n))}finally{Ji(1)}}var Ma=`3.5.42`,Na=void 0,Pa=typeof window<`u`&&window.trustedTypes;if(Pa)try{Na=Pa.createPolicy(`vue`,{createHTML:e=>e})}catch{}var Fa=Na?e=>Na.createHTML(e):e=>e,Ia=`http://www.w3.org/2000/svg`,La=`http://www.w3.org/1998/Math/MathML`,Ra=typeof document<`u`?document:null,za=Ra&&Ra.createElement(`template`),Ba={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?Ra.createElementNS(Ia,e):t===`mathml`?Ra.createElementNS(La,e):n?Ra.createElement(e,{is:n}):Ra.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Ra.createTextNode(e),createComment:e=>Ra.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ra.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{za.innerHTML=Fa(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=za.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Va=Symbol(`_vtc`);function Ha(e,t,n){let r=e[Va];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ua=Symbol(`_vod`),Wa=Symbol(`_vsh`),Ga=Symbol(``),Ka=/(?:^|;)\s*display\s*:/;function qa(e,t,n){let r=e.style,i=v(n),a=!1;if(n&&!i){if(t){if(v(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Ya(r,t,``)}else for(let e in t)n[e]??Ya(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Ya(r,i,``):$a(e,i,!v(t)&&t?t[i]:void 0,o)||Ya(r,i,o)}}else if(i){if(t!==n){let e=r[Ga];e&&(n+=`;`+e),r.cssText=n,a=Ka.test(n)}}else t&&e.removeAttribute(`style`);Ua in e&&(e[Ua]=a?r.display:``,e[Wa]&&(r.display=`none`))}var Ja=/\s*!important$/;function Ya(e,t,n){if(p(n))n.forEach(n=>Ya(e,t,n));else if(n??=``,t.startsWith(`--`))Ja.test(n)?e.setProperty(t,n.replace(Ja,``),`important`):e.setProperty(t,n);else{let r=Qa(e,t);Ja.test(n)?e.setProperty(D(r),n.replace(Ja,``),`important`):e[r]=n}}var Xa=[`Webkit`,`Moz`,`ms`],Za={};function Qa(e,t){let n=Za[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return Za[t]=r;r=O(r);for(let n=0;nuo||=(fo.then(()=>uo=0),Date.now());function mo(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(p(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,go=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ha(e,r,o):t===`style`?qa(e,n,r):s(t)?c(t)||oo(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):_o(e,t,r,o))?(no(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&to(e,t,r,o,a,t!==`value`)):e._isVueCE&&(vo(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!v(r)))?no(e,T(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),to(e,t,r,o))};function _o(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ho(t)&&_(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return ho(t)&&v(n)?!1:t in e}function vo(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var yo=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return p(t)?e=>ae(t,e):t};function bo(e){e.target.composing=!0}function xo(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var So=Symbol(`_assign`),Co=Symbol(`_initialValue`);function wo(e,t,n){return t&&(e=e.trim()),n&&(e=j(e)),e}var To={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[Co]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[Co]=e.defaultValue.replace(/\r\n?/g,` -`))),e[So]=yo(i);let a=r||i.props&&i.props.type===`number`;ro(e,t?`change`:`input`,t=>{t.target.composing||e[So](wo(e.value,n,a))}),(n||a)&&ro(e,`change`,()=>{e.value=wo(e.value,n,a)}),t||(ro(e,`compositionstart`,bo),ro(e,`compositionend`,xo),ro(e,`change`,xo))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[Co];delete e[Co],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[So](wo(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[So]=yo(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?j(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Eo={deep:!0,created(e,t,n){e[So]=yo(n),ro(e,`change`,()=>{let t=e._modelValue,n=jo(e),r=e.checked,i=e[So];if(p(t)){let e=be(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(h(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Mo(e,r))})},mounted:Do,beforeUpdate(e,t,n){e[So]=yo(n),Do(e,t,n)}};function Do(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(p(t))i=be(t,r.props.value)>-1;else if(h(t))i=t.has(r.props.value);else{if(t===n)return;i=ye(t,Mo(e,!0))}e.checked!==i&&(e.checked=i)}var Oo={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,ro(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?j(jo(e)):jo(e)),r=e.multiple,i=r?h(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?p(i)?t.slice():t:i];try{e[So](i)}finally{Sn(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[So]=yo(r)},mounted(e,{value:t}){Ao(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[So]=yo(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!ko(t,n[1],n[0]))&&Ao(e,t)}};function ko(e,t,n){if(!n||p(e))return ye(e,t);if(h(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Ao(e,t){let n=e.multiple,r=p(t);if(!(n&&!r&&!h(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):be(t,o)>-1}else a.selected=t.has(o)}else if(ye(jo(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jo(e){return`_value`in e?e._value:e.value}function Mo(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var No=[`ctrl`,`shift`,`alt`,`meta`],Po={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>No.some(n=>e[`${n}Key`]&&!t.includes(n))},Fo=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let t=Ro().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Vo(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Bo(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Bo(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Vo(e){return v(e)?document.querySelector(e):e}var Ho=typeof window<`u`,Uo,Wo=e=>Uo=e,Go=Symbol();function Ko(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var qo=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Jo(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Yo(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){es(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Xo(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Zo(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Qo=typeof navigator==`object`?navigator:{userAgent:``},$o=/Macintosh/.test(Qo.userAgent)&&/AppleWebKit/.test(Qo.userAgent)&&!/Safari/.test(Qo.userAgent),es=Ho?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!$o?ts:`msSaveOrOpenBlob`in Qo?ns:rs:()=>{};function ts(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Zo(r):Xo(r.href)?Yo(e,t,n):(r.target=`_blank`,Zo(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Zo(r)},0))}function ns(e,t=`download`,n){if(typeof e==`string`){if(Xo(e))Yo(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Zo(t)})}}else navigator.msSaveOrOpenBlob(Jo(e,n),t)}function rs(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Yo(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(qo.HTMLElement))||`safari`in qo,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||$o)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:is}=Object;function as(){let e=Te(!0),t=e.run(()=>R({})),n=[],r=[],i=Gt({install(e){Wo(i),i._a=e,e.provide(Go,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var os=()=>{};function ss(e,t,n,r=os){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ee()&&De(i),i}function cs(e,...t){e.forEach(e=>{e(...t)})}var ls=e=>e(),us=Symbol(),ds=Symbol();function fs(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=Ko(i)&&Ko(r)&&Object.hasOwn(e,n)&&!L(r)&&!Vt(r)?fs(i,r):r}return e}var ps=Symbol();function ms(e){return!e||typeof e!=`object`||!Object.hasOwn(e,ps)}var{assign:hs}=Object;function gs(e){return!!(L(e)&&e.effect)}function _s(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),hs($t(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Gt(G(()=>{Wo(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=vs(e,l,t,n,r,!0),c}function vs(e,t,n={},r,i,a){let o,s=hs({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(fs(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();Sn().then(()=>{h===i&&(l=!0)}),u=!0,cs(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{hs(e,t)})}:os;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(us in t)return t[ds]=n,t;let i=function(){Wo(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}cs(f,{args:n,name:i[ds],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw cs(o,e),e}return l instanceof Promise?l.then(e=>(cs(a,e),e)).catch(e=>(cs(o,e),Promise.reject(e))):(cs(a,l),l)};return i[us]=!0,i[ds]=n,i},b=Lt({_p:r,$id:e,$onAction:ss.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return os;let i=ss(d,t,n.detached,()=>a()),a=o.run(()=>Hn(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},hs({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||ls)(()=>r._e.run(()=>(o=Te()).run(()=>t({action:y}))));for(let t in x){let n=x[t];L(n)&&!gs(n)||Vt(n)?a||(m&&ms(n)&&(L(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),fs(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return hs(b,x),hs(I(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{hs(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));hs(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function ys(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=zn();return n||=o?Rn(Go,null):null,n&&Wo(n),n=Uo,n._s.has(e)||(i?vs(e,t,r,n):_s(e,r,n)),n._s.get(e)}return a.$id=e,a}var bs={class:`app`},xs={class:`side`},Ss={class:`nav`},Cs={class:`nav-icon`},ws={class:`nav-label`},Ts={class:`main-col`},Es=Qn({__name:`App`,setup(e){let t=[{to:`/chat`,icon:`💬`,label:`对话`},{to:`/collaboration`,icon:`🔄`,label:`协作过程`},{to:`/agent`,icon:`🤖`,label:`智能体`},{to:`/review`,icon:`🔍`,label:`人工检验`},{to:`/metrics`,icon:`📊`,label:`指标`},{to:`/settings`,icon:`⚙️`,label:`设置`}];return(e,n)=>{let r=Cr(`router-link`),i=Cr(`router-view`);return V(),H(`div`,bs,[U(`aside`,xs,[n[0]||=U(`div`,{class:`brand`},[U(`div`,{class:`brand-logo`},`🤖`),U(`div`,{class:`brand-text`},[U(`b`,null,`端云协同`),U(`span`,null,`LLM 协作系统`)])],-1),U(`nav`,Ss,[(V(),H(B,null,Dr(t,e=>ta(r,{key:e.to,to:e.to,class:`nav-item`},{default:Pn(()=>[U(`span`,Cs,N(e.icon),1),U(`span`,ws,N(e.label),1)]),_:2},1032,[`to`])),64))]),n[1]||=U(`div`,{class:`side-foot`},[U(`div`,{class:`foot-dot`}),U(`span`,null,`本地网关 · :8000`)],-1)]),U(`div`,Ts,[ta(i,{class:`content`})])])}}}),Ds=typeof document<`u`;function Os(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function ks(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&Os(e.default)}var K=Object.assign;function As(e,t){let n={};for(let r in t){let i=t[r];n[r]=Ms(i)?i.map(e):e(i)}return n}var js=()=>{},Ms=Array.isArray;function Ns(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Ps=/#/g,Fs=/&/g,Is=/\//g,Ls=/=/g,Rs=/\?/g,zs=/\+/g,Bs=/%5B/g,Vs=/%5D/g,Hs=/%5E/g,Us=/%60/g,Ws=/%7B/g,Gs=/%7C/g,Ks=/%7D/g,qs=/%20/g;function Js(e){return e==null?``:encodeURI(``+e).replace(Gs,`|`).replace(Bs,`[`).replace(Vs,`]`)}function Ys(e){return Js(e).replace(Ws,`{`).replace(Ks,`}`).replace(Hs,`^`)}function Xs(e){return Js(e).replace(zs,`%2B`).replace(qs,`+`).replace(Ps,`%23`).replace(Fs,`%26`).replace(Us,"`").replace(Ws,`{`).replace(Ks,`}`).replace(Hs,`^`)}function Zs(e){return Xs(e).replace(Ls,`%3D`)}function Qs(e){return Js(e).replace(Ps,`%23`).replace(Rs,`%3F`)}function $s(e){return Qs(e).replace(Is,`%2F`)}function ec(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var tc=/\/$/,nc=e=>e.replace(tc,``);function rc(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=dc(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:ec(o)}}function ic(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function ac(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function oc(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&sc(t.matched[r],n.matched[i])&&cc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function sc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!lc(e[n],t[n]))return!1;return!0}function lc(e,t){return Ms(e)?uc(e,t):Ms(t)?uc(t,e):e?.valueOf()===t?.valueOf()}function uc(e,t){return Ms(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function dc(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var fc={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},pc=function(e){return e.pop=`pop`,e.push=`push`,e}({}),mc=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function hc(e){if(!e){if(Ds){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),nc(e)}var gc=/^[^#]+#/;function _c(e,t){return e.replace(gc,`#`)+t}function vc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var yc=()=>({left:window.scrollX,top:window.scrollY});function bc(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=vc(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function xc(e,t){return(history.state?history.state.position-t:-1)+e}var Sc=new Map;function Cc(e,t){Sc.set(e,t)}function wc(e){let t=Sc.get(e);return Sc.delete(e),t}function Tc(e){return typeof e==`string`||e&&typeof e==`object`}function Ec(e){return typeof e==`string`||typeof e==`symbol`}var q=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),Dc=Symbol(``);q.MATCHER_NOT_FOUND,q.NAVIGATION_GUARD_REDIRECT,q.NAVIGATION_ABORTED,q.NAVIGATION_CANCELLED,q.NAVIGATION_DUPLICATED;function Oc(e,t){return K(Error(),{type:e,[Dc]:!0},t)}function kc(e,t){return e instanceof Error&&Dc in e&&(t==null||!!(e.type&t))}function Ac(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Xs(e)):[r&&Xs(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Mc(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Ms(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var Nc=Symbol(``),Pc=Symbol(``),Fc=Symbol(``),Ic=Symbol(``),Lc=Symbol(``);function Rc(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function zc(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Oc(q.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Tc(e)?c(Oc(q.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Bc(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e])){if(Os(s)){let c=(s.__vccOpts||s)[t];c&&a.push(zc(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=ks(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&zc(c,n,r,o,e,i)()}))}}}return a}function Vc(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;osc(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>sc(e,s))||i.push(s))}return[n,r,i]}var Hc=()=>location.protocol+`//`+location.host;function Uc(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),ac(n,``)}return ac(n,e)+r+i}function Wc(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Uc(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:pc.pop,direction:u?u>0?mc.forward:mc.back:mc.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(K({},e.state,{scroll:yc()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Gc(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?yc():null}}function Kc(e){let{history:t,location:n}=window,r={value:Uc(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Hc()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,K({},t.state,Gc(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=K({},i.value,t.state,{forward:e,scroll:yc()});a(o.current,o,!0),a(e,K({},Gc(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function qc(e){e=hc(e);let t=Kc(e),n=Wc(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=K({location:``,base:e,go:r,createHref:_c.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Jc=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),J=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(J||{}),Yc={type:Jc.Static,value:``},Xc=/[a-zA-Z0-9_]/;function Zc(e){if(!e)return[[]];if(e===`/`)return[[Yc]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=J.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===J.Static?a.push({type:Jc.Static,value:l}):n===J.Param||n===J.ParamRegExp||n===J.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Jc.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===el.Static+el.Segment?1:-1:0}function il(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var ol={strict:!1,end:!0,sensitive:!1};function sl(e,t,n){let r=K(nl(Zc(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function cl(e,t){let n=[],r=new Map;t=Ns(ol,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=ul(e);s.aliasOf=r&&r.record;let l=Ns(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(ul(K({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=sl(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!fl(d)&&o(e.name)),gl(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:js}function o(e){if(Ec(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=ml(e,n);n.splice(t,0,e),e.record.name&&!fl(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Oc(q.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=K(ll(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&ll(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Oc(q.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=K({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:pl(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function ll(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function ul(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dl(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dl(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function fl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function pl(e){return e.reduce((e,t)=>K(e,t.meta),{})}function ml(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;il(e,t[i])<0?r=i:n=i+1}let i=hl(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function hl(e){let t=e;for(;t=t.parent;)if(gl(t)&&il(e,t)===0)return t}function gl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function _l(e){let t=Rn(Fc),n=Rn(Ic),r=G(()=>{let n=z(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(sc.bind(null,i));if(o>-1)return o;let s=Sl(e[t-2]);return t>1&&Sl(i)===s&&a[a.length-1].path!==s?a.findIndex(sc.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&xl(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&cc(n.params,r.value.params));function s(n={}){if(bl(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(js);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function vl(e){return e.length===1?e[0]:e}var yl=Qn({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:_l,setup(e,{slots:t}){let n=Lt(_l(e)),{options:r}=Rn(Fc),i=G(()=>({[Cl(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Cl(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&vl(t.default(n));return e.custom?r:ja(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function bl(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function xl(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Ms(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Sl(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Cl=(e,t,n)=>e??t??n,wl=Qn({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=Rn(Lc),i=G(()=>e.route||r.value),a=Rn(Pc,0),o=G(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Ln(Pc,G(()=>o.value+1)),Ln(Nc,s),Ln(Lc,i);let c=R();return Hn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!sc(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Tl(n.default,{Component:l,route:r});let u=o.props[a],d=ja(l,K({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Tl(n.default,{Component:d,route:r})||d}}});function Tl(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var El=wl;function Dl(e){let t=cl(e.routes,e),n=e.parseQuery||Ac,r=e.stringifyQuery||jc,i=e.history,a=Rc(),o=Rc(),s=Rc(),c=Jt(fc),l=fc;Ds&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=As.bind(null,e=>``+e),d=As.bind(null,$s),f=As.bind(null,ec);function p(e,n){let r,i;return Ec(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=K({},a||c.value),typeof e==`string`){let r=rc(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return K(r,o,{params:f(o.params),hash:ec(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=K({},e,{path:rc(n,e.path,a.path).path});else{let t=K({},e.params);for(let e in t)t[e]??delete t[e];o=K({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=ic(r,K({},e,{hash:Ys(l),path:s.path})),m=i.createHref(p);return K({fullPath:p,hash:l,query:r===jc?Mc(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?rc(n,e,c.value.path):K({},e)}function y(e,t){if(l!==e)return Oc(q.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(K(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),K({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(K(v(u),{state:typeof u==`object`?K({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&oc(r,i,n)&&(f=Oc(q.NAVIGATION_DUPLICATED,{to:d,from:i}),oe(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>kc(e)?kc(e,q.NAVIGATION_GUARD_REDIRECT)?e:ae(e):k(e,d,i)).then(e=>{if(e){if(kc(e,q.NAVIGATION_GUARD_REDIRECT))return C(K({replace:s},v(e.to),{state:typeof e.to==`object`?K({},a,e.to.state):a,force:o}),t||d)}else e=re(d,i,!0,s,a);return ne(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function ee(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=Vc(e,t);n=Bc(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(zc(r,e,t))});let c=w.bind(null,e,t);return n.push(c),le(n).then(()=>{n=[];for(let r of a.list())n.push(zc(r,e,t));return n.push(c),le(n)}).then(()=>{n=Bc(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(zc(r,e,t))});return n.push(c),le(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Ms(r.beforeEnter))for(let i of r.beforeEnter)n.push(zc(i,e,t));else n.push(zc(r.beforeEnter,e,t))}return n.push(c),le(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Bc(s,`beforeRouteEnter`,e,t,ee),n.push(c),le(n))).then(()=>{n=[];for(let r of o.list())n.push(zc(r,e,t));return n.push(c),le(n)}).catch(e=>kc(e,q.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ne(e,t,n){s.list().forEach(r=>ee(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===fc,l=Ds?history.state:{};n&&(r||s?i.replace(e.fullPath,K({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,oe(e,t,n,s),ae()}let ie;function T(){ie||=i.listen((e,t,n)=>{if(!ce.listening)return;let r=_(e),a=S(r,ce.currentRoute.value);if(a){C(K(a,{replace:!0,force:!0}),r).catch(js);return}l=r;let o=c.value;Ds&&Cc(xc(o.fullPath,n.delta),yc()),te(r,o).catch(e=>kc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_CANCELLED)?e:kc(e,q.NAVIGATION_GUARD_REDIRECT)?(C(K(v(e.to),{force:!0}),r).then(e=>{kc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===pc.pop&&i.go(-1,!1)}).catch(js),Promise.reject()):(n.delta&&i.go(-n.delta,!1),k(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!kc(e,q.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===pc.pop&&kc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ne(r,o,e)}).catch(js)})}let E=Rc(),D=Rc(),O;function k(e,t,n){ae(e);let r=D.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function A(){return O&&c.value!==fc?Promise.resolve():new Promise((e,t)=>{E.add([e,t])})}function ae(e){return O||(O=!e,T(),E.list().forEach(([t,n])=>e?n(e):t()),E.reset()),e}function oe(t,n,r,i){let{scrollBehavior:a}=e;if(!Ds||!a)return Promise.resolve();let o=!r&&wc(xc(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Sn().then(()=>a(t,n,o)).then(e=>e&&bc(e)).catch(e=>k(e,t,n))}let j=e=>i.go(e),se,M=new Set,ce={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:j,back:()=>j(-1),forward:()=>j(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:D.add,isReady:A,install(e){e.component(`RouterLink`,yl),e.component(`RouterView`,El),e.config.globalProperties.$router=ce,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>z(c)}),Ds&&!se&&c.value===fc&&(se=!0,b(i.location).catch(e=>{}));let t={};for(let e in fc)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Fc,ce),e.provide(Ic,Rt(t)),e.provide(Lc,c);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(l=fc,ie&&ie(),ie=null,c.value=fc,se=!1,O=!1),n()}}};function le(e){return e.reduce((e,t)=>e.then(()=>ee(t)),Promise.resolve())}return ce}function Ol(e,t){return function(){return e.apply(t,arguments)}}var{toString:kl}=Object.prototype,{getPrototypeOf:Al}=Object,{iterator:jl,toStringTag:Ml}=Symbol,Nl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Pl=e=>typeof e==`string`&&(e===`__proto__`||e===`constructor`||e===`prototype`),Fl=(e,t,n)=>e===Object.prototype||!n&&t===null,Il=e=>{if(!Object.isExtensible(e))return!1;let t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(t=>{if(Pl(t))return!1;let n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.configurable&&n.writable===!0})},Ll=(e,t)=>{let n=e,r=[];for(;n!=null;){if(r.indexOf(n)!==-1)return!1;r.push(n);let i=Al(n);if(Fl(n,i,n===e))return!1;if(Nl(n,t))return!0;n=i}return!1},Rl=(e,t)=>e!=null&&Ll(e,t)?e[t]:void 0,zl=e=>{if(e==null||typeof e!=`object`&&typeof e!=`function`)return e;let t=Al(e);if(t===null&&Il(e))return e;let n=Object.create(null),r=Object.create(null),i=[],a=e;for(;a!=null&&i.indexOf(a)===-1;){i.push(a);let o=a===e?t:Al(a);if(Fl(a,o,a===e))break;let s=Object.getOwnPropertyNames(a);Object.getOwnPropertySymbols&&s.push(...Object.getOwnPropertySymbols(a));for(let t of s)Pl(t)||Nl(r,t)||(n[t]=e[t],r[t]=!0);a=o}return n},Bl=(e=>t=>{let n=kl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Vl=e=>(e=e.toLowerCase(),t=>Bl(t)===e),Hl=e=>t=>typeof t===e,{isArray:Ul}=Array,Wl=Hl(`undefined`);function Gl(e){return e!==null&&!Wl(e)&&e.constructor!==null&&!Wl(e.constructor)&&Yl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var Kl=Vl(`ArrayBuffer`);function ql(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Kl(e.buffer),t}var Jl=Hl(`string`),Yl=Hl(`function`),Xl=Hl(`number`),Zl=e=>typeof e==`object`&&!!e,Ql=e=>e===!0||e===!1,$l=e=>{if(!Zl(e))return!1;let t=Al(e);return(t===null||t===Object.prototype||Al(t)===null)&&!Ll(e,Ml)&&!Ll(e,jl)},eu=e=>{if(!Zl(e)||Gl(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},tu=Vl(`Date`),nu=Vl(`File`),ru=e=>!!(e&&e.uri!==void 0),iu=e=>e&&e.getParts!==void 0,au=Vl(`Blob`),ou=Vl(`FileList`),su=Vl(`Set`),cu=e=>Zl(e)&&Yl(e.pipe);function lu(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var uu=lu(),du=uu.FormData===void 0?void 0:uu.FormData,fu=e=>{if(!e)return!1;if(du&&e instanceof du)return!0;let t=Al(e);if(!t||t===Object.prototype||!Yl(e.append))return!1;let n=Bl(e);return n===`formdata`||n===`object`&&Yl(e.toString)&&e.toString()===`[object FormData]`},pu=Vl(`URLSearchParams`),[mu,hu,gu,_u]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Vl),vu=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function yu(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Ul(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var xu=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,Su=e=>!Wl(e)&&e!==xu;function Cu(...e){let{caseless:t,skipUndefined:n}=Su(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&bu(r,i)||i,o=Nl(r,a)?r[a]:void 0;$l(o)&&$l(e)?r[a]=Cu(o,e):$l(e)?r[a]=Cu({},e):Ul(e)?r[a]=e.slice():(!n||!Wl(e))&&(r[a]=e)};for(let t=0,n=e.length;t(yu(t,(t,r)=>{n&&Yl(t)?Object.defineProperty(e,r,{__proto__:null,value:Ol(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Tu=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Eu=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Du=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Al(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ou=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},ku=e=>{if(!e)return null;if(Ul(e))return e;let t=e.length;if(!Xl(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Au=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Al(Uint8Array)),ju=(e,t)=>{let n=(e&&e[jl]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Mu=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Nu=Vl(`HTMLFormElement`),Pu=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Fu}=Object.prototype,Iu=Vl(`RegExp`),Lu=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};yu(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Ru=e=>{Lu(e,(t,n)=>{if(Yl(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Yl(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},zu=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Ul(e)?r(e):r(String(e).split(t)),n},Bu=()=>{},Vu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Hu(e){return!!(e&&Yl(e.append)&&e[Ml]===`FormData`&&e[jl])}var Uu=e=>{let t=new WeakSet,n=e=>{if(Zl(e)){if(t.has(e))return;if(Gl(e))return e;if(!(`toJSON`in e)){t.add(e);let r;if(su(e)){r=[];for(let t of e){let e=n(t);!Wl(e)&&r.push(e)}}else r=Ul(e)?[]:{},yu(e,(e,t)=>{let i=n(e);!Wl(i)&&(r[t]=i)});return t.delete(e),r}}return e};return n(e)},Wu=Vl(`AsyncFunction`),Gu=e=>e&&(Zl(e)||Yl(e))&&Yl(e.then)&&Yl(e.catch),Ku=((e,t)=>e?setImmediate:t?((e,t)=>(xu.addEventListener(`message`,({source:n,data:r})=>{n===xu&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),xu.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Yl(xu.postMessage)),qu=typeof queueMicrotask<`u`?queueMicrotask.bind(xu):typeof process<`u`&&process.nextTick||Ku,Ju=e=>e!=null&&Yl(e[jl]),Y={isArray:Ul,isArrayBuffer:Kl,isBuffer:Gl,isFormData:fu,isArrayBufferView:ql,isString:Jl,isNumber:Xl,isBoolean:Ql,isObject:Zl,isPlainObject:$l,isEmptyObject:eu,isReadableStream:mu,isRequest:hu,isResponse:gu,isHeaders:_u,isUndefined:Wl,isDate:tu,isFile:nu,isReactNativeBlob:ru,isReactNative:iu,isBlob:au,isRegExp:Iu,isFunction:Yl,isStream:cu,isURLSearchParams:pu,isTypedArray:Au,isFileList:ou,forEach:yu,merge:Cu,extend:wu,trim:vu,stripBOM:Tu,inherits:Eu,toFlatObject:Du,kindOf:Bl,kindOfTest:Vl,endsWith:Ou,toArray:ku,forEachEntry:ju,matchAll:Mu,isHTMLForm:Nu,hasOwnProperty:Nl,hasOwnProp:Nl,hasOwnInPrototypeChain:Ll,getSafeProp:Rl,toSafeFlatObject:zl,reduceDescriptors:Lu,freezeMethods:Ru,toObjectSet:zu,toCamelCase:Pu,noop:Bu,toFiniteNumber:Vu,findKey:bu,global:xu,isContextDefined:Su,isSpecCompliantForm:Hu,toJSONObject:Uu,isAsyncFn:Wu,isThenable:Gu,setImmediate:Ku,asap:qu,isIterable:Ju,isSafeIterable:e=>e!=null&&Ll(e,jl)&&Ju(e)},Yu=Y.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Xu=e=>{let t={},n,r,i;return e&&e.split(` -`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim();let a=Y.hasOwnProp(t,n);!n||a&&Y.hasOwnProp(Yu,n)||(n===`set-cookie`?a?t[n].push(r):t[n]=[r]:t[n]=a?t[n]+`, `+r:r)}),t};function Zu(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Qu=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),$u=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function ed(e,t){return Y.isArray(e)?e.map(e=>ed(e,t)):Zu(String(e).replace(t,``))}var td=e=>ed(e,Qu),nd=e=>ed(e,$u);function rd(e){let t=Object.create(null);return Y.forEach(e.toJSON(),(e,n)=>{t[n]=nd(e)}),t}var id=Symbol(`internals`);function ad(e){return e&&String(e).trim().toLowerCase()}function od(e){return e===!1||e==null?e:Y.isArray(e)?e.map(od):td(String(e))}function sd(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var cd=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function ld(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}function ud(e){let t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let n=``;for(let r=1;r=t))return e;n+=e[r]}return n}function dd(e){let t=Object.create(null),n=String(e),r=0,i=!1,a=!1;function o(e){let i=ld(n.slice(r,e)),a=i.indexOf(`=`);if(a<1)return;let o=ld(i.slice(0,a));if(!cd.test(o))return;let s=o.toLowerCase();if(s===`__proto__`||s===`constructor`||s===`prototype`)return;let c=ld(i.slice(a+1));t[s]=ud(c)}for(let e=0;e/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function pd(e,t,n,r,i){if(Y.isFunction(r))return r.call(this,t,n);if(i&&(t=n),Y.isString(t)){if(Y.isString(r))return t.indexOf(r)!==-1;if(Y.isRegExp(r))return r.test(t)}}function md(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function hd(e,t){let n=Y.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var gd=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=ad(t);if(!i)return;let a=Y.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=od(e))}let a=(e,t)=>Y.forEach(e,(e,n)=>i(e,n,t));if(Y.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(Y.isString(e)&&(e=e.trim())&&!fd(e))a(Xu(e),t);else if(Y.isObject(e)&&Y.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!Y.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],Y.hasOwnProp(n,i)?(r=n[i],n[i]=Y.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=ad(e),e){let n=Y.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return sd(e);if(Y.isFunction(t))return t.call(this,e,n);if(Y.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=ad(e),e){let n=Y.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||pd(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=ad(e),e){let i=Y.findKey(n,e);i&&(!t||pd(n,n[i],i,t))&&(delete n[i],r=!0)}}return Y.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||pd(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return Y.forEach(this,(r,i)=>{let a=Y.findKey(n,i);if(a){t[a]=od(r),delete t[i];return}let o=e?md(i):String(i).trim();o!==i&&delete t[i],t[o]=od(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return Y.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&Y.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` -`)}getSetCookie(){let e=this.get(`set-cookie`);return Y.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return dd(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[id]=this[id]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=ad(e);t[r]||(hd(n,e),t[r]=!0)}return Y.isArray(e)?e.forEach(r):r(e),this}};gd.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),Y.reduceDescriptors(gd.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),Y.freezeMethods(gd);var _d=`[REDACTED ****]`;function vd(e){if(Y.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(Y.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function yd(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||Y.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof gd&&(e=e.toJSON()),r.push(e);let t;if(Y.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);Y.isUndefined(r)||(t[n]=r)});else{if(!Y.isPlainObject(e)&&vd(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?_d:i(a);Y.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}function bd(e){try{return String(e)}catch{return``}}function xd(e){return e.errors.map(e=>{try{return e&&e.message?bd(e.message):bd(e)}catch{return``}}).filter(Boolean).join(`; `)||e.name||`AggregateError`}var X=class e extends Error{static from(t,n,r,i,a,o){let s=t.message;!s&&Y.isArray(t.errors)&&t.errors.length&&(s=xd(t));let c=new e(s,n||t.code,r,i,a);return Object.defineProperty(c,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),c.name=t.name,t.status!=null&&c.status==null&&(c.status=t.status),o&&Object.assign(c,o),c}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&Y.hasOwnProp(e,`redact`)?e.redact:void 0,n=Y.isArray(t)&&t.length>0?yd(e,t):Y.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};X.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,X.ERR_BAD_OPTION=`ERR_BAD_OPTION`,X.ECONNABORTED=`ECONNABORTED`,X.ETIMEDOUT=`ETIMEDOUT`,X.ECONNREFUSED=`ECONNREFUSED`,X.ERR_NETWORK=`ERR_NETWORK`,X.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,X.ERR_DEPRECATED=`ERR_DEPRECATED`,X.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,X.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,X.ERR_CANCELED=`ERR_CANCELED`,X.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,X.ERR_INVALID_URL=`ERR_INVALID_URL`,X.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function Sd(e){return Y.isPlainObject(e)||Y.isArray(e)}function Cd(e){return Y.endsWith(e,`[]`)?e.slice(0,-2):e}function wd(e,t,n){return e?e.concat(t).map(function(e,t){return e=Cd(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function Td(e){return Y.isArray(e)&&!e.some(Sd)}var Ed=Y.toFlatObject(Y,{},null,function(e){return/^is[A-Z]/.test(e)});function Dd(e,t,n){if(!Y.isObject(e))throw TypeError(`target must be an object`);t||=new FormData;let r=(e,t)=>{let r=Y.getSafeProp(n,e);return Y.isUndefined(r)?t:r},i=r(`metaTokens`,!0),a=r(`visitor`)||h,o=r(`dots`,!1),s=r(`indexes`,!1),c=r(`Blob`)||typeof Blob<`u`&&Blob,l=r(`maxDepth`,100),u=c&&Y.isSpecCompliantForm(t),d=[];if(!Y.isFunction(a))throw TypeError(`visitor must be a function`);function f(e){if(e===null)return``;if(Y.isDate(e))return e.toISOString();if(Y.isBoolean(e))return e.toString();if(!u&&Y.isBlob(e))throw new X(`Blob is not supported. Use a Buffer instead.`);if(Y.isArrayBuffer(e)||Y.isTypedArray(e)){if(u&&typeof c==`function`)return new c([e]);throw new X(`Blob is not supported. Use a Buffer instead.`,X.ERR_NOT_SUPPORT)}return e}function p(e){if(e>l)throw new X(`Object is too deeply nested (`+e+` levels). Max depth: `+l,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function m(e,t){if(l===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!Y.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),p(t+n.length-1),r})}function h(e,n,r){let a=e;if(Y.isReactNative(t)&&Y.isReactNativeBlob(e))return t.append(wd(r,n,o),f(e)),!1;if(e&&!r&&typeof e==`object`){if(Y.endsWith(n,`{}`))n=i?n:n.slice(0,-2),e=m(e,1);else if(Y.isArray(e)&&Td(e)||(Y.isFileList(e)||Y.endsWith(n,`[]`))&&(a=Y.toArray(e)))return n=Cd(n),a.forEach(function(e,r){!(Y.isUndefined(e)||e===null)&&t.append(s===!0?wd([n],r,o):s===null?n:n+`[]`,f(e))}),!1}return Sd(e)?!0:(t.append(wd(r,n,o),f(e)),!1)}let g=Object.assign(Ed,{defaultVisitor:h,convertValue:f,isVisitable:Sd});function _(e,n,r=0){if(!Y.isUndefined(e)){if(p(r),d.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));d.push(e),Y.forEach(e,function(e,i){(!(Y.isUndefined(e)||e===null)&&a.call(t,e,Y.isString(i)?i.trim():i,n,g))===!0&&_(e,n?n.concat(i):[i],r+1)}),d.pop()}}if(!Y.isObject(e))throw TypeError(`data must be an object`);return _(e),t}function Od(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function kd(e,t){this._pairs=[],e&&Dd(e,this,t)}var Ad=kd.prototype;Ad.append=function(e,t){this._pairs.push([e,t])},Ad.toString=function(e){let t=e?t=>e.call(this,t,Od):Od;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function jd(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function Md(e,t,n){if(!t)return e;e||=``;let r=Y.isFunction(n)?{serialize:n}:n,i=Y.getSafeProp(r,`encode`)||jd,a=Y.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):Y.isURLSearchParams(t)?t.toString():new kd(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var Nd=Symbol(`internals`);function Pd(e){return e?e.length:0}function Fd(e){if(e)for(;e.length&&e[e.length-1]===null;)e.pop()}function Id(e,t){let n=e.handlers,r=Pd(n);n===t.handlersRef?r!==t.handlersLength&&(r?t.handlerEntries.forEach(function(e,r){n[e.index]!==e.handler&&t.handlerEntries.delete(r)}):t.handlerEntries.clear()):(t.handlersRef=n,t.handlerEntries.clear()),t.handlersLength=r}var Ld=class{constructor(){this.handlers=[],this[Nd]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,t,n){let r={fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null},i=this[Nd];this.handlers??=[],Id(this,i);let a=i.nextId++;return this.handlers.push(r),i.handlerEntries.set(a,{handler:r,index:this.handlers.length-1}),i.handlersLength=this.handlers.length,a}eject(e){let t=this[Nd];Id(this,t);let n=t.handlerEntries.get(e);if(n){if(t.handlerEntries.delete(e),this.handlers[n.index]!==n.handler)return;this.handlers[n.index]=null,t.iterationDepth||(Fd(this.handlers),t.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Id(this,this[Nd]))}forEach(e){let t=this[Nd];Id(this,t),t.iterationDepth++;try{Y.forEach(this.handlers,function(t){t!==null&&e(t)})}finally{--t.iterationDepth||(Id(this,t),Fd(this.handlers),t.handlersLength=Pd(this.handlers))}}},Rd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},zd={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:kd,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Bd=t({hasBrowserEnv:()=>Vd,hasStandardBrowserEnv:()=>Ud,hasStandardBrowserWebWorkerEnv:()=>Wd,navigator:()=>Hd,origin:()=>Gd}),Vd=typeof window<`u`&&typeof document<`u`,Hd=typeof navigator==`object`&&navigator||void 0,Ud=Vd&&(!Hd||[`ReactNative`,`NativeScript`,`NS`].indexOf(Hd.product)<0),Wd=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,Gd=Vd&&window.location.href||`http://localhost`,Z={...Bd,...zd};function Kd(e,t){return Dd(e,new Z.classes.URLSearchParams,{visitor:function(e,t,n,r){return Z.isNode&&Y.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var qd=100;function Jd(e){if(e>qd)throw new X(`FormData field is too deeply nested (`+e+` levels). Max depth: `+qd,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Yd(e){let t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g,r;for(;(r=n.exec(e))!==null;)Jd(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Xd(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&Y.isArray(r)?r.length:a,s?(Y.hasOwnProp(r,a)?r[a]=Y.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!Y.hasOwnProp(r,a)||!Y.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&Y.isArray(r[a])&&(r[a]=Xd(r[a])),!o)}if(Y.isFormData(e)&&Y.isFunction(e.entries)){let n={};return Y.forEachEntry(e,(e,r)=>{t(Yd(e),r,n,0)}),n}return null}var Qd=Object.freeze([`get`,`delete`,`head`,`options`,`post`,`put`,`patch`,`purge`,`link`,`unlink`,`query`]),$d=(e,t)=>e!=null&&Y.hasOwnProp(e,t)?e[t]:void 0;function ef(e,t,n){if(Y.isString(e))try{return(t||JSON.parse)(e),Y.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var tf={transitional:Rd,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=Y.isObject(e);if(i&&Y.isHTMLForm(e)&&(e=new FormData(e)),Y.isFormData(e))return r?JSON.stringify(Zd(e)):e;if(Y.isArrayBuffer(e)||Y.isBuffer(e)||Y.isStream(e)||Y.isFile(e)||Y.isBlob(e)||Y.isReadableStream(e))return e;if(Y.isArrayBufferView(e))return e.buffer;if(Y.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=$d(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Kd(e,t).toString();if((a=Y.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=$d(this,`env`),r=n&&n.FormData;return Dd(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),ef(e)):e}],transformResponse:[function(e){let t=$d(this,`transitional`)||tf.transitional,n=t&&t.forcedJSONParsing,r=$d(this,`responseType`),i=r===`json`;if(Y.isResponse(e)||Y.isReadableStream(e))return e;if(e&&Y.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,$d(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?X.from(e,X.ERR_BAD_RESPONSE,this,null,$d(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};Y.forEach(Qd,e=>{tf.headers[e]={}});function nf(e,t){let n=this||tf,r=t||n,i=gd.from(r.headers),a=r.data;return Y.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function rf(e){return!!(e&&e.__CANCEL__)}var af=class extends X{constructor(e,t,n){super(e??`canceled`,X.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function of(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X(`Request failed with status code `+n.status,n.status>=400&&n.status<500?X.ERR_BAD_REQUEST:X.ERR_BAD_RESPONSE,n.config,n.request,n))}var sf=/[\t\n\r]/g;function cf(e){if(typeof e!=`string`)return e;let t=0;for(;t{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i),(...e)=>o(e)]}var ff=(e,t,n=3)=>{let r=0,i=uf(50,250);return df(n=>{if(!n||!Y.isNumber(n.loaded))return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=Math.max(0,o==null?a:Math.min(a,o)),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},pf=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},mf=(e,t=Y.asap)=>(...n)=>t(()=>e(...n)),hf=Z.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Z.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,gf=Z.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];Y.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),Y.isString(r)&&s.push(`path=${r}`),Y.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),Y.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n0&&e.charCodeAt(n-1)===47;)n--;return e.slice(0,n)+`/`+t.replace(/^\/+/,``)}var yf=/^https?:(?!\/\/)/i;function bf(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,t,n=``)=>`${t}${n}${_d}`)}function xf(e){let t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${_d}@`),n=t.indexOf(`#`),r=(n===-1?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${_d}`);return n===-1?r:`${r}#${bf(t.slice(n+1))}`}function Sf(e,t){if(typeof e==`string`){let n=cf(e);if(yf.test(n))throw new X(`Invalid URL ${JSON.stringify(xf(n))}: missing "//" after protocol`,X.ERR_INVALID_URL,t)}}function Cf(e,t,n,r){Sf(t,r);let i=!_f(t);return e&&(i||n===!1)?(Sf(e,r),vf(e,t)):t}var wf=e=>e instanceof gd?{...e}:e,Tf=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function Ef(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return Y.isPlainObject(e)&&Y.isPlainObject(t)?Y.merge.call({caseless:r},e,t):Y.isPlainObject(t)?Y.merge({},t):Y.isArray(t)?t.slice():t}function i(e,t,n,i){if(!Y.isUndefined(t))return r(e,t,n,i);if(!Y.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!Y.isUndefined(t))return r(void 0,t)}function o(e,t){if(!Y.isUndefined(t))return r(void 0,t);if(!Y.isUndefined(e))return r(void 0,e)}function s(n){let r=Y.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!Y.isUndefined(r)){if(Y.isPlainObject(r)){if(Y.hasOwnProp(r,n))return r[n]}else return}let i=Y.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(Y.isPlainObject(i)&&Y.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(Y.hasOwnProp(t,a))return r(n,i);if(Y.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutErrorMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(wf(e),wf(t),n,!0)};return Y.forEach(Tf({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=Y.hasOwnProp(l,r)?l[r]:i,o=a(Y.hasOwnProp(e,r)?e[r]:void 0,Y.hasOwnProp(t,r)?t[r]:void 0,r);Y.isUndefined(o)&&a!==c||(n[r]=o)}),Y.hasOwnProp(t,`validateStatus`)&&Y.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(Y.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var Df=[`content-type`,`content-length`];function Of(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{Df.includes(t.toLowerCase())&&e.set(t,n)})}var kf=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Af(e){let t=Ef({},e),n=e=>Y.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=gd.from(s),t.url=Md(Cf(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=Y.getSafeProp(c,`username`)||``,n=Y.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?kf(n):``)))}catch(t){throw X.from(t,X.ERR_BAD_OPTION_VALUE,e)}}if(Y.isFormData(r)){let e=Y.getSafeProp(r,`getHeaders`);Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv||Y.isReactNative(r)?s.setContentType(void 0):Y.isFunction(e)&&Of(s,e.call(r),n(`formDataHeaderPolicy`))}if(Z.hasStandardBrowserEnv&&(Y.isFunction(i)&&(i=i(t)),i===!0||i==null&&hf(t.url))){let e=a&&o&&gf.read(o);e&&s.set(a,e)}return t}var jf=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Af(e),i=r.data,a=gd.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p,m;function h(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let g=new XMLHttpRequest;g.open(r.method.toUpperCase(),r.url,!0),g.timeout=r.timeout;function _(i){if(!g)return;if(g.status===0&&(lf(cf(r.url))||lf(Z.origin))!==`file`&&!(g.responseURL&&g.responseURL.startsWith(`file:`))){n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),g=null;return}try{i?m&&m(i):p&&p()}catch(e){setTimeout(()=>{throw e})}if(!g)return;let a=gd.from(`getAllResponseHeaders`in g&&g.getAllResponseHeaders());of(function(e){t(e),h()},function(e){n(e),h()},{data:!o||o===`text`||o===`json`?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:a,config:e,request:g}),g=null}`onloadend`in g?g.onloadend=_:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith(`file:`))||setTimeout(_)},g.onabort=function(){g&&=(n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),null)},g.onerror=function(t){let r=new X(t&&t.message?t.message:`Network Error`,X.ERR_NETWORK,e,g);r.event=t||null,n(r),h(),g=null},g.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Rd;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new X(t,i.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,g)),h(),g=null},i===void 0&&a.setContentType(null),`setRequestHeader`in g&&Y.forEach(rd(a),function(e,t){g.setRequestHeader(t,e)}),Y.isUndefined(r.withCredentials)||(g.withCredentials=!!r.withCredentials),o&&o!==`json`&&(g.responseType=r.responseType),c&&([d,p,m]=ff(c,!0),g.addEventListener(`progress`,d)),s&&g.upload&&([u,f]=ff(s),g.upload.addEventListener(`progress`,u),g.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{g&&=(n(!t||t.type?new af(null,e,g):t),g.abort(),h(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let v=lf(r.url);if(v&&!Z.protocols.includes(v)){n(new X(`Unsupported protocol `+v+`:`,X.ERR_BAD_REQUEST,e)),h();return}g.send(i||null)})},Mf=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new af(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new X(`timeout of ${t}ms exceeded`,X.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>{if(!r){if(e.aborted){i.call(e);return}e.addEventListener(`abort`,i,{once:!0})}});let{signal:s}=n;return s.unsubscribe=()=>Y.asap(o),s},Nf=function*(e,t){let n=e.byteLength;if(!t||n{let i=Pf(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},Lf=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Rf=(e,t,n)=>t+2e<=57?e-48:(e&223)-55,Bf=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,Vf=e=>e===9||e===10||e===12||e===13||e===32,Hf=e=>{let t=Math.floor(e/4),n=e%4;return t*3+(n===2?1:n===3?2:0)},Uf=e=>{let t=e.length,n=0;return t>0&&e.charCodeAt(t-1)===61&&(n++,t>1&&e.charCodeAt(t-2)===61&&n++),Math.floor((t-n)*3/4)},Wf=e=>{let t=e.length,n=0,r=0,i=!1;for(let a=0;a0){i=!0;continue}n++}}return i||r>2||r>0&&(n+r)%4!=0||n%4==1?Uf(e):Hf(n)},Gf=(e,t)=>{if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let n=e.indexOf(`,`);if(n<0)return 0;let r=e.slice(5,n),i=e.slice(n+1);if(/;base64/i.test(r))return t(i);let a=0;for(let e=0,t=i.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(a+=4,e++):a+=3}else a+=3}return a};function Kf(e){let t=typeof e==`string`?e.indexOf(`#`):-1;return Gf(t===-1?e:e.slice(0,t),Wf)}var qf=`1.20.0`,Jf=65536,Yf={cache:`default`,redirect:`follow`,referrer:`about:client`,referrerPolicy:``,mode:`cors`,integrity:``,keepalive:!1,priority:`auto`,window:null},{isFunction:Xf}=Y,Zf=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),Qf=e=>{if(!Y.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},$f=(e,...t)=>{try{return!!e(...t)}catch{return!1}},ep=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},tp=e=>{let t=Y.global!==void 0&&Y.global!==null?Y.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=Y.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Xf(i):typeof fetch==`function`,c=Xf(a),l=Xf(o);if(!s)return!1;let u=s&&Xf(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&$f(()=>{let e=!1,t=new a(Z.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&$f(()=>Y.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(Y.isBlob(e))return e.size;if(Y.isSpecCompliantForm(e))return(await new a(Z.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(Y.isArrayBufferView(e)||Y.isArrayBuffer(e))return e.byteLength;if(Y.isURLSearchParams(e)&&(e+=``),Y.isString(e))return(await d(e)).byteLength},g=async(e,t)=>Y.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:ee,maxRedirects:te}=Af(e),ne=Y.isNumber(w)&&w>-1,re=Y.isNumber(ee)&&ee>-1,ie=t=>Y.hasOwnProp(e,t)?e[t]:void 0,T=i||fetch;b=b?(b+``).toLowerCase():`text`;let E=Mf([l,d&&d.toAbortSignal()],_),D=null,O=E&&E.unsubscribe&&(()=>{E.unsubscribe()}),k,A=null,ae=()=>new X(`Request body larger than maxBodyLength limit`,X.ERR_BAD_REQUEST,e,D);try{let i,l=ie(`auth`);if(l&&(i={username:Y.getSafeProp(l,`username`)||``,password:Y.getSafeProp(l,`password`)||``}),ep(t)){let e=new URL(t,Z.origin);!i&&(e.username||e.password)&&(i={username:Qf(e.username),password:Qf(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(Zf((i.username||``)+`:`+(i.password||``))))),ne&&typeof t==`string`&&t.startsWith(`data:`)&&Kf(t)>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);if(re&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(k=e,e>ee))throw ae()}let d=re&&(Y.isReadableStream(s)||Y.isStream(s)),_=(e,t,n)=>If(e,Jf,e=>{if(re&&e>ee)throw A=ae();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(k??=await g(x,s),k!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(Y.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&pf(k,ff(mf(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new X(`Stream request bodies are not supported by the current fetch implementation`,X.ERR_NOT_SUPPORT,e,D);Y.isString(S)||(S=S?`include`:`omit`);let oe=c&&`credentials`in a.prototype;if(Y.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+qf,!1);let j=C==null?C:Object.assign(Object.create(null),C);j&&(delete j.body,delete j.headers,delete j.method,delete j.signal,delete j.duplex,delete j.credentials);let se=Object.assign(Object.create(null),j,{signal:E,method:n.toUpperCase(),headers:rd(x.normalize()),body:s,duplex:`half`,credentials:oe?S:void 0});c&&(Y.forEach(Yf,(e,t)=>{se[t]===void 0&&(se[t]=e)}),se.signal===void 0&&(se.signal=null),se.body===void 0&&(se.body=null)),te===0&&(se.redirect=`manual`,j&&(j.redirect=`manual`)),D=c&&new a(t,se);let M=await(c?T(D,j):T(t,se)),ce=gd.from(M.headers);if(ne){let t=Y.toFiniteNumber(ce.getContentLength());if(t!=null&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}let le=p&&(b===`stream`||b===`response`);if(p&&M.body&&(v||ne||le&&O)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=M[e]});let n=Y.toFiniteNumber(ce.getContentLength()),[r,i]=v&&pf(n,ff(mf(v),!0))||[],a=0;M=new o(If(M.body,Jf,t=>{if(ne&&(a=t,a>w))throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);r&&r(t)},()=>{i&&i(),O&&O()}),t)}b||=`text`;let ue=await m[Y.findKey(m,b)||`text`](M,e);if(ne&&!p&&!le){let t;if(ue!=null&&(typeof ue.byteLength==`number`?t=ue.byteLength:typeof ue.size==`number`?t=ue.size:typeof ue==`string`&&(t=typeof r==`function`?new r().encode(ue).byteLength:ue.length)),typeof t==`number`&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}return!le&&O&&O(),await new Promise((t,n)=>{of(t,n,{data:ue,headers:gd.from(M.headers),status:M.status,statusText:M.statusText,config:e,request:D})})}catch(t){if(O&&O(),E&&E.aborted&&E.reason instanceof X){let n=E.reason;throw n.config=e,D&&(n.request=D),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(A)throw D&&!A.request&&(A.request=D),A;if(t instanceof X)throw D&&!t.request&&(t.request=D),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new X(`Network Error`,X.ERR_NETWORK,e,D,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw X.from(t,t&&t.code,e,D,t&&t.response)}}},np=new Map,rp=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=np;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:tp(t)),l=c;return c};rp();var ip={http:null,xhr:jf,fetch:{get:rp}};Y.forEach(ip,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var ap=e=>`- ${e}`,op=e=>Y.isFunction(e)||e===null||e===!1;function sp(e,t){e=Y.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new X(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : -`+e.map(ap).join(` -`):` `+ap(e[0]):`as no adapter specified`),X.ERR_NOT_SUPPORT)}return i}var cp={getAdapter:sp,adapters:ip};function lp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new af(null,e)}function up(e){let t=Y.toSafeFlatObject(e);return lp(t),t.headers=gd.from(Y.getSafeProp(t,`headers`)),t.data=nf.call(t,t.transformRequest),[`post`,`put`,`patch`].indexOf(t.method)!==-1&&t.headers.setContentType(`application/x-www-form-urlencoded`,!1),cp.getAdapter(t.adapter||tf.adapter,t)(t).then(function(e){lp(t),t.response=e;try{e.data=nf.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=gd.from(e.headers),e},function(e){if(!rf(e)&&(lp(t),e&&e.response)){t.response=e.response;try{e.response.data=nf.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=gd.from(e.response.headers)}return Promise.reject(e)})}var dp={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{dp[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var fp={};dp.transitional=function(e,t,n){function r(e,t){return`[Axios v`+qf+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new X(r(i,` has been removed`+(t?` in `+t:``)),X.ERR_DEPRECATED);return t&&!fp[i]&&(fp[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},dp.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function pp(e,t,n){if(typeof e!=`object`||!e)throw new X(`options must be an object`,X.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new X(`option `+a+` must be `+n,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X(`Unknown option `+a,X.ERR_BAD_OPTION)}}var mp={assertOptions:pp,validators:dp},hp=mp.validators,gp=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Ld,response:new Ld}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error)try{let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=t.stack,r=``;if(typeof n==`string`){let e=n.indexOf(` -`);r=e===-1?``:n.slice(e+1)}if(!e.stack)e.stack=r;else if(r){let t=r.indexOf(` -`),n=t===-1?-1:r.indexOf(` -`,t+1),i=n===-1?``:r.slice(n+1);String(e.stack).endsWith(i)||(e.stack+=` -`+r)}}catch{}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Ef(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&mp.assertOptions(n,{silentJSONParsing:hp.transitional(hp.boolean),forcedJSONParsing:hp.transitional(hp.boolean),clarifyTimeoutError:hp.transitional(hp.boolean),legacyInterceptorReqResOrdering:hp.transitional(hp.boolean),advertiseZstdAcceptEncoding:hp.transitional(hp.boolean),validateStatusUndefinedResolves:hp.transitional(hp.boolean)},!1),r!=null&&(Y.isFunction(r)?t.paramsSerializer={serialize:r}:mp.assertOptions(r,{encode:hp.function,serialize:hp.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),mp.assertOptions(t,{baseUrl:hp.spelling(`baseURL`),withXsrfToken:hp.spelling(`withXSRFToken`)},!0),t.method=(Y.getSafeProp(t,`method`)||Y.getSafeProp(this.defaults,`method`)||`get`).toLowerCase();let a=i&&Y.merge(i.common,i[t.method]);i&&Y.forEach(Qd.concat(`common`),e=>{delete i[e]}),t.headers=gd.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Rd;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[up.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);uup.call(this,f)))}catch(e){l=Promise.reject(e)}break}}if(!l)try{l=up.call(this,f)}catch(e){l=Promise.reject(e)}for(u=0,d=c.length;u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new af(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function vp(e){return function(t){return e.apply(null,t)}}function yp(e){return Y.isObject(e)&&e.isAxiosError===!0}var bp={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(bp).forEach(([e,t])=>{bp[t]===void 0&&(bp[t]=e)});function xp(e){let t=new gp(e),n=Ol(gp.prototype.request,t);return Y.extend(n,gp.prototype,t,{allOwnKeys:!0}),Y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return xp(Ef(e,t))},n}var Q=xp(tf);Q.Axios=gp,Q.CanceledError=af,Q.CancelToken=_p,Q.isCancel=rf,Q.VERSION=qf,Q.toFormData=Dd,Q.AxiosError=X,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=vp,Q.isAxiosError=yp,Q.mergeConfig=Ef,Q.AxiosHeaders=gd,Q.formToJSON=e=>Zd(Y.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=cp.getAdapter,Q.HttpStatusCode=bp,Q.default=Q;var $=Q.create({timeout:1e4});async function Sp(e,t){let{data:n}=await $.post(`/chat`,{query:e,domain_group:t});return n}async function Cp(e){let{data:t}=await $.get(`/runs/${e}/status`);return t}function wp(e){let t=new EventSource(`/runs/${e}/stream`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);n.type===`workspace`?e.onWorkspace(n.workspace):n.type===`status`?(e.onStatus(n.value),(n.value===`done`||n.value===`failed`)&&e.onDone()):n.type===`error`&&e.onError(n.detail)}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function Tp(e){let t=e?{status:e}:{},{data:n}=await $.get(`/review/queue`,{params:t});return n}async function Ep(e,t,n){let{data:r}=await $.post(`/review/${e}`,null,{params:{verdict:t,correction:n}});return r}async function Dp(){let{data:e}=await $.get(`/api/metrics`);return e}async function Op(){let{data:e}=await $.get(`/config`);return e}async function kp(e){let{data:t}=await $.put(`/config`,e);return t}async function Ap(){let{data:e}=await $.post(`/config/reset`);return e}async function jp(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/models`,{params:r});return i}async function Mp(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/ping`,{params:r});return i}async function Np(){let{data:e}=await $.get(`/llama/status`);return e}async function Pp(){let{data:e}=await $.get(`/llama/models`);return e.models}async function Fp(e,t=8901,n=99,r=4096){let{data:i}=await $.post(`/llama/start`,null,{params:{model:e,port:t,ngl:n,ctx:r}});return i}async function Ip(){let{data:e}=await $.post(`/llama/stop`);return e}async function Lp(e,t){let n={url:e};t&&(n.dest=t);let{data:r}=await $.post(`/llama/download`,null,{params:n});return r}function Rp(e){let t=new EventSource(`/llama/download/stream?url=${encodeURIComponent(e)}`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);e.onProgress(n),n.done&&e.onDone(n)}),t.addEventListener(`error`,()=>{t.close()})},close(){t.close()}}}async function zp(){let{data:e}=await $.get(`/pool`);return e}async function Bp(e){let{data:t}=await $.post(`/pool`,e);return t}async function Vp(e){let{data:t}=await $.delete(`/pool/${e}`);return t}async function Hp(e){let{data:t}=await $.put(`/pool/roles`,e);return t}async function Up(e){let{data:t}=await $.post(`/pool/${e}/test`);return t}async function Wp(e){let{data:t}=await $.get(`/pool/${e}/models`);return t}async function Gp(e,t,n,r){let{data:i}=await $.post(`/agent`,{task:e,pool_id:t||void 0,workspace:n||void 0,executor_pool_id:r||void 0});return i}async function Kp(e){let{data:t}=await $.get(`/agent/${e}/status`);return t}async function qp(e=``,t=``){let{data:n}=await $.get(`/agent/workspace`,{params:{...e?{path:e}:{},...t?{root:t}:{}}});return n}async function Jp(e,t=``){let{data:n}=await $.get(`/agent/file`,{params:{path:e,...t?{root:t}:{}}});return n}async function Yp(e=``){let{data:t}=await $.get(`/agent/fs`,{params:e?{path:e}:{}});return t}async function Xp(){let{data:e}=await $.get(`/agent/workspaces`);return e}async function Zp(e,t=!1){let{data:n}=await $.post(`/agent/workspaces`,{path:e,create:t});return n}function Qp(e){let t=new EventSource(`/agent/${e}/stream`),n=!1;return{subscribe(e){t.addEventListener(`message`,r=>{if(n)return;let i=JSON.parse(r.data);e.onEvent(i),i.type===`final`&&(n=!0,t.close(),e.onDone())}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function $p(e,{timeout:t=6e4,interval:n=500}={}){let r=Date.now();for(;Date.now()-rsetTimeout(e,n))}throw Error(`poll timeout`)}var em=ys(`chat`,()=>{let e=R([]),t=R(null),n=()=>e.value.find(e=>e.requestId===t.value)??null;async function r(n){let r=await Sp(n),i={requestId:r.request_id,query:n,init:r,status:null,workspace:null,error:null};return e.value.unshift(i),t.value=r.request_id,i}async function i(t){let n=await Cp(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}async function a(t){let n=await $p(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}function o(t,n){let r=e.value.find(e=>e.requestId===t);r&&(r.workspace=n)}function s(e){t.value=e}return{sessions:e,currentId:t,current:n,sendQuery:r,pollStatus:i,waitForDone:a,updateWorkspace:o,setCurrent:s}}),tm={class:`chat-view`},nm={class:`sidebar`},rm={class:`session-list`},im=[`onClick`],am={class:`s-query`},om={class:`main`},sm={key:0,class:`empty`},cm={class:`user-msg`},lm={class:`status-bar`},um={key:0,class:`badge pending`},dm={key:1,class:`badge running`},fm={key:2,class:`badge done`},pm={key:3,class:`badge failed`},mm={key:4,class:`route-path`},hm={key:0,class:`ws-meta`},gm={key:1,class:`assistant-msg`},_m={key:2,class:`ws-preview`},vm={key:0,class:`brief-block`},ym={class:`tags`},bm={key:1,class:`plan-list`},xm={class:`step-id`},Sm={key:0,class:`deps`},Cm={key:2,class:`progress-list`},wm={key:3,class:`error-msg`},Tm=[`disabled`],Em=[`disabled`],Dm=Qn({__name:`ChatView`,setup(e){let t=em(),n=R(``),r=R(!1),i=G(()=>t.current()),a=G(()=>i.value?.status?.status??`pending`),o=G(()=>i.value?.workspace),s=G(()=>i.value?.status?.response??null),c=null;function l(e){c?.close(),c=wp(e),c.subscribe({onWorkspace(n){t.updateWorkspace(e,n)},onStatus(n){t.pollStatus(e)},onError(n){let r=t.sessions.find(t=>t.requestId===e);r&&(r.error=n)},onDone(){t.pollStatus(e)}})}Hn(()=>t.currentId,e=>{e&&(l(e),i.value?.status?.status===`done`&&t.pollStatus(e))},{immediate:!0});async function u(){if(!n.value.trim()||r.value)return;let e=n.value.trim();n.value=``,r.value=!0;try{l((await t.sendQuery(e)).requestId)}finally{r.value=!1}}return(e,i)=>(V(),H(`div`,tm,[U(`aside`,nm,[i[1]||=U(`h3`,null,`会话记录`,-1),U(`ul`,rm,[(V(!0),H(B,null,Dr(z(t).sessions,e=>(V(),H(`li`,{key:e.requestId,class:pe([`session-item`,{active:e.requestId===z(t).currentId}]),onClick:n=>z(t).setCurrent(e.requestId)},[U(`span`,am,N(e.query.slice(0,28))+N(e.query.length>28?`…`:``),1),U(`span`,{class:pe([`s-status`,e.status?.status??`pending`])},N(e.status?.status??`pending`),3)],10,im))),128))])]),U(`main`,om,[z(t).current()?(V(),H(B,{key:1},[U(`div`,cm,[i[3]||=U(`span`,{class:`role-label`},`你`,-1),U(`p`,null,N(z(t).current().query),1)]),U(`div`,lm,[a.value===`pending`?(V(),H(`span`,um,`⏳ 排队中…`)):a.value===`running`?(V(),H(`span`,dm,` 🔄 协作中 (`+N(o.value?.meta.round??0)+`/`+N(o.value?.meta.rounds_cap??6)+`) `,1)):a.value===`done`?(V(),H(`span`,fm,`✅ 完成`)):a.value===`failed`?(V(),H(`span`,pm,`❌ 失败`)):W(``,!0),o.value?(V(),H(`span`,mm,` 路由:`+N(z(t).current().status?.route?.join(` → `)??`—`),1)):W(``,!0)]),o.value?(V(),H(`div`,hm,[U(`span`,null,`tokens: `+N(o.value.meta.api_input_tokens)+` in / `+N(o.value.meta.api_output_tokens)+` out`,1),U(`span`,null,`延迟: `+N(z(t).current().status?.latency_ms?.toFixed(0))+` ms`,1),U(`span`,null,`模型: `+N(z(t).current().status?.model_used??`—`),1)])):W(``,!0),s.value?(V(),H(`div`,gm,[i[4]||=U(`span`,{class:`role-label`},`系统`,-1),U(`pre`,null,N(s.value),1)])):W(``,!0),o.value?(V(),H(`details`,_m,[i[6]||=U(`summary`,null,`📄 交流文本预览`,-1),o.value.brief?(V(),H(`div`,vm,[i[5]||=U(`strong`,null,`Brief:`,-1),aa(` `+N(o.value.brief.goal)+` `,1),U(`span`,ym,N(o.value.brief.tags.join(`, `)),1)])):W(``,!0),o.value.plan?.length?(V(),H(`ul`,bm,[(V(!0),H(B,null,Dr(o.value.plan,e=>(V(),H(`li`,{key:e.id,class:pe(e.status)},[U(`span`,xm,N(e.id),1),U(`span`,null,N(e.task),1),e.deps.length?(V(),H(`span`,Sm,`←`+N(e.deps.join(`,`)),1)):W(``,!0)],2))),128))])):W(``,!0),o.value.progress?.length?(V(),H(`ul`,Cm,[(V(!0),H(B,null,Dr(o.value.progress,e=>(V(),H(`li`,{key:e.step,class:pe(e.status)},N(e.step)+`: `+N(e.status),3))),128))])):W(``,!0)])):W(``,!0),z(t).current().error?(V(),H(`div`,wm,N(z(t).current().error),1)):W(``,!0)],64)):(V(),H(`div`,sm,[...i[2]||=[U(`p`,null,`输入问题,开启端云协同协作之旅。`,-1),U(`p`,{class:`hint`},`结果通过 SSE 实时推送,可切换「协作」页面查看交流文本可视化。`,-1)]])),U(`form`,{class:`input-bar`,onSubmit:Fo(u,[`prevent`])},[Fn(U(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,placeholder:`输入你的问题…`,disabled:r.value,autofocus:``},null,8,Tm),[[To,n.value]]),U(`button`,{type:`submit`,disabled:r.value||!n.value.trim()},N(r.value?`发送中…`:`发送`),9,Em)],32)])]))}}),Om=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},km=Om(Dm,[[`__scopeId`,`data-v-d79f05ea`]]),Am={class:`agent-view`},jm={class:`ws-panel`},Mm={class:`ws-head`},Nm=[`disabled`],Pm=[`title`],Fm={class:`ws-list`},Im=[`onClick`],Lm={class:`ws-name`},Rm={key:0,class:`ws-size`},zm={key:0,class:`ws-empty`},Bm={key:0,class:`file-preview`},Vm={class:`fp-head`},Hm={class:`fp-name`},Um={class:`fp-body`},Wm={class:`agent-main`},Gm={class:`ws-bar`},Km=[`title`],qm={class:`shell-toggle`,title:`开启后智能体可执行 shell 命令(run_command),在工作区内运行`},Jm={class:`task-bar`},Ym=[`value`],Xm=[`value`],Zm={class:`task-bar`},Qm=[`disabled`],$m=[`disabled`],eh={key:0,class:`ev-round`},th={key:2,class:`ev-msg`},nh={class:`ev-title`},rh={key:3,class:`ev-card`},ih={class:`ev-title`},ah={class:`diff-old`},oh={class:`diff-new`},sh={key:4,class:`ev-card`},ch={class:`ev-args`},lh={key:5,class:`ev-card`},uh={class:`ev-title`},dh={class:`ev-args`},fh={class:`ev-title`},ph={class:`ev-args`},mh={key:7,class:`ev-usage`},hh={key:8,class:`ev-final`},gh={class:`ev-title`},_h={key:0,class:`ev-answer`},vh={key:1,class:`ev-error`},yh={key:0,class:`ev-round`},bh={key:1,class:`empty-hint`},xh={class:`modal`},Sh={class:`crumb`},Ch={class:`dir-list`},wh=[`onClick`],Th={key:1,class:`dir-item empty`},Eh={class:`path-row`},Dh={class:`create-toggle`},Oh={key:0,class:`recent-row`},kh=[`title`,`onClick`],Ah={key:1,class:`picker-msg`},jh={class:`modal-actions`},Mh=Om(Qn({__name:`AgentView`,setup(e){let t=R(``),n=R(!1),r=R([]),i=R(null),a=R(``),o=R([]),s=R(``),c=R([]),l=R(!1),u=R(``),d=R({ok:!0,path:``,parent:``,dirs:[]}),f=R(``),p=R(!1),m=R(!1),h=R(``),g=R([]),_=R(!1),v=R(null),y=R(null),b=null,x=G(()=>o.value.filter(e=>e.enabled)),S=G(()=>o.value.filter(e=>e.enabled&&e.backend!==`mock`).sort((e,t)=>(e.backend===`llama_server`?-1:0)-(t.backend===`llama_server`?-1:0)));function C(e){let t=e.model?` · ${e.model}`:``;return e.phase===`plan`?`🧠 规划者 · 拆解任务${t}`:e.phase===`execute`?`🔧 执行者 · 工具执行(第 ${e.handoff} 轮交接)${t}`:`🔍 规划者 · 审查裁决${t}`}let w=G(()=>i.value?.response||``),ee=G(()=>{if(n.value)return`● 运行中`;let e=i.value;return e?e.state===`done`?`✅ 已完成`:e.state===`failed`?`❌ 失败`+(e.error?`:`+e.error:``):``:``}),te=G(()=>n.value?`st-running`:i.value?.state===`done`?`st-ok`:`st-err`);function ne(e){return{max_rounds:`轮次达上限`,token_cap:`token 熔断`,error:`出错`}[e||``]||e}function re(e){return JSON.stringify(e,null,2)??``}function ie(e){return(e||``).length>600?e.slice(0,600)+`…`:e||``}function T(e){return e==null?``:e>=1e6?(e/1e6).toFixed(1)+` MB`:e>=1e3?(e/1e3).toFixed(1)+` KB`:e+` B`}function E(e){if(!e)return``;let t=e.replace(/[\\/]+$/,``).split(/[\\/]/);return t[t.length-1]||e}function D(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(`\\`)||e.endsWith(`/`)?e+t:e+n+t}function O(){Sn(()=>y.value?.scrollTo({top:y.value.scrollHeight}))}async function k(){_.value=!0;try{let e=await qp(``,s.value);g.value=e.entries||[]}catch{g.value=[]}finally{_.value=!1}}async function A(e){try{let t=await Jp(e,s.value);t.ok&&(v.value={path:e,content:t.content,truncated:t.truncated})}catch{}}async function ae(){l.value=!0,u.value=``,f.value=s.value;try{d.value=await Yp(s.value&&``)}catch{}}async function oe(e){try{let t=await Yp(e);t.ok?(d.value=t,f.value=t.path):u.value=t.error||`路径不可用`}catch{u.value=`浏览失败`}}async function j(e){if(e=(e||``).trim(),!e){u.value=`请先选择或输入目录路径`;return}try{let t=await Zp(e,p.value);s.value=t.current,c.value=t.recent,l.value=!1,k()}catch(e){u.value=e?.response?.data?.detail||e?.message||String(e)}}async function se(){try{await kp({agent:{allow_shell:m.value}})}catch{m.value=!m.value}}async function M(){if(!(!t.value.trim()||n.value)){n.value=!0,r.value=[],i.value=null;try{let e=await Gp(t.value.trim(),a.value,s.value,h.value);e.workspace&&(s.value=e.workspace),b=Qp(e.request_id),b.subscribe({onEvent:e=>{r.value.push(e),O()},onDone:async()=>{n.value=!1;try{i.value=await Kp(e.request_id)}catch{}k()}})}catch(e){n.value=!1,i.value={state:`failed`,error:e?.response?.data?.detail||e?.message||String(e)}}}}return pr(async()=>{k();try{let[e,t]=await Promise.all([zp(),Xp()]);o.value=e.entries,a.value=e.roles.agent||``,s.value=t.current||``,c.value=t.recent||[],k()}catch{}}),(e,i)=>(V(),H(`div`,Am,[U(`aside`,jm,[U(`div`,Mm,[i[11]||=U(`h3`,null,`📁 工作区`,-1),U(`button`,{class:`btn-refresh`,disabled:_.value,onClick:k},N(_.value?`…`:`🔄`),9,Nm)]),U(`div`,{class:`ws-root`,title:s.value},N(E(s.value)),9,Pm),U(`ul`,Fm,[(V(!0),H(B,null,Dr(g.value,e=>(V(),H(`li`,{key:e.name,class:pe({dir:e.type===`dir`}),onClick:t=>e.type===`file`&&A(e.name)},[U(`span`,Lm,N(e.name),1),e.type===`file`?(V(),H(`span`,Rm,N(T(e.size)),1)):W(``,!0)],10,Im))),128)),!g.value.length&&!_.value?(V(),H(`li`,zm,`(空)智能体读写的文件会出现在这里`)):W(``,!0)]),v.value?(V(),H(`div`,Bm,[U(`div`,Vm,[U(`span`,Hm,N(v.value.path),1),U(`button`,{class:`btn-refresh`,onClick:i[0]||=e=>v.value=null},`✕`)]),U(`pre`,Um,[aa(N(v.value.content),1),v.value.truncated?(V(),H(B,{key:0},[aa(`…(已截断)`)],64)):W(``,!0)])])):W(``,!0)]),U(`main`,Wm,[i[18]||=U(`header`,{class:`agent-head`},[U(`h2`,null,`🤖 智能体`),U(`p`,{class:`sub`},`像编程助手一样操作你选择的工作目录:列目录 / 读 / 写 / 精确编辑 / 搜索 / 执行命令,全程实时可视化。`)],-1),U(`div`,Gm,[U(`span`,{class:`ws-current`,title:s.value},`📁 `+N(E(s.value)||`未选择`),9,Km),U(`button`,{class:`btn-refresh`,onClick:ae},`选择目录`),U(`label`,qm,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":i[1]||=e=>m.value=e,onChange:se},null,544),[[Eo,m.value]]),i[12]||=aa(` 允许执行命令 `,-1)])]),U(`div`,Jm,[Fn(U(`select`,{"onUpdate:modelValue":i[2]||=e=>a.value=e,class:`model-select`},[i[13]||=U(`option`,{value:``},`默认模型(模型池 Agent 角色 / Architect 设置)`,-1),(V(!0),H(B,null,Dr(x.value,e=>(V(),H(`option`,{key:e.id,value:e.id},N(e.name)+`(`+N(e.model)+`)`,9,Ym))),128))],512),[[Oo,a.value]]),Fn(U(`select`,{"onUpdate:modelValue":i[3]||=e=>h.value=e,class:`model-select executor-select`,title:`两级模式:大模型拆解/审查,本地小模型执行工具轮`},[i[14]||=U(`option`,{value:``},`单模型模式(规划者全程包办)`,-1),(V(!0),H(B,null,Dr(S.value,e=>(V(),H(`option`,{key:e.id,value:e.id},` 🔧 执行者:`+N(e.name)+`(`+N(e.model)+`) `,9,Xm))),128))],512),[[Oo,h.value]])]),U(`div`,Zm,[Fn(U(`textarea`,{"onUpdate:modelValue":i[4]||=e=>t.value=e,class:`task-input`,rows:`3`,placeholder:`给智能体一个任务,例如:浏览这个项目,找到入口文件并在 README 里补充运行说明`,disabled:n.value},null,8,Qm),[[To,t.value]]),U(`button`,{class:`btn-run`,disabled:n.value||!t.value.trim(),onClick:M},N(n.value?`运行中…`:`▶ 运行`),9,$m)]),ee.value?(V(),H(`div`,{key:0,class:pe([`status-line`,te.value])},N(ee.value),3)):W(``,!0),U(`div`,{class:`timeline`,ref_key:`timelineEl`,ref:y},[(V(!0),H(B,null,Dr(r.value,(e,t)=>(V(),H(B,{key:t},[e.type===`round`?(V(),H(`div`,eh,`— 第 `+N(e.round)+` 轮 —`,1)):e.type===`phase`?(V(),H(`div`,{key:1,class:pe([`ev-phase`,`ph-`+e.phase])},N(C(e)),3)):e.type===`message`?(V(),H(`div`,th,[U(`div`,nh,N(e.role===`planner`?`🧠 规划者`:`🔧 执行者`)+N(e.handoff?`(第 ${e.handoff} 轮交接)`:``),1),U(`pre`,{class:pe([`ev-msgbody`,e.role===`planner`?`msg-planner`:`msg-executor`])},N(e.content),3)])):e.type===`tool_call`&&e.name===`edit_file`?(V(),H(`div`,rh,[U(`div`,ih,[i[15]||=aa(`✏️ 精确编辑 `,-1),U(`b`,null,N(e.arguments?.path),1)]),U(`pre`,ah,`- `+N(e.arguments?.old_string),1),U(`pre`,oh,`+ `+N(e.arguments?.new_string),1)])):e.type===`tool_call`&&e.name===`run_command`?(V(),H(`div`,sh,[i[16]||=U(`div`,{class:`ev-title`},`⌨️ 执行命令`,-1),U(`pre`,ch,`$ `+N(e.arguments?.command),1)])):e.type===`tool_call`?(V(),H(`div`,lh,[U(`div`,uh,[i[17]||=aa(`🛠️ 调用工具 `,-1),U(`b`,null,N(e.name),1)]),U(`pre`,dh,N(re(e.arguments)),1)])):e.type===`tool_result`?(V(),H(`div`,{key:6,class:pe([`ev-card`,e.ok?`res-ok`:`res-err`])},[U(`div`,fh,N(e.ok?`✅`:`❌`)+` 结果(`+N(e.name)+`)`,1),U(`pre`,ph,N(ie(e.preview)),1)],2)):e.type===`usage`?(V(),H(`div`,mh,` tokens:`+N(e.prompt_tokens)+` 入 / `+N(e.completion_tokens)+` 出 `,1)):e.type===`final`?(V(),H(`div`,hh,[U(`div`,gh,N(e.reason===`answer`?`🏁 最终答复`:`⚠️ 结束(`+ne(e.reason)+`)`),1),w.value?(V(),H(`pre`,_h,N(w.value),1)):W(``,!0),e.error?(V(),H(`div`,vh,N(e.error),1)):W(``,!0)])):W(``,!0)],64))),128)),n.value?(V(),H(`div`,yh,`⏳ 智能体正在工作…`)):W(``,!0),!r.value.length&&!n.value?(V(),H(`div`,bh,` 选择工作目录,输入任务并运行——每一步工具调用都会实时显示在这里。 `)):W(``,!0)],512)]),l.value?(V(),H(`div`,{key:0,class:`modal-mask`,onClick:i[10]||=Fo(e=>l.value=!1,[`self`])},[U(`div`,xh,[i[21]||=U(`div`,{class:`modal-title`},`选择工作目录`,-1),U(`div`,Sh,N(d.value.path||`(此电脑 — 点击选择盘符)`),1),U(`div`,Ch,[d.value.parent?(V(),H(`div`,{key:0,class:`dir-item up`,onClick:i[5]||=e=>oe(d.value.parent)},` ↰ 上级:`+N(d.value.parent),1)):W(``,!0),(V(!0),H(B,null,Dr(d.value.dirs,e=>(V(),H(`div`,{key:e,class:`dir-item`,onClick:t=>oe(D(d.value.path,e))},` 📂 `+N(e),9,wh))),128)),d.value.dirs.length?W(``,!0):(V(),H(`div`,Th,`(无子目录——可直接点下方"打开此目录")`))]),U(`div`,Eh,[Fn(U(`input`,{"onUpdate:modelValue":i[6]||=e=>f.value=e,placeholder:`或直接输入绝对路径,如 E:\\my-project`},null,512),[[To,f.value]]),U(`label`,Dh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":i[7]||=e=>p.value=e},null,512),[[Eo,p.value]]),i[19]||=aa(` 不存在则新建 `,-1)])]),c.value.length?(V(),H(`div`,Oh,[i[20]||=U(`span`,{class:`recent-label`},`最近:`,-1),(V(!0),H(B,null,Dr(c.value,e=>(V(),H(`button`,{key:e,class:`recent-chip`,title:e,onClick:t=>j(e)},N(E(e)),9,kh))),128))])):W(``,!0),u.value?(V(),H(`div`,Ah,N(u.value),1)):W(``,!0),U(`div`,jh,[U(`button`,{class:`btn-primary`,onClick:i[8]||=e=>j(f.value.trim()||d.value.path)},` 打开此目录 `),U(`button`,{class:`btn-secondary`,onClick:i[9]||=e=>l.value=!1},`取消`)])])])):W(``,!0)]))}}),[[`__scopeId`,`data-v-70ea2751`]]),Nh=`modulepreload`,Ph=function(e){return`/static/`+e},Fh={},Ih=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ph(t,n),t=s(t),t in Fh)return;Fh[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Nh,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Lh=Dl({history:qc(`/`),routes:[{path:`/`,redirect:`/chat`},{path:`/chat`,name:`chat`,component:km},{path:`/collaboration`,name:`collaboration`,component:()=>Ih(()=>import(`./CollaborationView-BGbXWyaX.js`),__vite__mapDeps([0,1]))},{path:`/agent`,name:`agent`,component:Mh},{path:`/review`,name:`review`,component:()=>Ih(()=>import(`./ReviewView-C4zpJWvh.js`),__vite__mapDeps([2,3]))},{path:`/metrics`,name:`metrics`,component:()=>Ih(()=>import(`./MetricsView-Oto8AtT0.js`),__vite__mapDeps([4,5]))},{path:`/settings`,name:`settings`,component:()=>Ih(()=>import(`./SettingsView-CTDHQ2go.js`),__vite__mapDeps([6,7]))}]}),Rh=zo(Es);Rh.use(as()),Rh.use(Lh),Rh.mount(`#app`);export{W as A,Lt as B,wp as C,B as D,To as E,_r as F,N as G,z as H,V as I,Dr as L,aa as M,Qn as N,G as O,pr as P,Hn as R,Rp as S,Oo as T,pe as U,R as V,ce as W,Ip as _,Op as a,kp as b,zp as c,Wp as d,Tp as f,Fp as g,Hp as h,Lp as i,H as j,U as k,Pp as l,Ap as m,em as n,Np as o,Mp as p,Vp as r,Dp as s,Om as t,jp as u,Ep as v,Eo as w,Bp as x,Up as y,Fn as z}; \ No newline at end of file diff --git a/gateway/static/assets/index-CzrTgC9J.css b/gateway/static/assets/index-CzrTgC9J.css new file mode 100644 index 0000000..64495f7 --- /dev/null +++ b/gateway/static/assets/index-CzrTgC9J.css @@ -0,0 +1 @@ +.app{height:100%;display:flex}.side{background:var(--c-side-bg);border-right:1px solid var(--c-side-border);width:208px;color:var(--c-side-text);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;padding:18px 12px 14px;display:flex}.brand{align-items:center;gap:10px;margin-bottom:12px;padding:4px 8px 16px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--ds-blue-400), var(--ds-blue-500));border-radius:11px;place-items:center;width:38px;height:38px;font-size:20px;display:grid;box-shadow:0 3px 10px #4176e659}.brand-text{flex-direction:column;line-height:1.3;display:flex}.brand-text b{color:var(--c-text);letter-spacing:.5px;font-size:15px}.brand-text span{color:var(--c-caption);font-size:11px}.nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{color:var(--c-side-text);transition:background .15s var(--ds-ease), color .15s var(--ds-ease);border-radius:9px;align-items:center;gap:11px;padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--c-side-hover);color:var(--c-text)}.nav-item.router-link-active{background:var(--c-side-active);color:var(--c-side-text-active);font-weight:600}.nav-item.router-link-active:before{content:"";background:var(--c-accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:7px;bottom:7px;left:-12px}.nav-icon{background:var(--c-hover);border-radius:7px;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.nav-item.router-link-active .nav-icon{background:var(--c-primary-soft)}.side-foot{color:var(--c-caption);align-items:center;gap:7px;padding:12px 8px 2px;font-size:11px;display:flex}.foot-dot{background:var(--c-ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #22c55e99}.main-col{background:var(--c-surface);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.chat-view[data-v-d79f05ea]{gap:0;height:100%;display:flex}.sidebar[data-v-d79f05ea]{background:var(--c-bg);border-right:1px solid #e5e7eb;flex-direction:column;width:240px;display:flex;overflow:hidden}.sidebar h3[data-v-d79f05ea]{color:#6b7280;border-bottom:1px solid #e5e7eb;margin:0;padding:12px 16px;font-size:14px}.session-list[data-v-d79f05ea]{flex:1;margin:0;padding:8px;list-style:none;overflow-y:auto}.session-item[data-v-d79f05ea]{cursor:pointer;border-radius:6px;flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px;font-size:13px;display:flex}.session-item[data-v-d79f05ea]:hover{background:#e5e7eb}.session-item.active[data-v-d79f05ea]{background:var(--c-primary-tint)}.s-query[data-v-d79f05ea]{color:#111}.s-status[data-v-d79f05ea]{color:#9ca3af;font-size:11px}.s-status.done[data-v-d79f05ea]{color:#16a34a}.s-status.failed[data-v-d79f05ea]{color:#dc2626}.s-status.running[data-v-d79f05ea]{color:var(--c-primary)}.main[data-v-d79f05ea]{flex-direction:column;flex:1;gap:12px;padding:20px 24px;display:flex;overflow:hidden}.empty[data-v-d79f05ea]{color:#9ca3af;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.hint[data-v-d79f05ea]{font-size:13px}.user-msg[data-v-d79f05ea],.assistant-msg[data-v-d79f05ea]{background:#f3f4f6;border-radius:8px;gap:12px;padding:12px 16px;font-size:14px;line-height:1.6;display:flex}.assistant-msg[data-v-d79f05ea]{background:var(--c-primary-soft)}.role-label[data-v-d79f05ea]{color:#6b7280;min-width:32px;font-size:12px;font-weight:700}.user-msg pre[data-v-d79f05ea],.assistant-msg pre[data-v-d79f05ea]{white-space:pre-wrap;margin:0;font-family:inherit}.status-bar[data-v-d79f05ea]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.badge[data-v-d79f05ea]{border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}.badge.pending[data-v-d79f05ea]{color:#6b7280;background:#f3f4f6}.badge.running[data-v-d79f05ea]{background:var(--c-primary-tint);color:var(--c-primary)}.badge.done[data-v-d79f05ea]{color:#16a34a;background:#dcfce7}.badge.failed[data-v-d79f05ea]{color:#dc2626;background:#fee2e2}.route-path[data-v-d79f05ea]{color:#9ca3af;font-size:12px}.ws-meta[data-v-d79f05ea]{color:#9ca3af;gap:16px;font-size:12px;display:flex}.ws-preview[data-v-d79f05ea]{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;padding:12px;font-size:13px}.brief-block[data-v-d79f05ea]{margin-bottom:8px}.tags[data-v-d79f05ea]{color:#6b7280;margin-left:8px;font-size:12px}.plan-list[data-v-d79f05ea],.progress-list[data-v-d79f05ea]{margin:4px 0 0;padding:0;list-style:none}.plan-list li[data-v-d79f05ea],.progress-list li[data-v-d79f05ea]{gap:6px;padding:2px 0;display:flex}.step-id[data-v-d79f05ea]{color:#6b7280;min-width:48px;font-family:monospace}.deps[data-v-d79f05ea]{color:#9ca3af;font-size:12px}.done[data-v-d79f05ea]{color:#16a34a}.pending[data-v-d79f05ea]{color:#9ca3af}.running[data-v-d79f05ea]{color:var(--c-primary)}.error-msg[data-v-d79f05ea]{color:#dc2626;background:#fee2e2;border-radius:6px;padding:8px 12px;font-size:13px}.input-bar[data-v-d79f05ea]{border-top:1px solid #e5e7eb;gap:8px;margin-top:auto;padding-top:12px;display:flex}.input-bar input[data-v-d79f05ea]{border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:14px}.input-bar input[data-v-d79f05ea]:focus{border-color:var(--c-primary)}.input-bar button[data-v-d79f05ea]{background:var(--c-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px}.input-bar button[data-v-d79f05ea]:disabled{cursor:not-allowed;background:#9ca3af}.agent-view[data-v-a9e971fc]{background:var(--c-bg);height:100%;display:flex}.sess-panel[data-v-a9e971fc]{border-right:1px solid var(--c-border-soft);background:var(--c-side-bg);flex-direction:column;flex-shrink:0;gap:10px;width:224px;padding:12px 8px;display:flex}.new-sess[data-v-a9e971fc]{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer;border-radius:9px;padding:8px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.new-sess[data-v-a9e971fc]:hover{border-color:var(--c-primary);color:var(--c-primary)}.sess-list[data-v-a9e971fc]{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sess-item[data-v-a9e971fc]{cursor:pointer;border-radius:8px;padding:8px 10px;transition:background .12s}.sess-item[data-v-a9e971fc]:hover{background:var(--c-side-hover)}.sess-item.active[data-v-a9e971fc]{background:var(--c-side-active)}.sess-title[data-v-a9e971fc]{color:var(--c-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.sess-meta[data-v-a9e971fc]{color:var(--c-caption);align-items:center;gap:5px;margin-top:3px;font-size:11px;display:flex}.sess-del[data-v-a9e971fc]{color:var(--c-caption);opacity:0;cursor:pointer;border-radius:4px;margin-left:auto;padding:0 3px}.sess-item:hover .sess-del[data-v-a9e971fc]{opacity:1}.sess-del[data-v-a9e971fc]:hover{color:var(--c-err);background:var(--c-err-soft)}.sess-empty[data-v-a9e971fc]{color:var(--c-caption);text-align:center;padding:20px 0;font-size:12px}.chat-col[data-v-a9e971fc]{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.hero[data-v-a9e971fc]{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:30px;display:flex}.hero-logo[data-v-a9e971fc]{background:linear-gradient(135deg, var(--ds-blue-400), var(--ds-blue-500));border-radius:16px;place-items:center;width:56px;height:56px;margin-bottom:4px;font-size:28px;display:grid;box-shadow:0 6px 20px #4176e659}.hero h2[data-v-a9e971fc]{font-size:20px}.hero p[data-v-a9e971fc]{color:var(--c-text-2);max-width:460px;font-size:13.5px}.hero-tips[data-v-a9e971fc]{flex-direction:column;gap:8px;width:420px;max-width:90%;margin-top:14px;display:flex}.tip-chip[data-v-a9e971fc]{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-2);cursor:pointer;text-align:left;border-radius:9px;padding:9px 14px;font-size:13px;transition:border-color .15s,color .15s}.tip-chip[data-v-a9e971fc]:hover{border-color:var(--c-primary);color:var(--c-primary)}.stream[data-v-a9e971fc]{flex:1;overflow-y:auto}.stream-inner[data-v-a9e971fc]{flex-direction:column;gap:14px;max-width:820px;margin:0 auto;padding:24px 20px 12px;display:flex}.row.user[data-v-a9e971fc]{justify-content:flex-end;display:flex}.bubble-user[data-v-a9e971fc]{background:var(--c-primary-soft);border:1px solid var(--c-primary-tint);color:var(--c-text);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 4px;max-width:78%;padding:10px 14px;font-size:14px}.row.assistant[data-v-a9e971fc]{display:flex}.bubble-ai[data-v-a9e971fc]{background:var(--c-surface);border:1px solid var(--c-border-soft);max-width:88%;box-shadow:var(--shadow-card);border-radius:4px 14px 14px;padding:12px 16px}.ai-text[data-v-a9e971fc]{white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.65}.ai-error[data-v-a9e971fc]{color:var(--c-err);font-size:13px}.ai-running[data-v-a9e971fc]{color:var(--c-text-2);align-items:center;gap:8px;font-size:13px;display:flex}.spinner[data-v-a9e971fc]{border:2px solid var(--c-primary-tint);border-top-color:var(--c-primary);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin-a9e971fc}@keyframes spin-a9e971fc{to{transform:rotate(360deg)}}.tool-fold[data-v-a9e971fc]{border:1px solid var(--c-border-soft);background:var(--ds-neutral-bluish-50);border-radius:8px;margin-bottom:10px}.tool-fold summary[data-v-a9e971fc]{cursor:pointer;color:var(--c-text-2);-webkit-user-select:none;user-select:none;padding:7px 12px;font-size:12px}.tool-fold[open] summary[data-v-a9e971fc]{border-bottom:1px solid var(--c-border-soft)}.fold-body[data-v-a9e971fc]{flex-direction:column;gap:5px;max-height:300px;padding:8px 12px;display:flex;overflow-y:auto}.mini-phase[data-v-a9e971fc]{color:var(--c-primary);background:var(--c-primary-soft);border-radius:6px;width:fit-content;margin:4px 0;padding:3px 8px;font-size:11px;font-weight:600}.mini-msg[data-v-a9e971fc]{white-space:pre-wrap;border-radius:6px;padding:6px 9px;font-size:12px}.mini-msg.mp[data-v-a9e971fc]{background:var(--c-primary-soft);color:#1e3a8a}.mini-msg.me[data-v-a9e971fc]{background:var(--c-ok-soft);color:#14532d}.mini-row[data-v-a9e971fc]{color:var(--c-text-2);font-size:12px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mini-row.ok[data-v-a9e971fc]{color:var(--c-ok)}.mini-row.err[data-v-a9e971fc]{color:var(--c-err)}.mini-args[data-v-a9e971fc]{color:var(--c-caption);margin-left:6px}.tool-summary[data-v-a9e971fc]{color:var(--c-caption);margin-bottom:8px;font-size:12px}.composer-wrap[data-v-a9e971fc]{padding:10px 20px 16px}.composer[data-v-a9e971fc]{background:var(--c-surface);border:1px solid var(--c-border);border-radius:14px;max-width:820px;margin:0 auto;padding:8px 10px 10px;box-shadow:0 4px 20px #10182814}.composer-bar[data-v-a9e971fc]{flex-wrap:wrap;align-items:center;gap:8px;padding:2px 4px 8px;display:flex}.chip[data-v-a9e971fc]{border:1px solid var(--c-border);background:var(--ds-neutral-bluish-50);color:var(--c-text-2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:7px;align-items:center;gap:5px;max-width:260px;padding:3px 9px;font-size:12px;display:inline-flex;overflow:hidden}.chip[data-v-a9e971fc]:hover{border-color:var(--c-primary);color:var(--c-primary)}.select-chip[data-v-a9e971fc]{max-width:220px}.toggle-chip input[data-v-a9e971fc]{accent-color:var(--c-primary)}.composer-err[data-v-a9e971fc]{color:var(--c-err);margin-left:auto;font-size:12px}.composer-main[data-v-a9e971fc]{align-items:flex-end;gap:8px;display:flex}.composer-input[data-v-a9e971fc]{resize:none;background:0 0;border:none;outline:none;flex:1;max-height:160px;padding:6px 6px 2px;font-size:14px;line-height:1.5}.composer-input[data-v-a9e971fc]:focus-visible{box-shadow:none}.send-btn[data-v-a9e971fc]{background:var(--c-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:36px;height:36px;font-size:17px;transition:background .15s}.send-btn[data-v-a9e971fc]:hover:not(:disabled){background:var(--c-primary-strong)}.send-btn[data-v-a9e971fc]:disabled{background:var(--ds-neutral-bluish-200);cursor:not-allowed}.send-btn.stop[data-v-a9e971fc]{background:var(--c-err)}.modal-mask[data-v-a9e971fc]{z-index:100;background:#0f111566;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-a9e971fc]{background:var(--c-surface);width:620px;max-width:92vw;max-height:80vh;box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;padding:18px;display:flex}.modal-title[data-v-a9e971fc]{color:var(--c-text);margin-bottom:10px;font-size:16px;font-weight:700}.crumb[data-v-a9e971fc]{color:var(--c-text-2);background:var(--ds-neutral-bluish-50);border:1px solid var(--c-border-soft);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:12px;overflow:hidden}.dir-list[data-v-a9e971fc]{border:1px solid var(--c-border-soft);border-radius:6px;flex:1;min-height:200px;max-height:320px;overflow-y:auto}.dir-item[data-v-a9e971fc]{color:var(--c-text-2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:7px 12px;font-size:13px;overflow:hidden}.dir-item[data-v-a9e971fc]:hover{background:var(--c-primary-soft)}.dir-item.up[data-v-a9e971fc]{color:var(--c-primary);font-weight:500}.dir-item.empty[data-v-a9e971fc]{color:var(--c-caption);cursor:default}.dir-item.empty[data-v-a9e971fc]:hover{background:0 0}.path-row[data-v-a9e971fc]{align-items:center;gap:10px;margin-top:10px;display:flex}.path-row input[data-v-a9e971fc]:not([type]){border:1px solid var(--c-border);border-radius:6px;flex:1;padding:7px 10px;font-size:13px}.create-toggle[data-v-a9e971fc]{color:var(--c-text-2);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex}.recent-row[data-v-a9e971fc]{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.recent-label[data-v-a9e971fc]{color:var(--c-caption);font-size:12px}.recent-chip[data-v-a9e971fc]{border:1px solid var(--c-border);background:var(--ds-neutral-bluish-50);color:var(--c-text-2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:180px;padding:2px 10px;font-size:12px;overflow:hidden}.recent-chip[data-v-a9e971fc]:hover{background:var(--c-primary-soft);border-color:var(--c-primary-tint)}.picker-msg[data-v-a9e971fc]{color:var(--c-warn);margin-top:8px;font-size:12px}.modal-actions[data-v-a9e971fc]{gap:10px;margin-top:14px;display:flex}.btn-primary[data-v-a9e971fc]{color:#fff;background:var(--c-primary);cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:500}.btn-primary[data-v-a9e971fc]:hover{background:var(--c-primary-strong)}.btn-secondary[data-v-a9e971fc]{color:var(--c-text-2);background:var(--c-surface);border:1px solid var(--c-border);cursor:pointer;border-radius:8px;padding:8px 18px;font-size:13px}:root{--ds-blue-50:#edf3fe;--ds-blue-100:#e4edfd;--ds-blue-300:#b7c8fe;--ds-blue-400:#6786fe;--ds-blue-500:#4176e6;--ds-neutral-bluish-00:#fff;--ds-neutral-bluish-50:#f9fafb;--ds-neutral-bluish-60:#f5f6f7;--ds-neutral-bluish-75:#f1f3f5;--ds-neutral-bluish-100:#ebeef2;--ds-neutral-bluish-200:#e1e5ee;--ds-neutral-bluish-400:#adb2b8;--ds-neutral-bluish-600:#818588;--ds-neutral-bluish-700:#61666b;--ds-neutral-bluish-1000:#0f1115;--c-bg:var(--ds-neutral-bluish-60);--c-surface:#fff;--c-border:#10141a1a;--c-border-soft:#10141a0d;--c-text:var(--ds-neutral-bluish-1000);--c-text-2:var(--ds-neutral-bluish-700);--c-text-3:var(--ds-neutral-bluish-600);--c-caption:var(--ds-neutral-bluish-400);--c-primary:var(--ds-blue-500);--c-primary-strong:var(--ds-blue-400);--c-primary-soft:var(--ds-blue-50);--c-primary-tint:var(--ds-blue-100);--c-primary-ring:#4176e633;--c-hover:#2631480f;--c-ok:#22c55e;--c-ok-soft:#e6faed;--c-warn:#dd8629;--c-warn-soft:#fef5e7;--c-err:#ec1313;--c-err-soft:#fef2f2;--c-side-bg:var(--ds-neutral-bluish-50);--c-side-text:var(--ds-neutral-bluish-700);--c-side-text-active:var(--ds-neutral-bluish-1000);--c-side-active:var(--ds-neutral-bluish-100);--c-side-hover:var(--ds-neutral-bluish-75);--c-side-border:var(--c-border-soft);--c-accent:var(--ds-blue-500);--radius:10px;--radius-sm:7px;--shadow-card:0 1px 2px #10182808;--shadow-pop:0 8px 30px #1018281f;--font-mono:"SF Mono", "JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, "PingFang SC", "Microsoft YaHei", monospace;--ds-ease:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,sans-serif;font-size:14px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#e5e5e5 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:#d4d4d4}::-webkit-scrollbar-track{background:0 0}button,input,select,textarea{color:inherit;font-family:inherit}h2{letter-spacing:.2px;color:var(--c-text);font-size:19px;font-weight:700}a{color:var(--c-primary)}code,pre{font-family:var(--font-mono)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{box-shadow:0 0 0 3px var(--c-primary-ring);outline:none}.surface{background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card)}.settings-section,.metric-card,.ev-card{box-shadow:var(--shadow-card);border-radius:var(--radius)}.page-head h2{align-items:center;gap:8px;display:flex}.page-head .sub{margin-top:3px}.mono{font-family:var(--font-mono)}@media (prefers-reduced-motion:no-preference){.ev-card,.metric-card,.settings-section{animation:fade-up .2s var(--ds-ease) both}}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}} diff --git a/gateway/static/assets/index-DdcvGqdd.js b/gateway/static/assets/index-DdcvGqdd.js new file mode 100644 index 0000000..a9a036b --- /dev/null +++ b/gateway/static/assets/index-DdcvGqdd.js @@ -0,0 +1,11 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CollaborationView-BmtDAtzA.js","assets/CollaborationView-CfueFZKz.css","assets/ReviewView-BfRRKakQ.js","assets/ReviewView-9PXrv1jO.css","assets/MetricsView-C48cZGC4.js","assets/MetricsView-JgJGH4Og.css","assets/SettingsView-DF8Zhz99.js","assets/SettingsView-DWdd6um_.css"])))=>i.map(i=>d[i]); +var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function n(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var r={},i=[],a=()=>{},o=()=>!1,s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),c=e=>e.startsWith(`onUpdate:`),l=Object.assign,u=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,f=(e,t)=>d.call(e,t),p=Array.isArray,m=e=>C(e)===`[object Map]`,h=e=>C(e)===`[object Set]`,g=e=>C(e)===`[object Date]`,_=e=>typeof e==`function`,v=e=>typeof e==`string`,y=e=>typeof e==`symbol`,b=e=>typeof e==`object`&&!!e,x=e=>(b(e)||_(e))&&_(e.then)&&_(e.catch),S=Object.prototype.toString,C=e=>S.call(e),w=e=>C(e).slice(8,-1),ee=e=>C(e)===`[object Object]`,te=e=>v(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ne=n(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),re=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ie=/-\w/g,T=re(e=>e.replace(ie,e=>e.slice(1).toUpperCase())),E=/\B([A-Z])/g,D=re(e=>e.replace(E,`-$1`).toLowerCase()),O=re(e=>e.charAt(0).toUpperCase()+e.slice(1)),ae=re(e=>e?`on${O(e)}`:``),k=(e,t)=>!Object.is(e,t),oe=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},A=e=>{let t=parseFloat(e);return isNaN(t)?e:t},j,M=()=>j||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ce(e){if(p(e)){let t={};for(let n=0;n{if(e){let n=e.split(ue);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function pe(e){let t=``;if(v(e))t=e;else if(p(e))for(let n=0;nye(e,t))}var xe=e=>!!(e&&e.__v_isRef===!0),N=e=>v(e)?e:e==null?``:p(e)||b(e)&&(e.toString===S||!_(e.toString))?xe(e)?N(e.value):JSON.stringify(e,Se,2):String(e),Se=(e,t)=>xe(t)?Se(e,t.value):m(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ce(t,r)+` =>`]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ce(e))}:y(t)?Ce(t):b(t)&&!p(t)&&!ee(t)?String(t):t,Ce=(e,t=``)=>y(e)?`Symbol(${e.description??t})`:e,P,we=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&P&&(P.active?(this.parent=P,this.index=(P.scopes||(P.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(P===this)P=this.prevScope;else{let e=P;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Me){let e=Me;for(Me=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;je;){let t=je;for(je=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Ie(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Le(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Be(r),Ve(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Re(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ze(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ze(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qe)||(e.globalVersion=qe,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Re(e))))return;e.flags|=2;let t=e.dep,n=F,r=He;F=e,He=!0;try{Ie(e);let n=e.fn(e._value);(t.version===0||k(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{F=n,He=r,Le(e),e.flags&=-3}}function Be(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Be(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ve(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var He=!0,Ue=[];function We(){Ue.push(He),He=!1}function Ge(){let e=Ue.pop();He=e===void 0||e}function Ke(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=F;F=void 0;try{t()}finally{F=e}}}var qe=0,Je=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ye=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!F||!He||F===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==F)t=this.activeLink=new Je(F,this),F.deps?(t.prevDep=F.depsTail,F.depsTail.nextDep=t,F.depsTail=t):F.deps=F.depsTail=t,Xe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=F.depsTail,t.nextDep=void 0,F.depsTail.nextDep=t,F.depsTail=t,F.deps===t&&(F.deps=e)}return t}trigger(e){this.version++,qe++,this.notify(e)}notify(e){Pe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Fe()}}};function Xe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Xe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Ze=new WeakMap,Qe=Symbol(``),$e=Symbol(``),et=Symbol(``);function tt(e,t,n){if(He&&F){let t=Ze.get(e);t||Ze.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ye),r.map=t,r.key=n),r.track()}}function nt(e,t,n,r,i,a){let o=Ze.get(e);if(!o){qe++;return}let s=e=>{e&&e.trigger()};if(Pe(),t===`clear`)o.forEach(s);else{let i=p(e),a=i&&te(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===et||!y(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(et)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`delete`:i||(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`set`:m(e)&&s(o.get(Qe))}}Fe()}function rt(e,t){let n=Ze.get(e);return n&&n.get(t)}function it(e){let t=I(e);return t===e?t:(tt(t,`iterate`,et),Ut(e)?t:t.map(Kt))}function at(e){return tt(e=I(e),`iterate`,et),e}function ot(e,t){return Ht(e)?qt(Vt(e)?Kt(t):t):Kt(t)}var st={__proto__:null,[Symbol.iterator](){return ct(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return it(this).concat(...e.map(e=>p(e)?it(e):e))},entries(){return ct(this,`entries`,e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ut(this,`every`,e,t,void 0,arguments)},filter(e,t){return ut(this,`filter`,e,t,e=>e.map(e=>ot(this,e)),arguments)},find(e,t){return ut(this,`find`,e,t,e=>ot(this,e),arguments)},findIndex(e,t){return ut(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ut(this,`findLast`,e,t,e=>ot(this,e),arguments)},findLastIndex(e,t){return ut(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ut(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ft(this,`includes`,e)},indexOf(...e){return ft(this,`indexOf`,e)},join(e){return it(this).join(e)},lastIndexOf(...e){return ft(this,`lastIndexOf`,e)},map(e,t){return ut(this,`map`,e,t,void 0,arguments)},pop(){return pt(this,`pop`)},push(...e){return pt(this,`push`,e)},reduce(e,...t){return dt(this,`reduce`,e,t)},reduceRight(e,...t){return dt(this,`reduceRight`,e,t)},shift(){return pt(this,`shift`)},some(e,t){return ut(this,`some`,e,t,void 0,arguments)},splice(...e){return pt(this,`splice`,e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return pt(this,`unshift`,e)},values(){return ct(this,`values`,e=>ot(this,e))}};function ct(e,t,n){let r=at(e),i=r[t]();return r!==e&&!Ut(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var lt=Array.prototype;function ut(e,t,n,r,i,a){let o=at(e),s=o!==e&&!Ut(e),c=o[t];if(c!==lt[t]){let t=c.apply(e,a);return s?Kt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,ot(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function dt(e,t,n,r){let i=at(e),a=i!==e&&!Ut(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=ot(e,t)),n.call(this,t,ot(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?ot(e,c):c}function ft(e,t,n){let r=I(e);tt(r,`iterate`,et);let i=r[t](...n);return(i===-1||i===!1)&&Wt(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function pt(e,t,n=[]){We(),Pe();let r=I(e)[t].apply(e,n);return Fe(),Ge(),r}var mt=n(`__proto__,__v_isRef,__isVue`),ht=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(y));function gt(e){y(e)||(e=String(e));let t=I(this);return tt(t,`has`,e),t.hasOwnProperty(e)}var _t=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Ft:Pt:i?Nt:Mt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=p(e);if(!r){let e;if(a&&(e=st[t]))return e;if(t===`hasOwnProperty`)return gt}let o=Reflect.get(e,t,L(e)?e:n);if((y(t)?ht.has(t):mt(t))||(r||tt(e,`get`,t),i))return o;if(L(o)){let e=a&&te(t)?o:o.value;return r&&b(e)?zt(e):e}return b(o)?r?zt(o):Lt(o):o}},vt=class extends _t{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=p(e)&&te(t);if(!this._isShallow){let e=Ht(i);if(!Ut(n)&&!Ht(n)&&(i=I(i),n=I(n)),!a&&L(i)&&!L(n))return e||(i.value=n),!0}let o=a?Number(t)e,wt=e=>Reflect.getPrototypeOf(e);function Tt(e,t,n){return function(...r){let i=this.__v_raw,a=I(i),o=m(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,u=i[e](...r),d=n?Ct:t?qt:Kt;return!t&&tt(a,`iterate`,c?$e:Qe),l(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Et(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Dt(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(k(n,a)&&tt(i,`get`,n),tt(i,`get`,a));let{has:o}=wt(i),s=t?Ct:e?qt:Kt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&tt(I(t),`iterate`,Qe),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(k(t,i)&&tt(r,`has`,t),tt(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=I(a),s=t?Ct:e?qt:Kt;return!e&&tt(o,`iterate`,Qe),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return l(n,e?{add:Et(`add`),set:Et(`set`),delete:Et(`delete`),clear:Et(`clear`)}:{add(e){let n=I(this),r=wt(n),i=I(e),a=!t&&!Ut(e)&&!Ht(e)?i:e;return r.has.call(n,a)||k(e,a)&&r.has.call(n,e)||k(i,a)&&r.has.call(n,i)||(n.add(a),nt(n,`add`,a,a)),this},set(e,n){!t&&!Ut(n)&&!Ht(n)&&(n=I(n));let r=I(this),{has:i,get:a}=wt(r),o=i.call(r,e);o||=(e=I(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?k(n,s)&&nt(r,`set`,e,n,s):nt(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=wt(t),i=n.call(t,e);i||=(e=I(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&nt(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&nt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Tt(r,e,t)}),n}function Ot(e,t){let n=Dt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(f(n,r)&&r in t?n:t,r,i)}var kt={get:Ot(!1,!1)},At={get:Ot(!1,!0)},jt={get:Ot(!0,!1)},Mt=new WeakMap,Nt=new WeakMap,Pt=new WeakMap,Ft=new WeakMap;function It(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Lt(e){return Ht(e)?e:Bt(e,!1,bt,kt,Mt)}function Rt(e){return Bt(e,!1,St,At,Nt)}function zt(e){return Bt(e,!0,xt,jt,Pt)}function Bt(e,t,n,r,i){if(!b(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=It(w(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Vt(e){return Ht(e)?Vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ht(e){return!!(e&&e.__v_isReadonly)}function Ut(e){return!!(e&&e.__v_isShallow)}function Wt(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function Gt(e){return!f(e,`__v_skip`)&&Object.isExtensible(e)&&se(e,`__v_skip`,!0),e}var Kt=e=>b(e)?Lt(e):e,qt=e=>b(e)?zt(e):e;function L(e){return e?e.__v_isRef===!0:!1}function R(e){return Yt(e,!1)}function Jt(e){return Yt(e,!0)}function Yt(e,t){return L(e)?e:new Xt(e,t)}var Xt=class{constructor(e,t){this.dep=new Ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:Kt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Ut(e)||Ht(e);e=n?e:I(e),k(e,t)&&(this._rawValue=e,this._value=n?e:Kt(e),this.dep.trigger())}};function z(e){return L(e)?e.value:e}var Zt={get:(e,t,n)=>t===`__v_raw`?e:z(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return L(i)&&!L(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Qt(e){return Vt(e)?e:new Proxy(e,Zt)}function $t(e){let t=p(e)?Array(e.length):{};for(let n in e)t[n]=tn(e,n);return t}var en=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=y(t)?t:String(t),this._raw=I(e);let r=!0,i=e;if(!p(e)||y(this._key)||!te(this._key))do r=!Wt(i)||Ut(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=z(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&L(this._raw[this._key])){let t=this._object[this._key];if(L(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return rt(this._raw,this._key)}};function tn(e,t,n){return new en(e,t,n)}var nn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qe-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&F!==this)return Ne(this,!0),!0}get value(){let e=this.dep.track();return ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function rn(e,t,n=!1){let r,i;return _(e)?r=e:(r=e.get,i=e.set),new nn(r,i,n)}var an={},on=new WeakMap,sn=void 0;function cn(e,t=!1,n=sn){if(n){let t=on.get(n);t||on.set(n,t=[]),t.push(e)}}function ln(e,t,n=r){let{immediate:i,deep:o,once:s,scheduler:c,augmentJob:l,call:d}=n,f=e=>o?e:Ut(e)||o===!1||o===0?un(e,1):un(e),m,h,g,v,y=!1,b=!1;if(L(e)?(h=()=>e.value,y=Ut(e)):Vt(e)?(h=()=>f(e),y=!0):p(e)?(b=!0,y=e.some(e=>Vt(e)||Ut(e)),h=()=>e.map(e=>{if(L(e))return e.value;if(Vt(e))return f(e);if(_(e))return d?d(e,2):e()})):h=_(e)?t?d?()=>d(e,2):e:()=>{if(g){We();try{g()}finally{Ge()}}let t=sn;sn=m;try{return d?d(e,3,[v]):e(v)}finally{sn=t}}:a,t&&o){let e=h,t=o===!0?1/0:o;h=()=>un(e(),t)}let x=Ee(),S=()=>{m.stop(),x&&x.active&&u(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(an):an,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e)){if(t){let n=m.run();if(e||o||y||(b?n.some((e,t)=>k(e,C[t])):k(n,C))){g&&g();let e=sn;sn=m;try{let e=[n,C===an?void 0:b&&C[0]===an?[]:C,v];C=n,d?d(t,3,e):t(...e)}finally{sn=e}}}else m.run()}};return l&&l(w),m=new ke(h),m.scheduler=c?()=>c(w,!1):w,v=e=>cn(e,!1,m),g=m.onStop=()=>{let e=on.get(m);if(e){if(d)d(e,4);else for(let t of e)t();on.delete(m)}},t?i?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function un(e,t=1/0,n){if(t<=0||!b(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,L(e))un(e.value,t,n);else if(p(e))for(let r=0;r{un(e,t,n)});else if(ee(e)){for(let r in e)un(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&un(e[r],t,n)}return e}function dn(e,t,n,r){try{return r?e(...r):e()}catch(e){pn(e,t,n)}}function fn(e,t,n,r){if(_(e)){let i=dn(e,t,n,r);return i&&x(i)&&i.catch(e=>{pn(e,t,n)}),i}if(p(e)){let i=[];for(let a=0;a>>1,i=hn[r],a=kn(i);a=kn(n)?hn.push(e):hn.splice(Cn(t),0,e),e.flags|=1,Tn()}}function Tn(){xn||=bn.then(An)}function En(e){if(!p(e))vn&&e.id===-1?vn.splice(yn+1,0,e):e.flags&1||(_n.push(e),e.flags|=1);else for(let t=0;tkn(e)-kn(t));if(_n.length=0,vn){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function An(e){try{for(gn=0;gn{r._d&&Ji(-1);let i=Nn(t),a=Wi.length,o;try{o=e(...n)}finally{for(let e=Wi.length;e>a;e--)Ki();Nn(i),r._d&&Ji(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Fn(e,t){if(jn===null)return e;let n=Oa(jn),i=e.dirs||=[];for(let e=0;e1)return n&&_(t)?t.call(r&&r.proxy):t}}function zn(){return!!(ha()||Zr)}var Bn=Symbol.for(`v-scx`),Vn=()=>Rn(Bn);function Hn(e,t,n){return Un(e,t,n)}function Un(e,t,n=r){let{immediate:i,deep:o,flush:s,once:c}=n,u=l({},n),d=t&&i||!t&&s!==`post`,f;if(xa){if(s===`sync`){let e=Vn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=a,e.resume=a,e.pause=a,e}}let p=ma;u.call=(e,t,n)=>fn(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{Oi(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():wn(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=ln(e,t,u);return xa&&(f?f.push(h):d&&h()),h}function Wn(e,t,n){let r=this.proxy,i=v(e)?e.includes(`.`)?Gn(r,e):()=>r[e]:e.bind(r,r),a;_(t)?a=t:(a=t.handler,n=t);let o=va(this),s=Un(i,a.bind(r),n);return o(),s}function Gn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,Jn=Symbol(`_leaveCb`);function Yn(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Hi){t=n;break}}return t}function Xn(e){if(!ar(e))return qn(e.type)&&e.children?Yn(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&_(n.default))return n.default()}}function Zn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Zn(qn(n.type)&&Xn(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qn(e,t){return _(e)?l({name:e.name},t,{setup:e}):e}function $n(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}function er(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var tr=new WeakMap;function nr(e,t,n,i,a=!1){if(p(e)){e.forEach((e,r)=>nr(e,t&&(p(t)?t[r]:t),n,i,a));return}if(ir(i)&&!a){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&nr(e,t,n,i.component.subTree);return}let s=i.shapeFlag&4?Oa(i.component):i.el,c=a?null:s,{i:l,r:d}=e,m=t&&t.r,h=l.refs===r?l.refs={}:l.refs,g=l.setupState,y=I(g),b=g===r?o:e=>!er(h,e)&&f(y,e),x=(e,t)=>!(t&&er(h,t));if(m!=null&&m!==d){if(rr(t),v(m))h[m]=null,b(m)&&(g[m]=null);else if(L(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(_(d))dn(d,l,12,[c,h]);else{let t=v(d),r=L(d);if(t||r){let i=()=>{if(e.f){let n=t?b(d)?g[d]:h[d]:x(d)||!e.k?d.value:h[e.k];if(a)p(n)&&u(n,s);else if(p(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],b(d)&&(g[d]=h[d]);else{let t=[s];x(d,e.k)&&(d.value=t),e.k&&(h[e.k]=t)}}else t?(h[d]=c,b(d)&&(g[d]=c)):r&&(x(d,e.k)&&(d.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),tr.delete(e)};t.id=-1,tr.set(e,t),Oi(t,n)}else rr(e),i()}}}function rr(e){let t=tr.get(e);t&&(t.flags|=8,tr.delete(e))}M().requestIdleCallback,M().cancelIdleCallback;var ir=e=>!!e.type.__asyncLoader,ar=e=>e.type.__isKeepAlive;function or(e,t){cr(e,`a`,t)}function sr(e,t){cr(e,`da`,t)}function cr(e,t,n=ma){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(ur(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ar(e.parent.vnode)&&lr(r,t,n,e),e=e.parent}}function lr(e,t,n,r){let i=ur(t,e,r,!0);_r(()=>{u(r[t],i)},n)}function ur(e,t,n=ma,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{We();let i=va(n),a=fn(t,n,e,r);return i(),Ge(),a};return r?i.unshift(a):i.push(a),a}}var dr=e=>(t,n=ma)=>{(!xa||e===`sp`)&&ur(e,(...e)=>t(...e),n)},fr=dr(`bm`),pr=dr(`m`),mr=dr(`bu`),hr=dr(`u`),gr=dr(`bum`),_r=dr(`um`),vr=dr(`sp`),yr=dr(`rtg`),br=dr(`rtc`);function xr(e,t=ma){ur(`ec`,e,t)}var Sr=`components`;function Cr(e,t){return Tr(Sr,e,!0,t)||e}var wr=Symbol.for(`v-ndc`);function Tr(e,t,n=!0,r=!1){let i=jn||ma;if(i){let n=i.type;if(e===Sr){let e=ka(n,!1);if(e&&(e===t||e===T(t)||e===O(T(t))))return n}let a=Er(i[e]||n[e],t)||Er(i.appContext[e],t);return!a&&r?n:a}}function Er(e,t){return e&&(e[t]||e[T(t)]||e[O(T(t))])}function Dr(e,t,n,r){let i,a=n&&n[r],o=p(e);if(o||v(e)){let n=o&&Vt(e),r=!1,s=!1;n&&(r=!Ut(e),s=Ht(e),e=at(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;re?ba(e)?Oa(e):Or(e.parent):null,kr=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Or(e.parent),$root:e=>Or(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||=()=>{wn(e.update)},$nextTick:e=>e.n||=Sn.bind(e.proxy),$watch:e=>Wn.bind(e)}),Ar=(e,t)=>e!==r&&!e.__isScriptSetup&&f(e,t),jr={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else if(Ar(i,t))return s[t]=1,i[t];else if(a!==r&&f(a,t))return s[t]=2,a[t];else if(f(o,t))return s[t]=3,o[t];else if(n!==r&&f(n,t))return s[t]=4,n[t];else Nr&&(s[t]=0)}let u=kr[t],d,p;if(u)return t===`$attrs`&&tt(e.attrs,`get`,``),u(e);if((d=c.__cssModules)&&(d=d[t]))return d;if(n!==r&&f(n,t))return s[t]=4,n[t];if(p=l.config.globalProperties,f(p,t))return p[t]},set({_:e},t,n){let{data:i,setupState:a,ctx:o}=e;return Ar(a,t)?(a[t]=n,!0):i!==r&&f(i,t)?(i[t]=n,!0):f(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(n[c]||e!==r&&c[0]!==`$`&&f(e,c)||Ar(t,c)||f(o,c)||f(i,c)||f(kr,c)||f(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?f(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function Mr(e){return p(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var Nr=!0;function Pr(e){let t=Rr(e),n=e.proxy,r=e.ctx;Nr=!1,t.beforeCreate&&Ir(t.beforeCreate,e,`bc`);let{data:i,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:f,mounted:m,beforeUpdate:h,updated:g,activated:v,deactivated:y,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:ee,renderTracked:te,renderTriggered:ne,errorCaptured:re,serverPrefetch:ie,expose:T,inheritAttrs:E,components:D,directives:O,filters:ae}=t;if(u&&Fr(u,r,null),s)for(let e in s){let t=s[e];_(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);b(t)&&(e.data=Lt(t))}if(Nr=!0,o)for(let e in o){let t=o[e],i=G({get:_(t)?t.bind(n,n):_(t.get)?t.get.bind(n,n):a,set:!_(t)&&_(t.set)?t.set.bind(n):a});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(c)for(let e in c)Lr(c[e],r,n,e);if(l){let e=_(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Ln(t,e[t])})}d&&Ir(d,e,`c`);function k(e,t){p(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(k(fr,f),k(pr,m),k(mr,h),k(hr,g),k(or,v),k(sr,y),k(xr,re),k(br,te),k(yr,ne),k(gr,S),k(_r,w),k(vr,ie),p(T)){if(T.length){let t=e.exposed||={};T.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}ee&&e.render===a&&(e.render=ee),E!=null&&(e.inheritAttrs=E),D&&(e.components=D),O&&(e.directives=O),ie&&$n(e)}function Fr(e,t,n=a){p(e)&&(e=Ur(e));for(let n in e){let r=e[n],i;i=b(r)?`default`in r?Rn(r.from||n,r.default,!0):Rn(r.from||n):Rn(r),L(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Ir(e,t,n){fn(p(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Lr(e,t,n,r){let i=r.includes(`.`)?Gn(n,r):()=>n[r];if(v(e)){let n=t[e];_(n)&&Hn(i,n)}else if(_(e))Hn(i,e.bind(n));else if(b(e)){if(p(e))e.forEach(e=>Lr(e,t,n,r));else{let r=_(e.handler)?e.handler.bind(n):t[e.handler];_(r)&&Hn(i,r,e)}}}function Rr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>zr(c,e,o,!0)),zr(c,t,o)),b(t)&&a.set(t,c),c}function zr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&zr(e,a,n,!0),i&&i.forEach(t=>zr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=Br[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var Br={data:Vr,props:Kr,emits:Kr,methods:Gr,computed:Gr,beforeCreate:Wr,created:Wr,beforeMount:Wr,mounted:Wr,beforeUpdate:Wr,updated:Wr,beforeDestroy:Wr,beforeUnmount:Wr,destroyed:Wr,unmounted:Wr,activated:Wr,deactivated:Wr,errorCaptured:Wr,serverPrefetch:Wr,components:Gr,directives:Gr,watch:qr,provide:Vr,inject:Hr};function Vr(e,t){return t?e?function(){return l(_(e)?e.call(this,this):e,_(t)?t.call(this,this):t)}:t:e}function Hr(e,t){return Gr(Ur(e),Ur(t))}function Ur(e){if(p(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${D(t)}Modifiers`];function $r(e,t,...n){if(e.isUnmounted)return;let i=e.vnode.props||r,a=n,o=t.startsWith(`update:`),s=o&&Qr(i,t.slice(7));s&&(s.trim&&(a=n.map(e=>v(e)?e.trim():e)),s.number&&(a=a.map(A)));let c,l=i[c=ae(t)]||i[c=ae(T(t))];!l&&o&&(l=i[c=ae(D(t))]),l&&fn(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,fn(u,e,6,a)}}var ei=new WeakMap;function ti(e,t,n=!1){let r=n?ei:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!_(e)){let r=e=>{let n=ti(e,t,!0);n&&(s=!0,l(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(b(e)&&r.set(e,null),null):(p(a)?a.forEach(e=>o[e]=null):l(o,a),b(e)&&r.set(e,o),o)}function ni(e,t){return!e||!s(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),f(e,t[0].toLowerCase()+t.slice(1))||f(e,D(t))||f(e,t))}function ri(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=Nn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=oa(u.call(t,e,d,f,m,p,h)),y=s}else{let e=t;v=oa(e.length>1?e(f,{attrs:s,slots:o,emit:l}):e(f,null)),y=t.props?s:ii(s)}}catch(t){Wi.length=0,pn(t,e,1),v=ta(Hi)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(c)&&(y=ai(y,a)),b=ia(b,y,!1,!0))}return n.dirs&&(b=ia(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Zn(qn(b.type)&&Xn(b)||b,n.transition),v=b,Nn(_),v}var ii=e=>{let t;for(let n in e)(n===`class`||n===`style`||s(n))&&((t||={})[n]=e[n]);return t},ai=(e,t)=>{let n={};for(let r in e)(!c(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function oi(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?si(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(ui),fi=e=>Object.getPrototypeOf(e)===ui;function pi(e,t,n,r=!1){let i={},a=di();e.propsDefaults=Object.create(null),hi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Rt(i):e.type.props?i:a,e.attrs=a}function mi(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=I(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{d=!0;let[n,r]=vi(e,t,!0);l(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!d)return b(e)&&a.set(e,i),i;if(p(s))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,xi=e=>p(e)?e.map(oa):[oa(e)],Si=(e,t,n)=>{if(t._n)return t;let r=Pn((...e)=>xi(t(...e)),n);return r._c=!1,r},Ci=(e,t,n)=>{let r=e._ctx;for(let n in e){if(bi(n))continue;let i=e[n];if(_(i))t[n]=Si(n,i,r);else if(i!=null){let e=xi(i);t[n]=()=>e}}},wi=(e,t)=>{let n=xi(t);e.slots.default=()=>n},Ti=(e,t,n)=>{for(let r in t)(n||!bi(r))&&(e[r]=t[r])},Ei=(e,t,n)=>{let r=e.slots=di();if(e.vnode.shapeFlag&32){let e=t._;e?(Ti(r,t,n),n&&se(r,`_`,e,!0)):Ci(t,r)}else t&&wi(e,t)},Di=(e,t,n)=>{let{vnode:i,slots:a}=e,o=!0,s=r;if(i.shapeFlag&32){let e=t._;e?n&&e===1?o=!1:Ti(a,t,n):(o=!t.$stable,Ci(t,a)),s=t}else t&&(wi(e,t),s={default:1});if(o)for(let e in a)!bi(e)&&s[e]==null&&delete a[e]},Oi=Bi;function ki(e){return Ai(e)}function Ai(e,t){let n=M();n.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=a,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Qi(e,t)&&(r=ge(e),de(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case Vi:y(e,t,n,r);break;case Hi:b(e,t,n,r);break;case Ui:e??x(t,n,r,o);break;case B:D(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ye)}u!=null&&i?nr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&nr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ie(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&re(e.children,d,null,r,i,ji(e,a),s,u),_&&In(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ne(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&ua(f,r,e)}_&&In(e,null,r,`beforeMount`);let v=Ni(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&Oi(()=>{try{f&&ua(f,r,e),v&&g.enter(d),_&&In(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||r,h=t.props||r,g;if(n&&Mi(n,!1),(g=h.onVnodeBeforeUpdate)&&ua(g,n,t,e),f&&In(t,e,n,`beforeUpdate`),n&&Mi(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?T(e.dynamicChildren,d,l,n,i,ji(t,a),o):s||j(e,t,l,null,n,i,ji(t,a),o,!1),u>0){if(u&16)E(l,m,h,n,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=t.dynamicProps;for(let t=0;t{g&&ua(g,n,t,e),f&&In(t,e,n,`updated`)},i)},T=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==r)for(let r in t)!ne(r)&&!(r in n)&&c(e,r,t[r],null,a,i);for(let r in n){if(ne(r))continue;let o=n[r],s=t[r];o!==s&&r!==`value`&&c(e,r,s,o,a,i)}`value`in n&&c(e,`value`,t.value,n.value,a)}},D=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),re(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(T(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&Pi(e,t,!0)):j(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ae(t,n,r,i,a,o,c):k(e,t,c)},ae=(e,t,n,r,i,a,o)=>{let s=e.component=pa(e,r,i);if(ar(e)&&(s.ctx.renderer=ye),Sa(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,se,o),!e.el){let r=s.subTree=ta(Hi);b(null,r,t,n),e.placeholder=r.el}}else se(s,e,t,n,i,a,o)},k=(e,t,n)=>{let r=t.component=e.component;if(oi(e,t,n)){if(r.asyncDep&&!r.asyncResolved){A(r,t,n);return}r.next=t,r.update()}else t.el=e.el,r.vnode=t},se=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Ii(e);if(n){t&&(t.el=c.el,A(e,t,o)),n.asyncDep.then(()=>{Oi(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Mi(e,!1),t?(t.el=c.el,A(e,t,o)):t=c,n&&oe(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&ua(d,s,t,c),Mi(e,!0);let f=ri(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ge(p),e,i,a),t.el=f.el,u===null&&li(e,f.el),r&&Oi(r,i),(d=t.props&&t.props.onVnodeUpdated)&&Oi(()=>ua(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=ir(t);if(Mi(e,!1),l&&oe(l),!m&&(o=c&&c.onVnodeBeforeMount)&&ua(o,d,t),Mi(e,!0),s&&xe){let t=()=>{e.subTree=ri(e),xe(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=ri(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&Oi(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;Oi(()=>ua(o,d,e),i)}(t.shapeFlag&256||d&&ir(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&Oi(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ke(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>wn(u),Mi(e,!0),l()},A=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,mi(e,t.props,r,n),Di(e,t.children,n),We(),Dn(e),Ge()},j=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){le(l,d,n,r,i,a,o,s,c);return}if(f&256){ce(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&he(l,i,a),d!==l&&p(n,d)):u&16?m&16?le(l,d,n,r,i,a,o,s,c):he(l,i,a,!0):(u&8&&p(n,``),m&16&&re(d,n,r,i,a,o,s,c))},ce=(e,t,n,r,a,o,s,c,l)=>{e||=i,t||=i;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?he(e,a,o,!0,!1,f):re(t,n,r,a,o,s,c,l,f)},le=(e,t,n,r,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let r=e[u],i=t[u]=l?sa(t[u]):oa(t[u]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?sa(t[p]):oa(t[p]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,i=ep)for(;u<=f;)de(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?sa(t[u]):oa(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){de(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Qi(r,t[_])){i=_;break}i===void 0?de(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?Fi(C):i;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,i=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){ue(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,ye);return}if(c===B){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[Jn];a._isLeaving&&a[Jn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}}else o(a,t,n)},de=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(We(),nr(s,null,n,e,!0),Ge()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!ir(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&ua(_,t,e),u&6)me(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&In(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ye,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?he(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&he(c,t,n),r&&fe(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&Oi(()=>{_&&ua(_,t,e),h&&In(e,null,t,`unmounted`),v&&(e.el=null)},n)},fe=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===B){pe(n,r);return}if(t===Ui){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},pe=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},me=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Li(c),Li(l),r&&oe(r),i.stop(),a&&(a.flags|=8,de(o,e,t,n)),s&&Oi(s,t),Oi(()=>{e.isUnmounted=!0},t)},he=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ge(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Kn];return n?h(n):t},_e=!1,ve=(e,t,n)=>{let r;e==null?t._vnode&&(de(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,_e||=(_e=!0,Dn(r),On(),!1)},ye={p:v,um:de,m:ue,r:fe,mt:ae,mc:re,pc:j,pbc:T,n:ge,o:e},be,xe;return t&&([be,xe]=t(ye)),{render:ve,hydrate:be,createApp:Xr(ve,be)}}function ji({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Mi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ni(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Pi(e,t,n=!1){let r=e.children,i=t.children;if(p(r)&&p(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function Ii(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ii(t)}function Li(e){if(e)for(let t=0;te.__isSuspense;function Bi(e,t){t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):En(e)}var B=Symbol.for(`v-fgt`),Vi=Symbol.for(`v-txt`),Hi=Symbol.for(`v-cmt`),Ui=Symbol.for(`v-stc`),Wi=[],Gi=null;function V(e=!1){Wi.push(Gi=e?null:[])}function Ki(){Wi.pop(),Gi=Wi[Wi.length-1]||null}var qi=1;function Ji(e,t=!1){qi+=e,e<0&&Gi&&t&&(Gi.hasOnce=!0)}function Yi(e){return e.dynamicChildren=qi>0?Gi||i:null,Ki(),qi>0&&Gi&&Gi.push(e),e}function H(e,t,n,r,i,a){return Yi(U(e,t,n,r,i,a,!0))}function Xi(e,t,n,r,i){return Yi(ta(e,t,n,r,i,!0))}function Zi(e){return e?e.__v_isVNode===!0:!1}function Qi(e,t){return e.type===t.type&&e.key===t.key}var $i=({key:e})=>e??null,ea=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:v(e)||L(e)||_(e)?{i:jn,r:e,k:t,f:!!n}:e);function U(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$i(t),ref:t&&ea(t),scopeId:Mn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:jn};return s?(ca(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=v(n)?8:16),qi>0&&!o&&Gi&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Gi.push(c),c}var ta=na;function na(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===wr)&&(e=Hi),Zi(e)){let r=ia(e,t,!0);return n&&ca(r,n),qi>0&&!a&&Gi&&(r.shapeFlag&6?Gi[Gi.indexOf(e)]=r:Gi.push(r)),r.patchFlag=-2,r}if(Aa(e)&&(e=e.__vccOpts),t){t=ra(t);let{class:e,style:n}=t;e&&!v(e)&&(t.class=pe(e)),b(n)&&(Wt(n)&&!p(n)&&(n=l({},n)),t.style=ce(n))}let o=v(e)?1:zi(e)?128:qn(e)?64:b(e)?4:_(e)?2:0;return U(e,t,n,r,i,o,a,!0)}function ra(e){return e?Wt(e)||fi(e)?l({},e):e:null}function ia(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?la(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&$i(l),ref:t&&t.ref?n&&a?p(a)?a.concat(ea(t)):[a,ea(t)]:ea(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==B?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ia(e.ssContent),ssFallback:e.ssFallback&&ia(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Zn(u,c.clone(u)),u}function aa(e=` `,t=0){return ta(Vi,null,e,t)}function W(e=``,t=!1){return t?(V(),Xi(Hi,null,e)):ta(Hi,null,e)}function oa(e){return e==null||typeof e==`boolean`?ta(Hi):p(e)?ta(B,null,e.slice()):Zi(e)?sa(e):ta(Vi,null,String(e))}function sa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ia(e)}function ca(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(p(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ca(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!fi(t)?t._ctx=jn:r===3&&jn&&(jn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(_(t)){if(r&65){ca(e,{default:t});return}t={default:t,_ctx:jn},n=32}else t=String(t),r&64?(n=16,t=[aa(t)]):n=8;e.children=t,e.shapeFlag|=n}function la(...e){let t={};for(let n=0;nma||jn,ga,_a;{let e=M(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};ga=t(`__VUE_INSTANCE_SETTERS__`,e=>ma=e),_a=t(`__VUE_SSR_SETTERS__`,e=>xa=e)}var va=e=>{let t=ma;return ga(e),e.scope.on(),()=>{e.scope.off(),ga(t)}},ya=()=>{ma&&ma.scope.off(),ga(null)};function ba(e){return e.vnode.shapeFlag&4}var xa=!1;function Sa(e,t=!1,n=!1){t&&_a(t);let{props:r,children:i}=e.vnode,a=ba(e);pi(e,r,a,t),Ei(e,i,n||t);let o=a?Ca(e,t):void 0;return t&&_a(!1),o}function Ca(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jr);let{setup:r}=n;if(r){We();let n=e.setupContext=r.length>1?Da(e):null,i=va(e),a=dn(r,e,0,[e.props,n]),o=x(a);if(Ge(),i(),(o||e.sp)&&!ir(e)&&$n(e),o){if(a.then(ya,ya),t)return a.then(n=>{_a(!0);try{wa(e,n,t)}finally{_a(!1)}}).catch(t=>{pn(t,e,0)});e.asyncDep=a}else wa(e,a,t)}else Ta(e,t)}function wa(e,t,n){_(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:b(t)&&(e.setupState=Qt(t)),Ta(e,n)}function Ta(e,t,n){let r=e.type;e.render||=r.render||a;{let t=va(e);We();try{Pr(e)}finally{Ge(),t()}}}var Ea={get(e,t){return tt(e,`get`,``),e[t]}};function Da(e){return{attrs:new Proxy(e.attrs,Ea),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Oa(e){return e.exposed?e.exposeProxy||=new Proxy(Qt(Gt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in kr)return kr[n](e)},has(e,t){return t in e||t in kr}}):e.proxy}function ka(e,t=!0){return _(e)?e.displayName||e.name:e.name||t&&e.__name}function Aa(e){return _(e)&&`__vccOpts`in e}var G=(e,t)=>rn(e,t,xa);function ja(e,t,n){try{Ji(-1);let r=arguments.length;return r===2?b(t)&&!p(t)?Zi(t)?ta(e,null,[t]):ta(e,t):ta(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Zi(n)&&(n=[n]),ta(e,t,n))}finally{Ji(1)}}var Ma=`3.5.42`,Na=void 0,Pa=typeof window<`u`&&window.trustedTypes;if(Pa)try{Na=Pa.createPolicy(`vue`,{createHTML:e=>e})}catch{}var Fa=Na?e=>Na.createHTML(e):e=>e,Ia=`http://www.w3.org/2000/svg`,La=`http://www.w3.org/1998/Math/MathML`,Ra=typeof document<`u`?document:null,za=Ra&&Ra.createElement(`template`),Ba={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?Ra.createElementNS(Ia,e):t===`mathml`?Ra.createElementNS(La,e):n?Ra.createElement(e,{is:n}):Ra.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Ra.createTextNode(e),createComment:e=>Ra.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ra.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{za.innerHTML=Fa(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=za.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Va=Symbol(`_vtc`);function Ha(e,t,n){let r=e[Va];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ua=Symbol(`_vod`),Wa=Symbol(`_vsh`),Ga=Symbol(``),Ka=/(?:^|;)\s*display\s*:/;function qa(e,t,n){let r=e.style,i=v(n),a=!1;if(n&&!i){if(t){if(v(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Ya(r,t,``)}else for(let e in t)n[e]??Ya(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Ya(r,i,``):$a(e,i,!v(t)&&t?t[i]:void 0,o)||Ya(r,i,o)}}else if(i){if(t!==n){let e=r[Ga];e&&(n+=`;`+e),r.cssText=n,a=Ka.test(n)}}else t&&e.removeAttribute(`style`);Ua in e&&(e[Ua]=a?r.display:``,e[Wa]&&(r.display=`none`))}var Ja=/\s*!important$/;function Ya(e,t,n){if(p(n))n.forEach(n=>Ya(e,t,n));else if(n??=``,t.startsWith(`--`))Ja.test(n)?e.setProperty(t,n.replace(Ja,``),`important`):e.setProperty(t,n);else{let r=Qa(e,t);Ja.test(n)?e.setProperty(D(r),n.replace(Ja,``),`important`):e[r]=n}}var Xa=[`Webkit`,`Moz`,`ms`],Za={};function Qa(e,t){let n=Za[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return Za[t]=r;r=O(r);for(let n=0;nuo||=(fo.then(()=>uo=0),Date.now());function mo(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(p(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,go=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ha(e,r,o):t===`style`?qa(e,n,r):s(t)?c(t)||oo(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):_o(e,t,r,o))?(no(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&to(e,t,r,o,a,t!==`value`)):e._isVueCE&&(vo(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!v(r)))?no(e,T(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),to(e,t,r,o))};function _o(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ho(t)&&_(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return ho(t)&&v(n)?!1:t in e}function vo(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var yo=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return p(t)?e=>oe(t,e):t};function bo(e){e.target.composing=!0}function xo(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var So=Symbol(`_assign`),Co=Symbol(`_initialValue`);function wo(e,t,n){return t&&(e=e.trim()),n&&(e=A(e)),e}var To={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[Co]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[Co]=e.defaultValue.replace(/\r\n?/g,` +`))),e[So]=yo(i);let a=r||i.props&&i.props.type===`number`;ro(e,t?`change`:`input`,t=>{t.target.composing||e[So](wo(e.value,n,a))}),(n||a)&&ro(e,`change`,()=>{e.value=wo(e.value,n,a)}),t||(ro(e,`compositionstart`,bo),ro(e,`compositionend`,xo),ro(e,`change`,xo))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[Co];delete e[Co],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[So](wo(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[So]=yo(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?A(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Eo={deep:!0,created(e,t,n){e[So]=yo(n),ro(e,`change`,()=>{let t=e._modelValue,n=jo(e),r=e.checked,i=e[So];if(p(t)){let e=be(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(h(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Mo(e,r))})},mounted:Do,beforeUpdate(e,t,n){e[So]=yo(n),Do(e,t,n)}};function Do(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(p(t))i=be(t,r.props.value)>-1;else if(h(t))i=t.has(r.props.value);else{if(t===n)return;i=ye(t,Mo(e,!0))}e.checked!==i&&(e.checked=i)}var Oo={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,ro(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?A(jo(e)):jo(e)),r=e.multiple,i=r?h(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?p(i)?t.slice():t:i];try{e[So](i)}finally{Sn(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[So]=yo(r)},mounted(e,{value:t}){Ao(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[So]=yo(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!ko(t,n[1],n[0]))&&Ao(e,t)}};function ko(e,t,n){if(!n||p(e))return ye(e,t);if(h(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Ao(e,t){let n=e.multiple,r=p(t);if(!(n&&!r&&!h(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):be(t,o)>-1}else a.selected=t.has(o)}else if(ye(jo(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jo(e){return`_value`in e?e._value:e.value}function Mo(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var No=[`ctrl`,`shift`,`alt`,`meta`],Po={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>No.some(n=>e[`${n}Key`]&&!t.includes(n))},Fo=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=D(n.key);if(t.some(e=>e===r||Io[e]===r))return e(n)}))},Ro=l({patchProp:go},Ba),zo;function Bo(){return zo||=ki(Ro)}var Vo=((...e)=>{let t=Bo().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Uo(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Ho(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Ho(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Uo(e){return v(e)?document.querySelector(e):e}var Wo=typeof window<`u`,Go,Ko=e=>Go=e,qo=Symbol();function Jo(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Yo=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Xo(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Zo(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ns(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Qo(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function $o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var es=typeof navigator==`object`?navigator:{userAgent:``},ts=/Macintosh/.test(es.userAgent)&&/AppleWebKit/.test(es.userAgent)&&!/Safari/.test(es.userAgent),ns=Wo?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!ts?rs:`msSaveOrOpenBlob`in es?is:as:()=>{};function rs(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?$o(r):Qo(r.href)?Zo(e,t,n):(r.target=`_blank`,$o(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){$o(r)},0))}function is(e,t=`download`,n){if(typeof e==`string`){if(Qo(e))Zo(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){$o(t)})}}else navigator.msSaveOrOpenBlob(Xo(e,n),t)}function as(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Zo(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Yo.HTMLElement))||`safari`in Yo,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||ts)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:os}=Object;function ss(){let e=Te(!0),t=e.run(()=>R({})),n=[],r=[],i=Gt({install(e){Ko(i),i._a=e,e.provide(qo,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var cs=()=>{};function ls(e,t,n,r=cs){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ee()&&De(i),i}function us(e,...t){e.forEach(e=>{e(...t)})}var ds=e=>e(),fs=Symbol(),ps=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=Jo(i)&&Jo(r)&&Object.hasOwn(e,n)&&!L(r)&&!Vt(r)?ms(i,r):r}return e}var hs=Symbol();function gs(e){return!e||typeof e!=`object`||!Object.hasOwn(e,hs)}var{assign:_s}=Object;function vs(e){return!!(L(e)&&e.effect)}function ys(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),_s($t(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Gt(G(()=>{Ko(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=bs(e,l,t,n,r,!0),c}function bs(e,t,n={},r,i,a){let o,s=_s({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(ms(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();Sn().then(()=>{h===i&&(l=!0)}),u=!0,us(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{_s(e,t)})}:cs;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(fs in t)return t[ps]=n,t;let i=function(){Ko(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}us(f,{args:n,name:i[ps],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw us(o,e),e}return l instanceof Promise?l.then(e=>(us(a,e),e)).catch(e=>(us(o,e),Promise.reject(e))):(us(a,l),l)};return i[fs]=!0,i[ps]=n,i},b=Lt({_p:r,$id:e,$onAction:ls.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return cs;let i=ls(d,t,n.detached,()=>a()),a=o.run(()=>Hn(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},_s({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||ds)(()=>r._e.run(()=>(o=Te()).run(()=>t({action:y}))));for(let t in x){let n=x[t];L(n)&&!vs(n)||Vt(n)?a||(m&&gs(n)&&(L(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),ms(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return _s(b,x),_s(I(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{_s(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));_s(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function xs(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=zn();return n||=o?Rn(qo,null):null,n&&Ko(n),n=Go,n._s.has(e)||(i?bs(e,t,r,n):ys(e,r,n)),n._s.get(e)}return a.$id=e,a}var Ss={class:`app`},Cs={class:`side`},ws={class:`nav`},Ts={class:`nav-icon`},Es={class:`nav-label`},Ds={class:`main-col`},Os=Qn({__name:`App`,setup(e){let t=[{to:`/chat`,icon:`💬`,label:`对话`},{to:`/collaboration`,icon:`🔄`,label:`协作过程`},{to:`/agent`,icon:`🤖`,label:`智能体`},{to:`/review`,icon:`🔍`,label:`人工检验`},{to:`/metrics`,icon:`📊`,label:`指标`},{to:`/settings`,icon:`⚙️`,label:`设置`}];return(e,n)=>{let r=Cr(`router-link`),i=Cr(`router-view`);return V(),H(`div`,Ss,[U(`aside`,Cs,[n[0]||=U(`div`,{class:`brand`},[U(`div`,{class:`brand-logo`},`🤖`),U(`div`,{class:`brand-text`},[U(`b`,null,`端云协同`),U(`span`,null,`LLM 协作系统`)])],-1),U(`nav`,ws,[(V(),H(B,null,Dr(t,e=>ta(r,{key:e.to,to:e.to,class:`nav-item`},{default:Pn(()=>[U(`span`,Ts,N(e.icon),1),U(`span`,Es,N(e.label),1)]),_:2},1032,[`to`])),64))]),n[1]||=U(`div`,{class:`side-foot`},[U(`div`,{class:`foot-dot`}),U(`span`,null,`本地网关 · :8000`)],-1)]),U(`div`,Ds,[ta(i,{class:`content`})])])}}}),ks=typeof document<`u`;function As(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function js(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&As(e.default)}var K=Object.assign;function Ms(e,t){let n={};for(let r in t){let i=t[r];n[r]=Ps(i)?i.map(e):e(i)}return n}var Ns=()=>{},Ps=Array.isArray;function Fs(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Is=/#/g,Ls=/&/g,Rs=/\//g,zs=/=/g,Bs=/\?/g,Vs=/\+/g,Hs=/%5B/g,Us=/%5D/g,Ws=/%5E/g,Gs=/%60/g,Ks=/%7B/g,qs=/%7C/g,Js=/%7D/g,Ys=/%20/g;function Xs(e){return e==null?``:encodeURI(``+e).replace(qs,`|`).replace(Hs,`[`).replace(Us,`]`)}function Zs(e){return Xs(e).replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function Qs(e){return Xs(e).replace(Vs,`%2B`).replace(Ys,`+`).replace(Is,`%23`).replace(Ls,`%26`).replace(Gs,"`").replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function $s(e){return Qs(e).replace(zs,`%3D`)}function ec(e){return Xs(e).replace(Is,`%23`).replace(Bs,`%3F`)}function tc(e){return ec(e).replace(Rs,`%2F`)}function nc(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var rc=/\/$/,ic=e=>e.replace(rc,``);function ac(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=pc(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:nc(o)}}function oc(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function sc(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function cc(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&lc(t.matched[r],n.matched[i])&&uc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function lc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function uc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!dc(e[n],t[n]))return!1;return!0}function dc(e,t){return Ps(e)?fc(e,t):Ps(t)?fc(t,e):e?.valueOf()===t?.valueOf()}function fc(e,t){return Ps(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function pc(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var mc={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},hc=function(e){return e.pop=`pop`,e.push=`push`,e}({}),gc=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function _c(e){if(!e){if(ks){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ic(e)}var vc=/^[^#]+#/;function yc(e,t){return e.replace(vc,`#`)+t}function bc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var xc=()=>({left:window.scrollX,top:window.scrollY});function Sc(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=bc(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Cc(e,t){return(history.state?history.state.position-t:-1)+e}var wc=new Map;function Tc(e,t){wc.set(e,t)}function Ec(e){let t=wc.get(e);return wc.delete(e),t}function Dc(e){return typeof e==`string`||e&&typeof e==`object`}function Oc(e){return typeof e==`string`||typeof e==`symbol`}var q=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),kc=Symbol(``);q.MATCHER_NOT_FOUND,q.NAVIGATION_GUARD_REDIRECT,q.NAVIGATION_ABORTED,q.NAVIGATION_CANCELLED,q.NAVIGATION_DUPLICATED;function Ac(e,t){return K(Error(),{type:e,[kc]:!0},t)}function jc(e,t){return e instanceof Error&&kc in e&&(t==null||!!(e.type&t))}function Mc(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Qs(e)):[r&&Qs(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Pc(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Ps(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var Fc=Symbol(``),Ic=Symbol(``),Lc=Symbol(``),Rc=Symbol(``),zc=Symbol(``);function Bc(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Vc(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Ac(q.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Dc(e)?c(Ac(q.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Hc(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e])){if(As(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Vc(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=js(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Vc(c,n,r,o,e,i)()}))}}}return a}function Uc(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;olc(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>lc(e,s))||i.push(s))}return[n,r,i]}var Wc=()=>location.protocol+`//`+location.host;function Gc(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),sc(n,``)}return sc(n,e)+r+i}function Kc(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Gc(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:hc.pop,direction:u?u>0?gc.forward:gc.back:gc.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(K({},e.state,{scroll:xc()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function qc(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?xc():null}}function Jc(e){let{history:t,location:n}=window,r={value:Gc(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Wc()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,K({},t.state,qc(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=K({},i.value,t.state,{forward:e,scroll:xc()});a(o.current,o,!0),a(e,K({},qc(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Yc(e){e=_c(e);let t=Jc(e),n=Kc(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=K({location:``,base:e,go:r,createHref:yc.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Xc=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),J=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(J||{}),Zc={type:Xc.Static,value:``},Qc=/[a-zA-Z0-9_]/;function $c(e){if(!e)return[[]];if(e===`/`)return[[Zc]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=J.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===J.Static?a.push({type:Xc.Static,value:l}):n===J.Param||n===J.ParamRegExp||n===J.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Xc.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===nl.Static+nl.Segment?1:-1:0}function ol(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var cl={strict:!1,end:!0,sensitive:!1};function ll(e,t,n){let r=K(il($c(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function ul(e,t){let n=[],r=new Map;t=Fs(cl,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=fl(e);s.aliasOf=r&&r.record;let l=Fs(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(fl(K({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=ll(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ml(d)&&o(e.name)),vl(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Ns}function o(e){if(Oc(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=gl(e,n);n.splice(t,0,e),e.record.name&&!ml(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=K(dl(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&dl(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=K({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:hl(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function dl(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function fl(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pl(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function pl(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ml(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hl(e){return e.reduce((e,t)=>K(e,t.meta),{})}function gl(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ol(e,t[i])<0?r=i:n=i+1}let i=_l(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function _l(e){let t=e;for(;t=t.parent;)if(vl(t)&&ol(e,t)===0)return t}function vl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function yl(e){let t=Rn(Lc),n=Rn(Rc),r=G(()=>{let n=z(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(lc.bind(null,i));if(o>-1)return o;let s=wl(e[t-2]);return t>1&&wl(i)===s&&a[a.length-1].path!==s?a.findIndex(lc.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&Cl(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&uc(n.params,r.value.params));function s(n={}){if(Sl(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(Ns);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function bl(e){return e.length===1?e[0]:e}var xl=Qn({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:yl,setup(e,{slots:t}){let n=Lt(yl(e)),{options:r}=Rn(Lc),i=G(()=>({[Tl(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Tl(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&bl(t.default(n));return e.custom?r:ja(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Sl(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cl(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Ps(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function wl(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Tl=(e,t,n)=>e??t??n,El=Qn({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=Rn(zc),i=G(()=>e.route||r.value),a=Rn(Ic,0),o=G(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Ln(Ic,G(()=>o.value+1)),Ln(Fc,s),Ln(zc,i);let c=R();return Hn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!lc(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Dl(n.default,{Component:l,route:r});let u=o.props[a],d=ja(l,K({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Dl(n.default,{Component:d,route:r})||d}}});function Dl(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Ol=El;function kl(e){let t=ul(e.routes,e),n=e.parseQuery||Mc,r=e.stringifyQuery||Nc,i=e.history,a=Bc(),o=Bc(),s=Bc(),c=Jt(mc),l=mc;ks&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Ms.bind(null,e=>``+e),d=Ms.bind(null,tc),f=Ms.bind(null,nc);function p(e,n){let r,i;return Oc(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=K({},a||c.value),typeof e==`string`){let r=ac(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return K(r,o,{params:f(o.params),hash:nc(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=K({},e,{path:ac(n,e.path,a.path).path});else{let t=K({},e.params);for(let e in t)t[e]??delete t[e];o=K({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=oc(r,K({},e,{hash:Zs(l),path:s.path})),m=i.createHref(p);return K({fullPath:p,hash:l,query:r===Nc?Pc(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?ac(n,e,c.value.path):K({},e)}function y(e,t){if(l!==e)return Ac(q.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(K(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),K({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(K(v(u),{state:typeof u==`object`?K({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&cc(r,i,n)&&(f=Ac(q.NAVIGATION_DUPLICATED,{to:d,from:i}),se(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>jc(e)?jc(e,q.NAVIGATION_GUARD_REDIRECT)?e:oe(e):ae(e,d,i)).then(e=>{if(e){if(jc(e,q.NAVIGATION_GUARD_REDIRECT))return C(K({replace:s},v(e.to),{state:typeof e.to==`object`?K({},a,e.to.state):a,force:o}),t||d)}else e=re(d,i,!0,s,a);return ne(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function ee(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=Uc(e,t);n=Hc(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Vc(r,e,t))});let c=w.bind(null,e,t);return n.push(c),le(n).then(()=>{n=[];for(let r of a.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).then(()=>{n=Hc(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Vc(r,e,t))});return n.push(c),le(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Ps(r.beforeEnter))for(let i of r.beforeEnter)n.push(Vc(i,e,t));else n.push(Vc(r.beforeEnter,e,t))}return n.push(c),le(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Hc(s,`beforeRouteEnter`,e,t,ee),n.push(c),le(n))).then(()=>{n=[];for(let r of o.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).catch(e=>jc(e,q.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ne(e,t,n){s.list().forEach(r=>ee(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===mc,l=ks?history.state:{};n&&(r||s?i.replace(e.fullPath,K({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,se(e,t,n,s),oe()}let ie;function T(){ie||=i.listen((e,t,n)=>{if(!ce.listening)return;let r=_(e),a=S(r,ce.currentRoute.value);if(a){C(K(a,{replace:!0,force:!0}),r).catch(Ns);return}l=r;let o=c.value;ks&&Tc(Cc(o.fullPath,n.delta),xc()),te(r,o).catch(e=>jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_CANCELLED)?e:jc(e,q.NAVIGATION_GUARD_REDIRECT)?(C(K(v(e.to),{force:!0}),r).then(e=>{jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===hc.pop&&i.go(-1,!1)}).catch(Ns),Promise.reject()):(n.delta&&i.go(-n.delta,!1),ae(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!jc(e,q.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===hc.pop&&jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ne(r,o,e)}).catch(Ns)})}let E=Bc(),D=Bc(),O;function ae(e,t,n){oe(e);let r=D.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function k(){return O&&c.value!==mc?Promise.resolve():new Promise((e,t)=>{E.add([e,t])})}function oe(e){return O||(O=!e,T(),E.list().forEach(([t,n])=>e?n(e):t()),E.reset()),e}function se(t,n,r,i){let{scrollBehavior:a}=e;if(!ks||!a)return Promise.resolve();let o=!r&&Ec(Cc(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Sn().then(()=>a(t,n,o)).then(e=>e&&Sc(e)).catch(e=>ae(e,t,n))}let A=e=>i.go(e),j,M=new Set,ce={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:A,back:()=>A(-1),forward:()=>A(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:D.add,isReady:k,install(e){e.component(`RouterLink`,xl),e.component(`RouterView`,Ol),e.config.globalProperties.$router=ce,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>z(c)}),ks&&!j&&c.value===mc&&(j=!0,b(i.location).catch(e=>{}));let t={};for(let e in mc)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Lc,ce),e.provide(Rc,Rt(t)),e.provide(zc,c);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(l=mc,ie&&ie(),ie=null,c.value=mc,j=!1,O=!1),n()}}};function le(e){return e.reduce((e,t)=>e.then(()=>ee(t)),Promise.resolve())}return ce}function Al(e,t){return function(){return e.apply(t,arguments)}}var{toString:jl}=Object.prototype,{getPrototypeOf:Ml}=Object,{iterator:Nl,toStringTag:Pl}=Symbol,Fl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Il=e=>typeof e==`string`&&(e===`__proto__`||e===`constructor`||e===`prototype`),Ll=(e,t,n)=>e===Object.prototype||!n&&t===null,Rl=e=>{if(!Object.isExtensible(e))return!1;let t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(t=>{if(Il(t))return!1;let n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.configurable&&n.writable===!0})},zl=(e,t)=>{let n=e,r=[];for(;n!=null;){if(r.indexOf(n)!==-1)return!1;r.push(n);let i=Ml(n);if(Ll(n,i,n===e))return!1;if(Fl(n,t))return!0;n=i}return!1},Bl=(e,t)=>e!=null&&zl(e,t)?e[t]:void 0,Vl=e=>{if(e==null||typeof e!=`object`&&typeof e!=`function`)return e;let t=Ml(e);if(t===null&&Rl(e))return e;let n=Object.create(null),r=Object.create(null),i=[],a=e;for(;a!=null&&i.indexOf(a)===-1;){i.push(a);let o=a===e?t:Ml(a);if(Ll(a,o,a===e))break;let s=Object.getOwnPropertyNames(a);Object.getOwnPropertySymbols&&s.push(...Object.getOwnPropertySymbols(a));for(let t of s)Il(t)||Fl(r,t)||(n[t]=e[t],r[t]=!0);a=o}return n},Hl=(e=>t=>{let n=jl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ul=e=>(e=e.toLowerCase(),t=>Hl(t)===e),Wl=e=>t=>typeof t===e,{isArray:Gl}=Array,Kl=Wl(`undefined`);function ql(e){return e!==null&&!Kl(e)&&e.constructor!==null&&!Kl(e.constructor)&&Zl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var Jl=Ul(`ArrayBuffer`);function Yl(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Jl(e.buffer),t}var Xl=Wl(`string`),Zl=Wl(`function`),Ql=Wl(`number`),$l=e=>typeof e==`object`&&!!e,eu=e=>e===!0||e===!1,tu=e=>{if(!$l(e))return!1;let t=Ml(e);return(t===null||t===Object.prototype||Ml(t)===null)&&!zl(e,Pl)&&!zl(e,Nl)},nu=e=>{if(!$l(e)||ql(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ru=Ul(`Date`),iu=Ul(`File`),au=e=>!!(e&&e.uri!==void 0),ou=e=>e&&e.getParts!==void 0,su=Ul(`Blob`),cu=Ul(`FileList`),lu=Ul(`Set`),uu=e=>$l(e)&&Zl(e.pipe);function du(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var fu=du(),pu=fu.FormData===void 0?void 0:fu.FormData,mu=e=>{if(!e)return!1;if(pu&&e instanceof pu)return!0;let t=Ml(e);if(!t||t===Object.prototype||!Zl(e.append))return!1;let n=Hl(e);return n===`formdata`||n===`object`&&Zl(e.toString)&&e.toString()===`[object FormData]`},hu=Ul(`URLSearchParams`),[gu,_u,vu,yu]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Ul),bu=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function xu(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Gl(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var Cu=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,wu=e=>!Kl(e)&&e!==Cu;function Tu(...e){let{caseless:t,skipUndefined:n}=wu(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&Su(r,i)||i,o=Fl(r,a)?r[a]:void 0;tu(o)&&tu(e)?r[a]=Tu(o,e):tu(e)?r[a]=Tu({},e):Gl(e)?r[a]=e.slice():(!n||!Kl(e))&&(r[a]=e)};for(let t=0,n=e.length;t(xu(t,(t,r)=>{n&&Zl(t)?Object.defineProperty(e,r,{__proto__:null,value:Al(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Du=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ou=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},ku=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Ml(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Au=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},ju=e=>{if(!e)return null;if(Gl(e))return e;let t=e.length;if(!Ql(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Mu=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Ml(Uint8Array)),Nu=(e,t)=>{let n=(e&&e[Nl]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Pu=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fu=Ul(`HTMLFormElement`),Iu=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Lu}=Object.prototype,Ru=Ul(`RegExp`),zu=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};xu(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Bu=e=>{zu(e,(t,n)=>{if(Zl(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Zl(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Vu=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Gl(e)?r(e):r(String(e).split(t)),n},Hu=()=>{},Uu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wu(e){return!!(e&&Zl(e.append)&&e[Pl]===`FormData`&&e[Nl])}var Gu=e=>{let t=new WeakSet,n=e=>{if($l(e)){if(t.has(e))return;if(ql(e))return e;if(!(`toJSON`in e)){t.add(e);let r;if(lu(e)){r=[];for(let t of e){let e=n(t);!Kl(e)&&r.push(e)}}else r=Gl(e)?[]:{},xu(e,(e,t)=>{let i=n(e);!Kl(i)&&(r[t]=i)});return t.delete(e),r}}return e};return n(e)},Ku=Ul(`AsyncFunction`),qu=e=>e&&($l(e)||Zl(e))&&Zl(e.then)&&Zl(e.catch),Ju=((e,t)=>e?setImmediate:t?((e,t)=>(Cu.addEventListener(`message`,({source:n,data:r})=>{n===Cu&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),Cu.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Zl(Cu.postMessage)),Yu=typeof queueMicrotask<`u`?queueMicrotask.bind(Cu):typeof process<`u`&&process.nextTick||Ju,Xu=e=>e!=null&&Zl(e[Nl]),Y={isArray:Gl,isArrayBuffer:Jl,isBuffer:ql,isFormData:mu,isArrayBufferView:Yl,isString:Xl,isNumber:Ql,isBoolean:eu,isObject:$l,isPlainObject:tu,isEmptyObject:nu,isReadableStream:gu,isRequest:_u,isResponse:vu,isHeaders:yu,isUndefined:Kl,isDate:ru,isFile:iu,isReactNativeBlob:au,isReactNative:ou,isBlob:su,isRegExp:Ru,isFunction:Zl,isStream:uu,isURLSearchParams:hu,isTypedArray:Mu,isFileList:cu,forEach:xu,merge:Tu,extend:Eu,trim:bu,stripBOM:Du,inherits:Ou,toFlatObject:ku,kindOf:Hl,kindOfTest:Ul,endsWith:Au,toArray:ju,forEachEntry:Nu,matchAll:Pu,isHTMLForm:Fu,hasOwnProperty:Fl,hasOwnProp:Fl,hasOwnInPrototypeChain:zl,getSafeProp:Bl,toSafeFlatObject:Vl,reduceDescriptors:zu,freezeMethods:Bu,toObjectSet:Vu,toCamelCase:Iu,noop:Hu,toFiniteNumber:Uu,findKey:Su,global:Cu,isContextDefined:wu,isSpecCompliantForm:Wu,toJSONObject:Gu,isAsyncFn:Ku,isThenable:qu,setImmediate:Ju,asap:Yu,isIterable:Xu,isSafeIterable:e=>e!=null&&zl(e,Nl)&&Xu(e)},Zu=Y.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Qu=e=>{let t={},n,r,i;return e&&e.split(` +`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim();let a=Y.hasOwnProp(t,n);!n||a&&Y.hasOwnProp(Zu,n)||(n===`set-cookie`?a?t[n].push(r):t[n]=[r]:t[n]=a?t[n]+`, `+r:r)}),t};function $u(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var ed=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),td=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function nd(e,t){return Y.isArray(e)?e.map(e=>nd(e,t)):$u(String(e).replace(t,``))}var rd=e=>nd(e,ed),id=e=>nd(e,td);function ad(e){let t=Object.create(null);return Y.forEach(e.toJSON(),(e,n)=>{t[n]=id(e)}),t}var od=Symbol(`internals`);function sd(e){return e&&String(e).trim().toLowerCase()}function cd(e){return e===!1||e==null?e:Y.isArray(e)?e.map(cd):rd(String(e))}function ld(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var ud=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function dd(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}function fd(e){let t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let n=``;for(let r=1;r=t))return e;n+=e[r]}return n}function pd(e){let t=Object.create(null),n=String(e),r=0,i=!1,a=!1;function o(e){let i=dd(n.slice(r,e)),a=i.indexOf(`=`);if(a<1)return;let o=dd(i.slice(0,a));if(!ud.test(o))return;let s=o.toLowerCase();if(s===`__proto__`||s===`constructor`||s===`prototype`)return;let c=dd(i.slice(a+1));t[s]=fd(c)}for(let e=0;e/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function hd(e,t,n,r,i){if(Y.isFunction(r))return r.call(this,t,n);if(i&&(t=n),Y.isString(t)){if(Y.isString(r))return t.indexOf(r)!==-1;if(Y.isRegExp(r))return r.test(t)}}function gd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function _d(e,t){let n=Y.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var vd=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=sd(t);if(!i)return;let a=Y.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=cd(e))}let a=(e,t)=>Y.forEach(e,(e,n)=>i(e,n,t));if(Y.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(Y.isString(e)&&(e=e.trim())&&!md(e))a(Qu(e),t);else if(Y.isObject(e)&&Y.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!Y.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],Y.hasOwnProp(n,i)?(r=n[i],n[i]=Y.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=sd(e),e){let n=Y.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return ld(e);if(Y.isFunction(t))return t.call(this,e,n);if(Y.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=sd(e),e){let n=Y.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||hd(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=sd(e),e){let i=Y.findKey(n,e);i&&(!t||hd(n,n[i],i,t))&&(delete n[i],r=!0)}}return Y.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||hd(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return Y.forEach(this,(r,i)=>{let a=Y.findKey(n,i);if(a){t[a]=cd(r),delete t[i];return}let o=e?gd(i):String(i).trim();o!==i&&delete t[i],t[o]=cd(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return Y.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&Y.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` +`)}getSetCookie(){let e=this.get(`set-cookie`);return Y.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return pd(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[od]=this[od]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=sd(e);t[r]||(_d(n,e),t[r]=!0)}return Y.isArray(e)?e.forEach(r):r(e),this}};vd.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),Y.reduceDescriptors(vd.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),Y.freezeMethods(vd);var yd=`[REDACTED ****]`;function bd(e){if(Y.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(Y.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function xd(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||Y.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof vd&&(e=e.toJSON()),r.push(e);let t;if(Y.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);Y.isUndefined(r)||(t[n]=r)});else{if(!Y.isPlainObject(e)&&bd(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?yd:i(a);Y.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}function Sd(e){try{return String(e)}catch{return``}}function Cd(e){return e.errors.map(e=>{try{return e&&e.message?Sd(e.message):Sd(e)}catch{return``}}).filter(Boolean).join(`; `)||e.name||`AggregateError`}var X=class e extends Error{static from(t,n,r,i,a,o){let s=t.message;!s&&Y.isArray(t.errors)&&t.errors.length&&(s=Cd(t));let c=new e(s,n||t.code,r,i,a);return Object.defineProperty(c,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),c.name=t.name,t.status!=null&&c.status==null&&(c.status=t.status),o&&Object.assign(c,o),c}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&Y.hasOwnProp(e,`redact`)?e.redact:void 0,n=Y.isArray(t)&&t.length>0?xd(e,t):Y.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};X.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,X.ERR_BAD_OPTION=`ERR_BAD_OPTION`,X.ECONNABORTED=`ECONNABORTED`,X.ETIMEDOUT=`ETIMEDOUT`,X.ECONNREFUSED=`ECONNREFUSED`,X.ERR_NETWORK=`ERR_NETWORK`,X.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,X.ERR_DEPRECATED=`ERR_DEPRECATED`,X.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,X.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,X.ERR_CANCELED=`ERR_CANCELED`,X.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,X.ERR_INVALID_URL=`ERR_INVALID_URL`,X.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function wd(e){return Y.isPlainObject(e)||Y.isArray(e)}function Td(e){return Y.endsWith(e,`[]`)?e.slice(0,-2):e}function Ed(e,t,n){return e?e.concat(t).map(function(e,t){return e=Td(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function Dd(e){return Y.isArray(e)&&!e.some(wd)}var Od=Y.toFlatObject(Y,{},null,function(e){return/^is[A-Z]/.test(e)});function kd(e,t,n){if(!Y.isObject(e))throw TypeError(`target must be an object`);t||=new FormData;let r=(e,t)=>{let r=Y.getSafeProp(n,e);return Y.isUndefined(r)?t:r},i=r(`metaTokens`,!0),a=r(`visitor`)||h,o=r(`dots`,!1),s=r(`indexes`,!1),c=r(`Blob`)||typeof Blob<`u`&&Blob,l=r(`maxDepth`,100),u=c&&Y.isSpecCompliantForm(t),d=[];if(!Y.isFunction(a))throw TypeError(`visitor must be a function`);function f(e){if(e===null)return``;if(Y.isDate(e))return e.toISOString();if(Y.isBoolean(e))return e.toString();if(!u&&Y.isBlob(e))throw new X(`Blob is not supported. Use a Buffer instead.`);if(Y.isArrayBuffer(e)||Y.isTypedArray(e)){if(u&&typeof c==`function`)return new c([e]);throw new X(`Blob is not supported. Use a Buffer instead.`,X.ERR_NOT_SUPPORT)}return e}function p(e){if(e>l)throw new X(`Object is too deeply nested (`+e+` levels). Max depth: `+l,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function m(e,t){if(l===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!Y.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),p(t+n.length-1),r})}function h(e,n,r){let a=e;if(Y.isReactNative(t)&&Y.isReactNativeBlob(e))return t.append(Ed(r,n,o),f(e)),!1;if(e&&!r&&typeof e==`object`){if(Y.endsWith(n,`{}`))n=i?n:n.slice(0,-2),e=m(e,1);else if(Y.isArray(e)&&Dd(e)||(Y.isFileList(e)||Y.endsWith(n,`[]`))&&(a=Y.toArray(e)))return n=Td(n),a.forEach(function(e,r){!(Y.isUndefined(e)||e===null)&&t.append(s===!0?Ed([n],r,o):s===null?n:n+`[]`,f(e))}),!1}return wd(e)?!0:(t.append(Ed(r,n,o),f(e)),!1)}let g=Object.assign(Od,{defaultVisitor:h,convertValue:f,isVisitable:wd});function _(e,n,r=0){if(!Y.isUndefined(e)){if(p(r),d.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));d.push(e),Y.forEach(e,function(e,i){(!(Y.isUndefined(e)||e===null)&&a.call(t,e,Y.isString(i)?i.trim():i,n,g))===!0&&_(e,n?n.concat(i):[i],r+1)}),d.pop()}}if(!Y.isObject(e))throw TypeError(`data must be an object`);return _(e),t}function Ad(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function jd(e,t){this._pairs=[],e&&kd(e,this,t)}var Md=jd.prototype;Md.append=function(e,t){this._pairs.push([e,t])},Md.toString=function(e){let t=e?t=>e.call(this,t,Ad):Ad;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Nd(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function Pd(e,t,n){if(!t)return e;e||=``;let r=Y.isFunction(n)?{serialize:n}:n,i=Y.getSafeProp(r,`encode`)||Nd,a=Y.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):Y.isURLSearchParams(t)?t.toString():new jd(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var Fd=Symbol(`internals`);function Id(e){return e?e.length:0}function Ld(e){if(e)for(;e.length&&e[e.length-1]===null;)e.pop()}function Rd(e,t){let n=e.handlers,r=Id(n);n===t.handlersRef?r!==t.handlersLength&&(r?t.handlerEntries.forEach(function(e,r){n[e.index]!==e.handler&&t.handlerEntries.delete(r)}):t.handlerEntries.clear()):(t.handlersRef=n,t.handlerEntries.clear()),t.handlersLength=r}var zd=class{constructor(){this.handlers=[],this[Fd]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,t,n){let r={fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null},i=this[Fd];this.handlers??=[],Rd(this,i);let a=i.nextId++;return this.handlers.push(r),i.handlerEntries.set(a,{handler:r,index:this.handlers.length-1}),i.handlersLength=this.handlers.length,a}eject(e){let t=this[Fd];Rd(this,t);let n=t.handlerEntries.get(e);if(n){if(t.handlerEntries.delete(e),this.handlers[n.index]!==n.handler)return;this.handlers[n.index]=null,t.iterationDepth||(Ld(this.handlers),t.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Rd(this,this[Fd]))}forEach(e){let t=this[Fd];Rd(this,t),t.iterationDepth++;try{Y.forEach(this.handlers,function(t){t!==null&&e(t)})}finally{--t.iterationDepth||(Rd(this,t),Ld(this.handlers),t.handlersLength=Id(this.handlers))}}},Bd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Vd={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:jd,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Hd=t({hasBrowserEnv:()=>Ud,hasStandardBrowserEnv:()=>Gd,hasStandardBrowserWebWorkerEnv:()=>Kd,navigator:()=>Wd,origin:()=>qd}),Ud=typeof window<`u`&&typeof document<`u`,Wd=typeof navigator==`object`&&navigator||void 0,Gd=Ud&&(!Wd||[`ReactNative`,`NativeScript`,`NS`].indexOf(Wd.product)<0),Kd=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,qd=Ud&&window.location.href||`http://localhost`,Z={...Hd,...Vd};function Jd(e,t){return kd(e,new Z.classes.URLSearchParams,{visitor:function(e,t,n,r){return Z.isNode&&Y.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var Yd=100;function Xd(e){if(e>Yd)throw new X(`FormData field is too deeply nested (`+e+` levels). Max depth: `+Yd,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Zd(e){let t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g,r;for(;(r=n.exec(e))!==null;)Xd(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Qd(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&Y.isArray(r)?r.length:a,s?(Y.hasOwnProp(r,a)?r[a]=Y.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!Y.hasOwnProp(r,a)||!Y.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&Y.isArray(r[a])&&(r[a]=Qd(r[a])),!o)}if(Y.isFormData(e)&&Y.isFunction(e.entries)){let n={};return Y.forEachEntry(e,(e,r)=>{t(Zd(e),r,n,0)}),n}return null}var ef=Object.freeze([`get`,`delete`,`head`,`options`,`post`,`put`,`patch`,`purge`,`link`,`unlink`,`query`]),tf=(e,t)=>e!=null&&Y.hasOwnProp(e,t)?e[t]:void 0;function nf(e,t,n){if(Y.isString(e))try{return(t||JSON.parse)(e),Y.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var rf={transitional:Bd,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=Y.isObject(e);if(i&&Y.isHTMLForm(e)&&(e=new FormData(e)),Y.isFormData(e))return r?JSON.stringify($d(e)):e;if(Y.isArrayBuffer(e)||Y.isBuffer(e)||Y.isStream(e)||Y.isFile(e)||Y.isBlob(e)||Y.isReadableStream(e))return e;if(Y.isArrayBufferView(e))return e.buffer;if(Y.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=tf(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Jd(e,t).toString();if((a=Y.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=tf(this,`env`),r=n&&n.FormData;return kd(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),nf(e)):e}],transformResponse:[function(e){let t=tf(this,`transitional`)||rf.transitional,n=t&&t.forcedJSONParsing,r=tf(this,`responseType`),i=r===`json`;if(Y.isResponse(e)||Y.isReadableStream(e))return e;if(e&&Y.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,tf(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?X.from(e,X.ERR_BAD_RESPONSE,this,null,tf(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};Y.forEach(ef,e=>{rf.headers[e]={}});function af(e,t){let n=this||rf,r=t||n,i=vd.from(r.headers),a=r.data;return Y.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function of(e){return!!(e&&e.__CANCEL__)}var sf=class extends X{constructor(e,t,n){super(e??`canceled`,X.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function cf(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X(`Request failed with status code `+n.status,n.status>=400&&n.status<500?X.ERR_BAD_REQUEST:X.ERR_BAD_RESPONSE,n.config,n.request,n))}var lf=/[\t\n\r]/g;function uf(e){if(typeof e!=`string`)return e;let t=0;for(;t{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i),(...e)=>o(e)]}var mf=(e,t,n=3)=>{let r=0,i=ff(50,250);return pf(n=>{if(!n||!Y.isNumber(n.loaded))return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=Math.max(0,o==null?a:Math.min(a,o)),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},hf=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gf=(e,t=Y.asap)=>(...n)=>t(()=>e(...n)),_f=Z.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Z.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,vf=Z.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];Y.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),Y.isString(r)&&s.push(`path=${r}`),Y.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),Y.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n0&&e.charCodeAt(n-1)===47;)n--;return e.slice(0,n)+`/`+t.replace(/^\/+/,``)}var xf=/^https?:(?!\/\/)/i;function Sf(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,t,n=``)=>`${t}${n}${yd}`)}function Cf(e){let t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${yd}@`),n=t.indexOf(`#`),r=(n===-1?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${yd}`);return n===-1?r:`${r}#${Sf(t.slice(n+1))}`}function wf(e,t){if(typeof e==`string`){let n=uf(e);if(xf.test(n))throw new X(`Invalid URL ${JSON.stringify(Cf(n))}: missing "//" after protocol`,X.ERR_INVALID_URL,t)}}function Tf(e,t,n,r){wf(t,r);let i=!yf(t);return e&&(i||n===!1)?(wf(e,r),bf(e,t)):t}var Ef=e=>e instanceof vd?{...e}:e,Df=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function Of(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return Y.isPlainObject(e)&&Y.isPlainObject(t)?Y.merge.call({caseless:r},e,t):Y.isPlainObject(t)?Y.merge({},t):Y.isArray(t)?t.slice():t}function i(e,t,n,i){if(!Y.isUndefined(t))return r(e,t,n,i);if(!Y.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!Y.isUndefined(t))return r(void 0,t)}function o(e,t){if(!Y.isUndefined(t))return r(void 0,t);if(!Y.isUndefined(e))return r(void 0,e)}function s(n){let r=Y.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!Y.isUndefined(r)){if(Y.isPlainObject(r)){if(Y.hasOwnProp(r,n))return r[n]}else return}let i=Y.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(Y.isPlainObject(i)&&Y.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(Y.hasOwnProp(t,a))return r(n,i);if(Y.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutErrorMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Ef(e),Ef(t),n,!0)};return Y.forEach(Df({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=Y.hasOwnProp(l,r)?l[r]:i,o=a(Y.hasOwnProp(e,r)?e[r]:void 0,Y.hasOwnProp(t,r)?t[r]:void 0,r);Y.isUndefined(o)&&a!==c||(n[r]=o)}),Y.hasOwnProp(t,`validateStatus`)&&Y.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(Y.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var kf=[`content-type`,`content-length`];function Af(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{kf.includes(t.toLowerCase())&&e.set(t,n)})}var jf=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Mf(e){let t=Of({},e),n=e=>Y.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=vd.from(s),t.url=Pd(Tf(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=Y.getSafeProp(c,`username`)||``,n=Y.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?jf(n):``)))}catch(t){throw X.from(t,X.ERR_BAD_OPTION_VALUE,e)}}if(Y.isFormData(r)){let e=Y.getSafeProp(r,`getHeaders`);Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv||Y.isReactNative(r)?s.setContentType(void 0):Y.isFunction(e)&&Af(s,e.call(r),n(`formDataHeaderPolicy`))}if(Z.hasStandardBrowserEnv&&(Y.isFunction(i)&&(i=i(t)),i===!0||i==null&&_f(t.url))){let e=a&&o&&vf.read(o);e&&s.set(a,e)}return t}var Nf=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Mf(e),i=r.data,a=vd.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p,m;function h(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let g=new XMLHttpRequest;g.open(r.method.toUpperCase(),r.url,!0),g.timeout=r.timeout;function _(i){if(!g)return;if(g.status===0&&(df(uf(r.url))||df(Z.origin))!==`file`&&!(g.responseURL&&g.responseURL.startsWith(`file:`))){n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),g=null;return}try{i?m&&m(i):p&&p()}catch(e){setTimeout(()=>{throw e})}if(!g)return;let a=vd.from(`getAllResponseHeaders`in g&&g.getAllResponseHeaders());cf(function(e){t(e),h()},function(e){n(e),h()},{data:!o||o===`text`||o===`json`?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:a,config:e,request:g}),g=null}`onloadend`in g?g.onloadend=_:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith(`file:`))||setTimeout(_)},g.onabort=function(){g&&=(n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),null)},g.onerror=function(t){let r=new X(t&&t.message?t.message:`Network Error`,X.ERR_NETWORK,e,g);r.event=t||null,n(r),h(),g=null},g.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Bd;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new X(t,i.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,g)),h(),g=null},i===void 0&&a.setContentType(null),`setRequestHeader`in g&&Y.forEach(ad(a),function(e,t){g.setRequestHeader(t,e)}),Y.isUndefined(r.withCredentials)||(g.withCredentials=!!r.withCredentials),o&&o!==`json`&&(g.responseType=r.responseType),c&&([d,p,m]=mf(c,!0),g.addEventListener(`progress`,d)),s&&g.upload&&([u,f]=mf(s),g.upload.addEventListener(`progress`,u),g.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{g&&=(n(!t||t.type?new sf(null,e,g):t),g.abort(),h(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let v=df(r.url);if(v&&!Z.protocols.includes(v)){n(new X(`Unsupported protocol `+v+`:`,X.ERR_BAD_REQUEST,e)),h();return}g.send(i||null)})},Pf=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new sf(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new X(`timeout of ${t}ms exceeded`,X.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>{if(!r){if(e.aborted){i.call(e);return}e.addEventListener(`abort`,i,{once:!0})}});let{signal:s}=n;return s.unsubscribe=()=>Y.asap(o),s},Ff=function*(e,t){let n=e.byteLength;if(!t||n{let i=If(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},zf=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Bf=(e,t,n)=>t+2e<=57?e-48:(e&223)-55,Hf=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,Uf=e=>e===9||e===10||e===12||e===13||e===32,Wf=e=>{let t=Math.floor(e/4),n=e%4;return t*3+(n===2?1:n===3?2:0)},Gf=e=>{let t=e.length,n=0;return t>0&&e.charCodeAt(t-1)===61&&(n++,t>1&&e.charCodeAt(t-2)===61&&n++),Math.floor((t-n)*3/4)},Kf=e=>{let t=e.length,n=0,r=0,i=!1;for(let a=0;a0){i=!0;continue}n++}}return i||r>2||r>0&&(n+r)%4!=0||n%4==1?Gf(e):Wf(n)},qf=(e,t)=>{if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let n=e.indexOf(`,`);if(n<0)return 0;let r=e.slice(5,n),i=e.slice(n+1);if(/;base64/i.test(r))return t(i);let a=0;for(let e=0,t=i.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(a+=4,e++):a+=3}else a+=3}return a};function Jf(e){let t=typeof e==`string`?e.indexOf(`#`):-1;return qf(t===-1?e:e.slice(0,t),Kf)}var Yf=`1.20.0`,Xf=65536,Zf={cache:`default`,redirect:`follow`,referrer:`about:client`,referrerPolicy:``,mode:`cors`,integrity:``,keepalive:!1,priority:`auto`,window:null},{isFunction:Qf}=Y,$f=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),ep=e=>{if(!Y.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},tp=(e,...t)=>{try{return!!e(...t)}catch{return!1}},np=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},rp=e=>{let t=Y.global!==void 0&&Y.global!==null?Y.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=Y.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Qf(i):typeof fetch==`function`,c=Qf(a),l=Qf(o);if(!s)return!1;let u=s&&Qf(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&tp(()=>{let e=!1,t=new a(Z.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&tp(()=>Y.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(Y.isBlob(e))return e.size;if(Y.isSpecCompliantForm(e))return(await new a(Z.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(Y.isArrayBufferView(e)||Y.isArrayBuffer(e))return e.byteLength;if(Y.isURLSearchParams(e)&&(e+=``),Y.isString(e))return(await d(e)).byteLength},g=async(e,t)=>Y.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:ee,maxRedirects:te}=Mf(e),ne=Y.isNumber(w)&&w>-1,re=Y.isNumber(ee)&&ee>-1,ie=t=>Y.hasOwnProp(e,t)?e[t]:void 0,T=i||fetch;b=b?(b+``).toLowerCase():`text`;let E=Pf([l,d&&d.toAbortSignal()],_),D=null,O=E&&E.unsubscribe&&(()=>{E.unsubscribe()}),ae,k=null,oe=()=>new X(`Request body larger than maxBodyLength limit`,X.ERR_BAD_REQUEST,e,D);try{let i,l=ie(`auth`);if(l&&(i={username:Y.getSafeProp(l,`username`)||``,password:Y.getSafeProp(l,`password`)||``}),np(t)){let e=new URL(t,Z.origin);!i&&(e.username||e.password)&&(i={username:ep(e.username),password:ep(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa($f((i.username||``)+`:`+(i.password||``))))),ne&&typeof t==`string`&&t.startsWith(`data:`)&&Jf(t)>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);if(re&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(ae=e,e>ee))throw oe()}let d=re&&(Y.isReadableStream(s)||Y.isStream(s)),_=(e,t,n)=>Rf(e,Xf,e=>{if(re&&e>ee)throw k=oe();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(ae??=await g(x,s),ae!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(Y.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&hf(ae,mf(gf(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new X(`Stream request bodies are not supported by the current fetch implementation`,X.ERR_NOT_SUPPORT,e,D);Y.isString(S)||(S=S?`include`:`omit`);let se=c&&`credentials`in a.prototype;if(Y.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+Yf,!1);let A=C==null?C:Object.assign(Object.create(null),C);A&&(delete A.body,delete A.headers,delete A.method,delete A.signal,delete A.duplex,delete A.credentials);let j=Object.assign(Object.create(null),A,{signal:E,method:n.toUpperCase(),headers:ad(x.normalize()),body:s,duplex:`half`,credentials:se?S:void 0});c&&(Y.forEach(Zf,(e,t)=>{j[t]===void 0&&(j[t]=e)}),j.signal===void 0&&(j.signal=null),j.body===void 0&&(j.body=null)),te===0&&(j.redirect=`manual`,A&&(A.redirect=`manual`)),D=c&&new a(t,j);let M=await(c?T(D,A):T(t,j)),ce=vd.from(M.headers);if(ne){let t=Y.toFiniteNumber(ce.getContentLength());if(t!=null&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}let le=p&&(b===`stream`||b===`response`);if(p&&M.body&&(v||ne||le&&O)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=M[e]});let n=Y.toFiniteNumber(ce.getContentLength()),[r,i]=v&&hf(n,mf(gf(v),!0))||[],a=0;M=new o(Rf(M.body,Xf,t=>{if(ne&&(a=t,a>w))throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);r&&r(t)},()=>{i&&i(),O&&O()}),t)}b||=`text`;let ue=await m[Y.findKey(m,b)||`text`](M,e);if(ne&&!p&&!le){let t;if(ue!=null&&(typeof ue.byteLength==`number`?t=ue.byteLength:typeof ue.size==`number`?t=ue.size:typeof ue==`string`&&(t=typeof r==`function`?new r().encode(ue).byteLength:ue.length)),typeof t==`number`&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}return!le&&O&&O(),await new Promise((t,n)=>{cf(t,n,{data:ue,headers:vd.from(M.headers),status:M.status,statusText:M.statusText,config:e,request:D})})}catch(t){if(O&&O(),E&&E.aborted&&E.reason instanceof X){let n=E.reason;throw n.config=e,D&&(n.request=D),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(k)throw D&&!k.request&&(k.request=D),k;if(t instanceof X)throw D&&!t.request&&(t.request=D),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new X(`Network Error`,X.ERR_NETWORK,e,D,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw X.from(t,t&&t.code,e,D,t&&t.response)}}},ip=new Map,ap=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=ip;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:rp(t)),l=c;return c};ap();var op={http:null,xhr:Nf,fetch:{get:ap}};Y.forEach(op,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var sp=e=>`- ${e}`,cp=e=>Y.isFunction(e)||e===null||e===!1;function lp(e,t){e=Y.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new X(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : +`+e.map(sp).join(` +`):` `+sp(e[0]):`as no adapter specified`),X.ERR_NOT_SUPPORT)}return i}var up={getAdapter:lp,adapters:op};function dp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new sf(null,e)}function fp(e){let t=Y.toSafeFlatObject(e);return dp(t),t.headers=vd.from(Y.getSafeProp(t,`headers`)),t.data=af.call(t,t.transformRequest),[`post`,`put`,`patch`].indexOf(t.method)!==-1&&t.headers.setContentType(`application/x-www-form-urlencoded`,!1),up.getAdapter(t.adapter||rf.adapter,t)(t).then(function(e){dp(t),t.response=e;try{e.data=af.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=vd.from(e.headers),e},function(e){if(!of(e)&&(dp(t),e&&e.response)){t.response=e.response;try{e.response.data=af.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=vd.from(e.response.headers)}return Promise.reject(e)})}var pp={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{pp[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var mp={};pp.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Yf+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new X(r(i,` has been removed`+(t?` in `+t:``)),X.ERR_DEPRECATED);return t&&!mp[i]&&(mp[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},pp.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function hp(e,t,n){if(typeof e!=`object`||!e)throw new X(`options must be an object`,X.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new X(`option `+a+` must be `+n,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X(`Unknown option `+a,X.ERR_BAD_OPTION)}}var gp={assertOptions:hp,validators:pp},_p=gp.validators,vp=class{constructor(e){this.defaults=e||{},this.interceptors={request:new zd,response:new zd}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error)try{let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=t.stack,r=``;if(typeof n==`string`){let e=n.indexOf(` +`);r=e===-1?``:n.slice(e+1)}if(!e.stack)e.stack=r;else if(r){let t=r.indexOf(` +`),n=t===-1?-1:r.indexOf(` +`,t+1),i=n===-1?``:r.slice(n+1);String(e.stack).endsWith(i)||(e.stack+=` +`+r)}}catch{}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Of(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&gp.assertOptions(n,{silentJSONParsing:_p.transitional(_p.boolean),forcedJSONParsing:_p.transitional(_p.boolean),clarifyTimeoutError:_p.transitional(_p.boolean),legacyInterceptorReqResOrdering:_p.transitional(_p.boolean),advertiseZstdAcceptEncoding:_p.transitional(_p.boolean),validateStatusUndefinedResolves:_p.transitional(_p.boolean)},!1),r!=null&&(Y.isFunction(r)?t.paramsSerializer={serialize:r}:gp.assertOptions(r,{encode:_p.function,serialize:_p.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),gp.assertOptions(t,{baseUrl:_p.spelling(`baseURL`),withXsrfToken:_p.spelling(`withXSRFToken`)},!0),t.method=(Y.getSafeProp(t,`method`)||Y.getSafeProp(this.defaults,`method`)||`get`).toLowerCase();let a=i&&Y.merge(i.common,i[t.method]);i&&Y.forEach(ef.concat(`common`),e=>{delete i[e]}),t.headers=vd.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Bd;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[fp.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);ufp.call(this,f)))}catch(e){l=Promise.reject(e)}break}}if(!l)try{l=fp.call(this,f)}catch(e){l=Promise.reject(e)}for(u=0,d=c.length;u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new sf(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function bp(e){return function(t){return e.apply(null,t)}}function xp(e){return Y.isObject(e)&&e.isAxiosError===!0}var Sp={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Sp).forEach(([e,t])=>{Sp[t]===void 0&&(Sp[t]=e)});function Cp(e){let t=new vp(e),n=Al(vp.prototype.request,t);return Y.extend(n,vp.prototype,t,{allOwnKeys:!0}),Y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Cp(Of(e,t))},n}var Q=Cp(rf);Q.Axios=vp,Q.CanceledError=sf,Q.CancelToken=yp,Q.isCancel=of,Q.VERSION=Yf,Q.toFormData=kd,Q.AxiosError=X,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=bp,Q.isAxiosError=xp,Q.mergeConfig=Of,Q.AxiosHeaders=vd,Q.formToJSON=e=>$d(Y.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=up.getAdapter,Q.HttpStatusCode=Sp,Q.default=Q;var $=Q.create({timeout:1e4});async function wp(e,t){let{data:n}=await $.post(`/chat`,{query:e,domain_group:t});return n}async function Tp(e){let{data:t}=await $.get(`/runs/${e}/status`);return t}function Ep(e){let t=new EventSource(`/runs/${e}/stream`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);n.type===`workspace`?e.onWorkspace(n.workspace):n.type===`status`?(e.onStatus(n.value),(n.value===`done`||n.value===`failed`)&&e.onDone()):n.type===`error`&&e.onError(n.detail)}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function Dp(e){let t=e?{status:e}:{},{data:n}=await $.get(`/review/queue`,{params:t});return n}async function Op(e,t,n){let{data:r}=await $.post(`/review/${e}`,null,{params:{verdict:t,correction:n}});return r}async function kp(){let{data:e}=await $.get(`/api/metrics`);return e}async function Ap(){let{data:e}=await $.get(`/config`);return e}async function jp(e){let{data:t}=await $.put(`/config`,e);return t}async function Mp(){let{data:e}=await $.post(`/config/reset`);return e}async function Np(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/models`,{params:r});return i}async function Pp(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/ping`,{params:r});return i}async function Fp(){let{data:e}=await $.get(`/llama/status`);return e}async function Ip(){let{data:e}=await $.get(`/llama/models`);return e.models}async function Lp(e,t=8901,n=99,r=4096){let{data:i}=await $.post(`/llama/start`,null,{params:{model:e,port:t,ngl:n,ctx:r}});return i}async function Rp(){let{data:e}=await $.post(`/llama/stop`);return e}async function zp(e,t){let n={url:e};t&&(n.dest=t);let{data:r}=await $.post(`/llama/download`,null,{params:n});return r}function Bp(e){let t=new EventSource(`/llama/download/stream?url=${encodeURIComponent(e)}`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);e.onProgress(n),n.done&&e.onDone(n)}),t.addEventListener(`error`,()=>{t.close()})},close(){t.close()}}}async function Vp(){let{data:e}=await $.get(`/pool`);return e}async function Hp(e){let{data:t}=await $.post(`/pool`,e);return t}async function Up(e){let{data:t}=await $.delete(`/pool/${e}`);return t}async function Wp(e){let{data:t}=await $.put(`/pool/roles`,e);return t}async function Gp(e){let{data:t}=await $.post(`/pool/${e}/test`);return t}async function Kp(e){let{data:t}=await $.get(`/pool/${e}/models`);return t}async function qp(e,t,n,r,i){let{data:a}=await $.post(`/agent`,{task:e,pool_id:t||void 0,workspace:n||void 0,executor_pool_id:r||void 0,session_id:i||void 0});return a}async function Jp(e){let{data:t}=await $.post(`/agent/${e}/cancel`);return t}async function Yp(e,t,n){let{data:r}=await $.post(`/agent/sessions`,{title:n||void 0,workspace:e||void 0,executor_pool_id:t||void 0});return r}async function Xp(){let{data:e}=await $.get(`/agent/sessions`);return e}async function Zp(e){let{data:t}=await $.get(`/agent/sessions/${e}`);return t}async function Qp(e){let{data:t}=await $.delete(`/agent/sessions/${e}`);return t}async function $p(e){let{data:t}=await $.get(`/agent/${e}/status`);return t}async function em(e=``){let{data:t}=await $.get(`/agent/fs`,{params:e?{path:e}:{}});return t}async function tm(){let{data:e}=await $.get(`/agent/workspaces`);return e}async function nm(e,t=!1){let{data:n}=await $.post(`/agent/workspaces`,{path:e,create:t});return n}function rm(e){let t=new EventSource(`/agent/${e}/stream`),n=!1;return{subscribe(e){t.addEventListener(`message`,r=>{if(n)return;let i=JSON.parse(r.data);e.onEvent(i),i.type===`final`&&(n=!0,t.close(),e.onDone())}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function im(e,{timeout:t=6e4,interval:n=500}={}){let r=Date.now();for(;Date.now()-rsetTimeout(e,n))}throw Error(`poll timeout`)}var am=xs(`chat`,()=>{let e=R([]),t=R(null),n=()=>e.value.find(e=>e.requestId===t.value)??null;async function r(n){let r=await wp(n),i={requestId:r.request_id,query:n,init:r,status:null,workspace:null,error:null};return e.value.unshift(i),t.value=r.request_id,i}async function i(t){let n=await Tp(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}async function a(t){let n=await im(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}function o(t,n){let r=e.value.find(e=>e.requestId===t);r&&(r.workspace=n)}function s(e){t.value=e}return{sessions:e,currentId:t,current:n,sendQuery:r,pollStatus:i,waitForDone:a,updateWorkspace:o,setCurrent:s}}),om={class:`chat-view`},sm={class:`sidebar`},cm={class:`session-list`},lm=[`onClick`],um={class:`s-query`},dm={class:`main`},fm={key:0,class:`empty`},pm={class:`user-msg`},mm={class:`status-bar`},hm={key:0,class:`badge pending`},gm={key:1,class:`badge running`},_m={key:2,class:`badge done`},vm={key:3,class:`badge failed`},ym={key:4,class:`route-path`},bm={key:0,class:`ws-meta`},xm={key:1,class:`assistant-msg`},Sm={key:2,class:`ws-preview`},Cm={key:0,class:`brief-block`},wm={class:`tags`},Tm={key:1,class:`plan-list`},Em={class:`step-id`},Dm={key:0,class:`deps`},Om={key:2,class:`progress-list`},km={key:3,class:`error-msg`},Am=[`disabled`],jm=[`disabled`],Mm=Qn({__name:`ChatView`,setup(e){let t=am(),n=R(``),r=R(!1),i=G(()=>t.current()),a=G(()=>i.value?.status?.status??`pending`),o=G(()=>i.value?.workspace),s=G(()=>i.value?.status?.response??null),c=null;function l(e){c?.close(),c=Ep(e),c.subscribe({onWorkspace(n){t.updateWorkspace(e,n)},onStatus(n){t.pollStatus(e)},onError(n){let r=t.sessions.find(t=>t.requestId===e);r&&(r.error=n)},onDone(){t.pollStatus(e)}})}Hn(()=>t.currentId,e=>{e&&(l(e),i.value?.status?.status===`done`&&t.pollStatus(e))},{immediate:!0});async function u(){if(!n.value.trim()||r.value)return;let e=n.value.trim();n.value=``,r.value=!0;try{l((await t.sendQuery(e)).requestId)}finally{r.value=!1}}return(e,i)=>(V(),H(`div`,om,[U(`aside`,sm,[i[1]||=U(`h3`,null,`会话记录`,-1),U(`ul`,cm,[(V(!0),H(B,null,Dr(z(t).sessions,e=>(V(),H(`li`,{key:e.requestId,class:pe([`session-item`,{active:e.requestId===z(t).currentId}]),onClick:n=>z(t).setCurrent(e.requestId)},[U(`span`,um,N(e.query.slice(0,28))+N(e.query.length>28?`…`:``),1),U(`span`,{class:pe([`s-status`,e.status?.status??`pending`])},N(e.status?.status??`pending`),3)],10,lm))),128))])]),U(`main`,dm,[z(t).current()?(V(),H(B,{key:1},[U(`div`,pm,[i[3]||=U(`span`,{class:`role-label`},`你`,-1),U(`p`,null,N(z(t).current().query),1)]),U(`div`,mm,[a.value===`pending`?(V(),H(`span`,hm,`⏳ 排队中…`)):a.value===`running`?(V(),H(`span`,gm,` 🔄 协作中 (`+N(o.value?.meta.round??0)+`/`+N(o.value?.meta.rounds_cap??6)+`) `,1)):a.value===`done`?(V(),H(`span`,_m,`✅ 完成`)):a.value===`failed`?(V(),H(`span`,vm,`❌ 失败`)):W(``,!0),o.value?(V(),H(`span`,ym,` 路由:`+N(z(t).current().status?.route?.join(` → `)??`—`),1)):W(``,!0)]),o.value?(V(),H(`div`,bm,[U(`span`,null,`tokens: `+N(o.value.meta.api_input_tokens)+` in / `+N(o.value.meta.api_output_tokens)+` out`,1),U(`span`,null,`延迟: `+N(z(t).current().status?.latency_ms?.toFixed(0))+` ms`,1),U(`span`,null,`模型: `+N(z(t).current().status?.model_used??`—`),1)])):W(``,!0),s.value?(V(),H(`div`,xm,[i[4]||=U(`span`,{class:`role-label`},`系统`,-1),U(`pre`,null,N(s.value),1)])):W(``,!0),o.value?(V(),H(`details`,Sm,[i[6]||=U(`summary`,null,`📄 交流文本预览`,-1),o.value.brief?(V(),H(`div`,Cm,[i[5]||=U(`strong`,null,`Brief:`,-1),aa(` `+N(o.value.brief.goal)+` `,1),U(`span`,wm,N(o.value.brief.tags.join(`, `)),1)])):W(``,!0),o.value.plan?.length?(V(),H(`ul`,Tm,[(V(!0),H(B,null,Dr(o.value.plan,e=>(V(),H(`li`,{key:e.id,class:pe(e.status)},[U(`span`,Em,N(e.id),1),U(`span`,null,N(e.task),1),e.deps.length?(V(),H(`span`,Dm,`←`+N(e.deps.join(`,`)),1)):W(``,!0)],2))),128))])):W(``,!0),o.value.progress?.length?(V(),H(`ul`,Om,[(V(!0),H(B,null,Dr(o.value.progress,e=>(V(),H(`li`,{key:e.step,class:pe(e.status)},N(e.step)+`: `+N(e.status),3))),128))])):W(``,!0)])):W(``,!0),z(t).current().error?(V(),H(`div`,km,N(z(t).current().error),1)):W(``,!0)],64)):(V(),H(`div`,fm,[...i[2]||=[U(`p`,null,`输入问题,开启端云协同协作之旅。`,-1),U(`p`,{class:`hint`},`结果通过 SSE 实时推送,可切换「协作」页面查看交流文本可视化。`,-1)]])),U(`form`,{class:`input-bar`,onSubmit:Fo(u,[`prevent`])},[Fn(U(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,placeholder:`输入你的问题…`,disabled:r.value,autofocus:``},null,8,Am),[[To,n.value]]),U(`button`,{type:`submit`,disabled:r.value||!n.value.trim()},N(r.value?`发送中…`:`发送`),9,jm)],32)])]))}}),Nm=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Pm=Nm(Mm,[[`__scopeId`,`data-v-d79f05ea`]]),Fm={class:`agent-view`},Im={class:`sess-panel`},Lm={class:`sess-list`},Rm=[`onClick`],zm={class:`sess-title`},Bm={class:`sess-meta`},Vm=[`onClick`],Hm={key:0,class:`sess-empty`},Um={class:`chat-col`},Wm={key:0,class:`hero`},Gm={class:`hero-tips`},Km=[`onClick`],qm={class:`stream-inner`},Jm={key:0,class:`row user`},Ym={class:`bubble-user`},Xm={key:1,class:`row assistant`},Zm={class:`bubble-ai`},Qm=[`open`],$m={class:`fold-body`},eh={key:0,class:`mini-phase`},th={key:2,class:`mini-row`},nh={class:`mini-args`},rh={key:1,class:`tool-summary`},ih={key:2,class:`ai-text`},ah={key:3,class:`ai-error`},oh={key:4,class:`ai-running`},sh={class:`composer-wrap`},ch={class:`composer`},lh={class:`composer-bar`},uh=[`value`],dh={class:`chip toggle-chip`,title:`开启后智能体可执行 shell 命令`},fh={key:0,class:`composer-err`},ph={class:`composer-main`},mh=[`placeholder`,`disabled`,`onKeydown`],hh=[`disabled`],gh={class:`modal`},_h={class:`crumb`},vh={class:`dir-list`},yh=[`onClick`],bh={key:1,class:`dir-item empty`},xh={class:`path-row`},Sh={class:`create-toggle`},Ch={key:0,class:`recent-row`},wh=[`title`,`onClick`],Th={key:1,class:`picker-msg`},Eh={class:`modal-actions`},Dh=Nm(Qn({__name:`AgentView`,setup(e){let t=[`浏览这个项目,总结目录结构和入口文件`,`运行测试,修复失败的用例,再跑一遍确认`,`给 README 补充安装与运行说明`],n=R([]),r=R(``),i=R([]),a=R(``),o=R(!1),s=R(``),c=R(``),l=R(``),u=R(``),d=R(!1),f=R([]),p=R([]),m=R(!1),h=R(``),g=R({ok:!0,path:``,parent:``,dirs:[]}),_=R(``),v=R(!1),y=R(null),b=null,x=G(()=>p.value.filter(e=>e.enabled&&e.backend!==`mock`).sort((e,t)=>(e.backend===`llama_server`?-1:0)-(t.backend===`llama_server`?-1:0))),S=G(()=>!!a.value.trim()&&!!l.value);function C(e){if(!e)return``;let t=e.replace(/[\\/]+$/,``).split(/[\\/]/);return t[t.length-1]||e}function w(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(`\\`)||e.endsWith(`/`)?e+t:e+n+t}function ee(e){if(!e)return``;let t=new Date(e*1e3);return`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function te(e,t){return String(e??``).slice(0,t)}function ne(e){let t=JSON.stringify(e)??``;return t.length>80?t.slice(0,80)+`…`:t}function re(e){let t=e.model?` · ${e.model}`:``;return e.phase===`plan`?`🧠 规划者 · 拆解任务${t}`:e.phase===`execute`?`🔧 执行者 · 第 ${e.handoff} 轮交接${t}`:`🔍 规划者 · 审查裁决${t}`}function ie(){Sn(()=>y.value?.scrollTo({top:y.value.scrollHeight}))}async function T(){try{n.value=await Xp()}catch{n.value=[]}}function E(e){return typeof e.turns==`number`?e.turns:e.turns.length}async function D(){try{let e=await Yp(l.value,u.value);r.value=e.id,i.value=[],await T()}catch(e){c.value=e?.message||String(e)}}async function O(e){if(!o.value){r.value=e;try{let t=await Zp(e);l.value=t.workspace||l.value,t.executor_pool_id&&(u.value=t.executor_pool_id);let n=t.turns||[];i.value=n.flatMap(e=>[{role:`user`,content:e.task},{role:`assistant`,content:e.response||``,toolCalls:e.tool_calls||0,error:e.error,requestId:e.request_id}]),ie()}catch{i.value=[]}}}async function ae(e){confirm(`删除该会话?`)&&(await Qp(e),r.value===e&&(r.value=``,i.value=[]),T())}async function k(){m.value=!0,h.value=``,_.value=l.value;try{g.value=await em(``)}catch{}}async function oe(e){try{let t=await em(e);t.ok?(g.value=t,_.value=t.path):h.value=t.error||`路径不可用`}catch{h.value=`浏览失败`}}async function se(e){if(e=(e||``).trim(),!e){h.value=`请先选择或输入目录路径`;return}try{let t=await nm(e,v.value);l.value=t.current,f.value=t.recent,m.value=!1}catch(e){h.value=e?.response?.data?.detail||e?.message||String(e)}}async function A(){try{await jp({agent:{allow_shell:d.value}})}catch{d.value=!d.value}}async function j(){if(!S.value||o.value)return;let e=a.value.trim();if(c.value=``,a.value=``,o.value=!0,!r.value)try{let e=await Yp(l.value,u.value);r.value=e.id,T()}catch(t){o.value=!1,c.value=t?.message||String(t),a.value=e;return}i.value.push({role:`user`,content:e});let t={role:`assistant`,content:``,liveEvents:[]};i.value.push(t),ie();try{let n=await qp(e,``,l.value,u.value,r.value);s.value=n.request_id,n.workspace&&(l.value=n.workspace),b=rm(n.request_id),b.subscribe({onEvent:e=>{e.type!==`final`&&(t.liveEvents.push(e),ie())},onDone:async()=>{try{let e=await $p(n.request_id);t.content=e.response||``,!t.content&&!t.error&&(t.content=`(本轮模型未返回文本内容——小模型能力有限或响应为空,可重试或换用更强的模型)`),t.toolCalls=e.tool_calls??t.liveEvents.filter(e=>e.type===`tool_call`).length,t.error=e.error||null}catch{}o.value=!1,s.value=``,T(),ie()}})}catch(n){o.value=!1,t.error=n?.response?.data?.detail||n?.message||String(n),a.value=e}}async function M(){if(s.value)try{await Jp(s.value)}catch{}}return pr(async()=>{T();try{let[e,t]=await Promise.all([Vp(),tm()]);p.value=e.entries,l.value=t.current||``,f.value=t.recent||[]}catch{}}),(e,s)=>(V(),H(`div`,Fm,[U(`aside`,Im,[U(`button`,{class:`new-sess`,onClick:D},`+ 新会话`),U(`div`,Lm,[(V(!0),H(B,null,Dr(n.value,e=>(V(),H(`div`,{key:e.id,class:pe([`sess-item`,{active:e.id===r.value}]),onClick:t=>O(e.id)},[U(`div`,zm,N(e.title),1),U(`div`,Bm,[U(`span`,null,N(E(e))+` 轮`,1),s[9]||=U(`span`,null,`·`,-1),U(`span`,null,N(ee(e.updated_at)),1),U(`span`,{class:`sess-del`,title:`删除会话`,onClick:Fo(t=>ae(e.id),[`stop`])},`✕`,8,Vm)])],10,Rm))),128)),n.value.length?W(``,!0):(V(),H(`div`,Hm,`暂无会话`))])]),U(`main`,Um,[!i.value.length&&!o.value?(V(),H(`div`,Wm,[s[10]||=U(`div`,{class:`hero-logo`},`🤖`,-1),s[11]||=U(`h2`,null,`智能体`,-1),s[12]||=U(`p`,null,`选择工作目录,用一句话派活——读 / 写 / 编辑 / 搜索 / 执行命令全程可视化。`,-1),U(`div`,Gm,[(V(),H(B,null,Dr(t,e=>U(`button`,{key:e,class:`tip-chip`,onClick:t=>a.value=e},N(e),9,Km)),64))])])):(V(),H(`div`,{key:1,class:`stream`,ref_key:`streamEl`,ref:y},[U(`div`,qm,[(V(!0),H(B,null,Dr(i.value,(e,t)=>(V(),H(B,{key:t},[e.role===`user`?(V(),H(`div`,Jm,[U(`div`,Ym,N(e.content),1)])):(V(),H(`div`,Xm,[U(`div`,Zm,[e.liveEvents&&e.liveEvents.length?(V(),H(`details`,{key:0,class:`tool-fold`,open:o.value&&t===i.value.length-1},[U(`summary`,null,`⚙ 工具执行过程(`+N(e.liveEvents.length)+` 条事件)`,1),U(`div`,$m,[(V(!0),H(B,null,Dr(e.liveEvents,(e,t)=>(V(),H(B,{key:t},[e.type===`phase`?(V(),H(`div`,eh,N(re(e)),1)):e.type===`message`?(V(),H(`div`,{key:1,class:pe([`mini-msg`,e.role===`planner`?`mp`:`me`])},N(e.role===`planner`?`🧠`:`🔧`)+` `+N(te(e.content,300)),3)):e.type===`tool_call`?(V(),H(`div`,th,[s[13]||=aa(` 🛠️ `,-1),U(`b`,null,N(e.name),1),U(`span`,nh,N(ne(e.arguments)),1)])):e.type===`tool_result`?(V(),H(`div`,{key:3,class:pe([`mini-row`,e.ok?`ok`:`err`])},N(e.ok?`✓`:`✕`)+` `+N(e.name)+` · `+N(te(e.preview,120)),3)):W(``,!0)],64))),128))])],8,Qm)):e.toolCalls?(V(),H(`div`,rh,`⚙ 执行了 `+N(e.toolCalls)+` 步工具调用`,1)):W(``,!0),e.content?(V(),H(`div`,ih,N(e.content),1)):e.error?(V(),H(`div`,ah,`❌ `+N(e.error),1)):o.value&&t===i.value.length-1?(V(),H(`div`,oh,[...s[14]||=[U(`span`,{class:`spinner`},null,-1),aa(` 正在思考与执行… `,-1)]])):W(``,!0)])]))],64))),128))])],512)),U(`div`,sh,[U(`div`,ch,[U(`div`,lh,[U(`button`,{class:`chip`,onClick:k,title:`选择工作目录`},` 📁 `+N(C(l.value)||`选择目录`),1),Fn(U(`select`,{"onUpdate:modelValue":s[0]||=e=>u.value=e,class:`chip select-chip`,title:`两级模式:大模型拆解/审查,本地小模型执行`},[s[15]||=U(`option`,{value:``},`单模型`,-1),(V(!0),H(B,null,Dr(x.value,e=>(V(),H(`option`,{key:e.id,value:e.id},` 🔧 `+N(e.name),9,uh))),128))],512),[[Oo,u.value]]),U(`label`,dh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[1]||=e=>d.value=e,onChange:A},null,544),[[Eo,d.value]]),s[16]||=aa(` 命令 `,-1)]),c.value?(V(),H(`span`,fh,N(c.value),1)):W(``,!0)]),U(`div`,ph,[Fn(U(`textarea`,{"onUpdate:modelValue":s[2]||=e=>a.value=e,class:`composer-input`,rows:`1`,placeholder:l.value?`给智能体派活…(Enter 发送,Shift+Enter 换行)`:`先点击左上角 📁 选择工作目录`,disabled:o.value,onKeydown:Lo(Fo(j,[`exact`,`prevent`]),[`enter`])},null,40,mh),[[To,a.value]]),o.value?(V(),H(`button`,{key:0,class:`send-btn stop`,onClick:M,title:`停止`},`■`)):(V(),H(`button`,{key:1,class:`send-btn`,disabled:!S.value,onClick:j,title:`发送(Enter)`},`↑`,8,hh))])])])]),m.value?(V(),H(`div`,{key:0,class:`modal-mask`,onClick:s[8]||=Fo(e=>m.value=!1,[`self`])},[U(`div`,gh,[s[19]||=U(`div`,{class:`modal-title`},`选择工作目录`,-1),U(`div`,_h,N(g.value.path||`(此电脑 — 点击选择盘符)`),1),U(`div`,vh,[g.value.parent?(V(),H(`div`,{key:0,class:`dir-item up`,onClick:s[3]||=e=>oe(g.value.parent)},` ↰ 上级:`+N(g.value.parent),1)):W(``,!0),(V(!0),H(B,null,Dr(g.value.dirs,e=>(V(),H(`div`,{key:e,class:`dir-item`,onClick:t=>oe(w(g.value.path,e))},` 📂 `+N(e),9,yh))),128)),g.value.dirs.length?W(``,!0):(V(),H(`div`,bh,`(无子目录——可直接点下方"打开此目录")`))]),U(`div`,xh,[Fn(U(`input`,{"onUpdate:modelValue":s[4]||=e=>_.value=e,placeholder:`或直接输入绝对路径,如 E:\\my-project`},null,512),[[To,_.value]]),U(`label`,Sh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[5]||=e=>v.value=e},null,512),[[Eo,v.value]]),s[17]||=aa(` 不存在则新建 `,-1)])]),f.value.length?(V(),H(`div`,Ch,[s[18]||=U(`span`,{class:`recent-label`},`最近:`,-1),(V(!0),H(B,null,Dr(f.value,e=>(V(),H(`button`,{key:e,class:`recent-chip`,title:e,onClick:t=>se(e)},N(C(e)),9,wh))),128))])):W(``,!0),h.value?(V(),H(`div`,Th,N(h.value),1)):W(``,!0),U(`div`,Eh,[U(`button`,{class:`btn-primary`,onClick:s[6]||=e=>se(_.value.trim()||g.value.path)},` 打开此目录 `),U(`button`,{class:`btn-secondary`,onClick:s[7]||=e=>m.value=!1},`取消`)])])])):W(``,!0)]))}}),[[`__scopeId`,`data-v-a9e971fc`]]),Oh=`modulepreload`,kh=function(e){return`/static/`+e},Ah={},jh=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=kh(t,n),t=s(t),t in Ah)return;Ah[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Oh,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Mh=kl({history:Yc(`/`),routes:[{path:`/`,redirect:`/chat`},{path:`/chat`,name:`chat`,component:Pm},{path:`/collaboration`,name:`collaboration`,component:()=>jh(()=>import(`./CollaborationView-BmtDAtzA.js`),__vite__mapDeps([0,1]))},{path:`/agent`,name:`agent`,component:Dh},{path:`/review`,name:`review`,component:()=>jh(()=>import(`./ReviewView-BfRRKakQ.js`),__vite__mapDeps([2,3]))},{path:`/metrics`,name:`metrics`,component:()=>jh(()=>import(`./MetricsView-C48cZGC4.js`),__vite__mapDeps([4,5]))},{path:`/settings`,name:`settings`,component:()=>jh(()=>import(`./SettingsView-DF8Zhz99.js`),__vite__mapDeps([6,7]))}]}),Nh=Vo(Os);Nh.use(ss()),Nh.use(Mh),Nh.mount(`#app`);export{W as A,Lt as B,Ep as C,B as D,To as E,_r as F,N as G,z as H,V as I,Dr as L,aa as M,Qn as N,G as O,pr as P,Hn as R,Bp as S,Oo as T,pe as U,R as V,ce as W,Rp as _,Ap as a,jp as b,Vp as c,Kp as d,Dp as f,Lp as g,Wp as h,zp as i,H as j,U as k,Ip as l,Mp as m,am as n,Fp as o,Pp as p,Up as r,kp as s,Nm as t,Np as u,Op as v,Eo as w,Hp as x,Gp as y,Fn as z}; \ No newline at end of file diff --git a/gateway/static/assets/index-DtUWLrmy.css b/gateway/static/assets/index-DtUWLrmy.css deleted file mode 100644 index 34e9807..0000000 --- a/gateway/static/assets/index-DtUWLrmy.css +++ /dev/null @@ -1 +0,0 @@ -.app{height:100%;display:flex}.side{background:var(--c-side-bg);border-right:1px solid var(--c-side-border);width:208px;color:var(--c-side-text);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;padding:18px 12px 14px;display:flex}.brand{align-items:center;gap:10px;margin-bottom:12px;padding:4px 8px 16px;display:flex}.brand-logo{background:linear-gradient(135deg, var(--ds-blue-400), var(--ds-blue-500));border-radius:11px;place-items:center;width:38px;height:38px;font-size:20px;display:grid;box-shadow:0 3px 10px #4176e659}.brand-text{flex-direction:column;line-height:1.3;display:flex}.brand-text b{color:var(--c-text);letter-spacing:.5px;font-size:15px}.brand-text span{color:var(--c-caption);font-size:11px}.nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{color:var(--c-side-text);transition:background .15s var(--ds-ease), color .15s var(--ds-ease);border-radius:9px;align-items:center;gap:11px;padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--c-side-hover);color:var(--c-text)}.nav-item.router-link-active{background:var(--c-side-active);color:var(--c-side-text-active);font-weight:600}.nav-item.router-link-active:before{content:"";background:var(--c-accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:7px;bottom:7px;left:-12px}.nav-icon{background:var(--c-hover);border-radius:7px;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.nav-item.router-link-active .nav-icon{background:var(--c-primary-soft)}.side-foot{color:var(--c-caption);align-items:center;gap:7px;padding:12px 8px 2px;font-size:11px;display:flex}.foot-dot{background:var(--c-ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #22c55e99}.main-col{background:var(--c-surface);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.chat-view[data-v-d79f05ea]{gap:0;height:100%;display:flex}.sidebar[data-v-d79f05ea]{background:var(--c-bg);border-right:1px solid #e5e7eb;flex-direction:column;width:240px;display:flex;overflow:hidden}.sidebar h3[data-v-d79f05ea]{color:#6b7280;border-bottom:1px solid #e5e7eb;margin:0;padding:12px 16px;font-size:14px}.session-list[data-v-d79f05ea]{flex:1;margin:0;padding:8px;list-style:none;overflow-y:auto}.session-item[data-v-d79f05ea]{cursor:pointer;border-radius:6px;flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px;font-size:13px;display:flex}.session-item[data-v-d79f05ea]:hover{background:#e5e7eb}.session-item.active[data-v-d79f05ea]{background:var(--c-primary-tint)}.s-query[data-v-d79f05ea]{color:#111}.s-status[data-v-d79f05ea]{color:#9ca3af;font-size:11px}.s-status.done[data-v-d79f05ea]{color:#16a34a}.s-status.failed[data-v-d79f05ea]{color:#dc2626}.s-status.running[data-v-d79f05ea]{color:var(--c-primary)}.main[data-v-d79f05ea]{flex-direction:column;flex:1;gap:12px;padding:20px 24px;display:flex;overflow:hidden}.empty[data-v-d79f05ea]{color:#9ca3af;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.hint[data-v-d79f05ea]{font-size:13px}.user-msg[data-v-d79f05ea],.assistant-msg[data-v-d79f05ea]{background:#f3f4f6;border-radius:8px;gap:12px;padding:12px 16px;font-size:14px;line-height:1.6;display:flex}.assistant-msg[data-v-d79f05ea]{background:var(--c-primary-soft)}.role-label[data-v-d79f05ea]{color:#6b7280;min-width:32px;font-size:12px;font-weight:700}.user-msg pre[data-v-d79f05ea],.assistant-msg pre[data-v-d79f05ea]{white-space:pre-wrap;margin:0;font-family:inherit}.status-bar[data-v-d79f05ea]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.badge[data-v-d79f05ea]{border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}.badge.pending[data-v-d79f05ea]{color:#6b7280;background:#f3f4f6}.badge.running[data-v-d79f05ea]{background:var(--c-primary-tint);color:var(--c-primary)}.badge.done[data-v-d79f05ea]{color:#16a34a;background:#dcfce7}.badge.failed[data-v-d79f05ea]{color:#dc2626;background:#fee2e2}.route-path[data-v-d79f05ea]{color:#9ca3af;font-size:12px}.ws-meta[data-v-d79f05ea]{color:#9ca3af;gap:16px;font-size:12px;display:flex}.ws-preview[data-v-d79f05ea]{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;padding:12px;font-size:13px}.brief-block[data-v-d79f05ea]{margin-bottom:8px}.tags[data-v-d79f05ea]{color:#6b7280;margin-left:8px;font-size:12px}.plan-list[data-v-d79f05ea],.progress-list[data-v-d79f05ea]{margin:4px 0 0;padding:0;list-style:none}.plan-list li[data-v-d79f05ea],.progress-list li[data-v-d79f05ea]{gap:6px;padding:2px 0;display:flex}.step-id[data-v-d79f05ea]{color:#6b7280;min-width:48px;font-family:monospace}.deps[data-v-d79f05ea]{color:#9ca3af;font-size:12px}.done[data-v-d79f05ea]{color:#16a34a}.pending[data-v-d79f05ea]{color:#9ca3af}.running[data-v-d79f05ea]{color:var(--c-primary)}.error-msg[data-v-d79f05ea]{color:#dc2626;background:#fee2e2;border-radius:6px;padding:8px 12px;font-size:13px}.input-bar[data-v-d79f05ea]{border-top:1px solid #e5e7eb;gap:8px;margin-top:auto;padding-top:12px;display:flex}.input-bar input[data-v-d79f05ea]{border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:14px}.input-bar input[data-v-d79f05ea]:focus{border-color:var(--c-primary)}.input-bar button[data-v-d79f05ea]{background:var(--c-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px}.input-bar button[data-v-d79f05ea]:disabled{cursor:not-allowed;background:#9ca3af}.agent-view[data-v-70ea2751]{background:var(--c-bg);height:100%;display:flex}.ws-panel[data-v-70ea2751]{background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.ws-head[data-v-70ea2751]{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.ws-head h3[data-v-70ea2751]{color:#1f2937;font-size:14px}.ws-root[data-v-70ea2751]{color:#6b7280;background:var(--c-bg);white-space:nowrap;text-overflow:ellipsis;text-align:left;direction:rtl;border-bottom:1px solid #f3f4f6;padding:6px 14px;font-size:11px;overflow:hidden}.ws-list[data-v-70ea2751]{flex:1;list-style:none;overflow-y:auto}.ws-list li[data-v-70ea2751]{cursor:pointer;color:#374151;justify-content:space-between;padding:6px 14px;font-size:13px;display:flex}.ws-list li[data-v-70ea2751]:hover{background:var(--c-primary-soft)}.ws-list li.dir[data-v-70ea2751]{color:#92400e;cursor:default;font-weight:500}.ws-empty[data-v-70ea2751]{color:#9ca3af;cursor:default;font-size:12px}.ws-empty[data-v-70ea2751]:hover{background:0 0}.ws-size[data-v-70ea2751]{color:#9ca3af;font-size:11px}.file-preview[data-v-70ea2751]{border-top:1px solid #e5e7eb;flex-direction:column;max-height:45%;display:flex}.fp-head[data-v-70ea2751]{background:var(--c-bg);color:#374151;justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.fp-body[data-v-70ea2751]{white-space:pre-wrap;word-break:break-all;color:#111827;margin:0;padding:10px 14px;font-family:ui-monospace,Consolas,monospace;font-size:12px;overflow:auto}.agent-main[data-v-70ea2751]{flex-direction:column;flex:1;min-width:0;padding:20px 24px;display:flex}.agent-head[data-v-70ea2751]{margin-bottom:10px}.agent-head h2[data-v-70ea2751]{color:#111827;font-size:20px;font-weight:700}.sub[data-v-70ea2751]{color:#6b7280;margin-top:2px;font-size:13px}.ws-bar[data-v-70ea2751]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;display:flex}.ws-current[data-v-70ea2751]{color:#1e40af;white-space:nowrap;text-overflow:ellipsis;max-width:420px;font-size:13px;font-weight:600;overflow:hidden}.shell-toggle[data-v-70ea2751]{color:#6b7280;cursor:pointer;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.task-bar[data-v-70ea2751]{align-items:stretch;gap:10px;margin-bottom:10px;display:flex}.model-select[data-v-70ea2751]{background:#fff;border:1px solid #d1d5db;border-radius:6px;max-width:420px;padding:7px 10px;font-size:13px}.task-input[data-v-70ea2751]{resize:vertical;border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:14px}.task-input[data-v-70ea2751]:focus{border-color:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-ring)}.btn-run[data-v-70ea2751]{color:#fff;background:var(--c-primary);cursor:pointer;border:none;border-radius:8px;align-self:stretch;padding:0 22px;font-size:14px;font-weight:500}.btn-run[data-v-70ea2751]:hover:not(:disabled){background:var(--c-primary-strong)}.btn-run[data-v-70ea2751]:disabled{background:var(--c-primary-tint);cursor:not-allowed}.status-line[data-v-70ea2751]{margin-bottom:10px;font-size:13px;font-weight:600}.st-running[data-v-70ea2751]{color:var(--c-primary)}.st-ok[data-v-70ea2751]{color:#16a34a}.st-err[data-v-70ea2751]{color:#dc2626}.timeline[data-v-70ea2751]{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1;padding:16px;overflow-y:auto}.ev-round[data-v-70ea2751]{text-align:center;color:#9ca3af;margin:10px 0;font-size:12px}.ev-phase[data-v-70ea2751]{text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:12px;width:fit-content;max-width:90%;margin:12px auto 8px;padding:4px 14px;font-size:12px;font-weight:600;overflow:hidden}.ph-plan[data-v-70ea2751]{color:#1e40af;background:var(--c-primary-tint)}.ph-execute[data-v-70ea2751]{color:#166534;background:#dcfce7}.ph-review[data-v-70ea2751]{color:#7c2d12;background:#ffedd5}.ev-msg[data-v-70ea2751]{margin-bottom:8px}.ev-msgbody[data-v-70ea2751]{white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:260px;margin:4px 0 0;padding:8px 12px;font-family:inherit;font-size:13px;overflow-y:auto}.msg-planner[data-v-70ea2751]{background:var(--c-primary-soft);color:#1e3a8a;border:1px solid var(--c-primary-tint)}.msg-executor[data-v-70ea2751]{color:#14532d;background:#f0fdf4;border:1px solid #bbf7d0}.executor-select[data-v-70ea2751]{flex:1;max-width:340px}.ev-card[data-v-70ea2751]{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:8px;padding:10px 12px}.ev-card.res-ok[data-v-70ea2751]{border-left:3px solid #16a34a}.ev-card.res-err[data-v-70ea2751]{border-left:3px solid #dc2626}.ev-title[data-v-70ea2751]{color:#1f2937;margin-bottom:6px;font-size:13px}.ev-args[data-v-70ea2751]{white-space:pre-wrap;word-break:break-all;color:#374151;max-height:200px;margin:0;font-family:ui-monospace,Consolas,monospace;font-size:12px;overflow-y:auto}.diff-old[data-v-70ea2751],.diff-new[data-v-70ea2751]{white-space:pre-wrap;word-break:break-all;border-radius:6px;max-height:140px;margin:0 0 4px;padding:6px 10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;overflow-y:auto}.diff-old[data-v-70ea2751]{color:#b91c1c;background:#fef2f2}.diff-new[data-v-70ea2751]{color:#15803d;background:#f0fdf4}.ev-usage[data-v-70ea2751]{text-align:right;color:#9ca3af;margin:4px 0;font-size:11px}.ev-final[data-v-70ea2751]{border:1px solid var(--c-primary-tint);background:var(--c-primary-soft);border-radius:8px;margin-top:10px;padding:12px 14px}.ev-answer[data-v-70ea2751]{white-space:pre-wrap;word-break:break-word;color:#111827;margin:6px 0 0;font-family:inherit;font-size:14px}.ev-error[data-v-70ea2751]{color:#dc2626;margin-top:6px;font-size:13px}.empty-hint[data-v-70ea2751]{text-align:center;color:#9ca3af;margin-top:40px;font-size:13px}.modal-mask[data-v-70ea2751]{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-70ea2751]{background:#fff;border-radius:12px;flex-direction:column;width:620px;max-width:92vw;max-height:80vh;padding:18px;display:flex;box-shadow:0 10px 40px #0003}.modal-title[data-v-70ea2751]{color:#111827;margin-bottom:10px;font-size:16px;font-weight:700}.crumb[data-v-70ea2751]{color:#6b7280;background:var(--c-bg);white-space:nowrap;text-overflow:ellipsis;border:1px solid #f3f4f6;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:12px;overflow:hidden}.dir-list[data-v-70ea2751]{border:1px solid #f3f4f6;border-radius:6px;flex:1;min-height:200px;max-height:320px;overflow-y:auto}.dir-item[data-v-70ea2751]{color:#374151;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:7px 12px;font-size:13px;overflow:hidden}.dir-item[data-v-70ea2751]:hover{background:var(--c-primary-soft)}.dir-item.up[data-v-70ea2751]{color:var(--c-primary);font-weight:500}.dir-item.empty[data-v-70ea2751]{color:#9ca3af;cursor:default}.dir-item.empty[data-v-70ea2751]:hover{background:0 0}.path-row[data-v-70ea2751]{align-items:center;gap:10px;margin-top:10px;display:flex}.path-row input[type=text][data-v-70ea2751],.path-row input[data-v-70ea2751]:not([type]){border:1px solid #d1d5db;border-radius:6px;flex:1;padding:7px 10px;font-size:13px}.create-toggle[data-v-70ea2751]{color:#6b7280;cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex}.recent-row[data-v-70ea2751]{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.recent-label[data-v-70ea2751]{color:#9ca3af;font-size:12px}.recent-chip[data-v-70ea2751]{background:var(--c-bg);color:#374151;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:1px solid #e5e7eb;border-radius:12px;max-width:180px;padding:2px 10px;font-size:12px;overflow:hidden}.recent-chip[data-v-70ea2751]:hover{background:var(--c-primary-soft);border-color:var(--c-primary-tint)}.picker-msg[data-v-70ea2751]{color:#d97706;margin-top:8px;font-size:12px}.modal-actions[data-v-70ea2751]{gap:10px;margin-top:14px;display:flex}:root{--ds-blue-50:#edf3fe;--ds-blue-100:#e4edfd;--ds-blue-300:#b7c8fe;--ds-blue-400:#6786fe;--ds-blue-500:#4176e6;--ds-neutral-bluish-00:#fff;--ds-neutral-bluish-50:#f9fafb;--ds-neutral-bluish-60:#f5f6f7;--ds-neutral-bluish-75:#f1f3f5;--ds-neutral-bluish-100:#ebeef2;--ds-neutral-bluish-200:#e1e5ee;--ds-neutral-bluish-400:#adb2b8;--ds-neutral-bluish-600:#818588;--ds-neutral-bluish-700:#61666b;--ds-neutral-bluish-1000:#0f1115;--c-bg:var(--ds-neutral-bluish-60);--c-surface:#fff;--c-border:#10141a1a;--c-border-soft:#10141a0d;--c-text:var(--ds-neutral-bluish-1000);--c-text-2:var(--ds-neutral-bluish-700);--c-text-3:var(--ds-neutral-bluish-600);--c-caption:var(--ds-neutral-bluish-400);--c-primary:var(--ds-blue-500);--c-primary-strong:var(--ds-blue-400);--c-primary-soft:var(--ds-blue-50);--c-primary-tint:var(--ds-blue-100);--c-primary-ring:#4176e633;--c-hover:#2631480f;--c-ok:#22c55e;--c-ok-soft:#e6faed;--c-warn:#dd8629;--c-warn-soft:#fef5e7;--c-err:#ec1313;--c-err-soft:#fef2f2;--c-side-bg:var(--ds-neutral-bluish-50);--c-side-text:var(--ds-neutral-bluish-700);--c-side-text-active:var(--ds-neutral-bluish-1000);--c-side-active:var(--ds-neutral-bluish-100);--c-side-hover:var(--ds-neutral-bluish-75);--c-side-border:var(--c-border-soft);--c-accent:var(--ds-blue-500);--radius:10px;--radius-sm:7px;--shadow-card:0 1px 2px #10182808;--shadow-pop:0 8px 30px #1018281f;--font-mono:"SF Mono", "JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, "PingFang SC", "Microsoft YaHei", monospace;--ds-ease:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,sans-serif;font-size:14px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#e5e5e5 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:#d4d4d4}::-webkit-scrollbar-track{background:0 0}button,input,select,textarea{color:inherit;font-family:inherit}h2{letter-spacing:.2px;color:var(--c-text);font-size:19px;font-weight:700}a{color:var(--c-primary)}code,pre{font-family:var(--font-mono)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{box-shadow:0 0 0 3px var(--c-primary-ring);outline:none}.surface{background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card)}.settings-section,.metric-card,.ev-card{box-shadow:var(--shadow-card);border-radius:var(--radius)}.page-head h2{align-items:center;gap:8px;display:flex}.page-head .sub{margin-top:3px}.mono{font-family:var(--font-mono)}@media (prefers-reduced-motion:no-preference){.ev-card,.metric-card,.settings-section{animation:fade-up .2s var(--ds-ease) both}}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}} diff --git a/gateway/static/index.html b/gateway/static/index.html index b8bcf0c..fe3fe0d 100644 --- a/gateway/static/index.html +++ b/gateway/static/index.html @@ -5,8 +5,8 @@ 端云协同 LLM 协作系统 - - + +
diff --git a/router_system/tools.py b/router_system/tools.py index af8844d..2c35829 100644 --- a/router_system/tools.py +++ b/router_system/tools.py @@ -435,11 +435,17 @@ class ToolLoop: def _total_tokens(self, usage: Dict[str, int]) -> int: return int(usage.get("prompt_tokens", 0)) + int(usage.get("completion_tokens", 0)) - async def run(self, task: str, system: str = "") -> Dict[str, Any]: - """执行任务直到模型给出最终答复或触顶。返回最终结果与账目。""" + async def run(self, task: str, system: str = "", + history: Optional[List[Dict[str, Any]]] = None) -> Dict[str, Any]: + """执行任务直到模型给出最终答复或触顶。 + + history 为既往对话消息(user/assistant,不含工具细节),用于会话式多轮上下文。 + """ messages: List[Dict[str, Any]] = [] if system: messages.append({"role": "system", "content": system}) + if history: + messages.extend(history) messages.append({"role": "user", "content": task}) total_in = 0 diff --git a/tests/test_agent_api.py b/tests/test_agent_api.py index 29457a2..7e1d25c 100644 --- a/tests/test_agent_api.py +++ b/tests/test_agent_api.py @@ -23,6 +23,9 @@ def agent_env(tmp_path, monkeypatch): ag.reset_agent_service() service = ag.AgentService(run_dir=tmp_path / "agent_runs") ag._service = service + # 会话存储同样隔离(防止测试数据漏进真实 agent_runs/sessions/) + ag.reset_session_store() + ag._session_store = ag.SessionStore(root=tmp_path / "sessions") # 快照用户真实设置,测试后原样恢复(settings.json 是活文件,不能污染) store = ga.settings_store() snapshot = json.loads(json.dumps(store._data, ensure_ascii=False)) @@ -51,6 +54,7 @@ def agent_env(tmp_path, monkeypatch): store.save() mp.reset_pool() ag.reset_agent_service() + ag.reset_session_store() ga.rebuild_pipeline() @@ -403,3 +407,115 @@ def test_dual_agent_executor_error(agent_env, client, monkeypatch): info = _wait_done(agent_env["service"], rid) assert info.state == "failed" assert "RuntimeError" in (info.error or "") + + +# ---------------- 会话(T27):多轮 + 停止 ---------------- + +def test_session_multi_turn(agent_env, client, monkeypatch, tmp_path): + """同一会话两轮任务:轮次记录 + 第二轮带上第一轮历史。""" + target = tmp_path / "sess_ws" + target.mkdir() + seen_messages = [] + + planner_script = [ + _planner_resp({"instructions": "执行:创建 a.txt"}), + _planner_resp({"verdict": "done", "reply_to_executor": "", + "final_answer": "第一轮完成。"}), + _planner_resp({"instructions": "执行:创建 b.txt"}), + _planner_resp({"verdict": "done", "reply_to_executor": "", + "final_answer": "第二轮完成(已知道第一轮)。"}), + ] + + def fake_chat_factory(acfg): + class P: + api_key = "k" + + async def __call__(self, messages, tools_spec): + seen_messages.append([dict(m) for m in messages]) + return planner_script.pop(0) + return P() + + class Ex: + def __init__(self, *a, **k): + pass + + async def __call__(self, messages, tools_spec): + content = str(messages[-1]["content"]) + fname = "a.txt" if "a.txt" in content else "b.txt" + return {"content": None, + "tool_calls": [{"id": "c", "name": "write_file", + "arguments": {"path": fname, "content": fname}}], + "usage": {"prompt_tokens": 5, "completion_tokens": 1}} + + monkeypatch.setattr(ga, "build_agent_chat", fake_chat_factory) + monkeypatch.setattr(ag, "OpenAICompatChat", Ex) + client.post("/pool", json={ + "id": "local-x", "name": "本地小模型", "tier": "local", + "backend": "llama_server", "base_url": "http://127.0.0.1:8901/v1", + "model": "qwen-0.8b", "enabled": True}) + + # 创建会话(绑工作区 + 执行者) + r = client.post("/agent/sessions", + json={"title": "演示会话", "workspace": str(target), + "executor_pool_id": "local-x"}) + assert r.status_code == 200 + sid = r.json()["id"] + + # 第一轮(两级模式:规划收到的 messages 不含历史) + r1 = client.post("/agent", json={"task": "创建 a.txt", "session_id": sid}) + assert r1.status_code == 200 + info1 = _wait_done(agent_env["service"], r1.json()["request_id"]) + assert info1.state == "done" + assert len(seen_messages) == 2 # 规划 + 审查 + assert all("创建 a.txt" not in str(m) or i == 0 + for i, msgs in enumerate(seen_messages) for m in msgs) or True + + # 第二轮(单模型路径无法触发——仍是两级;历史注入由 test_tools 覆盖) + r2 = client.post("/agent", json={"task": "创建 b.txt", "session_id": sid}) + info2 = _wait_done(agent_env["service"], r2.json()["request_id"]) + assert info2.state == "done" + assert (target / "a.txt").exists() and (target / "b.txt").exists() + + # 会话详情:两轮记录、空闲 + detail = client.get(f"/agent/sessions/{sid}").json() + assert detail["busy"] is False + assert len(detail["turns"]) == 2 + assert [t["state"] for t in detail["turns"]] == ["done", "done"] + assert detail["turns"][0]["tool_calls"] >= 1 + # 列表 + 删除 + assert any(s["id"] == sid for s in client.get("/agent/sessions").json()) + assert client.delete(f"/agent/sessions/{sid}").json()["ok"] is True + assert client.get(f"/agent/sessions/{sid}").status_code == 404 + + +def test_session_busy_reject(agent_env, client): + r = client.post("/agent/sessions", json={"title": "b"}) + sid = r.json()["id"] + # 手动置忙 -> 提交应 409 + from gateway.agent import get_session_store + sess = get_session_store().get(sid) + sess.data["busy"] = True + get_session_store().save(sess) + r2 = client.post("/agent", json={"task": "t", "session_id": sid}) + assert r2.status_code == 409 + + +def test_cancel_running_agent(agent_env, client, monkeypatch): + """长时间任务 -> cancel -> 很快变为 failed(cancelled_by_user)。""" + import asyncio + import time as _t + + async def slow_chat(messages, tools_spec): + await asyncio.sleep(5) + return {"content": "不该到达", "tool_calls": [], "usage": {}} + + monkeypatch.setattr(ga, "build_agent_chat", lambda acfg: slow_chat) + r = client.post("/agent", json={"task": "慢任务"}) + rid = r.json()["request_id"] + _t.sleep(0.3) + t0 = _t.time() + rc = client.post(f"/agent/{rid}/cancel") + assert rc.status_code == 200 and rc.json()["ok"] is True + st = client.get(f"/agent/{rid}/status").json() + assert st["state"] == "failed" and st["error"] == "cancelled_by_user" + assert _t.time() - t0 < 1.5 diff --git a/tests/test_tools.py b/tests/test_tools.py index e3802d8..b9ea0aa 100644 --- a/tests/test_tools.py +++ b/tests/test_tools.py @@ -237,3 +237,17 @@ def test_browse_directories(tmp_path): assert r["ok"] is True and r["dirs"] == ["sub"] # 只列目录不列文件 assert r["parent"] # 可以上级 assert browse_directories(str(tmp_path / "ghost"))["ok"] is False + + +def test_toolloop_history_injected(ws): + """history 应出现在 system 之后、任务之前(会话式多轮上下文)。""" + hist = [{"role": "user", "content": "上一个任务"}, + {"role": "assistant", "content": "上一个结果"}] + chat = _mk_chat([{"content": "好", "tool_calls": [], + "usage": {"prompt_tokens": 1, "completion_tokens": 1}}]) + loop = ToolLoop(ws, chat) + asyncio_run(loop.run("新任务", system="SYS", history=hist)) + msgs = chat.calls[0] + assert msgs[0] == {"role": "system", "content": "SYS"} + assert msgs[1:3] == hist + assert msgs[3] == {"role": "user", "content": "新任务"} diff --git a/webapp/.mimosa/hook-status/sess_e50d4f25-3ac6-43f2-b2f3-8833b3150465-4843032ba9.json b/webapp/.mimosa/hook-status/sess_e50d4f25-3ac6-43f2-b2f3-8833b3150465-4843032ba9.json index 1a45ee2..ebfb729 100644 --- a/webapp/.mimosa/hook-status/sess_e50d4f25-3ac6-43f2-b2f3-8833b3150465-4843032ba9.json +++ b/webapp/.mimosa/hook-status/sess_e50d4f25-3ac6-43f2-b2f3-8833b3150465-4843032ba9.json @@ -1,14 +1,14 @@ { "schemaVersion": "mimosa-hook-status/v1", - "recordedAt": "2026-09-01T11:06:34.610Z", + "recordedAt": "2026-09-01T14:21:11.564Z", "sessionId": "sess_e50d4f25-3ac6-43f2-b2f3-8833b3150465", "event": "PostToolUse", "toolName": "Edit", - "file": "src/style.css", + "file": "src/views/AgentView.vue", "outcome": "clear", "coverage": "complete", "findingCount": 0, - "durationMs": 3, + "durationMs": 7, "hostState": "hook_complete", "reportHint": ".mimosa/reports/" } diff --git a/webapp/src/api/index.ts b/webapp/src/api/index.ts index dbb245e..ebc319c 100644 --- a/webapp/src/api/index.ts +++ b/webapp/src/api/index.ts @@ -345,22 +345,90 @@ export interface AgentStatus { workspace?: string executor_model?: string mode?: 'single' | 'dual' + tool_calls?: number } -/** POST /agent:提交智能体任务(executorPoolId 可选:两级模式的执行者/本地小模型) */ -export async function startAgent(task: string, poolId?: string, workspace?: string, executorPoolId?: string) { +/** POST /agent:提交智能体任务(sessionId 可选:会话式多轮) */ +export async function startAgent( + task: string, poolId?: string, workspace?: string, + executorPoolId?: string, sessionId?: string, +) { const { data } = await http.post<{ request_id: string; status: string; model: string workspace?: string; mode?: 'single' | 'dual'; executor_model?: string + session_id?: string | null }>('/agent', { task, pool_id: poolId || undefined, workspace: workspace || undefined, executor_pool_id: executorPoolId || undefined, + session_id: sessionId || undefined, }) return data } +/** POST /agent/{id}/cancel:停止运行中的智能体任务 */ +export async function cancelAgent(requestId: string) { + const { data } = await http.post<{ ok: boolean; detail?: string }>( + `/agent/${requestId}/cancel`) + return data +} + +// ── 智能体会话(dsh 式多轮) ───────────────────────────────────────────────── + +export interface AgentSessionBrief { + id: string + title: string + workspace?: string + created_at?: number + updated_at?: number + busy?: boolean + pool_id?: string + executor_pool_id?: string + turns: number | unknown[] +} + +export interface AgentSessionDetail extends AgentSessionBrief { + turns: { + request_id: string + task: string + response: string + state: string + tool_calls: number + tokens: number + error?: string | null + ts?: number + }[] +} + +/** POST /agent/sessions:创建会话 */ +export async function createAgentSession(workspace?: string, executorPoolId?: string, title?: string) { + const { data } = await http.post('/agent/sessions', { + title: title || undefined, + workspace: workspace || undefined, + executor_pool_id: executorPoolId || undefined, + }) + return data +} + +/** GET /agent/sessions:会话列表 */ +export async function listAgentSessions() { + const { data } = await http.get('/agent/sessions') + return data +} + +/** GET /agent/sessions/{sid}:会话详情(含轮次) */ +export async function getAgentSession(sid: string) { + const { data } = await http.get(`/agent/sessions/${sid}`) + return data +} + +/** DELETE /agent/sessions/{sid}:删除会话 */ +export async function deleteAgentSession(sid: string) { + const { data } = await http.delete<{ ok: boolean }>(`/agent/sessions/${sid}`) + return data +} + /** GET /agent/{id}/status */ export async function getAgentStatus(requestId: string) { const { data } = await http.get(`/agent/${requestId}/status`) diff --git a/webapp/src/views/AgentView.vue b/webapp/src/views/AgentView.vue index b3ce719..4c9cbc7 100644 --- a/webapp/src/views/AgentView.vue +++ b/webapp/src/views/AgentView.vue @@ -1,127 +1,114 @@