@sleep2agi/agent-network-dashboard 0.5.3-preview.12 → 0.5.3-preview.14

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/{0.yvha74oimu5.js → 0ckoz2evm~lvq.js} +1 -1
  132. package/.next/static/chunks/{0brgpp3pfwrqa.js → 0qf8ynb6zk1~~.js} +1 -1
  133. package/.next/static/chunks/{10x1zyfvy0f.8.js → 10s69w5k6v8cr.js} +1 -1
  134. package/.next/static/chunks/{0f9~w1b6yn1dj.js → 16p3.8p0yi.1p.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +72 -1
  138. package/package.json +1 -1
  139. package/scripts/topo-alias-glow-test.mjs +121 -0
  140. package/scripts/topo-avatar-brightness-test.mjs +116 -0
  141. /package/.next/static/{U1wWdzjMSApioHvZY8ULS → Q8lkSZiF_OETF8cugX0IW}/_buildManifest.js +0 -0
  142. /package/.next/static/{U1wWdzjMSApioHvZY8ULS → Q8lkSZiF_OETF8cugX0IW}/_clientMiddlewareManifest.js +0 -0
  143. /package/.next/static/{U1wWdzjMSApioHvZY8ULS → Q8lkSZiF_OETF8cugX0IW}/_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.12"],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.14"],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.12"],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.14"],70286)}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":366,"timestamp":191819503244,"id":4,"parentId":1,"tags":{},"startTime":1778999791750,"traceId":"8d9bf61714df8075"},{"name":"load-custom-routes","duration":1437,"timestamp":191819503846,"id":5,"parentId":1,"tags":{},"startTime":1778999791750,"traceId":"8d9bf61714df8075"},{"name":"create-dist-dir","duration":1631,"timestamp":191819505477,"id":6,"parentId":1,"tags":{},"startTime":1778999791752,"traceId":"8d9bf61714df8075"},{"name":"clean","duration":40497,"timestamp":191819508721,"id":7,"parentId":1,"tags":{},"startTime":1778999791755,"traceId":"8d9bf61714df8075"},{"name":"discover-routes","duration":28871,"timestamp":191819648579,"id":8,"parentId":1,"tags":{},"startTime":1778999791895,"traceId":"8d9bf61714df8075"},{"name":"create-root-mapping","duration":151,"timestamp":191819677539,"id":9,"parentId":1,"tags":{},"startTime":1778999791924,"traceId":"8d9bf61714df8075"},{"name":"generate-route-types","duration":27146,"timestamp":191819680166,"id":10,"parentId":1,"tags":{},"startTime":1778999791926,"traceId":"8d9bf61714df8075"},{"name":"public-dir-conflict-check","duration":129,"timestamp":191819707414,"id":11,"parentId":1,"tags":{},"startTime":1778999791954,"traceId":"8d9bf61714df8075"},{"name":"generate-routes-manifest","duration":4975,"timestamp":191819707664,"id":12,"parentId":1,"tags":{},"startTime":1778999791954,"traceId":"8d9bf61714df8075"},{"name":"run-turbopack","duration":7581746,"timestamp":191819728852,"id":14,"parentId":1,"tags":{},"startTime":1778999791975,"traceId":"8d9bf61714df8075"},{"name":"turbopack-build-events","duration":77,"timestamp":191820094165,"id":15,"parentId":1,"tags":{},"startTime":1778999792340,"traceId":"8d9bf61714df8075"},{"name":"run-typescript","duration":11160716,"timestamp":191827320119,"id":16,"parentId":1,"tags":{},"startTime":1778999799566,"traceId":"8d9bf61714df8075"},{"name":"generate-required-server-files","duration":3067,"timestamp":191838482237,"id":18,"parentId":1,"tags":{},"startTime":1778999810729,"traceId":"8d9bf61714df8075"},{"name":"check-static-error-page","duration":18440,"timestamp":191838765659,"id":20,"parentId":19,"tags":{},"startTime":1778999811012,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":611033,"timestamp":191838789594,"id":65,"parentId":22,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":631698,"timestamp":191838769133,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778999811015,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":724368,"timestamp":191838789764,"id":67,"parentId":26,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":741491,"timestamp":191838772747,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778999811019,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":748492,"timestamp":191838790203,"id":70,"parentId":29,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":765560,"timestamp":191838773220,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778999811019,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":760117,"timestamp":191838789844,"id":68,"parentId":27,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":777159,"timestamp":191838772898,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778999811019,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":774805,"timestamp":191838790455,"id":72,"parentId":32,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":791266,"timestamp":191838774081,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778999811020,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":790213,"timestamp":191838789905,"id":69,"parentId":28,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":807113,"timestamp":191838773082,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778999811019,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":792734,"timestamp":191838790762,"id":75,"parentId":35,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":809045,"timestamp":191838774518,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778999811021,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":799135,"timestamp":191838790636,"id":73,"parentId":33,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":815598,"timestamp":191838774239,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778999811021,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":802087,"timestamp":191838790833,"id":77,"parentId":37,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":817567,"timestamp":191838775416,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778999811022,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":807106,"timestamp":191838790866,"id":79,"parentId":39,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":822299,"timestamp":191838775736,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778999811022,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":811766,"timestamp":191838790880,"id":80,"parentId":40,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":826837,"timestamp":191838775855,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778999811022,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":812913,"timestamp":191838790727,"id":74,"parentId":34,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":829312,"timestamp":191838774369,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778999811021,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":819499,"timestamp":191838790908,"id":82,"parentId":44,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":833723,"timestamp":191838776731,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":822585,"timestamp":191838790894,"id":81,"parentId":42,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":837243,"timestamp":191838776297,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":830273,"timestamp":191838790934,"id":84,"parentId":46,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":844230,"timestamp":191838777026,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":830624,"timestamp":191838790784,"id":76,"parentId":36,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":846254,"timestamp":191838775186,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778999811021,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":836495,"timestamp":191838790948,"id":85,"parentId":47,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":850349,"timestamp":191838777150,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":839495,"timestamp":191838790958,"id":86,"parentId":48,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":850910,"timestamp":191838779596,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778999811026,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":840521,"timestamp":191838790855,"id":78,"parentId":38,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":855804,"timestamp":191838775615,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778999811022,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":843108,"timestamp":191838790970,"id":87,"parentId":49,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":854362,"timestamp":191838779762,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778999811026,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":845186,"timestamp":191838790995,"id":89,"parentId":51,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":856251,"timestamp":191838779976,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778999811026,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":845766,"timestamp":191838790983,"id":88,"parentId":50,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":856918,"timestamp":191838779881,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778999811026,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":843199,"timestamp":191838795108,"id":90,"parentId":24,"tags":{},"startTime":1778999811041,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":868669,"timestamp":191838769682,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778999811016,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":848852,"timestamp":191838790919,"id":83,"parentId":45,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":862943,"timestamp":191838776879,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":846384,"timestamp":191838796300,"id":91,"parentId":31,"tags":{},"startTime":1778999811043,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":868997,"timestamp":191838773728,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778999811020,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":847300,"timestamp":191838798519,"id":93,"parentId":43,"tags":{},"startTime":1778999811045,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":869790,"timestamp":191838776437,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778999811023,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":861961,"timestamp":191838789694,"id":66,"parentId":25,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":879147,"timestamp":191838772553,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778999811019,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":867424,"timestamp":191838790389,"id":71,"parentId":30,"tags":{},"startTime":1778999811037,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":884291,"timestamp":191838773567,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778999811020,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":875356,"timestamp":191838797228,"id":92,"parentId":41,"tags":{},"startTime":1778999811044,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":896685,"timestamp":191838775956,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778999811022,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":907766,"timestamp":191838800837,"id":96,"parentId":53,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":927984,"timestamp":191838780696,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778999811027,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":928776,"timestamp":191838789289,"id":64,"parentId":21,"tags":{},"startTime":1778999811036,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":950709,"timestamp":191838767425,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778999811014,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":917464,"timestamp":191838800886,"id":100,"parentId":58,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":936032,"timestamp":191838782361,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778999811029,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":928170,"timestamp":191838801026,"id":101,"parentId":59,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":946697,"timestamp":191838782579,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778999811029,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":937031,"timestamp":191838800827,"id":95,"parentId":52,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":957477,"timestamp":191838780433,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778999811027,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":937018,"timestamp":191838801047,"id":102,"parentId":61,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":954629,"timestamp":191838783474,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778999811030,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":943296,"timestamp":191838800794,"id":94,"parentId":23,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":974708,"timestamp":191838769435,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778999811016,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":942215,"timestamp":191838808780,"id":105,"parentId":60,"tags":{},"startTime":1778999811055,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":968295,"timestamp":191838782765,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778999811029,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":912228,"timestamp":191838840111,"id":106,"parentId":57,"tags":{},"startTime":1778999811086,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":970662,"timestamp":191838781717,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778999811028,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":951388,"timestamp":191838801070,"id":104,"parentId":63,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":968663,"timestamp":191838783820,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778999811030,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":955174,"timestamp":191838800864,"id":98,"parentId":55,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":974948,"timestamp":191838781139,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778999811027,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":960372,"timestamp":191838800877,"id":99,"parentId":56,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":979916,"timestamp":191838781379,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778999811028,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":970832,"timestamp":191838801057,"id":103,"parentId":62,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":988304,"timestamp":191838783649,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778999811030,"traceId":"8d9bf61714df8075"},{"name":"is-page-static","duration":985428,"timestamp":191838800851,"id":97,"parentId":54,"tags":{},"startTime":1778999811047,"traceId":"8d9bf61714df8075"},{"name":"check-page","duration":1005450,"timestamp":191838780892,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778999811027,"traceId":"8d9bf61714df8075"},{"name":"static-check","duration":1021905,"timestamp":191838764476,"id":19,"parentId":1,"tags":{},"startTime":1778999811011,"traceId":"8d9bf61714df8075"}]
2
- [{"name":"write-routes-manifest","duration":1063,"timestamp":191839806296,"id":108,"parentId":1,"tags":{},"startTime":1778999812053,"traceId":"8d9bf61714df8075"},{"name":"load-dotenv","duration":76,"timestamp":191839827373,"id":111,"parentId":110,"tags":{},"startTime":1778999812074,"traceId":"8d9bf61714df8075"},{"name":"run-export-path-map","duration":812,"timestamp":191839840230,"id":112,"parentId":110,"tags":{},"startTime":1778999812087,"traceId":"8d9bf61714df8075"},{"name":"next-export","duration":725506,"timestamp":191839822237,"id":110,"parentId":1,"tags":{},"startTime":1778999812069,"traceId":"8d9bf61714df8075"},{"name":"move-exported-app-not-found-","duration":619,"timestamp":191840552063,"id":113,"parentId":109,"tags":{},"startTime":1778999812798,"traceId":"8d9bf61714df8075"},{"name":"move-exported-app-global-error-","duration":505,"timestamp":191840552781,"id":114,"parentId":109,"tags":{},"startTime":1778999812799,"traceId":"8d9bf61714df8075"},{"name":"static-generation","duration":742658,"timestamp":191839812712,"id":109,"parentId":1,"tags":{},"startTime":1778999812059,"traceId":"8d9bf61714df8075"},{"name":"write-routes-manifest","duration":465,"timestamp":191840555608,"id":115,"parentId":1,"tags":{},"startTime":1778999812802,"traceId":"8d9bf61714df8075"},{"name":"print-tree-view","duration":4511,"timestamp":191840574563,"id":116,"parentId":1,"tags":{},"startTime":1778999812821,"traceId":"8d9bf61714df8075"},{"name":"write-route-bundle-stats","duration":15112,"timestamp":191840579105,"id":117,"parentId":1,"tags":{},"startTime":1778999812825,"traceId":"8d9bf61714df8075"},{"name":"telemetry-flush","duration":22777,"timestamp":191840594255,"id":118,"parentId":1,"tags":{},"startTime":1778999812841,"traceId":"8d9bf61714df8075"},{"name":"next-build","duration":21177507,"timestamp":191819439582,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778999791686,"traceId":"8d9bf61714df8075"}]
1
+ [{"name":"generate-buildid","duration":360,"timestamp":192704705811,"id":4,"parentId":1,"tags":{},"startTime":1779000676952,"traceId":"f28285255a4110a9"},{"name":"load-custom-routes","duration":799,"timestamp":192704706371,"id":5,"parentId":1,"tags":{},"startTime":1779000676953,"traceId":"f28285255a4110a9"},{"name":"create-dist-dir","duration":908,"timestamp":192704707236,"id":6,"parentId":1,"tags":{},"startTime":1779000676954,"traceId":"f28285255a4110a9"},{"name":"clean","duration":37066,"timestamp":192704709130,"id":7,"parentId":1,"tags":{},"startTime":1779000676955,"traceId":"f28285255a4110a9"},{"name":"discover-routes","duration":50844,"timestamp":192704855548,"id":8,"parentId":1,"tags":{},"startTime":1779000677102,"traceId":"f28285255a4110a9"},{"name":"create-root-mapping","duration":165,"timestamp":192704906475,"id":9,"parentId":1,"tags":{},"startTime":1779000677153,"traceId":"f28285255a4110a9"},{"name":"generate-route-types","duration":42512,"timestamp":192704914215,"id":10,"parentId":1,"tags":{},"startTime":1779000677160,"traceId":"f28285255a4110a9"},{"name":"public-dir-conflict-check","duration":130,"timestamp":192704956867,"id":11,"parentId":1,"tags":{},"startTime":1779000677203,"traceId":"f28285255a4110a9"},{"name":"generate-routes-manifest","duration":7516,"timestamp":192704957476,"id":12,"parentId":1,"tags":{},"startTime":1779000677204,"traceId":"f28285255a4110a9"},{"name":"run-turbopack","duration":9755327,"timestamp":192704974739,"id":14,"parentId":1,"tags":{},"startTime":1779000677221,"traceId":"f28285255a4110a9"},{"name":"turbopack-build-events","duration":113,"timestamp":192705398696,"id":15,"parentId":1,"tags":{},"startTime":1779000677645,"traceId":"f28285255a4110a9"},{"name":"run-typescript","duration":11768263,"timestamp":192714739515,"id":16,"parentId":1,"tags":{},"startTime":1779000686986,"traceId":"f28285255a4110a9"},{"name":"generate-required-server-files","duration":4346,"timestamp":192726509492,"id":18,"parentId":1,"tags":{},"startTime":1779000698756,"traceId":"f28285255a4110a9"},{"name":"check-static-error-page","duration":17417,"timestamp":192726772512,"id":20,"parentId":19,"tags":{},"startTime":1779000699019,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":523009,"timestamp":192726794593,"id":65,"parentId":22,"tags":{},"startTime":1779000699041,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":542278,"timestamp":192726775502,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779000699022,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":654081,"timestamp":192726801445,"id":71,"parentId":30,"tags":{},"startTime":1779000699048,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":675078,"timestamp":192726780542,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":693563,"timestamp":192726801512,"id":72,"parentId":32,"tags":{},"startTime":1779000699048,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":714196,"timestamp":192726780963,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":725367,"timestamp":192726801692,"id":73,"parentId":33,"tags":{},"startTime":1779000699048,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":746032,"timestamp":192726781110,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":731349,"timestamp":192726801779,"id":74,"parentId":34,"tags":{},"startTime":1779000699048,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":751994,"timestamp":192726781217,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":733300,"timestamp":192726804104,"id":75,"parentId":35,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":756055,"timestamp":192726781426,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779000699028,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":741552,"timestamp":192726804134,"id":76,"parentId":36,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":763897,"timestamp":192726781926,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779000699028,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":744479,"timestamp":192726804167,"id":77,"parentId":37,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":766542,"timestamp":192726782159,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779000699028,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":761707,"timestamp":192726804185,"id":78,"parentId":38,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":783666,"timestamp":192726782299,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":768322,"timestamp":192726800849,"id":69,"parentId":28,"tags":{},"startTime":1779000699047,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":788909,"timestamp":192726780320,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":765938,"timestamp":192726804194,"id":79,"parentId":39,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":787774,"timestamp":192726782408,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":791368,"timestamp":192726794067,"id":64,"parentId":21,"tags":{},"startTime":1779000699040,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":811382,"timestamp":192726774108,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779000699020,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":796862,"timestamp":192726804208,"id":80,"parentId":40,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":818633,"timestamp":192726782503,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":813126,"timestamp":192726794750,"id":66,"parentId":25,"tags":{},"startTime":1779000699041,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":828019,"timestamp":192726779920,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779000699026,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":807467,"timestamp":192726801271,"id":70,"parentId":29,"tags":{},"startTime":1779000699048,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":828381,"timestamp":192726780421,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":813333,"timestamp":192726804221,"id":81,"parentId":42,"tags":{},"startTime":1779000699050,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":834782,"timestamp":192726782854,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":813587,"timestamp":192726804259,"id":84,"parentId":46,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":834423,"timestamp":192726783477,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779000699030,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":817534,"timestamp":192726804273,"id":85,"parentId":47,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":838284,"timestamp":192726783573,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779000699030,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":821560,"timestamp":192726804282,"id":86,"parentId":48,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":840131,"timestamp":192726785759,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779000699032,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":848040,"timestamp":192726804245,"id":83,"parentId":45,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":868959,"timestamp":192726783397,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779000699030,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":848189,"timestamp":192726804295,"id":87,"parentId":49,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":866565,"timestamp":192726785951,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779000699032,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":848863,"timestamp":192726812762,"id":91,"parentId":31,"tags":{},"startTime":1779000699059,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":881053,"timestamp":192726780646,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779000699027,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":861890,"timestamp":192726804309,"id":88,"parentId":50,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":880166,"timestamp":192726786103,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779000699032,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":875154,"timestamp":192726804324,"id":89,"parentId":51,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":893338,"timestamp":192726786205,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779000699032,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":870516,"timestamp":192726809901,"id":90,"parentId":24,"tags":{},"startTime":1779000699056,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":904388,"timestamp":192726776086,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779000699022,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":886392,"timestamp":192726795024,"id":68,"parentId":27,"tags":{},"startTime":1779000699041,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":901251,"timestamp":192726780210,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779000699026,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":867292,"timestamp":192726814303,"id":92,"parentId":41,"tags":{},"startTime":1779000699061,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":899031,"timestamp":192726782599,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":898955,"timestamp":192726794887,"id":67,"parentId":26,"tags":{},"startTime":1779000699041,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":913798,"timestamp":192726780095,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779000699026,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":883364,"timestamp":192726818174,"id":93,"parentId":43,"tags":{},"startTime":1779000699064,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":918602,"timestamp":192726782987,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779000699029,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":925730,"timestamp":192726804235,"id":82,"parentId":44,"tags":{},"startTime":1779000699051,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":946778,"timestamp":192726783280,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779000699030,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":951997,"timestamp":192726824570,"id":99,"parentId":56,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":989164,"timestamp":192726787480,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779000699034,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":955569,"timestamp":192726824585,"id":100,"parentId":58,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":992805,"timestamp":192726788427,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779000699035,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":963379,"timestamp":192726824699,"id":101,"parentId":59,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":999503,"timestamp":192726788651,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779000699035,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":964381,"timestamp":192726824721,"id":102,"parentId":61,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":999805,"timestamp":192726789346,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779000699036,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":973525,"timestamp":192726824518,"id":95,"parentId":52,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1011479,"timestamp":192726786644,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779000699033,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":973526,"timestamp":192726824747,"id":104,"parentId":63,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1008649,"timestamp":192726789659,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779000699036,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":974789,"timestamp":192726824734,"id":103,"parentId":62,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1010058,"timestamp":192726789509,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779000699036,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":962919,"timestamp":192726842696,"id":105,"parentId":60,"tags":{},"startTime":1779000699089,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1016805,"timestamp":192726788855,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779000699035,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":923976,"timestamp":192726882190,"id":106,"parentId":57,"tags":{},"startTime":1779000699128,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1018475,"timestamp":192726787733,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779000699034,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":984092,"timestamp":192726824486,"id":94,"parentId":23,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1032814,"timestamp":192726775812,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779000699022,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":1003270,"timestamp":192726824556,"id":98,"parentId":55,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1040635,"timestamp":192726787258,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779000699034,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":1006810,"timestamp":192726824546,"id":97,"parentId":54,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1044376,"timestamp":192726787033,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779000699033,"traceId":"f28285255a4110a9"},{"name":"is-page-static","duration":1017788,"timestamp":192726824532,"id":96,"parentId":53,"tags":{},"startTime":1779000699071,"traceId":"f28285255a4110a9"},{"name":"check-page","duration":1055532,"timestamp":192726786849,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779000699033,"traceId":"f28285255a4110a9"},{"name":"static-check","duration":1071087,"timestamp":192726771349,"id":19,"parentId":1,"tags":{},"startTime":1779000699018,"traceId":"f28285255a4110a9"}]
2
+ [{"name":"write-routes-manifest","duration":853,"timestamp":192727852383,"id":108,"parentId":1,"tags":{},"startTime":1779000700099,"traceId":"f28285255a4110a9"},{"name":"load-dotenv","duration":52,"timestamp":192727867178,"id":111,"parentId":110,"tags":{},"startTime":1779000700113,"traceId":"f28285255a4110a9"},{"name":"run-export-path-map","duration":636,"timestamp":192727870254,"id":112,"parentId":110,"tags":{},"startTime":1779000700117,"traceId":"f28285255a4110a9"},{"name":"next-export","duration":679373,"timestamp":192727865759,"id":110,"parentId":1,"tags":{},"startTime":1779000700112,"traceId":"f28285255a4110a9"},{"name":"move-exported-app-not-found-","duration":538,"timestamp":192728548836,"id":113,"parentId":109,"tags":{},"startTime":1779000700795,"traceId":"f28285255a4110a9"},{"name":"move-exported-app-global-error-","duration":353,"timestamp":192728549465,"id":114,"parentId":109,"tags":{},"startTime":1779000700796,"traceId":"f28285255a4110a9"},{"name":"static-generation","duration":695013,"timestamp":192727857726,"id":109,"parentId":1,"tags":{},"startTime":1779000700104,"traceId":"f28285255a4110a9"},{"name":"write-routes-manifest","duration":472,"timestamp":192728552996,"id":115,"parentId":1,"tags":{},"startTime":1779000700799,"traceId":"f28285255a4110a9"},{"name":"print-tree-view","duration":4615,"timestamp":192728575075,"id":116,"parentId":1,"tags":{},"startTime":1779000700821,"traceId":"f28285255a4110a9"},{"name":"write-route-bundle-stats","duration":15303,"timestamp":192728579733,"id":117,"parentId":1,"tags":{},"startTime":1779000700826,"traceId":"f28285255a4110a9"},{"name":"telemetry-flush","duration":229657,"timestamp":192728595072,"id":118,"parentId":1,"tags":{},"startTime":1779000700841,"traceId":"f28285255a4110a9"},{"name":"next-build","duration":24175716,"timestamp":192704649063,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779000676895,"traceId":"f28285255a4110a9"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":7581746,"timestamp":191819728852,"id":14,"parentId":1,"tags":{},"startTime":1778999791975,"traceId":"8d9bf61714df8075"},{"name":"turbopack-build-events","duration":77,"timestamp":191820094165,"id":15,"parentId":1,"tags":{},"startTime":1778999792340,"traceId":"8d9bf61714df8075"},{"name":"run-typescript","duration":11160716,"timestamp":191827320119,"id":16,"parentId":1,"tags":{},"startTime":1778999799566,"traceId":"8d9bf61714df8075"},{"name":"static-check","duration":1021905,"timestamp":191838764476,"id":19,"parentId":1,"tags":{},"startTime":1778999811011,"traceId":"8d9bf61714df8075"},{"name":"static-generation","duration":742658,"timestamp":191839812712,"id":109,"parentId":1,"tags":{},"startTime":1778999812059,"traceId":"8d9bf61714df8075"},{"name":"telemetry-flush","duration":22777,"timestamp":191840594255,"id":118,"parentId":1,"tags":{},"startTime":1778999812841,"traceId":"8d9bf61714df8075"},{"name":"next-build","duration":21177507,"timestamp":191819439582,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778999791686,"traceId":"8d9bf61714df8075"}]
1
+ [{"name":"run-turbopack","duration":9755327,"timestamp":192704974739,"id":14,"parentId":1,"tags":{},"startTime":1779000677221,"traceId":"f28285255a4110a9"},{"name":"turbopack-build-events","duration":113,"timestamp":192705398696,"id":15,"parentId":1,"tags":{},"startTime":1779000677645,"traceId":"f28285255a4110a9"},{"name":"run-typescript","duration":11768263,"timestamp":192714739515,"id":16,"parentId":1,"tags":{},"startTime":1779000686986,"traceId":"f28285255a4110a9"},{"name":"static-check","duration":1071087,"timestamp":192726771349,"id":19,"parentId":1,"tags":{},"startTime":1779000699018,"traceId":"f28285255a4110a9"},{"name":"static-generation","duration":695013,"timestamp":192727857726,"id":109,"parentId":1,"tags":{},"startTime":1779000700104,"traceId":"f28285255a4110a9"},{"name":"telemetry-flush","duration":229657,"timestamp":192728595072,"id":118,"parentId":1,"tags":{},"startTime":1779000700841,"traceId":"f28285255a4110a9"},{"name":"next-build","duration":24175716,"timestamp":192704649063,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779000676895,"traceId":"f28285255a4110a9"}]
@@ -7643,6 +7643,30 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
7643
7643
  const internByAlias = /书生|书小生|intern/i.test(session.alias);
7644
7644
 
7645
7645
  if (isIntern || internByAlias || vendor.logo) {
7646
+ /* Round 501 / Loop — vendor avatar inside node circles
7647
+ gains a hover-gated brightness lift. Pre-R501 the
7648
+ avatar <image> was the only per-node surface with
7649
+ NO hover treatment: R26 lifted the card, R242 tinted
7650
+ the card stroke, R427 spread the alias letter-
7651
+ spacing, R500 added the alias drop-shadow, R208
7652
+ lifted the runtime badge ring, R443 thickened
7653
+ the badge icon stroke, R177 brightened the
7654
+ halo — but the most visually-prominent element
7655
+ (the vendor logo / 书生 coin centred in each node)
7656
+ stayed paint-static. R501 closes the per-node
7657
+ hover-affordance arc by adding a 15% brightness
7658
+ lift on hover.
7659
+ Implementation: CSS filter: brightness(1.15)
7660
+ when hoveredAlias === session.alias. Pure paint
7661
+ axis on the <image> element — no geometry change,
7662
+ no bbox shift. Modern-browser supported (Chrome 64+
7663
+ / FF 56+ / Safari 9.1+).
7664
+ Hits 节点视觉 theme. data-node-avatar-hovered
7665
+ attr surfaces the gate for tests.
7666
+ Gated on !reducedMotion as a courtesy (brightness
7667
+ transition < ~50ms still feels instant; the gate
7668
+ avoids the transition cycle for a11y users). */
7669
+ const isAvatarHovered = !reducedMotion && hoveredAlias === session.alias;
7646
7670
  return (
7647
7671
  <image
7648
7672
  href={vendor.logo ?? '/intern_avatar.png'}
@@ -7651,6 +7675,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
7651
7675
  width={size}
7652
7676
  height={size}
7653
7677
  preserveAspectRatio="xMidYMid meet"
7678
+ data-node-avatar={session.alias}
7679
+ data-node-avatar-hovered={isAvatarHovered ? 'true' : 'false'}
7680
+ style={{
7681
+ filter: isAvatarHovered ? 'brightness(1.15)' : undefined,
7682
+ transition: 'filter 200ms ease-out',
7683
+ }}
7654
7684
  />
7655
7685
  );
7656
7686
  }
@@ -8074,6 +8104,43 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
8074
8104
  R211 fill 300ms + R305 letter-spacing 200ms
8075
8105
  transition list preserved; only the
8076
8106
  conditional gets a middle case. */}
8107
+ {/* Round 500 / Loop — milestone round, opens
8108
+ per-node alias drop-shadow polish. Extends the
8109
+ R476-R481 drop-shadow visual-polish family to a
8110
+ 7th anchor: hovered alias text gains a soft
8111
+ status-coloured text-glow. Pre-R500 hover on
8112
+ a node triggered card-lift (R26 translateY) +
8113
+ card-stroke (R242 tint) + alias letter-spacing
8114
+ (R427 0.3px tier) but the alias TEXT itself had
8115
+ no paint-axis cue beyond fill (R211). R500 adds
8116
+ a drop-shadow on the text glyph itself, so the
8117
+ identity glyph itself lights up under attention
8118
+ — matching the R476 idiom (hub-digit emerald
8119
+ glow on hover) at the per-node identity scope.
8120
+ 2px blur radius at 50% alpha — subtler than the
8121
+ R476 hub-digit (3px at 60%) because the alias
8122
+ text is smaller and more numerous (1 per node)
8123
+ so an aggressive glow would multiply into
8124
+ visual noise. Status-coloured (status.text) so
8125
+ the glow inherits the node's working/idle/
8126
+ offline palette — green/cyan/gray respectively.
8127
+ Drop-shadow visual-polish family — 7 anchors:
8128
+ R476 hub digit hover-gated emerald
8129
+ R477 legend pin-ring pin-gated row.fill
8130
+ R478 recent-row pip fresh-gated cyan
8131
+ R479 group-label text pin-gated cyan
8132
+ R480 hot-lane edge hot-gated amber
8133
+ R481 zoom-state minimap zoom-gated cyan
8134
+ R500 node alias text hover-gated status.text ← this round
8135
+ Filter is paint-only; bbox unchanged; overlap-
8136
+ test invariants hold (R51 selector gated to
8137
+ g[data-node] descendants with strokeWidth
8138
+ sentinels; text element doesn't carry stroke).
8139
+ transition list extends to include 'filter
8140
+ 200ms ease-out' alongside the existing fill
8141
+ 300ms + letter-spacing 200ms tweens.
8142
+ data-node-alias-glow attr surfaces the hover
8143
+ gate for tests. */}
8077
8144
  <text
8078
8145
  x="0" y="1" textAnchor="middle"
8079
8146
  fill={status.text}
@@ -8081,11 +8148,15 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
8081
8148
  data-node-alias-text={session.alias}
8082
8149
  data-node-alias-chat-target={chatAlias === session.alias ? 'true' : 'false'}
8083
8150
  data-node-alias-hovered={hoveredAlias === session.alias ? 'true' : 'false'}
8151
+ data-node-alias-glow={!reducedMotion && hoveredAlias === session.alias ? 'true' : 'false'}
8084
8152
  style={{
8085
- transition: 'fill 300ms ease-out, letter-spacing 200ms ease-out',
8153
+ transition: 'fill 300ms ease-out, letter-spacing 200ms ease-out, filter 200ms ease-out',
8086
8154
  letterSpacing:
8087
8155
  chatAlias === session.alias ? '0.5px' :
8088
8156
  hoveredAlias === session.alias ? '0.3px' : '0px',
8157
+ filter: !reducedMotion && hoveredAlias === session.alias
8158
+ ? `drop-shadow(0 0 2px ${status.text}80)`
8159
+ : undefined,
8089
8160
  }}
8090
8161
  >
8091
8162
  {truncate(session.alias, fullMax)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.12",
3
+ "version": "0.5.3-preview.14",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,121 @@
1
+ /* Round 500 verification: node alias text gains a status-coloured
2
+ * drop-shadow on hover (extends R476-R481 drop-shadow visual-polish
3
+ * family to 7th anchor). Pre-R500 hover triggered card-lift + alias
4
+ * letter-spacing; post-R500 the alias glyph itself glows.
5
+ *
6
+ * Test scenarios:
7
+ * 1. Rest state — no hover: data-node-alias-glow='false', no filter
8
+ * 2. Hover state — after synthetic pointerenter dispatch on g[data-node]
9
+ * descendant: glow attr 'true', computed filter contains drop-shadow
10
+ * 3. reducedMotion: glow attr 'false' regardless of hover (a11y)
11
+ * 4. Source-side regex confirms wiring
12
+ */
13
+ import { chromium } from 'playwright';
14
+ import { readFileSync } from 'node:fs';
15
+
16
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
17
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
18
+
19
+ async function probe({ reducedMotion }) {
20
+ const browser = await chromium.launch({ headless: true });
21
+ const ctx = await browser.newContext({
22
+ viewport: { width: 1500, height: 1200 },
23
+ reducedMotion: reducedMotion ? 'reduce' : 'no-preference',
24
+ });
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, status) => ({
38
+ alias, status, 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('alpha·a1', 'working'),
44
+ mk('alpha·a2', 'idle'),
45
+ ] } });
46
+ });
47
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
48
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
49
+ const page = await ctx.newPage();
50
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
51
+ await page.waitForSelector('g[data-node]', { timeout: 15000 });
52
+ await page.waitForTimeout(1500);
53
+
54
+ // Phase 1: rest state
55
+ const rest = await page.evaluate(() => {
56
+ const text = document.querySelector('[data-node-alias-text]');
57
+ if (!text) return null;
58
+ return {
59
+ glow_attr: text.getAttribute('data-node-alias-glow'),
60
+ computed_filter: window.getComputedStyle(text).filter,
61
+ };
62
+ });
63
+
64
+ // Phase 2: hover state — synthetic pointerenter (R488 banked recipe)
65
+ const aliasAfterHover = await page.evaluate(() => {
66
+ const g = document.querySelector('g[data-node]');
67
+ if (!g) return null;
68
+ const alias = g.getAttribute('data-node');
69
+ const target = g.querySelector('circle, image, rect') || g;
70
+ ['pointerenter', 'pointerover', 'mouseenter', 'mouseover'].forEach((t) => {
71
+ target.dispatchEvent(new Event(t, { bubbles: true, cancelable: true }));
72
+ });
73
+ return alias;
74
+ });
75
+ await page.waitForTimeout(400);
76
+ const hover = await page.evaluate(() => {
77
+ const text = document.querySelector('[data-node-alias-text]');
78
+ if (!text) return null;
79
+ return {
80
+ glow_attr: text.getAttribute('data-node-alias-glow'),
81
+ computed_filter: window.getComputedStyle(text).filter,
82
+ hovered_attr: text.getAttribute('data-node-alias-hovered'),
83
+ };
84
+ });
85
+
86
+ await browser.close();
87
+ return { rest, hover, alias: aliasAfterHover };
88
+ }
89
+
90
+ const motion = await probe({ reducedMotion: false });
91
+ const a11y = await probe({ reducedMotion: true });
92
+
93
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
94
+ const sourceFilter = /filter: !reducedMotion && hoveredAlias === session\.alias\s*\?\s*`drop-shadow\(0 0 2px \$\{status\.text\}80\)`\s*:\s*undefined/.test(src);
95
+ const sourceAttr = /data-node-alias-glow=\{!reducedMotion && hoveredAlias === session\.alias \? 'true' : 'false'\}/.test(src);
96
+ const sourceTransition = /transition: 'fill 300ms ease-out, letter-spacing 200ms ease-out, filter 200ms ease-out'/.test(src);
97
+
98
+ const results = {
99
+ // Motion fixture, rest: attr='false', filter='none'
100
+ motion_rest_attr_false: motion.rest && motion.rest.glow_attr === 'false',
101
+ motion_rest_filter_none: motion.rest && motion.rest.computed_filter === 'none',
102
+ // Motion fixture, hover: attr='true', filter contains drop-shadow
103
+ motion_alias_resolved: !!motion.alias,
104
+ motion_hover_attr_true: motion.hover && motion.hover.glow_attr === 'true',
105
+ motion_hover_filter_drop:motion.hover && /drop-shadow/.test(motion.hover.computed_filter || ''),
106
+ // a11y fixture: attr='false' even after hover (component-side gate)
107
+ a11y_rest_attr_false: a11y.rest && a11y.rest.glow_attr === 'false',
108
+ a11y_hover_attr_false: a11y.hover && a11y.hover.glow_attr === 'false',
109
+ a11y_hover_filter_none: a11y.hover && a11y.hover.computed_filter === 'none',
110
+ // Source
111
+ source_filter_wired: sourceFilter,
112
+ source_attr_wired: sourceAttr,
113
+ source_transition_wired: sourceTransition,
114
+ };
115
+ const ok = Object.values(results).every(Boolean);
116
+ console.log(`${ok ? '✅' : '❌'} R500 node alias glow:`, JSON.stringify(results),
117
+ '\n motion rest :', JSON.stringify(motion.rest),
118
+ '\n motion hover:', JSON.stringify(motion.hover),
119
+ '\n a11y rest :', JSON.stringify(a11y.rest),
120
+ '\n a11y hover:', JSON.stringify(a11y.hover));
121
+ process.exit(ok ? 0 : 1);