@sleep2agi/agent-network-dashboard 0.5.2-preview.6 → 0.5.2-preview.8
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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +5 -5
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{12ttw02y2zqx3.js → 06ypqia1-atbo.js} +1 -1
- package/.next/static/chunks/{0w7ytw9fq1u~-.js → 0kakzr~7pmm6f.js} +1 -1
- package/.next/static/chunks/{0oytdlq99vrof.js → 11s-p36ef7hy0.js} +1 -1
- package/.next/static/chunks/{11~glwpdpo9ft.js → 17y6nangmpg~u.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +61 -3
- package/package.json +1 -1
- package/scripts/topo-hub-digit-glow-test.mjs +105 -0
- package/scripts/topo-legend-pin-ring-glow-test.mjs +105 -0
- /package/.next/static/{keIPOvUO8vEU5r_MWSwId → wJxl4oP18MvCP4fry5nN7}/_buildManifest.js +0 -0
- /package/.next/static/{keIPOvUO8vEU5r_MWSwId → wJxl4oP18MvCP4fry5nN7}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{keIPOvUO8vEU5r_MWSwId → wJxl4oP18MvCP4fry5nN7}/_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.2-preview.6"],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.2-preview.8"],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":411,"timestamp":178766405776,"id":4,"parentId":1,"tags":{},"startTime":1778986738652,"traceId":"f7dc66118a58c422"},{"name":"load-custom-routes","duration":711,"timestamp":178766406402,"id":5,"parentId":1,"tags":{},"startTime":1778986738653,"traceId":"f7dc66118a58c422"},{"name":"create-dist-dir","duration":861,"timestamp":178766407175,"id":6,"parentId":1,"tags":{},"startTime":1778986738653,"traceId":"f7dc66118a58c422"},{"name":"clean","duration":39126,"timestamp":178766408733,"id":7,"parentId":1,"tags":{},"startTime":1778986738655,"traceId":"f7dc66118a58c422"},{"name":"discover-routes","duration":35010,"timestamp":178766561364,"id":8,"parentId":1,"tags":{},"startTime":1778986738808,"traceId":"f7dc66118a58c422"},{"name":"create-root-mapping","duration":165,"timestamp":178766596463,"id":9,"parentId":1,"tags":{},"startTime":1778986738843,"traceId":"f7dc66118a58c422"},{"name":"generate-route-types","duration":28254,"timestamp":178766600604,"id":10,"parentId":1,"tags":{},"startTime":1778986738847,"traceId":"f7dc66118a58c422"},{"name":"public-dir-conflict-check","duration":129,"timestamp":178766628958,"id":11,"parentId":1,"tags":{},"startTime":1778986738875,"traceId":"f7dc66118a58c422"},{"name":"generate-routes-manifest","duration":5734,"timestamp":178766629210,"id":12,"parentId":1,"tags":{},"startTime":1778986738875,"traceId":"f7dc66118a58c422"},{"name":"run-turbopack","duration":11032572,"timestamp":178766651672,"id":14,"parentId":1,"tags":{},"startTime":1778986738898,"traceId":"f7dc66118a58c422"},{"name":"turbopack-build-events","duration":105,"timestamp":178767052892,"id":15,"parentId":1,"tags":{},"startTime":1778986739299,"traceId":"f7dc66118a58c422"},{"name":"run-typescript","duration":14034702,"timestamp":178777698709,"id":16,"parentId":1,"tags":{},"startTime":1778986749945,"traceId":"f7dc66118a58c422"},{"name":"generate-required-server-files","duration":4557,"timestamp":178791737909,"id":18,"parentId":1,"tags":{},"startTime":1778986763984,"traceId":"f7dc66118a58c422"},{"name":"check-static-error-page","duration":25534,"timestamp":178792020464,"id":20,"parentId":19,"tags":{},"startTime":1778986764267,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":643990,"timestamp":178792050466,"id":65,"parentId":22,"tags":{},"startTime":1778986764297,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":670792,"timestamp":178792023833,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778986764270,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":838036,"timestamp":178792051415,"id":71,"parentId":30,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":862138,"timestamp":178792027416,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778986764274,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":850635,"timestamp":178792051481,"id":72,"parentId":32,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":873067,"timestamp":178792029133,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778986764275,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":874175,"timestamp":178792051644,"id":73,"parentId":33,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":896588,"timestamp":178792029322,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778986764276,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":893889,"timestamp":178792051723,"id":74,"parentId":34,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":916215,"timestamp":178792029484,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778986764276,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":921513,"timestamp":178792051771,"id":75,"parentId":35,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":943748,"timestamp":178792029629,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778986764276,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":949405,"timestamp":178792051793,"id":76,"parentId":36,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":971132,"timestamp":178792030164,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778986764276,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":966331,"timestamp":178792059195,"id":77,"parentId":37,"tags":{},"startTime":1778986764305,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":995252,"timestamp":178792030360,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778986764277,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":986967,"timestamp":178792059224,"id":78,"parentId":38,"tags":{},"startTime":1778986764305,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1015781,"timestamp":178792030509,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778986764277,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1017675,"timestamp":178792059240,"id":79,"parentId":39,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1046409,"timestamp":178792030615,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778986764277,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1072876,"timestamp":178792059252,"id":80,"parentId":40,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1101519,"timestamp":178792030711,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778986764277,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1120250,"timestamp":178792059261,"id":81,"parentId":42,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1147616,"timestamp":178792031995,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778986764278,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1136084,"timestamp":178792059272,"id":82,"parentId":44,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1161640,"timestamp":178792033789,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778986764280,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1146437,"timestamp":178792059284,"id":83,"parentId":45,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1171799,"timestamp":178792034019,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778986764280,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1154886,"timestamp":178792059298,"id":84,"parentId":46,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1173145,"timestamp":178792041115,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778986764287,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1173293,"timestamp":178792059308,"id":85,"parentId":47,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1191408,"timestamp":178792041262,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1185220,"timestamp":178792059321,"id":86,"parentId":48,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1203272,"timestamp":178792041356,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1194586,"timestamp":178792059334,"id":87,"parentId":49,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1212521,"timestamp":178792041473,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1204374,"timestamp":178792059344,"id":88,"parentId":50,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1222245,"timestamp":178792041553,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1236754,"timestamp":178792059357,"id":89,"parentId":51,"tags":{},"startTime":1778986764306,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1254571,"timestamp":178792041629,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1233037,"timestamp":178792071152,"id":90,"parentId":24,"tags":{},"startTime":1778986764317,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1279910,"timestamp":178792024348,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778986764271,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1264951,"timestamp":178792050860,"id":68,"parentId":27,"tags":{},"startTime":1778986764297,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1288820,"timestamp":178792027063,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778986764273,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1229381,"timestamp":178792098858,"id":91,"parentId":31,"tags":{},"startTime":1778986764345,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1303609,"timestamp":178792027525,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778986764274,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1235275,"timestamp":178792103702,"id":93,"parentId":43,"tags":{},"startTime":1778986764350,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1306859,"timestamp":178792032193,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778986764278,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1239256,"timestamp":178792099969,"id":92,"parentId":41,"tags":{},"startTime":1778986764346,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1308443,"timestamp":178792030816,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778986764277,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1382294,"timestamp":178792050967,"id":69,"parentId":28,"tags":{},"startTime":1778986764297,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1406169,"timestamp":178792027182,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778986764273,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1324819,"timestamp":178792150084,"id":94,"parentId":23,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1450881,"timestamp":178792024109,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778986764270,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1436032,"timestamp":178792050611,"id":66,"parentId":25,"tags":{},"startTime":1778986764297,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1459958,"timestamp":178792026769,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778986764273,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1353178,"timestamp":178792150159,"id":97,"parentId":54,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1461135,"timestamp":178792042287,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778986764289,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1361193,"timestamp":178792150184,"id":99,"parentId":56,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1468811,"timestamp":178792042632,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778986764289,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1500829,"timestamp":178792050042,"id":64,"parentId":21,"tags":{},"startTime":1778986764296,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1528779,"timestamp":178792022176,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778986764268,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1404490,"timestamp":178792150193,"id":100,"parentId":58,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1511087,"timestamp":178792043677,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778986764290,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1433792,"timestamp":178792150323,"id":102,"parentId":61,"tags":{},"startTime":1778986764397,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1539522,"timestamp":178792044708,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778986764291,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1595553,"timestamp":178792051255,"id":70,"parentId":29,"tags":{},"startTime":1778986764298,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1619606,"timestamp":178792027286,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778986764274,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1525019,"timestamp":178792150333,"id":103,"parentId":62,"tags":{},"startTime":1778986764397,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1629862,"timestamp":178792045566,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778986764292,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1648996,"timestamp":178792050729,"id":67,"parentId":26,"tags":{},"startTime":1778986764297,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1672909,"timestamp":178792026927,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778986764273,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1553800,"timestamp":178792150146,"id":96,"parentId":53,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1661886,"timestamp":178792042146,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1572588,"timestamp":178792150303,"id":101,"parentId":59,"tags":{},"startTime":1778986764397,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1679060,"timestamp":178792043911,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778986764290,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1575628,"timestamp":178792150135,"id":95,"parentId":52,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1683847,"timestamp":178792041982,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778986764288,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1587071,"timestamp":178792159882,"id":105,"parentId":60,"tags":{},"startTime":1778986764406,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1702800,"timestamp":178792044252,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778986764291,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1640736,"timestamp":178792150172,"id":98,"parentId":55,"tags":{},"startTime":1778986764396,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1748524,"timestamp":178792042462,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778986764289,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1648354,"timestamp":178792222845,"id":106,"parentId":57,"tags":{},"startTime":1778986764469,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1828434,"timestamp":178792042841,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778986764289,"traceId":"f7dc66118a58c422"},{"name":"is-page-static","duration":1732283,"timestamp":178792150346,"id":104,"parentId":63,"tags":{},"startTime":1778986764397,"traceId":"f7dc66118a58c422"},{"name":"check-page","duration":1836958,"timestamp":178792045751,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778986764292,"traceId":"f7dc66118a58c422"},{"name":"static-check","duration":1863522,"timestamp":178792019251,"id":19,"parentId":1,"tags":{},"startTime":1778986764266,"traceId":"f7dc66118a58c422"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":401,"timestamp":179547584249,"id":4,"parentId":1,"tags":{},"startTime":1778987519831,"traceId":"685c4a6dff321ea2"},{"name":"load-custom-routes","duration":551,"timestamp":179547584905,"id":5,"parentId":1,"tags":{},"startTime":1778987519831,"traceId":"685c4a6dff321ea2"},{"name":"create-dist-dir","duration":819,"timestamp":179547585507,"id":6,"parentId":1,"tags":{},"startTime":1778987519832,"traceId":"685c4a6dff321ea2"},{"name":"clean","duration":38037,"timestamp":179547587093,"id":7,"parentId":1,"tags":{},"startTime":1778987519833,"traceId":"685c4a6dff321ea2"},{"name":"discover-routes","duration":10205,"timestamp":179547721350,"id":8,"parentId":1,"tags":{},"startTime":1778987519968,"traceId":"685c4a6dff321ea2"},{"name":"create-root-mapping","duration":113,"timestamp":179547731620,"id":9,"parentId":1,"tags":{},"startTime":1778987519978,"traceId":"685c4a6dff321ea2"},{"name":"generate-route-types","duration":33892,"timestamp":179547734133,"id":10,"parentId":1,"tags":{},"startTime":1778987519980,"traceId":"685c4a6dff321ea2"},{"name":"public-dir-conflict-check","duration":121,"timestamp":179547768155,"id":11,"parentId":1,"tags":{},"startTime":1778987520014,"traceId":"685c4a6dff321ea2"},{"name":"generate-routes-manifest","duration":5541,"timestamp":179547768407,"id":12,"parentId":1,"tags":{},"startTime":1778987520015,"traceId":"685c4a6dff321ea2"},{"name":"run-turbopack","duration":7958797,"timestamp":179547779354,"id":14,"parentId":1,"tags":{},"startTime":1778987520026,"traceId":"685c4a6dff321ea2"},{"name":"turbopack-build-events","duration":102,"timestamp":179548101622,"id":15,"parentId":1,"tags":{},"startTime":1778987520348,"traceId":"685c4a6dff321ea2"},{"name":"run-typescript","duration":11332883,"timestamp":179555747676,"id":16,"parentId":1,"tags":{},"startTime":1778987527994,"traceId":"685c4a6dff321ea2"},{"name":"generate-required-server-files","duration":3185,"timestamp":179567081899,"id":18,"parentId":1,"tags":{},"startTime":1778987539328,"traceId":"685c4a6dff321ea2"},{"name":"check-static-error-page","duration":15692,"timestamp":179567339807,"id":20,"parentId":19,"tags":{},"startTime":1778987539586,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":751330,"timestamp":179567358265,"id":64,"parentId":21,"tags":{},"startTime":1778987539605,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":768257,"timestamp":179567341532,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778987539588,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":760982,"timestamp":179567360145,"id":69,"parentId":28,"tags":{},"startTime":1778987539606,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":773830,"timestamp":179567347374,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":767746,"timestamp":179567360680,"id":72,"parentId":32,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":780346,"timestamp":179567348163,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":775262,"timestamp":179567359627,"id":65,"parentId":22,"tags":{},"startTime":1778987539606,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":791865,"timestamp":179567343103,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778987539589,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":776641,"timestamp":179567360027,"id":68,"parentId":27,"tags":{},"startTime":1778987539606,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":789512,"timestamp":179567347251,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":784910,"timestamp":179567360867,"id":73,"parentId":33,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":797535,"timestamp":179567348312,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778987539595,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":795265,"timestamp":179567361031,"id":76,"parentId":36,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":807386,"timestamp":179567348983,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778987539595,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":812704,"timestamp":179567361067,"id":77,"parentId":37,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":824677,"timestamp":179567349175,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778987539595,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":816019,"timestamp":179567360979,"id":75,"parentId":35,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":828467,"timestamp":179567348604,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778987539595,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":821591,"timestamp":179567361100,"id":79,"parentId":39,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":833381,"timestamp":179567349370,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":836759,"timestamp":179567360453,"id":70,"parentId":29,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":849784,"timestamp":179567347492,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":836376,"timestamp":179567361118,"id":80,"parentId":40,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":848091,"timestamp":179567349441,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":836610,"timestamp":179567361084,"id":78,"parentId":38,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":848435,"timestamp":179567349288,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":852703,"timestamp":179567361151,"id":81,"parentId":42,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":864225,"timestamp":179567349721,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":856326,"timestamp":179567361193,"id":83,"parentId":45,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":866731,"timestamp":179567350852,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778987539597,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":862129,"timestamp":179567361240,"id":85,"parentId":47,"tags":{},"startTime":1778987539608,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":872405,"timestamp":179567351025,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778987539597,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":864441,"timestamp":179567359784,"id":66,"parentId":25,"tags":{},"startTime":1778987539606,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":877404,"timestamp":179567346915,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778987539593,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":869354,"timestamp":179567361265,"id":86,"parentId":48,"tags":{},"startTime":1778987539608,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":879569,"timestamp":179567351104,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778987539597,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":876242,"timestamp":179567361169,"id":82,"parentId":44,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":886743,"timestamp":179567350723,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778987539597,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":876307,"timestamp":179567361316,"id":88,"parentId":50,"tags":{},"startTime":1778987539608,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":884826,"timestamp":179567352841,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778987539599,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":878546,"timestamp":179567361331,"id":89,"parentId":51,"tags":{},"startTime":1778987539608,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":886993,"timestamp":179567352936,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778987539599,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":873501,"timestamp":179567370671,"id":91,"parentId":31,"tags":{},"startTime":1778987539617,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":896385,"timestamp":179567347828,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":876021,"timestamp":179567369476,"id":90,"parentId":24,"tags":{},"startTime":1778987539616,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":901906,"timestamp":179567343642,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778987539590,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":877222,"timestamp":179567373058,"id":93,"parentId":43,"tags":{},"startTime":1778987539619,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":900490,"timestamp":179567349831,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":883556,"timestamp":179567371534,"id":92,"parentId":41,"tags":{},"startTime":1778987539618,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":905624,"timestamp":179567349509,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778987539596,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":915667,"timestamp":179567360950,"id":74,"parentId":34,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":928240,"timestamp":179567348448,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778987539595,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":975167,"timestamp":179567360617,"id":71,"parentId":30,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":988238,"timestamp":179567347625,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778987539594,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":974815,"timestamp":179567361219,"id":84,"parentId":46,"tags":{},"startTime":1778987539607,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":985142,"timestamp":179567350924,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778987539597,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":960916,"timestamp":179567375262,"id":95,"parentId":52,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":982933,"timestamp":179567353277,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":975020,"timestamp":179567361291,"id":87,"parentId":49,"tags":{},"startTime":1778987539608,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":983703,"timestamp":179567352645,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778987539599,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1002318,"timestamp":179567359898,"id":67,"parentId":26,"tags":{},"startTime":1778987539606,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1015177,"timestamp":179567347113,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778987539593,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":995673,"timestamp":179567375292,"id":97,"parentId":54,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1017552,"timestamp":179567353505,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":995931,"timestamp":179567375315,"id":99,"parentId":56,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1017502,"timestamp":179567353796,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":996190,"timestamp":179567375237,"id":94,"parentId":23,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1028067,"timestamp":179567343383,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778987539590,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1009662,"timestamp":179567375489,"id":104,"parentId":63,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1029991,"timestamp":179567355244,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778987539602,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1009948,"timestamp":179567375459,"id":102,"parentId":61,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1030448,"timestamp":179567354987,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778987539601,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1013987,"timestamp":179567375476,"id":103,"parentId":62,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1034387,"timestamp":179567355123,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778987539601,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":996210,"timestamp":179567396720,"id":106,"parentId":57,"tags":{},"startTime":1778987539643,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1039019,"timestamp":179567353966,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1009410,"timestamp":179567385228,"id":105,"parentId":60,"tags":{},"startTime":1778987539632,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1040008,"timestamp":179567354682,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778987539601,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1052656,"timestamp":179567375329,"id":100,"parentId":58,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1073686,"timestamp":179567354395,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778987539601,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1065955,"timestamp":179567375278,"id":96,"parentId":53,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1087910,"timestamp":179567353397,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1072214,"timestamp":179567375301,"id":98,"parentId":55,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1093926,"timestamp":179567353643,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778987539600,"traceId":"685c4a6dff321ea2"},{"name":"is-page-static","duration":1091169,"timestamp":179567375442,"id":101,"parentId":59,"tags":{},"startTime":1778987539622,"traceId":"685c4a6dff321ea2"},{"name":"check-page","duration":1112136,"timestamp":179567354556,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778987539601,"traceId":"685c4a6dff321ea2"},{"name":"static-check","duration":1128046,"timestamp":179567338701,"id":19,"parentId":1,"tags":{},"startTime":1778987539585,"traceId":"685c4a6dff321ea2"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":1423,"timestamp":179568477871,"id":108,"parentId":1,"tags":{},"startTime":1778987540724,"traceId":"685c4a6dff321ea2"},{"name":"load-dotenv","duration":73,"timestamp":179568491728,"id":111,"parentId":110,"tags":{},"startTime":1778987540738,"traceId":"685c4a6dff321ea2"},{"name":"run-export-path-map","duration":841,"timestamp":179568495305,"id":112,"parentId":110,"tags":{},"startTime":1778987540742,"traceId":"685c4a6dff321ea2"},{"name":"next-export","duration":769655,"timestamp":179568490021,"id":110,"parentId":1,"tags":{},"startTime":1778987540736,"traceId":"685c4a6dff321ea2"},{"name":"move-exported-app-not-found-","duration":600,"timestamp":179569262940,"id":113,"parentId":109,"tags":{},"startTime":1778987541509,"traceId":"685c4a6dff321ea2"},{"name":"move-exported-app-global-error-","duration":475,"timestamp":179569263644,"id":114,"parentId":109,"tags":{},"startTime":1778987541510,"traceId":"685c4a6dff321ea2"},{"name":"static-generation","duration":782380,"timestamp":179568484026,"id":109,"parentId":1,"tags":{},"startTime":1778987540730,"traceId":"685c4a6dff321ea2"},{"name":"write-routes-manifest","duration":418,"timestamp":179569266641,"id":115,"parentId":1,"tags":{},"startTime":1778987541513,"traceId":"685c4a6dff321ea2"},{"name":"print-tree-view","duration":6616,"timestamp":179569282093,"id":116,"parentId":1,"tags":{},"startTime":1778987541528,"traceId":"685c4a6dff321ea2"},{"name":"write-route-bundle-stats","duration":16934,"timestamp":179569288761,"id":117,"parentId":1,"tags":{},"startTime":1778987541535,"traceId":"685c4a6dff321ea2"},{"name":"telemetry-flush","duration":17396,"timestamp":179569305726,"id":118,"parentId":1,"tags":{},"startTime":1778987541552,"traceId":"685c4a6dff321ea2"},{"name":"next-build","duration":21797333,"timestamp":179547525821,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778987519772,"traceId":"685c4a6dff321ea2"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":7958797,"timestamp":179547779354,"id":14,"parentId":1,"tags":{},"startTime":1778987520026,"traceId":"685c4a6dff321ea2"},{"name":"turbopack-build-events","duration":102,"timestamp":179548101622,"id":15,"parentId":1,"tags":{},"startTime":1778987520348,"traceId":"685c4a6dff321ea2"},{"name":"run-typescript","duration":11332883,"timestamp":179555747676,"id":16,"parentId":1,"tags":{},"startTime":1778987527994,"traceId":"685c4a6dff321ea2"},{"name":"static-check","duration":1128046,"timestamp":179567338701,"id":19,"parentId":1,"tags":{},"startTime":1778987539585,"traceId":"685c4a6dff321ea2"},{"name":"static-generation","duration":782380,"timestamp":179568484026,"id":109,"parentId":1,"tags":{},"startTime":1778987540730,"traceId":"685c4a6dff321ea2"},{"name":"telemetry-flush","duration":17396,"timestamp":179569305726,"id":118,"parentId":1,"tags":{},"startTime":1778987541552,"traceId":"685c4a6dff321ea2"},{"name":"next-build","duration":21797333,"timestamp":179547525821,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778987519772,"traceId":"685c4a6dff321ea2"}]
|
|
@@ -6303,15 +6303,45 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6303
6303
|
/* Round 253 / Loop: append fill 200ms to the hub
|
|
6304
6304
|
digit transition list — theme toggle (cyber #ecfdf5
|
|
6305
6305
|
↔ light #d1fae5) was the last hub-area snap. */
|
|
6306
|
+
/* Round 476 / Loop — hub working-count digit gains a
|
|
6307
|
+
filter: drop-shadow glow on hub-hover. Stacks with
|
|
6308
|
+
the existing 4-axis hub-hover gesture stack on this
|
|
6309
|
+
element:
|
|
6310
|
+
R209 transform: scale(1.08) geometry
|
|
6311
|
+
R425 fontWeight 700 → 800 typography
|
|
6312
|
+
R253 fill ease-out chroma (theme)
|
|
6313
|
+
R213 opacity gate fade (count cross)
|
|
6314
|
+
R476 filter drop-shadow glow paint (this round)
|
|
6315
|
+
The glow uses the cyber emerald-400 (#34d399) /
|
|
6316
|
+
light emerald-500 (#10b981) hue family so the
|
|
6317
|
+
chroma stays inside the hub-area palette. Subtle
|
|
6318
|
+
2-3 px blur radius at 0.6 opacity — visible but
|
|
6319
|
+
not loud, reads as "the focal digit lit up under
|
|
6320
|
+
attention".
|
|
6321
|
+
Reduced-motion users skip the filter via the
|
|
6322
|
+
!reducedMotion gate (R29 a11y blanket).
|
|
6323
|
+
Filter is a paint-only attribute — bbox stays
|
|
6324
|
+
the same, R51 overlap-test invariants hold.
|
|
6325
|
+
transition list extends to 'filter 200ms ease-out'
|
|
6326
|
+
so the glow eases under the same cadence as the
|
|
6327
|
+
scale + fw + fill axes. */
|
|
6328
|
+
data-topo-hub-working-count-glow={!reducedMotion && hoveredHub ? 'true' : 'false'}
|
|
6306
6329
|
style={{
|
|
6307
6330
|
pointerEvents: 'none',
|
|
6308
6331
|
transform: !reducedMotion && hoveredHub ? 'scale(1.08)' : 'scale(1)',
|
|
6309
6332
|
transformBox: 'fill-box',
|
|
6310
6333
|
transformOrigin: 'center',
|
|
6334
|
+
filter: !reducedMotion && hoveredHub
|
|
6335
|
+
? (isLight
|
|
6336
|
+
? 'drop-shadow(0 0 2px rgba(16, 185, 129, 0.6))'
|
|
6337
|
+
: 'drop-shadow(0 0 3px rgba(52, 211, 153, 0.6))')
|
|
6338
|
+
: undefined,
|
|
6311
6339
|
/* R425: font-weight 200ms appended so the hover fw
|
|
6312
6340
|
bump 700 → 800 eases under the same cadence as
|
|
6313
|
-
R209 scale + R253 fill + R213 opacity.
|
|
6314
|
-
|
|
6341
|
+
R209 scale + R253 fill + R213 opacity.
|
|
6342
|
+
R476: filter 200ms appended so the new drop-
|
|
6343
|
+
shadow glow eases at the same cadence. */
|
|
6344
|
+
transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out',
|
|
6315
6345
|
fontVariantNumeric: 'tabular-nums',
|
|
6316
6346
|
}}
|
|
6317
6347
|
>
|
|
@@ -9828,6 +9858,30 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
9828
9858
|
+ pointerEvents:none all preserved. data-legend-
|
|
9829
9859
|
pin-ring-stroke-width attr exposes the value for
|
|
9830
9860
|
tests. */}
|
|
9861
|
+
{/* Round 477 / Loop — legend pin-ring gains a filter:
|
|
9862
|
+
drop-shadow glow on isPinned. Extends R476's
|
|
9863
|
+
drop-shadow idiom from hub-digit (focal scope)
|
|
9864
|
+
to the legend-row pin-ring (sibling pin-state
|
|
9865
|
+
surface). When a status row is pinned, the
|
|
9866
|
+
concentric ring around the swatch now lights
|
|
9867
|
+
up with a colour-matched halo using row.fill,
|
|
9868
|
+
reinforcing "this filter is locked" via a
|
|
9869
|
+
glow layer above the R402 sw bump + R181
|
|
9870
|
+
opacity fade-in.
|
|
9871
|
+
Hue: row.fill at 0.55 alpha — picks up each
|
|
9872
|
+
status tier's signature colour (working green /
|
|
9873
|
+
idle teal / offline slate). 3px blur stays
|
|
9874
|
+
subtle but unmistakable when the row is locked.
|
|
9875
|
+
Reduced-motion users skip the filter via R29
|
|
9876
|
+
a11y blanket (transition-duration → 0.001ms
|
|
9877
|
+
so the glow appears/disappears instantly with
|
|
9878
|
+
pin toggle).
|
|
9879
|
+
Filter is paint-only — bbox unchanged, R51
|
|
9880
|
+
overlap-test gated to g[data-node] descendants
|
|
9881
|
+
so this legend-internal ring is invisible to
|
|
9882
|
+
the probe anyway. Transition list extends to
|
|
9883
|
+
include 'filter 200ms ease-out' so the glow
|
|
9884
|
+
eases under the same cadence as opacity. */}
|
|
9831
9885
|
<circle
|
|
9832
9886
|
cx="16" cy={row.y0} r="8"
|
|
9833
9887
|
fill="none"
|
|
@@ -9837,9 +9891,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
9837
9891
|
data-legend-pin-ring={row.key}
|
|
9838
9892
|
data-legend-pin-ring-pinned={isPinned ? 'true' : 'false'}
|
|
9839
9893
|
data-legend-pin-ring-stroke-width="1.75"
|
|
9894
|
+
data-legend-pin-ring-glow={isPinned ? 'true' : 'false'}
|
|
9840
9895
|
style={{
|
|
9841
9896
|
pointerEvents: 'none',
|
|
9842
|
-
|
|
9897
|
+
filter: isPinned
|
|
9898
|
+
? `drop-shadow(0 0 3px ${row.fill}88)`
|
|
9899
|
+
: undefined,
|
|
9900
|
+
transition: 'opacity 150ms ease-out, filter 200ms ease-out',
|
|
9843
9901
|
}}
|
|
9844
9902
|
/>
|
|
9845
9903
|
{/* Round 219 / Loop: legend row text gains the same
|
package/package.json
CHANGED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* Round 476 verification: hub working-count digit gains filter:
|
|
2
|
+
* drop-shadow glow on hub-hover. Stacks with the existing 4-axis
|
|
3
|
+
* hub-hover gesture (R209 scale + R425 fw + R253 fill + R213
|
|
4
|
+
* opacity). data-topo-hub-working-count-glow attr exposes the gate.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - at rest (no hover): data-topo-hub-working-count-glow='false',
|
|
8
|
+
* filter is empty / 'none'
|
|
9
|
+
* - on mouseenter hub-core: glow='true', filter starts with
|
|
10
|
+
* 'drop-shadow'
|
|
11
|
+
* - source-file conditional wired (cyber + light theme variants)
|
|
12
|
+
* - transition list extends to include 'filter 200ms ease-out'
|
|
13
|
+
*/
|
|
14
|
+
import { chromium } from 'playwright';
|
|
15
|
+
import { readFileSync } from 'node:fs';
|
|
16
|
+
|
|
17
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
18
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
19
|
+
|
|
20
|
+
const browser = await chromium.launch({ headless: true });
|
|
21
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
22
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
23
|
+
await ctx.addInitScript(() => {
|
|
24
|
+
try {
|
|
25
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
26
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
27
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
28
|
+
} 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
|
+
// Need at least one working session so the digit renders (R213 opacity gate)
|
|
40
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
41
|
+
mk('a·1', 'working'), mk('a·2', 'idle'), mk('a·3', 'working'),
|
|
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: 'networkidle' });
|
|
49
|
+
await page.waitForSelector('[data-topo-hub-working-count]', { timeout: 15000 });
|
|
50
|
+
await page.waitForTimeout(500);
|
|
51
|
+
|
|
52
|
+
const readDigit = () => page.evaluate(() => {
|
|
53
|
+
const t = document.querySelector('[data-topo-hub-working-count]');
|
|
54
|
+
if (!t) return null;
|
|
55
|
+
const cs = getComputedStyle(t);
|
|
56
|
+
return {
|
|
57
|
+
glow: t.getAttribute('data-topo-hub-working-count-glow'),
|
|
58
|
+
count: t.getAttribute('data-topo-hub-working-count'),
|
|
59
|
+
filter: cs.filter,
|
|
60
|
+
transition: cs.transition,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const restProbe = await readDigit();
|
|
65
|
+
|
|
66
|
+
// Hover the hub via the hover-trigger surface (hub <g> or core)
|
|
67
|
+
await page.hover('[data-topo-hub-core]');
|
|
68
|
+
await page.waitForTimeout(400);
|
|
69
|
+
const hoverProbe = await readDigit();
|
|
70
|
+
|
|
71
|
+
// Leave hub
|
|
72
|
+
await page.mouse.move(2, 2);
|
|
73
|
+
await page.waitForTimeout(400);
|
|
74
|
+
const restAgainProbe = await readDigit();
|
|
75
|
+
|
|
76
|
+
const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
77
|
+
const sourceGlowAttr = /data-topo-hub-working-count-glow=/.test(src);
|
|
78
|
+
const sourceDropShadow = /drop-shadow\(0 0 \dpx rgba\(/.test(src);
|
|
79
|
+
const sourceFilterTween = /filter 200ms ease-out/.test(src);
|
|
80
|
+
|
|
81
|
+
await browser.close();
|
|
82
|
+
|
|
83
|
+
const restGlowFalse = restProbe?.glow === 'false';
|
|
84
|
+
const hoverGlowTrue = hoverProbe?.glow === 'true';
|
|
85
|
+
const restAgainFalse = restAgainProbe?.glow === 'false';
|
|
86
|
+
// Computed filter — at rest should be 'none' or empty; on hover should
|
|
87
|
+
// contain 'drop-shadow'.
|
|
88
|
+
const restFilterEmpty = restProbe?.filter === 'none' || !restProbe?.filter;
|
|
89
|
+
const hoverFilterHasShadow = /drop-shadow/.test(hoverProbe?.filter || '');
|
|
90
|
+
|
|
91
|
+
const results = {
|
|
92
|
+
rest_glow_false: restGlowFalse,
|
|
93
|
+
hover_glow_true: hoverGlowTrue,
|
|
94
|
+
rest_again_false: restAgainFalse,
|
|
95
|
+
rest_filter_none: restFilterEmpty,
|
|
96
|
+
hover_filter_dropshadow: hoverFilterHasShadow,
|
|
97
|
+
source_glow_attr: sourceGlowAttr,
|
|
98
|
+
source_drop_shadow: sourceDropShadow,
|
|
99
|
+
source_filter_tween: sourceFilterTween,
|
|
100
|
+
};
|
|
101
|
+
const ok = Object.values(results).every(Boolean);
|
|
102
|
+
console.log(`${ok ? '✅' : '❌'} hub digit drop-shadow glow:`, JSON.stringify(results),
|
|
103
|
+
'\n rest:', JSON.stringify(restProbe),
|
|
104
|
+
'\n hover:', JSON.stringify(hoverProbe));
|
|
105
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* Round 477 verification: legend pin-ring (R181 always-mount stroke
|
|
2
|
+
* ring) gains filter: drop-shadow glow on isPinned. Extends R476's
|
|
3
|
+
* drop-shadow idiom from the hub-digit focal scope to the legend-
|
|
4
|
+
* row pin-state scope.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - at rest (no pin): every legend-pin-ring has data-legend-pin-
|
|
8
|
+
* ring-glow='false' AND computed filter === 'none' AND opacity=0
|
|
9
|
+
* - click a legend status row to pin: that ring flips to
|
|
10
|
+
* glow='true' + filter starts with 'drop-shadow' + opacity=1
|
|
11
|
+
* - other (non-pinned) rings stay at rest
|
|
12
|
+
* - source-file conditional wired
|
|
13
|
+
*/
|
|
14
|
+
import { chromium } from 'playwright';
|
|
15
|
+
import { readFileSync } from 'node:fs';
|
|
16
|
+
|
|
17
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
18
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
19
|
+
|
|
20
|
+
const browser = await chromium.launch({ headless: true });
|
|
21
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
22
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
23
|
+
await ctx.addInitScript(() => {
|
|
24
|
+
try {
|
|
25
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
26
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
27
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
28
|
+
} 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('a·1', 'working'), mk('a·2', 'idle'), mk('a·3', 'offline'),
|
|
41
|
+
] } });
|
|
42
|
+
});
|
|
43
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
44
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
45
|
+
|
|
46
|
+
const page = await ctx.newPage();
|
|
47
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
48
|
+
await page.waitForSelector('[data-legend-pin-ring]', { timeout: 15000 });
|
|
49
|
+
await page.waitForTimeout(500);
|
|
50
|
+
|
|
51
|
+
const readAll = () => page.evaluate(() => {
|
|
52
|
+
const rings = [...document.querySelectorAll('[data-legend-pin-ring]')];
|
|
53
|
+
return rings.map(r => {
|
|
54
|
+
const cs = getComputedStyle(r);
|
|
55
|
+
return {
|
|
56
|
+
key: r.getAttribute('data-legend-pin-ring'),
|
|
57
|
+
glow: r.getAttribute('data-legend-pin-ring-glow'),
|
|
58
|
+
pinned: r.getAttribute('data-legend-pin-ring-pinned'),
|
|
59
|
+
filter: cs.filter,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const restAll = await readAll();
|
|
65
|
+
// Click a legend row hitbox (R271 hitbox rect at y=row.y0-11..+11)
|
|
66
|
+
// Use data-legend-row-tinted as the hitbox handle — clicking it
|
|
67
|
+
// toggles pinnedStatus to its key.
|
|
68
|
+
const firstRow = await page.$('[data-legend-row-tinted]');
|
|
69
|
+
let pinnedAll = null;
|
|
70
|
+
if (firstRow) {
|
|
71
|
+
await firstRow.click();
|
|
72
|
+
await page.waitForTimeout(400);
|
|
73
|
+
pinnedAll = await readAll();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
77
|
+
const sourceGlowAttr = /data-legend-pin-ring-glow=\{isPinned/.test(src);
|
|
78
|
+
const sourceDropShadow = /drop-shadow\(0 0 3px \$\{row\.fill\}88\)/.test(src);
|
|
79
|
+
const sourceFilterTween = /opacity 150ms ease-out, filter 200ms ease-out/.test(src);
|
|
80
|
+
|
|
81
|
+
await browser.close();
|
|
82
|
+
|
|
83
|
+
const restCount = restAll.length;
|
|
84
|
+
const restAllFalse = restAll.every(r => r.glow === 'false' && r.filter === 'none');
|
|
85
|
+
const pinnedTarget = pinnedAll?.find(r => r.glow === 'true');
|
|
86
|
+
const pinnedHasDropShadow = pinnedTarget && /drop-shadow/.test(pinnedTarget.filter);
|
|
87
|
+
const pinnedOthersStill = pinnedAll
|
|
88
|
+
? pinnedAll.filter(r => r !== pinnedTarget).every(r => r.glow === 'false')
|
|
89
|
+
: false;
|
|
90
|
+
|
|
91
|
+
const results = {
|
|
92
|
+
rest_count_ge_3: restCount >= 3,
|
|
93
|
+
rest_all_glow_false: restAllFalse,
|
|
94
|
+
pinned_target_glow: pinnedTarget?.glow === 'true',
|
|
95
|
+
pinned_target_has_drop_shadow: pinnedHasDropShadow,
|
|
96
|
+
pinned_others_stay_rest: pinnedOthersStill,
|
|
97
|
+
source_glow_attr: sourceGlowAttr,
|
|
98
|
+
source_drop_shadow: sourceDropShadow,
|
|
99
|
+
source_filter_tween: sourceFilterTween,
|
|
100
|
+
};
|
|
101
|
+
const ok = Object.values(results).every(Boolean);
|
|
102
|
+
console.log(`${ok ? '✅' : '❌'} legend pin-ring drop-shadow glow:`, JSON.stringify(results),
|
|
103
|
+
'\n rest:', JSON.stringify(restAll),
|
|
104
|
+
'\n pinned target:', JSON.stringify(pinnedTarget));
|
|
105
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{keIPOvUO8vEU5r_MWSwId → wJxl4oP18MvCP4fry5nN7}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|