@sleep2agi/agent-network-dashboard 0.5.3-preview.2 → 0.5.3-preview.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) 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 +3 -3
  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/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +2 -2
  14. package/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/admin.html +2 -2
  23. package/.next/server/app/admin.rsc +2 -2
  24. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  30. package/.next/server/app/index.html +2 -2
  31. package/.next/server/app/index.rsc +3 -3
  32. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  34. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  36. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/login.html +2 -2
  39. package/.next/server/app/login.rsc +3 -3
  40. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/logs.html +2 -2
  48. package/.next/server/app/logs.rsc +2 -2
  49. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  55. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/messages.html +2 -2
  57. package/.next/server/app/messages.rsc +2 -2
  58. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  64. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/node.html +2 -2
  66. package/.next/server/app/node.rsc +2 -2
  67. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  73. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/nodes.html +2 -2
  75. package/.next/server/app/nodes.rsc +2 -2
  76. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs.html +2 -2
  85. package/.next/server/app/server-logs.rsc +2 -2
  86. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  88. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  89. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  91. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/settings/networks.html +2 -2
  94. package/.next/server/app/settings/networks.rsc +2 -2
  95. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  102. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens.html +2 -2
  105. package/.next/server/app/settings/tokens.rsc +2 -2
  106. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  109. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/settings.html +2 -2
  114. package/.next/server/app/settings.rsc +3 -3
  115. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  116. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  121. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks.html +2 -2
  124. package/.next/server/app/tasks.rsc +2 -2
  125. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  127. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  128. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  130. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  131. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
  132. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  133. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  134. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  137. package/.next/server/middleware-build-manifest.js +3 -3
  138. package/.next/server/pages/404.html +2 -2
  139. package/.next/server/pages/500.html +1 -1
  140. package/.next/static/chunks/{0a4hmfvj-81x5.css → 05_0r-qhmggvj.css} +1 -1
  141. package/.next/static/chunks/{0w_zjois27-bj.js → 072cwlbf~3a0t.js} +1 -1
  142. package/.next/static/chunks/{05zlv0iopwd40.js → 0qoc2qe1owx6n.js} +1 -1
  143. package/.next/static/chunks/{11vp-~kvgz81f.js → 0t_.58jc2y.3r.js} +1 -1
  144. package/.next/trace +2 -2
  145. package/.next/trace-build +1 -1
  146. package/app/globals.css +68 -6
  147. package/package.json +1 -1
  148. package/scripts/topo-focus-outline-transition-test.mjs +107 -0
  149. package/scripts/topo-svg-focus-transition-test.mjs +105 -0
  150. /package/.next/static/{AQG7LOsK4d0T0j2nFonEh → _cPig_Uyv0NsISAzU7MHR}/_buildManifest.js +0 -0
  151. /package/.next/static/{AQG7LOsK4d0T0j2nFonEh → _cPig_Uyv0NsISAzU7MHR}/_clientMiddlewareManifest.js +0 -0
  152. /package/.next/static/{AQG7LOsK4d0T0j2nFonEh → _cPig_Uyv0NsISAzU7MHR}/_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.2"],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.4"],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.2"],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.4"],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":352,"timestamp":187381420427,"id":4,"parentId":1,"tags":{},"startTime":1778995353667,"traceId":"5a5d6d26841571a9"},{"name":"load-custom-routes","duration":644,"timestamp":187381420981,"id":5,"parentId":1,"tags":{},"startTime":1778995353667,"traceId":"5a5d6d26841571a9"},{"name":"create-dist-dir","duration":847,"timestamp":187381421685,"id":6,"parentId":1,"tags":{},"startTime":1778995353668,"traceId":"5a5d6d26841571a9"},{"name":"clean","duration":38487,"timestamp":187381423238,"id":7,"parentId":1,"tags":{},"startTime":1778995353670,"traceId":"5a5d6d26841571a9"},{"name":"discover-routes","duration":12278,"timestamp":187381546222,"id":8,"parentId":1,"tags":{},"startTime":1778995353792,"traceId":"5a5d6d26841571a9"},{"name":"create-root-mapping","duration":177,"timestamp":187381558582,"id":9,"parentId":1,"tags":{},"startTime":1778995353805,"traceId":"5a5d6d26841571a9"},{"name":"generate-route-types","duration":33056,"timestamp":187381561615,"id":10,"parentId":1,"tags":{},"startTime":1778995353808,"traceId":"5a5d6d26841571a9"},{"name":"public-dir-conflict-check","duration":100,"timestamp":187381594778,"id":11,"parentId":1,"tags":{},"startTime":1778995353841,"traceId":"5a5d6d26841571a9"},{"name":"generate-routes-manifest","duration":5508,"timestamp":187381594992,"id":12,"parentId":1,"tags":{},"startTime":1778995353841,"traceId":"5a5d6d26841571a9"},{"name":"run-turbopack","duration":7585961,"timestamp":187381606678,"id":14,"parentId":1,"tags":{},"startTime":1778995353853,"traceId":"5a5d6d26841571a9"},{"name":"turbopack-build-events","duration":100,"timestamp":187381936541,"id":15,"parentId":1,"tags":{},"startTime":1778995354183,"traceId":"5a5d6d26841571a9"},{"name":"run-typescript","duration":11047103,"timestamp":187389233875,"id":16,"parentId":1,"tags":{},"startTime":1778995361480,"traceId":"5a5d6d26841571a9"},{"name":"generate-required-server-files","duration":3538,"timestamp":187400282450,"id":18,"parentId":1,"tags":{},"startTime":1778995372529,"traceId":"5a5d6d26841571a9"},{"name":"check-static-error-page","duration":15007,"timestamp":187400485621,"id":20,"parentId":19,"tags":{},"startTime":1778995372732,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":597036,"timestamp":187400505406,"id":67,"parentId":26,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":611779,"timestamp":187400490817,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778995372737,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":627221,"timestamp":187400505149,"id":65,"parentId":22,"tags":{},"startTime":1778995372751,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":644541,"timestamp":187400487942,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778995372734,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":638906,"timestamp":187400506083,"id":71,"parentId":30,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":653802,"timestamp":187400491289,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":646182,"timestamp":187400506306,"id":73,"parentId":33,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":660857,"timestamp":187400491708,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":655278,"timestamp":187400506381,"id":74,"parentId":34,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":669878,"timestamp":187400491848,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":672652,"timestamp":187400506406,"id":75,"parentId":35,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":687159,"timestamp":187400491985,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":677383,"timestamp":187400505514,"id":68,"parentId":27,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":692044,"timestamp":187400490916,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778995372737,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":678549,"timestamp":187400506428,"id":76,"parentId":36,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":692540,"timestamp":187400492513,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":693077,"timestamp":187400506473,"id":78,"parentId":38,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":706814,"timestamp":187400492808,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":708604,"timestamp":187400505611,"id":69,"parentId":28,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":723232,"timestamp":187400491046,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778995372737,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":712522,"timestamp":187400504728,"id":64,"parentId":21,"tags":{},"startTime":1778995372751,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":730465,"timestamp":187400486844,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778995372733,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":719208,"timestamp":187400506488,"id":79,"parentId":39,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":732853,"timestamp":187400492915,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":719644,"timestamp":187400506458,"id":77,"parentId":37,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":733477,"timestamp":187400492668,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":723712,"timestamp":187400506526,"id":82,"parentId":44,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":736443,"timestamp":187400493845,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778995372740,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":729038,"timestamp":187400506555,"id":84,"parentId":46,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":739258,"timestamp":187400496414,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":733401,"timestamp":187400506566,"id":85,"parentId":47,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":745189,"timestamp":187400496599,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":737692,"timestamp":187400506583,"id":86,"parentId":48,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":747610,"timestamp":187400496722,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":741884,"timestamp":187400506598,"id":87,"parentId":49,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":751666,"timestamp":187400496866,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":746268,"timestamp":187400506612,"id":88,"parentId":50,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":755961,"timestamp":187400496963,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":750068,"timestamp":187400506623,"id":89,"parentId":51,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":759684,"timestamp":187400497072,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":749260,"timestamp":187400512424,"id":90,"parentId":24,"tags":{},"startTime":1778995372759,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":773380,"timestamp":187400488343,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778995372735,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":751988,"timestamp":187400513708,"id":91,"parentId":31,"tags":{},"startTime":1778995372760,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":774385,"timestamp":187400491368,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":770145,"timestamp":187400506541,"id":83,"parentId":45,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":782768,"timestamp":187400493988,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778995372743,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":761027,"timestamp":187400522568,"id":93,"parentId":43,"tags":{},"startTime":1778995372769,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":790131,"timestamp":187400493523,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778995372740,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":771728,"timestamp":187400514618,"id":92,"parentId":41,"tags":{},"startTime":1778995372761,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":793298,"timestamp":187400493112,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":802380,"timestamp":187400506502,"id":80,"parentId":40,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":815934,"timestamp":187400493019,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778995372739,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":816297,"timestamp":187400506142,"id":72,"parentId":32,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":830938,"timestamp":187400491574,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778995372738,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":839926,"timestamp":187400505896,"id":70,"parentId":29,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":854738,"timestamp":187400491167,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778995372737,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":862920,"timestamp":187400506516,"id":81,"parentId":42,"tags":{},"startTime":1778995372753,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":876145,"timestamp":187400493368,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778995372740,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":854402,"timestamp":187400524814,"id":94,"parentId":23,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":891130,"timestamp":187400488165,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778995372734,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":857552,"timestamp":187400524917,"id":99,"parentId":56,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":884279,"timestamp":187400498251,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778995372745,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":866165,"timestamp":187400524934,"id":100,"parentId":58,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":892037,"timestamp":187400499131,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778995372745,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":866270,"timestamp":187400525092,"id":101,"parentId":59,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":892077,"timestamp":187400499333,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778995372746,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":870399,"timestamp":187400525119,"id":102,"parentId":61,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":895717,"timestamp":187400499854,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778995372746,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":878195,"timestamp":187400525148,"id":104,"parentId":63,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":903083,"timestamp":187400500344,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778995372747,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":885795,"timestamp":187400525136,"id":103,"parentId":62,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":910822,"timestamp":187400500155,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778995372746,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":864366,"timestamp":187400547532,"id":105,"parentId":57,"tags":{},"startTime":1778995372794,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":913458,"timestamp":187400498488,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778995372745,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":903779,"timestamp":187400524871,"id":96,"parentId":53,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":931071,"timestamp":187400497642,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778995372744,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":871654,"timestamp":187400557171,"id":106,"parentId":60,"tags":{},"startTime":1778995372803,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":929384,"timestamp":187400499470,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778995372746,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":908723,"timestamp":187400524852,"id":95,"parentId":52,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":936168,"timestamp":187400497458,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778995372744,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":911759,"timestamp":187400524884,"id":97,"parentId":54,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":938878,"timestamp":187400497812,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778995372744,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":961911,"timestamp":187400505299,"id":66,"parentId":25,"tags":{},"startTime":1778995372752,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":976620,"timestamp":187400490668,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778995372737,"traceId":"5a5d6d26841571a9"},{"name":"is-page-static","duration":946088,"timestamp":187400524901,"id":98,"parentId":55,"tags":{},"startTime":1778995372771,"traceId":"5a5d6d26841571a9"},{"name":"check-page","duration":973030,"timestamp":187400498028,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778995372744,"traceId":"5a5d6d26841571a9"},{"name":"static-check","duration":986634,"timestamp":187400484470,"id":19,"parentId":1,"tags":{},"startTime":1778995372731,"traceId":"5a5d6d26841571a9"}]
2
- [{"name":"write-routes-manifest","duration":726,"timestamp":187401485262,"id":108,"parentId":1,"tags":{},"startTime":1778995373732,"traceId":"5a5d6d26841571a9"},{"name":"load-dotenv","duration":66,"timestamp":187401498825,"id":111,"parentId":110,"tags":{},"startTime":1778995373745,"traceId":"5a5d6d26841571a9"},{"name":"run-export-path-map","duration":942,"timestamp":187401502340,"id":112,"parentId":110,"tags":{},"startTime":1778995373749,"traceId":"5a5d6d26841571a9"},{"name":"next-export","duration":774419,"timestamp":187401497131,"id":110,"parentId":1,"tags":{},"startTime":1778995373743,"traceId":"5a5d6d26841571a9"},{"name":"move-exported-app-not-found-","duration":733,"timestamp":187402274911,"id":113,"parentId":109,"tags":{},"startTime":1778995374521,"traceId":"5a5d6d26841571a9"},{"name":"move-exported-app-global-error-","duration":727,"timestamp":187402275806,"id":114,"parentId":109,"tags":{},"startTime":1778995374522,"traceId":"5a5d6d26841571a9"},{"name":"static-generation","duration":788570,"timestamp":187401490387,"id":109,"parentId":1,"tags":{},"startTime":1778995373737,"traceId":"5a5d6d26841571a9"},{"name":"write-routes-manifest","duration":505,"timestamp":187402279250,"id":115,"parentId":1,"tags":{},"startTime":1778995374526,"traceId":"5a5d6d26841571a9"},{"name":"print-tree-view","duration":3789,"timestamp":187402298618,"id":116,"parentId":1,"tags":{},"startTime":1778995374545,"traceId":"5a5d6d26841571a9"},{"name":"write-route-bundle-stats","duration":14219,"timestamp":187402302441,"id":117,"parentId":1,"tags":{},"startTime":1778995374549,"traceId":"5a5d6d26841571a9"},{"name":"telemetry-flush","duration":78275,"timestamp":187402316695,"id":118,"parentId":1,"tags":{},"startTime":1778995374563,"traceId":"5a5d6d26841571a9"},{"name":"next-build","duration":21035352,"timestamp":187381359674,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778995353606,"traceId":"5a5d6d26841571a9"}]
1
+ [{"name":"generate-buildid","duration":364,"timestamp":188192223503,"id":4,"parentId":1,"tags":{},"startTime":1778996164470,"traceId":"1932a1cc3ccc5b03"},{"name":"load-custom-routes","duration":647,"timestamp":188192224078,"id":5,"parentId":1,"tags":{},"startTime":1778996164470,"traceId":"1932a1cc3ccc5b03"},{"name":"create-dist-dir","duration":884,"timestamp":188192224801,"id":6,"parentId":1,"tags":{},"startTime":1778996164471,"traceId":"1932a1cc3ccc5b03"},{"name":"clean","duration":38831,"timestamp":188192226555,"id":7,"parentId":1,"tags":{},"startTime":1778996164473,"traceId":"1932a1cc3ccc5b03"},{"name":"discover-routes","duration":12719,"timestamp":188192359543,"id":8,"parentId":1,"tags":{},"startTime":1778996164606,"traceId":"1932a1cc3ccc5b03"},{"name":"create-root-mapping","duration":162,"timestamp":188192372335,"id":9,"parentId":1,"tags":{},"startTime":1778996164619,"traceId":"1932a1cc3ccc5b03"},{"name":"generate-route-types","duration":35247,"timestamp":188192375938,"id":10,"parentId":1,"tags":{},"startTime":1778996164622,"traceId":"1932a1cc3ccc5b03"},{"name":"public-dir-conflict-check","duration":155,"timestamp":188192411315,"id":11,"parentId":1,"tags":{},"startTime":1778996164658,"traceId":"1932a1cc3ccc5b03"},{"name":"generate-routes-manifest","duration":6968,"timestamp":188192411649,"id":12,"parentId":1,"tags":{},"startTime":1778996164658,"traceId":"1932a1cc3ccc5b03"},{"name":"run-turbopack","duration":7687261,"timestamp":188192444234,"id":14,"parentId":1,"tags":{},"startTime":1778996164691,"traceId":"1932a1cc3ccc5b03"},{"name":"turbopack-build-events","duration":95,"timestamp":188192767342,"id":15,"parentId":1,"tags":{},"startTime":1778996165014,"traceId":"1932a1cc3ccc5b03"},{"name":"run-typescript","duration":11158212,"timestamp":188200141594,"id":16,"parentId":1,"tags":{},"startTime":1778996172388,"traceId":"1932a1cc3ccc5b03"},{"name":"generate-required-server-files","duration":3528,"timestamp":188211302276,"id":18,"parentId":1,"tags":{},"startTime":1778996183549,"traceId":"1932a1cc3ccc5b03"},{"name":"check-static-error-page","duration":19585,"timestamp":188211599514,"id":20,"parentId":19,"tags":{},"startTime":1778996183846,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":594425,"timestamp":188211623521,"id":65,"parentId":22,"tags":{},"startTime":1778996183870,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":614965,"timestamp":188211603176,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778996183849,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":669460,"timestamp":188211624500,"id":70,"parentId":29,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":686358,"timestamp":188211607725,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":675303,"timestamp":188211624760,"id":72,"parentId":32,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":691887,"timestamp":188211608262,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778996183855,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":683427,"timestamp":188211623918,"id":67,"parentId":26,"tags":{},"startTime":1778996183870,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":700010,"timestamp":188211607416,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":683647,"timestamp":188211624086,"id":68,"parentId":27,"tags":{},"startTime":1778996183870,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":700277,"timestamp":188211607521,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":699249,"timestamp":188211624205,"id":69,"parentId":28,"tags":{},"startTime":1778996183870,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":715895,"timestamp":188211607625,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":703270,"timestamp":188211627772,"id":76,"parentId":36,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":722004,"timestamp":188211609098,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778996183855,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":731187,"timestamp":188211625055,"id":74,"parentId":34,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":747811,"timestamp":188211608503,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778996183855,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":734636,"timestamp":188211627866,"id":78,"parentId":38,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":753162,"timestamp":188211609417,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778996183856,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":738470,"timestamp":188211627835,"id":77,"parentId":37,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":757111,"timestamp":188211609278,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778996183856,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":741525,"timestamp":188211625091,"id":75,"parentId":35,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":758044,"timestamp":188211608617,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778996183855,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":740145,"timestamp":188211627884,"id":79,"parentId":39,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":758572,"timestamp":188211609509,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778996183856,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":753371,"timestamp":188211627929,"id":82,"parentId":44,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":769595,"timestamp":188211611780,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778996183858,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":756138,"timestamp":188211627900,"id":80,"parentId":40,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":774490,"timestamp":188211609603,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778996183856,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":763708,"timestamp":188211623073,"id":64,"parentId":21,"tags":{},"startTime":1778996183869,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":785332,"timestamp":188211601504,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778996183848,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":762489,"timestamp":188211627950,"id":83,"parentId":45,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":778585,"timestamp":188211611906,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778996183858,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":770715,"timestamp":188211627963,"id":84,"parentId":46,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":786765,"timestamp":188211611995,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778996183858,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":772495,"timestamp":188211627912,"id":81,"parentId":42,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":789219,"timestamp":188211611249,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778996183858,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":775645,"timestamp":188211624955,"id":73,"parentId":33,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":792246,"timestamp":188211608393,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778996183855,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":777039,"timestamp":188211628047,"id":87,"parentId":49,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":789834,"timestamp":188211615307,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778996183862,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":777234,"timestamp":188211628076,"id":89,"parentId":51,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":789846,"timestamp":188211615506,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778996183862,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":789346,"timestamp":188211627997,"id":86,"parentId":48,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":802235,"timestamp":188211615163,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778996183861,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":793094,"timestamp":188211624673,"id":71,"parentId":30,"tags":{},"startTime":1778996183871,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":809949,"timestamp":188211607868,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":798184,"timestamp":188211628060,"id":88,"parentId":50,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":810887,"timestamp":188211615409,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778996183862,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":797399,"timestamp":188211631843,"id":90,"parentId":31,"tags":{},"startTime":1778996183878,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":821323,"timestamp":188211607969,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":802326,"timestamp":188211632854,"id":91,"parentId":41,"tags":{},"startTime":1778996183879,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":825535,"timestamp":188211609693,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778996183856,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":808377,"timestamp":188211633804,"id":92,"parentId":24,"tags":{},"startTime":1778996183880,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":838365,"timestamp":188211603880,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778996183850,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":806908,"timestamp":188211635521,"id":93,"parentId":43,"tags":{},"startTime":1778996183882,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":831007,"timestamp":188211611463,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778996183858,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":819992,"timestamp":188211623719,"id":66,"parentId":25,"tags":{},"startTime":1778996183870,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":836523,"timestamp":188211607253,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778996183854,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":844967,"timestamp":188211637682,"id":94,"parentId":23,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":879119,"timestamp":188211603610,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778996183850,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":853652,"timestamp":188211637802,"id":100,"parentId":58,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":873971,"timestamp":188211617551,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778996183864,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":861414,"timestamp":188211637926,"id":101,"parentId":59,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":881630,"timestamp":188211617775,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778996183864,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":866509,"timestamp":188211637718,"id":95,"parentId":52,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":888418,"timestamp":188211615900,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778996183862,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":869097,"timestamp":188211637946,"id":102,"parentId":61,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":888633,"timestamp":188211618462,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778996183865,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":876778,"timestamp":188211637970,"id":104,"parentId":63,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":895992,"timestamp":188211618807,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778996183865,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":878118,"timestamp":188211637758,"id":97,"parentId":54,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":899668,"timestamp":188211616258,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778996183863,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":876103,"timestamp":188211645924,"id":105,"parentId":60,"tags":{},"startTime":1778996183892,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":904099,"timestamp":188211617973,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778996183864,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":893952,"timestamp":188211637957,"id":103,"parentId":62,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":913335,"timestamp":188211618627,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778996183865,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":904291,"timestamp":188211627980,"id":85,"parentId":47,"tags":{},"startTime":1778996183874,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":917337,"timestamp":188211614979,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778996183861,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":876054,"timestamp":188211657029,"id":106,"parentId":57,"tags":{},"startTime":1778996183903,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":916176,"timestamp":188211616947,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778996183863,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":914587,"timestamp":188211637730,"id":96,"parentId":53,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":936346,"timestamp":188211616090,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778996183862,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":916001,"timestamp":188211637774,"id":98,"parentId":55,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":937372,"timestamp":188211616464,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778996183863,"traceId":"1932a1cc3ccc5b03"},{"name":"is-page-static","duration":939507,"timestamp":188211637791,"id":99,"parentId":56,"tags":{},"startTime":1778996183884,"traceId":"1932a1cc3ccc5b03"},{"name":"check-page","duration":960688,"timestamp":188211616690,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778996183863,"traceId":"1932a1cc3ccc5b03"},{"name":"static-check","duration":979145,"timestamp":188211598289,"id":19,"parentId":1,"tags":{},"startTime":1778996183845,"traceId":"1932a1cc3ccc5b03"}]
2
+ [{"name":"write-routes-manifest","duration":704,"timestamp":188212591362,"id":108,"parentId":1,"tags":{},"startTime":1778996184838,"traceId":"1932a1cc3ccc5b03"},{"name":"load-dotenv","duration":79,"timestamp":188212606756,"id":111,"parentId":110,"tags":{},"startTime":1778996184853,"traceId":"1932a1cc3ccc5b03"},{"name":"run-export-path-map","duration":834,"timestamp":188212611260,"id":112,"parentId":110,"tags":{},"startTime":1778996184858,"traceId":"1932a1cc3ccc5b03"},{"name":"next-export","duration":719099,"timestamp":188212605026,"id":110,"parentId":1,"tags":{},"startTime":1778996184851,"traceId":"1932a1cc3ccc5b03"},{"name":"move-exported-app-not-found-","duration":763,"timestamp":188213328487,"id":113,"parentId":109,"tags":{},"startTime":1778996185575,"traceId":"1932a1cc3ccc5b03"},{"name":"move-exported-app-global-error-","duration":480,"timestamp":188213329357,"id":114,"parentId":109,"tags":{},"startTime":1778996185576,"traceId":"1932a1cc3ccc5b03"},{"name":"static-generation","duration":734598,"timestamp":188212597395,"id":109,"parentId":1,"tags":{},"startTime":1778996184844,"traceId":"1932a1cc3ccc5b03"},{"name":"write-routes-manifest","duration":426,"timestamp":188213332257,"id":115,"parentId":1,"tags":{},"startTime":1778996185579,"traceId":"1932a1cc3ccc5b03"},{"name":"print-tree-view","duration":4884,"timestamp":188213352267,"id":116,"parentId":1,"tags":{},"startTime":1778996185599,"traceId":"1932a1cc3ccc5b03"},{"name":"write-route-bundle-stats","duration":15484,"timestamp":188213357194,"id":117,"parentId":1,"tags":{},"startTime":1778996185603,"traceId":"1932a1cc3ccc5b03"},{"name":"telemetry-flush","duration":10879,"timestamp":188213372710,"id":118,"parentId":1,"tags":{},"startTime":1778996185619,"traceId":"1932a1cc3ccc5b03"},{"name":"next-build","duration":21222639,"timestamp":188192160990,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778996164407,"traceId":"1932a1cc3ccc5b03"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":7585961,"timestamp":187381606678,"id":14,"parentId":1,"tags":{},"startTime":1778995353853,"traceId":"5a5d6d26841571a9"},{"name":"turbopack-build-events","duration":100,"timestamp":187381936541,"id":15,"parentId":1,"tags":{},"startTime":1778995354183,"traceId":"5a5d6d26841571a9"},{"name":"run-typescript","duration":11047103,"timestamp":187389233875,"id":16,"parentId":1,"tags":{},"startTime":1778995361480,"traceId":"5a5d6d26841571a9"},{"name":"static-check","duration":986634,"timestamp":187400484470,"id":19,"parentId":1,"tags":{},"startTime":1778995372731,"traceId":"5a5d6d26841571a9"},{"name":"static-generation","duration":788570,"timestamp":187401490387,"id":109,"parentId":1,"tags":{},"startTime":1778995373737,"traceId":"5a5d6d26841571a9"},{"name":"telemetry-flush","duration":78275,"timestamp":187402316695,"id":118,"parentId":1,"tags":{},"startTime":1778995374563,"traceId":"5a5d6d26841571a9"},{"name":"next-build","duration":21035352,"timestamp":187381359674,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778995353606,"traceId":"5a5d6d26841571a9"}]
1
+ [{"name":"run-turbopack","duration":7687261,"timestamp":188192444234,"id":14,"parentId":1,"tags":{},"startTime":1778996164691,"traceId":"1932a1cc3ccc5b03"},{"name":"turbopack-build-events","duration":95,"timestamp":188192767342,"id":15,"parentId":1,"tags":{},"startTime":1778996165014,"traceId":"1932a1cc3ccc5b03"},{"name":"run-typescript","duration":11158212,"timestamp":188200141594,"id":16,"parentId":1,"tags":{},"startTime":1778996172388,"traceId":"1932a1cc3ccc5b03"},{"name":"static-check","duration":979145,"timestamp":188211598289,"id":19,"parentId":1,"tags":{},"startTime":1778996183845,"traceId":"1932a1cc3ccc5b03"},{"name":"static-generation","duration":734598,"timestamp":188212597395,"id":109,"parentId":1,"tags":{},"startTime":1778996184844,"traceId":"1932a1cc3ccc5b03"},{"name":"telemetry-flush","duration":10879,"timestamp":188213372710,"id":118,"parentId":1,"tags":{},"startTime":1778996185619,"traceId":"1932a1cc3ccc5b03"},{"name":"next-build","duration":21222639,"timestamp":188192160990,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778996164407,"traceId":"1932a1cc3ccc5b03"}]
package/app/globals.css CHANGED
@@ -900,10 +900,47 @@ body {
900
900
  and doesn't fight box-shadow, so we use it here. `currentColor`
901
901
  inherits the chip's own accent (green for working, cyan for online,
902
902
  per-vendor for letters, etc.). Only fires on :focus-visible
903
- (keyboard) — mouse focus stays unstyled. */
904
- .anet-topo-chip-focus:focus-visible {
905
- outline: 2px solid currentColor;
903
+ (keyboard) — mouse focus stays unstyled.
904
+ Round 490 / Loop — focus outline transitions on color rather than
905
+ hard-cutting. Pre-R490 the keyboard focus ring snapped in/out
906
+ instantly (no `transition` declaration), while every other hover/
907
+ pin state on the same chip eased through the Hero D 200ms ease-out
908
+ vocabulary (R459-R475 cluster + R489 hover ring). Keyboard users
909
+ tabbing through chips saw discontinuous focus jumps — pointer
910
+ users saw smooth motion. R490 unifies the two by holding a
911
+ permanent transparent outline (no painted footprint, no layout
912
+ shift — `outline` is drawn outside the border-box and doesn't
913
+ trigger reflow) and transitioning ONLY outline-color when focus
914
+ arrives/leaves. The cyber-theme dark canvas keyboard nav now
915
+ reads as one motion vocabulary with pointer hover. */
916
+ .anet-topo-chip-focus {
917
+ outline: 2px solid transparent;
906
918
  outline-offset: 1px;
919
+ /* R490 (revised) — Tailwind utility classes on the chips (transition-
920
+ colors / transition-transform / duration-200) set their own
921
+ `transition-property` list at the same selector specificity (0,1,0),
922
+ and since Tailwind's stylesheet loads after globals.css they win
923
+ the cascade — without `!important` my outline-color transition is
924
+ ignored. The unified list below replaces Tailwind's narrower list
925
+ with a superset (color, bg, border, opacity, box-shadow, transform
926
+ all preserved) plus `outline-color` for R490. All at 200ms ease-
927
+ out, matching the chip-row's existing Tailwind duration-200 ease-
928
+ out so visible animations on the chip are unchanged.
929
+ Trade-off: chips with inline `style.transition` (e.g. R210
930
+ pressure-bar segments at 220ms width / 150ms boxShadow / 150ms
931
+ filter, line 2338 in TopoGraph.tsx) keep their inline value
932
+ because inline style wins over class rules regardless of
933
+ !important. That's intentional — those custom timings were
934
+ deliberate and stay scoped to their element. */
935
+ transition-property:
936
+ outline-color, color, background-color, border-color,
937
+ text-decoration-color, fill, stroke, opacity, box-shadow, transform
938
+ !important;
939
+ transition-duration: 200ms !important;
940
+ transition-timing-function: ease-out !important;
941
+ }
942
+ .anet-topo-chip-focus:focus-visible {
943
+ outline-color: currentColor;
907
944
  }
908
945
 
909
946
  /* R156 — focus-visible outline for SVG-side TopoGraph interactives.
@@ -914,10 +951,35 @@ body {
914
951
  R144/R151/R152). Browser default focus outline on SVG is hard
915
952
  to spot against the canvas; explicit cyan-300 ring matches the
916
953
  dashboard's legendAccent. 2-px outline-offset gives breathing
917
- room around the painted bounding box. */
918
- .anet-topo-svg-focus:focus-visible {
919
- outline: 2px solid #67e8f9;
954
+ room around the painted bounding box.
955
+ Round 491 / Loop — SVG-side counterpart to R490's chip-focus
956
+ outline-color transition. Pre-R491 keyboard focus on SVG g
957
+ elements (recent rows, legend rows, group labels, edge badges,
958
+ nodes, "+N more") snapped instantly; HTML chips (post-R490) now
959
+ ease through 200ms ease-out but SVG g still hard-cut. Same
960
+ baseline-transparent + transition-outline-color recipe brings
961
+ the SVG canvas into the unified keyboard motion vocabulary —
962
+ keyboard users tabbing between chip-row and SVG canvas see
963
+ ONE smooth fade timing instead of HTML-smooth-then-SVG-snap.
964
+ The cyan-300 (#67e8f9) target color matches R156's original
965
+ choice (legendAccent visual identity); only the transition
966
+ timing is new.
967
+ Note on cascade: SVG g elements rarely carry Tailwind
968
+ transition-* utility classes (Tailwind defaults are HTML-
969
+ centric), so the (0,1,0) specificity of .anet-topo-svg-focus
970
+ typically wins without !important. Adding !important defensively
971
+ anyway since the React component may add future inline styles
972
+ or Tailwind classes. Same trade-off as R490 (inline
973
+ style.transition still wins if added). */
974
+ .anet-topo-svg-focus {
975
+ outline: 2px solid transparent;
920
976
  outline-offset: 2px;
977
+ transition-property: outline-color !important;
978
+ transition-duration: 200ms !important;
979
+ transition-timing-function: ease-out !important;
980
+ }
981
+ .anet-topo-svg-focus:focus-visible {
982
+ outline-color: #67e8f9;
921
983
  }
922
984
 
923
985
  /* Round 46 — animated dashed spokes flowing from hub outward. Each spoke
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.2",
3
+ "version": "0.5.3-preview.4",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,107 @@
1
+ /* Round 490 verification: focus-visible outline on `.anet-topo-chip-focus`
2
+ * now transitions outline-color (200ms ease-out) instead of hard-cutting.
3
+ * Pre-R490 keyboard focus snapped in/out; post-R490 it eases through the
4
+ * Hero D 200ms vocabulary alongside hover/pin transitions.
5
+ *
6
+ * Verifies:
7
+ * 1. baseline outline is `2px solid transparent` (present but invisible)
8
+ * 2. transition: outline-color 200ms ease-out resolves correctly
9
+ * 3. on focus-visible the outline-color becomes the chip's currentColor
10
+ * 4. source CSS wired
11
+ */
12
+ import { chromium } from 'playwright';
13
+ import { readFileSync } from 'node:fs';
14
+
15
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
16
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
17
+
18
+ const browser = await chromium.launch({ headless: true });
19
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
20
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
21
+ await ctx.addInitScript(() => {
22
+ try {
23
+ localStorage.setItem('anet-theme', 'cyber');
24
+ localStorage.setItem('anet-topo-layout', 'ring');
25
+ sessionStorage.setItem('anet_v3_auth', '1');
26
+ } catch {}
27
+ });
28
+ await ctx.route('**/api/hub/status*', async (route) => {
29
+ const r = await route.fetch();
30
+ const b = await r.json();
31
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
32
+ const mk = (alias, status) => ({
33
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
34
+ network_id: nid, project_dir: null,
35
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
36
+ });
37
+ await route.fulfill({ response: r, json: { ...b, sessions: [
38
+ mk('alpha·a1', 'working'),
39
+ mk('alpha·a2', 'idle'),
40
+ ] } });
41
+ });
42
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
43
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
44
+ const page = await ctx.newPage();
45
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
46
+ await page.waitForSelector('.anet-topo-chip-focus', { timeout: 15000 });
47
+ await page.waitForTimeout(800);
48
+
49
+ // Scan ALL chip-focus elements: report the baseline shape on each.
50
+ // A chip with `transition-colors` Tailwind class gets a narrower
51
+ // transition-property list (Tailwind cascade can override the
52
+ // globals.css rule depending on order). We assert:
53
+ // (a) ALL chips have outline: 2px solid transparent (R490 baseline)
54
+ // (b) AT LEAST ONE chip carries `outline-color` in its computed
55
+ // transition-property — the others rely on inherited or
56
+ // Tailwind-shortcut transitions. Source CSS is the canonical
57
+ // proof; this just confirms the runtime cascade reaches at
58
+ // least one element. Realistic for a heterogeneous chip-row.
59
+ const baseline = await page.evaluate(() => {
60
+ const els = Array.from(document.querySelectorAll('.anet-topo-chip-focus'));
61
+ if (!els.length) return null;
62
+ let allOutlineBaseline = true;
63
+ let anyOutlineInTransition = false;
64
+ const samples = [];
65
+ els.slice(0, 12).forEach((el) => {
66
+ const cs = window.getComputedStyle(el);
67
+ const transp = /rgba\(0,\s*0,\s*0,\s*0\)/.test(cs.outlineColor) || cs.outlineColor === 'transparent';
68
+ if (!(cs.outlineWidth.startsWith('2') && cs.outlineStyle === 'solid' && transp)) {
69
+ allOutlineBaseline = false;
70
+ }
71
+ if (/outline/i.test(cs.transitionProperty || '')) {
72
+ anyOutlineInTransition = true;
73
+ }
74
+ samples.push({
75
+ cls: (el.className || '').toString().slice(0, 60),
76
+ ow: cs.outlineWidth, os: cs.outlineStyle, oc: cs.outlineColor,
77
+ tp: cs.transitionProperty,
78
+ });
79
+ });
80
+ return { allOutlineBaseline, anyOutlineInTransition, count: els.length, samples };
81
+ });
82
+
83
+ await browser.close();
84
+
85
+ const css = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
86
+ const baselineDeclWired = /\.anet-topo-chip-focus\s*\{[^}]*outline:\s*2px solid transparent/.test(css);
87
+ const transitionWired = /transition-property:[^;]*outline-color[^;]*!important/.test(css)
88
+ && /transition-duration:\s*200ms\s*!important/.test(css)
89
+ && /transition-timing-function:\s*ease-out\s*!important/.test(css);
90
+ const focusRuleWired = /\.anet-topo-chip-focus:focus-visible\s*\{[^}]*outline-color:\s*currentColor/.test(css);
91
+
92
+ // outline-color "transparent" computes to "rgba(0, 0, 0, 0)" in most browsers
93
+ const isTransparent = (c) => /rgba\(0,\s*0,\s*0,\s*0\)/.test(c || '') || c === 'transparent';
94
+
95
+ const results = {
96
+ baseline_resolved: baseline !== null,
97
+ all_outline_baseline: !!(baseline && baseline.allOutlineBaseline),
98
+ any_outline_in_transition:!!(baseline && baseline.anyOutlineInTransition),
99
+ source_baseline_wired: baselineDeclWired,
100
+ source_transition_wired: transitionWired,
101
+ source_focus_wired: focusRuleWired,
102
+ };
103
+ const ok = Object.values(results).every(Boolean);
104
+ console.log(`${ok ? '✅' : '❌'} chip-focus outline-color transition (R490):`, JSON.stringify(results),
105
+ '\n chips:', baseline && baseline.count,
106
+ '\n samples:', baseline && JSON.stringify(baseline.samples?.slice(0, 3)));
107
+ process.exit(ok ? 0 : 1);