@sleep2agi/agent-network-dashboard 0.5.3-preview.231 → 0.5.3-preview.232

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 (156) 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/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +2 -2
  14. package/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/admin.html +2 -2
  23. package/.next/server/app/admin.rsc +2 -2
  24. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  30. package/.next/server/app/index.html +2 -2
  31. package/.next/server/app/index.rsc +3 -3
  32. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  34. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  36. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/login.html +2 -2
  39. package/.next/server/app/login.rsc +3 -3
  40. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/logs.html +2 -2
  48. package/.next/server/app/logs.rsc +2 -2
  49. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  55. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/messages.html +2 -2
  57. package/.next/server/app/messages.rsc +2 -2
  58. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  64. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/node.html +2 -2
  66. package/.next/server/app/node.rsc +2 -2
  67. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  73. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/nodes.html +2 -2
  75. package/.next/server/app/nodes.rsc +2 -2
  76. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs.html +2 -2
  85. package/.next/server/app/server-logs.rsc +2 -2
  86. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  88. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  89. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  91. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/settings/networks.html +2 -2
  94. package/.next/server/app/settings/networks.rsc +2 -2
  95. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  102. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens.html +2 -2
  105. package/.next/server/app/settings/tokens.rsc +2 -2
  106. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  109. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/settings.html +2 -2
  114. package/.next/server/app/settings.rsc +3 -3
  115. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  116. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  121. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks.html +2 -2
  124. package/.next/server/app/tasks.rsc +2 -2
  125. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  127. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  128. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  130. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  131. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
  132. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  133. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
  134. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  137. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  138. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  139. package/.next/server/middleware-build-manifest.js +3 -3
  140. package/.next/server/pages/404.html +2 -2
  141. package/.next/server/pages/500.html +1 -1
  142. package/.next/static/chunks/{0fcch25_x_e6k.css → 03e5yraydnai..css} +1 -1
  143. package/.next/static/chunks/{09oamdv~26l2i.js → 04_hztcrd76db.js} +1 -1
  144. package/.next/static/chunks/{0j0b0yd222u40.js → 0k6pgvv0zk6wv.js} +2 -2
  145. package/.next/static/chunks/{0xuohyx.zz.1-.js → 0xah6epzejyj2.js} +1 -1
  146. package/.next/static/chunks/{0f.appti_l02h.js → 16ce87~4iez5i.js} +1 -1
  147. package/.next/trace +2 -2
  148. package/.next/trace-build +1 -1
  149. package/app/components/TopoGraph.tsx +13 -2
  150. package/app/globals.css +50 -0
  151. package/package.json +1 -1
  152. package/scripts/topo-chrome-reset-breath-test.mjs +115 -0
  153. package/scripts/topo-respiratory-patterns-catalog-test.mjs +1 -1
  154. /package/.next/static/{ZyjUKk4WhRuLkc8K4d7em → J2fTVsZNWp8dUVe0a7ZLO}/_buildManifest.js +0 -0
  155. /package/.next/static/{ZyjUKk4WhRuLkc8K4d7em → J2fTVsZNWp8dUVe0a7ZLO}/_clientMiddlewareManifest.js +0 -0
  156. /package/.next/static/{ZyjUKk4WhRuLkc8K4d7em → J2fTVsZNWp8dUVe0a7ZLO}/_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.230"],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.231"],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 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.230"],70286)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.231"],70286)}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":247,"timestamp":408932675739,"id":4,"parentId":1,"tags":{},"startTime":1779216904922,"traceId":"326173a6f9d63365"},{"name":"load-custom-routes","duration":465,"timestamp":408932676174,"id":5,"parentId":1,"tags":{},"startTime":1779216904922,"traceId":"326173a6f9d63365"},{"name":"create-dist-dir","duration":701,"timestamp":408932676677,"id":6,"parentId":1,"tags":{},"startTime":1779216904923,"traceId":"326173a6f9d63365"},{"name":"clean","duration":37012,"timestamp":408932678081,"id":7,"parentId":1,"tags":{},"startTime":1779216904924,"traceId":"326173a6f9d63365"},{"name":"discover-routes","duration":10023,"timestamp":408932804469,"id":8,"parentId":1,"tags":{},"startTime":1779216905051,"traceId":"326173a6f9d63365"},{"name":"create-root-mapping","duration":111,"timestamp":408932814553,"id":9,"parentId":1,"tags":{},"startTime":1779216905061,"traceId":"326173a6f9d63365"},{"name":"generate-route-types","duration":22599,"timestamp":408932817184,"id":10,"parentId":1,"tags":{},"startTime":1779216905063,"traceId":"326173a6f9d63365"},{"name":"public-dir-conflict-check","duration":97,"timestamp":408932839862,"id":11,"parentId":1,"tags":{},"startTime":1779216905086,"traceId":"326173a6f9d63365"},{"name":"generate-routes-manifest","duration":4578,"timestamp":408932840100,"id":12,"parentId":1,"tags":{},"startTime":1779216905086,"traceId":"326173a6f9d63365"},{"name":"run-turbopack","duration":6754296,"timestamp":408932863332,"id":14,"parentId":1,"tags":{},"startTime":1779216905110,"traceId":"326173a6f9d63365"},{"name":"turbopack-build-events","duration":96,"timestamp":408933173657,"id":15,"parentId":1,"tags":{},"startTime":1779216905420,"traceId":"326173a6f9d63365"},{"name":"run-typescript","duration":10754203,"timestamp":408939643875,"id":16,"parentId":1,"tags":{},"startTime":1779216911890,"traceId":"326173a6f9d63365"},{"name":"generate-required-server-files","duration":3033,"timestamp":408950399559,"id":18,"parentId":1,"tags":{},"startTime":1779216922646,"traceId":"326173a6f9d63365"},{"name":"check-static-error-page","duration":16404,"timestamp":408950616057,"id":20,"parentId":19,"tags":{},"startTime":1779216922862,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":513986,"timestamp":408950636909,"id":65,"parentId":22,"tags":{},"startTime":1779216922883,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":531042,"timestamp":408950620069,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779216922866,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":585368,"timestamp":408950637279,"id":68,"parentId":27,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":599115,"timestamp":408950623632,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":635755,"timestamp":408950637948,"id":72,"parentId":32,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":649308,"timestamp":408950624479,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779216922871,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":653377,"timestamp":408950637070,"id":66,"parentId":25,"tags":{},"startTime":1779216922883,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":667166,"timestamp":408950623361,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":653127,"timestamp":408950638130,"id":73,"parentId":33,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":666694,"timestamp":408950624622,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779216922871,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":657722,"timestamp":408950638237,"id":75,"parentId":35,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":671192,"timestamp":408950624851,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779216922871,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":658193,"timestamp":408950638213,"id":74,"parentId":34,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":671723,"timestamp":408950624738,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779216922871,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":665838,"timestamp":408950638256,"id":76,"parentId":36,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":678787,"timestamp":408950625367,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":667079,"timestamp":408950638299,"id":78,"parentId":38,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":679760,"timestamp":408950625683,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":671473,"timestamp":408950638309,"id":79,"parentId":39,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":684043,"timestamp":408950625789,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":675429,"timestamp":408950638323,"id":80,"parentId":40,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":687921,"timestamp":408950625884,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":686237,"timestamp":408950638351,"id":81,"parentId":42,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":698397,"timestamp":408950626261,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":691061,"timestamp":408950638361,"id":82,"parentId":44,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":702778,"timestamp":408950626698,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":695777,"timestamp":408950638376,"id":83,"parentId":45,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":707353,"timestamp":408950626847,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":702063,"timestamp":408950638282,"id":77,"parentId":37,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":714851,"timestamp":408950625543,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":708023,"timestamp":408950637887,"id":71,"parentId":30,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":721923,"timestamp":408950624045,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":708414,"timestamp":408950638391,"id":84,"parentId":46,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":719918,"timestamp":408950626953,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":713270,"timestamp":408950638437,"id":87,"parentId":49,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":722936,"timestamp":408950628839,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779216922875,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":713530,"timestamp":408950638420,"id":86,"parentId":48,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":723352,"timestamp":408950628642,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779216922875,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":719035,"timestamp":408950638451,"id":88,"parentId":50,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":728595,"timestamp":408950628935,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779216922875,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":719232,"timestamp":408950638408,"id":85,"parentId":47,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":730569,"timestamp":408950627097,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":714845,"timestamp":408950649976,"id":90,"parentId":24,"tags":{},"startTime":1779216922896,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":744213,"timestamp":408950620652,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779216922867,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":694860,"timestamp":408950671409,"id":91,"parentId":31,"tags":{},"startTime":1779216922918,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":742132,"timestamp":408950624184,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":695935,"timestamp":408950672511,"id":92,"parentId":41,"tags":{},"startTime":1779216922919,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":742509,"timestamp":408950625981,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779216922872,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":731011,"timestamp":408950638461,"id":89,"parentId":51,"tags":{},"startTime":1779216922885,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":740469,"timestamp":408950629047,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779216922875,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":700193,"timestamp":408950673869,"id":93,"parentId":43,"tags":{},"startTime":1779216922920,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":747685,"timestamp":408950626420,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779216922873,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":750211,"timestamp":408950637397,"id":69,"parentId":28,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":763904,"timestamp":408950623756,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":759538,"timestamp":408950637697,"id":70,"parentId":29,"tags":{},"startTime":1779216922884,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":773411,"timestamp":408950623883,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":719923,"timestamp":408950706502,"id":96,"parentId":53,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":796886,"timestamp":408950629617,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779216922876,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":793032,"timestamp":408950636497,"id":64,"parentId":21,"tags":{},"startTime":1779216922883,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":811062,"timestamp":408950618526,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779216922865,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":727179,"timestamp":408950706488,"id":95,"parentId":52,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":804268,"timestamp":408950629455,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779216922876,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":728664,"timestamp":408950706539,"id":99,"parentId":56,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":805034,"timestamp":408950630215,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779216922876,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":735522,"timestamp":408950706671,"id":101,"parentId":59,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":811001,"timestamp":408950631268,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779216922878,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":738987,"timestamp":408950706551,"id":100,"parentId":58,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":814526,"timestamp":408950631055,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779216922877,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":743708,"timestamp":408950706438,"id":94,"parentId":23,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":829805,"timestamp":408950620387,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779216922867,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":813336,"timestamp":408950637176,"id":67,"parentId":26,"tags":{},"startTime":1779216922883,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":827049,"timestamp":408950623510,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779216922870,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":748395,"timestamp":408950706685,"id":102,"parentId":61,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":823243,"timestamp":408950631889,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779216922878,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":752045,"timestamp":408950706698,"id":103,"parentId":62,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":826737,"timestamp":408950632056,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779216922878,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":752627,"timestamp":408950706724,"id":105,"parentId":60,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":827935,"timestamp":408950631460,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779216922878,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":764430,"timestamp":408950706710,"id":104,"parentId":63,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":838991,"timestamp":408950632204,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779216922878,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":788570,"timestamp":408950706529,"id":98,"parentId":55,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":865181,"timestamp":408950629983,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779216922876,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":799046,"timestamp":408950706516,"id":97,"parentId":54,"tags":{},"startTime":1779216922953,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":875862,"timestamp":408950629768,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779216922876,"traceId":"326173a6f9d63365"},{"name":"is-page-static","duration":812341,"timestamp":408950726788,"id":106,"parentId":57,"tags":{},"startTime":1779216922973,"traceId":"326173a6f9d63365"},{"name":"check-page","duration":908741,"timestamp":408950630468,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779216922877,"traceId":"326173a6f9d63365"},{"name":"static-check","duration":924457,"timestamp":408950614809,"id":19,"parentId":1,"tags":{},"startTime":1779216922861,"traceId":"326173a6f9d63365"}]
2
- [{"name":"write-routes-manifest","duration":519,"timestamp":408951549728,"id":108,"parentId":1,"tags":{},"startTime":1779216923796,"traceId":"326173a6f9d63365"},{"name":"load-dotenv","duration":51,"timestamp":408951560818,"id":111,"parentId":110,"tags":{},"startTime":1779216923807,"traceId":"326173a6f9d63365"},{"name":"run-export-path-map","duration":659,"timestamp":408951563742,"id":112,"parentId":110,"tags":{},"startTime":1779216923810,"traceId":"326173a6f9d63365"},{"name":"next-export","duration":629042,"timestamp":408951559540,"id":110,"parentId":1,"tags":{},"startTime":1779216923806,"traceId":"326173a6f9d63365"},{"name":"move-exported-app-not-found-","duration":553,"timestamp":408952191779,"id":113,"parentId":109,"tags":{},"startTime":1779216924438,"traceId":"326173a6f9d63365"},{"name":"move-exported-app-global-error-","duration":457,"timestamp":408952192473,"id":114,"parentId":109,"tags":{},"startTime":1779216924439,"traceId":"326173a6f9d63365"},{"name":"static-generation","duration":640652,"timestamp":408951554050,"id":109,"parentId":1,"tags":{},"startTime":1779216923800,"traceId":"326173a6f9d63365"},{"name":"write-routes-manifest","duration":450,"timestamp":408952194939,"id":115,"parentId":1,"tags":{},"startTime":1779216924441,"traceId":"326173a6f9d63365"},{"name":"print-tree-view","duration":5006,"timestamp":408952207547,"id":116,"parentId":1,"tags":{},"startTime":1779216924454,"traceId":"326173a6f9d63365"},{"name":"write-route-bundle-stats","duration":19821,"timestamp":408952212599,"id":117,"parentId":1,"tags":{},"startTime":1779216924459,"traceId":"326173a6f9d63365"},{"name":"telemetry-flush","duration":47535,"timestamp":408952232456,"id":118,"parentId":1,"tags":{},"startTime":1779216924479,"traceId":"326173a6f9d63365"},{"name":"next-build","duration":19658361,"timestamp":408932621687,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779216904868,"traceId":"326173a6f9d63365"}]
1
+ [{"name":"generate-buildid","duration":374,"timestamp":409713862807,"id":4,"parentId":1,"tags":{},"startTime":1779217686109,"traceId":"ba9437bfb2aac2a2"},{"name":"load-custom-routes","duration":503,"timestamp":409713863342,"id":5,"parentId":1,"tags":{},"startTime":1779217686110,"traceId":"ba9437bfb2aac2a2"},{"name":"create-dist-dir","duration":715,"timestamp":409713863889,"id":6,"parentId":1,"tags":{},"startTime":1779217686110,"traceId":"ba9437bfb2aac2a2"},{"name":"clean","duration":36290,"timestamp":409713865320,"id":7,"parentId":1,"tags":{},"startTime":1779217686112,"traceId":"ba9437bfb2aac2a2"},{"name":"discover-routes","duration":26125,"timestamp":409713981384,"id":8,"parentId":1,"tags":{},"startTime":1779217686228,"traceId":"ba9437bfb2aac2a2"},{"name":"create-root-mapping","duration":195,"timestamp":409714007574,"id":9,"parentId":1,"tags":{},"startTime":1779217686254,"traceId":"ba9437bfb2aac2a2"},{"name":"generate-route-types","duration":21271,"timestamp":409714010499,"id":10,"parentId":1,"tags":{},"startTime":1779217686257,"traceId":"ba9437bfb2aac2a2"},{"name":"public-dir-conflict-check","duration":101,"timestamp":409714031864,"id":11,"parentId":1,"tags":{},"startTime":1779217686278,"traceId":"ba9437bfb2aac2a2"},{"name":"generate-routes-manifest","duration":4821,"timestamp":409714032114,"id":12,"parentId":1,"tags":{},"startTime":1779217686278,"traceId":"ba9437bfb2aac2a2"},{"name":"run-turbopack","duration":6654772,"timestamp":409714042535,"id":14,"parentId":1,"tags":{},"startTime":1779217686289,"traceId":"ba9437bfb2aac2a2"},{"name":"turbopack-build-events","duration":107,"timestamp":409714372612,"id":15,"parentId":1,"tags":{},"startTime":1779217686619,"traceId":"ba9437bfb2aac2a2"},{"name":"run-typescript","duration":10149601,"timestamp":409720713370,"id":16,"parentId":1,"tags":{},"startTime":1779217692960,"traceId":"ba9437bfb2aac2a2"},{"name":"generate-required-server-files","duration":2451,"timestamp":409730864110,"id":18,"parentId":1,"tags":{},"startTime":1779217703110,"traceId":"ba9437bfb2aac2a2"},{"name":"check-static-error-page","duration":16569,"timestamp":409731062911,"id":20,"parentId":19,"tags":{},"startTime":1779217703309,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":447891,"timestamp":409731082684,"id":65,"parentId":22,"tags":{},"startTime":1779217703329,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":465597,"timestamp":409731065151,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779217703311,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":538586,"timestamp":409731085762,"id":69,"parentId":28,"tags":{},"startTime":1779217703332,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":556522,"timestamp":409731067935,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":552362,"timestamp":409731086500,"id":72,"parentId":32,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":570459,"timestamp":409731068490,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":558697,"timestamp":409731086661,"id":73,"parentId":33,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":576834,"timestamp":409731068616,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":564070,"timestamp":409731086417,"id":71,"parentId":30,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":582384,"timestamp":409731068176,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":567925,"timestamp":409731082825,"id":66,"parentId":25,"tags":{},"startTime":1779217703329,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":583240,"timestamp":409731067546,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":573493,"timestamp":409731082936,"id":67,"parentId":26,"tags":{},"startTime":1779217703329,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":588784,"timestamp":409731067705,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":574723,"timestamp":409731086746,"id":74,"parentId":34,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":592802,"timestamp":409731068720,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":575553,"timestamp":409731086829,"id":77,"parentId":37,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":593079,"timestamp":409731069354,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":596528,"timestamp":409731086777,"id":75,"parentId":35,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":614578,"timestamp":409731068813,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":600069,"timestamp":409731086851,"id":78,"parentId":38,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":617537,"timestamp":409731069448,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":609672,"timestamp":409731086795,"id":76,"parentId":36,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":627342,"timestamp":409731069199,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":609882,"timestamp":409731086861,"id":79,"parentId":39,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":627271,"timestamp":409731069512,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":613471,"timestamp":409731086890,"id":81,"parentId":42,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":630526,"timestamp":409731069894,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":617412,"timestamp":409731086930,"id":84,"parentId":46,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":633802,"timestamp":409731070586,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779217703317,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":624548,"timestamp":409731082386,"id":64,"parentId":21,"tags":{},"startTime":1779217703329,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":642952,"timestamp":409731064038,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779217703310,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":621782,"timestamp":409731085589,"id":68,"parentId":27,"tags":{},"startTime":1779217703332,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":639612,"timestamp":409731067817,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":621735,"timestamp":409731086945,"id":85,"parentId":47,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":636249,"timestamp":409731072474,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779217703319,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":626733,"timestamp":409731086978,"id":88,"parentId":50,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":640939,"timestamp":409731072813,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779217703319,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":635142,"timestamp":409731086904,"id":82,"parentId":44,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":651735,"timestamp":409731070356,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779217703317,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":641251,"timestamp":409731086876,"id":80,"parentId":40,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":658601,"timestamp":409731069576,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":632927,"timestamp":409731095411,"id":90,"parentId":24,"tags":{},"startTime":1779217703342,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":662808,"timestamp":409731065563,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779217703312,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":642411,"timestamp":409731086914,"id":83,"parentId":45,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":658888,"timestamp":409731070495,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779217703317,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":642552,"timestamp":409731086991,"id":89,"parentId":51,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":656679,"timestamp":409731072894,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779217703319,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":643635,"timestamp":409731086072,"id":70,"parentId":29,"tags":{},"startTime":1779217703332,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":661667,"timestamp":409731068066,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779217703314,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":653884,"timestamp":409731086967,"id":87,"parentId":49,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":668180,"timestamp":409731072718,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779217703319,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":644514,"timestamp":409731096548,"id":91,"parentId":31,"tags":{},"startTime":1779217703343,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":672841,"timestamp":409731068255,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779217703315,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":639434,"timestamp":409731101794,"id":92,"parentId":41,"tags":{},"startTime":1779217703348,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":671617,"timestamp":409731069639,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":655382,"timestamp":409731103025,"id":93,"parentId":43,"tags":{},"startTime":1779217703349,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":688410,"timestamp":409731070057,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779217703316,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":696469,"timestamp":409731086954,"id":86,"parentId":48,"tags":{},"startTime":1779217703333,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":710906,"timestamp":409731072596,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779217703319,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":643920,"timestamp":409731149317,"id":100,"parentId":58,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":718419,"timestamp":409731074884,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779217703321,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":652518,"timestamp":409731149517,"id":101,"parentId":59,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":725910,"timestamp":409731076199,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779217703322,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":654552,"timestamp":409731149277,"id":97,"parentId":54,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":730309,"timestamp":409731073592,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":657826,"timestamp":409731149154,"id":94,"parentId":23,"tags":{},"startTime":1779217703395,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":741674,"timestamp":409731065377,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779217703312,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":664935,"timestamp":409731149294,"id":98,"parentId":55,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":740508,"timestamp":409731073786,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":664891,"timestamp":409731149588,"id":102,"parentId":61,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":737673,"timestamp":409731076845,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779217703323,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":666059,"timestamp":409731149619,"id":104,"parentId":63,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":736518,"timestamp":409731079202,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779217703325,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":672275,"timestamp":409731149262,"id":96,"parentId":53,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":748136,"timestamp":409731073440,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":672447,"timestamp":409731149643,"id":105,"parentId":57,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":747901,"timestamp":409731074226,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":672939,"timestamp":409731149605,"id":103,"parentId":62,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":745605,"timestamp":409731076982,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779217703323,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":674150,"timestamp":409731149653,"id":106,"parentId":60,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":747422,"timestamp":409731076418,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779217703323,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":675981,"timestamp":409731149303,"id":99,"parentId":56,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":751333,"timestamp":409731073981,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"is-page-static","duration":682384,"timestamp":409731149241,"id":95,"parentId":52,"tags":{},"startTime":1779217703396,"traceId":"ba9437bfb2aac2a2"},{"name":"check-page","duration":758385,"timestamp":409731073269,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779217703320,"traceId":"ba9437bfb2aac2a2"},{"name":"static-check","duration":769569,"timestamp":409731062121,"id":19,"parentId":1,"tags":{},"startTime":1779217703308,"traceId":"ba9437bfb2aac2a2"}]
2
+ [{"name":"write-routes-manifest","duration":613,"timestamp":409731841787,"id":108,"parentId":1,"tags":{},"startTime":1779217704088,"traceId":"ba9437bfb2aac2a2"},{"name":"load-dotenv","duration":66,"timestamp":409731853970,"id":111,"parentId":110,"tags":{},"startTime":1779217704100,"traceId":"ba9437bfb2aac2a2"},{"name":"run-export-path-map","duration":568,"timestamp":409731856566,"id":112,"parentId":110,"tags":{},"startTime":1779217704103,"traceId":"ba9437bfb2aac2a2"},{"name":"next-export","duration":599604,"timestamp":409731852760,"id":110,"parentId":1,"tags":{},"startTime":1779217704099,"traceId":"ba9437bfb2aac2a2"},{"name":"move-exported-app-not-found-","duration":505,"timestamp":409732456248,"id":113,"parentId":109,"tags":{},"startTime":1779217704703,"traceId":"ba9437bfb2aac2a2"},{"name":"move-exported-app-global-error-","duration":418,"timestamp":409732456845,"id":114,"parentId":109,"tags":{},"startTime":1779217704703,"traceId":"ba9437bfb2aac2a2"},{"name":"static-generation","duration":613385,"timestamp":409731846460,"id":109,"parentId":1,"tags":{},"startTime":1779217704093,"traceId":"ba9437bfb2aac2a2"},{"name":"write-routes-manifest","duration":544,"timestamp":409732460186,"id":115,"parentId":1,"tags":{},"startTime":1779217704706,"traceId":"ba9437bfb2aac2a2"},{"name":"print-tree-view","duration":4217,"timestamp":409732477444,"id":116,"parentId":1,"tags":{},"startTime":1779217704724,"traceId":"ba9437bfb2aac2a2"},{"name":"write-route-bundle-stats","duration":12838,"timestamp":409732481697,"id":117,"parentId":1,"tags":{},"startTime":1779217704728,"traceId":"ba9437bfb2aac2a2"},{"name":"telemetry-flush","duration":26697,"timestamp":409732494562,"id":118,"parentId":1,"tags":{},"startTime":1779217704741,"traceId":"ba9437bfb2aac2a2"},{"name":"next-build","duration":18715764,"timestamp":409713805528,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779217686052,"traceId":"ba9437bfb2aac2a2"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6754296,"timestamp":408932863332,"id":14,"parentId":1,"tags":{},"startTime":1779216905110,"traceId":"326173a6f9d63365"},{"name":"turbopack-build-events","duration":96,"timestamp":408933173657,"id":15,"parentId":1,"tags":{},"startTime":1779216905420,"traceId":"326173a6f9d63365"},{"name":"run-typescript","duration":10754203,"timestamp":408939643875,"id":16,"parentId":1,"tags":{},"startTime":1779216911890,"traceId":"326173a6f9d63365"},{"name":"static-check","duration":924457,"timestamp":408950614809,"id":19,"parentId":1,"tags":{},"startTime":1779216922861,"traceId":"326173a6f9d63365"},{"name":"static-generation","duration":640652,"timestamp":408951554050,"id":109,"parentId":1,"tags":{},"startTime":1779216923800,"traceId":"326173a6f9d63365"},{"name":"telemetry-flush","duration":47535,"timestamp":408952232456,"id":118,"parentId":1,"tags":{},"startTime":1779216924479,"traceId":"326173a6f9d63365"},{"name":"next-build","duration":19658361,"timestamp":408932621687,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779216904868,"traceId":"326173a6f9d63365"}]
1
+ [{"name":"run-turbopack","duration":6654772,"timestamp":409714042535,"id":14,"parentId":1,"tags":{},"startTime":1779217686289,"traceId":"ba9437bfb2aac2a2"},{"name":"turbopack-build-events","duration":107,"timestamp":409714372612,"id":15,"parentId":1,"tags":{},"startTime":1779217686619,"traceId":"ba9437bfb2aac2a2"},{"name":"run-typescript","duration":10149601,"timestamp":409720713370,"id":16,"parentId":1,"tags":{},"startTime":1779217692960,"traceId":"ba9437bfb2aac2a2"},{"name":"static-check","duration":769569,"timestamp":409731062121,"id":19,"parentId":1,"tags":{},"startTime":1779217703308,"traceId":"ba9437bfb2aac2a2"},{"name":"static-generation","duration":613385,"timestamp":409731846460,"id":109,"parentId":1,"tags":{},"startTime":1779217704093,"traceId":"ba9437bfb2aac2a2"},{"name":"telemetry-flush","duration":26697,"timestamp":409732494562,"id":118,"parentId":1,"tags":{},"startTime":1779217704741,"traceId":"ba9437bfb2aac2a2"},{"name":"next-build","duration":18715764,"timestamp":409713805528,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779217686052,"traceId":"ba9437bfb2aac2a2"}]
@@ -4881,6 +4881,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
4881
4881
  "15": ["watermark wrapper envelope"],
4882
4882
  "17": ["Layout wrapper"],
4883
4883
  "19": ["nodeSize wrapper"],
4884
+ "21": ["reset button"],
4884
4885
  "23": ["zoom wrapper"],
4885
4886
  })}
4886
4887
  /* Round 716 / Loop — companion to R710 rolodex catalog: surface
@@ -4966,7 +4967,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
4966
4967
  data-topo-respiratory-patterns={JSON.stringify([
4967
4968
  { name: "title-block", cadences: [5, 6, 10, 11], anchors: ["brand logo", "kicker", "H2 section title", "title-block envelope"], shape: "trio-with-envelope" },
4968
4969
  { name: "panel-pair", cadences: [8], anchors: ["recent title", "legend title"], shape: "parity" },
4969
- { name: "chrome-strip", cadences: [9, 17, 19, 23], anchors: ["zoom-level readout", "Layout wrapper", "nodeSize wrapper", "zoom wrapper"], shape: "tiered-with-trio" },
4970
+ { name: "chrome-strip", cadences: [9, 17, 19, 21, 23], anchors: ["zoom-level readout", "Layout wrapper", "nodeSize wrapper", "reset button", "zoom wrapper"], shape: "tiered-with-quartet" },
4970
4971
  { name: "canvas-brand-pair", cadences: [6, 7, 13, 15], anchors: ["watermark text", "crescent inner", "crescent wrapper envelope", "watermark wrapper envelope"], shape: "coprime-nested-pair" },
4971
4972
  { name: "background", cadences: [3, 4], anchors: ["row hot", "hub idle"], shape: "baseline-pair" },
4972
4973
  ])}
@@ -17024,8 +17025,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
17024
17025
  // active state during press = hover-lift (-1px) + scale-95
17025
17026
  // composes as translateY(-1px) scale(0.95) — lift-and-compress
17026
17027
  // for tactile click feel.
17027
- className="p-1.5 rounded-md border hover:bg-white/5 active:bg-white/10 hover:-translate-y-px active:scale-95 transform-gpu focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60"
17028
+ className="anet-topo-chrome-reset-breath p-1.5 rounded-md border hover:bg-white/5 active:bg-white/10 hover:-translate-y-px active:scale-95 transform-gpu focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60"
17028
17029
  data-topo-chrome-reset-hover-lift="true"
17030
+ /* Round 718 / Loop — reset button joins the respiratory
17031
+ family at 21 s as the 5th anchor on the chrome-strip
17032
+ pattern. Extends "tiered-with-trio" → "tiered-with-
17033
+ quartet"; first ATOMIC chrome button to breathe (the
17034
+ other 4 chrome anchors are either segmented-control
17035
+ wrappers or a data readout). Hover gate piggybacks on
17036
+ the existing data-topo-chrome-reset-hover attr — same
17037
+ leaf-element gate pattern as R703 zoom-level readout.
17038
+ See globals.css R718 block for cadence rationale. */
17039
+ data-topo-chrome-reset-breath="21s"
17029
17040
  /* R594 — chrome reset button gains filter brightness(1.15)
17030
17041
  on hoveredReset. 33rd anchor in per-element brightness
17031
17042
  family, 2nd HTML-element anchor (R593 zoom-level was
package/app/globals.css CHANGED
@@ -1566,6 +1566,56 @@ body {
1566
1566
  .anet-topo-chrome-zoom-wrapper-breath { animation: none; }
1567
1567
  }
1568
1568
 
1569
+ /* Round 718 — chrome reset button joins the respiratory family at 21 s.
1570
+ 5th anchor on the chrome-strip pattern, extending it from
1571
+ "tiered-with-trio" → "tiered-with-quartet". The chrome strip now
1572
+ spans a data tier + a prime quartet across control surfaces:
1573
+ R703 zoom-level readout 9 s (data tier)
1574
+ R707 Layout wrapper 17 s (control wrapper tier)
1575
+ R708 nodeSize wrapper 19 s (control wrapper tier)
1576
+ R718 reset button 21 s (atomic control tier) ← this round
1577
+ R709 zoom wrapper 23 s (control wrapper tier)
1578
+
1579
+ 21 is composite (3 × 7), the ONE composite in the prime quartet —
1580
+ slots between the prime wrappers 19 and 23 to fill the 17/19/21/23
1581
+ odd-number ladder. Coprime with all rolodex cadences (the rolodex
1582
+ has no 3-multiples until 9 and no 7-multiples until 7 itself — but
1583
+ neither 9 nor 7 share factors with 21's other co-tier mates 17/19/23).
1584
+ Actually 21 IS divisible by 3 like 9 — gcd(21,9)=3 so 21 phase-locks
1585
+ with 9 every 63 s. That's deliberate: the data tier (9 s) and the
1586
+ atomic-control tier (21 s) RE-ALIGN every minute — a slow handshake
1587
+ between "what the chrome reads" and "the reset action". Aesthetic
1588
+ over arithmetic: a 1-per-minute alignment is sub-perceptible.
1589
+
1590
+ Atomic-control sub-tier rationale: the reset button is the only
1591
+ STANDALONE atomic chrome button with a 5-axis hover signature
1592
+ (R594 brightness + R400 hover-lift + R196 active-state + R350 icon
1593
+ spin + R184 release pop). The 5 hover axes already give it a rich
1594
+ interactive voice; a 6th REST axis at 7% alpha (slightly looser than
1595
+ the 6% wrappers, to compensate for the smaller icon-button surface)
1596
+ marks it as "alive" at rest without competing with the hover axes.
1597
+
1598
+ Hover gate via data-attr (R703 pattern, not R707/R708/R709 :has()
1599
+ pattern). The button itself exposes data-topo-chrome-reset-hover —
1600
+ already plumbed for the R350 icon-rotate cue and R594 brightness —
1601
+ so the breath gates off naturally on its own hover state. Sibling
1602
+ gate pattern to R703 zoom-level (the only other chrome anchor at
1603
+ the leaf-element tier; both gate via their own hover data-attr
1604
+ rather than parent :has()). */
1605
+ @keyframes anet-topo-chrome-reset-breath-kf {
1606
+ 0%, 100% { opacity: 1; }
1607
+ 50% { opacity: 0.93; }
1608
+ }
1609
+ .anet-topo-chrome-reset-breath {
1610
+ animation: anet-topo-chrome-reset-breath-kf 21s ease-in-out infinite;
1611
+ }
1612
+ .anet-topo-chrome-reset-breath[data-topo-chrome-reset-hover="true"] {
1613
+ animation: none;
1614
+ }
1615
+ @media (prefers-reduced-motion: reduce) {
1616
+ .anet-topo-chrome-reset-breath { animation: none; }
1617
+ }
1618
+
1569
1619
  /* ─────────────────────────────────────────────────────────────────────
1570
1620
  Round 29 — prefers-reduced-motion a11y sweep
1571
1621
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.231",
3
+ "version": "0.5.3-preview.232",
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,115 @@
1
+ /* Round 718 — chrome reset button respiratory anchor at 21 s.
2
+ * 5th anchor on the chrome-strip pattern (extends "tiered-with-trio"
3
+ * → "tiered-with-quartet"). First ATOMIC chrome button to breathe
4
+ * (the prior 4 anchors were 3 segmented-control wrappers + 1 data
5
+ * readout). Hover-gate piggybacks on existing data-topo-chrome-
6
+ * reset-hover attr — sibling pattern to R703 zoom-level leaf-element
7
+ * gate (vs R707/R708/R709 wrapper :has() gate).
8
+ *
9
+ * Assertions:
10
+ * - reset button present with breath class + breath-cadence attr "21s"
11
+ * - hover attr defaults to "false" at rest (gate inactive)
12
+ * - CSS @keyframes has 0%,100% opacity:1 and 50% opacity:0.93
13
+ * - .anet-topo-chrome-reset-breath rule binds 21s cadence
14
+ * - hover-gate selector `[data-topo-chrome-reset-hover="true"]`
15
+ * sets animation:none
16
+ * - prefers-reduced-motion guard present
17
+ * - R710 rolodex catalog includes "21": ["reset button"] entry
18
+ * - R717 patterns catalog chrome-strip entry has cadence 21 + anchor
19
+ * "reset button" + shape "tiered-with-quartet"
20
+ */
21
+ import { chromium } from 'playwright';
22
+ import { readFileSync } from 'node:fs';
23
+
24
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
25
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
26
+
27
+ const browser = await chromium.launch({ headless: true });
28
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
29
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
30
+ await ctx.addInitScript(() => {
31
+ try {
32
+ localStorage.setItem('anet-theme', 'cyber');
33
+ localStorage.setItem('anet-topo-layout', 'ring');
34
+ sessionStorage.setItem('anet_v3_auth', '1');
35
+ } catch {}
36
+ });
37
+ await ctx.route('**/api/hub/status*', async (route) => {
38
+ const r = await route.fetch();
39
+ const b = await r.json();
40
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
41
+ const mk = (alias) => ({
42
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
43
+ network_id: nid, project_dir: null,
44
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
45
+ });
46
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
47
+ });
48
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
49
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
50
+ const page = await ctx.newPage();
51
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
52
+ await page.waitForSelector('[data-topo-chrome-reset]', { timeout: 15000, state: 'attached' });
53
+ await page.waitForTimeout(300);
54
+
55
+ const runtimeState = await page.evaluate(() => {
56
+ const btn = document.querySelector('[data-topo-chrome-reset]');
57
+ if (!btn) return null;
58
+ const cs = getComputedStyle(btn);
59
+ const svg = document.querySelector('[data-topo-canvas-aria]');
60
+ return {
61
+ has_class: btn.classList.contains('anet-topo-chrome-reset-breath'),
62
+ breath_attr: btn.getAttribute('data-topo-chrome-reset-breath'),
63
+ hover_attr: btn.getAttribute('data-topo-chrome-reset-hover'),
64
+ anim_name: cs.animationName,
65
+ anim_duration: cs.animationDuration,
66
+ rolodex_attr: svg?.getAttribute('data-topo-respiratory-rolodex') ?? null,
67
+ patterns_attr: svg?.getAttribute('data-topo-respiratory-patterns') ?? null,
68
+ };
69
+ });
70
+
71
+ await browser.close();
72
+
73
+ const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
74
+ const cssKfNorm = /@keyframes anet-topo-chrome-reset-breath-kf\s*\{[\s\S]*?0%,\s*100%\s*\{[\s\S]*?opacity:\s*1\s*;?[\s\S]*?\}/.test(cssSrc);
75
+ const cssKfMid = /@keyframes anet-topo-chrome-reset-breath-kf\s*\{[\s\S]*?50%\s*\{[\s\S]*?opacity:\s*0\.93/.test(cssSrc);
76
+ const cssBind21 = /\.anet-topo-chrome-reset-breath\s*\{[\s\S]*?animation:\s*anet-topo-chrome-reset-breath-kf\s+21s\s+ease-in-out\s+infinite/.test(cssSrc);
77
+ const cssHoverGate = /\.anet-topo-chrome-reset-breath\[data-topo-chrome-reset-hover="true"\]\s*\{\s*animation:\s*none/.test(cssSrc);
78
+ const cssReducedMotion = /@media\s*\(prefers-reduced-motion:\s*reduce\)\s*\{[\s\S]*?\.anet-topo-chrome-reset-breath\s*\{\s*animation:\s*none/.test(cssSrc);
79
+
80
+ const runtimeAnim = runtimeState?.anim_name === 'anet-topo-chrome-reset-breath-kf' || runtimeState?.anim_name === 'none';
81
+
82
+ let rolodex = null;
83
+ let patterns = null;
84
+ try {
85
+ rolodex = JSON.parse(runtimeState?.rolodex_attr ?? '');
86
+ patterns = JSON.parse(runtimeState?.patterns_attr ?? '');
87
+ } catch {}
88
+ const rolodexHas21 = !!rolodex && Array.isArray(rolodex['21']) && rolodex['21'].includes('reset button');
89
+ const chromeStripEntry = Array.isArray(patterns) ? patterns.find(p => p.name === 'chrome-strip') : null;
90
+ const patternsChromeStripHas21AndReset =
91
+ !!chromeStripEntry
92
+ && Array.isArray(chromeStripEntry.cadences) && chromeStripEntry.cadences.includes(21)
93
+ && Array.isArray(chromeStripEntry.anchors) && chromeStripEntry.anchors.includes('reset button')
94
+ && chromeStripEntry.shape === 'tiered-with-quartet';
95
+
96
+ const results = {
97
+ button_present: !!runtimeState,
98
+ has_breath_class: runtimeState?.has_class === true,
99
+ breath_attr_21s: runtimeState?.breath_attr === '21s',
100
+ rest_not_hover: runtimeState?.hover_attr === 'false',
101
+ runtime_anim_ok: runtimeAnim,
102
+ css_keyframes_norm: cssKfNorm,
103
+ css_keyframes_mid_0_93: cssKfMid,
104
+ css_class_binds_21s: cssBind21,
105
+ css_hover_gate_present: cssHoverGate,
106
+ css_reduced_motion_guard: cssReducedMotion,
107
+ rolodex_has_21_reset: rolodexHas21,
108
+ patterns_chrome_strip_5_anchors: patternsChromeStripHas21AndReset,
109
+ };
110
+ const ok = Object.values(results).every(Boolean);
111
+ console.log(`${ok ? '✅' : '❌'} R718 chrome reset button breath (5th chrome-strip anchor, atomic-control tier @ 21s):`,
112
+ JSON.stringify(results, null, 2),
113
+ `\n runtime: ${JSON.stringify({ has_class: runtimeState?.has_class, breath_attr: runtimeState?.breath_attr, hover_attr: runtimeState?.hover_attr, anim_name: runtimeState?.anim_name, anim_duration: runtimeState?.anim_duration })}`,
114
+ `\n chrome-strip pattern: ${JSON.stringify(chromeStripEntry)}`);
115
+ process.exit(ok ? 0 : 1);
@@ -71,7 +71,7 @@ const validShape = Array.isArray(patterns)
71
71
  && typeof p.name === 'string' && p.name.length > 0
72
72
  && Array.isArray(p.cadences) && p.cadences.length > 0 && p.cadences.every(c => typeof c === 'number' && c > 0)
73
73
  && Array.isArray(p.anchors) && p.anchors.length > 0 && p.anchors.every(a => typeof a === 'string' && a.length > 0)
74
- && typeof p.shape === 'string' && ['trio-with-envelope', 'parity', 'tiered-with-trio', 'coprime-nested-pair', 'baseline-pair'].includes(p.shape))
74
+ && typeof p.shape === 'string' && ['trio-with-envelope', 'parity', 'tiered-with-trio', 'tiered-with-quartet', 'coprime-nested-pair', 'baseline-pair'].includes(p.shape))
75
75
  : false;
76
76
 
77
77
  const totalAnchorCount = Array.isArray(patterns)