@sleep2agi/agent-network-dashboard 0.6.3-preview.3 → 0.6.3-preview.4
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/.next/BUILD_COMMIT +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +12 -11
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +3 -3
- package/.next/server/app/admin.segments/_full.segment.rsc +3 -3
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +2 -2
- package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +3 -3
- package/.next/server/app/messages.segments/_full.segment.rsc +3 -3
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +3 -3
- package/.next/server/app/nodes.segments/_full.segment.rsc +3 -3
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/servers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/servers.html +2 -2
- package/.next/server/app/servers.rsc +2 -2
- package/.next/server/app/servers.segments/_full.segment.rsc +2 -2
- package/.next/server/app/servers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/servers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/servers.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/servers.segments/servers.segment.rsc +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +2 -2
- package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/[root-of-the-server]__0jg663w._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0jg663w._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0-n_oet._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0-n_oet._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0jgx8j4._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0jgx8j4._.js.map +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0_vh2hn._.js +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0_vh2hn._.js.map +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0a352ge._.js +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0a352ge._.js.map +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0k0.-6z._.js +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0k0.-6z._.js.map +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_12jui6l._.js +3 -0
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_12jui6l._.js.map +1 -0
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_nodes_page_tsx_0.1qp86._.js +2 -2
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_nodes_page_tsx_0.1qp86._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/01.7wksc03ge7.js +1 -0
- package/.next/static/chunks/{1238uy.r8ebu0.js → 05ludq~vmjrpi.js} +1 -1
- package/.next/static/chunks/0nt58h_jnn298.js +2 -0
- package/.next/static/chunks/0~qpo2.zfv914.css +1 -0
- package/.next/static/chunks/10-herg8p2_u0.js +1 -0
- package/.next/static/chunks/{0r4f9a-1h0l8n.js → 1162nvfdeg.tg.js} +2 -2
- package/.next/static/chunks/11as~l5x7cdjy.js +1 -0
- package/.next/static/chunks/{0dzyz0tl5mmyh.js → 14eb0vbqm-0fq.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/api/anet/node-lifecycle/route.ts +54 -5
- package/app/components/CreateNodeWizard.tsx +70 -24
- package/app/components/HostSupervisorPicker.tsx +6 -3
- package/app/components/NodeLifecycleMenu.tsx +436 -0
- package/app/components/types.ts +4 -0
- package/app/lib/hooks.ts +22 -0
- package/app/nodes/page.tsx +42 -2
- package/package.json +1 -1
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0l07md.._.js +0 -3
- package/.next/server/chunks/ssr/dashboard-pr4-338_app_0l07md.._.js.map +0 -1
- package/.next/static/chunks/0okyajjiuijbh.css +0 -1
- package/.next/static/chunks/0zezb.fc41oyb.js +0 -1
- package/.next/static/chunks/0zta~z4xpak8b.js +0 -2
- package/.next/static/chunks/10rif2p3a6hdl.js +0 -1
- /package/.next/static/{S9Q_U9UD2ZJQPBZjZgrZy → 3WnbjoWrJbRnQkx4ilgVm}/_buildManifest.js +0 -0
- /package/.next/static/{S9Q_U9UD2ZJQPBZjZgrZy → 3WnbjoWrJbRnQkx4ilgVm}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{S9Q_U9UD2ZJQPBZjZgrZy → 3WnbjoWrJbRnQkx4ilgVm}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" data-theme="cyber" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes, viewport-fit=cover"/><link rel="stylesheet" href="/_next/static/chunks/066jf0nk75nic.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" data-theme="cyber" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes, viewport-fit=cover"/><link rel="stylesheet" href="/_next/static/chunks/066jf0nk75nic.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0~qpo2.zfv914.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/12xixbh.66y8a.js"/><script src="/_next/static/chunks/124rj3g69riz4.js" async=""></script><script src="/_next/static/chunks/11d7__keaen8o.js" async=""></script><script src="/_next/static/chunks/14z1ozqztujxj.js" async=""></script><script src="/_next/static/chunks/turbopack-11~h6e3rogmsb.js" async=""></script><script src="/_next/static/chunks/0z7gm7mwxvgm7.js" async=""></script><script src="/_next/static/chunks/0kn_928z6zi9y.js" async=""></script><script src="/_next/static/chunks/0rxx2o22fr4zs.js" async=""></script><script src="/_next/static/chunks/0ejar-4yts1fh.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0b0b0d"/><title>Agent Network Dashboard</title><meta name="description" content="Real-time monitoring dashboard for Agent Network nodes via CommHub"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Agent Network"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="Agent Network Dashboard"/><meta property="og:description" content="Real-time monitoring dashboard for Agent Network nodes"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Agent Network Dashboard"/><meta name="twitter:description" content="Real-time monitoring dashboard for Agent Network nodes"/><link rel="shortcut icon" href="/favicon.svg"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/sleep2agi-logo.svg" type="image/svg+xml"/><script>
|
|
2
2
|
try {
|
|
3
3
|
var t = localStorage.getItem('anet-theme') || 'cyber';
|
|
4
4
|
document.documentElement.setAttribute('data-theme', t);
|
|
@@ -9,4 +9,4 @@ try {
|
|
|
9
9
|
w-52
|
|
10
10
|
-translate-x-full
|
|
11
11
|
lg:translate-x-0 lg:static lg:shrink-0 lg:shadow-none
|
|
12
|
-
"><a class="block px-4 py-4 flex items-center gap-3 hover:bg-[#161618]/40 transition-colors rounded-r-xl" aria-label="Agent Network — home" href="/"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true" class="shrink-0"><circle cx="16" cy="16" r="10" fill="none" stroke="currentColor" stroke-width="1.5" opacity="0.2" class="text-cyan-400"></circle><line x1="16" y1="10" x2="10" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><line x1="16" y1="10" x2="22" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><line x1="10" y1="20" x2="22" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><circle cx="16" cy="10" r="2.5" fill="currentColor" class="text-cyan-400"></circle><circle cx="10" cy="20" r="2.5" fill="currentColor" class="text-green-400"></circle><circle cx="22" cy="20" r="2.5" fill="currentColor" class="text-violet-400"></circle></svg><div class="min-w-0"><div class="text-white text-[13px] font-semibold leading-tight">Agent Network</div><div class="text-[10px] text-gray-500 flex items-center gap-1.5 mt-0.5"><span class="inline-block w-1.5 h-1.5 rounded-full bg-gray-600" aria-hidden="true"></span><span>waiting for agents</span></div></div></a><div class="border-b border-[#26262b]"></div><div class="pb-28"><nav class="flex flex-col gap-1 px-2 py-4"><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span>Overview</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/tasks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span>Tasks</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/nodes"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span>Nodes</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/servers"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6.5A2.5 2.5 0 016.5 4h11A2.5 2.5 0 0120 6.5v1A2.5 2.5 0 0117.5 10h-11A2.5 2.5 0 014 7.5v-1zM4 16.5A2.5 2.5 0 016.5 14h11a2.5 2.5 0 012.5 2.5v1a2.5 2.5 0 01-2.5 2.5h-11A2.5 2.5 0 014 17.5v-1zM7 7h.01M7 17h.01"></path></svg><span>Servers</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/admin"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span>Admin</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/settings"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span>Settings</span></a></nav></div><div class="absolute bottom-0 left-0 right-0 border-t border-[#26262b] bg-[#111113]"><button class="w-full flex items-center text-[11px] text-gray-600 hover:text-gray-400 hover:bg-[#1c1c1f] transition-colors justify-between gap-2 px-5 py-3 lg:py-2" aria-label="Open command palette"><span class="flex items-center gap-2"><svg class="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>Quick search</span><kbd class="text-[10px] border border-current rounded px-1 py-0.5 opacity-60 font-mono">⌘K</kbd></button><button class="w-full flex items-center text-xs text-gray-500 hover:text-red-400 hover:bg-red-500/5 transition-colors gap-3 px-5 py-3"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"></path></svg>Sign out</button><div class="flex items-center px-3 py-2 justify-end"><button title="Collapse sidebar" class="hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors" aria-label="Collapse sidebar"><svg class="w-4 h-4 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path></svg></button></div></div></aside><main class="flex-1 min-w-0 max-w-full overflow-x-hidden flex flex-col pt-[env(safe-area-inset-top)]"><div class="flex-1 min-w-0 max-w-full overflow-x-hidden pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></div></main><nav class="fixed inset-x-0 bottom-0 z-40 border-t border-[#26262b] bg-[#111113]/95 px-1 pb-[calc(env(safe-area-inset-bottom)+0.35rem)] pt-1.5 backdrop-blur lg:hidden"><div class="mx-auto grid max-w-md grid-cols-4 gap-1"><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/nodes"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span class="max-w-full truncate">Agents</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span class="max-w-full truncate">Overview</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/tasks"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span class="max-w-full truncate">Tasks</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/settings"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span class="max-w-full truncate">Settings</span></a></div></nav><aside class="fixed right-0 top-20 z-40 hidden lg:flex flex-col rounded-l-xl border border-r-0 shadow-xl shadow-black/30 anet-fade-in" style="background:var(--bg-secondary);border-color:var(--border);width:40px;max-height:calc(100vh - 6rem);transition:width 200ms ease-out" aria-label="Servers panel"><button aria-expanded="false" aria-label="Expand servers panel" class="flex items-center gap-2 px-2.5 py-2 border-b text-[11px] font-semibold tracking-wide select-none" style="color:var(--fg);border-color:var(--border)"><svg class="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="6" rx="1.5"></rect><rect x="3" y="14" width="18" height="6" rx="1.5"></rect><circle cx="7" cy="7" r="0.7" fill="currentColor"></circle><circle cx="7" cy="17" r="0.7" fill="currentColor"></circle></svg></button></aside></div><script src="/_next/static/chunks/12xixbh.66y8a.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[23312,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ThemeProvider\"]\n3:I[16949,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"NetworkProvider\"]\n4:I[88625,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"PwaInstaller\"]\n5:I[68738,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"AppShell\"]\n6:I[17510,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n7:I[30200,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n8:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nc:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ViewportBoundary\"]\ne:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"MetadataBoundary\"]\n10:I[8817,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/066jf0nk75nic.css\",\"style\"]\n:HL[\"/_next/static/chunks/0okyajjiuijbh.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/066jf0nk75nic.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0okyajjiuijbh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0kn_928z6zi9y.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0ejar-4yts1fh.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\ntry {\\n var t = localStorage.getItem('anet-theme') || 'cyber';\\n document.documentElement.setAttribute('data-theme', t);\\n} catch (e) {}\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"min-h-full\",\"style\":{\"background\":\"var(--bg)\",\"color\":\"var(--fg)\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,\"$@b\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/066jf0nk75nic.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0okyajjiuijbh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"S9Q_U9UD2ZJQPBZjZgrZy\"}\n"])</script><script>self.__next_f.push([1,"11:[]\nb:\"$W11\"\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, maximum-scale=5, user-scalable=yes, viewport-fit=cover\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0b0b0d\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[48969,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"IconMark\"]\na:null\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Agent Network\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"13\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"16\",{\"rel\":\"apple-touch-icon\",\"href\":\"/sleep2agi-logo.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L12\",\"17\",{}]]\n"])</script></body></html>
|
|
12
|
+
"><a class="block px-4 py-4 flex items-center gap-3 hover:bg-[#161618]/40 transition-colors rounded-r-xl" aria-label="Agent Network — home" href="/"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true" class="shrink-0"><circle cx="16" cy="16" r="10" fill="none" stroke="currentColor" stroke-width="1.5" opacity="0.2" class="text-cyan-400"></circle><line x1="16" y1="10" x2="10" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><line x1="16" y1="10" x2="22" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><line x1="10" y1="20" x2="22" y2="20" stroke="currentColor" stroke-width="1" opacity="0.45" class="text-cyan-400"></line><circle cx="16" cy="10" r="2.5" fill="currentColor" class="text-cyan-400"></circle><circle cx="10" cy="20" r="2.5" fill="currentColor" class="text-green-400"></circle><circle cx="22" cy="20" r="2.5" fill="currentColor" class="text-violet-400"></circle></svg><div class="min-w-0"><div class="text-white text-[13px] font-semibold leading-tight">Agent Network</div><div class="text-[10px] text-gray-500 flex items-center gap-1.5 mt-0.5"><span class="inline-block w-1.5 h-1.5 rounded-full bg-gray-600" aria-hidden="true"></span><span>waiting for agents</span></div></div></a><div class="border-b border-[#26262b]"></div><div class="pb-28"><nav class="flex flex-col gap-1 px-2 py-4"><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span>Overview</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/tasks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span>Tasks</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/nodes"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span>Nodes</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/servers"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6.5A2.5 2.5 0 016.5 4h11A2.5 2.5 0 0120 6.5v1A2.5 2.5 0 0117.5 10h-11A2.5 2.5 0 014 7.5v-1zM4 16.5A2.5 2.5 0 016.5 14h11a2.5 2.5 0 012.5 2.5v1a2.5 2.5 0 01-2.5 2.5h-11A2.5 2.5 0 014 17.5v-1zM7 7h.01M7 17h.01"></path></svg><span>Servers</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/admin"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span>Admin</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#232327] text-gray-400 hover:text-gray-200 hover:bg-[#1c1c1f] " href="/settings"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span>Settings</span></a></nav></div><div class="absolute bottom-0 left-0 right-0 border-t border-[#26262b] bg-[#111113]"><button class="w-full flex items-center text-[11px] text-gray-600 hover:text-gray-400 hover:bg-[#1c1c1f] transition-colors justify-between gap-2 px-5 py-3 lg:py-2" aria-label="Open command palette"><span class="flex items-center gap-2"><svg class="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>Quick search</span><kbd class="text-[10px] border border-current rounded px-1 py-0.5 opacity-60 font-mono">⌘K</kbd></button><button class="w-full flex items-center text-xs text-gray-500 hover:text-red-400 hover:bg-red-500/5 transition-colors gap-3 px-5 py-3"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"></path></svg>Sign out</button><div class="flex items-center px-3 py-2 justify-end"><button title="Collapse sidebar" class="hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors" aria-label="Collapse sidebar"><svg class="w-4 h-4 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path></svg></button></div></div></aside><main class="flex-1 min-w-0 max-w-full overflow-x-hidden flex flex-col pt-[env(safe-area-inset-top)]"><div class="flex-1 min-w-0 max-w-full overflow-x-hidden pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></div></main><nav class="fixed inset-x-0 bottom-0 z-40 border-t border-[#26262b] bg-[#111113]/95 px-1 pb-[calc(env(safe-area-inset-bottom)+0.35rem)] pt-1.5 backdrop-blur lg:hidden"><div class="mx-auto grid max-w-md grid-cols-4 gap-1"><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/nodes"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span class="max-w-full truncate">Agents</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span class="max-w-full truncate">Overview</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/tasks"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span class="max-w-full truncate">Tasks</span></a><a class="relative flex min-h-12 flex-col items-center justify-center gap-0.5 rounded-xl px-1 text-[10px] transition-colors text-gray-500 active:bg-[#232327] active:text-gray-200" href="/settings"><svg class="h-5 w-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.6"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span class="max-w-full truncate">Settings</span></a></div></nav><aside class="fixed right-0 top-20 z-40 hidden lg:flex flex-col rounded-l-xl border border-r-0 shadow-xl shadow-black/30 anet-fade-in" style="background:var(--bg-secondary);border-color:var(--border);width:40px;max-height:calc(100vh - 6rem);transition:width 200ms ease-out" aria-label="Servers panel"><button aria-expanded="false" aria-label="Expand servers panel" class="flex items-center gap-2 px-2.5 py-2 border-b text-[11px] font-semibold tracking-wide select-none" style="color:var(--fg);border-color:var(--border)"><svg class="w-4 h-4 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="6" rx="1.5"></rect><rect x="3" y="14" width="18" height="6" rx="1.5"></rect><circle cx="7" cy="7" r="0.7" fill="currentColor"></circle><circle cx="7" cy="17" r="0.7" fill="currentColor"></circle></svg></button></aside></div><script src="/_next/static/chunks/12xixbh.66y8a.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[23312,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ThemeProvider\"]\n3:I[16949,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"NetworkProvider\"]\n4:I[88625,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"PwaInstaller\"]\n5:I[68738,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"AppShell\"]\n6:I[17510,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n7:I[30200,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n8:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nc:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ViewportBoundary\"]\ne:I[67692,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"MetadataBoundary\"]\n10:I[8817,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/066jf0nk75nic.css\",\"style\"]\n:HL[\"/_next/static/chunks/0~qpo2.zfv914.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/066jf0nk75nic.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0~qpo2.zfv914.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0kn_928z6zi9y.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0ejar-4yts1fh.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\ntry {\\n var t = localStorage.getItem('anet-theme') || 'cyber';\\n document.documentElement.setAttribute('data-theme', t);\\n} catch (e) {}\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"min-h-full\",\"style\":{\"background\":\"var(--bg)\",\"color\":\"var(--fg)\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,\"$@b\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/066jf0nk75nic.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0~qpo2.zfv914.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"3WnbjoWrJbRnQkx4ilgVm\"}\n"])</script><script>self.__next_f.push([1,"11:[]\nb:\"$W11\"\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, maximum-scale=5, user-scalable=yes, viewport-fit=cover\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0b0b0d\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[48969,[\"/_next/static/chunks/0z7gm7mwxvgm7.js\",\"/_next/static/chunks/0kn_928z6zi9y.js\",\"/_next/static/chunks/0rxx2o22fr4zs.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"IconMark\"]\na:null\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Agent Network\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"13\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"16\",{\"rel\":\"apple-touch-icon\",\"href\":\"/sleep2agi-logo.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L12\",\"17\",{}]]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/12xixbh.66y8a.js"/><script src="/_next/static/chunks/124rj3g69riz4.js" async=""></script><script src="/_next/static/chunks/11d7__keaen8o.js" async=""></script><script src="/_next/static/chunks/14z1ozqztujxj.js" async=""></script><script src="/_next/static/chunks/turbopack-11~h6e3rogmsb.js" async=""></script><script src="/_next/static/chunks/0afh7zu_obnss.js" async=""></script><script src="/_next/static/chunks/0ejar-4yts1fh.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/12xixbh.66y8a.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[17510,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n3:I[30200,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n4:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ViewportBoundary\"]\na:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"MetadataBoundary\"]\nc:I[8817,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/12xixbh.66y8a.js"/><script src="/_next/static/chunks/124rj3g69riz4.js" async=""></script><script src="/_next/static/chunks/11d7__keaen8o.js" async=""></script><script src="/_next/static/chunks/14z1ozqztujxj.js" async=""></script><script src="/_next/static/chunks/turbopack-11~h6e3rogmsb.js" async=""></script><script src="/_next/static/chunks/0afh7zu_obnss.js" async=""></script><script src="/_next/static/chunks/0ejar-4yts1fh.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/12xixbh.66y8a.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[17510,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n3:I[30200,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\"]\n4:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"ViewportBoundary\"]\na:I[67692,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"MetadataBoundary\"]\nc:I[8817,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"3WnbjoWrJbRnQkx4ilgVm\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[48969,[\"/_next/static/chunks/0afh7zu_obnss.js\",\"/_next/static/chunks/0ejar-4yts1fh.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"2\",{}]]\n"])</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25112,e=>{"use strict";var t=e.i(72495);e.s(["previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return(0,t.relativeAgo)(e)??"--"}])},3049,e=>{"use strict";var t=e.i(52543);let s=[180,200,220,270,300,330,30,90];function a(e){let t=0;for(let s=0;s<e.length;s++)t=31*t+e.charCodeAt(s)>>>0;let a=s[t%s.length];return{bg:`hsl(${a} 55% 22%)`,ring:`hsl(${a} 60% 45%)`,text:`hsl(${a} 80% 78%)`}}function r(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:s=28,className:l=""}){if(/\bgrok\b|grok-build|grok测试员|grok-demo/i.test(e))return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border border-emerald-500/45 bg-emerald-950/70 shrink-0 ${l}`,style:{width:s,height:s,backgroundImage:"url(/vendors/grok.svg)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"68% 68%"},title:e,"aria-hidden":!0});let i=a(e),n=Math.max(9,Math.round(.42*s));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${l}`,style:{width:s,height:s,fontSize:n,backgroundColor:i.bg,borderColor:i.ring,color:i.text},title:e,"aria-hidden":!0,children:r(e)})},"aliasAvatarColors",0,a,"aliasInitial",0,r])},19880,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-gray-500/10 text-gray-300 border-gray-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-gray-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-gray-400",acked:"bg-gray-300",running:"bg-green-500",replied:"bg-gray-400",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-gray-600",expired:"bg-gray-600"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-gray-500/10 text-gray-300 border-gray-500/20",acked:"bg-gray-500/10 text-gray-300 border-gray-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-gray-500/10 text-gray-300 border-gray-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-gray-500/10 text-gray-500 border-gray-500/20",expired:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#9ca3af",acked:"#9ca3af",running:"#4ade80",replied:"#9ca3af",closed:"#6b7280",failed:"#f87171",cancelled:"#6b7280",expired:"#6b7280"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},63241,e=>{"use strict";var t=e.i(31923),s=e.i(16949);let a=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function l(e,t){if(!t)return e;let s=e.includes("?")?"&":"?";return`${e}${s}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",a,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/health",a,r);return{health:e||null,error:s}},"useMessages",0,function(e=100){let{networkId:i}=(0,s.useNetworkId)(),{data:n,error:d,isLoading:o}=(0,t.default)(l(`/api/hub/messages?limit=${e}`,i),a,{...r,keepPreviousData:!0});return{messages:n?.messages||[],error:d,isLoading:o}},"useNodeLifecycle",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:n}=(0,t.default)(l("/api/hub/nodes",e),a,r),d={},o={};for(let e of i?.nodes??[])e.alias&&"string"==typeof e.lifecycle_state&&(d[e.alias]=e.lifecycle_state),e.alias&&"string"==typeof e.node_id&&(o[e.alias]=e.node_id);return{lifecycleByAlias:d,nodeIdByAlias:o,error:n}},"useSessions",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:n,isLoading:d}=(0,t.default)(l("/api/hub/status",e),a,r);return{sessions:i?.sessions||[],hint:i?._hint,error:n,isLoading:d}},"useStats",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:n}=(0,t.default)(l("/api/hub/stats",e),a,r);return{stats:i?.ok?i:null,error:n}},"useTasks",0,function(e){let{networkId:i}=(0,s.useNetworkId)(),n=new URLSearchParams({limit:"100",...e}).toString(),{data:d,error:o,isLoading:c}=(0,t.default)(l(`/api/hub/tasks?${n}`,i),a,r);return{tasks:d?.tasks||[],count:d?.count??0,source:d?.source,error:o,isLoading:c}}])},52835,e=>{"use strict";var t=e.i(52543),s=e.i(49016),a=e.i(34120),r=e.i(63241),l=e.i(25112),i=e.i(3049),n=e.i(19880);e.s(["default",0,function(){let e,{sessions:d}=(0,r.useSessions)(),{health:o}=(0,r.useHealth)(),{stats:c}=(0,r.useStats)(),x=o?.sse_sessions||{},g=e=>(e.network_id?x[`${e.network_id}:${e.alias}`]:void 0)??x[e.alias],[u,b]=(0,s.useState)(""),[m,h]=(0,s.useState)(""),[p,f]=(0,s.useState)(""),[y,j]=(0,s.useState)(""),[v,N]=(0,s.useState)(""),[S,k]=(0,s.useState)(""),[w,T]=(0,s.useState)(""),[_,C]=(0,s.useState)(""),A=async()=>{if(u.trim()&&m.trim()){try{let e=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"register",username:u,password:m})}),t=await e.json();f(t.ok?`Created: ${t.user.username} (${t.user.user_id})`:`Failed: ${t.error}`),t.ok&&(b(""),h(""))}catch{f("Failed")}setTimeout(()=>f(""),8e3)}},$=async()=>{if(y.trim()){try{let e=await fetch("/api/hub/broadcast",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:y})}),t=await e.json();N(t.ok?`Sent to ${t.recipients} nodes`:`Failed: ${t.error}`),t.ok&&j("")}catch{N("Failed")}setTimeout(()=>N(""),5e3)}},I=async()=>{if(S&&w.trim()){try{let e=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:S,task:w})}),t=await e.json();C(t.ok?"Task sent":`Failed: ${t.error}`),t.ok&&T("")}catch{C("Failed")}setTimeout(()=>C(""),5e3)}},O=d.filter(e=>g(e)),U=d.filter(e=>!g(e));return(0,t.jsxs)("div",{className:"min-h-screen bg-[#0b0b0d] text-gray-100 p-4 sm:p-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Admin"}),(0,t.jsx)("nav",{className:"mb-4 sm:mb-8 flex flex-wrap gap-2 text-xs",children:[{href:"#status",label:"Status"},{href:"#actions",label:"Actions"},{href:"#users",label:"Users"}].map(e=>(0,t.jsx)("a",{href:e.href,className:"inline-flex min-h-[44px] items-center rounded-md border border-[#26262b] bg-[#0e0e10]/60 px-3 py-2 text-gray-400 hover:border-cyan-500/50 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,t.jsxs)("div",{className:"max-w-6xl space-y-10",children:[(0,t.jsxs)("div",{id:"status",className:"space-y-4 scroll-mt-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Status"}),(0,t.jsx)("div",{className:"flex-1 h-px bg-[#26262b]"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,t.jsxs)("section",{className:"bg-[#161618] border border-[#26262b] rounded-xl p-4 sm:p-5",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-3 sm:mb-4",children:"Server Overview"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-2xl sm:text-3xl font-bold text-green-400 tabular-nums",children:O.length}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"Online"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-2xl sm:text-3xl font-bold text-gray-500 tabular-nums",children:U.length}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"Offline"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-2xl sm:text-3xl font-bold text-cyan-400 tabular-nums",children:o?.sse_connections??"--"}),(0,t.jsxs)("div",{className:"text-xs text-gray-500",children:["SSE Streams ",(0,t.jsx)("span",{className:"text-gray-600",children:"· server"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-2xl sm:text-3xl font-bold text-white tabular-nums",children:c?.tasks?.total??"--"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"Total Tasks"})]})]}),c?.tasks?.by_status&&c.tasks.by_status.length>0&&(e=Object.fromEntries(c.tasks.by_status.map(e=>[e.status,e.count])),(0,t.jsxs)("div",{className:"mt-4 flex items-center justify-between border-t border-[#26262b] pt-3 text-xs",children:[(0,t.jsxs)("div",{className:"text-gray-400 tabular-nums",children:[(0,t.jsxs)("span",{className:e.running?"text-green-400":"text-gray-500",children:[e.running||0," running"]}),(0,t.jsx)("span",{className:"text-gray-600",children:" · "}),(0,t.jsxs)("span",{className:e.failed?"text-red-400":"text-gray-500",children:[e.failed||0," failed"]})]}),(0,t.jsx)(a.default,{href:"/tasks",prefetch:!1,className:"text-cyan-400 hover:text-cyan-300",children:"View all →"})]}))]}),(0,t.jsxs)("section",{className:"bg-[#161618] border border-[#26262b] rounded-xl p-5",children:[(0,t.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:["Online Sessions ",(0,t.jsxs)("span",{className:"text-gray-600",children:["(",O.length,")"]})]}),(0,t.jsx)("div",{className:"space-y-2 max-h-80 overflow-y-auto",children:0===O.length?(0,t.jsx)("div",{className:"text-xs text-gray-600 text-center py-4",children:"No online sessions"}):O.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-3 bg-[#0e0e10] rounded-lg px-3 py-2 border border-[#1c1c1f]",children:[(0,t.jsx)(i.AliasAvatar,{alias:e.alias,size:20}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-sm text-white font-medium truncate",children:e.alias}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 truncate",children:[e.agent||"--"," · ",e.task||"idle"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded border ${n.SESSION_STATUS_CHIP_CLASS[e.status]||n.SESSION_STATUS_CHIP_CLASS.idle}`,children:e.status}),(0,t.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,l.timeAgo)(e.updated_at)})]})]},e.alias))})]})]})]}),(0,t.jsxs)("div",{id:"actions",className:"space-y-4 scroll-mt-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Actions"}),(0,t.jsx)("div",{className:"flex-1 h-px bg-[#26262b]"})]}),0===d.length?(0,t.jsx)("div",{className:"bg-[#161618] border border-[#26262b] rounded-xl px-5 py-4 text-sm text-gray-500",children:"Broadcast and Send Task become available after the first agent registers."}):(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,t.jsxs)("section",{className:"bg-[#161618] border border-[#26262b] rounded-xl p-5",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Broadcast"}),(0,t.jsx)("textarea",{value:y,onChange:e=>j(e.target.value),placeholder:"Message to all online nodes...",rows:3,className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,t.jsxs)("div",{className:"flex justify-between items-center mt-3",children:[(0,t.jsxs)("span",{className:"text-xs text-gray-600",children:[y.length,"/500"]}),(0,t.jsx)("button",{onClick:$,disabled:!y.trim(),className:"px-4 py-2 bg-purple-600 hover:bg-purple-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Broadcast"})]}),v&&(0,t.jsx)("div",{className:`mt-2 text-xs ${v.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:v})]}),(0,t.jsxs)("section",{className:"bg-[#161618] border border-[#26262b] rounded-xl p-5",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Send Task"}),(0,t.jsxs)("select",{value:S,onChange:e=>k(e.target.value),className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-cyan-500/50 focus:outline-none mb-3",children:[(0,t.jsx)("option",{value:"",children:"Select target node..."}),O.map(e=>(0,t.jsxs)("option",{value:e.alias,children:[e.alias," (",e.status,")"]},e.alias)),(0,t.jsx)("optgroup",{label:"Offline",children:U.map(e=>(0,t.jsxs)("option",{value:e.alias,children:[e.alias," (offline)"]},e.alias))})]}),(0,t.jsx)("textarea",{value:w,onChange:e=>T(e.target.value),placeholder:"Task content...",rows:3,className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,t.jsx)("div",{className:"flex justify-end mt-3",children:(0,t.jsx)("button",{onClick:I,disabled:!S||!w.trim(),className:"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Send Task"})}),_&&(0,t.jsx)("div",{className:`mt-2 text-xs ${_.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:_})]})]})]}),(0,t.jsxs)("div",{id:"users",className:"space-y-4 scroll-mt-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Users"}),(0,t.jsx)("div",{className:"flex-1 h-px bg-[#26262b]"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:(0,t.jsxs)("section",{className:"bg-[#161618] border border-[#26262b] rounded-xl p-5",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Register User (V3)"}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("input",{type:"text",value:u,onChange:e=>b(e.target.value),placeholder:"Username",className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,t.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Password",className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,t.jsx)("button",{onClick:A,disabled:!u.trim()||!m.trim(),className:"w-full px-4 py-2 bg-green-600 hover:bg-green-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Register"})]}),p&&(0,t.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]})})]})]})]})}])}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89195,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.6.3-preview.
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89195,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.6.3-preview.4"],89195)},23474,e=>{"use strict";var t=e.i(52543),r=e.i(49016),s=e.i(89195);e.s(["default",0,function(){let[e,a]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,m]=(0,r.useState)(""),[g,h]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),h(!0),m("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}m(r.error||"Login failed")}catch{m("Connection failed")}h(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0b0b0d] text-gray-100 flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#161618] border border-[#26262b] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#26262b] bg-[#161618] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{a(r),m("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#26262b] bg-[#161618]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-4 py-3 text-base sm:text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0e0e10] border border-[#26262b] rounded-lg px-4 pr-11 py-3 text-base sm:text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center justify-center min-w-[44px] px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:g||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[g&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:g?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",s.DASHBOARD_VERSION]})]})]})]})}])}]);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,61616,e=>{"use strict";var s=e.i(52543),t=e.i(49016),a=e.i(25112),r=e.i(63241),n=e.i(6693),l=e.i(88847),i=e.i(16949);function d({networkId:e,value:a,onChange:r}){let[n,l]=(0,t.useState)("loading"),[i,x]=(0,t.useState)([]),[m,u]=(0,t.useState)(""),[h,p]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{let s=!0;return l("loading"),u(""),fetch(e?`/api/anet/host-supervisors?network_id=${encodeURIComponent(e)}`:"/api/anet/host-supervisors",{cache:"no-store"}).then(e=>e.json().then(s=>({status:e.status,body:s}))).then(({status:e,body:t})=>{if(!s)return;if(501===e||t?.unconfirmed){l("unconfirmed"),u(t?.error||"hub /api/host-supervisors unavailable — upgrade to >=0.9.0-preview.8"),x([]);return}if(!t?.ok){l("error"),u(t?.error||`hub ${e}`),x([]);return}let n=Array.isArray(t.daemons)?t.daemons:[];x(n),l("ready"),1!==n.length||a||r(n[0].daemon_node_id,n[0])}).catch(e=>{s&&(l("error"),u(e instanceof Error?e.message:String(e)),x([]))}),()=>{s=!1}},[e]),"loading"===n)return(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-3 text-xs text-gray-500",children:[(0,s.jsxs)("svg",{className:"h-3.5 w-3.5 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"正在查询可用的 host_supervisor 节点…"]});if("unconfirmed"===n)return(0,s.jsxs)("div",{className:"rounded-md border border-amber-700/40 bg-amber-900/10 px-3 py-3 text-xs text-amber-200",children:[(0,s.jsx)("div",{className:"font-semibold mb-1",children:"hub 暂未升级"}),(0,s.jsx)("div",{className:"text-amber-200/80",children:m}),(0,s.jsxs)("div",{className:"mt-1 text-[11px] text-amber-200/60",children:["升级到 ",(0,s.jsx)("code",{className:"rounded bg-black/40 px-1 py-0.5",children:"@sleep2agi/commhub-server@0.9.0-preview.8"})," 后选服务器功能才会出现。"]})]});if("error"===n)return(0,s.jsxs)("div",{className:"rounded-md border border-red-700/40 bg-red-900/10 px-3 py-3 text-xs text-red-200",children:["查询 host_supervisor 节点失败:",m]});if(0===i.length)return(0,s.jsxs)("div",{className:"rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-4 text-xs text-gray-300",children:[(0,s.jsx)("div",{className:"text-sm font-semibold text-gray-200",children:"还没有可用的 host_supervisor 节点"}),(0,s.jsx)("p",{className:"mt-1 text-gray-500",children:"要在某台机器上创建节点,先在那台机器上跑一次 daemon 初始化命令:"}),(0,s.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-black/40 p-2 text-[11px] text-cyan-300",children:`# 任选一台目标机器(你的笔记本 / 一台服务器都行)
|
|
2
|
+
anet daemon up my-daemon`}),(0,s.jsx)("p",{className:"mt-2 text-gray-500",children:"注册成功后这里会自动出现,无需刷新。"})]});if(1===i.length&&!h){let e=i[0];return(0,s.jsxs)("div",{className:"rounded-md border border-cyan-700/40 bg-cyan-900/10 px-3 py-3 text-xs text-cyan-100",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-cyan-400/80",children:"将在"})," ",(0,s.jsx)("span",{className:"font-semibold",children:e.alias}),(0,s.jsxs)("span",{className:"text-cyan-300/60",children:[" (",e.hostname||"—",") "]}),(0,s.jsx)("span",{className:"text-cyan-400/80",children:"上创建"})]}),(0,s.jsx)("button",{type:"button",onClick:()=>p(!0),className:"text-[11px] text-cyan-400 hover:text-cyan-200 underline-offset-2 hover:underline",children:"详情 →"})]}),(0,s.jsx)(c,{runtimes:e.runtimes_supported,className:"mt-1"})]})}return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-xs text-gray-400",children:[(0,s.jsxs)("span",{children:["选择一台 host_supervisor 节点(",i.length," 台在线)"]}),h&&1===i.length&&(0,s.jsx)("button",{type:"button",onClick:()=>p(!1),className:"text-[11px] text-gray-500 hover:text-gray-300",children:"← 折叠"})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-2 md:grid-cols-2 lg:grid-cols-3",children:i.map(e=>(0,s.jsx)(o,{daemon:e,selected:e.daemon_node_id===a,onClick:()=>r(e.daemon_node_id,e)},e.daemon_node_id))})]})}function o({daemon:e,selected:t,onClick:a}){let r=e.host_telemetry?.alert_level||"gray";return(0,s.jsxs)("button",{type:"button",onClick:a,"aria-pressed":t,className:`flex w-full flex-col gap-1.5 rounded-md border px-3 py-2.5 text-left text-xs transition-colors ${t?"border-cyan-600 bg-cyan-900/15 text-cyan-100":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("span",{className:"truncate font-semibold",children:e.alias}),(0,s.jsx)(x,{level:r})]}),(0,s.jsx)("div",{className:"truncate text-[11px] text-gray-500",children:e.hostname||"—"}),(0,s.jsx)(c,{runtimes:e.runtimes_supported}),(e.host_telemetry?.cpu_cores!=null||e.host_telemetry?.mem_gb!=null)&&(0,s.jsxs)("div",{className:"flex gap-3 text-[10px] text-gray-500",children:[e.host_telemetry?.cpu_cores!=null&&(0,s.jsxs)("span",{children:[e.host_telemetry.cpu_cores," 核"]}),e.host_telemetry?.mem_gb!=null&&(0,s.jsxs)("span",{children:[e.host_telemetry.mem_gb," GB"]})]})]})}function c({runtimes:e,className:t=""}){return e&&0!==e.length?(0,s.jsx)("div",{className:`flex flex-wrap gap-1 ${t}`,children:e.map(e=>(0,s.jsx)("span",{className:"rounded bg-[#1c1c1f] px-1.5 py-0.5 text-[10px] text-gray-400",children:e},e))}):(0,s.jsx)("div",{className:`text-[10px] text-gray-600 ${t}`,children:"runtimes_supported: —"})}function x({level:e}){return(0,s.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] ${{green:"bg-green-600/20 text-green-300 border-green-700/40",yellow:"bg-amber-600/20 text-amber-300 border-amber-700/40",red:"bg-red-600/20 text-red-300 border-red-700/40",gray:"bg-gray-600/20 text-gray-400 border-gray-700/40"}[e]}`,children:{green:"正常",yellow:"注意",red:"警报",gray:"离线"}[e]})}let m=[{id:"claude-agent-sdk",label:"Claude Agent SDK",models:["deepseek-v4-pro","MiniMax-M3","claude-sonnet-4-6","claude-opus-4-x"]},{id:"codex-sdk",label:"Codex SDK",models:["gpt-5.5"]},{id:"grok-build-acp",label:"Grok (build-acp)",models:["grok-build"]}],u=["default","acceptEdits","plan","bypassPermissions"],h=["服务器","名字","Runtime","模型","参数","确认"];function p({networkId:e,onClose:a,onCreated:r}){let[n,l]=(0,t.useState)(0),[o,c]=(0,t.useState)(null),[x,b]=(0,t.useState)(null),[g,y]=(0,t.useState)(""),[j,f]=(0,t.useState)(m[0].id),[v,N]=(0,t.useState)(""),[w,k]=(0,t.useState)("default"),[_,S]=(0,t.useState)(""),[C,$]=(0,t.useState)(""),[E,A]=(0,t.useState)(""),[I,T]=(0,t.useState)("form"),[L,M]=(0,t.useState)(""),[z,O]=(0,t.useState)(!1),{networkId:P}=(0,i.useNetworkId)(),R=e||P;(0,t.useEffect)(()=>{let e=e=>{"Escape"===e.key&&"creating"!==I&&a()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,I]),(0,t.useEffect)(()=>{if("done"!==I||z)return;let e=!0,s=0,t=g.trim(),a=async()=>{s+=1;try{let s=R?`/api/hub/status?network_id=${encodeURIComponent(R)}`:"/api/hub/status",a=await fetch(s,{cache:"no-store"}),r=await a.json().catch(()=>({})),n=Array.isArray(r?.sessions)?r.sessions:Array.isArray(r)?r:[];if(e&&n.some(e=>e?.alias===t))return void O(!0)}catch{}e&&s<16&&window.setTimeout(a,1500)},r=window.setTimeout(a,1200);return()=>{e=!1,window.clearTimeout(r)}},[I,z,R,g]);let U=m.find(e=>e.id===j)||m[0],B=g.trim().length>0,H=0===n&&!!o||1===n&&B||n>=2&&n<h.length,W="creating"===I;async function D(){T("creating"),M("");let s=e=>""===e.trim()?void 0:Number(e),t={name:g.trim(),runtime:j,...v?{model:v}:{},flags:{permissionMode:w,maxTurns:s(_),budget:s(C),timeout:s(E)}};try{let s=await fetch("/api/anet/node-create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_spec:t,...o?{daemon_node_id:o}:{},...e?{network_id:e}:{}})}),a=await s.json().catch(()=>({}));s.ok&&a?.ok?(T("done"),M("创建请求已下发,节点正在拉起…"),r?.(a.result)):a?.unconfirmed?(T("unconfirmed"),M(`后端 create_node 未就绪:${a?.error||"不可用"}(测试 hub 可能未含 #299)`)):(T("error"),M(a?.error?`创建失败:${a.error}`:"创建失败"))}catch(e){T("error"),M(`创建失败:${e instanceof Error?e.message:"网络错误"}`)}}let F="w-full rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-2 text-sm text-gray-200 focus:border-cyan-600 focus:outline-none";return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:a,"aria-hidden":!0}),(0,s.jsxs)("div",{role:"dialog","aria-label":"新建节点",className:"fixed left-1/2 top-1/2 z-50 w-[min(94vw,440px)] md:w-[min(92vw,720px)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-[#26262b] bg-[#161618] shadow-2xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-[#26262b] px-4 py-3",children:[(0,s.jsx)("div",{className:"text-sm font-semibold text-white",children:"新建节点"}),(0,s.jsx)("button",{onClick:a,"aria-label":"关闭",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:bg-white/5 hover:text-white",children:(0,s.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:(0,s.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),(0,s.jsx)("div",{className:"flex items-center gap-1.5 px-4 pt-3",children:h.map((e,t)=>(0,s.jsxs)("div",{className:"flex flex-1 flex-col items-center gap-1",children:[(0,s.jsx)("div",{className:`h-1 w-full rounded-full ${t<=n?"bg-cyan-500":"bg-[#26262b]"}`}),(0,s.jsx)("span",{className:`text-[10px] ${t===n?"text-cyan-300":"text-gray-600"}`,children:e})]},e))}),(0,s.jsx)("div",{className:"min-h-[180px] px-4 py-4",children:"form"!==I?(0,s.jsxs)("div",{className:"flex h-[180px] flex-col items-center justify-center gap-3 text-center",children:[W&&(0,s.jsxs)("svg",{className:"h-7 w-7 animate-spin text-cyan-400",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),(0,s.jsx)("div",{className:`text-sm ${"done"===I?"text-green-300":"error"===I?"text-red-300":"unconfirmed"===I?"text-amber-300":"text-gray-300"}`,children:W?"正在创建…":"done"===I&&z?`✓ ${g.trim()} 已上线`:L}),"done"===I&&(z?(0,s.jsx)("p",{className:"text-[11px] text-green-500/80",children:"节点已注册,已出现在节点列表。"}):(0,s.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-[11px] text-gray-500",children:[(0,s.jsxs)("svg",{className:"h-3 w-3 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"正在监测 ",g.trim()," 注册…(最长 ~24s)"]}))]}):(0,s.jsxs)(s.Fragment,{children:[0===n&&(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("span",{className:"text-xs text-gray-400",children:"在哪台机器上创建"}),(0,s.jsx)(d,{networkId:R||void 0,value:o,onChange:(e,s)=>{c(e),b(s);let t=s?.runtimes_supported;t&&t.length>0&&!t.includes(j)&&(f(t[0]),N(""))}}),!o&&(0,s.jsxs)("p",{className:"text-[11px] text-gray-600",children:["没选服务器之前无法继续;如果列表是空的,按提示在目标机器上跑 ",(0,s.jsx)("code",{className:"rounded bg-black/40 px-1 py-0.5",children:"anet daemon up <name>"}),"。"]})]}),1===n&&(0,s.jsxs)("label",{className:"block space-y-1.5",children:[(0,s.jsx)("span",{className:"text-xs text-gray-400",children:"节点名字"}),(0,s.jsx)("input",{autoFocus:!0,value:g,onChange:e=>y(e.target.value),placeholder:"例如 my-agent-1",className:F}),!B&&(0,s.jsx)("span",{className:"text-[11px] text-gray-600",children:"名字不能为空"})]}),2===n&&(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("span",{className:"text-xs text-gray-400",children:["Runtime",x?`(${x.alias} 支持)`:""]}),m.map(e=>{let t=x?.runtimes_supported,a=Array.isArray(t)&&t.length>0&&!t.includes(e.id),r=j===e.id;return(0,s.jsxs)("button",{type:"button",disabled:a,onClick:()=>{a||(f(e.id),N(""))},title:a?`${x?.alias||"该 daemon"} 未声明支持此 runtime`:void 0,className:`flex w-full items-center justify-between rounded-md border px-3 py-2 text-sm transition-colors ${a?"border-[#1c1c1f] bg-[#0a0a0c] text-gray-600 cursor-not-allowed":r?"border-cyan-600 bg-cyan-900/15 text-cyan-200":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,s.jsxs)("span",{children:[e.label,a&&(0,s.jsx)("span",{className:"ml-2 text-[10px] text-gray-700",children:"该 daemon 不支持"})]}),r&&!a&&(0,s.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:(0,s.jsx)("path",{d:"M20 6 9 17l-5-5"})})]},e.id)})]}),3===n&&(0,s.jsxs)("label",{className:"block space-y-1.5",children:[(0,s.jsxs)("span",{className:"text-xs text-gray-400",children:["模型(",U.label,")"]}),(0,s.jsxs)("select",{value:v,onChange:e=>N(e.target.value),className:F,children:[(0,s.jsx)("option",{value:"",children:"默认"}),U.models.map(e=>(0,s.jsx)("option",{value:e,children:e},e))]})]}),4===n&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("label",{className:"block space-y-1.5",children:[(0,s.jsx)("span",{className:"text-xs text-gray-400",children:"permissionMode"}),(0,s.jsx)("select",{value:w,onChange:e=>k(e.target.value),className:F,children:u.map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,s.jsxs)("label",{className:"space-y-1",children:[(0,s.jsx)("span",{className:"text-[11px] text-gray-500",children:"maxTurns"}),(0,s.jsx)("input",{inputMode:"numeric",value:_,onChange:e=>S(e.target.value),className:F})]}),(0,s.jsxs)("label",{className:"space-y-1",children:[(0,s.jsx)("span",{className:"text-[11px] text-gray-500",children:"budget"}),(0,s.jsx)("input",{inputMode:"numeric",value:C,onChange:e=>$(e.target.value),className:F})]}),(0,s.jsxs)("label",{className:"space-y-1",children:[(0,s.jsx)("span",{className:"text-[11px] text-gray-500",children:"timeout"}),(0,s.jsx)("input",{inputMode:"numeric",value:E,onChange:e=>A(e.target.value),className:F})]})]})]}),5===n&&(0,s.jsx)("div",{className:"space-y-2 text-sm",children:(0,s.jsx)("div",{className:"rounded-md border border-[#26262b] bg-[#0e0e10] divide-y divide-[#1c1c1f]",children:[["服务器",o?`${o.slice(0,24)}…`:"—"],["名字",g.trim()||"—"],["Runtime",U.label],["模型",v||"默认"],["permissionMode",w],["maxTurns / budget / timeout",`${_||"—"} / ${C||"—"} / ${E||"—"}`]].map(([e,t])=>(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3 px-3 py-2",children:[(0,s.jsx)("span",{className:"shrink-0 text-gray-500 text-xs",children:e}),(0,s.jsx)("span",{className:"text-right text-gray-200 text-xs break-all",children:t})]},e))})})]})}),"form"===I?(0,s.jsxs)("div",{className:"flex items-center justify-between border-t border-[#26262b] px-4 py-3",children:[(0,s.jsx)("button",{type:"button",onClick:()=>0===n?a():l(n-1),className:"rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200",children:0===n?"取消":"上一步"}),n<h.length-1?(0,s.jsx)("button",{type:"button",disabled:!H,onClick:()=>l(n+1),className:`rounded-md px-4 py-1.5 text-sm font-medium ${H?"bg-cyan-600 text-white hover:bg-cyan-500":"bg-[#1c1c1f] text-gray-600 cursor-not-allowed"}`,children:"下一步"}):(0,s.jsx)("button",{type:"button",onClick:D,className:"rounded-md bg-green-600 px-4 py-1.5 text-sm font-medium text-white hover:bg-green-500",children:"创建节点"})]}):(0,s.jsxs)("div",{className:"flex items-center justify-end border-t border-[#26262b] px-4 py-3",children:[(0,s.jsx)("button",{type:"button",onClick:a,className:"rounded-md bg-[#1c1c1f] px-4 py-1.5 text-sm text-gray-200 hover:bg-[#26262b]",children:"done"===I?"完成":"关闭"}),("error"===I||"unconfirmed"===I)&&(0,s.jsx)("button",{type:"button",onClick:()=>T("form"),className:"ml-2 rounded-md bg-cyan-600 px-4 py-1.5 text-sm text-white hover:bg-cyan-500",children:"返回修改"})]})]})]})}async function b(e,s){try{let t=await fetch("/api/anet/node-lifecycle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...s})});return{...await t.json().catch(()=>({})),httpStatus:t.status}}catch(e){return{ok:!1,error:"network_error",message:e instanceof Error?e.message:String(e),httpStatus:0}}}function g({nodeId:e,alias:a,lifecycleState:r,networkId:n,onCompleted:l}){let[i,d]=(0,t.useState)(!1),[o,c]=(0,t.useState)(!1),[x,m]=(0,t.useState)(!1),[u,h]=(0,t.useState)(!1),[p,f]=(0,t.useState)(null),v=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(!i)return;let e=e=>{v.current&&!v.current.contains(e.target)&&d(!1)},s=e=>{"Escape"===e.key&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s)}},[i]);let N=(0,t.useCallback)(async()=>{d(!1),f(null),h(!0);let s=await b("restart",{node_id:e,...n?{network_id:n}:{}});(h(!1),s.ok)?l?.():f(s)},[e,n,l]),w="string"==typeof r&&r.length>0?r:"active",k=[];return"stopping"===w||"deleting"===w?k.push({label:"stopping"===w?"停止中…":"删除中…",key:"loading",disabled:!0,onClick:()=>{}}):"active"===w?(k.push({label:u?"重启中…":"重启节点",key:"restart",disabled:u,onClick:N}),k.push({label:"停止节点",key:"stop",onClick:()=>{d(!1),c(!0)}}),k.push({label:"删除节点",key:"delete",danger:!0,onClick:()=>{d(!1),m(!0)}})):"stopped"===w||"stop_failed"===w?(k.push({label:u?"启动中…":"启动节点",key:"restart",disabled:u,onClick:N}),k.push({label:"删除节点",key:"delete",danger:!0,onClick:()=>{d(!1),m(!0)}})):k.push({label:`状态 ${w} (不识别)`,key:"unknown",disabled:!0,onClick:()=>{}}),(0,s.jsxs)("div",{ref:v,className:"relative inline-block",onClick:e=>e.stopPropagation(),children:[(0,s.jsx)("button",{type:"button","aria-label":`节点 ${a} 生命周期操作`,"aria-haspopup":"menu","aria-expanded":i,onClick:()=>d(e=>!e),className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-400 hover:bg-white/5 hover:text-white focus:outline-none focus:ring-1 focus:ring-cyan-500/50",children:(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[(0,s.jsx)("circle",{cx:"12",cy:"5",r:"1.6"}),(0,s.jsx)("circle",{cx:"12",cy:"12",r:"1.6"}),(0,s.jsx)("circle",{cx:"12",cy:"19",r:"1.6"})]})}),i&&(0,s.jsx)("div",{role:"menu",className:"absolute right-0 z-40 mt-1 w-44 overflow-hidden rounded-md border border-[#26262b] bg-[#161618] shadow-xl",children:k.map(e=>(0,s.jsx)("button",{type:"button",role:"menuitem",disabled:e.disabled,onClick:e.onClick,className:`block w-full px-3 py-2 text-left text-sm transition-colors ${e.disabled?"text-gray-600 cursor-not-allowed":e.danger?"text-red-300 hover:bg-red-900/20":"text-gray-200 hover:bg-white/5"}`,children:e.label},e.key))}),p&&!1===p.ok&&!o&&!x&&(0,s.jsx)("div",{className:"absolute right-0 z-40 mt-1 w-72 rounded-md border border-red-700/40 bg-red-900/20 px-3 py-2 text-xs text-red-200",children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"font-semibold",children:p.error||"error"}),p.message?(0,s.jsx)("div",{className:"mt-0.5 text-red-300/80",children:p.message}):null,"number"==typeof p.in_flight_count&&(0,s.jsxs)("div",{className:"mt-0.5 text-red-300/80",children:["in-flight: ",p.in_flight_count]}),p.hint?(0,s.jsx)("div",{className:"mt-1 text-red-300/60",children:p.hint}):null]}),(0,s.jsx)("button",{type:"button",onClick:()=>f(null),className:"shrink-0 text-red-400 hover:text-red-200","aria-label":"关闭",children:"×"})]})}),o&&(0,s.jsx)(y,{alias:a,nodeId:e,networkId:n,onClose:()=>c(!1),onCompleted:()=>{c(!1),l?.()}}),x&&(0,s.jsx)(j,{alias:a,nodeId:e,networkId:n,onClose:()=>m(!1),onCompleted:()=>{m(!1),l?.()}})]})}function y({alias:e,nodeId:a,networkId:r,onClose:n,onCompleted:l}){let[i,d]=(0,t.useState)(!1),[o,c]=(0,t.useState)(!1),[x,m]=(0,t.useState)(null);(0,t.useEffect)(()=>{let e=e=>{"Escape"!==e.key||i||n()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,i]);let u=x&&"number"==typeof x.in_flight_count?x.in_flight_count:0,h=async()=>{d(!0),m(null);let e=await b("stop",{node_id:a,...r?{network_id:r}:{},...o?{force:!0}:{}});(d(!1),e.ok)?l():m(e)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 z-40 bg-black/50",onClick:i?void 0:n,"aria-hidden":!0}),(0,s.jsxs)("div",{role:"dialog","aria-label":`停止节点 ${e}`,className:"fixed left-1/2 top-1/2 z-50 w-[min(92vw,420px)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-[#26262b] bg-[#161618] shadow-2xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-[#26262b] px-4 py-3",children:[(0,s.jsx)("div",{className:"text-sm font-semibold text-white",children:"停止节点"}),(0,s.jsx)("button",{onClick:i?void 0:n,"aria-label":"关闭",className:"text-gray-500 hover:text-white",children:"×"})]}),(0,s.jsxs)("div",{className:"space-y-3 px-4 py-4",children:[(0,s.jsxs)("div",{className:"text-sm text-gray-300",children:["将停止 ",(0,s.jsx)("span",{className:"font-mono text-cyan-300",children:e})," 子进程(SIGTERM,~10s 内)。配置目录保留,可通过「启动」恢复。"]}),x&&!1===x.ok&&(0,s.jsxs)("div",{className:"rounded-md border border-red-700/40 bg-red-900/20 px-3 py-2 text-xs text-red-200",children:[(0,s.jsx)("div",{className:"font-semibold",children:x.error}),x.message?(0,s.jsx)("div",{className:"mt-0.5 text-red-300/80",children:x.message}):null,"number"==typeof x.in_flight_count&&(0,s.jsxs)("div",{className:"mt-0.5 text-red-300/80",children:["当前 in-flight 任务: ",x.in_flight_count]}),x.hint?(0,s.jsx)("div",{className:"mt-1 text-red-300/60",children:x.hint}):null]}),(u>0||o)&&(0,s.jsxs)("label",{className:"flex items-start gap-2 rounded-md border border-amber-700/40 bg-amber-900/10 px-3 py-2 text-xs text-amber-200",children:[(0,s.jsx)("input",{type:"checkbox",checked:o,onChange:e=>c(e.target.checked),className:"mt-0.5"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-semibold text-amber-300",children:"强制停止"}),u>0?`(会丢弃 ${u} 条待处理任务)`:"(覆盖 in-flight 拒绝;hub 会写 audit 行)"]})]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[#26262b] px-4 py-3",children:[(0,s.jsx)("button",{type:"button",disabled:i,onClick:n,className:"rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200 disabled:opacity-50",children:"取消"}),(0,s.jsx)("button",{type:"button",disabled:i||u>0&&!o,onClick:h,className:"rounded-md bg-cyan-600 px-4 py-1.5 text-sm font-medium text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:opacity-50",children:i?"停止中…":"确认停止"})]})]})]})}function j({alias:e,nodeId:a,networkId:r,onClose:n,onCompleted:l}){let[i,d]=(0,t.useState)(!1),[o,c]=(0,t.useState)(""),[x,m]=(0,t.useState)(!1),[u,h]=(0,t.useState)(!1),[p,g]=(0,t.useState)(null);(0,t.useEffect)(()=>{let e=e=>{"Escape"!==e.key||i||n()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,i]);let y=p&&"number"==typeof p.in_flight_count?p.in_flight_count:0,f=o===e,v=async()=>{if(!f)return;d(!0),g(null);let e=await b("delete",{node_id:a,confirm_alias:o,...r?{network_id:r}:{},...x?{force:!0}:{},...u?{delete_config:!1}:{}});(d(!1),e.ok)?l():g(e)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 z-40 bg-black/50",onClick:i?void 0:n,"aria-hidden":!0}),(0,s.jsxs)("div",{role:"dialog","aria-label":`删除节点 ${e}`,className:"fixed left-1/2 top-1/2 z-50 w-[min(94vw,480px)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-red-700/40 bg-[#161618] shadow-2xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-[#26262b] px-4 py-3",children:[(0,s.jsx)("div",{className:"text-sm font-semibold text-red-300",children:"删除节点"}),(0,s.jsx)("button",{onClick:i?void 0:n,"aria-label":"关闭",className:"text-gray-500 hover:text-white",children:"×"})]}),(0,s.jsxs)("div",{className:"space-y-3 px-4 py-4 text-sm text-gray-300",children:[(0,s.jsx)("div",{children:"这将:"}),(0,s.jsxs)("ul",{className:"list-inside list-disc space-y-1 pl-2 text-xs text-gray-400",children:[(0,s.jsxs)("li",{children:["停止 ",(0,s.jsx)("span",{className:"font-mono text-cyan-300",children:e})," 子进程(SIGTERM ~10s)"]}),(0,s.jsx)("li",{children:"从 hub 注销该节点"}),(0,s.jsx)("li",{children:"撤销该节点的 ntok"}),!u&&(0,s.jsxs)("li",{children:["配置文件备份到 ",(0,s.jsxs)("code",{className:"text-amber-300",children:["~/.anet/deleted/<ts>-",e,"/"]}),"(30 天后自动清除)"]}),u&&(0,s.jsx)("li",{className:"text-amber-300",children:"配置文件保留原地(不备份不清理 — 你勾选了「保留配置」)"})]}),p&&!1===p.ok&&(0,s.jsxs)("div",{className:"rounded-md border border-red-700/40 bg-red-900/20 px-3 py-2 text-xs text-red-200",children:[(0,s.jsx)("div",{className:"font-semibold",children:p.error}),p.message?(0,s.jsx)("div",{className:"mt-0.5 text-red-300/80",children:p.message}):null,"number"==typeof p.in_flight_count&&(0,s.jsxs)("div",{className:"mt-0.5 text-red-300/80",children:["当前 in-flight 任务: ",p.in_flight_count]}),p.hint?(0,s.jsx)("div",{className:"mt-1 text-red-300/60",children:p.hint}):null]}),(y>0||x)&&(0,s.jsxs)("label",{className:"flex items-start gap-2 rounded-md border border-amber-700/40 bg-amber-900/10 px-3 py-2 text-xs text-amber-200",children:[(0,s.jsx)("input",{type:"checkbox",checked:x,onChange:e=>m(e.target.checked),className:"mt-0.5"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-semibold text-amber-300",children:"强制删除"}),y>0?`(会丢弃 ${y} 条待处理任务)`:"(覆盖 in-flight 拒绝)"]})]}),(0,s.jsxs)("label",{className:"flex items-center gap-2 text-xs text-gray-400",children:[(0,s.jsx)("input",{type:"checkbox",checked:u,onChange:e=>h(e.target.checked)}),"保留配置目录(不备份;高级用法)"]}),(0,s.jsxs)("label",{className:"block space-y-1",children:[(0,s.jsxs)("span",{className:"text-xs text-gray-400",children:["输入节点名字 ",(0,s.jsx)("span",{className:"font-mono text-cyan-300",children:e})," 确认"]}),(0,s.jsx)("input",{autoFocus:!0,value:o,onChange:e=>c(e.target.value),placeholder:e,className:"w-full rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-2 text-sm text-gray-200 focus:border-red-500 focus:outline-none",autoCapitalize:"none",autoCorrect:"off",spellCheck:!1}),o&&!f&&(0,s.jsx)("span",{className:"text-[11px] text-red-400",children:"名字不匹配(区分大小写)"})]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[#26262b] px-4 py-3",children:[(0,s.jsx)("button",{type:"button",disabled:i,onClick:n,className:"rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200 disabled:opacity-50",children:"取消"}),(0,s.jsx)("button",{type:"button",disabled:i||!f||y>0&&!x,onClick:v,className:"rounded-md bg-red-600 px-4 py-1.5 text-sm font-medium text-white hover:bg-red-500 disabled:cursor-not-allowed disabled:opacity-50",children:i?"删除中…":`删除 ${e}`})]})]})]})}var f=e.i(56302),v=e.i(3049),N=e.i(89396),w=e.i(19880),k=e.i(9623);function _(e){return e?e.length>12?`${e.slice(0,8)}…`:e:"—"}e.s(["default",0,function(){let{sessions:e,isLoading:i}=(0,r.useSessions)(),{health:d}=(0,r.useHealth)(),{lifecycleByAlias:o,nodeIdByAlias:c}=(0,r.useNodeLifecycle)(),{hasUnread:x}=(0,k.useChatUnread)(),{mutate:m}=(0,n.useSWRConfig)(),u=()=>{m(e=>"string"==typeof e&&(e.startsWith("/api/hub/nodes")||e.startsWith("/api/hub/status")))},h=d?.sse_sessions||{},b=e=>(e.network_id?h[`${e.network_id}:${e.alias}`]:void 0)??h[e.alias],[y,j]=(0,t.useState)(""),[S,C]=(0,t.useState)(""),[$,E]=(0,t.useState)("list"),[A,I]=(0,t.useState)(null),[T,L]=(0,t.useState)(!1),M=(0,N.useCollapsibleSearch)({value:S,onChange:C,placeholder:"Search nodes…",label:"Search nodes",enabled:e.length>0}),z=e.map(e=>({...e,online:!!b(e)})).filter(e=>"online"===y?e.online:"offline"===y?!e.online:!y||y===e.status).filter(e=>!S||e.alias.toLowerCase().includes(S.toLowerCase())||(e.agent||"").toLowerCase().includes(S.toLowerCase())).sort((e,s)=>!!s.online-!!e.online||("working"===s.status)-("working"===e.status)),O=e.filter(e=>b(e)).length;return(0,s.jsxs)("div",{className:"min-h-screen max-w-full overflow-x-hidden bg-[#0b0b0d] text-gray-100 p-4 sm:p-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 mb-4 sm:mb-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,s.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30 shrink-0",children:[O," online"]}),(0,s.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30 shrink-0",children:[e.length," total"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>L(!0),"aria-label":"新建节点",className:"inline-flex items-center gap-1 rounded-lg border border-cyan-700/50 bg-cyan-900/15 px-3 py-1.5 text-sm font-medium text-cyan-300 hover:bg-cyan-900/25 transition-colors",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"text-base leading-none",children:"+"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"新建节点"})]}),(0,s.jsx)(M.Button,{})]})]}),T&&(0,s.jsx)(p,{onClose:()=>L(!1)}),(0,s.jsx)(M.Row,{}),e.length>0&&(0,s.jsxs)("div",{className:"flex flex-wrap gap-3 mb-4 sm:mb-6",children:[(0,s.jsxs)("select",{value:y,onChange:e=>j(e.target.value),className:"bg-[#161618] border border-[#26262b] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,s.jsx)("option",{value:"",children:"All"}),(0,s.jsx)("option",{value:"online",children:"Online"}),(0,s.jsx)("option",{value:"offline",children:"Offline"}),(0,s.jsx)("option",{value:"working",children:"Working"}),(0,s.jsx)("option",{value:"idle",children:"Idle"}),(0,s.jsx)("option",{value:"blocked",children:"Blocked"}),(0,s.jsx)("option",{value:"error",children:"Error"})]}),(0,s.jsx)("div",{className:"hidden sm:flex ml-auto rounded-lg border border-[#26262b] bg-[#161618] p-1 text-sm",children:["list","grid"].map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>E(e),className:`rounded-md px-3 py-1.5 transition-colors ${$===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),i?(0,s.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,s.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===z.length?0===e.length?(0,s.jsx)(f.NodesEmptyState,{}):(0,s.jsx)(f.EmptyState,{variant:"nodes",title:"No nodes match your filters",sub:"Try clearing search or status filters, or wait for an agent to register."}):"grid"===$?(0,s.jsx)("div",{className:"grid min-w-0 grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:z.map(e=>{let t=e.online?e.status:"offline",r="number"==typeof e.progress?e.progress:0,n=x(e.alias);return(0,s.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>I(e.alias),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),I(e.alias))},className:`relative min-w-0 max-w-full overflow-hidden rounded-xl border border-[#26262b] bg-[#161618] p-4 transition-colors hover:border-cyan-500/40 cursor-pointer ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,s.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,s.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsxs)("div",{className:"relative shrink-0",children:[(0,s.jsx)(v.AliasAvatar,{alias:e.alias,size:36}),n&&(0,s.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[#161618] bg-red-500"})]}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),n&&(0,s.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-red-300",children:"New"}),(0,s.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[10px] uppercase tracking-wide ${w.SESSION_STATUS_CHIP_CLASS[t]||w.SESSION_STATUS_CHIP_CLASS.offline}`,children:t})]}),(0,s.jsxs)("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:[e.agent||"—",(0,s.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),(0,s.jsx)("span",{title:e.server||"",children:_(e.server)})]})]}),(0,s.jsx)("span",{className:"hidden shrink-0 rounded-lg border border-cyan-500/15 bg-cyan-500/5 px-2 py-1 text-[10px] text-cyan-300/70 sm:inline",children:"Tap to chat"}),(0,s.jsx)(g,{nodeId:c[e.alias]||e.node_id||e.alias,alias:e.alias,lifecycleState:o[e.alias],networkId:e.network_id||null,onCompleted:u})]}),(0,s.jsxs)("div",{className:"mt-3 rounded-lg border border-[#1c1c1f] bg-[#0e0e10] px-3 py-2 text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Current task"}),(0,s.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,a.timeAgo)(e.last_seen_at||e.updated_at)})]}),(0,s.jsx)("div",{className:`mt-1 line-clamp-2 ${e.task?"text-gray-300":"text-gray-600 italic"}`,children:e.task||"No current task"})]}),r>0&&r<100&&(0,s.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,s.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${r}%`}})})]},e.alias)})}):(0,s.jsxs)("div",{className:"space-y-1 sm:space-y-2",children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,s.jsx)("div",{className:"col-span-1",children:"Status"}),(0,s.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,s.jsx)("div",{className:"col-span-2",children:"Agent · Server"}),(0,s.jsx)("div",{className:"col-span-4",children:"Current Task"}),(0,s.jsx)("div",{className:"col-span-1",children:"Updated"})]}),z.map(e=>{let t=e.online?e.status:"offline",r=x(e.alias);return(0,s.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>I(e.alias),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),I(e.alias))},className:`rounded-lg border border-[#26262b] bg-[#161618] px-3 py-2 sm:px-4 sm:py-3 transition-colors hover:border-cyan-500/40 cursor-pointer ${!e.online?"opacity-50":""}`,children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 items-center",children:[(0,s.jsx)("div",{className:"col-span-1",children:(0,s.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${w.SESSION_STATUS_CHIP_CLASS[t]||w.SESSION_STATUS_CHIP_CLASS.offline}`,children:t})}),(0,s.jsx)("div",{className:"col-span-2 min-w-0",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsxs)("div",{className:"relative shrink-0",children:[(0,s.jsx)(v.AliasAvatar,{alias:e.alias,size:20}),r&&(0,s.jsx)("span",{className:"absolute -right-1 -top-1 h-2.5 w-2.5 rounded-full border border-[#161618] bg-red-500"})]}),(0,s.jsx)("span",{className:"truncate text-sm font-medium text-white",children:e.alias}),r&&(0,s.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]})}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",title:e.server||"",children:(0,s.jsxs)("span",{className:"truncate",children:[e.agent||"--",(0,s.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),_(e.server)]})}),(0,s.jsx)("div",{className:"col-span-4 truncate text-xs text-gray-500",title:e.task||"",children:e.task||"--"}),(0,s.jsxs)("div",{className:"col-span-1 flex items-center justify-between gap-2 text-xs text-gray-500",children:[(0,s.jsx)("span",{className:"truncate",children:(0,a.timeAgo)(e.last_seen_at||e.updated_at)}),(0,s.jsx)(g,{nodeId:c[e.alias]||e.node_id||e.alias,alias:e.alias,lifecycleState:o[e.alias],networkId:e.network_id||null,onCompleted:u})]})]}),(0,s.jsxs)("div",{className:"sm:hidden space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsxs)("div",{className:"relative shrink-0",children:[(0,s.jsx)(v.AliasAvatar,{alias:e.alias,size:28}),r&&(0,s.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[#161618] bg-red-500"})]}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"truncate text-sm font-medium text-white",children:e.alias}),r&&(0,s.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]}),(0,s.jsxs)("div",{className:"truncate text-[10px] text-gray-500",children:[e.agent||"—"," · ",(0,a.timeAgo)(e.last_seen_at||e.updated_at)]})]}),(0,s.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${w.SESSION_STATUS_CHIP_CLASS[t]||w.SESSION_STATUS_CHIP_CLASS.offline}`,children:t}),(0,s.jsx)(g,{nodeId:c[e.alias]||e.node_id||e.alias,alias:e.alias,lifecycleState:o[e.alias],networkId:e.network_id||null,onCompleted:u})]}),e.task&&(0,s.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task})]})]},e.alias)})]}),A&&(0,s.jsx)(l.TaskChatPanel,{alias:A,onClose:()=>I(null)})]})}],61616)}]);
|