@vantaloom/runtime-darwin-arm64 0.1.17 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/VERSION +1 -1
- package/bin/vantaloom-agent +0 -0
- package/bin/vantaloom-api +0 -0
- package/bin/vantaloomctl +0 -0
- package/cli/package.json +1 -1
- package/manifest.json +2 -2
- package/package.json +1 -1
- package/web/404.html +1 -1
- package/web/__next.__PAGE__.txt +2 -2
- package/web/__next._full.txt +3 -3
- package/web/__next._head.txt +1 -1
- package/web/__next._index.txt +2 -2
- package/web/__next._tree.txt +2 -2
- package/web/_next/static/chunks/{3ffdc0da802a79d3.js → 4950d4997283c964.js} +4 -4
- package/web/_next/static/chunks/{cff85d0d4e4a1b1f.css → 50eaeaad6e6d8caa.css} +1 -1
- package/web/_not-found/__next._full.txt +2 -2
- package/web/_not-found/__next._head.txt +1 -1
- package/web/_not-found/__next._index.txt +2 -2
- package/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/web/_not-found/__next._not-found.txt +1 -1
- package/web/_not-found/__next._tree.txt +2 -2
- package/web/_not-found.html +1 -1
- package/web/_not-found.txt +2 -2
- package/web/index.html +2 -2
- package/web/index.txt +3 -3
- /package/web/_next/static/{UZjoM4jL52ypr37RAGpQi → bPeUmp1MLZMb80P05TQQo}/_buildManifest.js +0 -0
- /package/web/_next/static/{UZjoM4jL52ypr37RAGpQi → bPeUmp1MLZMb80P05TQQo}/_clientMiddlewareManifest.json +0 -0
- /package/web/_next/static/{UZjoM4jL52ypr37RAGpQi → bPeUmp1MLZMb80P05TQQo}/_ssgManifest.js +0 -0
package/web/index.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><!--UZjoM4jL52ypr37RAGpQi--><html lang="zh-CN" class="font-sans antialiased" data-vtl-theme="default" data-vtl-density="default" data-vtl-motion="default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/cff85d0d4e4a1b1f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/a678910d6e3629e7.js"/><script src="/_next/static/chunks/b9cfbaaba1fd82be.js" async=""></script><script src="/_next/static/chunks/757e2e1b77b5bacc.js" async=""></script><script src="/_next/static/chunks/turbopack-d8677f40582561e6.js" async=""></script><script src="/_next/static/chunks/eca64d281474b631.js" async=""></script><script src="/_next/static/chunks/7dfeab42587bcc0e.js" async=""></script><script src="/_next/static/chunks/17e0384154325960.js" async=""></script><script src="/_next/static/chunks/c990601c49cb69a5.js" async=""></script><script src="/_next/static/chunks/3ffdc0da802a79d3.js" async=""></script><script src="/_next/static/chunks/742d3900ca49db0a.js" async=""></script><title>Vantaloom</title><meta name="description" content="Vantaloom local agent operations console."/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><main class="vtl-app-background relative h-svh overflow-hidden text-foreground"><div class="pointer-events-none fixed inset-y-0 left-0 z-40 p-3"><div data-slot="expandable-sidebar" data-dock-collapsed="false" class="pointer-events-none relative max-h-full max-w-full overflow-visible bg-transparent text-foreground transition-[width] duration-500 w-fit h-[calc(100svh-1.5rem)] drop-shadow-lg" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div data-slot="expandable-sidebar-panel" class="flex h-full overflow-visible transition-[opacity,transform,filter] duration-500 pointer-events-auto" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1);transform-origin:2.25rem calc(100% - 2.25rem)"><aside data-slot="expandable-sidebar-rail" class="flex w-16 shrink-0 flex-col items-center gap-2 overflow-hidden rounded-l-2xl border-r border-border bg-sidebar p-4 text-sidebar-foreground"><div class="mb-2 flex size-10 shrink-0 items-center justify-center text-sidebar-foreground [&_svg]:size-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></div><div class="flex w-full flex-col items-center gap-1.5"><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 transition-colors duration-500 bg-muted text-sidebar-foreground hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="仪表盘" aria-pressed="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="画布" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clapperboard" aria-hidden="true"><path d="M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z"></path><path d="m6.2 5.3 3.1 3.9"></path><path d="m12.4 3.4 3.1 4"></path><path d="M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"></path></svg></span><span class="absolute top-1 right-1 size-1.5 rounded-full bg-sidebar-foreground ring-1 ring-sidebar"></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="机器" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="日程" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar-clock" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></circle></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="设置" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></span></button></div><div class="min-h-2 flex-1"></div><div class="flex w-full flex-col items-center gap-2"><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 rounded-[min(var(--radius-md),12px)] size-10 hover:bg-muted hover:text-sidebar-foreground text-sidebar-foreground/60" type="button" aria-label="主题: Light" title="主题: Light"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button></div><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 rounded-[min(var(--radius-md),12px)] size-10 text-sidebar-foreground/60 hover:bg-muted hover:text-sidebar-foreground [&_svg]:size-4" type="button" aria-label="账户" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-round" aria-hidden="true"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 0 0-16 0"></path></svg></button><div class="size-10 shrink-0"></div></aside><aside data-slot="expandable-sidebar-detail" data-collapsed="false" class="flex min-w-0 shrink-0 flex-col gap-4 overflow-visible rounded-r-2xl bg-sidebar p-4 text-sidebar-foreground transition-all duration-500 w-80" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex h-10 shrink-0 items-center overflow-hidden transition-all duration-500 justify-between gap-1" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="min-w-0 transition-[opacity,width] duration-500 w-auto flex-1 opacity-100" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="truncate font-semibold tracking-normal" style="font-size:calc(var(--font-size-body-lg) * 1.125);line-height:1.5rem">仪表盘</div></div><button type="button" aria-label="收起菜单" class="flex size-10 min-w-10 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sidebar-foreground/60 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left transition-transform duration-500" aria-hidden="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><path d="m15 18-6-6 6-6"></path></svg></button></div><div class="relative shrink-0 transition-all duration-500 w-full" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><div class="flex h-10 items-center rounded-lg border border-border bg-sidebar text-sidebar-foreground transition-all duration-500 w-full" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex shrink-0 items-center justify-center transition-all duration-500 px-2.5" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-4 text-sidebar-foreground/70" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><div class="min-w-0 flex-1 overflow-hidden transition-[opacity,width] duration-500 opacity-100" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><input placeholder="搜索控制台..." tabindex="0" class="h-8 w-full border-none bg-transparent p-0 pr-2 text-sm text-sidebar-foreground outline-none placeholder:text-sidebar-foreground/45" value=""/></div></div></div><div class="min-h-0 flex-1 transition-all duration-500 overflow-y-auto" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex flex-col transition-all duration-500 items-start gap-4" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><section class="w-full min-w-0"><div class="flex flex-col gap-1"><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground bg-muted text-sidebar-foreground" type="button" aria-pressed="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">总览</span></button></div><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal text-sidebar-foreground/72 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">运行</span><span data-slot="badge" data-variant="outline" class="group/badge inline-flex w-fit items-center justify-center gap-1 overflow-hidden rounded-full border py-0.5 font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 hover:bg-muted h-5 shrink-0 border-sidebar-border px-1.5 text-[0.6875rem] text-sidebar-foreground/70">12</span></button></div><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal text-sidebar-foreground/72 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">遥测</span></button></div></div></section></div></div></aside></div><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 pointer-events-auto absolute bottom-4 left-4 z-10 size-10 rounded-lg text-sidebar-foreground/60 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground [&_svg]:size-4" type="button" aria-label="收起侧边栏" aria-expanded="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button></div></div><section class="h-full min-w-0 overflow-auto pl-[8.5rem]"><div data-dashboard-board="true" class="relative mx-auto max-w-7xl p-4 lg:p-6" style="min-height:1440px"><div class="relative" style="height:1392px"><div data-dashboard-widget="active-runs" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg1.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">运行中</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>18</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>18</span></span></div></section></div></div><div data-dashboard-widget="queue" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:324px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg2.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">排队任务</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>07</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>07</span></span></div></section></div></div><div data-dashboard-widget="cost" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:648px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg3.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">今日消耗</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>42.8</span><span class="text-[0.55em]">$</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>42.8</span><span class="text-[0.55em]">$</span></span></div></section></div></div><div data-dashboard-widget="machines-summary" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:972px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg4.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">机器状态</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>2</span><span class="text-[0.55em]">/</span><span>3</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>2</span><span class="text-[0.55em]">/</span><span>3</span></span></div></section></div></div><div data-dashboard-widget="resource-trend" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:216px;width:852px;height:420px"><div class="size-full"><section class="vtl-surface-card flex min-h-0 min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 size-full"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge" aria-hidden="true"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg></span><h2 class="ui-text-control font-medium">资源趋势</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div data-slot="chart" data-chart="chart-_R_hab5flb_" class="flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-none [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-none h-full min-h-0 w-full"><style>
|
|
1
|
+
<!DOCTYPE html><!--bPeUmp1MLZMb80P05TQQo--><html lang="zh-CN" class="font-sans antialiased" data-vtl-theme="default" data-vtl-density="default" data-vtl-motion="default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/50eaeaad6e6d8caa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/a678910d6e3629e7.js"/><script src="/_next/static/chunks/b9cfbaaba1fd82be.js" async=""></script><script src="/_next/static/chunks/757e2e1b77b5bacc.js" async=""></script><script src="/_next/static/chunks/turbopack-d8677f40582561e6.js" async=""></script><script src="/_next/static/chunks/eca64d281474b631.js" async=""></script><script src="/_next/static/chunks/7dfeab42587bcc0e.js" async=""></script><script src="/_next/static/chunks/17e0384154325960.js" async=""></script><script src="/_next/static/chunks/c990601c49cb69a5.js" async=""></script><script src="/_next/static/chunks/4950d4997283c964.js" async=""></script><script src="/_next/static/chunks/742d3900ca49db0a.js" async=""></script><title>Vantaloom</title><meta name="description" content="Vantaloom local agent operations console."/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><main class="vtl-app-background relative h-svh overflow-hidden text-foreground"><div class="pointer-events-none fixed inset-y-0 left-0 z-40 p-3"><div data-slot="expandable-sidebar" data-dock-collapsed="false" class="pointer-events-none relative max-h-full max-w-full overflow-visible bg-transparent text-foreground transition-[width] duration-500 w-fit h-[calc(100svh-1.5rem)] drop-shadow-lg" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div data-slot="expandable-sidebar-panel" class="flex h-full overflow-visible transition-[opacity,transform,filter] duration-500 pointer-events-auto" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1);transform-origin:2.25rem calc(100% - 2.25rem)"><aside data-slot="expandable-sidebar-rail" class="flex w-16 shrink-0 flex-col items-center gap-2 overflow-hidden rounded-l-2xl border-r border-border bg-sidebar p-4 text-sidebar-foreground"><div class="mb-2 flex size-10 shrink-0 items-center justify-center text-sidebar-foreground [&_svg]:size-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></div><div class="flex w-full flex-col items-center gap-1.5"><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 transition-colors duration-500 bg-muted text-sidebar-foreground hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="仪表盘" aria-pressed="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="画布" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clapperboard" aria-hidden="true"><path d="M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z"></path><path d="m6.2 5.3 3.1 3.9"></path><path d="m12.4 3.4 3.1 4"></path><path d="M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"></path></svg></span><span class="absolute top-1 right-1 size-1.5 rounded-full bg-sidebar-foreground ring-1 ring-sidebar"></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="机器" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="日程" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar-clock" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></circle></svg></span></button><button data-slot="button" data-variant="ghost" data-size="icon-lg" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 relative size-10 min-w-10 rounded-lg p-0 text-sidebar-foreground/60 transition-colors duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-label="设置" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><span class="flex size-5 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></span></button></div><div class="min-h-2 flex-1"></div><div class="flex w-full flex-col items-center gap-2"><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 rounded-[min(var(--radius-md),12px)] size-10 hover:bg-muted hover:text-sidebar-foreground text-sidebar-foreground/60" type="button" aria-label="主题: Light" title="主题: Light"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button></div><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 rounded-[min(var(--radius-md),12px)] size-10 text-sidebar-foreground/60 hover:bg-muted hover:text-sidebar-foreground [&_svg]:size-4" type="button" aria-label="账户" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-round" aria-hidden="true"><circle cx="12" cy="8" r="5"></circle><path d="M20 21a8 8 0 0 0-16 0"></path></svg></button><div class="size-10 shrink-0"></div></aside><aside data-slot="expandable-sidebar-detail" data-collapsed="false" class="flex min-w-0 shrink-0 flex-col gap-4 overflow-visible rounded-r-2xl bg-sidebar p-4 text-sidebar-foreground transition-all duration-500 w-80" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex h-10 shrink-0 items-center overflow-hidden transition-all duration-500 justify-between gap-1" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="min-w-0 transition-[opacity,width] duration-500 w-auto flex-1 opacity-100" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="truncate font-semibold tracking-normal" style="font-size:calc(var(--font-size-body-lg) * 1.125);line-height:1.5rem">仪表盘</div></div><button type="button" aria-label="收起菜单" class="flex size-10 min-w-10 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sidebar-foreground/60 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left transition-transform duration-500" aria-hidden="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><path d="m15 18-6-6 6-6"></path></svg></button></div><div class="relative shrink-0 transition-all duration-500 w-full" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><div class="flex h-10 items-center rounded-lg border border-border bg-sidebar text-sidebar-foreground transition-all duration-500 w-full" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex shrink-0 items-center justify-center transition-all duration-500 px-2.5" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-4 text-sidebar-foreground/70" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><div class="min-w-0 flex-1 overflow-hidden transition-[opacity,width] duration-500 opacity-100" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><input placeholder="搜索控制台..." tabindex="0" class="h-8 w-full border-none bg-transparent p-0 pr-2 text-sm text-sidebar-foreground outline-none placeholder:text-sidebar-foreground/45" value=""/></div></div></div><div class="min-h-0 flex-1 transition-all duration-500 overflow-y-auto" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><div class="flex flex-col transition-all duration-500 items-start gap-4" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><section class="w-full min-w-0"><div class="flex flex-col gap-1"><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground bg-muted text-sidebar-foreground" type="button" aria-pressed="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">总览</span></button></div><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal text-sidebar-foreground/72 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">运行</span><span data-slot="badge" data-variant="outline" class="group/badge inline-flex w-fit items-center justify-center gap-1 overflow-hidden rounded-full border py-0.5 font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 hover:bg-muted h-5 shrink-0 border-sidebar-border px-1.5 text-[0.6875rem] text-sidebar-foreground/70">12</span></button></div><div class="w-full min-w-0"><button data-slot="button" data-variant="ghost" data-size="default" class="group/button inline-flex shrink-0 items-center border border-transparent bg-clip-padding text-sm whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-10 w-full justify-start gap-3 rounded-lg px-4 py-2 text-left font-normal text-sidebar-foreground/72 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground" type="button" aria-pressed="false" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)"><span class="flex size-5 shrink-0 items-center justify-center [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></span><span class="min-w-0 flex-1 truncate transition-[opacity,width,margin] duration-500" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)">遥测</span></button></div></div></section></div></div></aside></div><button data-slot="button" data-variant="ghost" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 pointer-events-auto absolute bottom-4 left-4 z-10 size-10 rounded-lg text-sidebar-foreground/60 transition-all duration-500 hover:bg-muted hover:text-sidebar-foreground [&_svg]:size-4" type="button" aria-label="收起侧边栏" aria-expanded="true" style="transition-timing-function:cubic-bezier(0.25, 1.1, 0.4, 1)" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button></div></div><section class="h-full min-w-0 overflow-auto pl-[8.5rem]"><div data-dashboard-board="true" class="relative mx-auto max-w-7xl p-4 lg:p-6" style="min-height:1440px"><div class="relative" style="height:1392px"><div data-dashboard-widget="active-runs" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg1.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">运行中</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>18</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>18</span></span></div></section></div></div><div data-dashboard-widget="queue" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:324px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg2.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">排队任务</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>07</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>07</span></span></div></section></div></div><div data-dashboard-widget="cost" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:648px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg3.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">今日消耗</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>42.8</span><span class="text-[0.55em]">$</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>42.8</span><span class="text-[0.55em]">$</span></span></div></section></div></div><div data-dashboard-widget="machines-summary" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:972px;top:0;width:312px;height:204px"><div class="size-full"><section class="relative size-full overflow-hidden rounded-xl border bg-card p-5 vtl-jelly-image-card vtl-jelly-image-card-shadowless" style="--vtl-jelly-card-image:url("/themes/jelly/bg4.png");--vtl-jelly-card-position:center;--vtl-jelly-card-opacity:0.76;--vtl-jelly-card-blur:8px"><div class="text-xl font-semibold tracking-normal">机器状态</div><div class="min-h-0 min-w-0 overflow-hidden absolute right-5 bottom-5 h-2/3 w-[78%]"><span aria-hidden="true" class="pointer-events-none invisible absolute right-0 bottom-0 flex items-baseline whitespace-nowrap font-semibold leading-none tracking-normal"><span>2</span><span class="text-[0.55em]">/</span><span>3</span></span><span class="absolute right-0 bottom-0 flex max-w-full items-baseline whitespace-nowrap font-semibold leading-none tracking-normal text-foreground" style="font-size:42px"><span>2</span><span class="text-[0.55em]">/</span><span>3</span></span></div></section></div></div><div data-dashboard-widget="resource-trend" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:216px;width:852px;height:420px"><div class="size-full"><section class="vtl-surface-card flex min-h-0 min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 size-full"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge" aria-hidden="true"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg></span><h2 class="ui-text-control font-medium">资源趋势</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div data-slot="chart" data-chart="chart-_R_hab5flb_" class="flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-none [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-none h-full min-h-0 w-full"><style>
|
|
2
2
|
[data-chart=chart-_R_hab5flb_] {
|
|
3
3
|
--color-cpu: var(--chart-1);
|
|
4
4
|
--color-memory: var(--chart-3);
|
|
@@ -28,4 +28,4 @@
|
|
|
28
28
|
--color-runs: var(--chart-5);
|
|
29
29
|
--color-count: var(--chart-2);
|
|
30
30
|
}
|
|
31
|
-
</style><div class="recharts-responsive-container" style="width:100%;height:100%;min-width:0"><div style="width:0;height:0;overflow:visible"><div width="320" height="200" class="recharts-wrapper" style="position:relative;cursor:default;width:320px;height:200px"></div></div></div></div></div></section></div></div><div data-dashboard-widget="machine-status" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:648px;width:852px;height:528px"><div class="size-full"><section class="vtl-surface-card flex min-h-0 min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 vtl-jelly-image-card size-full" style="--vtl-jelly-card-image:url("/themes/jelly/card3.png");--vtl-jelly-card-position:center top;--vtl-jelly-card-opacity:0.88;--vtl-jelly-card-blur:5px"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server" aria-hidden="true"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg></span><h2 class="ui-text-control font-medium">机器状态</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-2 overflow-hidden"><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">Studio-PC</p><span data-slot="badge" data-variant="secondary" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90">在线</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">本机<!-- --> · <!-- -->直连</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">42<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="42" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:42%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">68<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="68" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:68%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">54<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="54" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:54%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">71<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="71" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:71%"></div></div></div></div></div><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">Linux-runner-02</p><span data-slot="badge" data-variant="secondary" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90">在线</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">GPU worker<!-- --> · <!-- -->P2P</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">76<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="76" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:76%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">81<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="81" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:81%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">89<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="89" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:89%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">62<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="62" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:62%"></div></div></div></div></div><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">MacBook-build</p><span data-slot="badge" data-variant="outline" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-border text-foreground hover:bg-muted">休眠</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">Build host<!-- --> · <!-- -->直连</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">8<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="8" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:8%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">24<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="24" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:24%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">0<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:0%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">48<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="48" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:48%"></div></div></div></div></div></div></div></section></div></div><div data-dashboard-widget="schedule" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:864px;top:648px;width:420px;height:528px"><div class="size-full"><div class="grid size-full min-h-0 gap-3"><section class="vtl-surface-card flex size-full min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 min-h-0"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar-clock" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></circle></svg></span><h2 class="ui-text-control font-medium">日程提醒</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-2"><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">15:30</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">Linux runner 镜像清理</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">维护窗口 20 分钟</p></div></div><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">17:00</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">工作组密钥轮换检查</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">需要管理员确认</p></div></div><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">20:10</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">夜间日志压缩</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">自动执行</p></div></div></div></div></section><section class="vtl-surface-card flex size-full min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 min-h-0"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></span><h2 class="ui-text-control font-medium">关注事项</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-3"><div class="flex items-center justify-center gap-4"><div data-slot="progress-ring" aria-label="health 76%" role="img" class="relative grid place-items-center size-24"><svg aria-hidden="true" data-slot="progress-ring-svg" viewBox="0 0 100 100" class="absolute inset-0 size-full overflow-visible"><circle cx="50" cy="50" r="39" fill="none" stroke="var(--muted)" stroke-width="12"></circle><circle cx="50" cy="50" r="39" fill="none" stroke="var(--primary)" stroke-dasharray="245.04422698000386" stroke-dashoffset="58.810614475200936" stroke-linecap="round" stroke-width="12" class="origin-center -rotate-90 transition-all"></circle></svg><div data-slot="progress-ring-center" class="relative z-10 grid size-16 place-items-center rounded-full bg-card"><span class="ui-text-control font-medium tabular-nums">76<!-- -->%</span></div></div><div class="grid gap-2"><div data-slot="progress-label-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="82" class="relative overflow-hidden rounded-full bg-muted h-5"><div data-slot="progress-label-bar-indicator" class="absolute inset-y-0 left-0 rounded-full bg-primary transition-all" style="width:82%"></div><div data-slot="progress-label-bar-label" class="absolute inset-0 z-10 flex items-center justify-between px-2.5 font-medium ui-text-kbd"><span class="text-primary-foreground">SLA</span><span class="tabular-nums text-muted-foreground">82<!-- -->%</span></div></div><div data-slot="progress-label-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="61" class="relative overflow-hidden rounded-full bg-muted h-5"><div data-slot="progress-label-bar-indicator" class="absolute inset-y-0 left-0 rounded-full bg-primary transition-all" style="width:61%"></div><div data-slot="progress-label-bar-label" class="absolute inset-0 z-10 flex items-center justify-between px-2.5 font-medium ui-text-kbd"><span class="text-primary-foreground">队列</span><span class="tabular-nums text-muted-foreground">61<!-- -->%</span></div></div></div></div><div role="separator" aria-orientation="horizontal" data-slot="separator" data-orientation="horizontal" class="shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch"></div><div class="rounded-lg border p-2.5 ui-text-control border-destructive/25 bg-destructive/5 text-destructive">runner-02 GPU 利用率持续高于 85%</div><div class="rounded-lg border p-2.5 ui-text-control bg-muted/15">Studio-PC 有 3 个运行等待人工审核</div></div></div></section></div></div></div></div></div><div class="fixed right-5 bottom-5 z-30"><div class="relative size-8"><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur transition-[opacity,transform] duration-150 ease-out pointer-events-none translate-y-1 opacity-0" type="button" aria-label="添加组件" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur transition-[opacity,transform] duration-150 ease-out pointer-events-none translate-y-1 opacity-0" type="button" aria-label="拖拽排版" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hand size-4" aria-hidden="true"><path d="M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2"></path><path d="M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2"></path><path d="M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8"></path><path d="M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"></path></svg></button><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur" type="button" aria-label="仪表盘操作" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis size-4 transition-transform" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div></div></section></main><!--$--><!--/$--><script src="/_next/static/chunks/a678910d6e3629e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22332,[\"/_next/static/chunks/eca64d281474b631.js\"],\"ThemeProvider\"]\n3:I[45121,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n4:I[60512,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n5:I[66863,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ClientPageRoot\"]\n6:I[66204,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/17e0384154325960.js\",\"/_next/static/chunks/c990601c49cb69a5.js\",\"/_next/static/chunks/3ffdc0da802a79d3.js\",\"/_next/static/chunks/742d3900ca49db0a.js\"],\"default\"]\n9:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ViewportBoundary\"]\ne:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"MetadataBoundary\"]\n10:I[50025,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/cff85d0d4e4a1b1f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"UZjoM4jL52ypr37RAGpQi\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/cff85d0d4e4a1b1f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/eca64d281474b631.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"font-sans antialiased\",\"data-vtl-theme\":\"default\",\"data-vtl-density\":\"default\",\"data-vtl-motion\":\"default\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17e0384154325960.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/c990601c49cb69a5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/3ffdc0da802a79d3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/742d3900ca49db0a.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Vantaloom\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Vantaloom local agent operations console.\"}]]\n"])</script></body></html>
|
|
31
|
+
</style><div class="recharts-responsive-container" style="width:100%;height:100%;min-width:0"><div style="width:0;height:0;overflow:visible"><div width="320" height="200" class="recharts-wrapper" style="position:relative;cursor:default;width:320px;height:200px"></div></div></div></div></div></section></div></div><div data-dashboard-widget="machine-status" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:0;top:648px;width:852px;height:528px"><div class="size-full"><section class="vtl-surface-card flex min-h-0 min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 vtl-jelly-image-card size-full" style="--vtl-jelly-card-image:url("/themes/jelly/card3.png");--vtl-jelly-card-position:center top;--vtl-jelly-card-opacity:0.88;--vtl-jelly-card-blur:5px"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server" aria-hidden="true"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg></span><h2 class="ui-text-control font-medium">机器状态</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-2 overflow-hidden"><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">Studio-PC</p><span data-slot="badge" data-variant="secondary" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90">在线</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">本机<!-- --> · <!-- -->直连</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">42<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="42" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:42%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">68<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="68" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:68%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">54<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="54" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:54%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">71<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="71" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:71%"></div></div></div></div></div><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">Linux-runner-02</p><span data-slot="badge" data-variant="secondary" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90">在线</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">GPU worker<!-- --> · <!-- -->P2P</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">76<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="76" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:76%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">81<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="81" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:81%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">89<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="89" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:89%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">62<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="62" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:62%"></div></div></div></div></div><div class="grid gap-3 rounded-lg border bg-muted/15 p-3 lg:grid-cols-[minmax(12rem,1fr)_minmax(0,1.6fr)]"><div class="flex min-w-0 items-center gap-2"><span class="grid size-9 shrink-0 place-items-center rounded-lg border bg-background text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor size-4" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></span><div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><p class="truncate ui-text-control font-medium">MacBook-build</p><span data-slot="badge" data-variant="outline" class="group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3 border-border text-foreground hover:bg-muted">休眠</span></div><p class="mt-1 truncate ui-text-kbd text-muted-foreground">Build host<!-- --> · <!-- -->直连</p></div></div><div class="grid gap-2 sm:grid-cols-4"><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg>CPU</span><span class="tabular-nums">8<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="8" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:8%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-memory-stick" aria-hidden="true"><path d="M6 19v-3"></path><path d="M10 19v-3"></path><path d="M14 19v-3"></path><path d="M18 19v-3"></path><path d="M8 11V9"></path><path d="M16 11V9"></path><path d="M12 11V9"></path><path d="M2 15h20"></path><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"></path></svg>内存</span><span class="tabular-nums">24<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="24" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:24%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio-tower" aria-hidden="true"><path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9"></path><path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5"></path><circle cx="12" cy="9" r="2"></circle><path d="M16.2 4.8c2 2 2.26 5.11.8 7.47"></path><path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1"></path><path d="M9.5 18h5"></path><path d="m8 22 4-11 4 11"></path></svg>GPU</span><span class="tabular-nums">0<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:0%"></div></div></div><div class="grid gap-1"><div class="flex items-center justify-between gap-2 ui-text-kbd text-muted-foreground"><span class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>磁盘</span><span class="tabular-nums">48<!-- -->%</span></div><div data-slot="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="48" class="relative h-1.5 w-full overflow-hidden rounded-full bg-muted"><div data-slot="progress-indicator" class="h-full rounded-full bg-primary transition-all" style="width:48%"></div></div></div></div></div></div></div></section></div></div><div data-dashboard-widget="schedule" class="absolute rounded-lg p-1 transition-[left,top,width,height,box-shadow] duration-200 ease-out" style="left:864px;top:648px;width:420px;height:528px"><div class="size-full"><div class="grid size-full min-h-0 gap-3"><section class="vtl-surface-card flex size-full min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 min-h-0"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar-clock" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></circle></svg></span><h2 class="ui-text-control font-medium">日程提醒</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-2"><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">15:30</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">Linux runner 镜像清理</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">维护窗口 20 分钟</p></div></div><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">17:00</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">工作组密钥轮换检查</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">需要管理员确认</p></div></div><div class="grid grid-cols-[3.5rem_1fr] gap-3 rounded-lg border bg-muted/15 p-2.5"><span class="ui-text-control font-medium tabular-nums">20:10</span><div class="min-w-0"><p class="truncate ui-text-control font-medium">夜间日志压缩</p><p class="mt-0.5 truncate ui-text-kbd text-muted-foreground">自动执行</p></div></div></div></div></section><section class="vtl-surface-card flex size-full min-w-0 flex-col overflow-hidden rounded-lg border bg-card p-3 min-h-0"><div class="mb-3 flex h-8 items-center gap-2"><span class="grid size-7 place-items-center rounded-md border bg-muted/35 text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></span><h2 class="ui-text-control font-medium">关注事项</h2></div><div class="min-h-0 flex-1 overflow-hidden"><div class="grid gap-3"><div class="flex items-center justify-center gap-4"><div data-slot="progress-ring" aria-label="health 76%" role="img" class="relative grid place-items-center size-24"><svg aria-hidden="true" data-slot="progress-ring-svg" viewBox="0 0 100 100" class="absolute inset-0 size-full overflow-visible"><circle cx="50" cy="50" r="39" fill="none" stroke="var(--muted)" stroke-width="12"></circle><circle cx="50" cy="50" r="39" fill="none" stroke="var(--primary)" stroke-dasharray="245.04422698000386" stroke-dashoffset="58.810614475200936" stroke-linecap="round" stroke-width="12" class="origin-center -rotate-90 transition-all"></circle></svg><div data-slot="progress-ring-center" class="relative z-10 grid size-16 place-items-center rounded-full bg-card"><span class="ui-text-control font-medium tabular-nums">76<!-- -->%</span></div></div><div class="grid gap-2"><div data-slot="progress-label-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="82" class="relative overflow-hidden rounded-full bg-muted h-5"><div data-slot="progress-label-bar-indicator" class="absolute inset-y-0 left-0 rounded-full bg-primary transition-all" style="width:82%"></div><div data-slot="progress-label-bar-label" class="absolute inset-0 z-10 flex items-center justify-between px-2.5 font-medium ui-text-kbd"><span class="text-primary-foreground">SLA</span><span class="tabular-nums text-muted-foreground">82<!-- -->%</span></div></div><div data-slot="progress-label-bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="61" class="relative overflow-hidden rounded-full bg-muted h-5"><div data-slot="progress-label-bar-indicator" class="absolute inset-y-0 left-0 rounded-full bg-primary transition-all" style="width:61%"></div><div data-slot="progress-label-bar-label" class="absolute inset-0 z-10 flex items-center justify-between px-2.5 font-medium ui-text-kbd"><span class="text-primary-foreground">队列</span><span class="tabular-nums text-muted-foreground">61<!-- -->%</span></div></div></div></div><div role="separator" aria-orientation="horizontal" data-slot="separator" data-orientation="horizontal" class="shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch"></div><div class="rounded-lg border p-2.5 ui-text-control border-destructive/25 bg-destructive/5 text-destructive">runner-02 GPU 利用率持续高于 85%</div><div class="rounded-lg border p-2.5 ui-text-control bg-muted/15">Studio-PC 有 3 个运行等待人工审核</div></div></div></section></div></div></div></div></div><div class="fixed right-5 bottom-5 z-30"><div class="relative size-8"><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur transition-[opacity,transform] duration-150 ease-out pointer-events-none translate-y-1 opacity-0" type="button" aria-label="添加组件" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus size-4" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur transition-[opacity,transform] duration-150 ease-out pointer-events-none translate-y-1 opacity-0" type="button" aria-label="拖拽排版" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hand size-4" aria-hidden="true"><path d="M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2"></path><path d="M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2"></path><path d="M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8"></path><path d="M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"></path></svg></button><button data-slot="button" data-variant="outline" data-size="icon-sm" class="group/button inline-flex shrink-0 items-center justify-center border bg-clip-padding text-sm font-medium whitespace-nowrap shadow-[var(--surface-control-shadow)] transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-7 absolute inset-0 rounded-full bg-background/95 shadow-md backdrop-blur" type="button" aria-label="仪表盘操作" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis size-4 transition-transform" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button></div></div></section></main><!--$--><!--/$--><script src="/_next/static/chunks/a678910d6e3629e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22332,[\"/_next/static/chunks/eca64d281474b631.js\"],\"ThemeProvider\"]\n3:I[45121,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n4:I[60512,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n5:I[66863,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ClientPageRoot\"]\n6:I[66204,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/17e0384154325960.js\",\"/_next/static/chunks/c990601c49cb69a5.js\",\"/_next/static/chunks/4950d4997283c964.js\",\"/_next/static/chunks/742d3900ca49db0a.js\"],\"default\"]\n9:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ViewportBoundary\"]\ne:I[35417,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"MetadataBoundary\"]\n10:I[50025,[\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/50eaeaad6e6d8caa.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bPeUmp1MLZMb80P05TQQo\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/50eaeaad6e6d8caa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/eca64d281474b631.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"font-sans antialiased\",\"data-vtl-theme\":\"default\",\"data-vtl-density\":\"default\",\"data-vtl-motion\":\"default\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17e0384154325960.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/c990601c49cb69a5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/4950d4997283c964.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/742d3900ca49db0a.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Vantaloom\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Vantaloom local agent operations console.\"}]]\n"])</script></body></html>
|
package/web/index.txt
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
3:I[45121,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
4
4
|
4:I[60512,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
5
5
|
5:I[66863,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ClientPageRoot"]
|
|
6
|
-
6:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/
|
|
6
|
+
6:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/4950d4997283c964.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
|
|
7
7
|
9:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"OutletBoundary"]
|
|
8
8
|
a:"$Sreact.suspense"
|
|
9
9
|
c:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ViewportBoundary"]
|
|
10
10
|
e:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"MetadataBoundary"]
|
|
11
11
|
10:I[50025,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
12
|
-
:HL["/_next/static/chunks/
|
|
13
|
-
0:{"P":null,"b":"
|
|
12
|
+
:HL["/_next/static/chunks/50eaeaad6e6d8caa.css","style"]
|
|
13
|
+
0:{"P":null,"b":"bPeUmp1MLZMb80P05TQQo","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/50eaeaad6e6d8caa.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/eca64d281474b631.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-CN","suppressHydrationWarning":true,"className":"font-sans antialiased","data-vtl-theme":"default","data-vtl-density":"default","data-vtl-motion":"default","children":["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/4950d4997283c964.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
|
|
14
14
|
7:{}
|
|
15
15
|
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
16
16
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|