@sleep2agi/agent-network-dashboard 0.5.3-preview.206 → 0.5.3-preview.208

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 (143) 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 +5 -5
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +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 +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  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 +2 -2
  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/[root-of-the-server]__0sv~g.o._.js +1 -1
  121. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  126. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  127. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  128. package/.next/server/middleware-build-manifest.js +3 -3
  129. package/.next/server/pages/404.html +1 -1
  130. package/.next/server/pages/500.html +1 -1
  131. package/.next/static/chunks/{0pm~~o1jv9gj1.js → 08gmu68bqlaz4.js} +1 -1
  132. package/.next/static/chunks/{16gcta4~t.125.js → 0j9b4nk1ywb3k.js} +1 -1
  133. package/.next/static/chunks/{14e6gf9szdd9g.js → 0r-0gb4e0dyqd.js} +1 -1
  134. package/.next/static/chunks/{0po2o0ygxghg0.js → 0u6wf2dw8bs3e.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +53 -3
  138. package/package.json +1 -1
  139. package/scripts/topo-hover-detail-halo-test.mjs +76 -0
  140. package/scripts/topo-node-label-card-halo-test.mjs +76 -0
  141. /package/.next/static/{vxTm0IeFdzyrz6y90l7iJ → k6UUX_87BOdRd9GetbF-x}/_buildManifest.js +0 -0
  142. /package/.next/static/{vxTm0IeFdzyrz6y90l7iJ → k6UUX_87BOdRd9GetbF-x}/_clientMiddlewareManifest.js +0 -0
  143. /package/.next/static/{vxTm0IeFdzyrz6y90l7iJ → k6UUX_87BOdRd9GetbF-x}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=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 n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.206"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";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:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].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-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",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:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(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:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(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 Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(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:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",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:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(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 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(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:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current 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)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New 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:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,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:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(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:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",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:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=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 n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.208"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";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:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].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-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",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:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(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:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(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 Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(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:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",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:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(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 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(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:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current 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)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New 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:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,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:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(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:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",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:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":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`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.206"],70286)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":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`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.208"],70286)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.206"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.208"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":355,"timestamp":265175949918,"id":4,"parentId":1,"tags":{},"startTime":1779073148196,"traceId":"c717f5d08279825a"},{"name":"load-custom-routes","duration":479,"timestamp":265175950448,"id":5,"parentId":1,"tags":{},"startTime":1779073148197,"traceId":"c717f5d08279825a"},{"name":"create-dist-dir","duration":664,"timestamp":265175950971,"id":6,"parentId":1,"tags":{},"startTime":1779073148197,"traceId":"c717f5d08279825a"},{"name":"clean","duration":54289,"timestamp":265175952370,"id":7,"parentId":1,"tags":{},"startTime":1779073148199,"traceId":"c717f5d08279825a"},{"name":"discover-routes","duration":30376,"timestamp":265176092043,"id":8,"parentId":1,"tags":{},"startTime":1779073148338,"traceId":"c717f5d08279825a"},{"name":"create-root-mapping","duration":116,"timestamp":265176122480,"id":9,"parentId":1,"tags":{},"startTime":1779073148369,"traceId":"c717f5d08279825a"},{"name":"generate-route-types","duration":29668,"timestamp":265176125255,"id":10,"parentId":1,"tags":{},"startTime":1779073148372,"traceId":"c717f5d08279825a"},{"name":"public-dir-conflict-check","duration":129,"timestamp":265176155033,"id":11,"parentId":1,"tags":{},"startTime":1779073148401,"traceId":"c717f5d08279825a"},{"name":"generate-routes-manifest","duration":5983,"timestamp":265176155303,"id":12,"parentId":1,"tags":{},"startTime":1779073148402,"traceId":"c717f5d08279825a"},{"name":"run-turbopack","duration":7070178,"timestamp":265176179785,"id":14,"parentId":1,"tags":{},"startTime":1779073148426,"traceId":"c717f5d08279825a"},{"name":"turbopack-build-events","duration":104,"timestamp":265176483730,"id":15,"parentId":1,"tags":{},"startTime":1779073148730,"traceId":"c717f5d08279825a"},{"name":"run-typescript","duration":10565576,"timestamp":265183288221,"id":16,"parentId":1,"tags":{},"startTime":1779073155535,"traceId":"c717f5d08279825a"},{"name":"generate-required-server-files","duration":3067,"timestamp":265193855171,"id":18,"parentId":1,"tags":{},"startTime":1779073166101,"traceId":"c717f5d08279825a"},{"name":"check-static-error-page","duration":23703,"timestamp":265194022441,"id":20,"parentId":19,"tags":{},"startTime":1779073166269,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":517994,"timestamp":265194049757,"id":65,"parentId":22,"tags":{},"startTime":1779073166296,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":542365,"timestamp":265194025564,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779073166272,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":626405,"timestamp":265194050177,"id":68,"parentId":27,"tags":{},"startTime":1779073166296,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":639088,"timestamp":265194037609,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":630195,"timestamp":265194050042,"id":67,"parentId":26,"tags":{},"startTime":1779073166296,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":643508,"timestamp":265194037464,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":633617,"timestamp":265194049458,"id":64,"parentId":21,"tags":{},"startTime":1779073166296,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":659142,"timestamp":265194023983,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779073166270,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":636004,"timestamp":265194050956,"id":73,"parentId":33,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":648280,"timestamp":265194038757,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779073166285,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":647631,"timestamp":265194050300,"id":69,"parentId":28,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":660223,"timestamp":265194037765,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":649586,"timestamp":265194050720,"id":71,"parentId":30,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":662205,"timestamp":265194038155,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":653213,"timestamp":265194051107,"id":76,"parentId":36,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":664737,"timestamp":265194039631,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779073166286,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":654352,"timestamp":265194050784,"id":72,"parentId":32,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":666589,"timestamp":265194038601,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779073166285,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":671967,"timestamp":265194051162,"id":79,"parentId":39,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":683055,"timestamp":265194040158,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779073166286,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":682886,"timestamp":265194051087,"id":75,"parentId":35,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":694945,"timestamp":265194039100,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779073166285,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":683016,"timestamp":265194051171,"id":80,"parentId":40,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":693933,"timestamp":265194040283,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":686890,"timestamp":265194050570,"id":70,"parentId":29,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":699583,"timestamp":265194037926,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":692821,"timestamp":265194051149,"id":78,"parentId":38,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":704002,"timestamp":265194040030,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779073166286,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":693048,"timestamp":265194051132,"id":77,"parentId":37,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":704375,"timestamp":265194039833,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779073166286,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":693104,"timestamp":265194051206,"id":83,"parentId":45,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":703115,"timestamp":265194041223,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":694568,"timestamp":265194049907,"id":66,"parentId":25,"tags":{},"startTime":1779073166296,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":707235,"timestamp":265194037282,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779073166284,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":698457,"timestamp":265194051197,"id":82,"parentId":44,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":708622,"timestamp":265194041085,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":710983,"timestamp":265194051221,"id":84,"parentId":46,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":720919,"timestamp":265194041337,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779073166288,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":711127,"timestamp":265194051249,"id":86,"parentId":48,"tags":{},"startTime":1779073166298,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":719013,"timestamp":265194043389,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":714370,"timestamp":265194051269,"id":88,"parentId":50,"tags":{},"startTime":1779073166298,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":722147,"timestamp":265194043536,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":714835,"timestamp":265194051184,"id":81,"parentId":42,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":725410,"timestamp":265194040670,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":717493,"timestamp":265194051056,"id":74,"parentId":34,"tags":{},"startTime":1779073166297,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":729676,"timestamp":265194038919,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779073166285,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":715956,"timestamp":265194055633,"id":91,"parentId":31,"tags":{},"startTime":1779073166302,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":733330,"timestamp":265194038306,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779073166285,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":717299,"timestamp":265194054479,"id":90,"parentId":24,"tags":{},"startTime":1779073166301,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":737247,"timestamp":265194034565,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779073166281,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":720735,"timestamp":265194051237,"id":85,"parentId":47,"tags":{},"startTime":1779073166298,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":728750,"timestamp":265194043273,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":718467,"timestamp":265194056492,"id":92,"parentId":41,"tags":{},"startTime":1779073166303,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":734693,"timestamp":265194040401,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":717494,"timestamp":265194057797,"id":93,"parentId":43,"tags":{},"startTime":1779073166304,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":734524,"timestamp":265194040808,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779073166287,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":722517,"timestamp":265194060559,"id":98,"parentId":55,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":738852,"timestamp":265194044264,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":733350,"timestamp":265194051257,"id":87,"parentId":49,"tags":{},"startTime":1779073166298,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":741178,"timestamp":265194043476,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":736367,"timestamp":265194051282,"id":89,"parentId":51,"tags":{},"startTime":1779073166298,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":744106,"timestamp":265194043587,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":733182,"timestamp":265194060569,"id":99,"parentId":56,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":749396,"timestamp":265194044399,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":738140,"timestamp":265194060728,"id":102,"parentId":61,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":753532,"timestamp":265194045554,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779073166292,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":752511,"timestamp":265194060741,"id":103,"parentId":62,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":767598,"timestamp":265194045704,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779073166292,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":759991,"timestamp":265194060754,"id":104,"parentId":63,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":774942,"timestamp":265194045851,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779073166292,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":767549,"timestamp":265194060533,"id":96,"parentId":53,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":784156,"timestamp":265194043983,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":756761,"timestamp":265194071615,"id":105,"parentId":60,"tags":{},"startTime":1779073166318,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":783195,"timestamp":265194045226,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":750451,"timestamp":265194084534,"id":106,"parentId":57,"tags":{},"startTime":1779073166331,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":790482,"timestamp":265194044558,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":780633,"timestamp":265194060546,"id":97,"parentId":54,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":797098,"timestamp":265194044125,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":780810,"timestamp":265194060492,"id":94,"parentId":23,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":807060,"timestamp":265194034271,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779073166281,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":786019,"timestamp":265194060517,"id":95,"parentId":52,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":802700,"timestamp":265194043869,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779073166290,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":785997,"timestamp":265194060711,"id":101,"parentId":59,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":801628,"timestamp":265194045100,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"is-page-static","duration":791370,"timestamp":265194060586,"id":100,"parentId":58,"tags":{},"startTime":1779073166307,"traceId":"c717f5d08279825a"},{"name":"check-page","duration":807061,"timestamp":265194044937,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779073166291,"traceId":"c717f5d08279825a"},{"name":"static-check","duration":830759,"timestamp":265194021296,"id":19,"parentId":1,"tags":{},"startTime":1779073166268,"traceId":"c717f5d08279825a"}]
2
- [{"name":"write-routes-manifest","duration":497,"timestamp":265194862638,"id":108,"parentId":1,"tags":{},"startTime":1779073167109,"traceId":"c717f5d08279825a"},{"name":"load-dotenv","duration":44,"timestamp":265194874272,"id":111,"parentId":110,"tags":{},"startTime":1779073167121,"traceId":"c717f5d08279825a"},{"name":"run-export-path-map","duration":595,"timestamp":265194876836,"id":112,"parentId":110,"tags":{},"startTime":1779073167123,"traceId":"c717f5d08279825a"},{"name":"next-export","duration":639248,"timestamp":265194872940,"id":110,"parentId":1,"tags":{},"startTime":1779073167119,"traceId":"c717f5d08279825a"},{"name":"move-exported-app-not-found-","duration":539,"timestamp":265195515358,"id":113,"parentId":109,"tags":{},"startTime":1779073167762,"traceId":"c717f5d08279825a"},{"name":"move-exported-app-global-error-","duration":465,"timestamp":265195515994,"id":114,"parentId":109,"tags":{},"startTime":1779073167762,"traceId":"c717f5d08279825a"},{"name":"static-generation","duration":653011,"timestamp":265194866489,"id":109,"parentId":1,"tags":{},"startTime":1779073167113,"traceId":"c717f5d08279825a"},{"name":"write-routes-manifest","duration":521,"timestamp":265195519781,"id":115,"parentId":1,"tags":{},"startTime":1779073167766,"traceId":"c717f5d08279825a"},{"name":"print-tree-view","duration":4694,"timestamp":265195537751,"id":116,"parentId":1,"tags":{},"startTime":1779073167784,"traceId":"c717f5d08279825a"},{"name":"write-route-bundle-stats","duration":12991,"timestamp":265195542475,"id":117,"parentId":1,"tags":{},"startTime":1779073167789,"traceId":"c717f5d08279825a"},{"name":"telemetry-flush","duration":31829,"timestamp":265195555498,"id":118,"parentId":1,"tags":{},"startTime":1779073167802,"traceId":"c717f5d08279825a"},{"name":"next-build","duration":19693389,"timestamp":265175893964,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779073148140,"traceId":"c717f5d08279825a"}]
1
+ [{"name":"generate-buildid","duration":313,"timestamp":265959924469,"id":4,"parentId":1,"tags":{},"startTime":1779073932171,"traceId":"a9924b27add0caf4"},{"name":"load-custom-routes","duration":578,"timestamp":265959924951,"id":5,"parentId":1,"tags":{},"startTime":1779073932171,"traceId":"a9924b27add0caf4"},{"name":"create-dist-dir","duration":843,"timestamp":265959925585,"id":6,"parentId":1,"tags":{},"startTime":1779073932172,"traceId":"a9924b27add0caf4"},{"name":"clean","duration":36079,"timestamp":265959927160,"id":7,"parentId":1,"tags":{},"startTime":1779073932173,"traceId":"a9924b27add0caf4"},{"name":"discover-routes","duration":29938,"timestamp":265960056639,"id":8,"parentId":1,"tags":{},"startTime":1779073932303,"traceId":"a9924b27add0caf4"},{"name":"create-root-mapping","duration":194,"timestamp":265960086663,"id":9,"parentId":1,"tags":{},"startTime":1779073932333,"traceId":"a9924b27add0caf4"},{"name":"generate-route-types","duration":29230,"timestamp":265960090878,"id":10,"parentId":1,"tags":{},"startTime":1779073932337,"traceId":"a9924b27add0caf4"},{"name":"public-dir-conflict-check","duration":103,"timestamp":265960120206,"id":11,"parentId":1,"tags":{},"startTime":1779073932366,"traceId":"a9924b27add0caf4"},{"name":"generate-routes-manifest","duration":5421,"timestamp":265960120437,"id":12,"parentId":1,"tags":{},"startTime":1779073932367,"traceId":"a9924b27add0caf4"},{"name":"run-turbopack","duration":6207393,"timestamp":265960137965,"id":14,"parentId":1,"tags":{},"startTime":1779073932384,"traceId":"a9924b27add0caf4"},{"name":"turbopack-build-events","duration":91,"timestamp":265960453308,"id":15,"parentId":1,"tags":{},"startTime":1779073932700,"traceId":"a9924b27add0caf4"},{"name":"run-typescript","duration":10193190,"timestamp":265966354801,"id":16,"parentId":1,"tags":{},"startTime":1779073938601,"traceId":"a9924b27add0caf4"},{"name":"generate-required-server-files","duration":2339,"timestamp":265976549247,"id":18,"parentId":1,"tags":{},"startTime":1779073948796,"traceId":"a9924b27add0caf4"},{"name":"check-static-error-page","duration":15242,"timestamp":265976703240,"id":20,"parentId":19,"tags":{},"startTime":1779073948950,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":472780,"timestamp":265976723218,"id":65,"parentId":22,"tags":{},"startTime":1779073948969,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":489599,"timestamp":265976706585,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779073948953,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":596772,"timestamp":265976724361,"id":69,"parentId":28,"tags":{},"startTime":1779073948971,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":611347,"timestamp":265976709889,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":601643,"timestamp":265976724809,"id":72,"parentId":32,"tags":{},"startTime":1779073948971,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":615961,"timestamp":265976710560,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779073948957,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":606610,"timestamp":265976724743,"id":71,"parentId":30,"tags":{},"startTime":1779073948971,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":621238,"timestamp":265976710177,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":644787,"timestamp":265976725672,"id":74,"parentId":34,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":659747,"timestamp":265976710802,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779073948957,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":656234,"timestamp":265976724100,"id":67,"parentId":26,"tags":{},"startTime":1779073948970,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":670869,"timestamp":265976709663,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":655221,"timestamp":265976725572,"id":73,"parentId":33,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":670159,"timestamp":265976710685,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779073948957,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":660656,"timestamp":265976725723,"id":76,"parentId":36,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":675019,"timestamp":265976711408,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":662471,"timestamp":265976725703,"id":75,"parentId":35,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":677287,"timestamp":265976710936,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779073948957,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":666009,"timestamp":265976725748,"id":77,"parentId":37,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":680232,"timestamp":265976711579,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":666743,"timestamp":265976725773,"id":79,"parentId":39,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":680757,"timestamp":265976711802,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":680438,"timestamp":265976724607,"id":70,"parentId":29,"tags":{},"startTime":1779073948971,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":695061,"timestamp":265976710032,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":679465,"timestamp":265976725784,"id":80,"parentId":40,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":693380,"timestamp":265976711898,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":691606,"timestamp":265976725793,"id":81,"parentId":42,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":705199,"timestamp":265976712274,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":691810,"timestamp":265976725815,"id":83,"parentId":45,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":704828,"timestamp":265976712829,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":691973,"timestamp":265976725804,"id":82,"parentId":44,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":705103,"timestamp":265976712700,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":692169,"timestamp":265976725760,"id":78,"parentId":38,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":706264,"timestamp":265976711707,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":696134,"timestamp":265976725836,"id":85,"parentId":47,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":708980,"timestamp":265976713061,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":696373,"timestamp":265976725826,"id":84,"parentId":46,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":709295,"timestamp":265976712941,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":700320,"timestamp":265976725872,"id":86,"parentId":48,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":711152,"timestamp":265976715084,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779073948961,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":704243,"timestamp":265976725897,"id":88,"parentId":50,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":714889,"timestamp":265976715302,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":702956,"timestamp":265976729525,"id":90,"parentId":24,"tags":{},"startTime":1779073948976,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":725416,"timestamp":265976707109,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779073948953,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":702634,"timestamp":265976730667,"id":91,"parentId":31,"tags":{},"startTime":1779073948977,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":723056,"timestamp":265976710291,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779073948957,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":711582,"timestamp":265976725923,"id":89,"parentId":51,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":722196,"timestamp":265976715360,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":706130,"timestamp":265976732801,"id":93,"parentId":43,"tags":{},"startTime":1779073948979,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":726577,"timestamp":265976712399,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779073948959,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":714367,"timestamp":265976725887,"id":87,"parentId":49,"tags":{},"startTime":1779073948972,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":725063,"timestamp":265976715231,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":711698,"timestamp":265976731498,"id":92,"parentId":41,"tags":{},"startTime":1779073948978,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":731218,"timestamp":265976712020,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779073948958,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":727481,"timestamp":265976722830,"id":64,"parentId":21,"tags":{},"startTime":1779073948969,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":745436,"timestamp":265976704922,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779073948951,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":721539,"timestamp":265976736189,"id":98,"parentId":55,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":741786,"timestamp":265976715985,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":736746,"timestamp":265976736202,"id":99,"parentId":56,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":756829,"timestamp":265976716195,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":754923,"timestamp":265976724243,"id":68,"parentId":27,"tags":{},"startTime":1779073948971,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":769450,"timestamp":265976709768,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":746125,"timestamp":265976736211,"id":100,"parentId":58,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":765328,"timestamp":265976717053,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779073948963,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":755497,"timestamp":265976736344,"id":102,"parentId":61,"tags":{},"startTime":1779073948983,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":774049,"timestamp":265976717872,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779073948964,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":764109,"timestamp":265976736121,"id":94,"parentId":23,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":793433,"timestamp":265976706844,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779073948953,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":768582,"timestamp":265976736175,"id":97,"parentId":54,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":790891,"timestamp":265976715842,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":770779,"timestamp":265976736162,"id":96,"parentId":53,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":791237,"timestamp":265976715744,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":772847,"timestamp":265976736367,"id":104,"parentId":63,"tags":{},"startTime":1779073948983,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":791034,"timestamp":265976718225,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779073948964,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":758073,"timestamp":265976752628,"id":105,"parentId":57,"tags":{},"startTime":1779073948999,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":794273,"timestamp":265976716466,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779073948963,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":776444,"timestamp":265976736150,"id":95,"parentId":52,"tags":{},"startTime":1779073948982,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":796989,"timestamp":265976715645,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779073948962,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":778456,"timestamp":265976736354,"id":103,"parentId":62,"tags":{},"startTime":1779073948983,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":796789,"timestamp":265976718065,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779073948964,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":751703,"timestamp":265976763237,"id":106,"parentId":60,"tags":{},"startTime":1779073949010,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":797523,"timestamp":265976717441,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779073948964,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":817169,"timestamp":265976723899,"id":66,"parentId":25,"tags":{},"startTime":1779073948970,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":831639,"timestamp":265976709505,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779073948956,"traceId":"a9924b27add0caf4"},{"name":"is-page-static","duration":809458,"timestamp":265976736324,"id":101,"parentId":59,"tags":{},"startTime":1779073948983,"traceId":"a9924b27add0caf4"},{"name":"check-page","duration":828570,"timestamp":265976717254,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779073948964,"traceId":"a9924b27add0caf4"},{"name":"static-check","duration":844309,"timestamp":265976701549,"id":19,"parentId":1,"tags":{},"startTime":1779073948948,"traceId":"a9924b27add0caf4"}]
2
+ [{"name":"write-routes-manifest","duration":536,"timestamp":265977557875,"id":108,"parentId":1,"tags":{},"startTime":1779073949804,"traceId":"a9924b27add0caf4"},{"name":"load-dotenv","duration":54,"timestamp":265977569025,"id":111,"parentId":110,"tags":{},"startTime":1779073949815,"traceId":"a9924b27add0caf4"},{"name":"run-export-path-map","duration":526,"timestamp":265977572190,"id":112,"parentId":110,"tags":{},"startTime":1779073949818,"traceId":"a9924b27add0caf4"},{"name":"next-export","duration":640457,"timestamp":265977567810,"id":110,"parentId":1,"tags":{},"startTime":1779073949814,"traceId":"a9924b27add0caf4"},{"name":"move-exported-app-not-found-","duration":594,"timestamp":265978212689,"id":113,"parentId":109,"tags":{},"startTime":1779073950459,"traceId":"a9924b27add0caf4"},{"name":"move-exported-app-global-error-","duration":459,"timestamp":265978213413,"id":114,"parentId":109,"tags":{},"startTime":1779073950460,"traceId":"a9924b27add0caf4"},{"name":"static-generation","duration":654185,"timestamp":265977562122,"id":109,"parentId":1,"tags":{},"startTime":1779073949808,"traceId":"a9924b27add0caf4"},{"name":"write-routes-manifest","duration":520,"timestamp":265978216538,"id":115,"parentId":1,"tags":{},"startTime":1779073950463,"traceId":"a9924b27add0caf4"},{"name":"print-tree-view","duration":4485,"timestamp":265978230843,"id":116,"parentId":1,"tags":{},"startTime":1779073950477,"traceId":"a9924b27add0caf4"},{"name":"write-route-bundle-stats","duration":14424,"timestamp":265978235358,"id":117,"parentId":1,"tags":{},"startTime":1779073950482,"traceId":"a9924b27add0caf4"},{"name":"telemetry-flush","duration":39887,"timestamp":265978249810,"id":118,"parentId":1,"tags":{},"startTime":1779073950496,"traceId":"a9924b27add0caf4"},{"name":"next-build","duration":18425376,"timestamp":265959864354,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779073932111,"traceId":"a9924b27add0caf4"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":7070178,"timestamp":265176179785,"id":14,"parentId":1,"tags":{},"startTime":1779073148426,"traceId":"c717f5d08279825a"},{"name":"turbopack-build-events","duration":104,"timestamp":265176483730,"id":15,"parentId":1,"tags":{},"startTime":1779073148730,"traceId":"c717f5d08279825a"},{"name":"run-typescript","duration":10565576,"timestamp":265183288221,"id":16,"parentId":1,"tags":{},"startTime":1779073155535,"traceId":"c717f5d08279825a"},{"name":"static-check","duration":830759,"timestamp":265194021296,"id":19,"parentId":1,"tags":{},"startTime":1779073166268,"traceId":"c717f5d08279825a"},{"name":"static-generation","duration":653011,"timestamp":265194866489,"id":109,"parentId":1,"tags":{},"startTime":1779073167113,"traceId":"c717f5d08279825a"},{"name":"telemetry-flush","duration":31829,"timestamp":265195555498,"id":118,"parentId":1,"tags":{},"startTime":1779073167802,"traceId":"c717f5d08279825a"},{"name":"next-build","duration":19693389,"timestamp":265175893964,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779073148140,"traceId":"c717f5d08279825a"}]
1
+ [{"name":"run-turbopack","duration":6207393,"timestamp":265960137965,"id":14,"parentId":1,"tags":{},"startTime":1779073932384,"traceId":"a9924b27add0caf4"},{"name":"turbopack-build-events","duration":91,"timestamp":265960453308,"id":15,"parentId":1,"tags":{},"startTime":1779073932700,"traceId":"a9924b27add0caf4"},{"name":"run-typescript","duration":10193190,"timestamp":265966354801,"id":16,"parentId":1,"tags":{},"startTime":1779073938601,"traceId":"a9924b27add0caf4"},{"name":"static-check","duration":844309,"timestamp":265976701549,"id":19,"parentId":1,"tags":{},"startTime":1779073948948,"traceId":"a9924b27add0caf4"},{"name":"static-generation","duration":654185,"timestamp":265977562122,"id":109,"parentId":1,"tags":{},"startTime":1779073949808,"traceId":"a9924b27add0caf4"},{"name":"telemetry-flush","duration":39887,"timestamp":265978249810,"id":118,"parentId":1,"tags":{},"startTime":1779073950496,"traceId":"a9924b27add0caf4"},{"name":"next-build","duration":18425376,"timestamp":265959864354,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779073932111,"traceId":"a9924b27add0caf4"}]
@@ -11328,6 +11328,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
11328
11328
  }
11329
11329
  data-node-label-card-chat-target={chatAlias === session.alias ? 'true' : 'false'}
11330
11330
  data-node-label-card-brightness={!reducedMotion && (hoveredAlias === session.alias || chatAlias === session.alias) ? '1.15' : '1'}
11331
+ data-node-label-card-halo-layers={!reducedMotion && (hoveredAlias === session.alias || chatAlias === session.alias) ? '2' : '0'}
11331
11332
  style={{
11332
11333
  /* R613 — per-node label card stacks brightness
11333
11334
  (1.15) onto R142's hover drop-shadow. Same
@@ -11388,10 +11389,33 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
11388
11389
  R618 card (lift + tint + glow + brightness)
11389
11390
  R616 alias text (brighter)
11390
11391
  R617 sub-text (brighter) */
11392
+ /* R694 — per-node label card backdrop joins the
11393
+ multi-layer halo family on the hover/chat
11394
+ branch. Pre-R694 hover/chat filter chain was
11395
+ `drop-shadow(0 Ypx Nblur elevation) brightness
11396
+ (1.15)` — vertical elevation + paint lift,
11397
+ no radial halo. R694 prepends 2-layer radial
11398
+ drop-shadow at pal.legendAccent tint with
11399
+ 3+6 stride and alpha 80/40 — radial halo
11400
+ echoes the R217 hover-stroke (pal.legendAccent)
11401
+ outward in soft glow. Sibling pattern to R693
11402
+ hover-detail card (same panel-tier 3+6
11403
+ stride, same pal.legendAccent tint).
11404
+ Rest branch unchanged — only the hover/chat
11405
+ branch gets the radial halo so the rest state
11406
+ stays at minimal ground shadow.
11407
+ Full hover/chat filter chain (5-layer):
11408
+ drop-shadow(0 0 3px ${pal.legendAccent}80) near radial
11409
+ drop-shadow(0 0 6px ${pal.legendAccent}40) far radial
11410
+ drop-shadow(0 3-4px Nblur elevation) vertical lift
11411
+ brightness(1.15) paint lift
11412
+ 50th anchor in multi-layer halo family —
11413
+ first per-node-card anchor. data-node-label-
11414
+ card-halo-layers attr exposes the gate. */
11391
11415
  filter: !reducedMotion && (hoveredAlias === session.alias || chatAlias === session.alias)
11392
11416
  ? (isLight
11393
- ? 'drop-shadow(0 3px 8px rgba(15,23,42,0.20)) brightness(1.15)'
11394
- : 'drop-shadow(0 4px 12px rgba(0,0,0,0.60)) brightness(1.15)')
11417
+ ? `drop-shadow(0 0 3px ${pal.legendAccent}80) drop-shadow(0 0 6px ${pal.legendAccent}40) drop-shadow(0 3px 8px rgba(15,23,42,0.20)) brightness(1.15)`
11418
+ : `drop-shadow(0 0 3px ${pal.legendAccent}80) drop-shadow(0 0 6px ${pal.legendAccent}40) drop-shadow(0 4px 12px rgba(0,0,0,0.60)) brightness(1.15)`)
11395
11419
  : (isLight
11396
11420
  ? 'drop-shadow(0 1px 2px rgba(15,23,42,0.08))'
11397
11421
  : 'drop-shadow(0 1px 2px rgba(0,0,0,0.30))'),
@@ -11865,6 +11889,27 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
11865
11889
  rx attr exposes the resolved value for tests.
11866
11890
  R348 drop-shadow + stroke + R387 opacity all
11867
11891
  preserved. */}
11892
+ {/* R693 — hover-detail card backdrop rect joins the
11893
+ multi-layer halo family. Pre-R693 the rect had
11894
+ only a vertical elevation shadow (`drop-shadow(0
11895
+ 4px 12px ...)`) — same vocabulary as the panel-
11896
+ pair rects. R693 prepends 2-layer drop-shadow at
11897
+ pal.legendAccent tint with 3+6 stride, alpha
11898
+ 80/40 — radial halo echoes the existing cyan
11899
+ stroke outward in soft glow. Coherent with R660
11900
+ panel titles + R669 panel counts (same panel-
11901
+ tier scale + halo vocabulary).
11902
+ Final filter chain (panel-tier 4-layer):
11903
+ drop-shadow(0 0 3px ${pal.legendAccent}80) near halo
11904
+ drop-shadow(0 0 6px ${pal.legendAccent}40) far halo
11905
+ drop-shadow(0 4px 12px elevation rgba()) vertical lift
11906
+ The card only renders when hovered (gated on
11907
+ hoveredAlias === session.alias) — halo is
11908
+ transient, focused identity signal. 49th anchor
11909
+ in multi-layer halo family — first hover-detail
11910
+ card anchor.
11911
+ data-topo-hover-detail-halo-layers attr exposes
11912
+ the gate for tests. */}
11868
11913
  <rect
11869
11914
  x="0" y="0" width={detailW} height={detailH} rx="10"
11870
11915
  fill={pal.labelBox.fill}
@@ -11872,7 +11917,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
11872
11917
  opacity={isLight ? 0.98 : 0.97}
11873
11918
  data-topo-hover-detail-opacity={isLight ? 0.98 : 0.97}
11874
11919
  data-topo-hover-detail-rx="10"
11875
- style={{ filter: isLight ? 'drop-shadow(0 4px 12px rgba(15,23,42,0.16))' : 'drop-shadow(0 4px 12px rgba(0,0,0,0.6))' }}
11920
+ data-topo-hover-detail-halo-layers="2"
11921
+ style={{
11922
+ filter: isLight
11923
+ ? `drop-shadow(0 0 3px ${pal.legendAccent}80) drop-shadow(0 0 6px ${pal.legendAccent}40) drop-shadow(0 4px 12px rgba(15,23,42,0.16))`
11924
+ : `drop-shadow(0 0 3px ${pal.legendAccent}80) drop-shadow(0 0 6px ${pal.legendAccent}40) drop-shadow(0 4px 12px rgba(0,0,0,0.6))`,
11925
+ }}
11876
11926
  />
11877
11927
  <text x="10" y="16" fontSize="9" fontFamily="monospace" fill={pal.legendAccent} fontWeight="700">
11878
11928
  {v.id !== 'unknown' ? v.label : '—'}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.206",
3
+ "version": "0.5.3-preview.208",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,76 @@
1
+ /* Round 693 — hover-detail card backdrop rect joins the multi-layer
2
+ * halo family. Pre-R693 only vertical elevation shadow (drop-shadow
3
+ * 0 4px 12px). R693 prepends 2-layer radial drop-shadow at pal.
4
+ * legendAccent (3+6 stride, alpha 80/40) — radial halo echoes the
5
+ * existing cyan stroke outward in soft glow. The card only renders
6
+ * when hovered (gated on hoveredAlias === session.alias). 49th anchor.
7
+ *
8
+ * Source assertions:
9
+ * - light filter: drop-shadow(3px pal.legendAccent 80) + (6px 40)
10
+ * + vertical elevation
11
+ * - cyber filter: same structure with cyber elevation alpha
12
+ * - data-topo-hover-detail-halo-layers="2"
13
+ *
14
+ * Runtime assertions: card not visible at rest (gated on hover) —
15
+ * source-level verification is sufficient. Just confirm canvas renders.
16
+ */
17
+ import { chromium } from 'playwright';
18
+ import { readFileSync } from 'node:fs';
19
+
20
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
21
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
22
+
23
+ const browser = await chromium.launch({ headless: true });
24
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
25
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
26
+ await ctx.addInitScript(() => {
27
+ try {
28
+ localStorage.setItem('anet-theme', 'cyber');
29
+ localStorage.setItem('anet-topo-layout', 'ring');
30
+ sessionStorage.setItem('anet_v3_auth', '1');
31
+ } catch {}
32
+ });
33
+ await ctx.route('**/api/hub/status*', async (route) => {
34
+ const r = await route.fetch();
35
+ const b = await r.json();
36
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
37
+ const mk = (alias) => ({
38
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
39
+ network_id: nid, project_dir: null,
40
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
41
+ });
42
+ await route.fulfill({ response: r, json: { ...b, sessions: [
43
+ mk('a·1'), mk('a·2'),
44
+ ] } });
45
+ });
46
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
47
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
48
+ const page = await ctx.newPage();
49
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
50
+ await page.waitForSelector('[data-topo-section-title]', { timeout: 15000, state: 'attached' });
51
+ await page.waitForTimeout(300);
52
+
53
+ const runtimeState = await page.evaluate(() => {
54
+ // Card not visible at rest. Just verify the page rendered.
55
+ return {
56
+ canvas_rendered: !!document.querySelector('[data-topo-section-title]'),
57
+ };
58
+ });
59
+
60
+ await browser.close();
61
+
62
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
63
+ const sourceLightFilter = /isLight\s*\?\s*`drop-shadow\(0 0 3px \$\{pal\.legendAccent\}80\) drop-shadow\(0 0 6px \$\{pal\.legendAccent\}40\) drop-shadow\(0 4px 12px rgba\(15,23,42,0\.16\)\)`/.test(src);
64
+ const sourceCyberFilter = /:\s*`drop-shadow\(0 0 3px \$\{pal\.legendAccent\}80\) drop-shadow\(0 0 6px \$\{pal\.legendAccent\}40\) drop-shadow\(0 4px 12px rgba\(0,0,0,0\.6\)\)`/.test(src);
65
+ const sourceHaloAttr = /data-topo-hover-detail-halo-layers="2"/.test(src);
66
+
67
+ const results = {
68
+ canvas_rendered: runtimeState.canvas_rendered,
69
+ source_light_filter: sourceLightFilter,
70
+ source_cyber_filter: sourceCyberFilter,
71
+ source_halo_attr: sourceHaloAttr,
72
+ };
73
+ const ok = Object.values(results).every(Boolean);
74
+ console.log(`${ok ? '✅' : '❌'} R693 hover-detail card multi-layer halo (panel-tier 4-layer filter chain):`,
75
+ JSON.stringify(results, null, 2));
76
+ process.exit(ok ? 0 : 1);