@sleep2agi/agent-network-dashboard 0.5.3-preview.255 → 0.5.3-preview.257

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/{0kxp3b9ooqo9w.css → 0-7ma47rnbr6l.css} +1 -1
  143. package/.next/static/chunks/{00ry.v~80vt1k.js → 08uiep1v6vft..js} +1 -1
  144. package/.next/static/chunks/{0nr2kl4k5v573.js → 0mbz6_9.awtny.js} +2 -2
  145. package/.next/static/chunks/{07n4v1f77q17x.js → 14etw4228bzo4.js} +1 -1
  146. package/.next/static/chunks/{0jtlze1xia-x..js → 18a5cdkbogmnc.js} +1 -1
  147. package/.next/trace +2 -2
  148. package/.next/trace-build +1 -1
  149. package/app/components/TopoGraph.tsx +16 -2
  150. package/app/globals.css +31 -0
  151. package/package.json +1 -1
  152. package/scripts/topo-animation-temporal-modes-catalog-test.mjs +6 -1
  153. package/scripts/topo-title-block-entrance-animation-test.mjs +127 -0
  154. /package/.next/static/{W_nUXLrhYVXuUflYWaFgD → hW01X_LyNEKwl3vx4rbU3}/_buildManifest.js +0 -0
  155. /package/.next/static/{W_nUXLrhYVXuUflYWaFgD → hW01X_LyNEKwl3vx4rbU3}/_clientMiddlewareManifest.js +0 -0
  156. /package/.next/static/{W_nUXLrhYVXuUflYWaFgD → hW01X_LyNEKwl3vx4rbU3}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.254"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].map(e=>(0,s.jsx)("a",{href:e.href,className:"rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,s.jsxs)("div",{className:"max-w-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,className:"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.257"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].map(e=>(0,s.jsx)("a",{href:e.href,className:"rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,s.jsxs)("div",{className:"max-w-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,className:"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
@@ -1 +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.254"],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.257"],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":313,"timestamp":417574821950,"id":4,"parentId":1,"tags":{},"startTime":1779225547068,"traceId":"8fd25e0825728891"},{"name":"load-custom-routes","duration":500,"timestamp":417574822426,"id":5,"parentId":1,"tags":{},"startTime":1779225547069,"traceId":"8fd25e0825728891"},{"name":"create-dist-dir","duration":798,"timestamp":417574822991,"id":6,"parentId":1,"tags":{},"startTime":1779225547069,"traceId":"8fd25e0825728891"},{"name":"clean","duration":37465,"timestamp":417574824582,"id":7,"parentId":1,"tags":{},"startTime":1779225547071,"traceId":"8fd25e0825728891"},{"name":"discover-routes","duration":29257,"timestamp":417574956291,"id":8,"parentId":1,"tags":{},"startTime":1779225547203,"traceId":"8fd25e0825728891"},{"name":"create-root-mapping","duration":181,"timestamp":417574985644,"id":9,"parentId":1,"tags":{},"startTime":1779225547232,"traceId":"8fd25e0825728891"},{"name":"generate-route-types","duration":20697,"timestamp":417574988966,"id":10,"parentId":1,"tags":{},"startTime":1779225547235,"traceId":"8fd25e0825728891"},{"name":"public-dir-conflict-check","duration":105,"timestamp":417575009761,"id":11,"parentId":1,"tags":{},"startTime":1779225547256,"traceId":"8fd25e0825728891"},{"name":"generate-routes-manifest","duration":5692,"timestamp":417575010016,"id":12,"parentId":1,"tags":{},"startTime":1779225547256,"traceId":"8fd25e0825728891"},{"name":"run-turbopack","duration":6556117,"timestamp":417575021117,"id":14,"parentId":1,"tags":{},"startTime":1779225547267,"traceId":"8fd25e0825728891"},{"name":"turbopack-build-events","duration":81,"timestamp":417575370792,"id":15,"parentId":1,"tags":{},"startTime":1779225547617,"traceId":"8fd25e0825728891"},{"name":"run-typescript","duration":10371236,"timestamp":417581593696,"id":16,"parentId":1,"tags":{},"startTime":1779225553840,"traceId":"8fd25e0825728891"},{"name":"generate-required-server-files","duration":2982,"timestamp":417591966150,"id":18,"parentId":1,"tags":{},"startTime":1779225564212,"traceId":"8fd25e0825728891"},{"name":"check-static-error-page","duration":15768,"timestamp":417592181148,"id":20,"parentId":19,"tags":{},"startTime":1779225564427,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":483494,"timestamp":417592201194,"id":65,"parentId":22,"tags":{},"startTime":1779225564447,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":500881,"timestamp":417592183976,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779225564430,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":637508,"timestamp":417592201712,"id":69,"parentId":28,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":650157,"timestamp":417592189181,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779225564435,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":655799,"timestamp":417592202174,"id":71,"parentId":30,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":668620,"timestamp":417592189459,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":672702,"timestamp":417592202430,"id":73,"parentId":33,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":685366,"timestamp":417592189866,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":677015,"timestamp":417592202506,"id":74,"parentId":34,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":689652,"timestamp":417592189944,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":681565,"timestamp":417592202244,"id":72,"parentId":32,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":694101,"timestamp":417592189776,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":688256,"timestamp":417592202535,"id":75,"parentId":35,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":700796,"timestamp":417592190069,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":694600,"timestamp":417592201348,"id":66,"parentId":25,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":707271,"timestamp":417592188762,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779225564435,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":693911,"timestamp":417592202587,"id":77,"parentId":37,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":705790,"timestamp":417592190774,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":699145,"timestamp":417592202620,"id":79,"parentId":39,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":710882,"timestamp":417592190951,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":706688,"timestamp":417592202630,"id":80,"parentId":40,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":718335,"timestamp":417592191034,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":711144,"timestamp":417592202552,"id":76,"parentId":36,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":723167,"timestamp":417592190588,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":716244,"timestamp":417592201442,"id":67,"parentId":26,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":728807,"timestamp":417592188928,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779225564435,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":716679,"timestamp":417592202656,"id":82,"parentId":44,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":727643,"timestamp":417592191744,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":717144,"timestamp":417592202643,"id":81,"parentId":42,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":728530,"timestamp":417592191320,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":722172,"timestamp":417592202666,"id":83,"parentId":45,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":733053,"timestamp":417592191877,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":725582,"timestamp":417592202679,"id":84,"parentId":46,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":736345,"timestamp":417592191989,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":727737,"timestamp":417592200787,"id":64,"parentId":21,"tags":{},"startTime":1779225564447,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":745890,"timestamp":417592182673,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779225564429,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":730633,"timestamp":417592202694,"id":85,"parentId":47,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":741170,"timestamp":417592192209,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":733549,"timestamp":417592201546,"id":68,"parentId":27,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":746087,"timestamp":417592189058,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779225564435,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":732556,"timestamp":417592202719,"id":87,"parentId":49,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":741414,"timestamp":417592193904,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779225564440,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":721043,"timestamp":417592218725,"id":91,"parentId":31,"tags":{},"startTime":1779225564465,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":750254,"timestamp":417592189558,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":751955,"timestamp":417592202606,"id":78,"parentId":38,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":763754,"timestamp":417592190883,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":762753,"timestamp":417592202710,"id":86,"parentId":48,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":771769,"timestamp":417592193764,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779225564440,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":763182,"timestamp":417592202745,"id":89,"parentId":51,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":771910,"timestamp":417592194071,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779225564440,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":753019,"timestamp":417592221104,"id":93,"parentId":43,"tags":{},"startTime":1779225564467,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":782725,"timestamp":417592191457,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779225564438,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":774393,"timestamp":417592210318,"id":90,"parentId":24,"tags":{},"startTime":1779225564457,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":799936,"timestamp":417592184843,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779225564431,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":765838,"timestamp":417592219706,"id":92,"parentId":41,"tags":{},"startTime":1779225564466,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":794491,"timestamp":417592191105,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779225564437,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":798763,"timestamp":417592201996,"id":70,"parentId":29,"tags":{},"startTime":1779225564448,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":811547,"timestamp":417592189294,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779225564436,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":811528,"timestamp":417592202732,"id":88,"parentId":50,"tags":{},"startTime":1779225564449,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":820384,"timestamp":417592193971,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779225564440,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":795236,"timestamp":417592228424,"id":100,"parentId":58,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":828273,"timestamp":417592195466,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779225564442,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":796719,"timestamp":417592228352,"id":95,"parentId":52,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":830759,"timestamp":417592194369,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":806552,"timestamp":417592228545,"id":101,"parentId":59,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":839540,"timestamp":417592195673,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779225564442,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":808917,"timestamp":417592228290,"id":94,"parentId":23,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":853012,"timestamp":417592184261,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779225564431,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":809521,"timestamp":417592228562,"id":102,"parentId":61,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":841820,"timestamp":417592196333,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779225564443,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":816944,"timestamp":417592228588,"id":104,"parentId":63,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":848945,"timestamp":417592196648,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779225564443,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":818147,"timestamp":417592228576,"id":103,"parentId":62,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":850279,"timestamp":417592196494,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779225564443,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":799607,"timestamp":417592248795,"id":105,"parentId":60,"tags":{},"startTime":1779225564495,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":852587,"timestamp":417592195859,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779225564442,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":777022,"timestamp":417592275656,"id":106,"parentId":57,"tags":{},"startTime":1779225564522,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":857677,"timestamp":417592195042,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":838536,"timestamp":417592228370,"id":96,"parentId":53,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":872496,"timestamp":417592194473,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":838708,"timestamp":417592228395,"id":98,"parentId":55,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":872435,"timestamp":417592194707,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":838826,"timestamp":417592228385,"id":97,"parentId":54,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":872656,"timestamp":417592194573,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"is-page-static","duration":853555,"timestamp":417592228409,"id":99,"parentId":56,"tags":{},"startTime":1779225564475,"traceId":"8fd25e0825728891"},{"name":"check-page","duration":887189,"timestamp":417592194847,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779225564441,"traceId":"8fd25e0825728891"},{"name":"static-check","duration":902134,"timestamp":417592179944,"id":19,"parentId":1,"tags":{},"startTime":1779225564426,"traceId":"8fd25e0825728891"}]
2
- [{"name":"write-routes-manifest","duration":595,"timestamp":417593094635,"id":108,"parentId":1,"tags":{},"startTime":1779225565341,"traceId":"8fd25e0825728891"},{"name":"load-dotenv","duration":82,"timestamp":417593111758,"id":111,"parentId":110,"tags":{},"startTime":1779225565358,"traceId":"8fd25e0825728891"},{"name":"run-export-path-map","duration":821,"timestamp":417593115822,"id":112,"parentId":110,"tags":{},"startTime":1779225565362,"traceId":"8fd25e0825728891"},{"name":"next-export","duration":674626,"timestamp":417593109708,"id":110,"parentId":1,"tags":{},"startTime":1779225565356,"traceId":"8fd25e0825728891"},{"name":"move-exported-app-not-found-","duration":583,"timestamp":417593788338,"id":113,"parentId":109,"tags":{},"startTime":1779225566035,"traceId":"8fd25e0825728891"},{"name":"move-exported-app-global-error-","duration":432,"timestamp":417593789044,"id":114,"parentId":109,"tags":{},"startTime":1779225566035,"traceId":"8fd25e0825728891"},{"name":"static-generation","duration":691568,"timestamp":417593099827,"id":109,"parentId":1,"tags":{},"startTime":1779225565346,"traceId":"8fd25e0825728891"},{"name":"write-routes-manifest","duration":461,"timestamp":417593791615,"id":115,"parentId":1,"tags":{},"startTime":1779225566038,"traceId":"8fd25e0825728891"},{"name":"print-tree-view","duration":5441,"timestamp":417593800284,"id":116,"parentId":1,"tags":{},"startTime":1779225566047,"traceId":"8fd25e0825728891"},{"name":"write-route-bundle-stats","duration":21469,"timestamp":417593805758,"id":117,"parentId":1,"tags":{},"startTime":1779225566052,"traceId":"8fd25e0825728891"},{"name":"telemetry-flush","duration":19323,"timestamp":417593827267,"id":118,"parentId":1,"tags":{},"startTime":1779225566074,"traceId":"8fd25e0825728891"},{"name":"next-build","duration":19082059,"timestamp":417574764564,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779225547011,"traceId":"8fd25e0825728891"}]
1
+ [{"name":"generate-buildid","duration":265,"timestamp":418316246377,"id":4,"parentId":1,"tags":{},"startTime":1779226288493,"traceId":"702727fc1ee41b3b"},{"name":"load-custom-routes","duration":702,"timestamp":418316246849,"id":5,"parentId":1,"tags":{},"startTime":1779226288493,"traceId":"702727fc1ee41b3b"},{"name":"create-dist-dir","duration":867,"timestamp":418316247618,"id":6,"parentId":1,"tags":{},"startTime":1779226288494,"traceId":"702727fc1ee41b3b"},{"name":"clean","duration":31812,"timestamp":418316249210,"id":7,"parentId":1,"tags":{},"startTime":1779226288495,"traceId":"702727fc1ee41b3b"},{"name":"discover-routes","duration":26277,"timestamp":418316368186,"id":8,"parentId":1,"tags":{},"startTime":1779226288614,"traceId":"702727fc1ee41b3b"},{"name":"create-root-mapping","duration":111,"timestamp":418316394527,"id":9,"parentId":1,"tags":{},"startTime":1779226288641,"traceId":"702727fc1ee41b3b"},{"name":"generate-route-types","duration":20166,"timestamp":418316397763,"id":10,"parentId":1,"tags":{},"startTime":1779226288644,"traceId":"702727fc1ee41b3b"},{"name":"public-dir-conflict-check","duration":102,"timestamp":418316418053,"id":11,"parentId":1,"tags":{},"startTime":1779226288664,"traceId":"702727fc1ee41b3b"},{"name":"generate-routes-manifest","duration":4574,"timestamp":418316418272,"id":12,"parentId":1,"tags":{},"startTime":1779226288665,"traceId":"702727fc1ee41b3b"},{"name":"run-turbopack","duration":7182809,"timestamp":418316427904,"id":14,"parentId":1,"tags":{},"startTime":1779226288674,"traceId":"702727fc1ee41b3b"},{"name":"turbopack-build-events","duration":102,"timestamp":418316739694,"id":15,"parentId":1,"tags":{},"startTime":1779226288986,"traceId":"702727fc1ee41b3b"},{"name":"run-typescript","duration":10931757,"timestamp":418323631792,"id":16,"parentId":1,"tags":{},"startTime":1779226295878,"traceId":"702727fc1ee41b3b"},{"name":"generate-required-server-files","duration":3091,"timestamp":418334564992,"id":18,"parentId":1,"tags":{},"startTime":1779226306811,"traceId":"702727fc1ee41b3b"},{"name":"check-static-error-page","duration":13678,"timestamp":418334809864,"id":20,"parentId":19,"tags":{},"startTime":1779226307056,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":463598,"timestamp":418334826201,"id":65,"parentId":22,"tags":{},"startTime":1779226307072,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":477235,"timestamp":418334812747,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779226307059,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":586068,"timestamp":418334830512,"id":71,"parentId":30,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":600401,"timestamp":418334816297,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":624300,"timestamp":418334829928,"id":68,"parentId":27,"tags":{},"startTime":1779226307076,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":638443,"timestamp":418334815893,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779226307062,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":627302,"timestamp":418334830563,"id":72,"parentId":32,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":641288,"timestamp":418334816656,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":630567,"timestamp":418334830711,"id":73,"parentId":33,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":644605,"timestamp":418334816752,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":661996,"timestamp":418334830780,"id":74,"parentId":34,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":676029,"timestamp":418334816838,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":674599,"timestamp":418334830805,"id":75,"parentId":35,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":688559,"timestamp":418334816929,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":674983,"timestamp":418334830819,"id":76,"parentId":36,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":688453,"timestamp":418334817390,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":684009,"timestamp":418334830846,"id":77,"parentId":37,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":697348,"timestamp":418334817573,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":684316,"timestamp":418334830868,"id":78,"parentId":38,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":697545,"timestamp":418334817685,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":692118,"timestamp":418334830054,"id":69,"parentId":28,"tags":{},"startTime":1779226307076,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":706187,"timestamp":418334816032,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779226307062,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":696119,"timestamp":418334826386,"id":66,"parentId":25,"tags":{},"startTime":1779226307073,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":707011,"timestamp":418334815535,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779226307062,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":695062,"timestamp":418334830890,"id":80,"parentId":40,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":708155,"timestamp":418334817862,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":697769,"timestamp":418334830372,"id":70,"parentId":29,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":712048,"timestamp":418334816150,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779226307062,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":706561,"timestamp":418334830877,"id":79,"parentId":39,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":719713,"timestamp":418334817774,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":707879,"timestamp":418334830924,"id":83,"parentId":45,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":720236,"timestamp":418334818617,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":716326,"timestamp":418334825835,"id":64,"parentId":21,"tags":{},"startTime":1779226307072,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":730956,"timestamp":418334811266,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779226307058,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":713811,"timestamp":418334830949,"id":85,"parentId":47,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":726011,"timestamp":418334818801,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":717220,"timestamp":418334830983,"id":88,"parentId":50,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":727908,"timestamp":418334820341,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779226307067,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":719196,"timestamp":418334830958,"id":86,"parentId":48,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":731303,"timestamp":418334818911,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":721065,"timestamp":418334830994,"id":89,"parentId":51,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":731659,"timestamp":418334820455,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779226307067,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":719999,"timestamp":418334836711,"id":91,"parentId":31,"tags":{},"startTime":1779226307083,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":740346,"timestamp":418334816409,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779226307063,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":722686,"timestamp":418334835546,"id":90,"parentId":24,"tags":{},"startTime":1779226307082,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":745055,"timestamp":418334813239,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779226307060,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":733301,"timestamp":418334830935,"id":84,"parentId":46,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":745612,"timestamp":418334818684,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":725509,"timestamp":418334838975,"id":93,"parentId":43,"tags":{},"startTime":1779226307085,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":746239,"timestamp":418334818288,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":734296,"timestamp":418334830903,"id":81,"parentId":42,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":747085,"timestamp":418334818182,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":732432,"timestamp":418334837633,"id":92,"parentId":41,"tags":{},"startTime":1779226307084,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":752189,"timestamp":418334817935,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779226307064,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":743566,"timestamp":418334830911,"id":82,"parentId":44,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":756010,"timestamp":418334818519,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":787147,"timestamp":418334841416,"id":97,"parentId":54,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":807391,"timestamp":418334821253,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779226307068,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":790365,"timestamp":418334841385,"id":95,"parentId":52,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":810936,"timestamp":418334820885,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779226307067,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":796729,"timestamp":418334841439,"id":99,"parentId":56,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":816548,"timestamp":418334821678,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779226307068,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":797727,"timestamp":418334841452,"id":100,"parentId":58,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":816745,"timestamp":418334822484,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779226307069,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":804590,"timestamp":418334841566,"id":101,"parentId":59,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":823586,"timestamp":418334822653,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779226307069,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":804849,"timestamp":418334841586,"id":102,"parentId":61,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":823343,"timestamp":418334823128,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779226307069,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":824898,"timestamp":418334841355,"id":94,"parentId":23,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":854656,"timestamp":418334813036,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779226307059,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":833174,"timestamp":418334841617,"id":104,"parentId":63,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":851507,"timestamp":418334823361,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779226307070,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":833478,"timestamp":418334841599,"id":103,"parentId":62,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":851884,"timestamp":418334823244,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779226307070,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":846270,"timestamp":418334830970,"id":87,"parentId":49,"tags":{},"startTime":1779226307077,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":858266,"timestamp":418334819032,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779226307065,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":837071,"timestamp":418334841425,"id":98,"parentId":55,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":857095,"timestamp":418334821463,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779226307068,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":825888,"timestamp":418334854832,"id":105,"parentId":60,"tags":{},"startTime":1779226307101,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":857996,"timestamp":418334822779,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779226307069,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":812795,"timestamp":418334868193,"id":106,"parentId":57,"tags":{},"startTime":1779226307114,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":859143,"timestamp":418334821909,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779226307068,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":839746,"timestamp":418334841401,"id":96,"parentId":53,"tags":{},"startTime":1779226307088,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":860094,"timestamp":418334821078,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779226307067,"traceId":"702727fc1ee41b3b"},{"name":"is-page-static","duration":899132,"timestamp":418334829755,"id":67,"parentId":26,"tags":{},"startTime":1779226307076,"traceId":"702727fc1ee41b3b"},{"name":"check-page","duration":913308,"timestamp":418334815736,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779226307062,"traceId":"702727fc1ee41b3b"},{"name":"static-check","duration":920549,"timestamp":418334808635,"id":19,"parentId":1,"tags":{},"startTime":1779226307055,"traceId":"702727fc1ee41b3b"}]
2
+ [{"name":"write-routes-manifest","duration":714,"timestamp":418335742771,"id":108,"parentId":1,"tags":{},"startTime":1779226307989,"traceId":"702727fc1ee41b3b"},{"name":"load-dotenv","duration":75,"timestamp":418335758871,"id":111,"parentId":110,"tags":{},"startTime":1779226308005,"traceId":"702727fc1ee41b3b"},{"name":"run-export-path-map","duration":1043,"timestamp":418335765873,"id":112,"parentId":110,"tags":{},"startTime":1779226308012,"traceId":"702727fc1ee41b3b"},{"name":"next-export","duration":716071,"timestamp":418335756912,"id":110,"parentId":1,"tags":{},"startTime":1779226308003,"traceId":"702727fc1ee41b3b"},{"name":"move-exported-app-not-found-","duration":721,"timestamp":418336477579,"id":113,"parentId":109,"tags":{},"startTime":1779226308724,"traceId":"702727fc1ee41b3b"},{"name":"move-exported-app-global-error-","duration":615,"timestamp":418336478460,"id":114,"parentId":109,"tags":{},"startTime":1779226308725,"traceId":"702727fc1ee41b3b"},{"name":"static-generation","duration":732643,"timestamp":418335748720,"id":109,"parentId":1,"tags":{},"startTime":1779226307995,"traceId":"702727fc1ee41b3b"},{"name":"write-routes-manifest","duration":526,"timestamp":418336481677,"id":115,"parentId":1,"tags":{},"startTime":1779226308728,"traceId":"702727fc1ee41b3b"},{"name":"print-tree-view","duration":4280,"timestamp":418336502209,"id":116,"parentId":1,"tags":{},"startTime":1779226308748,"traceId":"702727fc1ee41b3b"},{"name":"write-route-bundle-stats","duration":12238,"timestamp":418336506525,"id":117,"parentId":1,"tags":{},"startTime":1779226308753,"traceId":"702727fc1ee41b3b"},{"name":"telemetry-flush","duration":27338,"timestamp":418336518795,"id":118,"parentId":1,"tags":{},"startTime":1779226308765,"traceId":"702727fc1ee41b3b"},{"name":"next-build","duration":20351511,"timestamp":418316194657,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779226288441,"traceId":"702727fc1ee41b3b"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6556117,"timestamp":417575021117,"id":14,"parentId":1,"tags":{},"startTime":1779225547267,"traceId":"8fd25e0825728891"},{"name":"turbopack-build-events","duration":81,"timestamp":417575370792,"id":15,"parentId":1,"tags":{},"startTime":1779225547617,"traceId":"8fd25e0825728891"},{"name":"run-typescript","duration":10371236,"timestamp":417581593696,"id":16,"parentId":1,"tags":{},"startTime":1779225553840,"traceId":"8fd25e0825728891"},{"name":"static-check","duration":902134,"timestamp":417592179944,"id":19,"parentId":1,"tags":{},"startTime":1779225564426,"traceId":"8fd25e0825728891"},{"name":"static-generation","duration":691568,"timestamp":417593099827,"id":109,"parentId":1,"tags":{},"startTime":1779225565346,"traceId":"8fd25e0825728891"},{"name":"telemetry-flush","duration":19323,"timestamp":417593827267,"id":118,"parentId":1,"tags":{},"startTime":1779225566074,"traceId":"8fd25e0825728891"},{"name":"next-build","duration":19082059,"timestamp":417574764564,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779225547011,"traceId":"8fd25e0825728891"}]
1
+ [{"name":"run-turbopack","duration":7182809,"timestamp":418316427904,"id":14,"parentId":1,"tags":{},"startTime":1779226288674,"traceId":"702727fc1ee41b3b"},{"name":"turbopack-build-events","duration":102,"timestamp":418316739694,"id":15,"parentId":1,"tags":{},"startTime":1779226288986,"traceId":"702727fc1ee41b3b"},{"name":"run-typescript","duration":10931757,"timestamp":418323631792,"id":16,"parentId":1,"tags":{},"startTime":1779226295878,"traceId":"702727fc1ee41b3b"},{"name":"static-check","duration":920549,"timestamp":418334808635,"id":19,"parentId":1,"tags":{},"startTime":1779226307055,"traceId":"702727fc1ee41b3b"},{"name":"static-generation","duration":732643,"timestamp":418335748720,"id":109,"parentId":1,"tags":{},"startTime":1779226307995,"traceId":"702727fc1ee41b3b"},{"name":"telemetry-flush","duration":27338,"timestamp":418336518795,"id":118,"parentId":1,"tags":{},"startTime":1779226308765,"traceId":"702727fc1ee41b3b"},{"name":"next-build","duration":20351511,"timestamp":418316194657,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779226288441,"traceId":"702727fc1ee41b3b"}]
@@ -1810,7 +1810,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1810
1810
 
1811
1811
  data-topo-section-titleblock-envelope-breath attr surfaces
1812
1812
  the cadence for tests. */}
1813
- <div className="anet-topo-title-block-envelope-breath group flex items-center gap-2.5" data-topo-section-titleblock-group data-topo-section-titleblock-envelope-breath="11s">
1813
+ {/* Round 742 / Loop — title-block joins entrance family as 2nd
1814
+ one-shot-mount member. Staggered after R740 canvas entrance:
1815
+ canvas plays 0-600ms; title-block delayed 200ms then plays
1816
+ 200-700ms for 500ms ease-out. The 100ms gap between canvas
1817
+ settle (600ms) and title-block settle (700ms) creates a
1818
+ perceived "shake out" — canvas arrives, then the heading
1819
+ writes itself into place. Slide from translateY(-4px) +
1820
+ opacity 0.7 → translateY(0) opacity 1.
1821
+
1822
+ Gated by reducedMotion at JSX level (sibling pattern to R740).
1823
+ See globals.css R742 block for cadence rationale. */}
1824
+ <div className={`anet-topo-title-block-envelope-breath${reducedMotion ? '' : ' anet-topo-title-block-entrance'} group flex items-center gap-2.5`} data-topo-section-titleblock-group data-topo-section-titleblock-envelope-breath="11s" data-topo-section-titleblock-entrance={reducedMotion ? 'false' : 'true'}>
1814
1825
  {/* Round 297 / Loop: brand-logo color picks up the 200ms ease-
1815
1826
  out transition. Pre-R297 the moon glyph had theme-
1816
1827
  conditional color (cyber #67e8f9 cyan ↔ light #0d9488
@@ -5290,7 +5301,10 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5290
5301
  data-topo-animation-temporal-modes={JSON.stringify([
5291
5302
  { mode: "infinite-rest", family: "breath", members: 18, examples: ["kicker", "watermark text", "H2 section title"] },
5292
5303
  { mode: "infinite-sweep", family: "ambient", members: 3, examples: ["scan beam horizontal", "scan beam vertical", "scan beam diagonal"] },
5293
- { mode: "one-shot-mount", family: "entrance", members: 1, examples: ["canvas root"] },
5304
+ /* R742 entrance family +1 member: title-block joins
5305
+ canvas root as 2nd one-shot-mount surface. Staggered
5306
+ choreography: canvas 0-600ms, title-block 200-700ms. */
5307
+ { mode: "one-shot-mount", family: "entrance", members: 2, examples: ["canvas root", "title-block"] },
5294
5308
  ])}
5295
5309
  data-topo-pinned-aspect={(() => {
5296
5310
  const aspects: string[] = [];
package/app/globals.css CHANGED
@@ -1717,6 +1717,37 @@ body {
1717
1717
  .anet-topo-title-block-envelope-breath { animation: none; }
1718
1718
  }
1719
1719
 
1720
+ /* Round 742 — title-block entrance, 2nd member of the entrance family.
1721
+ Staggered choreography with R740 canvas entrance:
1722
+ R740 canvas 0 → 600 ms (scale 0.99 → 1, opacity 0.8 → 1)
1723
+ R742 title-block 200 → 700 ms (translateY -4px → 0, opacity 0.7 → 1)
1724
+ The 100ms gap (600 → 700 ms) between canvas settle and title-block
1725
+ settle creates a perceived "shake out" — canvas arrives, then the
1726
+ heading writes itself into place. Both done by ~700 ms.
1727
+
1728
+ CSS cascade detail: when an element has BOTH .anet-topo-title-block-
1729
+ envelope-breath (R706, infinite 11s breath) AND .anet-topo-title-
1730
+ block-entrance (R742, one-shot 500ms), the `animation` property
1731
+ doesn't merge — only one wins. So R742 declares a COMPOUND animation
1732
+ listing BOTH (entrance first as one-shot, breath second as the
1733
+ ongoing infinite). Placed AFTER the R706 envelope-breath block in
1734
+ source order so cascade gives R742 the win when both classes are
1735
+ applied. When ONLY envelope-breath is applied (reducedMotion strips
1736
+ the entrance class via JSX), R706 rule takes over with just the
1737
+ breath animation. */
1738
+ @keyframes anet-topo-title-block-entrance-kf {
1739
+ 0% { transform: translateY(-4px); opacity: 0.7; }
1740
+ 100% { transform: translateY(0); opacity: 1; }
1741
+ }
1742
+ .anet-topo-title-block-entrance {
1743
+ animation:
1744
+ anet-topo-title-block-entrance-kf 500ms ease-out 200ms backwards,
1745
+ anet-topo-title-block-envelope-breath-kf 11s ease-in-out infinite;
1746
+ }
1747
+ @media (prefers-reduced-motion: reduce) {
1748
+ .anet-topo-title-block-entrance { animation: none; }
1749
+ }
1750
+
1720
1751
  /* Round 707 — chrome Layout wrapper at-rest breath at 17 s. Slowest tier
1721
1752
  among HTML chrome respiratory anchors (sibling to R703 zoom-level 9 s
1722
1753
  in the chrome strip's data tier; this 17 s lands in the chrome strip's
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.255",
3
+ "version": "0.5.3-preview.257",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -129,7 +129,12 @@ const results = {
129
129
  one_shot_entrance_pair: oneShot?.family === 'entrance',
130
130
  inf_rest_matches_rolodex_count: infRest?.members === rolodexAnchorCount,
131
131
  inf_sweep_matches_trio_count: infSweep?.members === scanBeamTrioAnchorCount,
132
- one_shot_count_is_1: oneShot?.members === 1,
132
+ /* R742 — entrance family grew from 1 → 2 members (title-block joined
133
+ * canvas root). The R741-time invariant `=== 1` is invalidated;
134
+ * widen to `>= 1` (entrance family is at least one member) and add
135
+ * a separate `oneShot_count_is_2` reflecting the post-R742 reality. */
136
+ one_shot_count_at_least_1: (oneShot?.members ?? 0) >= 1,
137
+ one_shot_count_is_2: oneShot?.members === 2,
133
138
  };
134
139
  const ok = Object.values(results).every(Boolean);
135
140
  console.log(`${ok ? '✅' : '❌'} R741 animation temporal modes catalog (8th meta-doc — octagon, lifecycle dimension):`,
@@ -0,0 +1,127 @@
1
+ /* Round 742 — title-block entrance animation. 2nd member of the
2
+ * entrance family (after R740 canvas root). Staggered choreography:
3
+ * R740 canvas 0 → 600 ms scale 0.99 → 1, opacity 0.8 → 1
4
+ * R742 title-block 200 → 700 ms translateY -4 → 0, opacity 0.7 → 1
5
+ *
6
+ * Assertions:
7
+ * - .anet-topo-title-block-entrance class on title-block wrapper
8
+ * - data-topo-section-titleblock-entrance="true"
9
+ * - CSS @keyframes 0% translateY(-4px) opacity 0.7 → 100% translateY(0) opacity 1
10
+ * - .anet-topo-title-block-entrance binds 500ms ease-out 200ms delay
11
+ * - animation NOT infinite (runtime iteration count === '1')
12
+ * - prefers-reduced-motion guard present
13
+ * - Animation completes within ~900ms (200ms delay + 500ms + 200ms buffer)
14
+ * → after 900ms wait, computed transform is identity & opacity = 1
15
+ * - Existing R706 envelope-breath class still composed (regression)
16
+ * - R741 catalog one-shot-mount.members === 2, includes title-block in examples
17
+ * - R740 canvas entrance still present (regression)
18
+ */
19
+ import { chromium } from 'playwright';
20
+ import { readFileSync } from 'node:fs';
21
+
22
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
23
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
24
+
25
+ const browser = await chromium.launch({ headless: true });
26
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
27
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
28
+ await ctx.addInitScript(() => {
29
+ try {
30
+ localStorage.setItem('anet-theme', 'cyber');
31
+ localStorage.setItem('anet-topo-layout', 'ring');
32
+ sessionStorage.setItem('anet_v3_auth', '1');
33
+ } catch {}
34
+ });
35
+ await ctx.route('**/api/hub/status*', async (route) => {
36
+ const r = await route.fetch();
37
+ const b = await r.json();
38
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
39
+ const mk = (alias) => ({
40
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
41
+ network_id: nid, project_dir: null,
42
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
43
+ });
44
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
45
+ });
46
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
47
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
48
+ const page = await ctx.newPage();
49
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
50
+ await page.waitForSelector('[data-topo-section-titleblock-group]', { timeout: 15000, state: 'attached' });
51
+ /* Wait for both R740 (0-600ms) and R742 (200-700ms) animations to
52
+ * complete plus a safety buffer. */
53
+ await page.waitForTimeout(900);
54
+
55
+ const state = await page.evaluate(() => {
56
+ const tb = document.querySelector('[data-topo-section-titleblock-group]');
57
+ const svg = document.querySelector('[data-topo-canvas-aria]');
58
+ if (!tb) return null;
59
+ const cs = getComputedStyle(tb);
60
+ return {
61
+ has_entrance_class: tb.classList.contains('anet-topo-title-block-entrance'),
62
+ entrance_attr: tb.getAttribute('data-topo-section-titleblock-entrance'),
63
+ envelope_breath_kept: tb.classList.contains('anet-topo-title-block-envelope-breath'),
64
+ anim_name: cs.animationName,
65
+ anim_duration: cs.animationDuration,
66
+ anim_delay: cs.animationDelay,
67
+ anim_iteration: cs.animationIterationCount,
68
+ computed_transform: cs.transform,
69
+ computed_opacity: cs.opacity,
70
+ canvas_entrance_class: svg?.classList.contains('anet-topo-canvas-entrance') ?? null,
71
+ temporal_modes: svg?.getAttribute('data-topo-animation-temporal-modes') ?? null,
72
+ };
73
+ });
74
+
75
+ await browser.close();
76
+
77
+ const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
78
+ const cssKfStart = /@keyframes anet-topo-title-block-entrance-kf\s*\{[\s\S]*?0%\s*\{[\s\S]*?transform:\s*translateY\(-4px\)[\s\S]*?opacity:\s*0\.7/.test(cssSrc);
79
+ const cssKfEnd = /@keyframes anet-topo-title-block-entrance-kf\s*\{[\s\S]*?100%\s*\{[\s\S]*?transform:\s*translateY\(0\)[\s\S]*?opacity:\s*1/.test(cssSrc);
80
+ const cssClassBound = /\.anet-topo-title-block-entrance\s*\{[\s\S]*?animation:\s*anet-topo-title-block-entrance-kf\s+500ms\s+ease-out\s+200ms\s+backwards/.test(cssSrc);
81
+ const cssReducedMotion = /@media\s*\(prefers-reduced-motion:\s*reduce\)\s*\{[\s\S]*?\.anet-topo-title-block-entrance\s*\{\s*animation:\s*none/.test(cssSrc);
82
+
83
+ const transformSettled = state?.computed_transform === 'none'
84
+ || state?.computed_transform === 'matrix(1, 0, 0, 1, 0, 0)';
85
+ /* The title-block carries TWO animations via the R742 compound:
86
+ * 1. entrance one-shot, 500ms — settles after ~700ms
87
+ * 2. envelope-breath infinite, 11s — opacity 0.92 ↔ 1 forever (R706)
88
+ * After the entrance completes, opacity is governed by the ongoing
89
+ * envelope breath, so it sits SOMEWHERE in [0.92, 1] — never exactly
90
+ * 1 at a random sample. Assert opacity ∈ [0.90, 1.00] (the R706
91
+ * breath band with a small tolerance) rather than === 1. */
92
+ const opacityInBreathBand = (() => {
93
+ const o = parseFloat(state?.computed_opacity ?? '0');
94
+ return o >= 0.90 && o <= 1.0;
95
+ })();
96
+ /* The compound animation's FIRST entry is the one-shot entrance;
97
+ * the SECOND is the infinite breath. Verify the entrance part is
98
+ * one-shot by checking the first iteration-count token === '1'. */
99
+ const entranceIsOneShot = (state?.anim_iteration ?? '').split(',')[0].trim() === '1';
100
+ const entranceIsFirstInCompound = (state?.anim_name ?? '').split(',')[0].trim() === 'anet-topo-title-block-entrance-kf';
101
+
102
+ let modes = null;
103
+ try { modes = JSON.parse(state?.temporal_modes ?? ''); } catch {}
104
+ const oneShot = Array.isArray(modes) ? modes.find(m => m.mode === 'one-shot-mount') : null;
105
+ const oneShotHas2 = oneShot?.members === 2 && Array.isArray(oneShot?.examples) && oneShot.examples.includes('title-block');
106
+
107
+ const results = {
108
+ has_entrance_class: state?.has_entrance_class === true,
109
+ entrance_attr_true: state?.entrance_attr === 'true',
110
+ envelope_breath_kept: state?.envelope_breath_kept === true,
111
+ css_keyframe_start: cssKfStart,
112
+ css_keyframe_end: cssKfEnd,
113
+ css_class_binds_500ms_delay_200: cssClassBound,
114
+ css_reduced_motion_guard: cssReducedMotion,
115
+ entrance_part_is_one_shot: entranceIsOneShot,
116
+ entrance_first_in_compound: entranceIsFirstInCompound,
117
+ transform_settled: transformSettled,
118
+ opacity_in_breath_band: opacityInBreathBand,
119
+ r740_canvas_entrance_kept: state?.canvas_entrance_class === true,
120
+ r741_one_shot_members_now_2: oneShotHas2,
121
+ };
122
+ const ok = Object.values(results).every(Boolean);
123
+ console.log(`${ok ? '✅' : '❌'} R742 title-block entrance animation (2nd one-shot member, staggered after canvas):`,
124
+ JSON.stringify(results, null, 2),
125
+ `\n state: ${JSON.stringify(state)}`,
126
+ `\n one-shot entry: ${JSON.stringify(oneShot)}`);
127
+ process.exit(ok ? 0 : 1);