@sleep2agi/agent-network-dashboard 0.5.3-preview.242 → 0.5.3-preview.244

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +5 -5
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
  121. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
  123. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  126. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  127. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  128. package/.next/server/middleware-build-manifest.js +3 -3
  129. package/.next/server/pages/404.html +1 -1
  130. package/.next/server/pages/500.html +1 -1
  131. package/.next/static/chunks/{0ko8pl1vfb11p.js → 0..wnc0g37wjb.js} +1 -1
  132. package/.next/static/chunks/{0tkm-ra70hdnw.js → 02k22qp_mmkqt.js} +1 -1
  133. package/.next/static/chunks/{0zd~0rv.o9d6h.js → 068d9zo1nwwrk.js} +4 -4
  134. package/.next/static/chunks/{0saf_mmcwyn~f.js → 0~405pmgca0ay.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +54 -3
  138. package/package.json +1 -1
  139. package/scripts/topo-respiratory-axis-count-stats-test.mjs +131 -0
  140. package/scripts/topo-svg-title-a11y-test.mjs +88 -0
  141. /package/.next/static/{nbnCw0V7u-b5rEvB2Od8_ → HUXTUobiwrwING8WeV333}/_buildManifest.js +0 -0
  142. /package/.next/static/{nbnCw0V7u-b5rEvB2Od8_ → HUXTUobiwrwING8WeV333}/_clientMiddlewareManifest.js +0 -0
  143. /package/.next/static/{nbnCw0V7u-b5rEvB2Od8_ → HUXTUobiwrwING8WeV333}/_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.5.3-preview.241"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.243"],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":289,"timestamp":413284251413,"id":4,"parentId":1,"tags":{},"startTime":1779221256498,"traceId":"3a48dc450e86e1f3"},{"name":"load-custom-routes","duration":506,"timestamp":413284251879,"id":5,"parentId":1,"tags":{},"startTime":1779221256498,"traceId":"3a48dc450e86e1f3"},{"name":"create-dist-dir","duration":690,"timestamp":413284252434,"id":6,"parentId":1,"tags":{},"startTime":1779221256499,"traceId":"3a48dc450e86e1f3"},{"name":"clean","duration":34712,"timestamp":413284253832,"id":7,"parentId":1,"tags":{},"startTime":1779221256500,"traceId":"3a48dc450e86e1f3"},{"name":"discover-routes","duration":13543,"timestamp":413284369240,"id":8,"parentId":1,"tags":{},"startTime":1779221256616,"traceId":"3a48dc450e86e1f3"},{"name":"create-root-mapping","duration":185,"timestamp":413284382851,"id":9,"parentId":1,"tags":{},"startTime":1779221256629,"traceId":"3a48dc450e86e1f3"},{"name":"generate-route-types","duration":41641,"timestamp":413284386051,"id":10,"parentId":1,"tags":{},"startTime":1779221256632,"traceId":"3a48dc450e86e1f3"},{"name":"public-dir-conflict-check","duration":103,"timestamp":413284427786,"id":11,"parentId":1,"tags":{},"startTime":1779221256674,"traceId":"3a48dc450e86e1f3"},{"name":"generate-routes-manifest","duration":4755,"timestamp":413284428035,"id":12,"parentId":1,"tags":{},"startTime":1779221256674,"traceId":"3a48dc450e86e1f3"},{"name":"run-turbopack","duration":6931255,"timestamp":413284438728,"id":14,"parentId":1,"tags":{},"startTime":1779221256685,"traceId":"3a48dc450e86e1f3"},{"name":"turbopack-build-events","duration":105,"timestamp":413284743771,"id":15,"parentId":1,"tags":{},"startTime":1779221256990,"traceId":"3a48dc450e86e1f3"},{"name":"run-typescript","duration":10408301,"timestamp":413291380236,"id":16,"parentId":1,"tags":{},"startTime":1779221263627,"traceId":"3a48dc450e86e1f3"},{"name":"generate-required-server-files","duration":4072,"timestamp":413301790377,"id":18,"parentId":1,"tags":{},"startTime":1779221274037,"traceId":"3a48dc450e86e1f3"},{"name":"check-static-error-page","duration":12646,"timestamp":413301987324,"id":20,"parentId":19,"tags":{},"startTime":1779221274234,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":547888,"timestamp":413302002880,"id":65,"parentId":22,"tags":{},"startTime":1779221274249,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":560946,"timestamp":413301989993,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779221274236,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":559618,"timestamp":413302003193,"id":68,"parentId":27,"tags":{},"startTime":1779221274249,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":570172,"timestamp":413301992751,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":575735,"timestamp":413302002976,"id":66,"parentId":25,"tags":{},"startTime":1779221274249,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":586249,"timestamp":413301992543,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":580513,"timestamp":413302003792,"id":72,"parentId":32,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":591077,"timestamp":413301993316,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779221274240,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":582655,"timestamp":413302002587,"id":64,"parentId":21,"tags":{},"startTime":1779221274249,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":596574,"timestamp":413301988733,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779221274235,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":586338,"timestamp":413302003969,"id":73,"parentId":33,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":596942,"timestamp":413301993443,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779221274240,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":587806,"timestamp":413302004070,"id":74,"parentId":34,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":598386,"timestamp":413301993560,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779221274240,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":596269,"timestamp":413302004118,"id":76,"parentId":36,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":606284,"timestamp":413301994163,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779221274240,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":601701,"timestamp":413302003570,"id":70,"parentId":29,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":612423,"timestamp":413301992912,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":608490,"timestamp":413302004165,"id":78,"parentId":38,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":618237,"timestamp":413301994466,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":611924,"timestamp":413302004147,"id":77,"parentId":37,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":621764,"timestamp":413301994355,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":614065,"timestamp":413302004175,"id":79,"parentId":39,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":623750,"timestamp":413301994532,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":620935,"timestamp":413302004188,"id":80,"parentId":40,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":630570,"timestamp":413301994605,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":622157,"timestamp":413302004202,"id":81,"parentId":42,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":631538,"timestamp":413301994883,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":625753,"timestamp":413302004224,"id":83,"parentId":45,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":634647,"timestamp":413301995415,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779221274242,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":627171,"timestamp":413302004236,"id":84,"parentId":46,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":635925,"timestamp":413301995523,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779221274242,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":633826,"timestamp":413302004250,"id":85,"parentId":47,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":642505,"timestamp":413301995632,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779221274242,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":634040,"timestamp":413302004259,"id":86,"parentId":48,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":641026,"timestamp":413301997336,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":635439,"timestamp":413302003080,"id":67,"parentId":26,"tags":{},"startTime":1779221274249,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":645880,"timestamp":413301992672,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":634957,"timestamp":413302004272,"id":87,"parentId":49,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":641736,"timestamp":413301997535,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":637559,"timestamp":413302007594,"id":90,"parentId":24,"tags":{},"startTime":1779221274254,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":654766,"timestamp":413301990433,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779221274237,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":642168,"timestamp":413302004284,"id":88,"parentId":50,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":648845,"timestamp":413301997646,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":641423,"timestamp":413302008826,"id":91,"parentId":31,"tags":{},"startTime":1779221274255,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":657184,"timestamp":413301993119,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":651065,"timestamp":413302004214,"id":82,"parentId":44,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":660068,"timestamp":413301995258,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779221274242,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":644439,"timestamp":413302011037,"id":93,"parentId":43,"tags":{},"startTime":1779221274257,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":660529,"timestamp":413301994976,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":648608,"timestamp":413302009695,"id":92,"parentId":41,"tags":{},"startTime":1779221274256,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":663678,"timestamp":413301994690,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779221274241,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":661230,"timestamp":413302004293,"id":89,"parentId":51,"tags":{},"startTime":1779221274251,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":667873,"timestamp":413301997706,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":666373,"timestamp":413302004101,"id":75,"parentId":35,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":676890,"timestamp":413301993656,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779221274240,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":686960,"timestamp":413302003295,"id":69,"parentId":28,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":697480,"timestamp":413301992837,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":682241,"timestamp":413302013355,"id":98,"parentId":55,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":697286,"timestamp":413301998381,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":694733,"timestamp":413302003730,"id":71,"parentId":30,"tags":{},"startTime":1779221274250,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":705508,"timestamp":413301993028,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779221274239,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":707141,"timestamp":413302013384,"id":100,"parentId":58,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":721543,"timestamp":413301999071,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":707506,"timestamp":413302013316,"id":96,"parentId":53,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":722748,"timestamp":413301998131,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":718924,"timestamp":413302013270,"id":94,"parentId":23,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":742022,"timestamp":413301990234,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779221274237,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":721100,"timestamp":413302013514,"id":102,"parentId":61,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":735065,"timestamp":413301999617,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779221274246,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":727024,"timestamp":413302013537,"id":104,"parentId":63,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":740804,"timestamp":413301999806,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779221274246,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":713880,"timestamp":413302033870,"id":106,"parentId":57,"tags":{},"startTime":1779221274280,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":749111,"timestamp":413301998683,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":726987,"timestamp":413302021478,"id":105,"parentId":60,"tags":{},"startTime":1779221274268,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":749176,"timestamp":413301999337,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779221274246,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":742078,"timestamp":413302013300,"id":95,"parentId":52,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":757438,"timestamp":413301997987,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779221274244,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":748499,"timestamp":413302013528,"id":103,"parentId":62,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":762364,"timestamp":413301999714,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779221274246,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":757940,"timestamp":413302013326,"id":97,"parentId":54,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":773079,"timestamp":413301998238,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":768201,"timestamp":413302013371,"id":99,"parentId":56,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":783096,"timestamp":413301998525,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"is-page-static","duration":779656,"timestamp":413302013495,"id":101,"parentId":59,"tags":{},"startTime":1779221274260,"traceId":"3a48dc450e86e1f3"},{"name":"check-page","duration":793987,"timestamp":413301999219,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779221274245,"traceId":"3a48dc450e86e1f3"},{"name":"static-check","duration":807326,"timestamp":413301985931,"id":19,"parentId":1,"tags":{},"startTime":1779221274232,"traceId":"3a48dc450e86e1f3"}]
2
- [{"name":"write-routes-manifest","duration":646,"timestamp":413302803809,"id":108,"parentId":1,"tags":{},"startTime":1779221275050,"traceId":"3a48dc450e86e1f3"},{"name":"load-dotenv","duration":49,"timestamp":413302815622,"id":111,"parentId":110,"tags":{},"startTime":1779221275062,"traceId":"3a48dc450e86e1f3"},{"name":"run-export-path-map","duration":680,"timestamp":413302818557,"id":112,"parentId":110,"tags":{},"startTime":1779221275065,"traceId":"3a48dc450e86e1f3"},{"name":"next-export","duration":634264,"timestamp":413302814436,"id":110,"parentId":1,"tags":{},"startTime":1779221275061,"traceId":"3a48dc450e86e1f3"},{"name":"move-exported-app-not-found-","duration":573,"timestamp":413303452763,"id":113,"parentId":109,"tags":{},"startTime":1779221275699,"traceId":"3a48dc450e86e1f3"},{"name":"move-exported-app-global-error-","duration":408,"timestamp":413303453434,"id":114,"parentId":109,"tags":{},"startTime":1779221275700,"traceId":"3a48dc450e86e1f3"},{"name":"static-generation","duration":647283,"timestamp":413302808708,"id":109,"parentId":1,"tags":{},"startTime":1779221275055,"traceId":"3a48dc450e86e1f3"},{"name":"write-routes-manifest","duration":534,"timestamp":413303456330,"id":115,"parentId":1,"tags":{},"startTime":1779221275703,"traceId":"3a48dc450e86e1f3"},{"name":"print-tree-view","duration":4760,"timestamp":413303469379,"id":116,"parentId":1,"tags":{},"startTime":1779221275716,"traceId":"3a48dc450e86e1f3"},{"name":"write-route-bundle-stats","duration":16596,"timestamp":413303474173,"id":117,"parentId":1,"tags":{},"startTime":1779221275720,"traceId":"3a48dc450e86e1f3"},{"name":"telemetry-flush","duration":35633,"timestamp":413303490801,"id":118,"parentId":1,"tags":{},"startTime":1779221275737,"traceId":"3a48dc450e86e1f3"},{"name":"next-build","duration":19333228,"timestamp":413284193244,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779221256440,"traceId":"3a48dc450e86e1f3"}]
1
+ [{"name":"generate-buildid","duration":260,"timestamp":414011523093,"id":4,"parentId":1,"tags":{},"startTime":1779221983769,"traceId":"290d40726d0227d7"},{"name":"load-custom-routes","duration":479,"timestamp":414011523505,"id":5,"parentId":1,"tags":{},"startTime":1779221983770,"traceId":"290d40726d0227d7"},{"name":"create-dist-dir","duration":757,"timestamp":414011524044,"id":6,"parentId":1,"tags":{},"startTime":1779221983770,"traceId":"290d40726d0227d7"},{"name":"clean","duration":36383,"timestamp":414011525527,"id":7,"parentId":1,"tags":{},"startTime":1779221983772,"traceId":"290d40726d0227d7"},{"name":"discover-routes","duration":10242,"timestamp":414011653756,"id":8,"parentId":1,"tags":{},"startTime":1779221983900,"traceId":"290d40726d0227d7"},{"name":"create-root-mapping","duration":131,"timestamp":414011664084,"id":9,"parentId":1,"tags":{},"startTime":1779221983910,"traceId":"290d40726d0227d7"},{"name":"generate-route-types","duration":41956,"timestamp":414011666789,"id":10,"parentId":1,"tags":{},"startTime":1779221983913,"traceId":"290d40726d0227d7"},{"name":"public-dir-conflict-check","duration":103,"timestamp":414011708847,"id":11,"parentId":1,"tags":{},"startTime":1779221983955,"traceId":"290d40726d0227d7"},{"name":"generate-routes-manifest","duration":5639,"timestamp":414011709110,"id":12,"parentId":1,"tags":{},"startTime":1779221983955,"traceId":"290d40726d0227d7"},{"name":"run-turbopack","duration":7354599,"timestamp":414011721106,"id":14,"parentId":1,"tags":{},"startTime":1779221983967,"traceId":"290d40726d0227d7"},{"name":"turbopack-build-events","duration":85,"timestamp":414012060744,"id":15,"parentId":1,"tags":{},"startTime":1779221984307,"traceId":"290d40726d0227d7"},{"name":"run-typescript","duration":10812639,"timestamp":414019094054,"id":16,"parentId":1,"tags":{},"startTime":1779221991340,"traceId":"290d40726d0227d7"},{"name":"generate-required-server-files","duration":3634,"timestamp":414029908126,"id":18,"parentId":1,"tags":{},"startTime":1779222002154,"traceId":"290d40726d0227d7"},{"name":"check-static-error-page","duration":13548,"timestamp":414030131843,"id":20,"parentId":19,"tags":{},"startTime":1779222002378,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":473858,"timestamp":414030151585,"id":65,"parentId":22,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":491547,"timestamp":414030134087,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779222002380,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":610560,"timestamp":414030152383,"id":70,"parentId":29,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":626184,"timestamp":414030136880,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":612694,"timestamp":414030152530,"id":71,"parentId":30,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":628233,"timestamp":414030137062,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":613954,"timestamp":414030151972,"id":68,"parentId":27,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":629342,"timestamp":414030136633,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":619019,"timestamp":414030152840,"id":74,"parentId":34,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":634253,"timestamp":414030137668,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779222002384,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":624809,"timestamp":414030151245,"id":64,"parentId":21,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":643162,"timestamp":414030132954,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779222002379,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":664494,"timestamp":414030152598,"id":72,"parentId":32,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":679771,"timestamp":414030137407,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779222002384,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":664613,"timestamp":414030152758,"id":73,"parentId":33,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":679868,"timestamp":414030137543,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779222002384,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":665863,"timestamp":414030151849,"id":67,"parentId":26,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":681242,"timestamp":414030136517,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":668910,"timestamp":414030152870,"id":75,"parentId":35,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":684042,"timestamp":414030137800,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779222002384,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":670553,"timestamp":414030152103,"id":69,"parentId":28,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":685945,"timestamp":414030136761,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":676025,"timestamp":414030152914,"id":77,"parentId":37,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":690458,"timestamp":414030138538,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":683618,"timestamp":414030152952,"id":80,"parentId":40,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":697749,"timestamp":414030138874,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":687225,"timestamp":414030152977,"id":82,"parentId":44,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":700071,"timestamp":414030140185,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779222002386,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":691434,"timestamp":414030152986,"id":83,"parentId":45,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":704115,"timestamp":414030140350,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779222002387,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":698447,"timestamp":414030152943,"id":79,"parentId":39,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":712666,"timestamp":414030138774,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":695427,"timestamp":414030157094,"id":85,"parentId":47,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":710547,"timestamp":414030142030,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779222002388,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":701434,"timestamp":414030152964,"id":81,"parentId":42,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":715207,"timestamp":414030139257,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779222002386,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":700253,"timestamp":414030157062,"id":84,"parentId":46,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":716884,"timestamp":414030140485,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779222002387,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":702094,"timestamp":414030157106,"id":86,"parentId":48,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":717073,"timestamp":414030142166,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779222002388,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":709434,"timestamp":414030157119,"id":87,"parentId":49,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":724337,"timestamp":414030142269,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":711269,"timestamp":414030157146,"id":89,"parentId":51,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":726066,"timestamp":414030142400,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":703810,"timestamp":414030165144,"id":90,"parentId":24,"tags":{},"startTime":1779222002411,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":734520,"timestamp":414030134477,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779222002381,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":716283,"timestamp":414030152930,"id":78,"parentId":38,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":730575,"timestamp":414030138674,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":703059,"timestamp":414030166345,"id":91,"parentId":31,"tags":{},"startTime":1779222002413,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":732258,"timestamp":414030137181,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":712169,"timestamp":414030167346,"id":92,"parentId":41,"tags":{},"startTime":1779222002414,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":740603,"timestamp":414030138971,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":722703,"timestamp":414030157133,"id":88,"parentId":50,"tags":{},"startTime":1779222002403,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":737563,"timestamp":414030142337,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":714369,"timestamp":414030169441,"id":93,"parentId":43,"tags":{},"startTime":1779222002416,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":744439,"timestamp":414030139423,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779222002386,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":739324,"timestamp":414030151724,"id":66,"parentId":25,"tags":{},"startTime":1779222002398,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":754765,"timestamp":414030136345,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779222002383,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":738384,"timestamp":414030152886,"id":76,"parentId":36,"tags":{},"startTime":1779222002399,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":752966,"timestamp":414030138337,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779222002385,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":710071,"timestamp":414030190455,"id":100,"parentId":58,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":756891,"timestamp":414030143690,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779222002390,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":717629,"timestamp":414030190590,"id":101,"parentId":59,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":764109,"timestamp":414030144165,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779222002390,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":725216,"timestamp":414030190619,"id":102,"parentId":61,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":771115,"timestamp":414030144816,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779222002391,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":744737,"timestamp":414030190630,"id":103,"parentId":62,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":790491,"timestamp":414030144955,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779222002391,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":756009,"timestamp":414030190320,"id":94,"parentId":23,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":812134,"timestamp":414030134288,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779222002381,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":756570,"timestamp":414030190643,"id":104,"parentId":63,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":802175,"timestamp":414030145120,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779222002391,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":760202,"timestamp":414030190388,"id":95,"parentId":52,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":807961,"timestamp":414030142678,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":764408,"timestamp":414030190658,"id":105,"parentId":57,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":811796,"timestamp":414030143315,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779222002390,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":759862,"timestamp":414030196241,"id":106,"parentId":60,"tags":{},"startTime":1779222002443,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":811751,"timestamp":414030144400,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779222002391,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":773005,"timestamp":414030190432,"id":98,"parentId":55,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":820480,"timestamp":414030143014,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":780700,"timestamp":414030190419,"id":97,"parentId":54,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":828304,"timestamp":414030142868,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":789243,"timestamp":414030190404,"id":96,"parentId":53,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":836931,"timestamp":414030142773,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"is-page-static","duration":795032,"timestamp":414030190446,"id":99,"parentId":56,"tags":{},"startTime":1779222002437,"traceId":"290d40726d0227d7"},{"name":"check-page","duration":842378,"timestamp":414030143156,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779222002389,"traceId":"290d40726d0227d7"},{"name":"static-check","duration":854543,"timestamp":414030131033,"id":19,"parentId":1,"tags":{},"startTime":1779222002377,"traceId":"290d40726d0227d7"}]
2
+ [{"name":"write-routes-manifest","duration":738,"timestamp":414030997999,"id":108,"parentId":1,"tags":{},"startTime":1779222003244,"traceId":"290d40726d0227d7"},{"name":"load-dotenv","duration":85,"timestamp":414031016021,"id":111,"parentId":110,"tags":{},"startTime":1779222003262,"traceId":"290d40726d0227d7"},{"name":"run-export-path-map","duration":993,"timestamp":414031019861,"id":112,"parentId":110,"tags":{},"startTime":1779222003266,"traceId":"290d40726d0227d7"},{"name":"next-export","duration":700115,"timestamp":414031013920,"id":110,"parentId":1,"tags":{},"startTime":1779222003260,"traceId":"290d40726d0227d7"},{"name":"move-exported-app-not-found-","duration":2744,"timestamp":414031722482,"id":113,"parentId":109,"tags":{},"startTime":1779222003969,"traceId":"290d40726d0227d7"},{"name":"move-exported-app-global-error-","duration":4988,"timestamp":414031725381,"id":114,"parentId":109,"tags":{},"startTime":1779222003972,"traceId":"290d40726d0227d7"},{"name":"static-generation","duration":728088,"timestamp":414031004618,"id":109,"parentId":1,"tags":{},"startTime":1779222003251,"traceId":"290d40726d0227d7"},{"name":"write-routes-manifest","duration":510,"timestamp":414031733019,"id":115,"parentId":1,"tags":{},"startTime":1779222003979,"traceId":"290d40726d0227d7"},{"name":"print-tree-view","duration":8488,"timestamp":414031767843,"id":116,"parentId":1,"tags":{},"startTime":1779222004014,"traceId":"290d40726d0227d7"},{"name":"write-route-bundle-stats","duration":26282,"timestamp":414031776401,"id":117,"parentId":1,"tags":{},"startTime":1779222004023,"traceId":"290d40726d0227d7"},{"name":"telemetry-flush","duration":119,"timestamp":414031802736,"id":118,"parentId":1,"tags":{},"startTime":1779222004049,"traceId":"290d40726d0227d7"},{"name":"next-build","duration":20334935,"timestamp":414011467949,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779221983714,"traceId":"290d40726d0227d7"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6931255,"timestamp":413284438728,"id":14,"parentId":1,"tags":{},"startTime":1779221256685,"traceId":"3a48dc450e86e1f3"},{"name":"turbopack-build-events","duration":105,"timestamp":413284743771,"id":15,"parentId":1,"tags":{},"startTime":1779221256990,"traceId":"3a48dc450e86e1f3"},{"name":"run-typescript","duration":10408301,"timestamp":413291380236,"id":16,"parentId":1,"tags":{},"startTime":1779221263627,"traceId":"3a48dc450e86e1f3"},{"name":"static-check","duration":807326,"timestamp":413301985931,"id":19,"parentId":1,"tags":{},"startTime":1779221274232,"traceId":"3a48dc450e86e1f3"},{"name":"static-generation","duration":647283,"timestamp":413302808708,"id":109,"parentId":1,"tags":{},"startTime":1779221275055,"traceId":"3a48dc450e86e1f3"},{"name":"telemetry-flush","duration":35633,"timestamp":413303490801,"id":118,"parentId":1,"tags":{},"startTime":1779221275737,"traceId":"3a48dc450e86e1f3"},{"name":"next-build","duration":19333228,"timestamp":413284193244,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779221256440,"traceId":"3a48dc450e86e1f3"}]
1
+ [{"name":"run-turbopack","duration":7354599,"timestamp":414011721106,"id":14,"parentId":1,"tags":{},"startTime":1779221983967,"traceId":"290d40726d0227d7"},{"name":"turbopack-build-events","duration":85,"timestamp":414012060744,"id":15,"parentId":1,"tags":{},"startTime":1779221984307,"traceId":"290d40726d0227d7"},{"name":"run-typescript","duration":10812639,"timestamp":414019094054,"id":16,"parentId":1,"tags":{},"startTime":1779221991340,"traceId":"290d40726d0227d7"},{"name":"static-check","duration":854543,"timestamp":414030131033,"id":19,"parentId":1,"tags":{},"startTime":1779222002377,"traceId":"290d40726d0227d7"},{"name":"static-generation","duration":728088,"timestamp":414031004618,"id":109,"parentId":1,"tags":{},"startTime":1779222003251,"traceId":"290d40726d0227d7"},{"name":"telemetry-flush","duration":119,"timestamp":414031802736,"id":118,"parentId":1,"tags":{},"startTime":1779222004049,"traceId":"290d40726d0227d7"},{"name":"next-build","duration":20334935,"timestamp":414011467949,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779221983714,"traceId":"290d40726d0227d7"}]
@@ -5101,6 +5101,52 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5101
5101
  { anchor: "zoom-level", cadence_s: 9, axes: ["opacity", "transform-scale", "text-shadow"] },
5102
5102
  { anchor: "H2", cadence_s: 10, axes: ["opacity", "transform-scale", "text-shadow"] },
5103
5103
  ])}
5104
+ /* Round 729 / Loop — 6TH orthogonal meta-doc catalog: aggregate
5105
+ stats. R710 (cadences) + R716 (axes) + R717 (patterns) +
5106
+ R720 (tiers) + R723 (triple-axis) + R729 (stats). The
5107
+ introspection layer goes from pentagon → HEXAGON.
5108
+
5109
+ Prior 5 catalogs are STRUCTURAL (list anchors by some axis).
5110
+ R729 is the aggregate stats — totals + ranges derivable
5111
+ from the others but explicit here as a queryable surface
5112
+ for tooling (debug overlays, family-size sanity checks).
5113
+
5114
+ Stats post-R728 (frozen at this round's snapshot):
5115
+ total_anchors: 18 (rolodex flat count)
5116
+ cadences: 16 (R710 keys)
5117
+ cadence_range_s: { min: 3, max: 25 } span 22 s
5118
+ cadence_arc_s: 22 (max - min)
5119
+ axis_counts: { single: 12, dual: 0, triple: 6 }
5120
+ patterns_count: 8 (R717 entries)
5121
+ tiers_count: 7 (R720 entries)
5122
+ triple_axis_pairs: 2 (6 s + 8 s pairs in R717)
5123
+ triple_axis_solos: 2 (zoom-level + H2 in R717 tier)
5124
+
5125
+ axis_counts.dual === 0 is intentionally surfaced: R725-R728
5126
+ promoted all prior dual-axis members to triple-axis. The
5127
+ dual-axis tier being empty is a structural milestone, not
5128
+ a documentation bug. R716's name stays "dual-axis-surfaces"
5129
+ for back-compat (consumers querying by anchor still work);
5130
+ the axis-count semantic is now reflected in this stats
5131
+ catalog.
5132
+
5133
+ Cross-checks at runtime (R729 test):
5134
+ total_anchors === Σ rolodex anchor counts
5135
+ axis_counts.triple === R723 entries length
5136
+ patterns_count === R717 length
5137
+ tiers_count === R720 length
5138
+ cadence_range matches rolodex keys */
5139
+ data-topo-respiratory-axis-count-stats={JSON.stringify({
5140
+ total_anchors: 18,
5141
+ cadences: 16,
5142
+ cadence_range_s: { min: 3, max: 25 },
5143
+ cadence_arc_s: 22,
5144
+ axis_counts: { single: 12, dual: 0, triple: 6 },
5145
+ patterns_count: 8,
5146
+ tiers_count: 7,
5147
+ triple_axis_pairs: 2,
5148
+ triple_axis_solos: 2,
5149
+ })}
5104
5150
  data-topo-pinned-aspect={(() => {
5105
5151
  const aspects: string[] = [];
5106
5152
  if (pinnedStatus) aspects.push('status');
@@ -12884,7 +12930,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
12884
12930
  pattern, applied at the dual-axis tier).
12885
12931
  data-recent-panel-title-breath-axis-2 attr exposes the
12886
12932
  gate for tests. */}
12887
- <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={activeEdgeKey ? '800' : '700'} letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: activeEdgeKey ? `drop-shadow(0 0 2px ${pal.legendAccent}80) drop-shadow(0 0 4px ${pal.legendAccent}40) brightness(1.15)` : undefined }} data-recent-panel-title data-recent-panel-title-fw={activeEdgeKey ? '800' : '700'} data-recent-panel-title-active={activeEdgeKey ? 'true' : 'false'} data-recent-panel-title-glow={activeEdgeKey ? 'true' : 'false'} data-recent-panel-title-brightness={activeEdgeKey ? '1.15' : '1'} data-recent-panel-title-breath={!reducedMotion && !activeEdgeKey ? '8s' : 'off'} data-recent-panel-title-breath-axis-2={!reducedMotion && !activeEdgeKey ? 'font-size' : 'off'} data-recent-panel-title-breath-axis-3={!reducedMotion && !activeEdgeKey ? 'text-shadow' : 'off'} className={!reducedMotion && !activeEdgeKey ? 'anet-topo-panel-title-glow-breath' : undefined}>recent signal{!reducedMotion && !activeEdgeKey && (
12933
+ <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={activeEdgeKey ? '800' : '700'} letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: activeEdgeKey ? `drop-shadow(0 0 2px ${pal.legendAccent}80) drop-shadow(0 0 4px ${pal.legendAccent}40) brightness(1.15)` : undefined }} data-recent-panel-title data-recent-panel-title-fw={activeEdgeKey ? '800' : '700'} data-recent-panel-title-active={activeEdgeKey ? 'true' : 'false'} data-recent-panel-title-glow={activeEdgeKey ? 'true' : 'false'} data-recent-panel-title-brightness={activeEdgeKey ? '1.15' : '1'} data-recent-panel-title-breath={!reducedMotion && !activeEdgeKey ? '8s' : 'off'} data-recent-panel-title-breath-axis-2={!reducedMotion && !activeEdgeKey ? 'font-size' : 'off'} data-recent-panel-title-breath-axis-3={!reducedMotion && !activeEdgeKey ? 'text-shadow' : 'off'} className={!reducedMotion && !activeEdgeKey ? 'anet-topo-panel-title-glow-breath' : undefined}>{/* R730 — SVG <title> a11y child, screen readers read this as the panel's accessible name. */}<title>recent signal · activity panel title</title>recent signal{!reducedMotion && !activeEdgeKey && (
12888
12934
  <animate attributeName="opacity" values="0.78;1;0.78" dur="8s" repeatCount="indefinite" />
12889
12935
  )}{!reducedMotion && !activeEdgeKey && (
12890
12936
  <animate attributeName="font-size" values="11.96;12.04;11.96" dur="8s" repeatCount="indefinite" />
@@ -14667,7 +14713,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
14667
14713
  same 11.96 ↔ 12.04 range, same opacity-axis siblings —
14668
14714
  panels breathe both opacity AND font-size IN PHASE,
14669
14715
  phase-locked across the pair via shared cadence. */}
14670
- <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={pinnedStatus ? '800' : '700'} letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: pinnedStatus ? `drop-shadow(0 0 2px ${pal.legendAccent}80) drop-shadow(0 0 4px ${pal.legendAccent}40) brightness(1.15)` : undefined }} data-legend-panel-title data-legend-panel-title-fw={pinnedStatus ? '800' : '700'} data-legend-panel-title-active={pinnedStatus ? 'true' : 'false'} data-legend-panel-title-glow={pinnedStatus ? 'true' : 'false'} data-legend-panel-title-brightness={pinnedStatus ? '1.15' : '1'} data-legend-panel-title-breath={!reducedMotion && !pinnedStatus ? '8s' : 'off'} data-legend-panel-title-breath-axis-2={!reducedMotion && !pinnedStatus ? 'font-size' : 'off'} data-legend-panel-title-breath-axis-3={!reducedMotion && !pinnedStatus ? 'text-shadow' : 'off'} className={!reducedMotion && !pinnedStatus ? 'anet-topo-panel-title-glow-breath' : undefined}>legend{!reducedMotion && !pinnedStatus && (
14716
+ <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={pinnedStatus ? '800' : '700'} letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: pinnedStatus ? `drop-shadow(0 0 2px ${pal.legendAccent}80) drop-shadow(0 0 4px ${pal.legendAccent}40) brightness(1.15)` : undefined }} data-legend-panel-title data-legend-panel-title-fw={pinnedStatus ? '800' : '700'} data-legend-panel-title-active={pinnedStatus ? 'true' : 'false'} data-legend-panel-title-glow={pinnedStatus ? 'true' : 'false'} data-legend-panel-title-brightness={pinnedStatus ? '1.15' : '1'} data-legend-panel-title-breath={!reducedMotion && !pinnedStatus ? '8s' : 'off'} data-legend-panel-title-breath-axis-2={!reducedMotion && !pinnedStatus ? 'font-size' : 'off'} data-legend-panel-title-breath-axis-3={!reducedMotion && !pinnedStatus ? 'text-shadow' : 'off'} className={!reducedMotion && !pinnedStatus ? 'anet-topo-panel-title-glow-breath' : undefined}>{/* R730 — SVG <title> a11y child, screen readers read this as the panel's accessible name. */}<title>legend · status / vendor / runtime swatch panel</title>legend{!reducedMotion && !pinnedStatus && (
14671
14717
  <animate attributeName="opacity" values="0.78;1;0.78" dur="8s" repeatCount="indefinite" />
14672
14718
  )}{!reducedMotion && !pinnedStatus && (
14673
14719
  <animate attributeName="font-size" values="11.96;12.04;11.96" dur="8s" repeatCount="indefinite" />
@@ -15848,7 +15894,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
15848
15894
  data-topo-brand-watermark-glow-breath={reducedMotion ? 'false' : '6s'}
15849
15895
  className={reducedMotion ? undefined : 'anet-topo-brand-watermark-glow-breath'}
15850
15896
  style={{ pointerEvents: 'none', transition: 'fill 200ms ease-out' }}
15851
- >sleep2agi{!reducedMotion && (
15897
+ >{/* Round 730 / Loop — SVG <title> a11y child. Screen readers
15898
+ read this as the accessible name of the element; mouse
15899
+ tooltips don't fire because the wrapper has pointer-events:
15900
+ none (R282 — keeps the watermark non-interactive). The
15901
+ title text describes role + identity: "sleep2agi" is the
15902
+ brand name; "brand watermark" the structural role. */}<title>sleep2agi · brand watermark</title>sleep2agi{!reducedMotion && (
15852
15903
  <animate attributeName="opacity" values="0.32;0.48;0.32" dur="6s" repeatCount="indefinite" />
15853
15904
  )}{!reducedMotion && (
15854
15905
  /* Round 712 / Loop — watermark gains a SECOND breath axis,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.242",
3
+ "version": "0.5.3-preview.244",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,131 @@
1
+ /* Round 729 — axis-count stats catalog on canvas root. 6TH orthogonal
2
+ * meta-doc axis on the breath family. Hexagon meta-doc:
3
+ * R710 data-topo-respiratory-rolodex (cadences)
4
+ * R716 data-topo-respiratory-dual-axis-surfaces (axes)
5
+ * R717 data-topo-respiratory-patterns (patterns)
6
+ * R720 data-topo-respiratory-tiers (tiers)
7
+ * R723 data-topo-respiratory-triple-axis-surfaces (triple-axis)
8
+ * R729 data-topo-respiratory-axis-count-stats (stats) ← this round
9
+ *
10
+ * Stats are AGGREGATE counts — explicitly surfaced as queryable data
11
+ * for tooling (debug overlays, sanity checks) despite being derivable
12
+ * from the prior 5 catalogs. R729 test cross-validates every field
13
+ * against the source-of-truth catalogs at runtime.
14
+ *
15
+ * Assertions:
16
+ * - attr present on root <svg>
17
+ * - JSON parses to an object with the expected keys
18
+ * - total_anchors === Σ rolodex anchor counts (R710 cross-check)
19
+ * - cadences === rolodex keys.length (R710 cross-check)
20
+ * - cadence_range_s.min/max === rolodex min/max keys (R710 cross-check)
21
+ * - cadence_arc_s === max - min
22
+ * - axis_counts.triple === R723 entries length (R723 cross-check)
23
+ * - axis_counts.single + axis_counts.dual + axis_counts.triple === total_anchors
24
+ * - patterns_count === R717 length (R717 cross-check)
25
+ * - tiers_count === R720 length (R720 cross-check)
26
+ * - triple_axis_pairs === R717 entries matching name 'triple-axis-pair*'
27
+ * - dual_axis_tier_empty: axis_counts.dual === 0 (post-R728 structural milestone)
28
+ */
29
+ import { chromium } from 'playwright';
30
+ import { readFileSync } from 'node:fs';
31
+
32
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
33
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
34
+
35
+ const browser = await chromium.launch({ headless: true });
36
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
37
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
38
+ await ctx.addInitScript(() => {
39
+ try {
40
+ localStorage.setItem('anet-theme', 'cyber');
41
+ localStorage.setItem('anet-topo-layout', 'ring');
42
+ sessionStorage.setItem('anet_v3_auth', '1');
43
+ } catch {}
44
+ });
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: 'idle', 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: [mk('a·1'), mk('a·2')] } });
55
+ });
56
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
57
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
58
+ const page = await ctx.newPage();
59
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
60
+ await page.waitForSelector('[data-topo-canvas-aria]', { timeout: 15000, state: 'attached' });
61
+ await page.waitForTimeout(300);
62
+
63
+ const runtimeAttrs = await page.evaluate(() => {
64
+ const svg = document.querySelector('[data-topo-canvas-aria]');
65
+ return {
66
+ stats: svg?.getAttribute('data-topo-respiratory-axis-count-stats') ?? null,
67
+ rolodex: svg?.getAttribute('data-topo-respiratory-rolodex') ?? null,
68
+ triple: svg?.getAttribute('data-topo-respiratory-triple-axis-surfaces') ?? null,
69
+ patterns: svg?.getAttribute('data-topo-respiratory-patterns') ?? null,
70
+ tiers: svg?.getAttribute('data-topo-respiratory-tiers') ?? null,
71
+ };
72
+ });
73
+
74
+ await browser.close();
75
+
76
+ let stats = null;
77
+ let rolodex = null;
78
+ let triple = null;
79
+ let patterns = null;
80
+ let tiers = null;
81
+ let parseError = null;
82
+ try {
83
+ stats = JSON.parse(runtimeAttrs.stats ?? '');
84
+ rolodex = JSON.parse(runtimeAttrs.rolodex ?? '');
85
+ triple = JSON.parse(runtimeAttrs.triple ?? '');
86
+ patterns = JSON.parse(runtimeAttrs.patterns ?? '');
87
+ tiers = JSON.parse(runtimeAttrs.tiers ?? '');
88
+ } catch (e) {
89
+ parseError = String(e);
90
+ }
91
+
92
+ const expectedKeys = ['total_anchors', 'cadences', 'cadence_range_s', 'cadence_arc_s', 'axis_counts', 'patterns_count', 'tiers_count', 'triple_axis_pairs', 'triple_axis_solos'];
93
+ const hasAllKeys = stats && expectedKeys.every(k => k in stats);
94
+
95
+ const rolodexAnchorCount = rolodex && typeof rolodex === 'object'
96
+ ? Object.values(rolodex).reduce((acc, list) => acc + (Array.isArray(list) ? list.length : 0), 0)
97
+ : -1;
98
+ const rolodexCadenceCount = rolodex ? Object.keys(rolodex).length : -1;
99
+ const rolodexCadenceMin = rolodex ? Math.min(...Object.keys(rolodex).map(Number)) : -1;
100
+ const rolodexCadenceMax = rolodex ? Math.max(...Object.keys(rolodex).map(Number)) : -1;
101
+
102
+ const r717TriplePairCount = Array.isArray(patterns)
103
+ ? patterns.filter(p => typeof p?.name === 'string' && p.name.startsWith('triple-axis-pair')).length
104
+ : -1;
105
+
106
+ const axisCountSum = stats?.axis_counts
107
+ ? (stats.axis_counts.single ?? 0) + (stats.axis_counts.dual ?? 0) + (stats.axis_counts.triple ?? 0)
108
+ : -1;
109
+
110
+ const results = {
111
+ attr_present: !!runtimeAttrs.stats,
112
+ json_parses: stats !== null && parseError === null,
113
+ has_all_expected_keys: !!hasAllKeys,
114
+ total_anchors_matches_rolodex: stats?.total_anchors === rolodexAnchorCount,
115
+ cadences_count_matches: stats?.cadences === rolodexCadenceCount,
116
+ cadence_range_min_matches: stats?.cadence_range_s?.min === rolodexCadenceMin,
117
+ cadence_range_max_matches: stats?.cadence_range_s?.max === rolodexCadenceMax,
118
+ cadence_arc_consistent: stats?.cadence_arc_s === (rolodexCadenceMax - rolodexCadenceMin),
119
+ triple_count_matches_r723: stats?.axis_counts?.triple === (Array.isArray(triple) ? triple.length : -1),
120
+ axis_count_sum_eq_total: axisCountSum === stats?.total_anchors,
121
+ patterns_count_matches_r717: stats?.patterns_count === (Array.isArray(patterns) ? patterns.length : -1),
122
+ tiers_count_matches_r720: stats?.tiers_count === (Array.isArray(tiers) ? tiers.length : -1),
123
+ triple_axis_pairs_matches: stats?.triple_axis_pairs === r717TriplePairCount,
124
+ dual_axis_tier_empty: stats?.axis_counts?.dual === 0,
125
+ };
126
+ const ok = Object.values(results).every(Boolean);
127
+ console.log(`${ok ? '✅' : '❌'} R729 axis-count stats catalog (6th meta-doc — breath family hexagon):`,
128
+ JSON.stringify(results, null, 2),
129
+ `\n stats: ${JSON.stringify(stats)}`,
130
+ parseError ? `\n parseError: ${parseError}` : '');
131
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,88 @@
1
+ /* Round 730 — SVG <title> a11y children on the 3 primary SVG text
2
+ * anchors (watermark, recent panel title, legend panel title). Pure
3
+ * additive a11y improvement: screen readers can now identify these
4
+ * decorative SVG elements via their accessible name. No visible chrome
5
+ * change (mouse tooltips don't fire because the elements have
6
+ * pointer-events: none), no overlap risk.
7
+ *
8
+ * Pivot round: first non-breath-family addition after the R721–R729
9
+ * triple-axis + meta-doc hexagon thread.
10
+ *
11
+ * Assertions:
12
+ * - Watermark <text> has a <title> child with expected text
13
+ * - Recent panel title (when rendered) has a <title> child
14
+ * - Legend panel title has a <title> child
15
+ * - Each title text matches the canonical format "<name> · <role>"
16
+ * - Existing breath animations on all 3 are preserved (regression)
17
+ */
18
+ import { chromium } from 'playwright';
19
+ import { readFileSync } from 'node:fs';
20
+
21
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
22
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
23
+
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript(() => {
28
+ try {
29
+ localStorage.setItem('anet-theme', 'cyber');
30
+ localStorage.setItem('anet-topo-layout', 'ring');
31
+ sessionStorage.setItem('anet_v3_auth', '1');
32
+ } catch {}
33
+ });
34
+ await ctx.route('**/api/hub/status*', async (route) => {
35
+ const r = await route.fetch();
36
+ const b = await r.json();
37
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
38
+ const mk = (alias) => ({
39
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
40
+ network_id: nid, project_dir: null,
41
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
42
+ });
43
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
44
+ });
45
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
46
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
49
+ await page.waitForSelector('[data-topo-brand-watermark]', { timeout: 15000, state: 'attached' });
50
+ await page.waitForTimeout(300);
51
+
52
+ const state = await page.evaluate(() => {
53
+ const watermark = document.querySelector('[data-topo-brand-watermark]');
54
+ const recent = document.querySelector('[data-recent-panel-title]');
55
+ const legend = document.querySelector('[data-legend-panel-title]');
56
+ const titleOf = (el) => el?.querySelector('title')?.textContent ?? null;
57
+ const smilCount = (el) => el?.querySelectorAll('animate').length ?? 0;
58
+ return {
59
+ watermark_present: !!watermark,
60
+ watermark_title_text: titleOf(watermark),
61
+ watermark_smil_count: smilCount(watermark), // expect 2 (R519 opacity + R712 letter-spacing)
62
+ recent_present: !!recent,
63
+ recent_title_text: titleOf(recent),
64
+ recent_smil_count: smilCount(recent), // expect 2 (R700 opacity + R713 font-size)
65
+ legend_present: !!legend,
66
+ legend_title_text: titleOf(legend),
67
+ legend_smil_count: smilCount(legend), // expect 2 (R701 opacity + R713 font-size)
68
+ };
69
+ });
70
+
71
+ await browser.close();
72
+
73
+ const results = {
74
+ watermark_title_present: state.watermark_present && state.watermark_title_text === 'sleep2agi · brand watermark',
75
+ watermark_smil_preserved: state.watermark_smil_count === 2,
76
+ /* Recent panel renders conditionally on flowLinks; same conditional-
77
+ * presence pattern as R728. Treat as pass if not rendered, strict
78
+ * check otherwise. */
79
+ recent_title_present: !state.recent_present || state.recent_title_text === 'recent signal · activity panel title',
80
+ recent_smil_preserved: !state.recent_present || state.recent_smil_count === 2,
81
+ legend_title_present: state.legend_present && state.legend_title_text === 'legend · status / vendor / runtime swatch panel',
82
+ legend_smil_preserved: state.legend_present && state.legend_smil_count === 2,
83
+ };
84
+ const ok = Object.values(results).every(Boolean);
85
+ console.log(`${ok ? '✅' : '❌'} R730 SVG <title> a11y children on 3 SVG text anchors (watermark + recent + legend titles):`,
86
+ JSON.stringify(results, null, 2),
87
+ `\n state: ${JSON.stringify(state)}`);
88
+ process.exit(ok ? 0 : 1);