@sleep2agi/agent-network-dashboard 0.5.1-preview.73 → 0.5.1-preview.75

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 (141) 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 +4 -4
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +3 -3
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  126. package/.next/server/middleware-build-manifest.js +3 -3
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/static/chunks/09nf8lytkoal0.js +4 -0
  130. package/.next/static/chunks/{03zh2c_ixt~yp.js → 0_v5hfvrdl_hp.js} +1 -1
  131. package/.next/static/chunks/{0qx_3zj9ynjz5.js → 14q1j54w_b86d.js} +1 -1
  132. package/.next/trace +2 -2
  133. package/.next/trace-build +1 -1
  134. package/app/components/TopoGraph.tsx +48 -36
  135. package/package.json +1 -1
  136. package/scripts/topo-chip-row-group-hover-brighten-test.mjs +107 -0
  137. package/scripts/topo-node-pulse-trough-test.mjs +91 -0
  138. package/.next/static/chunks/0nyxh4lh9_qa-.js +0 -4
  139. /package/.next/static/{ehPTmmtiOVakSSnMwTequ → Bkp9rIIim6cChdv1GNvxW}/_buildManifest.js +0 -0
  140. /package/.next/static/{ehPTmmtiOVakSSnMwTequ → Bkp9rIIim6cChdv1GNvxW}/_clientMiddlewareManifest.js +0 -0
  141. /package/.next/static/{ehPTmmtiOVakSSnMwTequ → Bkp9rIIim6cChdv1GNvxW}/_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.1-preview.72"],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.1-preview.74"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":282,"timestamp":153362745922,"id":4,"parentId":1,"tags":{},"startTime":1778961334992,"traceId":"f6ddfde71acdc452"},{"name":"load-custom-routes","duration":481,"timestamp":153362746346,"id":5,"parentId":1,"tags":{},"startTime":1778961334993,"traceId":"f6ddfde71acdc452"},{"name":"create-dist-dir","duration":710,"timestamp":153362746866,"id":6,"parentId":1,"tags":{},"startTime":1778961334993,"traceId":"f6ddfde71acdc452"},{"name":"clean","duration":32645,"timestamp":153362748249,"id":7,"parentId":1,"tags":{},"startTime":1778961334995,"traceId":"f6ddfde71acdc452"},{"name":"discover-routes","duration":10347,"timestamp":153362860052,"id":8,"parentId":1,"tags":{},"startTime":1778961335106,"traceId":"f6ddfde71acdc452"},{"name":"create-root-mapping","duration":108,"timestamp":153362870461,"id":9,"parentId":1,"tags":{},"startTime":1778961335117,"traceId":"f6ddfde71acdc452"},{"name":"generate-route-types","duration":35149,"timestamp":153362873367,"id":10,"parentId":1,"tags":{},"startTime":1778961335120,"traceId":"f6ddfde71acdc452"},{"name":"public-dir-conflict-check","duration":101,"timestamp":153362908598,"id":11,"parentId":1,"tags":{},"startTime":1778961335155,"traceId":"f6ddfde71acdc452"},{"name":"generate-routes-manifest","duration":4567,"timestamp":153362908823,"id":12,"parentId":1,"tags":{},"startTime":1778961335155,"traceId":"f6ddfde71acdc452"},{"name":"run-turbopack","duration":5821100,"timestamp":153362918550,"id":14,"parentId":1,"tags":{},"startTime":1778961335165,"traceId":"f6ddfde71acdc452"},{"name":"turbopack-build-events","duration":80,"timestamp":153363216871,"id":15,"parentId":1,"tags":{},"startTime":1778961335463,"traceId":"f6ddfde71acdc452"},{"name":"run-typescript","duration":9600515,"timestamp":153368762135,"id":16,"parentId":1,"tags":{},"startTime":1778961341008,"traceId":"f6ddfde71acdc452"},{"name":"generate-required-server-files","duration":3179,"timestamp":153378364234,"id":18,"parentId":1,"tags":{},"startTime":1778961350611,"traceId":"f6ddfde71acdc452"},{"name":"check-static-error-page","duration":16494,"timestamp":153378540971,"id":20,"parentId":19,"tags":{},"startTime":1778961350787,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":510225,"timestamp":153378561355,"id":65,"parentId":22,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":527601,"timestamp":153378544159,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778961350790,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":532363,"timestamp":153378561816,"id":69,"parentId":28,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":546457,"timestamp":153378547816,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":538385,"timestamp":153378562300,"id":72,"parentId":32,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":552164,"timestamp":153378548618,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778961350795,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":569876,"timestamp":153378562481,"id":73,"parentId":33,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":583649,"timestamp":153378548783,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778961350795,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":572592,"timestamp":153378561744,"id":68,"parentId":27,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":586739,"timestamp":153378547664,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":581523,"timestamp":153378562569,"id":74,"parentId":34,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":595246,"timestamp":153378548917,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778961350795,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":586242,"timestamp":153378562622,"id":76,"parentId":36,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":599348,"timestamp":153378549584,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778961350796,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":592381,"timestamp":153378562652,"id":77,"parentId":37,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":608271,"timestamp":153378549790,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778961350796,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":599410,"timestamp":153378561625,"id":67,"parentId":26,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":613556,"timestamp":153378547534,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":598671,"timestamp":153378562603,"id":75,"parentId":35,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":612224,"timestamp":153378549082,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778961350795,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":600771,"timestamp":153378562670,"id":78,"parentId":38,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":613580,"timestamp":153378549946,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778961350796,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":602858,"timestamp":153378560980,"id":64,"parentId":21,"tags":{},"startTime":1778961350807,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":621276,"timestamp":153378542599,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778961350789,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":614390,"timestamp":153378562711,"id":81,"parentId":42,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":626567,"timestamp":153378550617,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778961350797,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":616043,"timestamp":153378561489,"id":66,"parentId":25,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":630221,"timestamp":153378547357,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":615046,"timestamp":153378562696,"id":80,"parentId":40,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":627564,"timestamp":153378550213,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778961350796,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":617587,"timestamp":153378562685,"id":79,"parentId":39,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":630231,"timestamp":153378550088,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778961350796,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":620520,"timestamp":153378562757,"id":83,"parentId":45,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":632074,"timestamp":153378551264,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778961350798,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":623017,"timestamp":153378562788,"id":85,"parentId":47,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":634343,"timestamp":153378551511,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778961350798,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":623531,"timestamp":153378562802,"id":86,"parentId":48,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":633089,"timestamp":153378553288,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778961350800,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":628019,"timestamp":153378562836,"id":89,"parentId":51,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":637145,"timestamp":153378553758,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778961350800,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":631006,"timestamp":153378562810,"id":87,"parentId":49,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":640358,"timestamp":153378553503,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778961350800,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":631829,"timestamp":153378562823,"id":88,"parentId":50,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":641066,"timestamp":153378553627,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778961350800,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":632378,"timestamp":153378566253,"id":90,"parentId":24,"tags":{},"startTime":1778961350813,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":653914,"timestamp":153378544763,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778961350791,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":636152,"timestamp":153378562774,"id":84,"parentId":46,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":647586,"timestamp":153378551383,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778961350798,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":641443,"timestamp":153378567828,"id":91,"parentId":31,"tags":{},"startTime":1778961350814,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":661026,"timestamp":153378548301,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778961350795,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":647210,"timestamp":153378568689,"id":92,"parentId":41,"tags":{},"startTime":1778961350815,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":665609,"timestamp":153378550355,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778961350797,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":653947,"timestamp":153378562228,"id":71,"parentId":30,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":668062,"timestamp":153378548155,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":652829,"timestamp":153378570103,"id":93,"parentId":43,"tags":{},"startTime":1778961350816,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":672189,"timestamp":153378550785,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778961350797,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":677111,"timestamp":153378562069,"id":70,"parentId":29,"tags":{},"startTime":1778961350808,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":691279,"timestamp":153378547958,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778961350794,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":687642,"timestamp":153378562745,"id":82,"parentId":44,"tags":{},"startTime":1778961350809,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":699328,"timestamp":153378551112,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778961350797,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":684287,"timestamp":153378576689,"id":100,"parentId":58,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":705111,"timestamp":153378555935,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778961350802,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":695102,"timestamp":153378576821,"id":101,"parentId":59,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":715796,"timestamp":153378556178,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778961350802,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":704782,"timestamp":153378576836,"id":102,"parentId":61,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":724846,"timestamp":153378556838,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778961350803,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":713557,"timestamp":153378576621,"id":95,"parentId":52,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":736039,"timestamp":153378554197,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778961350800,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":715365,"timestamp":153378576666,"id":98,"parentId":55,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":737301,"timestamp":153378554783,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778961350801,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":718255,"timestamp":153378576652,"id":97,"parentId":54,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":740396,"timestamp":153378554551,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778961350801,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":721112,"timestamp":153378576638,"id":96,"parentId":53,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":743412,"timestamp":153378554382,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778961350801,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":725468,"timestamp":153378576596,"id":94,"parentId":23,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":757641,"timestamp":153378544464,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778961350791,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":715293,"timestamp":153378587912,"id":105,"parentId":60,"tags":{},"startTime":1778961350834,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":746868,"timestamp":153378556378,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778961350803,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":726465,"timestamp":153378576863,"id":104,"parentId":63,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":746163,"timestamp":153378557198,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778961350803,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":694949,"timestamp":153378609885,"id":106,"parentId":57,"tags":{},"startTime":1778961350856,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":749545,"timestamp":153378555320,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778961350802,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":728744,"timestamp":153378576850,"id":103,"parentId":62,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":748595,"timestamp":153378557027,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778961350803,"traceId":"f6ddfde71acdc452"},{"name":"is-page-static","duration":753006,"timestamp":153378576676,"id":99,"parentId":56,"tags":{},"startTime":1778961350823,"traceId":"f6ddfde71acdc452"},{"name":"check-page","duration":774720,"timestamp":153378555044,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778961350801,"traceId":"f6ddfde71acdc452"},{"name":"static-check","duration":790024,"timestamp":153378539792,"id":19,"parentId":1,"tags":{},"startTime":1778961350786,"traceId":"f6ddfde71acdc452"}]
2
- [{"name":"write-routes-manifest","duration":734,"timestamp":153379339957,"id":108,"parentId":1,"tags":{},"startTime":1778961351586,"traceId":"f6ddfde71acdc452"},{"name":"load-dotenv","duration":46,"timestamp":153379352017,"id":111,"parentId":110,"tags":{},"startTime":1778961351598,"traceId":"f6ddfde71acdc452"},{"name":"run-export-path-map","duration":599,"timestamp":153379354438,"id":112,"parentId":110,"tags":{},"startTime":1778961351601,"traceId":"f6ddfde71acdc452"},{"name":"next-export","duration":626851,"timestamp":153379350771,"id":110,"parentId":1,"tags":{},"startTime":1778961351597,"traceId":"f6ddfde71acdc452"},{"name":"move-exported-app-not-found-","duration":654,"timestamp":153379981053,"id":113,"parentId":109,"tags":{},"startTime":1778961352227,"traceId":"f6ddfde71acdc452"},{"name":"move-exported-app-global-error-","duration":527,"timestamp":153379981825,"id":114,"parentId":109,"tags":{},"startTime":1778961352228,"traceId":"f6ddfde71acdc452"},{"name":"static-generation","duration":640540,"timestamp":153379344982,"id":109,"parentId":1,"tags":{},"startTime":1778961351591,"traceId":"f6ddfde71acdc452"},{"name":"write-routes-manifest","duration":434,"timestamp":153379985780,"id":115,"parentId":1,"tags":{},"startTime":1778961352232,"traceId":"f6ddfde71acdc452"},{"name":"print-tree-view","duration":3621,"timestamp":153380004846,"id":116,"parentId":1,"tags":{},"startTime":1778961352251,"traceId":"f6ddfde71acdc452"},{"name":"write-route-bundle-stats","duration":11710,"timestamp":153380008496,"id":117,"parentId":1,"tags":{},"startTime":1778961352255,"traceId":"f6ddfde71acdc452"},{"name":"telemetry-flush","duration":33890,"timestamp":153380020232,"id":118,"parentId":1,"tags":{},"startTime":1778961352267,"traceId":"f6ddfde71acdc452"},{"name":"next-build","duration":17363153,"timestamp":153362690997,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961334937,"traceId":"f6ddfde71acdc452"}]
1
+ [{"name":"generate-buildid","duration":282,"timestamp":154027310210,"id":4,"parentId":1,"tags":{},"startTime":1778961999556,"traceId":"1b41b9eb05b85e87"},{"name":"load-custom-routes","duration":512,"timestamp":154027310635,"id":5,"parentId":1,"tags":{},"startTime":1778961999557,"traceId":"1b41b9eb05b85e87"},{"name":"create-dist-dir","duration":701,"timestamp":154027311190,"id":6,"parentId":1,"tags":{},"startTime":1778961999557,"traceId":"1b41b9eb05b85e87"},{"name":"clean","duration":32810,"timestamp":154027312613,"id":7,"parentId":1,"tags":{},"startTime":1778961999559,"traceId":"1b41b9eb05b85e87"},{"name":"discover-routes","duration":10669,"timestamp":154027434401,"id":8,"parentId":1,"tags":{},"startTime":1778961999681,"traceId":"1b41b9eb05b85e87"},{"name":"create-root-mapping","duration":138,"timestamp":154027445156,"id":9,"parentId":1,"tags":{},"startTime":1778961999691,"traceId":"1b41b9eb05b85e87"},{"name":"generate-route-types","duration":25157,"timestamp":154027447963,"id":10,"parentId":1,"tags":{},"startTime":1778961999694,"traceId":"1b41b9eb05b85e87"},{"name":"public-dir-conflict-check","duration":99,"timestamp":154027473229,"id":11,"parentId":1,"tags":{},"startTime":1778961999720,"traceId":"1b41b9eb05b85e87"},{"name":"generate-routes-manifest","duration":5920,"timestamp":154027473447,"id":12,"parentId":1,"tags":{},"startTime":1778961999720,"traceId":"1b41b9eb05b85e87"},{"name":"run-turbopack","duration":5661020,"timestamp":154027499564,"id":14,"parentId":1,"tags":{},"startTime":1778961999746,"traceId":"1b41b9eb05b85e87"},{"name":"turbopack-build-events","duration":72,"timestamp":154027788854,"id":15,"parentId":1,"tags":{},"startTime":1778962000035,"traceId":"1b41b9eb05b85e87"},{"name":"run-typescript","duration":9386957,"timestamp":154033169233,"id":16,"parentId":1,"tags":{},"startTime":1778962005416,"traceId":"1b41b9eb05b85e87"},{"name":"generate-required-server-files","duration":3672,"timestamp":154042557837,"id":18,"parentId":1,"tags":{},"startTime":1778962014804,"traceId":"1b41b9eb05b85e87"},{"name":"check-static-error-page","duration":13701,"timestamp":154042728508,"id":20,"parentId":19,"tags":{},"startTime":1778962014975,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":464847,"timestamp":154042745411,"id":65,"parentId":22,"tags":{},"startTime":1778962014992,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":478708,"timestamp":154042731723,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778962014978,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":526919,"timestamp":154042745110,"id":64,"parentId":21,"tags":{},"startTime":1778962014991,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":541995,"timestamp":154042730123,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778962014976,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":558871,"timestamp":154042745580,"id":67,"parentId":26,"tags":{},"startTime":1778962014992,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":569583,"timestamp":154042734953,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778962014981,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":558587,"timestamp":154042746444,"id":69,"parentId":28,"tags":{},"startTime":1778962014993,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":569939,"timestamp":154042735151,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778962014981,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":564008,"timestamp":154042746767,"id":70,"parentId":29,"tags":{},"startTime":1778962014993,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":575619,"timestamp":154042735226,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778962014981,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":565418,"timestamp":154042745653,"id":68,"parentId":27,"tags":{},"startTime":1778962014992,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":576064,"timestamp":154042735058,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778962014981,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":572656,"timestamp":154042745505,"id":66,"parentId":25,"tags":{},"startTime":1778962014992,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":583410,"timestamp":154042734816,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778962014981,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":576707,"timestamp":154042746923,"id":71,"parentId":30,"tags":{},"startTime":1778962014993,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":588326,"timestamp":154042735354,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":587232,"timestamp":154042747266,"id":74,"parentId":34,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":598706,"timestamp":154042735854,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":592311,"timestamp":154042747298,"id":75,"parentId":35,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":603720,"timestamp":154042735937,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":600011,"timestamp":154042747178,"id":73,"parentId":33,"tags":{},"startTime":1778962014993,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":611451,"timestamp":154042735782,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":606734,"timestamp":154042747367,"id":78,"parentId":38,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":617654,"timestamp":154042736494,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":612581,"timestamp":154042747390,"id":80,"parentId":40,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":623450,"timestamp":154042736622,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":616863,"timestamp":154042746983,"id":72,"parentId":32,"tags":{},"startTime":1778962014993,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":628207,"timestamp":154042735680,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":618003,"timestamp":154042747349,"id":77,"parentId":37,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":628987,"timestamp":154042736404,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":622825,"timestamp":154042747315,"id":76,"parentId":36,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":633901,"timestamp":154042736281,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":622880,"timestamp":154042747440,"id":84,"parentId":46,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":633020,"timestamp":154042737347,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778962014984,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":623586,"timestamp":154042747454,"id":85,"parentId":47,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":633661,"timestamp":154042737419,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778962014984,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":624303,"timestamp":154042747377,"id":79,"parentId":39,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":635164,"timestamp":154042736559,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":632737,"timestamp":154042747477,"id":87,"parentId":49,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":641225,"timestamp":154042739057,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778962014985,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":627933,"timestamp":154042752585,"id":90,"parentId":24,"tags":{},"startTime":1778962014999,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":648296,"timestamp":154042732271,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778962014979,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":633292,"timestamp":154042747491,"id":88,"parentId":50,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":641692,"timestamp":154042739141,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778962014985,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":635377,"timestamp":154042747464,"id":86,"parentId":48,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":644000,"timestamp":154042738885,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778962014985,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":638218,"timestamp":154042747404,"id":81,"parentId":42,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":648835,"timestamp":154042736878,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":631783,"timestamp":154042754165,"id":91,"parentId":31,"tags":{},"startTime":1778962015000,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":650519,"timestamp":154042735465,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778962014982,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":626886,"timestamp":154042759285,"id":93,"parentId":43,"tags":{},"startTime":1778962015006,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":649239,"timestamp":154042736967,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":639674,"timestamp":154042747417,"id":82,"parentId":44,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":649934,"timestamp":154042737197,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":640136,"timestamp":154042747504,"id":89,"parentId":51,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":648484,"timestamp":154042739196,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778962014985,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":643622,"timestamp":154042747426,"id":83,"parentId":45,"tags":{},"startTime":1778962014994,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":653802,"timestamp":154042737285,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778962014984,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":638214,"timestamp":154042755054,"id":92,"parentId":41,"tags":{},"startTime":1778962015001,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":656630,"timestamp":154042736679,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778962014983,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":631096,"timestamp":154042762350,"id":95,"parentId":52,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":654003,"timestamp":154042739473,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778962014986,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":638560,"timestamp":154042762554,"id":101,"parentId":59,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":660018,"timestamp":154042741142,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778962014987,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":646932,"timestamp":154042762578,"id":102,"parentId":61,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":667873,"timestamp":154042741699,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778962014988,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":662710,"timestamp":154042762594,"id":103,"parentId":62,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":683512,"timestamp":154042741844,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778962014988,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":668268,"timestamp":154042762612,"id":104,"parentId":63,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":688949,"timestamp":154042741984,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778962014988,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":663387,"timestamp":154042774739,"id":105,"parentId":60,"tags":{},"startTime":1778962015021,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":696858,"timestamp":154042741321,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778962014988,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":681069,"timestamp":154042762319,"id":94,"parentId":23,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":711399,"timestamp":154042732032,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778962014978,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":661159,"timestamp":154042785729,"id":106,"parentId":57,"tags":{},"startTime":1778962015032,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":706604,"timestamp":154042740318,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778962014987,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":686995,"timestamp":154042762383,"id":97,"parentId":54,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":709724,"timestamp":154042739694,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778962014986,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":689520,"timestamp":154042762395,"id":98,"parentId":55,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":712124,"timestamp":154042739835,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778962014986,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":689652,"timestamp":154042762412,"id":99,"parentId":56,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":712027,"timestamp":154042740066,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778962014986,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":691858,"timestamp":154042762427,"id":100,"parentId":58,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":713398,"timestamp":154042740925,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778962014987,"traceId":"1b41b9eb05b85e87"},{"name":"is-page-static","duration":692774,"timestamp":154042762367,"id":96,"parentId":53,"tags":{},"startTime":1778962015009,"traceId":"1b41b9eb05b85e87"},{"name":"check-page","duration":715576,"timestamp":154042739589,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778962014986,"traceId":"1b41b9eb05b85e87"},{"name":"static-check","duration":727802,"timestamp":154042727397,"id":19,"parentId":1,"tags":{},"startTime":1778962014974,"traceId":"1b41b9eb05b85e87"}]
2
+ [{"name":"write-routes-manifest","duration":568,"timestamp":154043465638,"id":108,"parentId":1,"tags":{},"startTime":1778962015712,"traceId":"1b41b9eb05b85e87"},{"name":"load-dotenv","duration":108,"timestamp":154043479957,"id":111,"parentId":110,"tags":{},"startTime":1778962015726,"traceId":"1b41b9eb05b85e87"},{"name":"run-export-path-map","duration":523,"timestamp":154043482863,"id":112,"parentId":110,"tags":{},"startTime":1778962015729,"traceId":"1b41b9eb05b85e87"},{"name":"next-export","duration":564175,"timestamp":154043478144,"id":110,"parentId":1,"tags":{},"startTime":1778962015724,"traceId":"1b41b9eb05b85e87"},{"name":"move-exported-app-not-found-","duration":576,"timestamp":154044045525,"id":113,"parentId":109,"tags":{},"startTime":1778962016292,"traceId":"1b41b9eb05b85e87"},{"name":"move-exported-app-global-error-","duration":334,"timestamp":154044046194,"id":114,"parentId":109,"tags":{},"startTime":1778962016292,"traceId":"1b41b9eb05b85e87"},{"name":"static-generation","duration":577150,"timestamp":154043471078,"id":109,"parentId":1,"tags":{},"startTime":1778962015717,"traceId":"1b41b9eb05b85e87"},{"name":"write-routes-manifest","duration":368,"timestamp":154044048461,"id":115,"parentId":1,"tags":{},"startTime":1778962016295,"traceId":"1b41b9eb05b85e87"},{"name":"print-tree-view","duration":5626,"timestamp":154044066365,"id":116,"parentId":1,"tags":{},"startTime":1778962016313,"traceId":"1b41b9eb05b85e87"},{"name":"write-route-bundle-stats","duration":13463,"timestamp":154044072056,"id":117,"parentId":1,"tags":{},"startTime":1778962016318,"traceId":"1b41b9eb05b85e87"},{"name":"telemetry-flush","duration":17014,"timestamp":154044085558,"id":118,"parentId":1,"tags":{},"startTime":1778962016332,"traceId":"1b41b9eb05b85e87"},{"name":"next-build","duration":16844117,"timestamp":154027258492,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961999505,"traceId":"1b41b9eb05b85e87"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5821100,"timestamp":153362918550,"id":14,"parentId":1,"tags":{},"startTime":1778961335165,"traceId":"f6ddfde71acdc452"},{"name":"turbopack-build-events","duration":80,"timestamp":153363216871,"id":15,"parentId":1,"tags":{},"startTime":1778961335463,"traceId":"f6ddfde71acdc452"},{"name":"run-typescript","duration":9600515,"timestamp":153368762135,"id":16,"parentId":1,"tags":{},"startTime":1778961341008,"traceId":"f6ddfde71acdc452"},{"name":"static-check","duration":790024,"timestamp":153378539792,"id":19,"parentId":1,"tags":{},"startTime":1778961350786,"traceId":"f6ddfde71acdc452"},{"name":"static-generation","duration":640540,"timestamp":153379344982,"id":109,"parentId":1,"tags":{},"startTime":1778961351591,"traceId":"f6ddfde71acdc452"},{"name":"telemetry-flush","duration":33890,"timestamp":153380020232,"id":118,"parentId":1,"tags":{},"startTime":1778961352267,"traceId":"f6ddfde71acdc452"},{"name":"next-build","duration":17363153,"timestamp":153362690997,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961334937,"traceId":"f6ddfde71acdc452"}]
1
+ [{"name":"run-turbopack","duration":5661020,"timestamp":154027499564,"id":14,"parentId":1,"tags":{},"startTime":1778961999746,"traceId":"1b41b9eb05b85e87"},{"name":"turbopack-build-events","duration":72,"timestamp":154027788854,"id":15,"parentId":1,"tags":{},"startTime":1778962000035,"traceId":"1b41b9eb05b85e87"},{"name":"run-typescript","duration":9386957,"timestamp":154033169233,"id":16,"parentId":1,"tags":{},"startTime":1778962005416,"traceId":"1b41b9eb05b85e87"},{"name":"static-check","duration":727802,"timestamp":154042727397,"id":19,"parentId":1,"tags":{},"startTime":1778962014974,"traceId":"1b41b9eb05b85e87"},{"name":"static-generation","duration":577150,"timestamp":154043471078,"id":109,"parentId":1,"tags":{},"startTime":1778962015717,"traceId":"1b41b9eb05b85e87"},{"name":"telemetry-flush","duration":17014,"timestamp":154044085558,"id":118,"parentId":1,"tags":{},"startTime":1778962016332,"traceId":"1b41b9eb05b85e87"},{"name":"next-build","duration":16844117,"timestamp":154027258492,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961999505,"traceId":"1b41b9eb05b85e87"}]
@@ -2066,12 +2066,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2066
2066
  conflict (R180 inset double-ring is a box-shadow
2067
2067
  not a transform). new data-chip-hover-lift attr
2068
2068
  surfaces the lift surface for tests. */
2069
- className={`tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
2069
+ // R414: chip-row chips gain `group` so inner unit
2070
+ // span brightens via group-hover:opacity-100 — sibling
2071
+ // to R355 filter pin pill inner-span hover-brighten.
2072
+ // Hover-brighten family extends from filter pills to
2073
+ // chip-row chips at the inner-span scope.
2074
+ className={`group tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
2070
2075
  workingCount > 0
2071
2076
  ? 'bg-green-500/10 text-green-300 border-green-500/20 hover:bg-green-500/15 hover:border-green-500/30 hover:-translate-y-px'
2072
2077
  : 'bg-green-500/10 text-green-300 border-green-500/20'
2073
2078
  }`}
2074
2079
  data-chip-hover-lift={workingCount > 0 ? 'true' : 'false'}
2080
+ data-chip-group-hover-brighten="true"
2075
2081
  data-working-chip
2076
2082
  data-working-chip-aliases={workingAliases.join(',')}
2077
2083
  data-pin-mirror={pinnedStatus === 'working' ? 'true' : 'false'}
@@ -2151,7 +2157,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2151
2157
  at the chip-count scope. Sibling edits on the
2152
2158
  online + active-links chip digits below. data-
2153
2159
  working-chip-digit attr exposes the digit span. */}
2154
- <span className="font-semibold" data-working-chip-digit>{workingCount}</span><span className="opacity-70" data-working-chip-unit> working</span>
2160
+ <span className="font-semibold" data-working-chip-digit>{workingCount}</span><span className="opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-working-chip-unit> working</span>
2155
2161
  </span>
2156
2162
  <span
2157
2163
  // Round 201 / Loop: online chip — mirror of the working
@@ -2166,12 +2172,14 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2166
2172
  (sibling treatment to working chip — same row,
2167
2173
  same digit-jitter physics on count crossings). */
2168
2174
  // R398: hover translate-y lift on clickable variant — see working chip above.
2169
- className={`tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
2175
+ // R414: `group` parent + inner unit span group-hover-brighten see working chip above.
2176
+ className={`group tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
2170
2177
  onlineNodes.length > 0
2171
2178
  ? 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20 hover:bg-cyan-500/15 hover:border-cyan-500/30 hover:-translate-y-px'
2172
2179
  : 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20'
2173
2180
  }`}
2174
2181
  data-chip-hover-lift={onlineNodes.length > 0 ? 'true' : 'false'}
2182
+ data-chip-group-hover-brighten="true"
2175
2183
  data-online-chip
2176
2184
  data-online-chip-aliases={onlineAliases.join(',')}
2177
2185
  data-pin-mirror={pinnedStatus === 'idle' ? 'true' : 'false'}
@@ -2217,7 +2225,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2217
2225
  >
2218
2226
  {/* R337 sibling — online chip unit demotion. */}
2219
2227
  {/* R362 sibling — online-chip digit gains font-semibold. */}
2220
- <span className="font-semibold" data-online-chip-digit>{onlineNodes.length}</span><span className="opacity-70" data-online-chip-unit> online</span>
2228
+ <span className="font-semibold" data-online-chip-digit>{onlineNodes.length}</span><span className="opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-online-chip-unit> online</span>
2221
2229
  </span>
2222
2230
  </>
2223
2231
  );
@@ -3208,12 +3216,14 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
3208
3216
  Every interactive chip in TopoGraph lifts on hover.
3209
3217
  data-chip-hover-lift attr exposes the lift surface
3210
3218
  state ('true' clickable, 'false' empty) for tests. */
3211
- className={`tabular-nums font-medium hidden sm:inline px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-transform duration-200 ease-out transform-gpu ${
3219
+ // R414: `group` parent + inner unit span group-hover-brighten see working chip above.
3220
+ className={`group tabular-nums font-medium hidden sm:inline px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-transform duration-200 ease-out transform-gpu ${
3212
3221
  isInteractive
3213
3222
  ? 'bg-gray-500/10 text-gray-400 border-gray-500/20 hover:bg-cyan-500/10 hover:text-cyan-200 hover:border-cyan-500/30 hover:-translate-y-px'
3214
3223
  : 'bg-gray-500/10 text-gray-400 border-gray-500/20'
3215
3224
  }`}
3216
3225
  data-chip-hover-lift={isInteractive ? 'true' : 'false'}
3226
+ data-chip-group-hover-brighten="true"
3217
3227
  data-active-links-chip
3218
3228
  data-active-links-flow-count={flowLinks.length}
3219
3229
  data-active-links-clickable={isInteractive ? 'true' : 'false'}
@@ -3242,7 +3252,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
3242
3252
  chip-internal-hierarchy arc. data-active-links-
3243
3253
  chip-unit exposes the unit span for tests. */}
3244
3254
  {/* R362 sibling — active-links chip digit gains font-semibold. */}
3245
- <span className="font-semibold" data-active-links-chip-digit>{flowLinks.length}</span><span className="opacity-70" data-active-links-chip-unit> active link{flowLinks.length === 1 ? '' : 's'}</span>
3255
+ <span className="font-semibold" data-active-links-chip-digit>{flowLinks.length}</span><span className="opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-active-links-chip-unit> active link{flowLinks.length === 1 ? '' : 's'}</span>
3246
3256
  {rel ? (() => {
3247
3257
  // Round 161 / Loop: extend R160's recency-pip
3248
3258
  // vocabulary up one scope — from per-flow row to
@@ -6189,47 +6199,49 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6189
6199
  />
6190
6200
  {/* Round 409 / Loop: active-node pulse peak
6191
6201
  opacity lift — cyber 0.18 → 0.20 / light
6192
- 0.12 → 0.14. The R243 pulse is the per-
6193
- node "this alias has recent flow" breath;
6194
- its peak amplitude was tuned in R243 but
6195
- sat at 0.18 cyber / 0.12 light — visible
6196
- but understated against the surrounding
6197
- status halos (R407 lifted offline halos
6198
- 0.25→0.30 cyber; online halos sit at 0.65
6199
- cyber). R409 lifts peak +0.02 on both
6200
- themes so the active-state breath reads
6201
- more confidently at its high-point while
6202
- the trough (0.04 cyber / 0.02 light)
6203
- stays put breath amplitude widens
6204
- slightly (cyber 0.14 0.16; light 0.10
6205
- 0.12) without changing rhythm or dur.
6206
- Theme-consistency / canvas-presence family
6207
- (9 anchors now):
6208
- R370 hub hover-ring 0.7 → 0.8 cyber
6209
- R371 edge-badge rest 0.82 0.85 cyber
6210
- R372 minimap offline-dot 0.5 0.6
6211
- R386 hub-highlight idle 0.9 0.95
6212
- R387 hover-detail panel 0.94 0.97 cyber
6213
- R391 hub-spoke active 0.7 0.8
6214
- R392 minimap online-dot 0.9 0.95
6215
- R403 click-ripple start 0.7 0.8
6216
- R409 active-node pulse peak (this round)
6217
- cyber 0.18 0.20
6218
- light 0.12 → 0.14
6202
+ 0.12 → 0.14. Theme-consistency / canvas-
6203
+ presence family 9th anchor. R243 family
6204
+ rhythm preserved.
6205
+ Round 413 / Loop: trough lift mirrors R409
6206
+ peak cyber 0.04 → 0.05 / light 0.02 →
6207
+ 0.03. Stale-state legibility lift family
6208
+ 8th anchor pairs with R404 (hub-halo
6209
+ cyber trough 0.08 0.10) and R405 (light
6210
+ trough 0.32 0.34). The per-node breath's
6211
+ low-point now reads slightly above the
6212
+ "nearly gone" zone while preserving the
6213
+ breath amplitude (cyber Δ 0.16 vs Δ pre-
6214
+ R409+R413 of 0.14; light Δ 0.11 vs 0.10).
6215
+ Both peak (R409) AND trough (R413) lift
6216
+ together so the active-pulse signal stays
6217
+ confidently present at both ends of its
6218
+ 2.4s cycle.
6219
+ Stale-state legibility lift family (8):
6220
+ R317 subordinate-text gray-500400
6221
+ R358 freshness floor 0.25→0.30
6222
+ R372 minimap offline-dot 0.5→0.6
6223
+ R404 hub-halo cyber trough 0.08→0.10
6224
+ R405 hub-halo light trough 0.32→0.34
6225
+ R406 edge freshness floor 0.35→0.40
6226
+ R407 node halo offline opacity (cyber+light)
6227
+ R413 active-node pulse trough (this round)
6228
+ cyber 0.04 → 0.05
6229
+ light 0.02 → 0.03
6219
6230
  R243 always-mount opacity-gate + R243
6220
6231
  ease-in-out keySplines + r animation
6221
6232
  (radius+8 ↔ radius+22) preserved.
6222
- data-node-pulse-peak attr exposes the
6223
- resolved per-theme peak for tests. */}
6233
+ data-node-pulse-peak + new -pulse-trough
6234
+ attrs expose resolved per-theme values. */}
6224
6235
  <animate
6225
6236
  attributeName="opacity"
6226
- values={isLight ? '0.14;0.02;0.14' : '0.20;0.04;0.20'}
6237
+ values={isLight ? '0.14;0.03;0.14' : '0.20;0.05;0.20'}
6227
6238
  dur="2.4s"
6228
6239
  repeatCount="indefinite"
6229
6240
  calcMode="spline"
6230
6241
  keyTimes="0;0.5;1"
6231
6242
  keySplines="0.42 0 0.58 1;0.42 0 0.58 1"
6232
6243
  data-node-pulse-peak={isLight ? '0.14' : '0.20'}
6244
+ data-node-pulse-trough={isLight ? '0.03' : '0.05'}
6233
6245
  />
6234
6246
  </circle>
6235
6247
  </g>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.1-preview.73",
3
+ "version": "0.5.1-preview.75",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,107 @@
1
+ /* Round 414 verification: chip-row chip unit spans gain group-hover-
2
+ * brighten — sibling to R355 filter pill inner-span hover-brighten.
3
+ * Chip-row 3 chips (working / online / active-links) get `group`
4
+ * parent + inner unit span `group-hover:opacity-100`.
5
+ *
6
+ * Contract:
7
+ * - 3 chips with data-chip-group-hover-brighten="true"
8
+ * - Each chip className includes `group`
9
+ * - Each chip's unit span (data-*-chip-unit) className includes:
10
+ * * opacity-70
11
+ * * transition-opacity
12
+ * * group-hover:opacity-100
13
+ * - Pre-R414 invariants preserved:
14
+ * * R398/R399 hover:-translate-y-px on clickable variant
15
+ * * R232 tabular-nums, font-medium
16
+ * * R266 anet-topo-chip-focus
17
+ */
18
+ import { chromium } from 'playwright';
19
+ import { readFileSync } from 'node:fs';
20
+
21
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
22
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
23
+
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript(() => {
28
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
29
+ });
30
+ await ctx.route('**/api/hub/status*', async (route) => {
31
+ const r = await route.fetch();
32
+ const b = await r.json();
33
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
34
+ const mk = (alias, status) => ({
35
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
36
+ network_id: nid, project_dir: null,
37
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
38
+ });
39
+ await route.fulfill({ response: r, json: { ...b, sessions: [
40
+ mk('alpha', 'working'),
41
+ mk('beta', 'idle'),
42
+ ] } });
43
+ });
44
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
45
+ json: { messages: [
46
+ { id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping', created_at: fresh, network_id: 'default' },
47
+ ] },
48
+ }));
49
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
50
+
51
+ const page = await ctx.newPage();
52
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
53
+ await page.waitForSelector('[data-chip-group-hover-brighten="true"]', { timeout: 15000 });
54
+ await page.waitForTimeout(400);
55
+
56
+ const probe = await page.evaluate(() => {
57
+ const chips = Array.from(document.querySelectorAll('[data-chip-group-hover-brighten="true"]'));
58
+ const read = (chip) => {
59
+ const unit = chip.querySelector('[data-working-chip-unit], [data-online-chip-unit], [data-active-links-chip-unit]');
60
+ return {
61
+ chipClass: chip.className,
62
+ unitClass: unit?.className ?? null,
63
+ chipAttr: chip.getAttribute('data-working-chip') !== null ? 'working'
64
+ : chip.getAttribute('data-online-chip') !== null ? 'online'
65
+ : chip.getAttribute('data-active-links-chip') !== null ? 'active-links'
66
+ : 'unknown',
67
+ };
68
+ };
69
+ return {
70
+ count: chips.length,
71
+ chips: chips.map(read),
72
+ };
73
+ });
74
+
75
+ await browser.close();
76
+
77
+ const wc = probe.chips.find((c) => c.chipAttr === 'working');
78
+ const oc = probe.chips.find((c) => c.chipAttr === 'online');
79
+ const ac = probe.chips.find((c) => c.chipAttr === 'active-links');
80
+
81
+ const results = {
82
+ // 3 chips mounted
83
+ three_chips: probe.count === 3,
84
+ // working chip
85
+ working_has_group: wc?.chipClass.includes('group') === true,
86
+ working_unit_brighten: wc?.unitClass?.includes('group-hover:opacity-100') === true,
87
+ working_unit_transition: wc?.unitClass?.includes('transition-opacity') === true,
88
+ working_unit_opacity_70: wc?.unitClass?.includes('opacity-70') === true,
89
+ // online chip
90
+ online_has_group: oc?.chipClass.includes('group') === true,
91
+ online_unit_brighten: oc?.unitClass?.includes('group-hover:opacity-100') === true,
92
+ online_unit_transition: oc?.unitClass?.includes('transition-opacity') === true,
93
+ // active-links chip
94
+ active_has_group: ac?.chipClass.includes('group') === true,
95
+ active_unit_brighten: ac?.unitClass?.includes('group-hover:opacity-100') === true,
96
+ active_unit_transition: ac?.unitClass?.includes('transition-opacity') === true,
97
+ // Pre-R414 invariants
98
+ working_chip_focus: wc?.chipClass.includes('anet-topo-chip-focus') === true,
99
+ online_tabular_nums: oc?.chipClass.includes('tabular-nums') === true,
100
+ active_font_medium: ac?.chipClass.includes('font-medium') === true,
101
+ };
102
+ const ok = Object.values(results).every(Boolean);
103
+ console.log(`${ok ? '✅' : '❌'} chip-row chip group-hover-brighten:`, JSON.stringify(results),
104
+ '\n working:', wc,
105
+ '\n online: ', oc,
106
+ '\n active: ', ac);
107
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,91 @@
1
+ /* Round 413 verification: active-node pulse SMIL trough opacity
2
+ * lift — cyber 0.04 → 0.05 / light 0.02 → 0.03. Extends the
3
+ * stale-state legibility lift family (8th anchor) and pairs with
4
+ * R409 peak lift so the per-node "active flow" breath reads
5
+ * confidently at both ends of its cycle.
6
+ *
7
+ * Contract:
8
+ * - Seed a flow link so a node becomes "active" (R243 isActive gate)
9
+ * - The active node's <animate> opacity element:
10
+ * * cyber: values='0.20;0.05;0.20' + data-node-pulse-trough='0.05'
11
+ * * light: values='0.14;0.03;0.14' + data-node-pulse-trough='0.03'
12
+ * - R409 peak invariant: data-node-pulse-peak='0.20' / '0.14'
13
+ * - Pre-R413 invariants preserved:
14
+ * * dur='2.4s', calcMode='spline', repeatCount='indefinite'
15
+ * * keySplines='0.42 0 0.58 1;0.42 0 0.58 1'
16
+ */
17
+ import { chromium } from 'playwright';
18
+ import { readFileSync } from 'node:fs';
19
+
20
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
21
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
22
+
23
+ async function probeTheme(theme) {
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript((t) => {
28
+ try { localStorage.setItem('anet-theme', t); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
29
+ }, theme);
30
+ await ctx.route('**/api/hub/status*', async (route) => {
31
+ const r = await route.fetch();
32
+ const b = await r.json();
33
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
34
+ const mk = (alias) => ({
35
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
36
+ network_id: nid, project_dir: null,
37
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
38
+ });
39
+ await route.fulfill({ response: r, json: { ...b, sessions: [ mk('alpha'), mk('beta'), mk('gamma') ] } });
40
+ });
41
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
42
+ json: { messages: [
43
+ { id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping', created_at: fresh, network_id: 'default' },
44
+ ] },
45
+ }));
46
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
49
+ await page.waitForSelector('[data-node-pulse-active="true"]', { timeout: 15000 });
50
+ await page.waitForTimeout(500);
51
+ const probe = await page.evaluate(() => {
52
+ const pulseGroup = document.querySelector('[data-node-pulse-active="true"]');
53
+ if (!pulseGroup) return null;
54
+ const animates = pulseGroup.querySelectorAll('animate');
55
+ const opacityAnim = Array.from(animates).find(a => a.getAttribute('attributeName') === 'opacity');
56
+ return opacityAnim ? {
57
+ values: opacityAnim.getAttribute('values'),
58
+ peakData: opacityAnim.getAttribute('data-node-pulse-peak'),
59
+ troughData: opacityAnim.getAttribute('data-node-pulse-trough'),
60
+ dur: opacityAnim.getAttribute('dur'),
61
+ calcMode: opacityAnim.getAttribute('calcMode'),
62
+ keySplines: opacityAnim.getAttribute('keySplines'),
63
+ } : null;
64
+ });
65
+ await browser.close();
66
+ return probe;
67
+ }
68
+
69
+ const cyber = await probeTheme('cyber');
70
+ const light = await probeTheme('light');
71
+
72
+ const results = {
73
+ // R413: trough lifts to 0.05 cyber / 0.03 light
74
+ cyber_values_0_05: cyber?.values === '0.20;0.05;0.20',
75
+ cyber_trough_data_0_05: cyber?.troughData === '0.05',
76
+ light_values_0_03: light?.values === '0.14;0.03;0.14',
77
+ light_trough_data_0_03: light?.troughData === '0.03',
78
+ // R409 peak invariants
79
+ cyber_peak_data_0_20: cyber?.peakData === '0.20',
80
+ light_peak_data_0_14: light?.peakData === '0.14',
81
+ // Pre-R413 invariants preserved
82
+ cyber_dur_2_4s: cyber?.dur === '2.4s',
83
+ cyber_spline: cyber?.calcMode === 'spline',
84
+ cyber_keySplines: cyber?.keySplines === '0.42 0 0.58 1;0.42 0 0.58 1',
85
+ light_dur_2_4s: light?.dur === '2.4s',
86
+ };
87
+ const ok = Object.values(results).every(Boolean);
88
+ console.log(`${ok ? '✅' : '❌'} active-node pulse trough lift:`, JSON.stringify(results),
89
+ '\n cyber:', cyber,
90
+ '\n light:', light);
91
+ process.exit(ok ? 0 : 1);