@sleep2agi/agent-network-dashboard 0.4.5-preview.21 → 0.4.5-preview.22

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.
Files changed (137) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +6 -6
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/server/app/admin/page.js.nft.json +1 -1
  22. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/admin.html +2 -2
  24. package/.next/server/app/admin.rsc +2 -2
  25. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  26. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  28. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +2 -2
  30. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  31. package/.next/server/app/index.html +1 -1
  32. package/.next/server/app/index.rsc +1 -1
  33. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_full.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  36. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  37. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  38. package/.next/server/app/login.html +1 -1
  39. package/.next/server/app/login.rsc +1 -1
  40. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  43. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs.html +1 -1
  47. package/.next/server/app/logs.rsc +1 -1
  48. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  52. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  53. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  54. package/.next/server/app/messages.html +1 -1
  55. package/.next/server/app/messages.rsc +1 -1
  56. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  61. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  62. package/.next/server/app/node.html +1 -1
  63. package/.next/server/app/node.rsc +1 -1
  64. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  68. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  70. package/.next/server/app/nodes.html +1 -1
  71. package/.next/server/app/nodes.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  76. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  77. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  78. package/.next/server/app/server-logs.html +1 -1
  79. package/.next/server/app/server-logs.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  85. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  86. package/.next/server/app/settings/networks.html +1 -1
  87. package/.next/server/app/settings/networks.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  94. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +1 -1
  105. package/.next/server/app/settings.rsc +1 -1
  106. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/app_0tncr1_._.js +3 -0
  121. package/.next/server/chunks/ssr/app_0tncr1_._.js.map +1 -0
  122. package/.next/server/middleware-build-manifest.js +3 -3
  123. package/.next/server/pages/404.html +1 -1
  124. package/.next/server/pages/500.html +1 -1
  125. package/.next/server/server-reference-manifest.js +1 -1
  126. package/.next/server/server-reference-manifest.json +1 -1
  127. package/.next/static/chunks/06x7w8nwggx~~.js +1 -0
  128. package/.next/trace +2 -2
  129. package/.next/trace-build +1 -1
  130. package/app/admin/page.tsx +77 -25
  131. package/package.json +1 -1
  132. package/.next/server/chunks/ssr/app_0ap_oiq._.js +0 -3
  133. package/.next/server/chunks/ssr/app_0ap_oiq._.js.map +0 -1
  134. package/.next/static/chunks/07oobuohrpigy.js +0 -1
  135. /package/.next/static/{I8oYGCFqEglZXHP7xG8Cd → YpO4F6vgKzwbJGvkWFvXH}/_buildManifest.js +0 -0
  136. /package/.next/static/{I8oYGCFqEglZXHP7xG8Cd → YpO4F6vgKzwbJGvkWFvXH}/_clientMiddlewareManifest.js +0 -0
  137. /package/.next/static/{I8oYGCFqEglZXHP7xG8Cd → YpO4F6vgKzwbJGvkWFvXH}/_ssgManifest.js +0 -0
@@ -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
12
- "><a class="block px-4 py-4 flex items-center gap-3 hover:bg-[#11112a]/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-[#2a2a4a]"></div><div class="pb-20"><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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/messages"><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="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg><span>Messages</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings/networks"><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="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span>Networks</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/logs"><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 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg><span>Audit Log</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/server-logs"><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="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>Server Logs</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#2a2a4a] bg-[#0d0d1a]"><button class="w-full flex items-center text-[11px] text-gray-600 hover:text-gray-400 hover:bg-[#1a1a2a] transition-colors justify-between gap-2 px-5 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 gap-2 px-3 py-2 justify-between"><div class="relative"><button aria-label="切换主题" class="px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity" style="background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border)"><span aria-hidden="true">🌃</span><span>Cyber</span></button></div><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 flex flex-col"><div class="flex-1 min-w-0"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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></div><script src="/_next/static/chunks/0e-.zgw81gela.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[84128,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"ThemeProvider\"]\n3:I[58963,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"NetworkProvider\"]\n4:I[25045,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"AppShell\"]\n5:I[39756,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0irp6cdaafs7m.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/0irp6cdaafs7m.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14bsg3_-taiw4.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0w1zwt8kq_7nb.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"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,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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: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: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: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:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0irp6cdaafs7m.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"I8oYGCFqEglZXHP7xG8Cd\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a1a\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L11\",\"10\",{}]]\n"])</script></body></html>
12
+ "><a class="block px-4 py-4 flex items-center gap-3 hover:bg-[#11112a]/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-[#2a2a4a]"></div><div class="pb-20"><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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/messages"><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="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg><span>Messages</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings/networks"><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="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span>Networks</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/logs"><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 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg><span>Audit Log</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/server-logs"><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="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>Server Logs</span></a><a class="relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " 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-[#2a2a4a] bg-[#0d0d1a]"><button class="w-full flex items-center text-[11px] text-gray-600 hover:text-gray-400 hover:bg-[#1a1a2a] transition-colors justify-between gap-2 px-5 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 gap-2 px-3 py-2 justify-between"><div class="relative"><button aria-label="切换主题" class="px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity" style="background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border)"><span aria-hidden="true">🌃</span><span>Cyber</span></button></div><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 flex flex-col"><div class="flex-1 min-w-0"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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></div><script src="/_next/static/chunks/0e-.zgw81gela.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[84128,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"ThemeProvider\"]\n3:I[58963,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"NetworkProvider\"]\n4:I[25045,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"AppShell\"]\n5:I[39756,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0irp6cdaafs7m.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/0irp6cdaafs7m.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14bsg3_-taiw4.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0w1zwt8kq_7nb.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"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,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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: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: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: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:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0irp6cdaafs7m.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"YpO4F6vgKzwbJGvkWFvXH\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a1a\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/15nn5pyy3l5zo.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\",\"/_next/static/chunks/0w1zwt8kq_7nb.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L11\",\"10\",{}]]\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/0e-.zgw81gela.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/0u359llqm1_01.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-01f1xs~cq_~si.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/14bsg3_-taiw4.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0e-.zgw81gela.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.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\":\"I8oYGCFqEglZXHP7xG8Cd\"}\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[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
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/0e-.zgw81gela.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/0u359llqm1_01.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-01f1xs~cq_~si.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/14bsg3_-taiw4.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0e-.zgw81gela.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[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.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\":\"YpO4F6vgKzwbJGvkWFvXH\"}\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[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"ynJBkkAVlPOAFpxvzlYFML4+PgAfDPTX9NgKO+7E2HI=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"uJAUltyGBcs2iy8xVDRafJuKtlxrzQN9Wia2R0GxJRs=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "ynJBkkAVlPOAFpxvzlYFML4+PgAfDPTX9NgKO+7E2HI="
4
+ "encryptionKey": "uJAUltyGBcs2iy8xVDRafJuKtlxrzQN9Wia2R0GxJRs="
5
5
  }
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let s=Math.floor(e/3600),t=Math.floor(e%3600/60);return s>0?`${s}h ${t}m`:`${t}m`},"timeAgo",0,function(e){if(!e)return"--";let s=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}])},69874,e=>{"use strict";var s=e.i(18050);let t=[180,200,220,270,300,330,30,90];e.s(["AliasAvatar",0,function({alias:e,size:a=28,className:r=""}){let l=function(e){let s=0;for(let t=0;t<e.length;t++)s=31*s+e.charCodeAt(t)>>>0;let a=t[s%t.length];return{bg:`hsl(${a} 55% 22%)`,ring:`hsl(${a} 60% 45%)`,text:`hsl(${a} 80% 78%)`}}(e),i=Math.max(9,Math.round(.42*a));return(0,s.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${r}`,style:{width:a,height:a,fontSize:i,backgroundColor:l.bg,borderColor:l.ring,color:l.text},title:e,"aria-hidden":!0,children:e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"})}])},65822,e=>{"use strict";var s=e.i(83599),t=e.i(58963);let a=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function l(e,s){if(!s)return e;let t=e.includes("?")?"&":"?";return`${e}${t}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",a,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/health",a,r);return{health:e||null,error:t}},"useLicense",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/license",a,{refreshInterval:6e4});return{license:e?.ok?e:null,error:t}},"useMessages",0,function(e=100){let{networkId:i}=(0,t.useNetworkId)(),{data:n,error:o,isLoading:d}=(0,s.default)(l(`/api/hub/messages?limit=${e}`,i),a,r);return{messages:n?.messages||[],error:o,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:i,error:n,isLoading:o}=(0,s.default)(l("/api/hub/status",e),a,r);return{sessions:i?.sessions||[],hint:i?._hint,error:n,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:i,error:n}=(0,s.default)(l("/api/hub/stats",e),a,r);return{stats:i?.ok?i:null,error:n}},"useTasks",0,function(e){let{networkId:i}=(0,t.useNetworkId)(),n=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:d,isLoading:c}=(0,s.default)(l(`/api/hub/tasks?${n}`,i),a,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:d,isLoading:c}}])},23261,e=>{"use strict";var s=e.i(18050),t=e.i(71645),a=e.i(65822),r=e.i(18150),l=e.i(69874);e.s(["default",0,function(){let{sessions:e}=(0,a.useSessions)(),{health:i}=(0,a.useHealth)(),{stats:n}=(0,a.useStats)(),o=i?.sse_sessions||{},d=e=>(e.network_id?o[`${e.network_id}:${e.alias}`]:void 0)??o[e.alias],[c,x]=(0,t.useState)(""),[u,h]=(0,t.useState)(""),[m,g]=(0,t.useState)(""),[p,b]=(0,t.useState)(""),[f,j]=(0,t.useState)(""),[y,v]=(0,t.useState)(""),[N,w]=(0,t.useState)(""),[k,S]=(0,t.useState)(""),$=async()=>{if(c.trim()&&u.trim()){try{let e=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"register",username:c,password:u})}),s=await e.json();g(s.ok?`Created: ${s.user.username} (${s.user.user_id})`:`Failed: ${s.error}`),s.ok&&(x(""),h(""))}catch{g("Failed")}setTimeout(()=>g(""),8e3)}},T=async()=>{if(p.trim()){try{let e=await fetch("/api/hub/broadcast",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:p})}),s=await e.json();j(s.ok?`Sent to ${s.recipients} nodes`:`Failed: ${s.error}`),s.ok&&b("")}catch{j("Failed")}setTimeout(()=>j(""),5e3)}},C=async()=>{if(y&&N.trim()){try{let e=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:y,task:N})}),s=await e.json();S(s.ok?"Task sent":`Failed: ${s.error}`),s.ok&&w("")}catch{S("Failed")}setTimeout(()=>S(""),5e3)}},A=e.filter(e=>d(e)),O=e.filter(e=>!d(e));return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Admin"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#status",label:"Status"},{href:"#actions",label:"Actions"},{href:"#users",label:"Users"}].map(e=>(0,s.jsx)("a",{href:e.href,className:"rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,s.jsxs)("div",{className:"max-w-6xl space-y-10",children:[(0,s.jsxs)("div",{id:"status",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Status"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Overview"}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-3xl font-bold text-green-400 tabular-nums",children:A.length}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"Online"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-3xl font-bold text-gray-500 tabular-nums",children:O.length}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"Offline"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-3xl font-bold text-cyan-400 tabular-nums",children:i?.sse_connections??"--"}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"SSE Connections"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-3xl font-bold text-white tabular-nums",children:n?.tasks?.total??"--"}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"Total Tasks"})]})]}),n?.tasks?.by_status&&n.tasks.by_status.length>0&&(0,s.jsx)("div",{className:"mt-4 flex flex-wrap gap-2",children:n.tasks.by_status.map(e=>(0,s.jsxs)("span",{className:"text-xs px-2 py-1 rounded bg-[#0a0a15] border border-[#1a1a2a] text-gray-400",children:[e.status,": ",e.count]},e.status))})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:["Online Sessions ",(0,s.jsxs)("span",{className:"text-gray-600",children:["(",A.length,")"]})]}),(0,s.jsx)("div",{className:"space-y-2 max-h-80 overflow-y-auto",children:0===A.length?(0,s.jsx)("div",{className:"text-xs text-gray-600 text-center py-4",children:"No online sessions"}):A.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-3 bg-[#0a0a15] rounded-lg px-3 py-2 border border-[#1a1a2a]",children:[(0,s.jsx)(l.AliasAvatar,{alias:e.alias,size:20}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"text-sm text-white font-medium truncate",children:e.alias}),(0,s.jsxs)("div",{className:"text-xs text-gray-500 truncate",children:[e.agent||"--"," · ",e.task||"idle"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,s.jsx)("span",{className:`text-xs px-2 py-0.5 rounded border ${"working"===e.status?"bg-green-900/30 text-green-300 border-green-800/30":"bg-blue-900/30 text-blue-300 border-blue-800/30"}`,children:e.status}),(0,s.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,r.timeAgo)(e.updated_at)})]})]},e.alias))})]})]})]}),(0,s.jsxs)("div",{id:"actions",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Actions"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Broadcast"}),(0,s.jsx)("textarea",{value:p,onChange:e=>b(e.target.value),placeholder:"Message to all online nodes...",rows:3,className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,s.jsxs)("div",{className:"flex justify-between items-center mt-3",children:[(0,s.jsxs)("span",{className:"text-xs text-gray-600",children:[p.length,"/500"]}),(0,s.jsx)("button",{onClick:T,disabled:!p.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"})]}),f&&(0,s.jsx)("div",{className:`mt-2 text-xs ${f.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:f})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Send Task"}),(0,s.jsxs)("select",{value:y,onChange:e=>v(e.target.value),className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-cyan-500/50 focus:outline-none mb-3",children:[(0,s.jsx)("option",{value:"",children:"Select target node..."}),A.map(e=>(0,s.jsxs)("option",{value:e.alias,children:[e.alias," (",e.status,")"]},e.alias)),(0,s.jsx)("optgroup",{label:"Offline",children:O.map(e=>(0,s.jsxs)("option",{value:e.alias,children:[e.alias," (offline)"]},e.alias))})]}),(0,s.jsx)("textarea",{value:N,onChange:e=>w(e.target.value),placeholder:"Task content...",rows:3,className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,s.jsx)("div",{className:"flex justify-end mt-3",children:(0,s.jsx)("button",{onClick:C,disabled:!y||!N.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"})}),k&&(0,s.jsx)("div",{className:`mt-2 text-xs ${k.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:k})]})]})]}),(0,s.jsxs)("div",{id:"users",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Users"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Register User (V3)"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>x(e.target.value),placeholder:"Username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("input",{type:"password",value:u,onChange:e=>h(e.target.value),placeholder:"Password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("button",{onClick:$,disabled:!c.trim()||!u.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"})]}),m&&(0,s.jsx)("div",{className:`mt-2 text-xs ${m.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:m})]})})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":323,"timestamp":195935059744,"id":4,"parentId":1,"tags":{},"startTime":1778567420884,"traceId":"2aad9b430af97808"},{"name":"load-custom-routes","duration":502,"timestamp":195935060235,"id":5,"parentId":1,"tags":{},"startTime":1778567420885,"traceId":"2aad9b430af97808"},{"name":"create-dist-dir","duration":4401,"timestamp":195935060785,"id":6,"parentId":1,"tags":{},"startTime":1778567420886,"traceId":"2aad9b430af97808"},{"name":"clean","duration":601,"timestamp":195935065924,"id":7,"parentId":1,"tags":{},"startTime":1778567420891,"traceId":"2aad9b430af97808"},{"name":"discover-routes","duration":23080,"timestamp":195935162578,"id":8,"parentId":1,"tags":{},"startTime":1778567420987,"traceId":"2aad9b430af97808"},{"name":"create-root-mapping","duration":123,"timestamp":195935185727,"id":9,"parentId":1,"tags":{},"startTime":1778567421010,"traceId":"2aad9b430af97808"},{"name":"generate-route-types","duration":18298,"timestamp":195935188321,"id":10,"parentId":1,"tags":{},"startTime":1778567421013,"traceId":"2aad9b430af97808"},{"name":"public-dir-conflict-check","duration":116,"timestamp":195935206808,"id":11,"parentId":1,"tags":{},"startTime":1778567421032,"traceId":"2aad9b430af97808"},{"name":"generate-routes-manifest","duration":4451,"timestamp":195935207108,"id":12,"parentId":1,"tags":{},"startTime":1778567421032,"traceId":"2aad9b430af97808"},{"name":"run-turbopack","duration":7564445,"timestamp":195935217125,"id":14,"parentId":1,"tags":{},"startTime":1778567421042,"traceId":"2aad9b430af97808"},{"name":"turbopack-build-events","duration":84,"timestamp":195935497156,"id":15,"parentId":1,"tags":{},"startTime":1778567421322,"traceId":"2aad9b430af97808"},{"name":"run-typescript","duration":7645717,"timestamp":195942799138,"id":16,"parentId":1,"tags":{},"startTime":1778567428624,"traceId":"2aad9b430af97808"},{"name":"generate-required-server-files","duration":2319,"timestamp":195950446263,"id":18,"parentId":1,"tags":{},"startTime":1778567436271,"traceId":"2aad9b430af97808"},{"name":"check-static-error-page","duration":10565,"timestamp":195950516277,"id":20,"parentId":19,"tags":{},"startTime":1778567436341,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":328663,"timestamp":195950530159,"id":62,"parentId":22,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":340538,"timestamp":195950518439,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778567436343,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":396684,"timestamp":195950530248,"id":63,"parentId":25,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":406169,"timestamp":195950520867,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":401264,"timestamp":195950530435,"id":65,"parentId":27,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":410559,"timestamp":195950521204,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":423955,"timestamp":195950530473,"id":66,"parentId":28,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":433273,"timestamp":195950521293,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":429128,"timestamp":195950529841,"id":61,"parentId":21,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":441737,"timestamp":195950517309,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778567436342,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":432205,"timestamp":195950530508,"id":67,"parentId":29,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":441399,"timestamp":195950521374,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":436230,"timestamp":195950530578,"id":69,"parentId":32,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":444964,"timestamp":195950521909,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778567436347,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":441172,"timestamp":195950530688,"id":70,"parentId":33,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":449875,"timestamp":195950522052,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778567436347,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":443362,"timestamp":195950530739,"id":71,"parentId":34,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":451958,"timestamp":195950522210,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778567436347,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":446928,"timestamp":195950530759,"id":72,"parentId":35,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":455387,"timestamp":195950522348,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778567436347,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":447913,"timestamp":195950530390,"id":64,"parentId":26,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":457255,"timestamp":195950521086,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":450658,"timestamp":195950530815,"id":73,"parentId":36,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":458733,"timestamp":195950522777,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778567436347,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":454247,"timestamp":195950530836,"id":74,"parentId":37,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":462173,"timestamp":195950522957,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":455314,"timestamp":195950530852,"id":76,"parentId":39,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":462995,"timestamp":195950523211,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":455462,"timestamp":195950530847,"id":75,"parentId":38,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":463206,"timestamp":195950523122,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":458639,"timestamp":195950530861,"id":77,"parentId":40,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":466252,"timestamp":195950523299,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":460976,"timestamp":195950530870,"id":78,"parentId":41,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":468498,"timestamp":195950523399,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":462289,"timestamp":195950530875,"id":79,"parentId":42,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":469727,"timestamp":195950523477,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":464452,"timestamp":195950530885,"id":80,"parentId":43,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":471826,"timestamp":195950523546,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":467071,"timestamp":195950530893,"id":81,"parentId":44,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":474404,"timestamp":195950523638,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":468018,"timestamp":195950530899,"id":82,"parentId":45,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":475239,"timestamp":195950523709,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":470317,"timestamp":195950530907,"id":83,"parentId":46,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":477455,"timestamp":195950523804,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778567436348,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":471823,"timestamp":195950530912,"id":84,"parentId":47,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":478892,"timestamp":195950523884,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778567436349,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":473397,"timestamp":195950530921,"id":85,"parentId":48,"tags":{},"startTime":1778567436356,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":480389,"timestamp":195950523961,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778567436349,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":456960,"timestamp":195950549476,"id":86,"parentId":24,"tags":{},"startTime":1778567436374,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":487643,"timestamp":195950518827,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778567436344,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":457780,"timestamp":195950550347,"id":87,"parentId":31,"tags":{},"startTime":1778567436375,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":486464,"timestamp":195950521698,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":477764,"timestamp":195950530544,"id":68,"parentId":30,"tags":{},"startTime":1778567436355,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":486761,"timestamp":195950521573,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778567436346,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":447127,"timestamp":195950571154,"id":90,"parentId":50,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":493860,"timestamp":195950524482,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778567436349,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":453594,"timestamp":195950571160,"id":91,"parentId":51,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":500187,"timestamp":195950524621,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778567436349,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":459382,"timestamp":195950571166,"id":92,"parentId":52,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":505804,"timestamp":195950524814,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778567436350,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":466114,"timestamp":195950571172,"id":93,"parentId":53,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":512355,"timestamp":195950524986,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778567436350,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":473936,"timestamp":195950571176,"id":94,"parentId":55,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":519510,"timestamp":195950525661,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778567436350,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":474377,"timestamp":195950571111,"id":88,"parentId":23,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":526883,"timestamp":195950518674,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778567436343,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":477241,"timestamp":195950571182,"id":95,"parentId":56,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":522607,"timestamp":195950525861,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778567436351,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":479730,"timestamp":195950571187,"id":96,"parentId":58,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":524591,"timestamp":195950526369,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778567436351,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":481415,"timestamp":195950571147,"id":89,"parentId":49,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":528290,"timestamp":195950524323,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778567436349,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":486172,"timestamp":195950571204,"id":98,"parentId":60,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":530808,"timestamp":195950526616,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778567436351,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":486959,"timestamp":195950571213,"id":99,"parentId":57,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":532173,"timestamp":195950526041,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778567436351,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":487102,"timestamp":195950571192,"id":97,"parentId":59,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":531838,"timestamp":195950526484,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778567436351,"traceId":"2aad9b430af97808"},{"name":"is-page-static","duration":491692,"timestamp":195950571219,"id":100,"parentId":54,"tags":{},"startTime":1778567436396,"traceId":"2aad9b430af97808"},{"name":"check-page","duration":537778,"timestamp":195950525185,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778567436350,"traceId":"2aad9b430af97808"},{"name":"static-check","duration":547647,"timestamp":195950515347,"id":19,"parentId":1,"tags":{},"startTime":1778567436340,"traceId":"2aad9b430af97808"},{"name":"write-routes-manifest","duration":556,"timestamp":195951070104,"id":102,"parentId":1,"tags":{},"startTime":1778567436895,"traceId":"2aad9b430af97808"},{"name":"load-dotenv","duration":45,"timestamp":195951083699,"id":105,"parentId":104,"tags":{},"startTime":1778567436908,"traceId":"2aad9b430af97808"},{"name":"run-export-path-map","duration":643,"timestamp":195951086647,"id":106,"parentId":104,"tags":{},"startTime":1778567436911,"traceId":"2aad9b430af97808"},{"name":"next-export","duration":542505,"timestamp":195951082479,"id":104,"parentId":1,"tags":{},"startTime":1778567436907,"traceId":"2aad9b430af97808"},{"name":"move-exported-app-not-found-","duration":602,"timestamp":195951628446,"id":107,"parentId":103,"tags":{},"startTime":1778567437453,"traceId":"2aad9b430af97808"},{"name":"move-exported-app-global-error-","duration":435,"timestamp":195951629146,"id":108,"parentId":103,"tags":{},"startTime":1778567437454,"traceId":"2aad9b430af97808"}]
2
- [{"name":"static-generation","duration":558061,"timestamp":195951075524,"id":103,"parentId":1,"tags":{},"startTime":1778567436900,"traceId":"2aad9b430af97808"},{"name":"write-routes-manifest","duration":463,"timestamp":195951633771,"id":109,"parentId":1,"tags":{},"startTime":1778567437458,"traceId":"2aad9b430af97808"},{"name":"print-tree-view","duration":3787,"timestamp":195951649125,"id":110,"parentId":1,"tags":{},"startTime":1778567437474,"traceId":"2aad9b430af97808"},{"name":"write-route-bundle-stats","duration":14856,"timestamp":195951652948,"id":111,"parentId":1,"tags":{},"startTime":1778567437478,"traceId":"2aad9b430af97808"},{"name":"telemetry-flush","duration":31143,"timestamp":195951667849,"id":112,"parentId":1,"tags":{},"startTime":1778567437493,"traceId":"2aad9b430af97808"},{"name":"next-build","duration":16706220,"timestamp":195934992827,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778567420818,"traceId":"2aad9b430af97808"}]
1
+ [{"name":"generate-buildid","duration":326,"timestamp":196644487993,"id":4,"parentId":1,"tags":{},"startTime":1778568130313,"traceId":"4bc6aa32c1888e9b"},{"name":"load-custom-routes","duration":560,"timestamp":196644488516,"id":5,"parentId":1,"tags":{},"startTime":1778568130313,"traceId":"4bc6aa32c1888e9b"},{"name":"create-dist-dir","duration":1262,"timestamp":196644489127,"id":6,"parentId":1,"tags":{},"startTime":1778568130314,"traceId":"4bc6aa32c1888e9b"},{"name":"clean","duration":516,"timestamp":196644491263,"id":7,"parentId":1,"tags":{},"startTime":1778568130316,"traceId":"4bc6aa32c1888e9b"},{"name":"discover-routes","duration":8710,"timestamp":196644604824,"id":8,"parentId":1,"tags":{},"startTime":1778568130430,"traceId":"4bc6aa32c1888e9b"},{"name":"create-root-mapping","duration":112,"timestamp":196644613599,"id":9,"parentId":1,"tags":{},"startTime":1778568130438,"traceId":"4bc6aa32c1888e9b"},{"name":"generate-route-types","duration":52865,"timestamp":196644616030,"id":10,"parentId":1,"tags":{},"startTime":1778568130441,"traceId":"4bc6aa32c1888e9b"},{"name":"public-dir-conflict-check","duration":109,"timestamp":196644669086,"id":11,"parentId":1,"tags":{},"startTime":1778568130494,"traceId":"4bc6aa32c1888e9b"},{"name":"generate-routes-manifest","duration":4389,"timestamp":196644669315,"id":12,"parentId":1,"tags":{},"startTime":1778568130494,"traceId":"4bc6aa32c1888e9b"},{"name":"run-turbopack","duration":12153587,"timestamp":196644681250,"id":14,"parentId":1,"tags":{},"startTime":1778568130506,"traceId":"4bc6aa32c1888e9b"},{"name":"turbopack-build-events","duration":80,"timestamp":196645044365,"id":15,"parentId":1,"tags":{},"startTime":1778568130869,"traceId":"4bc6aa32c1888e9b"},{"name":"run-typescript","duration":10938127,"timestamp":196656850487,"id":16,"parentId":1,"tags":{},"startTime":1778568142675,"traceId":"4bc6aa32c1888e9b"},{"name":"generate-required-server-files","duration":4018,"timestamp":196667790018,"id":18,"parentId":1,"tags":{},"startTime":1778568153615,"traceId":"4bc6aa32c1888e9b"},{"name":"check-static-error-page","duration":47537,"timestamp":196667956872,"id":20,"parentId":19,"tags":{},"startTime":1778568153782,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":548756,"timestamp":196668010757,"id":62,"parentId":22,"tags":{},"startTime":1778568153835,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":594331,"timestamp":196667965340,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778568153790,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":892747,"timestamp":196668010419,"id":61,"parentId":21,"tags":{},"startTime":1778568153835,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":941952,"timestamp":196667961324,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778568153786,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":930446,"timestamp":196668011036,"id":64,"parentId":26,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":967326,"timestamp":196667976302,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778568153801,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":950069,"timestamp":196668011120,"id":66,"parentId":28,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":984696,"timestamp":196667976570,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778568153801,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":999810,"timestamp":196668011159,"id":67,"parentId":29,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1027808,"timestamp":196667984287,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778568153809,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1016572,"timestamp":196668011194,"id":68,"parentId":30,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1043692,"timestamp":196667984704,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778568153809,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1032343,"timestamp":196668011228,"id":69,"parentId":32,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1058413,"timestamp":196667985242,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778568153810,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1039113,"timestamp":196668011352,"id":70,"parentId":33,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1065137,"timestamp":196667985406,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778568153810,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1046668,"timestamp":196668011400,"id":71,"parentId":34,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1072633,"timestamp":196667985544,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778568153810,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1066729,"timestamp":196668011418,"id":72,"parentId":35,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1092555,"timestamp":196667985682,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778568153810,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1081292,"timestamp":196668011473,"id":73,"parentId":36,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1106640,"timestamp":196667986205,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778568153811,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1093381,"timestamp":196668011083,"id":65,"parentId":27,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1128072,"timestamp":196667976450,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778568153801,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1099734,"timestamp":196668011500,"id":75,"parentId":38,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1124680,"timestamp":196667986616,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778568153811,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1109946,"timestamp":196668011492,"id":74,"parentId":37,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1135079,"timestamp":196667986435,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778568153811,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1113580,"timestamp":196668011506,"id":76,"parentId":39,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1135078,"timestamp":196667990070,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778568153815,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1115212,"timestamp":196668011518,"id":78,"parentId":41,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1136371,"timestamp":196667990411,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778568153815,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1121820,"timestamp":196668011524,"id":79,"parentId":42,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1142857,"timestamp":196667990560,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778568153815,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1126220,"timestamp":196668011530,"id":80,"parentId":43,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1147105,"timestamp":196667990702,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778568153815,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1129952,"timestamp":196668011536,"id":81,"parentId":44,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1150693,"timestamp":196667990854,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778568153816,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1134359,"timestamp":196668011542,"id":82,"parentId":45,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1154517,"timestamp":196667991441,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778568153816,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1138828,"timestamp":196668011548,"id":83,"parentId":46,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1158801,"timestamp":196667991636,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778568153816,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1143521,"timestamp":196668011512,"id":77,"parentId":40,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1164847,"timestamp":196667990251,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778568153815,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1149377,"timestamp":196668011553,"id":84,"parentId":47,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1169212,"timestamp":196667991775,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778568153816,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1160756,"timestamp":196668011558,"id":85,"parentId":48,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1180494,"timestamp":196667991899,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778568153817,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1163855,"timestamp":196668014863,"id":86,"parentId":24,"tags":{},"startTime":1778568153840,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1212854,"timestamp":196667965923,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778568153791,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1169143,"timestamp":196668015627,"id":87,"parentId":31,"tags":{},"startTime":1778568153840,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1199960,"timestamp":196667984872,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778568153810,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1183590,"timestamp":196668017528,"id":88,"parentId":23,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1235522,"timestamp":196667965654,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778568153790,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1201430,"timestamp":196668017556,"id":90,"parentId":50,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1226448,"timestamp":196667992613,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778568153817,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1221505,"timestamp":196668010844,"id":63,"parentId":25,"tags":{},"startTime":1778568153836,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1256405,"timestamp":196667976023,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778568153801,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1221819,"timestamp":196668017562,"id":91,"parentId":51,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1246616,"timestamp":196667992821,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778568153818,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1249179,"timestamp":196668017574,"id":93,"parentId":53,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1273439,"timestamp":196667993376,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778568153818,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1259144,"timestamp":196668017549,"id":89,"parentId":49,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1284353,"timestamp":196667992400,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778568153817,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1264692,"timestamp":196668017580,"id":94,"parentId":55,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1287299,"timestamp":196667995065,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778568153820,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1265812,"timestamp":196668017585,"id":95,"parentId":56,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1288117,"timestamp":196667995322,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778568153820,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1280894,"timestamp":196668017590,"id":96,"parentId":58,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1296590,"timestamp":196668001955,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778568153827,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1286711,"timestamp":196668017595,"id":97,"parentId":59,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1302152,"timestamp":196668002241,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778568153827,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1287111,"timestamp":196668023315,"id":99,"parentId":57,"tags":{},"startTime":1778568153848,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1314887,"timestamp":196667995596,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778568153820,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1298407,"timestamp":196668017609,"id":98,"parentId":60,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1313610,"timestamp":196668002465,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778568153827,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1278277,"timestamp":196668038806,"id":100,"parentId":54,"tags":{},"startTime":1778568153864,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1323477,"timestamp":196667993652,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778568153818,"traceId":"4bc6aa32c1888e9b"},{"name":"is-page-static","duration":1348631,"timestamp":196668017568,"id":92,"parentId":52,"tags":{},"startTime":1778568153842,"traceId":"4bc6aa32c1888e9b"},{"name":"check-page","duration":1373156,"timestamp":196667993106,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778568153818,"traceId":"4bc6aa32c1888e9b"},{"name":"static-check","duration":1410601,"timestamp":196667955698,"id":19,"parentId":1,"tags":{},"startTime":1778568153780,"traceId":"4bc6aa32c1888e9b"},{"name":"write-routes-manifest","duration":4663,"timestamp":196669379563,"id":102,"parentId":1,"tags":{},"startTime":1778568155204,"traceId":"4bc6aa32c1888e9b"},{"name":"load-dotenv","duration":62,"timestamp":196669402391,"id":105,"parentId":104,"tags":{},"startTime":1778568155227,"traceId":"4bc6aa32c1888e9b"},{"name":"run-export-path-map","duration":973,"timestamp":196669406533,"id":106,"parentId":104,"tags":{},"startTime":1778568155231,"traceId":"4bc6aa32c1888e9b"},{"name":"next-export","duration":841289,"timestamp":196669399872,"id":104,"parentId":1,"tags":{},"startTime":1778568155225,"traceId":"4bc6aa32c1888e9b"},{"name":"move-exported-app-not-found-","duration":2466,"timestamp":196670244649,"id":107,"parentId":103,"tags":{},"startTime":1778568156069,"traceId":"4bc6aa32c1888e9b"},{"name":"move-exported-app-global-error-","duration":409,"timestamp":196670247265,"id":108,"parentId":103,"tags":{},"startTime":1778568156072,"traceId":"4bc6aa32c1888e9b"}]
2
+ [{"name":"static-generation","duration":864843,"timestamp":196669389859,"id":103,"parentId":1,"tags":{},"startTime":1778568155215,"traceId":"4bc6aa32c1888e9b"},{"name":"write-routes-manifest","duration":481,"timestamp":196670255784,"id":109,"parentId":1,"tags":{},"startTime":1778568156080,"traceId":"4bc6aa32c1888e9b"},{"name":"print-tree-view","duration":3674,"timestamp":196670270906,"id":110,"parentId":1,"tags":{},"startTime":1778568156096,"traceId":"4bc6aa32c1888e9b"},{"name":"write-route-bundle-stats","duration":13216,"timestamp":196670274622,"id":111,"parentId":1,"tags":{},"startTime":1778568156099,"traceId":"4bc6aa32c1888e9b"},{"name":"telemetry-flush","duration":24912,"timestamp":196670287874,"id":112,"parentId":1,"tags":{},"startTime":1778568156113,"traceId":"4bc6aa32c1888e9b"},{"name":"next-build","duration":25878384,"timestamp":196644434436,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778568130259,"traceId":"4bc6aa32c1888e9b"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":7564445,"timestamp":195935217125,"id":14,"parentId":1,"tags":{},"startTime":1778567421042,"traceId":"2aad9b430af97808"},{"name":"turbopack-build-events","duration":84,"timestamp":195935497156,"id":15,"parentId":1,"tags":{},"startTime":1778567421322,"traceId":"2aad9b430af97808"},{"name":"run-typescript","duration":7645717,"timestamp":195942799138,"id":16,"parentId":1,"tags":{},"startTime":1778567428624,"traceId":"2aad9b430af97808"},{"name":"static-check","duration":547647,"timestamp":195950515347,"id":19,"parentId":1,"tags":{},"startTime":1778567436340,"traceId":"2aad9b430af97808"},{"name":"static-generation","duration":558061,"timestamp":195951075524,"id":103,"parentId":1,"tags":{},"startTime":1778567436900,"traceId":"2aad9b430af97808"},{"name":"telemetry-flush","duration":31143,"timestamp":195951667849,"id":112,"parentId":1,"tags":{},"startTime":1778567437493,"traceId":"2aad9b430af97808"},{"name":"next-build","duration":16706220,"timestamp":195934992827,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778567420818,"traceId":"2aad9b430af97808"}]
1
+ [{"name":"run-turbopack","duration":12153587,"timestamp":196644681250,"id":14,"parentId":1,"tags":{},"startTime":1778568130506,"traceId":"4bc6aa32c1888e9b"},{"name":"turbopack-build-events","duration":80,"timestamp":196645044365,"id":15,"parentId":1,"tags":{},"startTime":1778568130869,"traceId":"4bc6aa32c1888e9b"},{"name":"run-typescript","duration":10938127,"timestamp":196656850487,"id":16,"parentId":1,"tags":{},"startTime":1778568142675,"traceId":"4bc6aa32c1888e9b"},{"name":"static-check","duration":1410601,"timestamp":196667955698,"id":19,"parentId":1,"tags":{},"startTime":1778568153780,"traceId":"4bc6aa32c1888e9b"},{"name":"static-generation","duration":864843,"timestamp":196669389859,"id":103,"parentId":1,"tags":{},"startTime":1778568155215,"traceId":"4bc6aa32c1888e9b"},{"name":"telemetry-flush","duration":24912,"timestamp":196670287874,"id":112,"parentId":1,"tags":{},"startTime":1778568156113,"traceId":"4bc6aa32c1888e9b"},{"name":"next-build","duration":25878384,"timestamp":196644434436,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778568130259,"traceId":"4bc6aa32c1888e9b"}]
@@ -3,6 +3,7 @@
3
3
  import { useState } from 'react';
4
4
  import { useSessions, useHealth, useStats } from '../lib/hooks';
5
5
  import { timeAgo } from '../components/utils';
6
+ import { AliasAvatar } from '../components/AliasAvatar';
6
7
 
7
8
  export default function AdminPage() {
8
9
  const { sessions } = useSessions();
@@ -72,9 +73,32 @@ export default function AdminPage() {
72
73
 
73
74
  return (
74
75
  <div className="min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono">
75
- <h1 className="text-2xl font-bold text-white mb-6 lg:ml-0 ml-10">Admin</h1>
76
+ <h1 className="text-2xl font-bold text-white mb-3 lg:ml-0 ml-10">Admin</h1>
77
+
78
+ {/* Section anchor nav — same pattern as Settings r28. */}
79
+ <nav className="mb-8 flex flex-wrap gap-1 text-xs">
80
+ {[
81
+ { href: '#status', label: 'Status' },
82
+ { href: '#actions', label: 'Actions' },
83
+ { href: '#users', label: 'Users' },
84
+ ].map(a => (
85
+ <a key={a.href} href={a.href}
86
+ className="rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors">
87
+ {a.label}
88
+ </a>
89
+ ))}
90
+ </nav>
91
+
92
+ <div className="max-w-6xl space-y-10">
93
+
94
+ {/* ── Group: Status ─────────────────────────────────────── */}
95
+ <div id="status" className="space-y-4 scroll-mt-6">
96
+ <div className="flex items-center gap-2 px-1">
97
+ <div className="text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold">Status</div>
98
+ <div className="flex-1 h-px bg-[#2a2a4a]" />
99
+ </div>
100
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
76
101
 
77
- <div className="grid grid-cols-1 lg:grid-cols-2 gap-6 max-w-6xl">
78
102
  {/* Server Overview */}
79
103
  <section className="bg-[#111128] border border-[#2a2a4a] rounded-xl p-5">
80
104
  <h2 className="text-sm font-semibold text-gray-300 mb-4">Server Overview</h2>
@@ -107,6 +131,43 @@ export default function AdminPage() {
107
131
  )}
108
132
  </section>
109
133
 
134
+ {/* Online Sessions — pulled into Status group (was below Send Task) */}
135
+ <section className="bg-[#111128] border border-[#2a2a4a] rounded-xl p-5">
136
+ <h2 className="text-sm font-semibold text-gray-300 mb-4">
137
+ Online Sessions <span className="text-gray-600">({onlineNodes.length})</span>
138
+ </h2>
139
+ <div className="space-y-2 max-h-80 overflow-y-auto">
140
+ {onlineNodes.length === 0 ? (
141
+ <div className="text-xs text-gray-600 text-center py-4">No online sessions</div>
142
+ ) : onlineNodes.map(s => (
143
+ <div key={s.alias} className="flex items-center gap-3 bg-[#0a0a15] rounded-lg px-3 py-2 border border-[#1a1a2a]">
144
+ <AliasAvatar alias={s.alias} size={20} />
145
+ <div className="min-w-0 flex-1">
146
+ <div className="text-sm text-white font-medium truncate">{s.alias}</div>
147
+ <div className="text-xs text-gray-500 truncate">{s.agent || '--'} · {s.task || 'idle'}</div>
148
+ </div>
149
+ <div className="flex items-center gap-2 shrink-0">
150
+ <span className={`text-xs px-2 py-0.5 rounded border ${
151
+ s.status === 'working' ? 'bg-green-900/30 text-green-300 border-green-800/30' : 'bg-blue-900/30 text-blue-300 border-blue-800/30'
152
+ }`}>{s.status}</span>
153
+ <span className="text-[10px] text-gray-600">{timeAgo(s.updated_at)}</span>
154
+ </div>
155
+ </div>
156
+ ))}
157
+ </div>
158
+ </section>
159
+
160
+ </div>
161
+ </div>
162
+
163
+ {/* ── Group: Actions ────────────────────────────────────── */}
164
+ <div id="actions" className="space-y-4 scroll-mt-6">
165
+ <div className="flex items-center gap-2 px-1">
166
+ <div className="text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold">Actions</div>
167
+ <div className="flex-1 h-px bg-[#2a2a4a]" />
168
+ </div>
169
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
170
+
110
171
  {/* Broadcast */}
111
172
  <section className="bg-[#111128] border border-[#2a2a4a] rounded-xl p-5">
112
173
  <h2 className="text-sm font-semibold text-gray-300 mb-4">Broadcast</h2>
@@ -167,30 +228,17 @@ export default function AdminPage() {
167
228
  {taskResult && <div className={`mt-2 text-xs ${taskResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{taskResult}</div>}
168
229
  </section>
169
230
 
170
- {/* Online Sessions */}
171
- <section className="bg-[#111128] border border-[#2a2a4a] rounded-xl p-5">
172
- <h2 className="text-sm font-semibold text-gray-300 mb-4">
173
- Online Sessions <span className="text-gray-600">({onlineNodes.length})</span>
174
- </h2>
175
- <div className="space-y-2 max-h-80 overflow-y-auto">
176
- {onlineNodes.length === 0 ? (
177
- <div className="text-xs text-gray-600 text-center py-4">No online sessions</div>
178
- ) : onlineNodes.map(s => (
179
- <div key={s.alias} className="flex items-center justify-between bg-[#0a0a15] rounded-lg px-3 py-2 border border-[#1a1a2a]">
180
- <div className="min-w-0">
181
- <div className="text-sm text-white font-medium truncate">{s.alias}</div>
182
- <div className="text-xs text-gray-500 truncate">{s.agent || '--'} · {s.task || 'idle'}</div>
183
- </div>
184
- <div className="flex items-center gap-2 shrink-0">
185
- <span className={`text-xs px-2 py-0.5 rounded border ${
186
- s.status === 'working' ? 'bg-green-900/30 text-green-300 border-green-800/30' : 'bg-blue-900/30 text-blue-300 border-blue-800/30'
187
- }`}>{s.status}</span>
188
- <span className="text-[10px] text-gray-600">{timeAgo(s.updated_at)}</span>
189
- </div>
190
- </div>
191
- ))}
192
231
  </div>
193
- </section>
232
+ </div>
233
+
234
+ {/* ── Group: Users ──────────────────────────────────────── */}
235
+ <div id="users" className="space-y-4 scroll-mt-6">
236
+ <div className="flex items-center gap-2 px-1">
237
+ <div className="text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold">Users</div>
238
+ <div className="flex-1 h-px bg-[#2a2a4a]" />
239
+ </div>
240
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
241
+
194
242
  {/* User Management (V3 Auth) */}
195
243
  <section className="bg-[#111128] border border-[#2a2a4a] rounded-xl p-5">
196
244
  <h2 className="text-sm font-semibold text-gray-300 mb-4">Register User (V3)</h2>
@@ -219,6 +267,10 @@ export default function AdminPage() {
219
267
  </div>
220
268
  {regResult && <div className={`mt-2 text-xs ${regResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{regResult}</div>}
221
269
  </section>
270
+
271
+ </div>
272
+ </div>
273
+
222
274
  </div>
223
275
  </div>
224
276
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.5-preview.21",
3
+ "version": "0.4.5-preview.22",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -1,3 +0,0 @@
1
- module.exports=[43515,a=>{"use strict";a.s(["formatUptime",0,function(a){let b=Math.floor(a/3600),c=Math.floor(a%3600/60);return b>0?`${b}h ${c}m`:`${c}m`},"timeAgo",0,function(a){if(!a)return"--";let b=Math.floor((Date.now()-new Date(a.replace(" ","T")+"Z").getTime())/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}])},44332,a=>{"use strict";var b=a.i(72596),c=a.i(22397);let d=async a=>{let b=await fetch(a);if(401===b.status)throw window.location.assign("/login"),Error("unauthorized");return b.json()},e={refreshInterval:5e3,dedupingInterval:3e3};function f(a,b){if(!b)return a;let c=a.includes("?")?"&":"?";return`${a}${c}network_id=${encodeURIComponent(b)}`}a.s(["useAnetConfig",0,function(){let{data:a}=(0,b.default)("/api/anet/config",d,{refreshInterval:3e4});return{config:a||null}},"useHealth",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/health",d,e);return{health:a||null,error:c}},"useLicense",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/license",d,{refreshInterval:6e4});return{license:a?.ok?a:null,error:c}},"useMessages",0,function(a=100){let{networkId:g}=(0,c.useNetworkId)(),{data:h,error:i,isLoading:j}=(0,b.default)(f(`/api/hub/messages?limit=${a}`,g),d,e);return{messages:h?.messages||[],error:i,isLoading:j}},"useSessions",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h,isLoading:i}=(0,b.default)(f("/api/hub/status",a),d,e);return{sessions:g?.sessions||[],hint:g?._hint,error:h,isLoading:i}},"useStats",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h}=(0,b.default)(f("/api/hub/stats",a),d,e);return{stats:g?.ok?g:null,error:h}},"useTasks",0,function(a){let{networkId:g}=(0,c.useNetworkId)(),h=new URLSearchParams({limit:"100",...a}).toString(),{data:i,error:j,isLoading:k}=(0,b.default)(f(`/api/hub/tasks?${h}`,g),d,e);return{tasks:i?.tasks||[],count:i?.count??0,source:i?.source,error:j,isLoading:k}}])},88367,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(44332),e=a.i(43515);a.s(["default",0,function(){let{sessions:a}=(0,d.useSessions)(),{health:f}=(0,d.useHealth)(),{stats:g}=(0,d.useStats)(),h=f?.sse_sessions||{},i=a=>(a.network_id?h[`${a.network_id}:${a.alias}`]:void 0)??h[a.alias],[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(""),z=async()=>{if(j.trim()&&l.trim()){try{let a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"register",username:j,password:l})}),b=await a.json();o(b.ok?`Created: ${b.user.username} (${b.user.user_id})`:`Failed: ${b.error}`),b.ok&&(k(""),m(""))}catch{o("Failed")}setTimeout(()=>o(""),8e3)}},A=async()=>{if(p.trim()){try{let a=await fetch("/api/hub/broadcast",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:p})}),b=await a.json();s(b.ok?`Sent to ${b.recipients} nodes`:`Failed: ${b.error}`),b.ok&&q("")}catch{s("Failed")}setTimeout(()=>s(""),5e3)}},B=async()=>{if(t&&v.trim()){try{let a=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:t,task:v})}),b=await a.json();y(b.ok?"Task sent":`Failed: ${b.error}`),b.ok&&w("")}catch{y("Failed")}setTimeout(()=>y(""),5e3)}},C=a.filter(a=>i(a)),D=a.filter(a=>!i(a));return(0,b.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white mb-6 lg:ml-0 ml-10",children:"Admin"}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 max-w-6xl",children:[(0,b.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Overview"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-3xl font-bold text-green-400 tabular-nums",children:C.length}),(0,b.jsx)("div",{className:"text-xs text-gray-500",children:"Online"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-3xl font-bold text-gray-500 tabular-nums",children:D.length}),(0,b.jsx)("div",{className:"text-xs text-gray-500",children:"Offline"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-3xl font-bold text-cyan-400 tabular-nums",children:f?.sse_connections??"--"}),(0,b.jsx)("div",{className:"text-xs text-gray-500",children:"SSE Connections"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-3xl font-bold text-white tabular-nums",children:g?.tasks?.total??"--"}),(0,b.jsx)("div",{className:"text-xs text-gray-500",children:"Total Tasks"})]})]}),g?.tasks?.by_status&&g.tasks.by_status.length>0&&(0,b.jsx)("div",{className:"mt-4 flex flex-wrap gap-2",children:g.tasks.by_status.map(a=>(0,b.jsxs)("span",{className:"text-xs px-2 py-1 rounded bg-[#0a0a15] border border-[#1a1a2a] text-gray-400",children:[a.status,": ",a.count]},a.status))})]}),(0,b.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Broadcast"}),(0,b.jsx)("textarea",{value:p,onChange:a=>q(a.target.value),placeholder:"Message to all online nodes...",rows:3,className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,b.jsxs)("div",{className:"flex justify-between items-center mt-3",children:[(0,b.jsxs)("span",{className:"text-xs text-gray-600",children:[p.length,"/500"]}),(0,b.jsx)("button",{onClick:A,disabled:!p.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"})]}),r&&(0,b.jsx)("div",{className:`mt-2 text-xs ${r.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:r})]}),(0,b.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Send Task"}),(0,b.jsxs)("select",{value:t,onChange:a=>u(a.target.value),className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-cyan-500/50 focus:outline-none mb-3",children:[(0,b.jsx)("option",{value:"",children:"Select target node..."}),C.map(a=>(0,b.jsxs)("option",{value:a.alias,children:[a.alias," (",a.status,")"]},a.alias)),(0,b.jsx)("optgroup",{label:"Offline",children:D.map(a=>(0,b.jsxs)("option",{value:a.alias,children:[a.alias," (offline)"]},a.alias))})]}),(0,b.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),placeholder:"Task content...",rows:3,className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none resize-none"}),(0,b.jsx)("div",{className:"flex justify-end mt-3",children:(0,b.jsx)("button",{onClick:B,disabled:!t||!v.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"})}),x&&(0,b.jsx)("div",{className:`mt-2 text-xs ${x.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:x})]}),(0,b.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,b.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:["Online Sessions ",(0,b.jsxs)("span",{className:"text-gray-600",children:["(",C.length,")"]})]}),(0,b.jsx)("div",{className:"space-y-2 max-h-80 overflow-y-auto",children:0===C.length?(0,b.jsx)("div",{className:"text-xs text-gray-600 text-center py-4",children:"No online sessions"}):C.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between bg-[#0a0a15] rounded-lg px-3 py-2 border border-[#1a1a2a]",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm text-white font-medium truncate",children:a.alias}),(0,b.jsxs)("div",{className:"text-xs text-gray-500 truncate",children:[a.agent||"--"," · ",a.task||"idle"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsx)("span",{className:`text-xs px-2 py-0.5 rounded border ${"working"===a.status?"bg-green-900/30 text-green-300 border-green-800/30":"bg-blue-900/30 text-blue-300 border-blue-800/30"}`,children:a.status}),(0,b.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,e.timeAgo)(a.updated_at)})]})]},a.alias))})]}),(0,b.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Register User (V3)"}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("input",{type:"text",value:j,onChange:a=>k(a.target.value),placeholder:"Username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,b.jsx)("input",{type:"password",value:l,onChange:a=>m(a.target.value),placeholder:"Password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,b.jsx)("button",{onClick:z,disabled:!j.trim()||!l.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"})]}),n&&(0,b.jsx)("div",{className:`mt-2 text-xs ${n.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:n})]})]})]})}])}];
2
-
3
- //# sourceMappingURL=app_0ap_oiq._.js.map