@sleep2agi/agent-network-dashboard 0.4.6-preview.262 → 0.4.6-preview.264

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 (140) 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.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  126. package/.next/server/middleware-build-manifest.js +3 -3
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/static/chunks/{05_9zsjpgodz1.js → 0-1_b99y96dlm.js} +1 -1
  130. package/.next/static/chunks/{16w1xd17jz3ut.js → 0-5~3_-tx15pk.js} +1 -1
  131. package/.next/static/chunks/{0ihzd85-9dets.js → 0tqqhfhdufy8..js} +1 -1
  132. package/.next/trace +2 -2
  133. package/.next/trace-build +1 -1
  134. package/app/components/TopoGraph.tsx +30 -8
  135. package/package.json +1 -1
  136. package/scripts/topo-legend-header-symmetric-inset-test.mjs +112 -0
  137. package/scripts/topo-recent-panel-footer-breath-test.mjs +142 -0
  138. /package/.next/static/{9Pp1UpZXtsktxWzFcb-HR → WYyizc1uAWRRWPg7Miftk}/_buildManifest.js +0 -0
  139. /package/.next/static/{9Pp1UpZXtsktxWzFcb-HR → WYyizc1uAWRRWPg7Miftk}/_clientMiddlewareManifest.js +0 -0
  140. /package/.next/static/{9Pp1UpZXtsktxWzFcb-HR → WYyizc1uAWRRWPg7Miftk}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.4.6-preview.262"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.4.6-preview.264"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":296,"timestamp":95217429774,"id":4,"parentId":1,"tags":{},"startTime":1778903189676,"traceId":"6f8211d62336a2be"},{"name":"load-custom-routes","duration":533,"timestamp":95217430218,"id":5,"parentId":1,"tags":{},"startTime":1778903189676,"traceId":"6f8211d62336a2be"},{"name":"create-dist-dir","duration":733,"timestamp":95217430801,"id":6,"parentId":1,"tags":{},"startTime":1778903189677,"traceId":"6f8211d62336a2be"},{"name":"clean","duration":30569,"timestamp":95217432188,"id":7,"parentId":1,"tags":{},"startTime":1778903189678,"traceId":"6f8211d62336a2be"},{"name":"discover-routes","duration":9119,"timestamp":95217549928,"id":8,"parentId":1,"tags":{},"startTime":1778903189796,"traceId":"6f8211d62336a2be"},{"name":"create-root-mapping","duration":110,"timestamp":95217559108,"id":9,"parentId":1,"tags":{},"startTime":1778903189805,"traceId":"6f8211d62336a2be"},{"name":"generate-route-types","duration":44605,"timestamp":95217562194,"id":10,"parentId":1,"tags":{},"startTime":1778903189808,"traceId":"6f8211d62336a2be"},{"name":"public-dir-conflict-check","duration":181,"timestamp":95217606915,"id":11,"parentId":1,"tags":{},"startTime":1778903189853,"traceId":"6f8211d62336a2be"},{"name":"generate-routes-manifest","duration":6079,"timestamp":95217607287,"id":12,"parentId":1,"tags":{},"startTime":1778903189854,"traceId":"6f8211d62336a2be"},{"name":"run-turbopack","duration":6343611,"timestamp":95217621414,"id":14,"parentId":1,"tags":{},"startTime":1778903189868,"traceId":"6f8211d62336a2be"},{"name":"turbopack-build-events","duration":83,"timestamp":95217932414,"id":15,"parentId":1,"tags":{},"startTime":1778903190179,"traceId":"6f8211d62336a2be"},{"name":"run-typescript","duration":9188187,"timestamp":95223973640,"id":16,"parentId":1,"tags":{},"startTime":1778903196220,"traceId":"6f8211d62336a2be"},{"name":"generate-required-server-files","duration":2370,"timestamp":95233162904,"id":18,"parentId":1,"tags":{},"startTime":1778903205409,"traceId":"6f8211d62336a2be"},{"name":"check-static-error-page","duration":15252,"timestamp":95233345038,"id":20,"parentId":19,"tags":{},"startTime":1778903205591,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":478118,"timestamp":95233363091,"id":63,"parentId":22,"tags":{},"startTime":1778903205609,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":492989,"timestamp":95233348419,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778903205595,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":533986,"timestamp":95233363676,"id":67,"parentId":28,"tags":{},"startTime":1778903205610,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":545696,"timestamp":95233352071,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778903205598,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":573945,"timestamp":95233365643,"id":70,"parentId":32,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":586931,"timestamp":95233352745,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":577207,"timestamp":95233362679,"id":62,"parentId":21,"tags":{},"startTime":1778903205609,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":593285,"timestamp":95233346645,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778903205593,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":583442,"timestamp":95233363347,"id":65,"parentId":26,"tags":{},"startTime":1778903205610,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":595086,"timestamp":95233351779,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778903205598,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":595317,"timestamp":95233363822,"id":68,"parentId":29,"tags":{},"startTime":1778903205610,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":607009,"timestamp":95233352196,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778903205598,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":595955,"timestamp":95233363449,"id":66,"parentId":27,"tags":{},"startTime":1778903205610,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":607535,"timestamp":95233351904,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778903205598,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":598374,"timestamp":95233365717,"id":71,"parentId":33,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":611277,"timestamp":95233352871,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":598764,"timestamp":95233365931,"id":74,"parentId":36,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":611136,"timestamp":95233353604,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778903205600,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":599149,"timestamp":95233365994,"id":76,"parentId":38,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":611258,"timestamp":95233353929,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778903205600,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":603423,"timestamp":95233366037,"id":78,"parentId":40,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":615318,"timestamp":95233354184,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778903205600,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":607509,"timestamp":95233366046,"id":79,"parentId":41,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":619320,"timestamp":95233354277,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":611670,"timestamp":95233366061,"id":80,"parentId":42,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":623386,"timestamp":95233354389,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":611955,"timestamp":95233365980,"id":75,"parentId":37,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":624197,"timestamp":95233353786,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778903205600,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":615621,"timestamp":95233366074,"id":81,"parentId":43,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":627254,"timestamp":95233354486,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":617868,"timestamp":95233366087,"id":82,"parentId":44,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":629430,"timestamp":95233354588,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":621354,"timestamp":95233365822,"id":73,"parentId":35,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":634101,"timestamp":95233353132,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":621287,"timestamp":95233366097,"id":83,"parentId":45,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":632722,"timestamp":95233354698,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":624973,"timestamp":95233366112,"id":84,"parentId":46,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":636330,"timestamp":95233354803,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":625940,"timestamp":95233366135,"id":86,"parentId":48,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":635588,"timestamp":95233356533,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778903205603,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":628850,"timestamp":95233369595,"id":88,"parentId":24,"tags":{},"startTime":1778903205616,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":649526,"timestamp":95233348963,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778903205595,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":638639,"timestamp":95233365436,"id":69,"parentId":30,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":651785,"timestamp":95233352341,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":633788,"timestamp":95233370736,"id":89,"parentId":31,"tags":{},"startTime":1778903205617,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":652111,"timestamp":95233352457,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":638703,"timestamp":95233366022,"id":77,"parentId":39,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":650679,"timestamp":95233354076,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778903205600,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":639786,"timestamp":95233365791,"id":72,"parentId":34,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":652620,"timestamp":95233352998,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778903205599,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":640575,"timestamp":95233366125,"id":85,"parentId":47,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":651808,"timestamp":95233354933,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778903205601,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":641337,"timestamp":95233366147,"id":87,"parentId":49,"tags":{},"startTime":1778903205612,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":650891,"timestamp":95233356684,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778903205603,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":645369,"timestamp":95233363225,"id":64,"parentId":25,"tags":{},"startTime":1778903205609,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":657034,"timestamp":95233351601,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778903205598,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":641604,"timestamp":95233373152,"id":93,"parentId":52,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":657310,"timestamp":95233357492,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778903205604,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":650302,"timestamp":95233373196,"id":97,"parentId":57,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":664583,"timestamp":95233358968,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778903205605,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":657787,"timestamp":95233373209,"id":98,"parentId":59,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":671345,"timestamp":95233359720,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778903205606,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":671820,"timestamp":95233373226,"id":99,"parentId":60,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":685245,"timestamp":95233359874,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778903205606,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":679446,"timestamp":95233373242,"id":100,"parentId":61,"tags":{},"startTime":1778903205620,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":692718,"timestamp":95233360043,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778903205606,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":676820,"timestamp":95233383680,"id":101,"parentId":58,"tags":{},"startTime":1778903205630,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":701387,"timestamp":95233359172,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778903205605,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":687924,"timestamp":95233373093,"id":90,"parentId":23,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":712360,"timestamp":95233348708,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778903205595,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":690944,"timestamp":95233373124,"id":91,"parentId":50,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":706988,"timestamp":95233357130,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778903205603,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":660085,"timestamp":95233407730,"id":102,"parentId":55,"tags":{},"startTime":1778903205654,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":709691,"timestamp":95233358175,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778903205604,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":694793,"timestamp":95233373161,"id":94,"parentId":53,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":710287,"timestamp":95233357701,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778903205604,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":704340,"timestamp":95233373139,"id":92,"parentId":51,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":720199,"timestamp":95233357327,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778903205604,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":709312,"timestamp":95233373175,"id":95,"parentId":54,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":724630,"timestamp":95233357909,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778903205604,"traceId":"6f8211d62336a2be"},{"name":"is-page-static","duration":718425,"timestamp":95233373187,"id":96,"parentId":56,"tags":{},"startTime":1778903205619,"traceId":"6f8211d62336a2be"},{"name":"check-page","duration":732896,"timestamp":95233358753,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778903205605,"traceId":"6f8211d62336a2be"},{"name":"static-check","duration":747838,"timestamp":95233343846,"id":19,"parentId":1,"tags":{},"startTime":1778903205590,"traceId":"6f8211d62336a2be"},{"name":"write-routes-manifest","duration":418,"timestamp":95234097780,"id":104,"parentId":1,"tags":{},"startTime":1778903206344,"traceId":"6f8211d62336a2be"},{"name":"load-dotenv","duration":73,"timestamp":95234108899,"id":107,"parentId":106,"tags":{},"startTime":1778903206355,"traceId":"6f8211d62336a2be"},{"name":"run-export-path-map","duration":559,"timestamp":95234112782,"id":108,"parentId":106,"tags":{},"startTime":1778903206359,"traceId":"6f8211d62336a2be"},{"name":"next-export","duration":551518,"timestamp":95234107506,"id":106,"parentId":1,"tags":{},"startTime":1778903206354,"traceId":"6f8211d62336a2be"}]
2
- [{"name":"move-exported-app-not-found-","duration":3228,"timestamp":95234663916,"id":109,"parentId":105,"tags":{},"startTime":1778903206910,"traceId":"6f8211d62336a2be"},{"name":"move-exported-app-global-error-","duration":1286,"timestamp":95234667255,"id":110,"parentId":105,"tags":{},"startTime":1778903206914,"traceId":"6f8211d62336a2be"},{"name":"static-generation","duration":569737,"timestamp":95234101707,"id":105,"parentId":1,"tags":{},"startTime":1778903206348,"traceId":"6f8211d62336a2be"},{"name":"write-routes-manifest","duration":519,"timestamp":95234671671,"id":111,"parentId":1,"tags":{},"startTime":1778903206918,"traceId":"6f8211d62336a2be"},{"name":"print-tree-view","duration":5049,"timestamp":95234690907,"id":112,"parentId":1,"tags":{},"startTime":1778903206937,"traceId":"6f8211d62336a2be"},{"name":"write-route-bundle-stats","duration":15310,"timestamp":95234695999,"id":113,"parentId":1,"tags":{},"startTime":1778903206942,"traceId":"6f8211d62336a2be"},{"name":"telemetry-flush","duration":17719,"timestamp":95234711347,"id":114,"parentId":1,"tags":{},"startTime":1778903206958,"traceId":"6f8211d62336a2be"},{"name":"next-build","duration":17350357,"timestamp":95217378746,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778903189625,"traceId":"6f8211d62336a2be"}]
1
+ [{"name":"generate-buildid","duration":298,"timestamp":96308269979,"id":4,"parentId":1,"tags":{},"startTime":1778904280516,"traceId":"8f95cc17baf65771"},{"name":"load-custom-routes","duration":673,"timestamp":96308270425,"id":5,"parentId":1,"tags":{},"startTime":1778904280517,"traceId":"8f95cc17baf65771"},{"name":"create-dist-dir","duration":805,"timestamp":96308271160,"id":6,"parentId":1,"tags":{},"startTime":1778904280517,"traceId":"8f95cc17baf65771"},{"name":"clean","duration":29351,"timestamp":96308272639,"id":7,"parentId":1,"tags":{},"startTime":1778904280519,"traceId":"8f95cc17baf65771"},{"name":"discover-routes","duration":10162,"timestamp":96308384974,"id":8,"parentId":1,"tags":{},"startTime":1778904280631,"traceId":"8f95cc17baf65771"},{"name":"create-root-mapping","duration":115,"timestamp":96308395195,"id":9,"parentId":1,"tags":{},"startTime":1778904280641,"traceId":"8f95cc17baf65771"},{"name":"generate-route-types","duration":31472,"timestamp":96308397644,"id":10,"parentId":1,"tags":{},"startTime":1778904280644,"traceId":"8f95cc17baf65771"},{"name":"public-dir-conflict-check","duration":99,"timestamp":96308429198,"id":11,"parentId":1,"tags":{},"startTime":1778904280675,"traceId":"8f95cc17baf65771"},{"name":"generate-routes-manifest","duration":4758,"timestamp":96308429403,"id":12,"parentId":1,"tags":{},"startTime":1778904280676,"traceId":"8f95cc17baf65771"},{"name":"run-turbopack","duration":5164692,"timestamp":96308439647,"id":14,"parentId":1,"tags":{},"startTime":1778904280686,"traceId":"8f95cc17baf65771"},{"name":"turbopack-build-events","duration":73,"timestamp":96308723262,"id":15,"parentId":1,"tags":{},"startTime":1778904280970,"traceId":"8f95cc17baf65771"},{"name":"run-typescript","duration":9077753,"timestamp":96313613873,"id":16,"parentId":1,"tags":{},"startTime":1778904285860,"traceId":"8f95cc17baf65771"},{"name":"generate-required-server-files","duration":2826,"timestamp":96322692734,"id":18,"parentId":1,"tags":{},"startTime":1778904294939,"traceId":"8f95cc17baf65771"},{"name":"check-static-error-page","duration":14716,"timestamp":96322881528,"id":20,"parentId":19,"tags":{},"startTime":1778904295128,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":440906,"timestamp":96322899755,"id":63,"parentId":22,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":455989,"timestamp":96322884857,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778904295131,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":483556,"timestamp":96322899890,"id":64,"parentId":25,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":495374,"timestamp":96322888185,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778904295134,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":503531,"timestamp":96322900983,"id":70,"parentId":32,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":515236,"timestamp":96322889359,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":511189,"timestamp":96322901078,"id":71,"parentId":33,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":522831,"timestamp":96322889508,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":514367,"timestamp":96322899339,"id":62,"parentId":21,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":530508,"timestamp":96322883252,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778904295130,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":516166,"timestamp":96322901167,"id":72,"parentId":34,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":527934,"timestamp":96322889628,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":527814,"timestamp":96322900052,"id":65,"parentId":26,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":539577,"timestamp":96322888363,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":529270,"timestamp":96322901320,"id":74,"parentId":36,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":540320,"timestamp":96322890320,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":533281,"timestamp":96322901357,"id":75,"parentId":37,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":544153,"timestamp":96322890538,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":533605,"timestamp":96322901382,"id":76,"parentId":38,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":544359,"timestamp":96322890686,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":539045,"timestamp":96322901411,"id":78,"parentId":40,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":549562,"timestamp":96322890940,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":546651,"timestamp":96322901427,"id":79,"parentId":41,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":557060,"timestamp":96322891071,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":548242,"timestamp":96322901443,"id":80,"parentId":42,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":558519,"timestamp":96322891214,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":551952,"timestamp":96322900178,"id":66,"parentId":27,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":563688,"timestamp":96322888491,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":552885,"timestamp":96322901455,"id":81,"parentId":43,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":563057,"timestamp":96322891331,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":554952,"timestamp":96322900462,"id":67,"parentId":28,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":566827,"timestamp":96322888626,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":557271,"timestamp":96322901471,"id":82,"parentId":44,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":567354,"timestamp":96322891439,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":557936,"timestamp":96322901488,"id":83,"parentId":45,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":567912,"timestamp":96322891549,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562063,"timestamp":96322900625,"id":68,"parentId":29,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":573978,"timestamp":96322888752,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562359,"timestamp":96322901536,"id":86,"parentId":48,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":571996,"timestamp":96322891948,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562705,"timestamp":96322901395,"id":77,"parentId":39,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":573327,"timestamp":96322890804,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":565671,"timestamp":96322901551,"id":87,"parentId":49,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":575196,"timestamp":96322892076,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":564365,"timestamp":96322905125,"id":88,"parentId":24,"tags":{},"startTime":1778904295151,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":584108,"timestamp":96322885424,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778904295132,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":584515,"timestamp":96322900774,"id":69,"parentId":30,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":596456,"timestamp":96322888895,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":580671,"timestamp":96322906319,"id":89,"parentId":31,"tags":{},"startTime":1778904295153,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":598001,"timestamp":96322889061,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":597884,"timestamp":96322901516,"id":85,"parentId":47,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":607634,"timestamp":96322891821,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":598070,"timestamp":96322901499,"id":84,"parentId":46,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":607925,"timestamp":96322891675,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":602072,"timestamp":96322901203,"id":73,"parentId":35,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":613553,"timestamp":96322889768,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":599222,"timestamp":96322912983,"id":96,"parentId":56,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":617768,"timestamp":96322894484,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":606720,"timestamp":96322912996,"id":97,"parentId":57,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":625011,"timestamp":96322894754,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":614307,"timestamp":96322912887,"id":91,"parentId":50,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":634722,"timestamp":96322892518,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":614566,"timestamp":96322913031,"id":98,"parentId":59,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":632102,"timestamp":96322895538,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":621861,"timestamp":96322913069,"id":100,"parentId":61,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":639092,"timestamp":96322895895,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":629990,"timestamp":96322913051,"id":99,"parentId":60,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":647384,"timestamp":96322895716,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":617312,"timestamp":96322925896,"id":101,"parentId":55,"tags":{},"startTime":1778904295172,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":649475,"timestamp":96322893765,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778904295140,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":631182,"timestamp":96322912933,"id":93,"parentId":52,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":651246,"timestamp":96322892907,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":631770,"timestamp":96322912905,"id":92,"parentId":51,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":651995,"timestamp":96322892706,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":618855,"timestamp":96322931818,"id":102,"parentId":58,"tags":{},"startTime":1778904295178,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":655704,"timestamp":96322895029,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":638725,"timestamp":96322912853,"id":90,"parentId":23,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":666430,"timestamp":96322885173,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778904295131,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":648916,"timestamp":96322912951,"id":94,"parentId":53,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":668714,"timestamp":96322893192,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":655548,"timestamp":96322912967,"id":95,"parentId":54,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":675083,"timestamp":96322893463,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778904295140,"traceId":"8f95cc17baf65771"},{"name":"static-check","duration":688107,"timestamp":96322880495,"id":19,"parentId":1,"tags":{},"startTime":1778904295127,"traceId":"8f95cc17baf65771"},{"name":"write-routes-manifest","duration":427,"timestamp":96323575871,"id":104,"parentId":1,"tags":{},"startTime":1778904295822,"traceId":"8f95cc17baf65771"},{"name":"load-dotenv","duration":33,"timestamp":96323586735,"id":107,"parentId":106,"tags":{},"startTime":1778904295833,"traceId":"8f95cc17baf65771"},{"name":"run-export-path-map","duration":524,"timestamp":96323589189,"id":108,"parentId":106,"tags":{},"startTime":1778904295835,"traceId":"8f95cc17baf65771"},{"name":"next-export","duration":607403,"timestamp":96323585539,"id":106,"parentId":1,"tags":{},"startTime":1778904295832,"traceId":"8f95cc17baf65771"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2171,"timestamp":96324196824,"id":109,"parentId":105,"tags":{},"startTime":1778904296443,"traceId":"8f95cc17baf65771"},{"name":"move-exported-app-global-error-","duration":532,"timestamp":96324199105,"id":110,"parentId":105,"tags":{},"startTime":1778904296445,"traceId":"8f95cc17baf65771"},{"name":"static-generation","duration":622142,"timestamp":96323579693,"id":105,"parentId":1,"tags":{},"startTime":1778904295826,"traceId":"8f95cc17baf65771"},{"name":"write-routes-manifest","duration":390,"timestamp":96324201998,"id":111,"parentId":1,"tags":{},"startTime":1778904296448,"traceId":"8f95cc17baf65771"},{"name":"print-tree-view","duration":4994,"timestamp":96324218266,"id":112,"parentId":1,"tags":{},"startTime":1778904296465,"traceId":"8f95cc17baf65771"},{"name":"write-route-bundle-stats","duration":12307,"timestamp":96324223293,"id":113,"parentId":1,"tags":{},"startTime":1778904296470,"traceId":"8f95cc17baf65771"},{"name":"telemetry-flush","duration":27831,"timestamp":96324235625,"id":114,"parentId":1,"tags":{},"startTime":1778904296482,"traceId":"8f95cc17baf65771"},{"name":"next-build","duration":16040594,"timestamp":96308222893,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778904280469,"traceId":"8f95cc17baf65771"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6343611,"timestamp":95217621414,"id":14,"parentId":1,"tags":{},"startTime":1778903189868,"traceId":"6f8211d62336a2be"},{"name":"turbopack-build-events","duration":83,"timestamp":95217932414,"id":15,"parentId":1,"tags":{},"startTime":1778903190179,"traceId":"6f8211d62336a2be"},{"name":"run-typescript","duration":9188187,"timestamp":95223973640,"id":16,"parentId":1,"tags":{},"startTime":1778903196220,"traceId":"6f8211d62336a2be"},{"name":"static-check","duration":747838,"timestamp":95233343846,"id":19,"parentId":1,"tags":{},"startTime":1778903205590,"traceId":"6f8211d62336a2be"},{"name":"static-generation","duration":569737,"timestamp":95234101707,"id":105,"parentId":1,"tags":{},"startTime":1778903206348,"traceId":"6f8211d62336a2be"},{"name":"telemetry-flush","duration":17719,"timestamp":95234711347,"id":114,"parentId":1,"tags":{},"startTime":1778903206958,"traceId":"6f8211d62336a2be"},{"name":"next-build","duration":17350357,"timestamp":95217378746,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778903189625,"traceId":"6f8211d62336a2be"}]
1
+ [{"name":"run-turbopack","duration":5164692,"timestamp":96308439647,"id":14,"parentId":1,"tags":{},"startTime":1778904280686,"traceId":"8f95cc17baf65771"},{"name":"turbopack-build-events","duration":73,"timestamp":96308723262,"id":15,"parentId":1,"tags":{},"startTime":1778904280970,"traceId":"8f95cc17baf65771"},{"name":"run-typescript","duration":9077753,"timestamp":96313613873,"id":16,"parentId":1,"tags":{},"startTime":1778904285860,"traceId":"8f95cc17baf65771"},{"name":"static-check","duration":688107,"timestamp":96322880495,"id":19,"parentId":1,"tags":{},"startTime":1778904295127,"traceId":"8f95cc17baf65771"},{"name":"static-generation","duration":622142,"timestamp":96323579693,"id":105,"parentId":1,"tags":{},"startTime":1778904295826,"traceId":"8f95cc17baf65771"},{"name":"telemetry-flush","duration":27831,"timestamp":96324235625,"id":114,"parentId":1,"tags":{},"startTime":1778904296482,"traceId":"8f95cc17baf65771"},{"name":"next-build","duration":16040594,"timestamp":96308222893,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778904280469,"traceId":"8f95cc17baf65771"}]
@@ -5372,7 +5372,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5372
5372
  onMouseLeave={() => setHoveredPanel(prev => prev === 'recent' ? null : prev)}
5373
5373
  >
5374
5374
  <rect
5375
- x="0" y="0" width="230" height="84" rx="10"
5375
+ x="0" y="0" width="230" height="88" rx="10"
5376
5376
  fill={pal.legendBox.fill}
5377
5377
  stroke={pal.legendBox.stroke}
5378
5378
  opacity={isLight ? 0.97 : 0.92}
@@ -5942,12 +5942,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5942
5942
  rest. The R96 "X flows" header tells the total but
5943
5943
  doesn't say "you're seeing top-3". This hint fires
5944
5944
  only when flowLinks.length > 3 so quiet fleets stay
5945
- clean. Footer y=82 sits in the 10-px gap between
5946
- row 3 (baseline 70) and the panel bottom (84), so
5947
- overlap-test geometry is unchanged. fontStyle=italic
5948
- + opacity 0.55 reads as muted metadata, not an
5949
- actionable row — matches the R110 empty-state hint
5950
- idiom. */}
5945
+ clean. Footer y=82 sits between row 3 (baseline 70)
5946
+ and the panel bottom; the R256 height bump 84→88
5947
+ adds 6 px of clear below the footer baseline so the
5948
+ on-hover textDecoration:underline (which renders
5949
+ ~3-4 px below baseline → y≈85-86) tucks INSIDE the
5950
+ panel border instead of clipping past it at the
5951
+ old 84-px floor. Overlap-test geometry unchanged
5952
+ (panel selector at translate(16,16); corner-to-
5953
+ center distance 342.6 → 340 still > 325 ring-clear
5954
+ threshold). fontStyle=italic + opacity 0.55 reads
5955
+ as muted metadata, not an actionable row — matches
5956
+ the R110 empty-state hint idiom. */}
5951
5957
  {(() => {
5952
5958
  // Round 221 / Loop: footer always-mounts; visibility
5953
5959
  // crossfades via wrapper <g> opacity instead of React
@@ -6092,7 +6098,23 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6092
6098
  paired. Title text at x=13 y=21; total fleet count
6093
6099
  right-aligned at x=215 y=21 in the accent colour. */}
6094
6100
  <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700">legend</text>
6095
- <text x="215" y="21" textAnchor="end" fill={pal.legendAccent} fontSize="10" fontFamily="monospace" data-legend-panel-count>{sessions.length} node{sessions.length === 1 ? '' : 's'}</text>
6101
+ {/* Round 257 / Loop: legend panel header count picks up the
6102
+ symmetric 13L/13R inner-padding pattern from the recent-
6103
+ signal panel. Pre-R257 the legend header was 13px from
6104
+ the left edge (`x=13` title) but only 9px from the right
6105
+ edge (`x=215` end-anchored count → 224-215=9), while the
6106
+ recent-signal panel header used 13px on BOTH sides (x=13
6107
+ title + x=217 end-count → 230-217=13). The two panels
6108
+ sit as a side-by-side corner pair — mismatched header
6109
+ inner-padding read as a typographic nit on the panel
6110
+ chrome. x=211 (= 224-13) restores symmetric 13L/13R so
6111
+ the panel pair shares one inset rhythm. The per-row
6112
+ count text at x=215 (line ~6321) STAYS at 9px-from-right
6113
+ — that one is paired with the flow-arrow swatch geometry
6114
+ ('M140,80 Q164,56 196,80') and would visibly tighten
6115
+ against the arrow tip if moved further left. Header
6116
+ count has no such pairing; it stands alone. */}
6117
+ <text x="211" y="21" textAnchor="end" fill={pal.legendAccent} fontSize="10" fontFamily="monospace" data-legend-panel-count>{sessions.length} node{sessions.length === 1 ? '' : 's'}</text>
6096
6118
  {(() => {
6097
6119
  const idleCount = onlineNodes.length - workingCount;
6098
6120
  // R106: rows shift +8 px (was y0=24, 48, 72 → 32, 56, 80)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.262",
3
+ "version": "0.4.6-preview.264",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,112 @@
1
+ /* Round 257 verification: legend panel header symmetric 13L/13R inner-
2
+ * padding, matching the recent-signal panel pattern.
3
+ *
4
+ * Pre-R257 the two corner panels had inconsistent header inner-padding:
5
+ *
6
+ * Recent-signal panel (width 230):
7
+ * · "recent signal" at x=13 → 13px left inset
8
+ * · "{N} flows ..." at x=217 → 13px right inset (end-anchored)
9
+ * → 13L / 13R · symmetric ✅
10
+ *
11
+ * Legend panel (width 224):
12
+ * · "legend" at x=13 → 13px left inset
13
+ * · "{N} nodes" at x=215 → 9px right inset (end-anchored)
14
+ * → 13L / 9R · asymmetric ❌
15
+ *
16
+ * R257 changes legend header count x=215 → x=211 (= 224-13), so the
17
+ * legend panel header now reads 13L / 13R, matching recent-signal.
18
+ *
19
+ * The per-row count text at x=215 (offline-row level, line ~6321)
20
+ * stays — it's paired with the flow-arrow swatch geometry
21
+ * (path "M140,80 Q164,56 196,80" + marker tip ≈ x=202). Moving the
22
+ * row-level count to x=211 would tighten the swatch→count gap from
23
+ * 13px to 9px, visibly pinching the indicator. R257 only adjusts the
24
+ * standalone header count.
25
+ *
26
+ * Test scope:
27
+ * 1. Legend "legend" title x === 13.
28
+ * 2. Legend "{N} nodes" header count x === 211 (was 215).
29
+ * 3. Recent-signal title x === 13 (regression).
30
+ * 4. Recent-signal flow-count tspan parent <text> x === 217 (regression).
31
+ * 5. Legend row count (offline) x === 215 — UNCHANGED (paired with
32
+ * flow-arrow swatch).
33
+ */
34
+ import { chromium } from 'playwright';
35
+ import { readFileSync } from 'node:fs';
36
+
37
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
38
+ const browser = await chromium.launch({ headless: true });
39
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
40
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
41
+ await ctx.addInitScript(() => {
42
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
43
+ });
44
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
45
+ await ctx.route('**/api/hub/status*', async (route) => {
46
+ const r = await route.fetch();
47
+ const b = await r.json();
48
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
49
+ const mk = (alias) => ({
50
+ alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
51
+ network_id: nid, project_dir: null,
52
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
53
+ });
54
+ await route.fulfill({ response: r, json: { ...b, sessions: [
55
+ mk('alpha'), mk('beta'), mk('gamma'), mk('delta'),
56
+ ] } });
57
+ });
58
+ await ctx.route('**/api/hub/messages*', (r2) => r2.fulfill({ json: { messages: [] } }));
59
+ await ctx.route('**/api/hub/tasks*', (r2) => r2.fulfill({ json: { tasks: [] } }));
60
+
61
+ const page = await ctx.newPage();
62
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
63
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
64
+ await page.waitForSelector('[data-legend-panel-count]', { timeout: 10000 });
65
+ await page.waitForSelector('[data-recent-panel-count]', { timeout: 10000 });
66
+ await page.waitForSelector('[data-legend-status="offline"] [data-legend-count="offline"]', { timeout: 10000 });
67
+ await page.waitForTimeout(300);
68
+
69
+ const probe = await page.evaluate(() => {
70
+ // Legend panel
71
+ const legendPanelG = document.querySelector('[data-topo-panel="legend"]');
72
+ const legendRectW = +legendPanelG?.querySelector('rect').getAttribute('width');
73
+ const legendTitle = [...legendPanelG.querySelectorAll('text')].find(t => t.textContent.trim() === 'legend');
74
+ const legendCount = document.querySelector('[data-legend-panel-count]');
75
+ // Recent-signal panel
76
+ const recentPanelG = document.querySelector('[data-topo-panel="recent"]');
77
+ const recentRectW = +recentPanelG?.querySelector('rect').getAttribute('width');
78
+ const recentTitle = [...recentPanelG.querySelectorAll('text')].find(t => t.textContent.trim().startsWith('recent signal'));
79
+ const recentFlowCount = document.querySelector('[data-recent-panel-count]');
80
+ // Recent flow count tspan's parent <text> carries the x attr
81
+ const recentFlowCountParentX = recentFlowCount ? recentFlowCount.parentElement.getAttribute('x') : null;
82
+ // Legend offline-row count (unchanged @ x=215)
83
+ const legendOfflineCount = document.querySelector('[data-legend-count="offline"]');
84
+ return {
85
+ legendRectW, recentRectW,
86
+ legendTitleX: legendTitle ? +legendTitle.getAttribute('x') : null,
87
+ legendCountX: legendCount ? +legendCount.getAttribute('x') : null,
88
+ recentTitleX: recentTitle ? +recentTitle.getAttribute('x') : null,
89
+ recentFlowCountX: recentFlowCountParentX ? +recentFlowCountParentX : null,
90
+ legendOfflineCountX: legendOfflineCount ? +legendOfflineCount.getAttribute('x') : null,
91
+ };
92
+ });
93
+ await browser.close();
94
+
95
+ const results = {
96
+ legend_title_x_is_13: probe.legendTitleX === 13,
97
+ legend_count_x_moved_to_211: probe.legendCountX === 211,
98
+ legend_symmetric_inset_13L_13R: probe.legendRectW != null && probe.legendCountX != null &&
99
+ probe.legendTitleX === 13 &&
100
+ (probe.legendRectW - probe.legendCountX) === 13,
101
+ recent_title_x_is_13_unchanged: probe.recentTitleX === 13,
102
+ recent_flow_count_x_217_unchanged: probe.recentFlowCountX === 217,
103
+ recent_symmetric_inset_13L_13R: probe.recentRectW != null && probe.recentFlowCountX != null &&
104
+ (probe.recentRectW - probe.recentFlowCountX) === 13,
105
+ legend_offline_count_x_215_unchanged: probe.legendOfflineCountX === 215,
106
+ };
107
+ const ok = Object.values(results).every(Boolean);
108
+ console.log(`${ok ? '✅' : '❌'} legend header symmetric inset:`, JSON.stringify(results),
109
+ '\n legend rect_w=', probe.legendRectW, ' title_x=', probe.legendTitleX, ' count_x=', probe.legendCountX,
110
+ '\n recent rect_w=', probe.recentRectW, ' title_x=', probe.recentTitleX, ' flow_count_x=', probe.recentFlowCountX,
111
+ '\n legend offline_count_x=', probe.legendOfflineCountX, '(should stay 215)');
112
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,142 @@
1
+ /* Round 256 verification: recent-signal panel footer breathing room.
2
+ *
3
+ * Pre-R256 the panel was 230×84 with the footer "+ N more flows" text
4
+ * baseline at y=82, fontSize 8. CSS textDecoration:underline (on hover)
5
+ * renders ~3-4px below baseline → y ≈ 85-86, BELOW the panel rect
6
+ * bottom y=84. The hover affordance literally extended past the panel
7
+ * chrome.
8
+ *
9
+ * R256 grows the panel rect from height 84 → 88 (+4 px), keeping
10
+ * footer y=82 and every interior layout coordinate untouched. The
11
+ * underline now sits at y≈85-86 inside an 88-tall panel — 2-3 px of
12
+ * clear room below it, the textDecoration tucks INSIDE the panel
13
+ * border instead of clipping past it.
14
+ *
15
+ * Test scope:
16
+ * 1. Panel rect height === 88 (DOM-side ground truth).
17
+ * 2. Footer baseline y === 82 (didn't shift — only the panel grew).
18
+ * 3. Footer bbox bottom (baseline + descender + reserve for
19
+ * underline) < panel rect bottom y. Use getBBox on the text
20
+ * element and verify it sits inside the rect.
21
+ * 4. Fleet of >3 flows so footer mounts visible (R221 always-mount
22
+ * + opacity gate; gated visible at flowLinks.length > 3).
23
+ * 5. Underline on hover stays inside the panel — hover, wait for
24
+ * transition, measure underline location via the element's
25
+ * bounding rect vs the panel's bounding rect.
26
+ *
27
+ * Geometric check (sanity): panel corner (16+230, 16+88) = (246, 104).
28
+ * Distance to canvas center (500, 330) = √(254² + 226²) ≈ 339.99.
29
+ * Outermost ring radius is 325; corner clears the ring (> 325 → ok).
30
+ * Panel still tucked outside any node.
31
+ */
32
+ import { chromium } from 'playwright';
33
+ import { readFileSync } from 'node:fs';
34
+
35
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
36
+ const browser = await chromium.launch({ headless: true });
37
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
38
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
39
+ await ctx.addInitScript(() => {
40
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
41
+ });
42
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
43
+
44
+ // Mock sessions: 4 working agents (alpha/beta/gamma/delta)
45
+ await ctx.route('**/api/hub/status*', async (route) => {
46
+ const r = await route.fetch();
47
+ const b = await r.json();
48
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
49
+ const mk = (alias) => ({
50
+ alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
51
+ network_id: nid, project_dir: null,
52
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
53
+ });
54
+ await route.fulfill({ response: r, json: { ...b, sessions: [
55
+ mk('alpha'), mk('beta'), mk('gamma'), mk('delta'),
56
+ ] } });
57
+ });
58
+
59
+ // 5 messages across 5 distinct flow pairs so flowLinks.length === 5
60
+ // (> 3 → footer mounts visible, the "+ 2 more flows" hint).
61
+ const now = Date.now();
62
+ const msgs = [
63
+ { id: 'm0', from_alias: 'alpha', to_alias: 'beta', content: 'hi 1', network_id: 'default', created_at: new Date(now - 1000).toISOString() },
64
+ { id: 'm1', from_alias: 'beta', to_alias: 'gamma', content: 'hi 2', network_id: 'default', created_at: new Date(now - 1500).toISOString() },
65
+ { id: 'm2', from_alias: 'gamma', to_alias: 'delta', content: 'hi 3', network_id: 'default', created_at: new Date(now - 2000).toISOString() },
66
+ { id: 'm3', from_alias: 'delta', to_alias: 'alpha', content: 'hi 4', network_id: 'default', created_at: new Date(now - 2500).toISOString() },
67
+ { id: 'm4', from_alias: 'alpha', to_alias: 'gamma', content: 'hi 5', network_id: 'default', created_at: new Date(now - 3000).toISOString() },
68
+ ];
69
+ await ctx.route('**/api/hub/messages*', (r2) => r2.fulfill({ json: { messages: msgs } }));
70
+ await ctx.route('**/api/hub/tasks*', (r2) => r2.fulfill({ json: { tasks: [] } }));
71
+
72
+ const page = await ctx.newPage();
73
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
74
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
75
+ await page.waitForSelector('[data-recent-panel-more-nav]', { timeout: 10000 });
76
+ await page.waitForTimeout(500);
77
+
78
+ const probe = await page.evaluate(() => {
79
+ const panelG = document.querySelector('[data-topo-panel="recent"]');
80
+ const rect = panelG?.querySelector('rect');
81
+ const footer = document.querySelector('[data-recent-panel-more]');
82
+ const tx = panelG?.getAttribute('transform').match(/translate\(([\d.]+),\s*([\d.]+)\)/);
83
+ const panelTopY = tx ? +tx[2] : null;
84
+ const rectH = rect ? +rect.getAttribute('height') : null;
85
+ const footerY = footer ? +footer.getAttribute('y') : null;
86
+ // Use getBoundingClientRect for both — getBBox on text inside a
87
+ // transformed <g> with opacity transition can return zero on some
88
+ // browser stacks (rev-checked against earlier R203/R215 idioms).
89
+ // Client-rect math gives consistent ground truth.
90
+ const rectCR = rect ? rect.getBoundingClientRect() : null;
91
+ const footerCR = footer ? footer.getBoundingClientRect() : null;
92
+ return {
93
+ panelTopY, rectH, footerY,
94
+ rectCR_bottom: rectCR ? rectCR.bottom : null,
95
+ footerCR_bottom: footerCR ? footerCR.bottom : null,
96
+ };
97
+ });
98
+
99
+ // Hover the footer + measure underline-region overflow vs panel
100
+ await page.locator('[data-recent-panel-more-nav]').hover();
101
+ await page.waitForTimeout(250);
102
+
103
+ const hoverProbe = await page.evaluate(() => {
104
+ const panelG = document.querySelector('[data-topo-panel="recent"]');
105
+ const rect = panelG?.querySelector('rect');
106
+ const footer = document.querySelector('[data-recent-panel-more]');
107
+ return {
108
+ hovered: footer?.getAttribute('data-recent-panel-more-hovered'),
109
+ textDecoration: footer ? window.getComputedStyle(footer).textDecorationLine : null,
110
+ rectClientBottom: rect?.getBoundingClientRect().bottom ?? null,
111
+ footerClientBottom: footer?.getBoundingClientRect().bottom ?? null,
112
+ };
113
+ });
114
+ await browser.close();
115
+
116
+ // At rest: footer's client-rect bottom should sit at or above (less than)
117
+ // the panel rect's client-rect bottom. Allow 1px sub-pixel slop.
118
+ const restClearance = (probe.rectCR_bottom != null && probe.footerCR_bottom != null)
119
+ ? (probe.rectCR_bottom - probe.footerCR_bottom) : null;
120
+
121
+ // Hover-state: same check, but the underline-on-hover would have shifted
122
+ // the visible bottom downward by the underline's offset. Verifies it
123
+ // still tucks INSIDE the panel chrome.
124
+ const hoverClearance = (hoverProbe.rectClientBottom != null && hoverProbe.footerClientBottom != null)
125
+ ? (hoverProbe.rectClientBottom - hoverProbe.footerClientBottom) : null;
126
+
127
+ const results = {
128
+ panel_height_88: probe.rectH === 88,
129
+ footer_y_unchanged_at_82: probe.footerY === 82,
130
+ rest_footer_inside_panel: restClearance != null && restClearance >= -1,
131
+ rest_footer_breathing_room: restClearance != null && restClearance >= 2, // at least 2px clear at rest
132
+ hover_state_fires: hoverProbe.hovered === 'true',
133
+ hover_underline_applied: hoverProbe.textDecoration?.includes('underline') === true,
134
+ hover_footer_inside_panel: hoverClearance != null && hoverClearance >= -1,
135
+ };
136
+ const ok = Object.values(results).every(Boolean);
137
+ console.log(`${ok ? '✅' : '❌'} recent panel footer breath:`, JSON.stringify(results),
138
+ '\n panelRectH:', probe.rectH, 'footerY:', probe.footerY,
139
+ '\n rest clearance:', restClearance, 'px (rect bottom', probe.rectCR_bottom, 'footer bottom', probe.footerCR_bottom, ')',
140
+ '\n hover clearance:', hoverClearance, 'px (rect bottom', hoverProbe.rectClientBottom, 'footer bottom', hoverProbe.footerClientBottom, ')',
141
+ '\n hover textDecoration:', hoverProbe.textDecoration);
142
+ process.exit(ok ? 0 : 1);