@sleep2agi/agent-network-dashboard 0.5.1-preview.72 → 0.5.1-preview.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +4 -4
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  126. package/.next/server/middleware-build-manifest.js +3 -3
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/static/chunks/{09qnklkne9b4y.js → 0bc3f9szg8nan.js} +1 -1
  130. package/.next/static/chunks/0rlbsnd.3i9tb.js +4 -0
  131. package/.next/static/chunks/{08nxwmeon0xj8.js → 0tl7s9ol8vxbv.js} +1 -1
  132. package/.next/trace +2 -2
  133. package/.next/trace-build +1 -1
  134. package/app/components/TopoGraph.tsx +51 -34
  135. package/package.json +1 -1
  136. package/scripts/topo-filter-pill-value-fw-test.mjs +88 -0
  137. package/scripts/topo-node-pulse-trough-test.mjs +91 -0
  138. package/.next/static/chunks/0s4~.i4o2r5vv.js +0 -4
  139. /package/.next/static/{Ku2y1OWWBq4S_S3YMT_fD → sVYp4gk_v1K_sryTNii7l}/_buildManifest.js +0 -0
  140. /package/.next/static/{Ku2y1OWWBq4S_S3YMT_fD → sVYp4gk_v1K_sryTNii7l}/_clientMiddlewareManifest.js +0 -0
  141. /package/.next/static/{Ku2y1OWWBq4S_S3YMT_fD → sVYp4gk_v1K_sryTNii7l}/_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.1-preview.71"],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.1-preview.73"],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 →"})]})]})]})]})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":302,"timestamp":153038280953,"id":4,"parentId":1,"tags":{},"startTime":1778961010527,"traceId":"c08e9cad9f09f836"},{"name":"load-custom-routes","duration":475,"timestamp":153038281408,"id":5,"parentId":1,"tags":{},"startTime":1778961010528,"traceId":"c08e9cad9f09f836"},{"name":"create-dist-dir","duration":695,"timestamp":153038281927,"id":6,"parentId":1,"tags":{},"startTime":1778961010528,"traceId":"c08e9cad9f09f836"},{"name":"clean","duration":32776,"timestamp":153038283302,"id":7,"parentId":1,"tags":{},"startTime":1778961010530,"traceId":"c08e9cad9f09f836"},{"name":"discover-routes","duration":28652,"timestamp":153038395323,"id":8,"parentId":1,"tags":{},"startTime":1778961010642,"traceId":"c08e9cad9f09f836"},{"name":"create-root-mapping","duration":130,"timestamp":153038424068,"id":9,"parentId":1,"tags":{},"startTime":1778961010670,"traceId":"c08e9cad9f09f836"},{"name":"generate-route-types","duration":21200,"timestamp":153038426793,"id":10,"parentId":1,"tags":{},"startTime":1778961010673,"traceId":"c08e9cad9f09f836"},{"name":"public-dir-conflict-check","duration":108,"timestamp":153038448113,"id":11,"parentId":1,"tags":{},"startTime":1778961010694,"traceId":"c08e9cad9f09f836"},{"name":"generate-routes-manifest","duration":6531,"timestamp":153038448343,"id":12,"parentId":1,"tags":{},"startTime":1778961010695,"traceId":"c08e9cad9f09f836"},{"name":"run-turbopack","duration":5711272,"timestamp":153038460642,"id":14,"parentId":1,"tags":{},"startTime":1778961010707,"traceId":"c08e9cad9f09f836"},{"name":"turbopack-build-events","duration":92,"timestamp":153038746462,"id":15,"parentId":1,"tags":{},"startTime":1778961010993,"traceId":"c08e9cad9f09f836"},{"name":"run-typescript","duration":9311370,"timestamp":153044184140,"id":16,"parentId":1,"tags":{},"startTime":1778961016430,"traceId":"c08e9cad9f09f836"},{"name":"generate-required-server-files","duration":2138,"timestamp":153053496545,"id":18,"parentId":1,"tags":{},"startTime":1778961025743,"traceId":"c08e9cad9f09f836"},{"name":"check-static-error-page","duration":15135,"timestamp":153053663163,"id":20,"parentId":19,"tags":{},"startTime":1778961025909,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":538085,"timestamp":153053681079,"id":64,"parentId":21,"tags":{},"startTime":1778961025927,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":554610,"timestamp":153053664704,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778961025911,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":537869,"timestamp":153053682488,"id":69,"parentId":28,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":550480,"timestamp":153053669947,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778961025916,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":541597,"timestamp":153053681993,"id":65,"parentId":22,"tags":{},"startTime":1778961025928,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":557385,"timestamp":153053666282,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778961025913,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":544968,"timestamp":153053682990,"id":72,"parentId":32,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":557347,"timestamp":153053670681,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":578248,"timestamp":153053682365,"id":68,"parentId":27,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":590892,"timestamp":153053669805,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778961025916,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":579015,"timestamp":153053683273,"id":74,"parentId":34,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":591357,"timestamp":153053670993,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":580452,"timestamp":153053682254,"id":67,"parentId":26,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":593115,"timestamp":153053669660,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778961025916,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":582776,"timestamp":153053682166,"id":66,"parentId":25,"tags":{},"startTime":1778961025928,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":595492,"timestamp":153053669490,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778961025916,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":583786,"timestamp":153053683310,"id":75,"parentId":35,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":596013,"timestamp":153053671140,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":585569,"timestamp":153053683331,"id":76,"parentId":36,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":597317,"timestamp":153053671632,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778961025918,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":591283,"timestamp":153053683398,"id":80,"parentId":40,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":602502,"timestamp":153053672222,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778961025918,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":617940,"timestamp":153053683386,"id":79,"parentId":39,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":629289,"timestamp":153053672112,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778961025918,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":623217,"timestamp":153053683358,"id":77,"parentId":37,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":634805,"timestamp":153053671835,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778961025918,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":626801,"timestamp":153053683406,"id":81,"parentId":42,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":637696,"timestamp":153053672589,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778961025919,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":628448,"timestamp":153053683418,"id":82,"parentId":44,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":638849,"timestamp":153053673069,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778961025919,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":631381,"timestamp":153053683371,"id":78,"parentId":38,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":642825,"timestamp":153053671975,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778961025918,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":632352,"timestamp":153053682750,"id":70,"parentId":29,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":645034,"timestamp":153053670119,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778961025916,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":636380,"timestamp":153053683463,"id":86,"parentId":48,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":646302,"timestamp":153053673587,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":637459,"timestamp":153053683442,"id":84,"parentId":46,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":647600,"timestamp":153053673341,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":639798,"timestamp":153053682920,"id":71,"parentId":30,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":652491,"timestamp":153053670282,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":641634,"timestamp":153053683484,"id":88,"parentId":50,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":651273,"timestamp":153053673887,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":644929,"timestamp":153053683450,"id":85,"parentId":47,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":654951,"timestamp":153053673467,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":646068,"timestamp":153053687903,"id":91,"parentId":31,"tags":{},"startTime":1778961025934,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":663611,"timestamp":153053670419,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":656740,"timestamp":153053683476,"id":87,"parentId":49,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":666501,"timestamp":153053673756,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":651619,"timestamp":153053688774,"id":92,"parentId":41,"tags":{},"startTime":1778961025935,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":668095,"timestamp":153053672331,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778961025919,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":657111,"timestamp":153053683430,"id":83,"parentId":45,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":667363,"timestamp":153053673212,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778961025919,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":654095,"timestamp":153053690118,"id":93,"parentId":43,"tags":{},"startTime":1778961025936,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":671502,"timestamp":153053672757,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778961025919,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":662841,"timestamp":153053683499,"id":89,"parentId":51,"tags":{},"startTime":1778961025930,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":672385,"timestamp":153053673999,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778961025920,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":662579,"timestamp":153053686722,"id":90,"parentId":24,"tags":{},"startTime":1778961025933,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":682477,"timestamp":153053666863,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778961025913,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":664947,"timestamp":153053692488,"id":99,"parentId":56,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":681977,"timestamp":153053675500,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778961025922,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":678731,"timestamp":153053692496,"id":100,"parentId":58,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":694770,"timestamp":153053676507,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778961025923,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":690267,"timestamp":153053692673,"id":101,"parentId":59,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":706209,"timestamp":153053676783,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778961025923,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":699652,"timestamp":153053692695,"id":102,"parentId":61,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":714869,"timestamp":153053677554,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778961025924,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":714009,"timestamp":153053683191,"id":73,"parentId":33,"tags":{},"startTime":1778961025929,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":726396,"timestamp":153053670852,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778961025917,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":712905,"timestamp":153053692464,"id":97,"parentId":54,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":730501,"timestamp":153053674927,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778961025921,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":713186,"timestamp":153053692707,"id":103,"parentId":62,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":728181,"timestamp":153053677755,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778961025924,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":717395,"timestamp":153053692456,"id":96,"parentId":53,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":735195,"timestamp":153053674701,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778961025921,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":719743,"timestamp":153053692443,"id":95,"parentId":52,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":737735,"timestamp":153053674489,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778961025921,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":710507,"timestamp":153053702707,"id":105,"parentId":57,"tags":{},"startTime":1778961025949,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":737412,"timestamp":153053675845,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778961025922,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":721444,"timestamp":153053692477,"id":98,"parentId":55,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":738973,"timestamp":153053675215,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778961025921,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":709300,"timestamp":153053707831,"id":106,"parentId":60,"tags":{},"startTime":1778961025954,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":740128,"timestamp":153053677048,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778961025923,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":724853,"timestamp":153053692416,"id":94,"parentId":23,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":750719,"timestamp":153053666578,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778961025913,"traceId":"c08e9cad9f09f836"},{"name":"is-page-static","duration":748908,"timestamp":153053692715,"id":104,"parentId":63,"tags":{},"startTime":1778961025939,"traceId":"c08e9cad9f09f836"},{"name":"check-page","duration":763708,"timestamp":153053677956,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778961025924,"traceId":"c08e9cad9f09f836"},{"name":"static-check","duration":779548,"timestamp":153053662155,"id":19,"parentId":1,"tags":{},"startTime":1778961025908,"traceId":"c08e9cad9f09f836"}]
2
- [{"name":"write-routes-manifest","duration":527,"timestamp":153054451923,"id":108,"parentId":1,"tags":{},"startTime":1778961026698,"traceId":"c08e9cad9f09f836"},{"name":"load-dotenv","duration":50,"timestamp":153054466438,"id":111,"parentId":110,"tags":{},"startTime":1778961026713,"traceId":"c08e9cad9f09f836"},{"name":"run-export-path-map","duration":549,"timestamp":153054469431,"id":112,"parentId":110,"tags":{},"startTime":1778961026716,"traceId":"c08e9cad9f09f836"},{"name":"next-export","duration":571252,"timestamp":153054464729,"id":110,"parentId":1,"tags":{},"startTime":1778961026711,"traceId":"c08e9cad9f09f836"},{"name":"move-exported-app-not-found-","duration":725,"timestamp":153055039516,"id":113,"parentId":109,"tags":{},"startTime":1778961027286,"traceId":"c08e9cad9f09f836"},{"name":"move-exported-app-global-error-","duration":535,"timestamp":153055040390,"id":114,"parentId":109,"tags":{},"startTime":1778961027287,"traceId":"c08e9cad9f09f836"},{"name":"static-generation","duration":586560,"timestamp":153054456725,"id":109,"parentId":1,"tags":{},"startTime":1778961026703,"traceId":"c08e9cad9f09f836"},{"name":"write-routes-manifest","duration":418,"timestamp":153055043522,"id":115,"parentId":1,"tags":{},"startTime":1778961027290,"traceId":"c08e9cad9f09f836"},{"name":"print-tree-view","duration":3948,"timestamp":153055052422,"id":116,"parentId":1,"tags":{},"startTime":1778961027299,"traceId":"c08e9cad9f09f836"},{"name":"write-route-bundle-stats","duration":16958,"timestamp":153055056394,"id":117,"parentId":1,"tags":{},"startTime":1778961027303,"traceId":"c08e9cad9f09f836"},{"name":"telemetry-flush","duration":53325,"timestamp":153055073377,"id":118,"parentId":1,"tags":{},"startTime":1778961027320,"traceId":"c08e9cad9f09f836"},{"name":"next-build","duration":16900468,"timestamp":153038226282,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961010473,"traceId":"c08e9cad9f09f836"}]
1
+ [{"name":"generate-buildid","duration":368,"timestamp":153632067069,"id":4,"parentId":1,"tags":{},"startTime":1778961604313,"traceId":"81dbb853f175c45f"},{"name":"load-custom-routes","duration":580,"timestamp":153632067614,"id":5,"parentId":1,"tags":{},"startTime":1778961604314,"traceId":"81dbb853f175c45f"},{"name":"create-dist-dir","duration":682,"timestamp":153632068239,"id":6,"parentId":1,"tags":{},"startTime":1778961604315,"traceId":"81dbb853f175c45f"},{"name":"clean","duration":33094,"timestamp":153632069621,"id":7,"parentId":1,"tags":{},"startTime":1778961604316,"traceId":"81dbb853f175c45f"},{"name":"discover-routes","duration":24872,"timestamp":153632187726,"id":8,"parentId":1,"tags":{},"startTime":1778961604434,"traceId":"81dbb853f175c45f"},{"name":"create-root-mapping","duration":162,"timestamp":153632212673,"id":9,"parentId":1,"tags":{},"startTime":1778961604459,"traceId":"81dbb853f175c45f"},{"name":"generate-route-types","duration":20193,"timestamp":153632216187,"id":10,"parentId":1,"tags":{},"startTime":1778961604462,"traceId":"81dbb853f175c45f"},{"name":"public-dir-conflict-check","duration":126,"timestamp":153632236491,"id":11,"parentId":1,"tags":{},"startTime":1778961604483,"traceId":"81dbb853f175c45f"},{"name":"generate-routes-manifest","duration":6058,"timestamp":153632236822,"id":12,"parentId":1,"tags":{},"startTime":1778961604483,"traceId":"81dbb853f175c45f"},{"name":"run-turbopack","duration":6271647,"timestamp":153632248879,"id":14,"parentId":1,"tags":{},"startTime":1778961604495,"traceId":"81dbb853f175c45f"},{"name":"turbopack-build-events","duration":78,"timestamp":153632546886,"id":15,"parentId":1,"tags":{},"startTime":1778961604793,"traceId":"81dbb853f175c45f"},{"name":"run-typescript","duration":9638868,"timestamp":153638534243,"id":16,"parentId":1,"tags":{},"startTime":1778961610781,"traceId":"81dbb853f175c45f"},{"name":"generate-required-server-files","duration":2221,"timestamp":153648174180,"id":18,"parentId":1,"tags":{},"startTime":1778961620420,"traceId":"81dbb853f175c45f"},{"name":"check-static-error-page","duration":13831,"timestamp":153648352301,"id":20,"parentId":19,"tags":{},"startTime":1778961620599,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":447694,"timestamp":153648369416,"id":65,"parentId":22,"tags":{},"startTime":1778961620616,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":468049,"timestamp":153648354981,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778961620601,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":541389,"timestamp":153648369985,"id":69,"parentId":28,"tags":{},"startTime":1778961620616,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":554438,"timestamp":153648358670,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778961620605,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":567071,"timestamp":153648370582,"id":72,"parentId":32,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":578250,"timestamp":153648359498,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778961620606,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":575410,"timestamp":153648370511,"id":71,"parentId":30,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":586971,"timestamp":153648359059,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778961620605,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":582199,"timestamp":153648369101,"id":64,"parentId":21,"tags":{},"startTime":1778961620615,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":597657,"timestamp":153648353825,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778961620600,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":589725,"timestamp":153648370862,"id":73,"parentId":33,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":601006,"timestamp":153648359656,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778961620606,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":593593,"timestamp":153648371030,"id":76,"parentId":36,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":604217,"timestamp":153648360472,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":598532,"timestamp":153648371066,"id":77,"parentId":37,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":608992,"timestamp":153648360656,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":604478,"timestamp":153648371087,"id":78,"parentId":38,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":614813,"timestamp":153648360812,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":609872,"timestamp":153648371103,"id":79,"parentId":39,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":620150,"timestamp":153648360887,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":610229,"timestamp":153648370958,"id":74,"parentId":34,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":621409,"timestamp":153648359805,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778961620606,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":612923,"timestamp":153648371120,"id":80,"parentId":40,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":623156,"timestamp":153648360960,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":616662,"timestamp":153648369850,"id":68,"parentId":27,"tags":{},"startTime":1778961620616,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":628283,"timestamp":153648358274,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778961620605,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":617666,"timestamp":153648371150,"id":82,"parentId":44,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":627298,"timestamp":153648361559,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":622022,"timestamp":153648371167,"id":83,"parentId":45,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":631579,"timestamp":153648361650,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":622813,"timestamp":153648371183,"id":84,"parentId":46,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":632376,"timestamp":153648361718,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":627905,"timestamp":153648371214,"id":86,"parentId":48,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":637292,"timestamp":153648361890,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":633221,"timestamp":153648371230,"id":87,"parentId":49,"tags":{},"startTime":1778961620618,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":640895,"timestamp":153648363610,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778961620610,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":636594,"timestamp":153648371246,"id":88,"parentId":50,"tags":{},"startTime":1778961620618,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":644176,"timestamp":153648363705,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778961620610,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":640365,"timestamp":153648371137,"id":81,"parentId":42,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":650314,"timestamp":153648361262,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":642259,"timestamp":153648369687,"id":67,"parentId":26,"tags":{},"startTime":1778961620616,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":653859,"timestamp":153648358136,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778961620604,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":646990,"timestamp":153648371201,"id":85,"parentId":47,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":656422,"timestamp":153648361814,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":642326,"timestamp":153648376155,"id":91,"parentId":31,"tags":{},"startTime":1778961620622,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":659320,"timestamp":153648359197,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778961620605,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":644518,"timestamp":153648374973,"id":90,"parentId":24,"tags":{},"startTime":1778961620621,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":664106,"timestamp":153648355434,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778961620602,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":652694,"timestamp":153648371258,"id":89,"parentId":51,"tags":{},"startTime":1778961620618,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":660238,"timestamp":153648363778,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778961620610,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":658697,"timestamp":153648369566,"id":66,"parentId":25,"tags":{},"startTime":1778961620616,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":670383,"timestamp":153648357923,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778961620604,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":660952,"timestamp":153648370321,"id":70,"parentId":29,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":672455,"timestamp":153648358860,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778961620605,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":658217,"timestamp":153648377027,"id":92,"parentId":41,"tags":{},"startTime":1778961620623,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":674239,"timestamp":153648361050,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778961620607,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":674943,"timestamp":153648378326,"id":93,"parentId":43,"tags":{},"startTime":1778961620625,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":692093,"timestamp":153648361366,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778961620608,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":700002,"timestamp":153648370991,"id":75,"parentId":35,"tags":{},"startTime":1778961620617,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":711149,"timestamp":153648359946,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778961620606,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":701071,"timestamp":153648383999,"id":100,"parentId":58,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":719987,"timestamp":153648365160,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778961620611,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":707675,"timestamp":153648383929,"id":95,"parentId":52,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":727593,"timestamp":153648364078,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778961620610,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":708756,"timestamp":153648384134,"id":101,"parentId":59,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":727658,"timestamp":153648365315,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778961620612,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":711003,"timestamp":153648383899,"id":94,"parentId":23,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":741841,"timestamp":153648355239,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778961620602,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":715470,"timestamp":153648384157,"id":102,"parentId":61,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":733957,"timestamp":153648365725,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778961620612,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":714532,"timestamp":153648395664,"id":105,"parentId":60,"tags":{},"startTime":1778961620642,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":744835,"timestamp":153648365440,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778961620612,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":726752,"timestamp":153648384172,"id":103,"parentId":62,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":745129,"timestamp":153648365842,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778961620612,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":727889,"timestamp":153648384184,"id":104,"parentId":63,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":746174,"timestamp":153648365943,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778961620612,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":728240,"timestamp":153648383970,"id":98,"parentId":55,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":747804,"timestamp":153648364434,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778961620611,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":693075,"timestamp":153648423549,"id":106,"parentId":57,"tags":{},"startTime":1778961620670,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":751908,"timestamp":153648364752,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778961620611,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":749374,"timestamp":153648383956,"id":97,"parentId":54,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":769089,"timestamp":153648364295,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778961620611,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":749508,"timestamp":153648383985,"id":99,"parentId":56,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":768950,"timestamp":153648364575,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778961620611,"traceId":"81dbb853f175c45f"},{"name":"is-page-static","duration":749664,"timestamp":153648383945,"id":96,"parentId":53,"tags":{},"startTime":1778961620630,"traceId":"81dbb853f175c45f"},{"name":"check-page","duration":769448,"timestamp":153648364188,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778961620610,"traceId":"81dbb853f175c45f"},{"name":"static-check","duration":782612,"timestamp":153648351092,"id":19,"parentId":1,"tags":{},"startTime":1778961620597,"traceId":"81dbb853f175c45f"}]
2
+ [{"name":"write-routes-manifest","duration":469,"timestamp":153649143069,"id":108,"parentId":1,"tags":{},"startTime":1778961621389,"traceId":"81dbb853f175c45f"},{"name":"load-dotenv","duration":48,"timestamp":153649155383,"id":111,"parentId":110,"tags":{},"startTime":1778961621402,"traceId":"81dbb853f175c45f"},{"name":"run-export-path-map","duration":595,"timestamp":153649157942,"id":112,"parentId":110,"tags":{},"startTime":1778961621404,"traceId":"81dbb853f175c45f"},{"name":"next-export","duration":609743,"timestamp":153649154153,"id":110,"parentId":1,"tags":{},"startTime":1778961621400,"traceId":"81dbb853f175c45f"},{"name":"move-exported-app-not-found-","duration":511,"timestamp":153649766894,"id":113,"parentId":109,"tags":{},"startTime":1778961622013,"traceId":"81dbb853f175c45f"},{"name":"move-exported-app-global-error-","duration":462,"timestamp":153649767536,"id":114,"parentId":109,"tags":{},"startTime":1778961622014,"traceId":"81dbb853f175c45f"},{"name":"static-generation","duration":621982,"timestamp":153649148292,"id":109,"parentId":1,"tags":{},"startTime":1778961621395,"traceId":"81dbb853f175c45f"},{"name":"write-routes-manifest","duration":385,"timestamp":153649770575,"id":115,"parentId":1,"tags":{},"startTime":1778961622017,"traceId":"81dbb853f175c45f"},{"name":"print-tree-view","duration":3998,"timestamp":153649790321,"id":116,"parentId":1,"tags":{},"startTime":1778961622037,"traceId":"81dbb853f175c45f"},{"name":"write-route-bundle-stats","duration":14201,"timestamp":153649794374,"id":117,"parentId":1,"tags":{},"startTime":1778961622041,"traceId":"81dbb853f175c45f"},{"name":"telemetry-flush","duration":22346,"timestamp":153649808607,"id":118,"parentId":1,"tags":{},"startTime":1778961622055,"traceId":"81dbb853f175c45f"},{"name":"next-build","duration":17817340,"timestamp":153632013680,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961604260,"traceId":"81dbb853f175c45f"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5711272,"timestamp":153038460642,"id":14,"parentId":1,"tags":{},"startTime":1778961010707,"traceId":"c08e9cad9f09f836"},{"name":"turbopack-build-events","duration":92,"timestamp":153038746462,"id":15,"parentId":1,"tags":{},"startTime":1778961010993,"traceId":"c08e9cad9f09f836"},{"name":"run-typescript","duration":9311370,"timestamp":153044184140,"id":16,"parentId":1,"tags":{},"startTime":1778961016430,"traceId":"c08e9cad9f09f836"},{"name":"static-check","duration":779548,"timestamp":153053662155,"id":19,"parentId":1,"tags":{},"startTime":1778961025908,"traceId":"c08e9cad9f09f836"},{"name":"static-generation","duration":586560,"timestamp":153054456725,"id":109,"parentId":1,"tags":{},"startTime":1778961026703,"traceId":"c08e9cad9f09f836"},{"name":"telemetry-flush","duration":53325,"timestamp":153055073377,"id":118,"parentId":1,"tags":{},"startTime":1778961027320,"traceId":"c08e9cad9f09f836"},{"name":"next-build","duration":16900468,"timestamp":153038226282,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961010473,"traceId":"c08e9cad9f09f836"}]
1
+ [{"name":"run-turbopack","duration":6271647,"timestamp":153632248879,"id":14,"parentId":1,"tags":{},"startTime":1778961604495,"traceId":"81dbb853f175c45f"},{"name":"turbopack-build-events","duration":78,"timestamp":153632546886,"id":15,"parentId":1,"tags":{},"startTime":1778961604793,"traceId":"81dbb853f175c45f"},{"name":"run-typescript","duration":9638868,"timestamp":153638534243,"id":16,"parentId":1,"tags":{},"startTime":1778961610781,"traceId":"81dbb853f175c45f"},{"name":"static-check","duration":782612,"timestamp":153648351092,"id":19,"parentId":1,"tags":{},"startTime":1778961620597,"traceId":"81dbb853f175c45f"},{"name":"static-generation","duration":621982,"timestamp":153649148292,"id":109,"parentId":1,"tags":{},"startTime":1778961621395,"traceId":"81dbb853f175c45f"},{"name":"telemetry-flush","duration":22346,"timestamp":153649808607,"id":118,"parentId":1,"tags":{},"startTime":1778961622055,"traceId":"81dbb853f175c45f"},{"name":"next-build","duration":17817340,"timestamp":153632013680,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778961604260,"traceId":"81dbb853f175c45f"}]
@@ -2456,7 +2456,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2456
2456
  cursor: 'pointer',
2457
2457
  }}
2458
2458
  >
2459
- <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span>{pinnedStatus}<span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2459
+ {/* Round 412 / Loop: filter pin pill VALUE picks up the
2460
+ chip-internal-hierarchy arc. Pre-R412 the value span
2461
+ (pinnedStatus / pinnedGroup / pinnedVendor) inherited
2462
+ the parent's font-medium (fw=500); prefix and suffix
2463
+ were opacity-70 label-tier but the VALUE itself sat
2464
+ at the same baseline weight. R412 wraps the value in
2465
+ a font-semibold span (fw=600) so the pill now reads
2466
+ with proper data-tier emphasis — sibling treatment
2467
+ to R333/R335-R341/R362/R369/R389/R410. data-filter-
2468
+ value attr surfaces the value span for tests.
2469
+ 4-pill replace family — status / group / vendor / edge. */}
2470
+ <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span><span className="font-semibold" data-filter-value>{pinnedStatus}</span><span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2460
2471
  <button
2461
2472
  type="button"
2462
2473
  aria-label={`Clear ${pinnedStatus} filter`}
@@ -2505,7 +2516,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2505
2516
  cursor: 'pointer',
2506
2517
  }}
2507
2518
  >
2508
- <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span>{pinnedGroup}<span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2519
+ {/* R412: see status pill above filter value fw=600 data tier. */}
2520
+ <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span><span className="font-semibold" data-filter-value>{pinnedGroup}</span><span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2509
2521
  <button
2510
2522
  type="button"
2511
2523
  aria-label={`Clear group filter ${pinnedGroup}`}
@@ -2570,7 +2582,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2570
2582
  cursor: 'pointer',
2571
2583
  }}
2572
2584
  >
2573
- <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span>{pinnedVendor}<span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2585
+ {/* R412: see status pill above filter value fw=600 data tier. */}
2586
+ <span><span className="hidden sm:inline opacity-70 transition-opacity duration-200 group-hover:opacity-100" data-filter-prefix>filter: </span><span className="font-semibold" data-filter-value>{pinnedVendor}</span><span className="opacity-70 tabular-nums transition-opacity duration-200 group-hover:opacity-100" data-filter-pill-count> · {matchCount}</span></span>
2574
2587
  <button
2575
2588
  type="button"
2576
2589
  aria-label={`Clear vendor filter ${pinnedVendor}`}
@@ -2632,9 +2645,11 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2632
2645
  cursor: 'pointer',
2633
2646
  }}
2634
2647
  >
2648
+ {/* R412: filter pin pill value (edge variant) picks up fw=600.
2649
+ Sibling treatment to the status/group/vendor pills above. */}
2635
2650
  <span>
2636
2651
  <span className="hidden sm:inline opacity-70" data-filter-prefix>filter: </span>
2637
- {link.from}→{link.to}
2652
+ <span className="font-semibold" data-filter-value>{link.from}→{link.to}</span>
2638
2653
  {/* Round 323 / Loop: edge filter pill count digit picks
2639
2654
  up tabular-nums (Tailwind class on both cold +
2640
2655
  hot branches). Sibling treatment to the status /
@@ -6174,47 +6189,49 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6174
6189
  />
6175
6190
  {/* Round 409 / Loop: active-node pulse peak
6176
6191
  opacity lift — cyber 0.18 → 0.20 / light
6177
- 0.12 → 0.14. The R243 pulse is the per-
6178
- node "this alias has recent flow" breath;
6179
- its peak amplitude was tuned in R243 but
6180
- sat at 0.18 cyber / 0.12 light — visible
6181
- but understated against the surrounding
6182
- status halos (R407 lifted offline halos
6183
- 0.25→0.30 cyber; online halos sit at 0.65
6184
- cyber). R409 lifts peak +0.02 on both
6185
- themes so the active-state breath reads
6186
- more confidently at its high-point while
6187
- the trough (0.04 cyber / 0.02 light)
6188
- stays put breath amplitude widens
6189
- slightly (cyber 0.14 0.16; light 0.10
6190
- 0.12) without changing rhythm or dur.
6191
- Theme-consistency / canvas-presence family
6192
- (9 anchors now):
6193
- R370 hub hover-ring 0.7 → 0.8 cyber
6194
- R371 edge-badge rest 0.82 0.85 cyber
6195
- R372 minimap offline-dot 0.5 0.6
6196
- R386 hub-highlight idle 0.9 0.95
6197
- R387 hover-detail panel 0.94 0.97 cyber
6198
- R391 hub-spoke active 0.7 0.8
6199
- R392 minimap online-dot 0.9 0.95
6200
- R403 click-ripple start 0.7 0.8
6201
- R409 active-node pulse peak (this round)
6202
- cyber 0.18 0.20
6203
- light 0.12 → 0.14
6192
+ 0.12 → 0.14. Theme-consistency / canvas-
6193
+ presence family 9th anchor. R243 family
6194
+ rhythm preserved.
6195
+ Round 413 / Loop: trough lift mirrors R409
6196
+ peak cyber 0.04 → 0.05 / light 0.02 →
6197
+ 0.03. Stale-state legibility lift family
6198
+ 8th anchor pairs with R404 (hub-halo
6199
+ cyber trough 0.08 0.10) and R405 (light
6200
+ trough 0.32 0.34). The per-node breath's
6201
+ low-point now reads slightly above the
6202
+ "nearly gone" zone while preserving the
6203
+ breath amplitude (cyber Δ 0.16 vs Δ pre-
6204
+ R409+R413 of 0.14; light Δ 0.11 vs 0.10).
6205
+ Both peak (R409) AND trough (R413) lift
6206
+ together so the active-pulse signal stays
6207
+ confidently present at both ends of its
6208
+ 2.4s cycle.
6209
+ Stale-state legibility lift family (8):
6210
+ R317 subordinate-text gray-500400
6211
+ R358 freshness floor 0.25→0.30
6212
+ R372 minimap offline-dot 0.5→0.6
6213
+ R404 hub-halo cyber trough 0.08→0.10
6214
+ R405 hub-halo light trough 0.32→0.34
6215
+ R406 edge freshness floor 0.35→0.40
6216
+ R407 node halo offline opacity (cyber+light)
6217
+ R413 active-node pulse trough (this round)
6218
+ cyber 0.04 → 0.05
6219
+ light 0.02 → 0.03
6204
6220
  R243 always-mount opacity-gate + R243
6205
6221
  ease-in-out keySplines + r animation
6206
6222
  (radius+8 ↔ radius+22) preserved.
6207
- data-node-pulse-peak attr exposes the
6208
- resolved per-theme peak for tests. */}
6223
+ data-node-pulse-peak + new -pulse-trough
6224
+ attrs expose resolved per-theme values. */}
6209
6225
  <animate
6210
6226
  attributeName="opacity"
6211
- values={isLight ? '0.14;0.02;0.14' : '0.20;0.04;0.20'}
6227
+ values={isLight ? '0.14;0.03;0.14' : '0.20;0.05;0.20'}
6212
6228
  dur="2.4s"
6213
6229
  repeatCount="indefinite"
6214
6230
  calcMode="spline"
6215
6231
  keyTimes="0;0.5;1"
6216
6232
  keySplines="0.42 0 0.58 1;0.42 0 0.58 1"
6217
6233
  data-node-pulse-peak={isLight ? '0.14' : '0.20'}
6234
+ data-node-pulse-trough={isLight ? '0.03' : '0.05'}
6218
6235
  />
6219
6236
  </circle>
6220
6237
  </g>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.1-preview.72",
3
+ "version": "0.5.1-preview.74",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,88 @@
1
+ /* Round 412 verification: filter pin pill VALUE picks up fw=600
2
+ * (font-semibold). Extends chip-internal-hierarchy arc (11th
3
+ * anchor) — pill now reads with proper data-tier emphasis around
4
+ * its R355 opacity-70 prefix/suffix.
5
+ *
6
+ * Contract:
7
+ * - Source-file verification of 4 occurrences of
8
+ * `<span className="font-semibold" data-filter-value>`
9
+ * - Runtime: pin a status filter, probe the data-filter-value
10
+ * span on the mounted pill — className includes font-semibold
11
+ * + textContent matches the pinned value.
12
+ * - Pre-R412 invariants on the pill:
13
+ * * data-filter-prefix span still opacity-70
14
+ * * data-filter-pill-count still opacity-70 tabular-nums
15
+ * * R397 hover-translate-y-px className still present
16
+ * * R332/R355/R356 className tokens preserved
17
+ */
18
+ import { chromium } from 'playwright';
19
+ import { readFileSync } from 'node:fs';
20
+
21
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
22
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
23
+
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript(() => {
28
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
29
+ });
30
+ await ctx.route('**/api/hub/status*', async (route) => {
31
+ const r = await route.fetch();
32
+ const b = await r.json();
33
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
34
+ const mk = (alias, status) => ({
35
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
36
+ network_id: nid, project_dir: null,
37
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
38
+ });
39
+ await route.fulfill({ response: r, json: { ...b, sessions: [
40
+ mk('alpha', 'working'),
41
+ mk('beta', 'idle'),
42
+ ] } });
43
+ });
44
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
45
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
46
+
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
49
+ await page.waitForSelector('g[data-node]', { timeout: 15000 });
50
+
51
+ // Click legend status row to pin filter → mounts the filter pill
52
+ await page.click('[data-legend-status="working"]');
53
+ await page.waitForSelector('[data-filter-value]', { timeout: 5000 });
54
+
55
+ const probe = await page.evaluate(() => {
56
+ const valueSpan = document.querySelector('[data-filter-value]');
57
+ if (!valueSpan) return null;
58
+ const pill = valueSpan.closest('[data-topo-filter-pill-hover-lift="true"]');
59
+ return {
60
+ valueText: valueSpan.textContent,
61
+ valueClass: valueSpan.className,
62
+ valueFwComputed: getComputedStyle(valueSpan).fontWeight,
63
+ pillClass: pill?.className ?? null,
64
+ pillActiveFilter: pill?.getAttribute('data-active-filter') ?? null,
65
+ };
66
+ });
67
+
68
+ const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
69
+ const valueOccurrences = (fileText.match(/<span className="font-semibold" data-filter-value>/g) || []).length;
70
+
71
+ await browser.close();
72
+
73
+ const results = {
74
+ // Runtime: value span has font-semibold
75
+ value_has_font_semibold: probe?.valueClass.includes('font-semibold') === true,
76
+ value_text_working: probe?.valueText === 'working',
77
+ value_fw_600: probe?.valueFwComputed === '600',
78
+ // Pill mounted with R397 hover-lift
79
+ pill_has_hover_lift: probe?.pillClass?.includes('hover:-translate-y-px') === true,
80
+ pill_active_filter: probe?.pillActiveFilter === 'status',
81
+ // Source-file: 4 occurrences (status + group + vendor + edge filters)
82
+ source_4_value_spans: valueOccurrences === 4,
83
+ };
84
+ const ok = Object.values(results).every(Boolean);
85
+ console.log(`${ok ? '✅' : '❌'} filter pin pill VALUE fw 500 → 600:`, JSON.stringify(results),
86
+ '\n probe:', probe,
87
+ '\n source occurrences:', valueOccurrences);
88
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,91 @@
1
+ /* Round 413 verification: active-node pulse SMIL trough opacity
2
+ * lift — cyber 0.04 → 0.05 / light 0.02 → 0.03. Extends the
3
+ * stale-state legibility lift family (8th anchor) and pairs with
4
+ * R409 peak lift so the per-node "active flow" breath reads
5
+ * confidently at both ends of its cycle.
6
+ *
7
+ * Contract:
8
+ * - Seed a flow link so a node becomes "active" (R243 isActive gate)
9
+ * - The active node's <animate> opacity element:
10
+ * * cyber: values='0.20;0.05;0.20' + data-node-pulse-trough='0.05'
11
+ * * light: values='0.14;0.03;0.14' + data-node-pulse-trough='0.03'
12
+ * - R409 peak invariant: data-node-pulse-peak='0.20' / '0.14'
13
+ * - Pre-R413 invariants preserved:
14
+ * * dur='2.4s', calcMode='spline', repeatCount='indefinite'
15
+ * * keySplines='0.42 0 0.58 1;0.42 0 0.58 1'
16
+ */
17
+ import { chromium } from 'playwright';
18
+ import { readFileSync } from 'node:fs';
19
+
20
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
21
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
22
+
23
+ async function probeTheme(theme) {
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript((t) => {
28
+ try { localStorage.setItem('anet-theme', t); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
29
+ }, theme);
30
+ await ctx.route('**/api/hub/status*', async (route) => {
31
+ const r = await route.fetch();
32
+ const b = await r.json();
33
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
34
+ const mk = (alias) => ({
35
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
36
+ network_id: nid, project_dir: null,
37
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
38
+ });
39
+ await route.fulfill({ response: r, json: { ...b, sessions: [ mk('alpha'), mk('beta'), mk('gamma') ] } });
40
+ });
41
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
42
+ json: { messages: [
43
+ { id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping', created_at: fresh, network_id: 'default' },
44
+ ] },
45
+ }));
46
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
49
+ await page.waitForSelector('[data-node-pulse-active="true"]', { timeout: 15000 });
50
+ await page.waitForTimeout(500);
51
+ const probe = await page.evaluate(() => {
52
+ const pulseGroup = document.querySelector('[data-node-pulse-active="true"]');
53
+ if (!pulseGroup) return null;
54
+ const animates = pulseGroup.querySelectorAll('animate');
55
+ const opacityAnim = Array.from(animates).find(a => a.getAttribute('attributeName') === 'opacity');
56
+ return opacityAnim ? {
57
+ values: opacityAnim.getAttribute('values'),
58
+ peakData: opacityAnim.getAttribute('data-node-pulse-peak'),
59
+ troughData: opacityAnim.getAttribute('data-node-pulse-trough'),
60
+ dur: opacityAnim.getAttribute('dur'),
61
+ calcMode: opacityAnim.getAttribute('calcMode'),
62
+ keySplines: opacityAnim.getAttribute('keySplines'),
63
+ } : null;
64
+ });
65
+ await browser.close();
66
+ return probe;
67
+ }
68
+
69
+ const cyber = await probeTheme('cyber');
70
+ const light = await probeTheme('light');
71
+
72
+ const results = {
73
+ // R413: trough lifts to 0.05 cyber / 0.03 light
74
+ cyber_values_0_05: cyber?.values === '0.20;0.05;0.20',
75
+ cyber_trough_data_0_05: cyber?.troughData === '0.05',
76
+ light_values_0_03: light?.values === '0.14;0.03;0.14',
77
+ light_trough_data_0_03: light?.troughData === '0.03',
78
+ // R409 peak invariants
79
+ cyber_peak_data_0_20: cyber?.peakData === '0.20',
80
+ light_peak_data_0_14: light?.peakData === '0.14',
81
+ // Pre-R413 invariants preserved
82
+ cyber_dur_2_4s: cyber?.dur === '2.4s',
83
+ cyber_spline: cyber?.calcMode === 'spline',
84
+ cyber_keySplines: cyber?.keySplines === '0.42 0 0.58 1;0.42 0 0.58 1',
85
+ light_dur_2_4s: light?.dur === '2.4s',
86
+ };
87
+ const ok = Object.values(results).every(Boolean);
88
+ console.log(`${ok ? '✅' : '❌'} active-node pulse trough lift:`, JSON.stringify(results),
89
+ '\n cyber:', cyber,
90
+ '\n light:', light);
91
+ process.exit(ok ? 0 : 1);