@sleep2agi/agent-network-dashboard 0.5.3-preview.151 → 0.5.3-preview.153

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-0xscbvi_1df.js → 0.s.aafod4jbn.js} +1 -1
  132. package/.next/static/chunks/{15~12t12e_bh-.js → 0d~59fwylj5zw.js} +1 -1
  133. package/.next/static/chunks/{04_da~p.dz9um.js → 0mz9jr-7u5sle.js} +1 -1
  134. package/.next/static/chunks/{0.g6l5qrv8vb0.js → 0vuzzj267i7o5.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +109 -6
  138. package/package.json +1 -1
  139. package/scripts/topo-endpoint-ring-flow-halo-test.mjs +107 -0
  140. package/scripts/topo-status-ring-status-halo-test.mjs +110 -0
  141. /package/.next/static/{E9jD1f6-mjQO7VWb-fwWh → uW16UozZaYvxrQYkYU_-n}/_buildManifest.js +0 -0
  142. /package/.next/static/{E9jD1f6-mjQO7VWb-fwWh → uW16UozZaYvxrQYkYU_-n}/_clientMiddlewareManifest.js +0 -0
  143. /package/.next/static/{E9jD1f6-mjQO7VWb-fwWh → uW16UozZaYvxrQYkYU_-n}/_ssgManifest.js +0 -0
@@ -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.151"],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.153"],70286)}]);
@@ -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.151"],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.153"],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 →"})]})]})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":265,"timestamp":246997421029,"id":4,"parentId":1,"tags":{},"startTime":1779054969667,"traceId":"08504cf05da4e8d1"},{"name":"load-custom-routes","duration":457,"timestamp":246997421431,"id":5,"parentId":1,"tags":{},"startTime":1779054969668,"traceId":"08504cf05da4e8d1"},{"name":"create-dist-dir","duration":717,"timestamp":246997421927,"id":6,"parentId":1,"tags":{},"startTime":1779054969668,"traceId":"08504cf05da4e8d1"},{"name":"clean","duration":33091,"timestamp":246997423560,"id":7,"parentId":1,"tags":{},"startTime":1779054969670,"traceId":"08504cf05da4e8d1"},{"name":"discover-routes","duration":12583,"timestamp":246997533121,"id":8,"parentId":1,"tags":{},"startTime":1779054969779,"traceId":"08504cf05da4e8d1"},{"name":"create-root-mapping","duration":117,"timestamp":246997545764,"id":9,"parentId":1,"tags":{},"startTime":1779054969792,"traceId":"08504cf05da4e8d1"},{"name":"generate-route-types","duration":31404,"timestamp":246997548391,"id":10,"parentId":1,"tags":{},"startTime":1779054969795,"traceId":"08504cf05da4e8d1"},{"name":"public-dir-conflict-check","duration":100,"timestamp":246997579881,"id":11,"parentId":1,"tags":{},"startTime":1779054969826,"traceId":"08504cf05da4e8d1"},{"name":"generate-routes-manifest","duration":4972,"timestamp":246997580105,"id":12,"parentId":1,"tags":{},"startTime":1779054969826,"traceId":"08504cf05da4e8d1"},{"name":"run-turbopack","duration":5826248,"timestamp":246997590052,"id":14,"parentId":1,"tags":{},"startTime":1779054969836,"traceId":"08504cf05da4e8d1"},{"name":"turbopack-build-events","duration":94,"timestamp":246997877855,"id":15,"parentId":1,"tags":{},"startTime":1779054970124,"traceId":"08504cf05da4e8d1"},{"name":"run-typescript","duration":9461051,"timestamp":247003434651,"id":16,"parentId":1,"tags":{},"startTime":1779054975681,"traceId":"08504cf05da4e8d1"},{"name":"generate-required-server-files","duration":2467,"timestamp":247012897189,"id":18,"parentId":1,"tags":{},"startTime":1779054985143,"traceId":"08504cf05da4e8d1"},{"name":"check-static-error-page","duration":12916,"timestamp":247013064618,"id":20,"parentId":19,"tags":{},"startTime":1779054985311,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":438127,"timestamp":247013081920,"id":65,"parentId":22,"tags":{},"startTime":1779054985328,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":453316,"timestamp":247013066902,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779054985313,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":557610,"timestamp":247013082199,"id":68,"parentId":27,"tags":{},"startTime":1779054985328,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":570338,"timestamp":247013069598,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":569590,"timestamp":247013080653,"id":64,"parentId":21,"tags":{},"startTime":1779054985327,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":584566,"timestamp":247013065756,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779054985312,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":577376,"timestamp":247013082039,"id":66,"parentId":25,"tags":{},"startTime":1779054985328,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":590196,"timestamp":247013069279,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":580175,"timestamp":247013082118,"id":67,"parentId":26,"tags":{},"startTime":1779054985328,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":592883,"timestamp":247013069467,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":580037,"timestamp":247013082770,"id":71,"parentId":30,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":592799,"timestamp":247013070072,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":581434,"timestamp":247013083174,"id":74,"parentId":34,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":594028,"timestamp":247013070623,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":583522,"timestamp":247013082281,"id":69,"parentId":28,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":596135,"timestamp":247013069731,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":589964,"timestamp":247013083292,"id":78,"parentId":38,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":601999,"timestamp":247013071318,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":590648,"timestamp":247013082858,"id":72,"parentId":32,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":603112,"timestamp":247013070436,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":595783,"timestamp":247013082582,"id":70,"parentId":29,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":608532,"timestamp":247013069879,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":607648,"timestamp":247013083341,"id":81,"parentId":42,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":619301,"timestamp":247013071770,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":608831,"timestamp":247013083236,"id":76,"parentId":36,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":621029,"timestamp":247013071085,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":615081,"timestamp":247013083325,"id":80,"parentId":40,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":626995,"timestamp":247013071454,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":619710,"timestamp":247013083388,"id":84,"parentId":46,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":630875,"timestamp":247013072261,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779054985319,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":621965,"timestamp":247013083271,"id":77,"parentId":37,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":634061,"timestamp":247013071213,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":624279,"timestamp":247013083404,"id":85,"parentId":47,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":635384,"timestamp":247013072343,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779054985319,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":633025,"timestamp":247013083433,"id":87,"parentId":49,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":642662,"timestamp":247013073891,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779054985320,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":633688,"timestamp":247013083214,"id":75,"parentId":35,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":646227,"timestamp":247013070715,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":634417,"timestamp":247013083371,"id":83,"parentId":45,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":645631,"timestamp":247013072195,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":635119,"timestamp":247013083417,"id":86,"parentId":48,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":646153,"timestamp":247013072420,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779054985319,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":635264,"timestamp":247013083449,"id":88,"parentId":50,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":644750,"timestamp":247013073996,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779054985320,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":634638,"timestamp":247013089321,"id":91,"parentId":31,"tags":{},"startTime":1779054985336,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":653816,"timestamp":247013070208,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779054985316,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":635398,"timestamp":247013091692,"id":93,"parentId":43,"tags":{},"startTime":1779054985338,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":655240,"timestamp":247013071886,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":641775,"timestamp":247013086903,"id":90,"parentId":24,"tags":{},"startTime":1779054985333,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":661386,"timestamp":247013067334,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779054985314,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":638708,"timestamp":247013090177,"id":92,"parentId":41,"tags":{},"startTime":1779054985336,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":657366,"timestamp":247013071553,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":646883,"timestamp":247013083306,"id":79,"parentId":39,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":658841,"timestamp":247013071386,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":648294,"timestamp":247013083464,"id":89,"parentId":51,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":657711,"timestamp":247013074095,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779054985320,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":655819,"timestamp":247013083358,"id":82,"parentId":44,"tags":{},"startTime":1779054985330,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":667117,"timestamp":247013072102,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779054985318,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":665231,"timestamp":247013083073,"id":73,"parentId":33,"tags":{},"startTime":1779054985329,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":677820,"timestamp":247013070535,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779054985317,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":662770,"timestamp":247013095992,"id":100,"parentId":58,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":683032,"timestamp":247013075779,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779054985322,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":670062,"timestamp":247013096145,"id":101,"parentId":59,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":690219,"timestamp":247013076034,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779054985322,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":683035,"timestamp":247013096165,"id":102,"parentId":61,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":702343,"timestamp":247013076933,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779054985323,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":692663,"timestamp":247013095928,"id":96,"parentId":53,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":714148,"timestamp":247013074490,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779054985321,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":693453,"timestamp":247013095961,"id":98,"parentId":55,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":714719,"timestamp":247013074753,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779054985321,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":694774,"timestamp":247013095876,"id":94,"parentId":23,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":723542,"timestamp":247013067146,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779054985313,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":696173,"timestamp":247013096181,"id":103,"parentId":62,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":715278,"timestamp":247013077116,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779054985323,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":689125,"timestamp":247013108026,"id":105,"parentId":60,"tags":{},"startTime":1779054985354,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":720736,"timestamp":247013076464,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779054985323,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":702029,"timestamp":247013096197,"id":104,"parentId":63,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":720986,"timestamp":247013077277,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779054985324,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":668395,"timestamp":247013130254,"id":106,"parentId":57,"tags":{},"startTime":1779054985377,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":723436,"timestamp":247013075241,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779054985322,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":703327,"timestamp":247013095949,"id":97,"parentId":54,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":724707,"timestamp":247013074595,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779054985321,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":703745,"timestamp":247013095902,"id":95,"parentId":52,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":725276,"timestamp":247013074387,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779054985321,"traceId":"08504cf05da4e8d1"},{"name":"is-page-static","duration":710232,"timestamp":247013095976,"id":99,"parentId":56,"tags":{},"startTime":1779054985342,"traceId":"08504cf05da4e8d1"},{"name":"check-page","duration":731258,"timestamp":247013074983,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779054985321,"traceId":"08504cf05da4e8d1"},{"name":"static-check","duration":742460,"timestamp":247013063815,"id":19,"parentId":1,"tags":{},"startTime":1779054985310,"traceId":"08504cf05da4e8d1"}]
2
- [{"name":"write-routes-manifest","duration":518,"timestamp":247013820264,"id":108,"parentId":1,"tags":{},"startTime":1779054986067,"traceId":"08504cf05da4e8d1"},{"name":"load-dotenv","duration":43,"timestamp":247013831476,"id":111,"parentId":110,"tags":{},"startTime":1779054986078,"traceId":"08504cf05da4e8d1"},{"name":"run-export-path-map","duration":624,"timestamp":247013834645,"id":112,"parentId":110,"tags":{},"startTime":1779054986081,"traceId":"08504cf05da4e8d1"},{"name":"next-export","duration":580392,"timestamp":247013830271,"id":110,"parentId":1,"tags":{},"startTime":1779054986077,"traceId":"08504cf05da4e8d1"},{"name":"move-exported-app-not-found-","duration":564,"timestamp":247014414046,"id":113,"parentId":109,"tags":{},"startTime":1779054986660,"traceId":"08504cf05da4e8d1"},{"name":"move-exported-app-global-error-","duration":458,"timestamp":247014414706,"id":114,"parentId":109,"tags":{},"startTime":1779054986661,"traceId":"08504cf05da4e8d1"},{"name":"static-generation","duration":592903,"timestamp":247013824497,"id":109,"parentId":1,"tags":{},"startTime":1779054986071,"traceId":"08504cf05da4e8d1"},{"name":"write-routes-manifest","duration":377,"timestamp":247014417637,"id":115,"parentId":1,"tags":{},"startTime":1779054986664,"traceId":"08504cf05da4e8d1"},{"name":"print-tree-view","duration":4747,"timestamp":247014425954,"id":116,"parentId":1,"tags":{},"startTime":1779054986672,"traceId":"08504cf05da4e8d1"},{"name":"write-route-bundle-stats","duration":19222,"timestamp":247014430728,"id":117,"parentId":1,"tags":{},"startTime":1779054986677,"traceId":"08504cf05da4e8d1"},{"name":"telemetry-flush","duration":17827,"timestamp":247014449987,"id":118,"parentId":1,"tags":{},"startTime":1779054986696,"traceId":"08504cf05da4e8d1"},{"name":"next-build","duration":17101470,"timestamp":246997366383,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779054969613,"traceId":"08504cf05da4e8d1"}]
1
+ [{"name":"generate-buildid","duration":278,"timestamp":247552822359,"id":4,"parentId":1,"tags":{},"startTime":1779055525069,"traceId":"1a29c4db263247f2"},{"name":"load-custom-routes","duration":527,"timestamp":247552822786,"id":5,"parentId":1,"tags":{},"startTime":1779055525069,"traceId":"1a29c4db263247f2"},{"name":"create-dist-dir","duration":819,"timestamp":247552823358,"id":6,"parentId":1,"tags":{},"startTime":1779055525070,"traceId":"1a29c4db263247f2"},{"name":"clean","duration":36372,"timestamp":247552824843,"id":7,"parentId":1,"tags":{},"startTime":1779055525071,"traceId":"1a29c4db263247f2"},{"name":"discover-routes","duration":10732,"timestamp":247552952630,"id":8,"parentId":1,"tags":{},"startTime":1779055525199,"traceId":"1a29c4db263247f2"},{"name":"create-root-mapping","duration":189,"timestamp":247552963452,"id":9,"parentId":1,"tags":{},"startTime":1779055525210,"traceId":"1a29c4db263247f2"},{"name":"generate-route-types","duration":40677,"timestamp":247552967402,"id":10,"parentId":1,"tags":{},"startTime":1779055525214,"traceId":"1a29c4db263247f2"},{"name":"public-dir-conflict-check","duration":112,"timestamp":247553008189,"id":11,"parentId":1,"tags":{},"startTime":1779055525254,"traceId":"1a29c4db263247f2"},{"name":"generate-routes-manifest","duration":5995,"timestamp":247553008423,"id":12,"parentId":1,"tags":{},"startTime":1779055525255,"traceId":"1a29c4db263247f2"},{"name":"run-turbopack","duration":6664383,"timestamp":247553019846,"id":14,"parentId":1,"tags":{},"startTime":1779055525266,"traceId":"1a29c4db263247f2"},{"name":"turbopack-build-events","duration":114,"timestamp":247553350116,"id":15,"parentId":1,"tags":{},"startTime":1779055525596,"traceId":"1a29c4db263247f2"},{"name":"run-typescript","duration":9951003,"timestamp":247559694137,"id":16,"parentId":1,"tags":{},"startTime":1779055531940,"traceId":"1a29c4db263247f2"},{"name":"generate-required-server-files","duration":2377,"timestamp":247569646557,"id":18,"parentId":1,"tags":{},"startTime":1779055541893,"traceId":"1a29c4db263247f2"},{"name":"check-static-error-page","duration":16766,"timestamp":247569830785,"id":20,"parentId":19,"tags":{},"startTime":1779055542077,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":483277,"timestamp":247569851173,"id":65,"parentId":22,"tags":{},"startTime":1779055542097,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":500349,"timestamp":247569834274,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779055542081,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":521689,"timestamp":247569851332,"id":66,"parentId":25,"tags":{},"startTime":1779055542098,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":534626,"timestamp":247569838494,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779055542085,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":560585,"timestamp":247569855728,"id":72,"parentId":32,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":576619,"timestamp":247569839786,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779055542086,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":571619,"timestamp":247569855464,"id":70,"parentId":29,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":588026,"timestamp":247569839134,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779055542085,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":576970,"timestamp":247569856063,"id":74,"parentId":34,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":592975,"timestamp":247569840142,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779055542086,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":577529,"timestamp":247569855945,"id":73,"parentId":33,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":593549,"timestamp":247569839971,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779055542086,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":584045,"timestamp":247569856121,"id":76,"parentId":36,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":599308,"timestamp":247569840917,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779055542087,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":591775,"timestamp":247569856099,"id":75,"parentId":35,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":607633,"timestamp":247569840288,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779055542087,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":591985,"timestamp":247569856160,"id":77,"parentId":37,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":607025,"timestamp":247569841157,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779055542087,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":598473,"timestamp":247569856183,"id":78,"parentId":38,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":613392,"timestamp":247569841316,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":600537,"timestamp":247569856196,"id":79,"parentId":39,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":615350,"timestamp":247569841424,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":604241,"timestamp":247569856214,"id":80,"parentId":40,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":618963,"timestamp":247569841533,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":610488,"timestamp":247569856247,"id":82,"parentId":44,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":624366,"timestamp":247569842410,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779055542089,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":615904,"timestamp":247569856260,"id":83,"parentId":45,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":629661,"timestamp":247569842546,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779055542089,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":618983,"timestamp":247569856230,"id":81,"parentId":42,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":633333,"timestamp":247569841935,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":621108,"timestamp":247569856278,"id":84,"parentId":46,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":634596,"timestamp":247569842831,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779055542089,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":632357,"timestamp":247569851450,"id":67,"parentId":26,"tags":{},"startTime":1779055542098,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":645210,"timestamp":247569838680,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779055542085,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":629975,"timestamp":247569855109,"id":69,"parentId":28,"tags":{},"startTime":1779055542101,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":646158,"timestamp":247569838974,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779055542085,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":631984,"timestamp":247569856294,"id":85,"parentId":47,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":643674,"timestamp":247569844650,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779055542091,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":633571,"timestamp":247569856322,"id":87,"parentId":49,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":645003,"timestamp":247569844934,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779055542091,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":633770,"timestamp":247569856337,"id":88,"parentId":50,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":645098,"timestamp":247569845045,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779055542091,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":638458,"timestamp":247569856306,"id":86,"parentId":48,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":650005,"timestamp":247569844802,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779055542091,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":645432,"timestamp":247569855653,"id":71,"parentId":30,"tags":{},"startTime":1779055542102,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":661822,"timestamp":247569839309,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779055542086,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":644940,"timestamp":247569856354,"id":89,"parentId":51,"tags":{},"startTime":1779055542103,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":656199,"timestamp":247569845127,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779055542091,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":639081,"timestamp":247569866576,"id":92,"parentId":41,"tags":{},"startTime":1779055542113,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":664066,"timestamp":247569841639,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":635873,"timestamp":247569870310,"id":93,"parentId":43,"tags":{},"startTime":1779055542117,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":664114,"timestamp":247569842105,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779055542088,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":668070,"timestamp":247569851581,"id":68,"parentId":27,"tags":{},"startTime":1779055542098,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":680897,"timestamp":247569838811,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779055542085,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":659504,"timestamp":247569860956,"id":91,"parentId":31,"tags":{},"startTime":1779055542107,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":681045,"timestamp":247569839458,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779055542086,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":687526,"timestamp":247569850729,"id":64,"parentId":21,"tags":{},"startTime":1779055542097,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":705801,"timestamp":247569832519,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779055542079,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":679646,"timestamp":247569859747,"id":90,"parentId":24,"tags":{},"startTime":1779055542106,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":704629,"timestamp":247569834821,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779055542081,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":680055,"timestamp":247569875216,"id":99,"parentId":56,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":709402,"timestamp":247569845926,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":686713,"timestamp":247569875162,"id":96,"parentId":53,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":716424,"timestamp":247569845512,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":691290,"timestamp":247569875144,"id":95,"parentId":52,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":721092,"timestamp":247569845410,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":693745,"timestamp":247569875388,"id":102,"parentId":61,"tags":{},"startTime":1779055542122,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":722015,"timestamp":247569847168,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779055542093,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":700880,"timestamp":247569875419,"id":104,"parentId":63,"tags":{},"startTime":1779055542122,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":728982,"timestamp":247569847375,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779055542094,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":689983,"timestamp":247569898086,"id":105,"parentId":60,"tags":{},"startTime":1779055542144,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":741302,"timestamp":247569846816,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779055542093,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":712817,"timestamp":247569875404,"id":103,"parentId":62,"tags":{},"startTime":1779055542122,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":740973,"timestamp":247569847278,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779055542094,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":715673,"timestamp":247569875110,"id":94,"parentId":23,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":756251,"timestamp":247569834570,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779055542081,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":675592,"timestamp":247569915801,"id":106,"parentId":57,"tags":{},"startTime":1779055542162,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":745296,"timestamp":247569846134,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":722009,"timestamp":247569875361,"id":101,"parentId":59,"tags":{},"startTime":1779055542122,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":750725,"timestamp":247569846692,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779055542093,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":724168,"timestamp":247569875198,"id":98,"parentId":55,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":753649,"timestamp":247569845756,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":733460,"timestamp":247569875183,"id":97,"parentId":54,"tags":{},"startTime":1779055542121,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":763070,"timestamp":247569845618,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779055542092,"traceId":"1a29c4db263247f2"},{"name":"is-page-static","duration":735466,"timestamp":247569875233,"id":100,"parentId":58,"tags":{},"startTime":1779055542122,"traceId":"1a29c4db263247f2"},{"name":"check-page","duration":764190,"timestamp":247569846540,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779055542093,"traceId":"1a29c4db263247f2"},{"name":"static-check","duration":781291,"timestamp":247569829482,"id":19,"parentId":1,"tags":{},"startTime":1779055542076,"traceId":"1a29c4db263247f2"}]
2
+ [{"name":"write-routes-manifest","duration":537,"timestamp":247570619966,"id":108,"parentId":1,"tags":{},"startTime":1779055542866,"traceId":"1a29c4db263247f2"},{"name":"load-dotenv","duration":75,"timestamp":247570632823,"id":111,"parentId":110,"tags":{},"startTime":1779055542879,"traceId":"1a29c4db263247f2"},{"name":"run-export-path-map","duration":792,"timestamp":247570636205,"id":112,"parentId":110,"tags":{},"startTime":1779055542882,"traceId":"1a29c4db263247f2"},{"name":"next-export","duration":626820,"timestamp":247570631349,"id":110,"parentId":1,"tags":{},"startTime":1779055542878,"traceId":"1a29c4db263247f2"},{"name":"move-exported-app-not-found-","duration":557,"timestamp":247571261830,"id":113,"parentId":109,"tags":{},"startTime":1779055543508,"traceId":"1a29c4db263247f2"},{"name":"move-exported-app-global-error-","duration":414,"timestamp":247571262479,"id":114,"parentId":109,"tags":{},"startTime":1779055543509,"traceId":"1a29c4db263247f2"},{"name":"static-generation","duration":640136,"timestamp":247570624639,"id":109,"parentId":1,"tags":{},"startTime":1779055542871,"traceId":"1a29c4db263247f2"},{"name":"write-routes-manifest","duration":418,"timestamp":247571265092,"id":115,"parentId":1,"tags":{},"startTime":1779055543511,"traceId":"1a29c4db263247f2"},{"name":"print-tree-view","duration":4741,"timestamp":247571285635,"id":116,"parentId":1,"tags":{},"startTime":1779055543532,"traceId":"1a29c4db263247f2"},{"name":"write-route-bundle-stats","duration":16550,"timestamp":247571290418,"id":117,"parentId":1,"tags":{},"startTime":1779055543537,"traceId":"1a29c4db263247f2"},{"name":"telemetry-flush","duration":15185,"timestamp":247571307051,"id":118,"parentId":1,"tags":{},"startTime":1779055543553,"traceId":"1a29c4db263247f2"},{"name":"next-build","duration":18558689,"timestamp":247552763586,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779055525010,"traceId":"1a29c4db263247f2"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5826248,"timestamp":246997590052,"id":14,"parentId":1,"tags":{},"startTime":1779054969836,"traceId":"08504cf05da4e8d1"},{"name":"turbopack-build-events","duration":94,"timestamp":246997877855,"id":15,"parentId":1,"tags":{},"startTime":1779054970124,"traceId":"08504cf05da4e8d1"},{"name":"run-typescript","duration":9461051,"timestamp":247003434651,"id":16,"parentId":1,"tags":{},"startTime":1779054975681,"traceId":"08504cf05da4e8d1"},{"name":"static-check","duration":742460,"timestamp":247013063815,"id":19,"parentId":1,"tags":{},"startTime":1779054985310,"traceId":"08504cf05da4e8d1"},{"name":"static-generation","duration":592903,"timestamp":247013824497,"id":109,"parentId":1,"tags":{},"startTime":1779054986071,"traceId":"08504cf05da4e8d1"},{"name":"telemetry-flush","duration":17827,"timestamp":247014449987,"id":118,"parentId":1,"tags":{},"startTime":1779054986696,"traceId":"08504cf05da4e8d1"},{"name":"next-build","duration":17101470,"timestamp":246997366383,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779054969613,"traceId":"08504cf05da4e8d1"}]
1
+ [{"name":"run-turbopack","duration":6664383,"timestamp":247553019846,"id":14,"parentId":1,"tags":{},"startTime":1779055525266,"traceId":"1a29c4db263247f2"},{"name":"turbopack-build-events","duration":114,"timestamp":247553350116,"id":15,"parentId":1,"tags":{},"startTime":1779055525596,"traceId":"1a29c4db263247f2"},{"name":"run-typescript","duration":9951003,"timestamp":247559694137,"id":16,"parentId":1,"tags":{},"startTime":1779055531940,"traceId":"1a29c4db263247f2"},{"name":"static-check","duration":781291,"timestamp":247569829482,"id":19,"parentId":1,"tags":{},"startTime":1779055542076,"traceId":"1a29c4db263247f2"},{"name":"static-generation","duration":640136,"timestamp":247570624639,"id":109,"parentId":1,"tags":{},"startTime":1779055542871,"traceId":"1a29c4db263247f2"},{"name":"telemetry-flush","duration":15185,"timestamp":247571307051,"id":118,"parentId":1,"tags":{},"startTime":1779055543553,"traceId":"1a29c4db263247f2"},{"name":"next-build","duration":18558689,"timestamp":247552763586,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779055525010,"traceId":"1a29c4db263247f2"}]
@@ -9578,6 +9578,47 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
9578
9578
  data-edge-endpoint-ring-stroke-width={isEndpoint ? 2.4 : 1.6}
9579
9579
  data-edge-endpoint-ring-radius={endpointR}
9580
9580
  data-edge-endpoint-ring-brightness={isEndpoint ? '1.15' : '1'}
9581
+ /* Round 639 / Loop — endpoint emphasis ring filter
9582
+ gains a stroke-tinted drop-shadow halo on
9583
+ isEndpoint. Sibling to R637 (chat-target ring,
9584
+ status.primary stroke) + R638 (status ring,
9585
+ status.primary stroke). R639 applies the same
9586
+ chromatic-identity pattern to the third per-node
9587
+ ring whose stroke colour is non-trivial:
9588
+ `pal.flowEdge` (cyber cyan ↔ light emerald).
9589
+ Pre-R639 the endpoint ring's hover filter was
9590
+ plain `brightness(1.15)` — no chromatic halo
9591
+ to telegraph "this is an edge endpoint" on the
9592
+ paint axis. The brightness lift made the cyan
9593
+ stroke read brighter but the surface lacked
9594
+ the ambient glow that R637 + R638 added to
9595
+ their respective ring tiers.
9596
+ R639 prepends `drop-shadow(0 0 2px
9597
+ ${pal.flowEdge}40)` so:
9598
+ cyber endpoint → cyan halo around cyan stroke
9599
+ light endpoint → emerald halo around emerald stroke
9600
+ halo always matches the existing stroke color
9601
+ since `pal.flowEdge` is the only colour source.
9602
+ 2px blur matches R638's status-ring halo (both
9603
+ rings sit at small radii: status at r=radius,
9604
+ endpoint at r=radius+7-8); R637's 3px is for
9605
+ the outermost r+14 chat-target ring.
9606
+ 0x40 alpha (~25 %) matches R637 + R638 so all
9607
+ three identity rings present a uniform halo
9608
+ intensity vocabulary.
9609
+ R51 sentinel safety: ring strokeWidth oscillates
9610
+ between 1.6 (rest) and 2.4 (hover) — neither
9611
+ matches reserved {1.5, 3}. Filter is paint-only,
9612
+ no bbox change. transition list already includes
9613
+ 'filter 180ms ease-out'.
9614
+ Chromatic identity completion family at the per-
9615
+ node ring surface (3 anchors now):
9616
+ R637 chat-target ring (status.primary, r+14)
9617
+ R638 status ring (status.primary, r=radius)
9618
+ R639 endpoint ring (pal.flowEdge, r+7→r+8) ← this
9619
+ data-edge-endpoint-ring-halo-color attr exposes
9620
+ the resolved halo color for tests. */
9621
+ data-edge-endpoint-ring-halo-color={isEndpoint ? pal.flowEdge : 'none'}
9581
9622
  style={{
9582
9623
  pointerEvents: 'none',
9583
9624
  r: `${endpointR}px`,
@@ -9606,8 +9647,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
9606
9647
  the endpoint ring has no rest-time filter
9607
9648
  attribute. Inline style.filter undefined at
9608
9649
  rest (no flicker; opacity=0 already hides
9609
- the ring). */
9610
- filter: isEndpoint ? 'brightness(1.15)' : undefined,
9650
+ the ring).
9651
+
9652
+ R639 prepends `drop-shadow(0 0 2px
9653
+ ${pal.flowEdge}40)` to the filter chain so
9654
+ the halo color matches the stroke color —
9655
+ completes the chromatic identity at the
9656
+ endpoint-ring surface (3rd anchor in
9657
+ chromatic-identity family). */
9658
+ filter: isEndpoint
9659
+ ? `drop-shadow(0 0 2px ${pal.flowEdge}40) brightness(1.15)`
9660
+ : undefined,
9611
9661
  transition: 'opacity 180ms ease-out, stroke-width 180ms ease-out, r 180ms ease-out, filter 180ms ease-out',
9612
9662
  } as React.CSSProperties}
9613
9663
  />
@@ -9701,6 +9751,53 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
9701
9751
  data-node-status-ring-hovered={isRingHovered ? 'true' : 'false'}
9702
9752
  data-node-status-ring-stroke-width={ringStrokeWidth}
9703
9753
  data-node-status-ring-brightness={isRingHovered ? '1.15' : '1'}
9754
+ /* Round 638 / Loop — status ring filter gains a
9755
+ status-tinted drop-shadow halo on isRingHovered.
9756
+ Sibling pattern to R637 (chat-target ring at
9757
+ r+14 outer surface); R638 applies the same
9758
+ chromatic identity to the per-node status ring
9759
+ at r=radius (the INNERMOST identifying ring).
9760
+ Pre-R638 the status ring's hover filter was
9761
+ brightness-only (light) or `url(#topo-glow)
9762
+ brightness` (cyber+online) — the halo on cyber
9763
+ stayed cyan (the standard glow filter) regard-
9764
+ less of which status tier (green/teal/slate)
9765
+ the stroke painted. R638 stacks a status-tinted
9766
+ drop-shadow at the FRONT of the filter chain:
9767
+ `drop-shadow(0 0 2px ${status.primary}40)` so
9768
+ the halo color matches the stroke color.
9769
+ Now the ring's status identity reads chromatic-
9770
+ ally at BOTH the stroke AND the halo:
9771
+ working → green stroke + green halo on hover
9772
+ idle → teal stroke + teal halo on hover
9773
+ offline → slate stroke + slate halo on hover
9774
+ 2px blur is tighter than R637's 3px because the
9775
+ status ring sits at r=radius (much smaller than
9776
+ R637's r=radius+14) and a wider blur would bleed
9777
+ into the avatar surface inside.
9778
+ 0x40 alpha (~25 %) — matches R637's halo
9779
+ strength so both rings present the same chromat-
9780
+ ic halo intensity vocabulary.
9781
+ R51 sentinel safety: filter is paint-only, no
9782
+ bbox change. ringStrokeWidth still produces the
9783
+ sentinel values (1.5 offline / 3 online) which
9784
+ the overlap-test selector reads — filter
9785
+ affects neither the attribute nor the bbox.
9786
+ transition list already includes 'filter 300ms
9787
+ ease-out' (R584) so the halo COLOR easing on
9788
+ status flip composes with the existing R167
9789
+ stroke colour ease at the same cadence.
9790
+ R621 extended isRingHovered to also fire on
9791
+ chatAlias === session.alias — so chat-target
9792
+ nodes will also see the status-tinted halo on
9793
+ their status ring without further changes.
9794
+ Chromatic identity completion family at the
9795
+ per-node identity surface (sibling to R637):
9796
+ R637 chat-target ring (r+14, OUTERMOST)
9797
+ R638 status ring (r=radius, INNERMOST) ← this
9798
+ data-node-status-ring-halo-color attr exposes
9799
+ the resolved color for tests. */
9800
+ data-node-status-ring-halo-color={isRingHovered ? status.primary : 'none'}
9704
9801
  style={{
9705
9802
  /* R584 — status ring gets brightness(1.15) on
9706
9803
  hover. 23rd anchor in per-element brightness
@@ -9725,13 +9822,19 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
9725
9822
  R584 status-ring brightness(1.15) ← this round
9726
9823
 
9727
9824
  Per-element brightness family: 23 anchors.
9728
- Stacked-filter sub-pattern: 17 anchors. */
9825
+ Stacked-filter sub-pattern: 17 anchors.
9826
+
9827
+ R638 prepends `drop-shadow(0 0 2px
9828
+ ${status.primary}40)` to the stack so the halo
9829
+ color matches the stroke color (status.primary)
9830
+ — completes the chromatic identity at the
9831
+ innermost per-node identity surface. */
9729
9832
  filter: isRingHovered
9730
9833
  ? (isLight
9731
- ? 'brightness(1.15)'
9834
+ ? `drop-shadow(0 0 2px ${status.primary}40) brightness(1.15)`
9732
9835
  : (isOnline
9733
- ? 'url(#topo-glow) brightness(1.15)'
9734
- : 'brightness(1.15)'))
9836
+ ? `drop-shadow(0 0 2px ${status.primary}40) url(#topo-glow) brightness(1.15)`
9837
+ : `drop-shadow(0 0 2px ${status.primary}40) brightness(1.15)`))
9735
9838
  : undefined,
9736
9839
  transition: 'fill 300ms ease-out, stroke 300ms ease-out, stroke-width 300ms ease-out, filter 300ms ease-out',
9737
9840
  }}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.151",
3
+ "version": "0.5.3-preview.153",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,107 @@
1
+ /* Round 639 — endpoint emphasis ring filter gains a stroke-tinted
2
+ * drop-shadow halo on isEndpoint. Halo color matches pal.flowEdge
3
+ * stroke (cyber cyan / light emerald). 3rd anchor in chromatic-
4
+ * identity family at the per-node ring surface.
5
+ *
6
+ * Test phases:
7
+ * 1. mock 2 nodes + 1 message → 1 edge, hover edge to trigger
8
+ * hoveredEdgeEndpoints → endpoint ring opacity > 0
9
+ * 2. rest (no edge hover): all endpoint rings halo-color='none',
10
+ * endpoint-active='false'
11
+ * 3. hover edge → 2 endpoint rings turn active; halo-color
12
+ * matches pal.flowEdge (cyber: #67e8f9, light: #10b981);
13
+ * computed filter contains drop-shadow + brightness
14
+ * 4. source: filter expression uses ${pal.flowEdge}40 in drop-shadow
15
+ */
16
+ import { chromium } from 'playwright';
17
+ import { readFileSync } from 'node:fs';
18
+
19
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
20
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
21
+
22
+ const browser = await chromium.launch({ headless: true });
23
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
24
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
25
+ await ctx.addInitScript(() => {
26
+ try {
27
+ localStorage.setItem('anet-theme', 'cyber');
28
+ localStorage.setItem('anet-topo-layout', 'ring');
29
+ sessionStorage.setItem('anet_v3_auth', '1');
30
+ } catch {}
31
+ });
32
+ await ctx.route('**/api/hub/status*', async (route) => {
33
+ const r = await route.fetch();
34
+ const b = await r.json();
35
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
36
+ const mk = (alias) => ({
37
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
38
+ network_id: nid, project_dir: null,
39
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
40
+ });
41
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
42
+ });
43
+ // 3 messages → edge badge becomes visible + clickable (R215 threshold)
44
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
45
+ { from_alias: 'a·1', to_alias: 'a·2', content: 'one', created_at: fresh },
46
+ { from_alias: 'a·1', to_alias: 'a·2', content: 'two', created_at: fresh },
47
+ { from_alias: 'a·1', to_alias: 'a·2', content: 'three', created_at: fresh },
48
+ ] } }));
49
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
50
+ const page = await ctx.newPage();
51
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
52
+ await page.waitForSelector('[data-edge-endpoint-ring]', { timeout: 15000, state: 'attached' });
53
+ await page.waitForTimeout(500);
54
+
55
+ // rest: collect endpoint ring halo colors (should all be 'none')
56
+ const restRings = await page.evaluate(() => {
57
+ return Array.from(document.querySelectorAll('[data-edge-endpoint-ring]')).map(el => ({
58
+ haloColor: el.getAttribute('data-edge-endpoint-ring-halo-color'),
59
+ active: el.getAttribute('data-edge-endpoint-active'),
60
+ }));
61
+ });
62
+
63
+ // Pin the edge by clicking the recent-row tint rect (R116 lets
64
+ // recent-row click pin activeEdgeKey → hoveredEdgeEndpoints fires).
65
+ await page.click('[data-recent-row-tint-brightness]', { force: true });
66
+ await page.waitForTimeout(400);
67
+
68
+ const activeState = await page.evaluate(() => {
69
+ return Array.from(document.querySelectorAll('[data-edge-endpoint-ring]')).map(el => {
70
+ const cs = getComputedStyle(el);
71
+ return {
72
+ haloColor: el.getAttribute('data-edge-endpoint-ring-halo-color'),
73
+ active: el.getAttribute('data-edge-endpoint-active'),
74
+ brightness:el.getAttribute('data-edge-endpoint-ring-brightness'),
75
+ filter: cs.filter,
76
+ };
77
+ });
78
+ });
79
+
80
+ await browser.close();
81
+
82
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
83
+ const sourceFilter = /`drop-shadow\(0 0 2px \$\{pal\.flowEdge\}40\) brightness\(1\.15\)`/.test(src);
84
+ const sourceHaloAttr = /data-edge-endpoint-ring-halo-color=\{isEndpoint \? pal\.flowEdge : 'none'\}/.test(src);
85
+
86
+ const restAllNone = restRings.every(r => r.haloColor === 'none' && r.active === 'false');
87
+ const activeRings = activeState.filter(s => s.active === 'true');
88
+ const activeAllHaloMatch = activeRings.length > 0
89
+ && activeRings.every(s => /^#[0-9a-f]{6,8}$/i.test(s.haloColor || '')
90
+ && /drop-shadow/.test(s.filter || '')
91
+ && /brightness/.test(s.filter || ''));
92
+
93
+ const results = {
94
+ rings_present: restRings.length >= 2,
95
+ rest_all_none: restAllNone,
96
+ active_at_least_two: activeRings.length >= 2,
97
+ active_brightness_1_15: activeRings.every(s => s.brightness === '1.15'),
98
+ active_halo_match: activeAllHaloMatch,
99
+ source_filter: sourceFilter,
100
+ source_halo_attr: sourceHaloAttr,
101
+ };
102
+ const ok = Object.values(results).every(Boolean);
103
+ console.log(`${ok ? '✅' : '❌'} R639 endpoint emphasis ring stroke-tinted halo (chromatic identity 3rd anchor):`,
104
+ JSON.stringify(results, null, 2),
105
+ `\n rest: ${JSON.stringify(restRings)}`,
106
+ `\n active: ${JSON.stringify(activeState)}`);
107
+ process.exit(ok ? 0 : 1);