@sleep2agi/agent-network-dashboard 0.5.3-preview.220 → 0.5.3-preview.222
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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- 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 +2 -2
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +2 -2
- package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +2 -2
- package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +2 -2
- package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +2 -2
- package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- 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/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +2 -2
- package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/04ruiiu59mljf.css +2 -0
- package/.next/static/chunks/{090el2nj92~9k.js → 077~rg69qh5o3.js} +1 -1
- package/.next/static/chunks/{0ua3qnri0i81x.js → 07d7zy9wl4vk2.js} +1 -1
- package/.next/static/chunks/{0bdnkx3fvtw2t.js → 0kx76vrbr-92g.js} +2 -2
- package/.next/static/chunks/{0febdempmtc5e.js → 0ml5t76-h98oo.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +73 -2
- package/app/globals.css +52 -0
- package/package.json +1 -1
- package/scripts/topo-chrome-layout-trailer-breath-test.mjs +86 -0
- package/scripts/topo-chrome-nodesize-trailer-breath-test.mjs +86 -0
- package/.next/static/chunks/0jjd-epm-pvht.css +0 -2
- /package/.next/static/{Q5dzAC2O1le81YYmwsgi2 → O5UmllH_zXMSX1WZ4GxZw}/_buildManifest.js +0 -0
- /package/.next/static/{Q5dzAC2O1le81YYmwsgi2 → O5UmllH_zXMSX1WZ4GxZw}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{Q5dzAC2O1le81YYmwsgi2 → O5UmllH_zXMSX1WZ4GxZw}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.219"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].map(e=>(0,s.jsx)("a",{href:e.href,className:"rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,s.jsxs)("div",{className:"max-w-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,className:"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.221"],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":299,"timestamp":401239963752,"id":4,"parentId":1,"tags":{},"startTime":1779209212210,"traceId":"44aff18d95b25b22"},{"name":"load-custom-routes","duration":477,"timestamp":401239964225,"id":5,"parentId":1,"tags":{},"startTime":1779209212211,"traceId":"44aff18d95b25b22"},{"name":"create-dist-dir","duration":751,"timestamp":401239964743,"id":6,"parentId":1,"tags":{},"startTime":1779209212211,"traceId":"44aff18d95b25b22"},{"name":"clean","duration":36023,"timestamp":401239966192,"id":7,"parentId":1,"tags":{},"startTime":1779209212212,"traceId":"44aff18d95b25b22"},{"name":"discover-routes","duration":29154,"timestamp":401240082999,"id":8,"parentId":1,"tags":{},"startTime":1779209212329,"traceId":"44aff18d95b25b22"},{"name":"create-root-mapping","duration":164,"timestamp":401240112236,"id":9,"parentId":1,"tags":{},"startTime":1779209212359,"traceId":"44aff18d95b25b22"},{"name":"generate-route-types","duration":24466,"timestamp":401240115888,"id":10,"parentId":1,"tags":{},"startTime":1779209212362,"traceId":"44aff18d95b25b22"},{"name":"public-dir-conflict-check","duration":146,"timestamp":401240140498,"id":11,"parentId":1,"tags":{},"startTime":1779209212387,"traceId":"44aff18d95b25b22"},{"name":"generate-routes-manifest","duration":5153,"timestamp":401240140818,"id":12,"parentId":1,"tags":{},"startTime":1779209212387,"traceId":"44aff18d95b25b22"},{"name":"run-turbopack","duration":7366559,"timestamp":401240152180,"id":14,"parentId":1,"tags":{},"startTime":1779209212398,"traceId":"44aff18d95b25b22"},{"name":"turbopack-build-events","duration":115,"timestamp":401240489429,"id":15,"parentId":1,"tags":{},"startTime":1779209212736,"traceId":"44aff18d95b25b22"},{"name":"run-typescript","duration":11084261,"timestamp":401247527198,"id":16,"parentId":1,"tags":{},"startTime":1779209219773,"traceId":"44aff18d95b25b22"},{"name":"generate-required-server-files","duration":3780,"timestamp":401258613191,"id":18,"parentId":1,"tags":{},"startTime":1779209230859,"traceId":"44aff18d95b25b22"},{"name":"check-static-error-page","duration":15471,"timestamp":401258830942,"id":20,"parentId":19,"tags":{},"startTime":1779209231077,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":527169,"timestamp":401258849599,"id":65,"parentId":22,"tags":{},"startTime":1779209231096,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":542683,"timestamp":401258834263,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779209231081,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":615212,"timestamp":401258850931,"id":69,"parentId":28,"tags":{},"startTime":1779209231097,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":628262,"timestamp":401258837986,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779209231084,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":621671,"timestamp":401258851473,"id":72,"parentId":32,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":634402,"timestamp":401258838823,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779209231085,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":669693,"timestamp":401258851661,"id":73,"parentId":33,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":682456,"timestamp":401258838981,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779209231085,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":672426,"timestamp":401258849207,"id":64,"parentId":21,"tags":{},"startTime":1779209231095,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":689048,"timestamp":401258832631,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779209231079,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":670696,"timestamp":401258851405,"id":71,"parentId":30,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":683833,"timestamp":401258838330,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779209231085,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":687593,"timestamp":401258851747,"id":74,"parentId":34,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":700272,"timestamp":401258839155,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779209231085,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":691300,"timestamp":401258851796,"id":76,"parentId":36,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":703296,"timestamp":401258839860,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779209231086,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":700011,"timestamp":401258849749,"id":66,"parentId":25,"tags":{},"startTime":1779209231096,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":712319,"timestamp":401258837511,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779209231084,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":706058,"timestamp":401258851846,"id":79,"parentId":39,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":717593,"timestamp":401258840369,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":721629,"timestamp":401258851818,"id":77,"parentId":37,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":733434,"timestamp":401258840076,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779209231086,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":721950,"timestamp":401258851833,"id":78,"parentId":38,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":733587,"timestamp":401258840233,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":741706,"timestamp":401258851883,"id":82,"parentId":44,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":750621,"timestamp":401258843059,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779209231089,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":745160,"timestamp":401258851899,"id":83,"parentId":45,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":753913,"timestamp":401258843212,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779209231089,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":750129,"timestamp":401258850774,"id":68,"parentId":27,"tags":{},"startTime":1779209231097,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":763135,"timestamp":401258837831,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779209231084,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":751243,"timestamp":401258851908,"id":84,"parentId":46,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":759884,"timestamp":401258843324,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":751639,"timestamp":401258851860,"id":80,"parentId":40,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":763056,"timestamp":401258840498,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":753714,"timestamp":401258851869,"id":81,"parentId":42,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":764745,"timestamp":401258840899,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":756560,"timestamp":401258851933,"id":86,"parentId":48,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":764960,"timestamp":401258843579,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":756753,"timestamp":401258851921,"id":85,"parentId":47,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":765247,"timestamp":401258843460,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":759696,"timestamp":401258851942,"id":87,"parentId":49,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":768008,"timestamp":401258843710,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":762026,"timestamp":401258851776,"id":75,"parentId":35,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":774536,"timestamp":401258839317,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779209231086,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":762880,"timestamp":401258851954,"id":88,"parentId":50,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":774236,"timestamp":401258843817,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":753764,"timestamp":401258864472,"id":91,"parentId":31,"tags":{},"startTime":1779209231111,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":779764,"timestamp":401258838503,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779209231085,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":757565,"timestamp":401258866457,"id":93,"parentId":43,"tags":{},"startTime":1779209231113,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":782986,"timestamp":401258841081,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":760179,"timestamp":401258865271,"id":92,"parentId":41,"tags":{},"startTime":1779209231112,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":784879,"timestamp":401258840621,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779209231087,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":784191,"timestamp":401258849858,"id":67,"parentId":26,"tags":{},"startTime":1779209231096,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":796412,"timestamp":401258837691,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779209231084,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":764794,"timestamp":401258869473,"id":96,"parentId":53,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":789835,"timestamp":401258844483,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":789858,"timestamp":401258851967,"id":89,"parentId":51,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":797960,"timestamp":401258843924,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779209231090,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":791824,"timestamp":401258851234,"id":70,"parentId":29,"tags":{},"startTime":1779209231098,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":804942,"timestamp":401258838158,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779209231084,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":779106,"timestamp":401258869493,"id":98,"parentId":55,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":803929,"timestamp":401258844727,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":788001,"timestamp":401258869612,"id":101,"parentId":59,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":812062,"timestamp":401258845621,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779209231092,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":796336,"timestamp":401258869629,"id":102,"parentId":61,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":820082,"timestamp":401258846033,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779209231092,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":816388,"timestamp":401258859339,"id":90,"parentId":24,"tags":{},"startTime":1779209231106,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":840941,"timestamp":401258834851,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779209231081,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":811228,"timestamp":401258869460,"id":95,"parentId":52,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":836433,"timestamp":401258844319,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":815734,"timestamp":401258869640,"id":103,"parentId":62,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":839298,"timestamp":401258846137,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779209231092,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":820940,"timestamp":401258869431,"id":94,"parentId":23,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":855839,"timestamp":401258834583,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779209231081,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":788413,"timestamp":401258902096,"id":106,"parentId":57,"tags":{},"startTime":1779209231148,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":845458,"timestamp":401258845071,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":803467,"timestamp":401258887430,"id":105,"parentId":60,"tags":{},"startTime":1779209231134,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":845209,"timestamp":401258845740,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779209231092,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":861092,"timestamp":401258869648,"id":104,"parentId":63,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":884594,"timestamp":401258846235,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779209231093,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":864147,"timestamp":401258869517,"id":100,"parentId":58,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":888244,"timestamp":401258845475,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779209231092,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":868960,"timestamp":401258869504,"id":99,"parentId":56,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":893638,"timestamp":401258844865,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"is-page-static","duration":877731,"timestamp":401258869481,"id":97,"parentId":54,"tags":{},"startTime":1779209231116,"traceId":"44aff18d95b25b22"},{"name":"check-page","duration":902662,"timestamp":401258844593,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779209231091,"traceId":"44aff18d95b25b22"},{"name":"static-check","duration":917528,"timestamp":401258829769,"id":19,"parentId":1,"tags":{},"startTime":1779209231076,"traceId":"44aff18d95b25b22"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":305,"timestamp":402833430513,"id":4,"parentId":1,"tags":{},"startTime":1779210805677,"traceId":"f2b5d82fd322f75c"},{"name":"load-custom-routes","duration":654,"timestamp":402833430998,"id":5,"parentId":1,"tags":{},"startTime":1779210805677,"traceId":"f2b5d82fd322f75c"},{"name":"create-dist-dir","duration":805,"timestamp":402833431703,"id":6,"parentId":1,"tags":{},"startTime":1779210805678,"traceId":"f2b5d82fd322f75c"},{"name":"clean","duration":38368,"timestamp":402833433389,"id":7,"parentId":1,"tags":{},"startTime":1779210805680,"traceId":"f2b5d82fd322f75c"},{"name":"discover-routes","duration":10978,"timestamp":402833563451,"id":8,"parentId":1,"tags":{},"startTime":1779210805810,"traceId":"f2b5d82fd322f75c"},{"name":"create-root-mapping","duration":137,"timestamp":402833574515,"id":9,"parentId":1,"tags":{},"startTime":1779210805821,"traceId":"f2b5d82fd322f75c"},{"name":"generate-route-types","duration":36764,"timestamp":402833577162,"id":10,"parentId":1,"tags":{},"startTime":1779210805823,"traceId":"f2b5d82fd322f75c"},{"name":"public-dir-conflict-check","duration":138,"timestamp":402833614091,"id":11,"parentId":1,"tags":{},"startTime":1779210805860,"traceId":"f2b5d82fd322f75c"},{"name":"generate-routes-manifest","duration":5092,"timestamp":402833614387,"id":12,"parentId":1,"tags":{},"startTime":1779210805861,"traceId":"f2b5d82fd322f75c"},{"name":"run-turbopack","duration":6602138,"timestamp":402833625933,"id":14,"parentId":1,"tags":{},"startTime":1779210805872,"traceId":"f2b5d82fd322f75c"},{"name":"turbopack-build-events","duration":117,"timestamp":402833955267,"id":15,"parentId":1,"tags":{},"startTime":1779210806202,"traceId":"f2b5d82fd322f75c"},{"name":"run-typescript","duration":10300494,"timestamp":402840239955,"id":16,"parentId":1,"tags":{},"startTime":1779210812486,"traceId":"f2b5d82fd322f75c"},{"name":"generate-required-server-files","duration":3464,"timestamp":402850542086,"id":18,"parentId":1,"tags":{},"startTime":1779210822788,"traceId":"f2b5d82fd322f75c"},{"name":"check-static-error-page","duration":15224,"timestamp":402850763596,"id":20,"parentId":19,"tags":{},"startTime":1779210823010,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":500440,"timestamp":402850785462,"id":65,"parentId":22,"tags":{},"startTime":1779210823032,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":519141,"timestamp":402850766947,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779210823013,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":550835,"timestamp":402850785943,"id":69,"parentId":28,"tags":{},"startTime":1779210823032,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":566116,"timestamp":402850770773,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":555458,"timestamp":402850786515,"id":72,"parentId":32,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":570465,"timestamp":402850771615,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779210823018,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":586644,"timestamp":402850786678,"id":73,"parentId":33,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":601653,"timestamp":402850771772,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779210823018,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":589755,"timestamp":402850785731,"id":67,"parentId":26,"tags":{},"startTime":1779210823032,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":605083,"timestamp":402850770475,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":597172,"timestamp":402850786760,"id":74,"parentId":34,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":612102,"timestamp":402850771926,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779210823018,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":609526,"timestamp":402850786809,"id":76,"parentId":36,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":623749,"timestamp":402850772682,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":610850,"timestamp":402850786788,"id":75,"parentId":35,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":625594,"timestamp":402850772109,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779210823018,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":612468,"timestamp":402850786271,"id":70,"parentId":29,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":627877,"timestamp":402850770920,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":624820,"timestamp":402850784961,"id":64,"parentId":21,"tags":{},"startTime":1779210823031,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":644526,"timestamp":402850765309,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779210823012,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":624035,"timestamp":402850786860,"id":78,"parentId":38,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":638012,"timestamp":402850772937,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":624389,"timestamp":402850786841,"id":77,"parentId":37,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":638437,"timestamp":402850772838,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":627166,"timestamp":402850786454,"id":71,"parentId":30,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":642535,"timestamp":402850771127,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":632215,"timestamp":402850786911,"id":82,"parentId":44,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":646589,"timestamp":402850773714,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779210823020,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":633604,"timestamp":402850786925,"id":83,"parentId":45,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":646777,"timestamp":402850773796,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779210823020,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":637350,"timestamp":402850786941,"id":84,"parentId":46,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":650494,"timestamp":402850773860,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779210823020,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":639355,"timestamp":402850786900,"id":81,"parentId":42,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":652906,"timestamp":402850773423,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779210823020,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":645230,"timestamp":402850785838,"id":68,"parentId":27,"tags":{},"startTime":1779210823032,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":660491,"timestamp":402850770626,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":644298,"timestamp":402850786959,"id":85,"parentId":47,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":656002,"timestamp":402850775285,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":644453,"timestamp":402850786970,"id":86,"parentId":48,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":655981,"timestamp":402850775479,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":646641,"timestamp":402850785623,"id":66,"parentId":25,"tags":{},"startTime":1779210823032,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":662052,"timestamp":402850770252,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779210823017,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":638492,"timestamp":402850799975,"id":91,"parentId":31,"tags":{},"startTime":1779210823046,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":667229,"timestamp":402850771279,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779210823018,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":640401,"timestamp":402850798428,"id":90,"parentId":24,"tags":{},"startTime":1779210823045,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":671271,"timestamp":402850767593,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779210823014,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":656594,"timestamp":402850786984,"id":87,"parentId":49,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":668011,"timestamp":402850775613,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":665267,"timestamp":402850786871,"id":79,"parentId":39,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":679164,"timestamp":402850773021,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":662125,"timestamp":402850790944,"id":89,"parentId":51,"tags":{},"startTime":1779210823037,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":677344,"timestamp":402850775773,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":666461,"timestamp":402850786999,"id":88,"parentId":50,"tags":{},"startTime":1779210823037,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":677809,"timestamp":402850775687,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":645125,"timestamp":402850811349,"id":93,"parentId":43,"tags":{},"startTime":1779210823058,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":682991,"timestamp":402850773521,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779210823020,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":690226,"timestamp":402850800901,"id":92,"parentId":41,"tags":{},"startTime":1779210823047,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":717991,"timestamp":402850773211,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":681565,"timestamp":402850822210,"id":94,"parentId":23,"tags":{},"startTime":1779210823068,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":736576,"timestamp":402850767289,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779210823014,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":690521,"timestamp":402850822355,"id":100,"parentId":58,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":735608,"timestamp":402850777336,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779210823024,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":690869,"timestamp":402850822291,"id":96,"parentId":53,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":736873,"timestamp":402850776334,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779210823023,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":695435,"timestamp":402850822274,"id":95,"parentId":52,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":741596,"timestamp":402850776192,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779210823022,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":697616,"timestamp":402850822316,"id":98,"parentId":55,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":743393,"timestamp":402850776589,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779210823023,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":697667,"timestamp":402850822487,"id":101,"parentId":59,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":742627,"timestamp":402850777566,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779210823024,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":702551,"timestamp":402850822512,"id":102,"parentId":61,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":746895,"timestamp":402850778212,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779210823024,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":738318,"timestamp":402850786885,"id":80,"parentId":40,"tags":{},"startTime":1779210823033,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":752116,"timestamp":402850773119,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779210823019,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":702999,"timestamp":402850822536,"id":104,"parentId":63,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":747012,"timestamp":402850778554,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779210823025,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":703481,"timestamp":402850822301,"id":97,"parentId":54,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":749354,"timestamp":402850776453,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779210823023,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":658437,"timestamp":402850869032,"id":106,"parentId":57,"tags":{},"startTime":1779210823115,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":750619,"timestamp":402850776882,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779210823023,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":689456,"timestamp":402850838654,"id":105,"parentId":60,"tags":{},"startTime":1779210823085,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":750393,"timestamp":402850777749,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779210823024,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":709527,"timestamp":402850822526,"id":103,"parentId":62,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":753705,"timestamp":402850778384,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779210823025,"traceId":"f2b5d82fd322f75c"},{"name":"is-page-static","duration":722406,"timestamp":402850822331,"id":99,"parentId":56,"tags":{},"startTime":1779210823069,"traceId":"f2b5d82fd322f75c"},{"name":"check-page","duration":768057,"timestamp":402850776724,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779210823023,"traceId":"f2b5d82fd322f75c"},{"name":"static-check","duration":782421,"timestamp":402850762400,"id":19,"parentId":1,"tags":{},"startTime":1779210823009,"traceId":"f2b5d82fd322f75c"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":468,"timestamp":402851554499,"id":108,"parentId":1,"tags":{},"startTime":1779210823801,"traceId":"f2b5d82fd322f75c"},{"name":"load-dotenv","duration":48,"timestamp":402851565615,"id":111,"parentId":110,"tags":{},"startTime":1779210823812,"traceId":"f2b5d82fd322f75c"},{"name":"run-export-path-map","duration":515,"timestamp":402851568086,"id":112,"parentId":110,"tags":{},"startTime":1779210823814,"traceId":"f2b5d82fd322f75c"},{"name":"next-export","duration":639294,"timestamp":402851564407,"id":110,"parentId":1,"tags":{},"startTime":1779210823811,"traceId":"f2b5d82fd322f75c"},{"name":"move-exported-app-not-found-","duration":594,"timestamp":402852207911,"id":113,"parentId":109,"tags":{},"startTime":1779210824454,"traceId":"f2b5d82fd322f75c"},{"name":"move-exported-app-global-error-","duration":462,"timestamp":402852208609,"id":114,"parentId":109,"tags":{},"startTime":1779210824455,"traceId":"f2b5d82fd322f75c"},{"name":"static-generation","duration":652780,"timestamp":402851558411,"id":109,"parentId":1,"tags":{},"startTime":1779210823805,"traceId":"f2b5d82fd322f75c"},{"name":"write-routes-manifest","duration":421,"timestamp":402852211454,"id":115,"parentId":1,"tags":{},"startTime":1779210824458,"traceId":"f2b5d82fd322f75c"},{"name":"print-tree-view","duration":3887,"timestamp":402852229971,"id":116,"parentId":1,"tags":{},"startTime":1779210824476,"traceId":"f2b5d82fd322f75c"},{"name":"write-route-bundle-stats","duration":13530,"timestamp":402852233895,"id":117,"parentId":1,"tags":{},"startTime":1779210824480,"traceId":"f2b5d82fd322f75c"},{"name":"telemetry-flush","duration":31228,"timestamp":402852247471,"id":118,"parentId":1,"tags":{},"startTime":1779210824494,"traceId":"f2b5d82fd322f75c"},{"name":"next-build","duration":18902514,"timestamp":402833376222,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779210805622,"traceId":"f2b5d82fd322f75c"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":6602138,"timestamp":402833625933,"id":14,"parentId":1,"tags":{},"startTime":1779210805872,"traceId":"f2b5d82fd322f75c"},{"name":"turbopack-build-events","duration":117,"timestamp":402833955267,"id":15,"parentId":1,"tags":{},"startTime":1779210806202,"traceId":"f2b5d82fd322f75c"},{"name":"run-typescript","duration":10300494,"timestamp":402840239955,"id":16,"parentId":1,"tags":{},"startTime":1779210812486,"traceId":"f2b5d82fd322f75c"},{"name":"static-check","duration":782421,"timestamp":402850762400,"id":19,"parentId":1,"tags":{},"startTime":1779210823009,"traceId":"f2b5d82fd322f75c"},{"name":"static-generation","duration":652780,"timestamp":402851558411,"id":109,"parentId":1,"tags":{},"startTime":1779210823805,"traceId":"f2b5d82fd322f75c"},{"name":"telemetry-flush","duration":31228,"timestamp":402852247471,"id":118,"parentId":1,"tags":{},"startTime":1779210824494,"traceId":"f2b5d82fd322f75c"},{"name":"next-build","duration":18902514,"timestamp":402833376222,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779210805622,"traceId":"f2b5d82fd322f75c"}]
|
|
@@ -2310,13 +2310,59 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2310
2310
|
inner buttons' bg-cyan-500/15 tints; no layout shift.
|
|
2311
2311
|
R268 border-color + 200ms transition + R329 mr-0.5 +
|
|
2312
2312
|
data-topo-chrome-layout-trailer all preserved. */}
|
|
2313
|
+
{/* Round 707 / Loop — chrome Layout wrapper joins the
|
|
2314
|
+
respiratory family at 17 s. Extends chrome strip from
|
|
2315
|
+
single-anchor (R703 zoom-level 9 s, the chrome's only
|
|
2316
|
+
data display) to a 2-anchor chrome respiratory voice:
|
|
2317
|
+
9 s zoom-level readout (R703 — data tier)
|
|
2318
|
+
17 s Layout wrapper envelope (R707 — control tier)
|
|
2319
|
+
The two chrome anchors occupy DISTINCT functional tiers
|
|
2320
|
+
(data display vs control group), so distinct cadences
|
|
2321
|
+
read as different roles rather than competing rhythms.
|
|
2322
|
+
|
|
2323
|
+
17 s is prime → coprime with every other cadence in
|
|
2324
|
+
the rolodex (3/4/5/6/7/8/9/10/11/13/15). Never phase-
|
|
2325
|
+
locks with any other anchor. New slowest tier among the
|
|
2326
|
+
HTML chrome respiratory anchors (zoom-level was 9 s;
|
|
2327
|
+
the slower 13 s and 15 s tiers are SVG-based on the
|
|
2328
|
+
canvas-brand-pair envelopes).
|
|
2329
|
+
|
|
2330
|
+
Tighter alpha range (0.94 ↔ 1, ~6%) — tightest yet,
|
|
2331
|
+
looser than the chrome zoom-level (9 s at 15%) but
|
|
2332
|
+
tighter than the title-block envelope (11 s at 8%).
|
|
2333
|
+
The chrome Layout buttons are interactive controls
|
|
2334
|
+
with active-state cyan tint; even ~10% dimming on the
|
|
2335
|
+
inner active button color would feel jarring. 6% =
|
|
2336
|
+
"barely-perceptible aliveness" on a control group.
|
|
2337
|
+
|
|
2338
|
+
Hover gate via CSS `:has(button:hover)` — when user
|
|
2339
|
+
hovers any inner Ring/Grid button, the wrapper's R697
|
|
2340
|
+
halo (cyan filter) takes precedence visually; pause the
|
|
2341
|
+
breath simultaneously via `:has(button:hover)` →
|
|
2342
|
+
animation: none so the halo reads crisp without
|
|
2343
|
+
underlying alpha drift. Sibling pattern to R703 hover
|
|
2344
|
+
data-attr gate and R704/R705 recede gates — third
|
|
2345
|
+
gate-off mechanism in the family vocabulary.
|
|
2346
|
+
|
|
2347
|
+
Rolodex now 14 anchors, 12-tier ladder:
|
|
2348
|
+
3 s row hot · 4 s hub idle · 5 s brand logo
|
|
2349
|
+
6 s watermark text · 6 s kicker · 7 s crescent inner
|
|
2350
|
+
8 s recent title · 8 s legend title
|
|
2351
|
+
9 s zoom-level readout · 10 s H2
|
|
2352
|
+
11 s title-block envelope · 13 s crescent wrapper envelope
|
|
2353
|
+
15 s watermark wrapper envelope
|
|
2354
|
+
17 s Layout wrapper ← this round
|
|
2355
|
+
|
|
2356
|
+
data-topo-chrome-layout-trailer-breath attr surfaces
|
|
2357
|
+
the cadence for tests. */}
|
|
2313
2358
|
<div
|
|
2314
|
-
className="mr-0.5 inline-flex rounded-lg border overflow-hidden"
|
|
2359
|
+
className="anet-topo-chrome-layout-trailer-breath mr-0.5 inline-flex rounded-lg border overflow-hidden"
|
|
2315
2360
|
style={{ borderColor: pal.containerBorder, transition: 'border-color 200ms ease-out' }}
|
|
2316
2361
|
role="group"
|
|
2317
2362
|
aria-label="Topology layout"
|
|
2318
2363
|
data-topo-chrome-layout-trailer
|
|
2319
2364
|
data-topo-chrome-layout-radius="rounded-lg"
|
|
2365
|
+
data-topo-chrome-layout-trailer-breath="17s"
|
|
2320
2366
|
/* R697 — wrapper-level multi-layer halo on inner button hover
|
|
2321
2367
|
(via CSS :has() in globals.css). 53rd anchor in family. */
|
|
2322
2368
|
data-topo-chrome-wrapper-halo-family="layout"
|
|
@@ -16193,8 +16239,32 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
16193
16239
|
hierarchy: 'segmented control container' (rounded-lg)
|
|
16194
16240
|
vs 'standalone button' (rounded-md). Pure paint change,
|
|
16195
16241
|
no layout shift. */}
|
|
16242
|
+
{/* Round 708 / Loop — chrome nodeSize wrapper joins the
|
|
16243
|
+
respiratory family at 19 s, mirror to R707 Layout wrapper.
|
|
16244
|
+
Closes 2 of the 3 chrome wrappers (Layout 17s / nodeSize
|
|
16245
|
+
19s); zoom wrapper still single-voiced. Coprime ladder
|
|
16246
|
+
forms across the chrome wrapper trio:
|
|
16247
|
+
R707 Layout wrapper 17 s
|
|
16248
|
+
R708 nodeSize wrapper 19 s ← this round
|
|
16249
|
+
future zoom wrapper 23 s ?
|
|
16250
|
+
All primes coprime with all other rolodex cadences and
|
|
16251
|
+
with each other.
|
|
16252
|
+
|
|
16253
|
+
Pattern parallel to canvas-brand-pair (R704/R705) coprime
|
|
16254
|
+
envelope-per-member: chrome strip control wrappers each
|
|
16255
|
+
get their own prime cadence. Unlike canvas-brand-pair
|
|
16256
|
+
(which had ONE inner element per envelope), chrome
|
|
16257
|
+
wrappers have MULTIPLE inner buttons (Ring/Grid for
|
|
16258
|
+
Layout, S/M/L for nodeSize) — wrappers signal "control
|
|
16259
|
+
group is alive"; inner buttons signal their own R674/R675
|
|
16260
|
+
hover-halo when interacted.
|
|
16261
|
+
|
|
16262
|
+
Same alpha (0.94 ↔ 1, ~6%) + same :has(button:hover)
|
|
16263
|
+
gate as R707 — consistent control-tier rationale across
|
|
16264
|
+
the chrome wrapper trio. Coprime cadence selection gives
|
|
16265
|
+
the chrome strip its own distinct rhythm-of-control. */}
|
|
16196
16266
|
<div
|
|
16197
|
-
className="flex items-center rounded-lg border overflow-hidden"
|
|
16267
|
+
className="anet-topo-chrome-fleet-group-trailer-breath flex items-center rounded-lg border overflow-hidden"
|
|
16198
16268
|
data-topo-chrome-nodesize-radius="rounded-lg"
|
|
16199
16269
|
style={{
|
|
16200
16270
|
background: pal.legendBox.fill,
|
|
@@ -16204,6 +16274,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
16204
16274
|
role="group"
|
|
16205
16275
|
aria-label="Node size"
|
|
16206
16276
|
data-topo-chrome-fleet-group-trailer
|
|
16277
|
+
data-topo-chrome-fleet-group-trailer-breath="19s"
|
|
16207
16278
|
/* R697 sibling — wrapper-level has-hover halo (see globals.css). */
|
|
16208
16279
|
data-topo-chrome-wrapper-halo-family="nodesize"
|
|
16209
16280
|
>
|
package/app/globals.css
CHANGED
|
@@ -1415,6 +1415,58 @@ body {
|
|
|
1415
1415
|
.anet-topo-title-block-envelope-breath { animation: none; }
|
|
1416
1416
|
}
|
|
1417
1417
|
|
|
1418
|
+
/* Round 707 — chrome Layout wrapper at-rest breath at 17 s. Slowest tier
|
|
1419
|
+
among HTML chrome respiratory anchors (sibling to R703 zoom-level 9 s
|
|
1420
|
+
in the chrome strip's data tier; this 17 s lands in the chrome strip's
|
|
1421
|
+
control tier). 17 is prime → coprime with every other cadence in the
|
|
1422
|
+
rolodex (3/4/5/6/7/8/9/10/11/13/15). Never phase-locks with any other
|
|
1423
|
+
anchor.
|
|
1424
|
+
|
|
1425
|
+
Tightest alpha range yet (0.94 ↔ 1, ~6%) — the Layout buttons are
|
|
1426
|
+
interactive controls with active-state cyan tint; even ~10% dimming
|
|
1427
|
+
on the inner button color would feel jarring. 6% = "barely-perceptible
|
|
1428
|
+
aliveness" on a control group.
|
|
1429
|
+
|
|
1430
|
+
Hover gate via :has() selector — when user hovers any inner Ring/Grid
|
|
1431
|
+
button, the R697 wrapper-level halo (cyan filter) takes precedence;
|
|
1432
|
+
animation: none on hover pauses the breath so the halo reads crisp
|
|
1433
|
+
without underlying alpha drift. Third gate-off mechanism in the family
|
|
1434
|
+
vocabulary, sibling to R703 hover data-attr gate + R704/R705 recede
|
|
1435
|
+
gates. */
|
|
1436
|
+
@keyframes anet-topo-chrome-layout-trailer-breath-kf {
|
|
1437
|
+
0%, 100% { opacity: 1; }
|
|
1438
|
+
50% { opacity: 0.94; }
|
|
1439
|
+
}
|
|
1440
|
+
.anet-topo-chrome-layout-trailer-breath {
|
|
1441
|
+
animation: anet-topo-chrome-layout-trailer-breath-kf 17s ease-in-out infinite;
|
|
1442
|
+
}
|
|
1443
|
+
.anet-topo-chrome-layout-trailer-breath:has(button:hover) {
|
|
1444
|
+
animation: none;
|
|
1445
|
+
}
|
|
1446
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1447
|
+
.anet-topo-chrome-layout-trailer-breath { animation: none; }
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
/* Round 708 — chrome nodeSize wrapper at-rest breath at 19 s. Sibling
|
|
1451
|
+
to R707 Layout 17 s — both chrome control-tier wrappers carry the
|
|
1452
|
+
same alpha range (6%) + the same :has(button:hover) gate. Two coprime
|
|
1453
|
+
prime cadences (17, 19) form a chrome-control respiratory pair,
|
|
1454
|
+
pattern-parallel to canvas-brand-pair (R704/R705) coprime envelope
|
|
1455
|
+
pair. */
|
|
1456
|
+
@keyframes anet-topo-chrome-fleet-group-trailer-breath-kf {
|
|
1457
|
+
0%, 100% { opacity: 1; }
|
|
1458
|
+
50% { opacity: 0.94; }
|
|
1459
|
+
}
|
|
1460
|
+
.anet-topo-chrome-fleet-group-trailer-breath {
|
|
1461
|
+
animation: anet-topo-chrome-fleet-group-trailer-breath-kf 19s ease-in-out infinite;
|
|
1462
|
+
}
|
|
1463
|
+
.anet-topo-chrome-fleet-group-trailer-breath:has(button:hover) {
|
|
1464
|
+
animation: none;
|
|
1465
|
+
}
|
|
1466
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1467
|
+
.anet-topo-chrome-fleet-group-trailer-breath { animation: none; }
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1418
1470
|
/* ─────────────────────────────────────────────────────────────────────
|
|
1419
1471
|
Round 29 — prefers-reduced-motion a11y sweep
|
|
1420
1472
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* Round 707 — chrome Layout wrapper at-rest breath at 17s. Slowest tier
|
|
2
|
+
* among HTML chrome respiratory anchors. Sibling to R703 zoom-level 9s
|
|
3
|
+
* in chrome strip's data tier; this 17s lands in chrome's control tier.
|
|
4
|
+
* Tightest alpha range (0.94↔1, ~6%) — control group should not flicker.
|
|
5
|
+
* Hover gate via :has(button:hover) — R697 halo takes precedence.
|
|
6
|
+
*/
|
|
7
|
+
import { chromium } from 'playwright';
|
|
8
|
+
import { readFileSync } from 'node:fs';
|
|
9
|
+
|
|
10
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
11
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
12
|
+
|
|
13
|
+
const browser = await chromium.launch({ headless: true });
|
|
14
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
15
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
16
|
+
await ctx.addInitScript(() => {
|
|
17
|
+
try {
|
|
18
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
19
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
20
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
21
|
+
} catch {}
|
|
22
|
+
});
|
|
23
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
24
|
+
const r = await route.fetch();
|
|
25
|
+
const b = await r.json();
|
|
26
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
27
|
+
const mk = (alias) => ({
|
|
28
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
29
|
+
network_id: nid, project_dir: null,
|
|
30
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
31
|
+
});
|
|
32
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
|
|
33
|
+
});
|
|
34
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
35
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
36
|
+
const page = await ctx.newPage();
|
|
37
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
38
|
+
await page.waitForSelector('[data-topo-chrome-layout-trailer]', { timeout: 15000, state: 'attached' });
|
|
39
|
+
await page.waitForTimeout(300);
|
|
40
|
+
|
|
41
|
+
const runtimeState = await page.evaluate(() => {
|
|
42
|
+
const wrap = document.querySelector('[data-topo-chrome-layout-trailer]');
|
|
43
|
+
if (!wrap) return null;
|
|
44
|
+
const cs = getComputedStyle(wrap);
|
|
45
|
+
return {
|
|
46
|
+
has_class: wrap.classList.contains('anet-topo-chrome-layout-trailer-breath'),
|
|
47
|
+
breath_attr: wrap.getAttribute('data-topo-chrome-layout-trailer-breath'),
|
|
48
|
+
anim_name: cs.animationName,
|
|
49
|
+
anim_duration: cs.animationDuration,
|
|
50
|
+
anim_iter: cs.animationIterationCount,
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await browser.close();
|
|
55
|
+
|
|
56
|
+
const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
|
|
57
|
+
const tsxSrc = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
58
|
+
|
|
59
|
+
const cssKeyframes = /@keyframes anet-topo-chrome-layout-trailer-breath-kf\s*\{[\s\S]*?0%, 100%\s*\{\s*opacity:\s*1;\s*\}[\s\S]*?50%\s*\{\s*opacity:\s*0\.94;/.test(cssSrc);
|
|
60
|
+
const cssRule = /\.anet-topo-chrome-layout-trailer-breath\s*\{[\s\S]*?animation:\s*anet-topo-chrome-layout-trailer-breath-kf\s+17s\s+ease-in-out\s+infinite/.test(cssSrc);
|
|
61
|
+
const cssHoverGate = /\.anet-topo-chrome-layout-trailer-breath:has\(button:hover\)\s*\{\s*animation:\s*none/.test(cssSrc);
|
|
62
|
+
const cssReducedMotion = /prefers-reduced-motion:\s*reduce\s*\)\s*\{\s*\.anet-topo-chrome-layout-trailer-breath\s*\{\s*animation:\s*none/.test(cssSrc);
|
|
63
|
+
const tsxClass = /anet-topo-chrome-layout-trailer-breath mr-0\.5/.test(tsxSrc);
|
|
64
|
+
const tsxAttr = /data-topo-chrome-layout-trailer-breath="17s"/.test(tsxSrc);
|
|
65
|
+
|
|
66
|
+
const runtimeAnim = runtimeState?.anim_name === 'anet-topo-chrome-layout-trailer-breath-kf' || runtimeState?.anim_name === 'none';
|
|
67
|
+
const runtimeDuration = runtimeState?.anim_duration === '17s' || runtimeState?.anim_name === 'none';
|
|
68
|
+
|
|
69
|
+
const results = {
|
|
70
|
+
wrapper_present: !!runtimeState,
|
|
71
|
+
has_breath_class: runtimeState?.has_class === true,
|
|
72
|
+
breath_attr_17s: runtimeState?.breath_attr === '17s',
|
|
73
|
+
runtime_anim_ok: runtimeAnim,
|
|
74
|
+
runtime_duration_ok: runtimeDuration,
|
|
75
|
+
css_keyframes: cssKeyframes,
|
|
76
|
+
css_rule: cssRule,
|
|
77
|
+
css_hover_gate: cssHoverGate,
|
|
78
|
+
css_reduced_motion: cssReducedMotion,
|
|
79
|
+
tsx_class: tsxClass,
|
|
80
|
+
tsx_breath_attr: tsxAttr,
|
|
81
|
+
};
|
|
82
|
+
const ok = Object.values(results).every(Boolean);
|
|
83
|
+
console.log(`${ok ? '✅' : '❌'} R707 chrome Layout wrapper at-rest breath (17s prime, :has hover-gated, tightest alpha 6%):`,
|
|
84
|
+
JSON.stringify(results, null, 2),
|
|
85
|
+
`\n runtime: ${JSON.stringify(runtimeState)}`);
|
|
86
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* Round 708 — chrome nodeSize wrapper at-rest breath at 19s. Mirror to
|
|
2
|
+
* R707 Layout 17s — both chrome control-tier wrappers carry the same
|
|
3
|
+
* alpha (6%) + :has(button:hover) gate. Two coprime prime cadences
|
|
4
|
+
* (17, 19) form a chrome-control respiratory pair, pattern-parallel
|
|
5
|
+
* to canvas-brand-pair (R704/R705) coprime envelope pair.
|
|
6
|
+
*/
|
|
7
|
+
import { chromium } from 'playwright';
|
|
8
|
+
import { readFileSync } from 'node:fs';
|
|
9
|
+
|
|
10
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
11
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
12
|
+
|
|
13
|
+
const browser = await chromium.launch({ headless: true });
|
|
14
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
15
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
16
|
+
await ctx.addInitScript(() => {
|
|
17
|
+
try {
|
|
18
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
19
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
20
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
21
|
+
} catch {}
|
|
22
|
+
});
|
|
23
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
24
|
+
const r = await route.fetch();
|
|
25
|
+
const b = await r.json();
|
|
26
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
27
|
+
const mk = (alias) => ({
|
|
28
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
29
|
+
network_id: nid, project_dir: null,
|
|
30
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
31
|
+
});
|
|
32
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
|
|
33
|
+
});
|
|
34
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
35
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
36
|
+
const page = await ctx.newPage();
|
|
37
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
38
|
+
await page.waitForSelector('[data-topo-chrome-fleet-group-trailer]', { timeout: 15000, state: 'attached' });
|
|
39
|
+
await page.waitForTimeout(300);
|
|
40
|
+
|
|
41
|
+
const runtimeState = await page.evaluate(() => {
|
|
42
|
+
const wrap = document.querySelector('[data-topo-chrome-fleet-group-trailer]');
|
|
43
|
+
if (!wrap) return null;
|
|
44
|
+
const cs = getComputedStyle(wrap);
|
|
45
|
+
return {
|
|
46
|
+
has_class: wrap.classList.contains('anet-topo-chrome-fleet-group-trailer-breath'),
|
|
47
|
+
breath_attr: wrap.getAttribute('data-topo-chrome-fleet-group-trailer-breath'),
|
|
48
|
+
anim_name: cs.animationName,
|
|
49
|
+
anim_duration: cs.animationDuration,
|
|
50
|
+
anim_iter: cs.animationIterationCount,
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await browser.close();
|
|
55
|
+
|
|
56
|
+
const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
|
|
57
|
+
const tsxSrc = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
58
|
+
|
|
59
|
+
const cssKeyframes = /@keyframes anet-topo-chrome-fleet-group-trailer-breath-kf\s*\{[\s\S]*?0%, 100%\s*\{\s*opacity:\s*1;\s*\}[\s\S]*?50%\s*\{\s*opacity:\s*0\.94;/.test(cssSrc);
|
|
60
|
+
const cssRule = /\.anet-topo-chrome-fleet-group-trailer-breath\s*\{[\s\S]*?animation:\s*anet-topo-chrome-fleet-group-trailer-breath-kf\s+19s\s+ease-in-out\s+infinite/.test(cssSrc);
|
|
61
|
+
const cssHoverGate = /\.anet-topo-chrome-fleet-group-trailer-breath:has\(button:hover\)\s*\{\s*animation:\s*none/.test(cssSrc);
|
|
62
|
+
const cssReducedMotion = /prefers-reduced-motion:\s*reduce\s*\)\s*\{\s*\.anet-topo-chrome-fleet-group-trailer-breath\s*\{\s*animation:\s*none/.test(cssSrc);
|
|
63
|
+
const tsxClass = /anet-topo-chrome-fleet-group-trailer-breath flex items-center/.test(tsxSrc);
|
|
64
|
+
const tsxAttr = /data-topo-chrome-fleet-group-trailer-breath="19s"/.test(tsxSrc);
|
|
65
|
+
|
|
66
|
+
const runtimeAnim = runtimeState?.anim_name === 'anet-topo-chrome-fleet-group-trailer-breath-kf' || runtimeState?.anim_name === 'none';
|
|
67
|
+
const runtimeDuration = runtimeState?.anim_duration === '19s' || runtimeState?.anim_name === 'none';
|
|
68
|
+
|
|
69
|
+
const results = {
|
|
70
|
+
wrapper_present: !!runtimeState,
|
|
71
|
+
has_breath_class: runtimeState?.has_class === true,
|
|
72
|
+
breath_attr_19s: runtimeState?.breath_attr === '19s',
|
|
73
|
+
runtime_anim_ok: runtimeAnim,
|
|
74
|
+
runtime_duration_ok: runtimeDuration,
|
|
75
|
+
css_keyframes: cssKeyframes,
|
|
76
|
+
css_rule: cssRule,
|
|
77
|
+
css_hover_gate: cssHoverGate,
|
|
78
|
+
css_reduced_motion: cssReducedMotion,
|
|
79
|
+
tsx_class: tsxClass,
|
|
80
|
+
tsx_breath_attr: tsxAttr,
|
|
81
|
+
};
|
|
82
|
+
const ok = Object.values(results).every(Boolean);
|
|
83
|
+
console.log(`${ok ? '✅' : '❌'} R708 chrome nodeSize wrapper at-rest breath (19s prime, :has hover-gated, mirror to R707 Layout):`,
|
|
84
|
+
JSON.stringify(results, null, 2),
|
|
85
|
+
`\n runtime: ${JSON.stringify(runtimeState)}`);
|
|
86
|
+
process.exit(ok ? 0 : 1);
|