@sleep2agi/agent-network-dashboard 0.5.3-preview.246 → 0.5.3-preview.248
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +5 -5
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +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 +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0d7szy1lomzn2.js → 0adnbw9pxq48g.js} +1 -1
- package/.next/static/chunks/0t0t4r1u_qyma.js +4 -0
- package/.next/static/chunks/{0u-0t5fzlf2-2.js → 13vxyg9~ykurt.js} +1 -1
- package/.next/static/chunks/{1352xrbdg9w3k.js → 14lnrrg05z73_.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +38 -0
- package/package.json +1 -1
- package/scripts/topo-a11y-titles-catalog-test.mjs +6 -3
- package/scripts/topo-canvas-desc-a11y-test.mjs +87 -0
- package/scripts/topo-hub-a11y-title-test.mjs +95 -0
- package/.next/static/chunks/09lus9cds1wwz.js +0 -4
- /package/.next/static/{k0qtZQ0AG3AV37iVoujsy → H3NkUl5CCgWLQJefNFcti}/_buildManifest.js +0 -0
- /package/.next/static/{k0qtZQ0AG3AV37iVoujsy → H3NkUl5CCgWLQJefNFcti}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{k0qtZQ0AG3AV37iVoujsy → H3NkUl5CCgWLQJefNFcti}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.245"],70286)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98025,e=>{"use strict";e.s(["SESSION_STATUS_CHIP_CLASS",0,{working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"},"SESSION_STATUS_TEXT_CLASS",0,{working:"text-green-400",idle:"text-blue-400",blocked:"text-yellow-400",error:"text-red-400",offline:"text-gray-500"},"STATUS_BAR_CLASS",0,{created:"bg-gray-500",delivered:"bg-blue-500",acked:"bg-cyan-500",running:"bg-green-500",replied:"bg-purple-500",closed:"bg-gray-600",failed:"bg-red-500",cancelled:"bg-yellow-500",expired:"bg-orange-500"},"STATUS_CHIP_CLASS",0,{created:"bg-gray-500/10 text-gray-400 border-gray-500/20",delivered:"bg-blue-500/10 text-blue-300 border-blue-500/20",acked:"bg-cyan-500/10 text-cyan-300 border-cyan-500/20",running:"bg-green-500/10 text-green-300 border-green-500/20",replied:"bg-purple-500/10 text-purple-300 border-purple-500/20",closed:"bg-gray-500/10 text-gray-500 border-gray-500/20",failed:"bg-red-500/10 text-red-300 border-red-500/20",cancelled:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",expired:"bg-orange-500/10 text-orange-300 border-orange-500/20"},"STATUS_DOT_HEX",0,{created:"#9ca3af",delivered:"#60a5fa",acked:"#22d3ee",running:"#4ade80",replied:"#a78bfa",closed:"#6b7280",failed:"#f87171",cancelled:"#facc15",expired:"#fb923c"},"TASK_STATUSES",0,["created","delivered","acked","running","replied","closed","failed","cancelled","expired"]])},3479,59746,e=>{"use strict";function t(e){if(!e)return null;let t=Date.parse(e.includes("T")?e:e.replace(" ","T")+"Z");return Number.isFinite(t)?t:null}function r(e){let r=t(e);if(null===r)return null;let s=Math.floor((Date.now()-r)/1e3);return s<0?"just now":s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}e.s(["parseHubTime",0,t,"relativeAgo",0,r],59746),e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),r=Math.floor(e%3600/60);return t>0?`${t}h ${r}m`:`${r}m`},"previewContent",0,function(e){return e&&e.replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/\s+/g," ").trim()||"--"},"timeAgo",0,function(e){return r(e)??"--"}],3479)},46228,e=>{"use strict";var t=e.i(22381);let r=[180,200,220,270,300,330,30,90];function s(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;let s=r[t%r.length];return{bg:`hsl(${s} 55% 22%)`,ring:`hsl(${s} 60% 45%)`,text:`hsl(${s} 80% 78%)`}}function n(e){return e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"}e.s(["AliasAvatar",0,function({alias:e,size:r=28,className:i=""}){let a=s(e),l=Math.max(9,Math.round(.42*r));return(0,t.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${i}`,style:{width:r,height:r,fontSize:l,backgroundColor:a.bg,borderColor:a.ring,color:a.text},title:e,"aria-hidden":!0,children:n(e)})},"aliasAvatarColors",0,s,"aliasInitial",0,n])},76161,e=>{"use strict";var t=e.i(22381),r=e.i(23910),s=e.i(56839);let n={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function i({variant:e,size:r}){let s={width:r,height:r},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,t.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,t.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,t.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,t.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,t.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,t.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,t.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,t.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,t.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,t.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,t.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,t.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,t.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,t.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,t.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,t.jsx)("svg",{viewBox:"0 0 64 64",...s,children:(0,t.jsxs)("g",{...n,children:[(0,t.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,t.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function a({variant:e="generic",title:r,sub:l,cta:o,compact:c=!1}){let d=n[e],x=r??d.title,h=l??d.sub;return(0,t.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)(i,{variant:e,size:c?40:56})}),(0,t.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,t.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,t.jsx)("div",{className:"mt-4",children:o.href?(0,t.jsxs)(s.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,t.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function l({children:e}){return(0,t.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#2a2a4a] bg-[#111128] shadow-lg shadow-black/20",children:e})}function o({cmd:e}){let[s,n]=(0,r.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1800)}catch{}};return(0,t.jsxs)("div",{className:"anet-empty-cmd flex items-center gap-2 bg-[#0a0a15] border border-[#2a2a4a] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,t.jsx)("code",{className:"text-cyan-300 font-mono select-all",children:e}),(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":s?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] transition-colors",children:s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}e.s(["EmptyState",0,a,"NodesEmptyState",0,function({hint:e,taskHistoryCount:r=0}){return e?.global_count?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):r>0?(0,t.jsx)(l,{children:(0,t.jsx)(a,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${r.toLocaleString()} task${1===r?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,t.jsx)(l,{children:(0,t.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,t.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,t.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,t.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,t.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,t.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,t.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,t.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,t.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,t.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,t.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,t.jsx)("div",{className:"mt-4 inline-block",children:(0,t.jsx)(o,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,t.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},59276,e=>{"use strict";var t=e.i(12629),r=e.i(11449);let s=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},n={refreshInterval:5e3,dedupingInterval:3e3};function i(e,t){if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",s,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/health",s,n);return{health:e||null,error:r}},"useLicense",0,function(){let{data:e,error:r}=(0,t.default)("/api/hub/license",s,{refreshInterval:6e4});return{license:e?.ok?e:null,error:r}},"useMessages",0,function(e=100){let{networkId:a}=(0,r.useNetworkId)(),{data:l,error:o,isLoading:c}=(0,t.default)(i(`/api/hub/messages?limit=${e}`,a),s,n);return{messages:l?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l,isLoading:o}=(0,t.default)(i("/api/hub/status",e),s,n);return{sessions:a?.sessions||[],hint:a?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,r.useNetworkId)(),{data:a,error:l}=(0,t.default)(i("/api/hub/stats",e),s,n);return{stats:a?.ok?a:null,error:l}},"useTasks",0,function(e){let{networkId:a}=(0,r.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,t.default)(i(`/api/hub/tasks?${l}`,a),s,n);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.3-preview.247"],70286)}]);
|
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":439,"timestamp":414598925849,"id":4,"parentId":1,"tags":{},"startTime":1779222571172,"traceId":"5ff6924e11ae954c"},{"name":"load-custom-routes","duration":718,"timestamp":414598926520,"id":5,"parentId":1,"tags":{},"startTime":1779222571173,"traceId":"5ff6924e11ae954c"},{"name":"create-dist-dir","duration":1100,"timestamp":414598927301,"id":6,"parentId":1,"tags":{},"startTime":1779222571174,"traceId":"5ff6924e11ae954c"},{"name":"clean","duration":35297,"timestamp":414598929363,"id":7,"parentId":1,"tags":{},"startTime":1779222571176,"traceId":"5ff6924e11ae954c"},{"name":"discover-routes","duration":10333,"timestamp":414599053798,"id":8,"parentId":1,"tags":{},"startTime":1779222571300,"traceId":"5ff6924e11ae954c"},{"name":"create-root-mapping","duration":131,"timestamp":414599064203,"id":9,"parentId":1,"tags":{},"startTime":1779222571310,"traceId":"5ff6924e11ae954c"},{"name":"generate-route-types","duration":44051,"timestamp":414599067138,"id":10,"parentId":1,"tags":{},"startTime":1779222571313,"traceId":"5ff6924e11ae954c"},{"name":"public-dir-conflict-check","duration":165,"timestamp":414599111336,"id":11,"parentId":1,"tags":{},"startTime":1779222571358,"traceId":"5ff6924e11ae954c"},{"name":"generate-routes-manifest","duration":7330,"timestamp":414599111725,"id":12,"parentId":1,"tags":{},"startTime":1779222571358,"traceId":"5ff6924e11ae954c"},{"name":"run-turbopack","duration":7247298,"timestamp":414599136146,"id":14,"parentId":1,"tags":{},"startTime":1779222571382,"traceId":"5ff6924e11ae954c"},{"name":"turbopack-build-events","duration":105,"timestamp":414599446120,"id":15,"parentId":1,"tags":{},"startTime":1779222571692,"traceId":"5ff6924e11ae954c"},{"name":"run-typescript","duration":10776744,"timestamp":414606398091,"id":16,"parentId":1,"tags":{},"startTime":1779222578644,"traceId":"5ff6924e11ae954c"},{"name":"generate-required-server-files","duration":3267,"timestamp":414617176286,"id":18,"parentId":1,"tags":{},"startTime":1779222589423,"traceId":"5ff6924e11ae954c"},{"name":"check-static-error-page","duration":16400,"timestamp":414617395788,"id":20,"parentId":19,"tags":{},"startTime":1779222589642,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":473923,"timestamp":414617417251,"id":65,"parentId":22,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":492275,"timestamp":414617399095,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779222589645,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":590193,"timestamp":414617420115,"id":71,"parentId":30,"tags":{},"startTime":1779222589666,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":607362,"timestamp":414617403060,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":628215,"timestamp":414617420200,"id":72,"parentId":32,"tags":{},"startTime":1779222589666,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":645000,"timestamp":414617403501,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779222589650,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":644140,"timestamp":414617417710,"id":69,"parentId":28,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":659368,"timestamp":414617402764,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":648693,"timestamp":414617417614,"id":68,"parentId":27,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":663799,"timestamp":414617402618,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":648221,"timestamp":414617420468,"id":74,"parentId":34,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":665195,"timestamp":414617403765,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779222589650,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":650355,"timestamp":414617420389,"id":73,"parentId":33,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":667351,"timestamp":414617403645,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779222589650,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":654077,"timestamp":414617417403,"id":66,"parentId":25,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":669278,"timestamp":414617402256,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":654112,"timestamp":414617420493,"id":75,"parentId":35,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":670777,"timestamp":414617403881,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779222589650,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":654922,"timestamp":414617420541,"id":77,"parentId":37,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":670944,"timestamp":414617404573,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779222589651,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":659646,"timestamp":414617420584,"id":80,"parentId":40,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":675384,"timestamp":414617404906,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779222589651,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":673315,"timestamp":414617420596,"id":81,"parentId":42,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":688453,"timestamp":414617405540,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779222589652,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":682502,"timestamp":414617420605,"id":82,"parentId":44,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":697044,"timestamp":414617406146,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779222589652,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":684027,"timestamp":414617420617,"id":83,"parentId":45,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":698395,"timestamp":414617406303,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779222589653,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":691534,"timestamp":414617417970,"id":70,"parentId":29,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":706664,"timestamp":414617402897,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":692825,"timestamp":414617420629,"id":84,"parentId":46,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":707068,"timestamp":414617406440,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779222589653,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":694320,"timestamp":414617420641,"id":85,"parentId":47,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":708481,"timestamp":414617406564,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779222589653,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":698967,"timestamp":414617420558,"id":78,"parentId":38,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":714871,"timestamp":414617404705,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779222589651,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":708508,"timestamp":414617420651,"id":86,"parentId":48,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":720837,"timestamp":414617408375,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779222589655,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":715140,"timestamp":414617420567,"id":79,"parentId":39,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":730959,"timestamp":414617404808,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779222589651,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":719096,"timestamp":414617416829,"id":64,"parentId":21,"tags":{},"startTime":1779222589663,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":738494,"timestamp":414617397459,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779222589644,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":732091,"timestamp":414617420676,"id":88,"parentId":50,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":744181,"timestamp":414617408664,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779222589655,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":732805,"timestamp":414617420513,"id":76,"parentId":36,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":748995,"timestamp":414617404393,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779222589651,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":731348,"timestamp":414617424116,"id":90,"parentId":24,"tags":{},"startTime":1779222589670,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":755868,"timestamp":414617399645,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779222589646,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":737744,"timestamp":414617420685,"id":89,"parentId":51,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":749724,"timestamp":414617408755,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779222589655,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":740638,"timestamp":414617420664,"id":87,"parentId":49,"tags":{},"startTime":1779222589667,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":752785,"timestamp":414617408563,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779222589655,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":743377,"timestamp":414617425997,"id":92,"parentId":41,"tags":{},"startTime":1779222589672,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":764196,"timestamp":414617405238,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779222589652,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":748655,"timestamp":414617427154,"id":93,"parentId":43,"tags":{},"startTime":1779222589673,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":770172,"timestamp":414617405689,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779222589652,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":794437,"timestamp":414617429140,"id":95,"parentId":52,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":814488,"timestamp":414617409174,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779222589655,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":802445,"timestamp":414617425231,"id":91,"parentId":31,"tags":{},"startTime":1779222589672,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":824538,"timestamp":414617403204,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":807891,"timestamp":414617429187,"id":99,"parentId":56,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":827242,"timestamp":414617409915,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779222589656,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":808260,"timestamp":414617429112,"id":94,"parentId":23,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":838024,"timestamp":414617399391,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779222589646,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":808366,"timestamp":414617429199,"id":100,"parentId":58,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":826842,"timestamp":414617410777,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779222589657,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":808773,"timestamp":414617429175,"id":98,"parentId":55,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":828273,"timestamp":414617409713,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779222589656,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":814263,"timestamp":414617429155,"id":96,"parentId":53,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":834140,"timestamp":414617409334,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779222589656,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":827192,"timestamp":414617429340,"id":101,"parentId":59,"tags":{},"startTime":1779222589676,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":845611,"timestamp":414617410984,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779222589657,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":827304,"timestamp":414617429396,"id":104,"parentId":63,"tags":{},"startTime":1779222589676,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":844823,"timestamp":414617411922,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779222589658,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":827446,"timestamp":414617429375,"id":102,"parentId":61,"tags":{},"startTime":1779222589676,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":845218,"timestamp":414617411628,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779222589658,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":827517,"timestamp":414617429388,"id":103,"parentId":62,"tags":{},"startTime":1779222589676,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":845147,"timestamp":414617411779,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779222589658,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":819570,"timestamp":414617437413,"id":105,"parentId":60,"tags":{},"startTime":1779222589684,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":845855,"timestamp":414617411185,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779222589657,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":839876,"timestamp":414617417511,"id":67,"parentId":26,"tags":{},"startTime":1779222589664,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":854976,"timestamp":414617402456,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779222589649,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":814506,"timestamp":414617450538,"id":106,"parentId":57,"tags":{},"startTime":1779222589697,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":854905,"timestamp":414617410188,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779222589656,"traceId":"5ff6924e11ae954c"},{"name":"is-page-static","duration":840774,"timestamp":414617429163,"id":97,"parentId":54,"tags":{},"startTime":1779222589675,"traceId":"5ff6924e11ae954c"},{"name":"check-page","duration":860478,"timestamp":414617409507,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779222589656,"traceId":"5ff6924e11ae954c"},{"name":"static-check","duration":875418,"timestamp":414617394629,"id":19,"parentId":1,"tags":{},"startTime":1779222589641,"traceId":"5ff6924e11ae954c"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":344,"timestamp":415249569329,"id":4,"parentId":1,"tags":{},"startTime":1779223221816,"traceId":"a812cc422b85a022"},{"name":"load-custom-routes","duration":682,"timestamp":415249569869,"id":5,"parentId":1,"tags":{},"startTime":1779223221816,"traceId":"a812cc422b85a022"},{"name":"create-dist-dir","duration":828,"timestamp":415249570599,"id":6,"parentId":1,"tags":{},"startTime":1779223221817,"traceId":"a812cc422b85a022"},{"name":"clean","duration":33373,"timestamp":415249572237,"id":7,"parentId":1,"tags":{},"startTime":1779223221819,"traceId":"a812cc422b85a022"},{"name":"discover-routes","duration":32493,"timestamp":415249695922,"id":8,"parentId":1,"tags":{},"startTime":1779223221942,"traceId":"a812cc422b85a022"},{"name":"create-root-mapping","duration":122,"timestamp":415249728491,"id":9,"parentId":1,"tags":{},"startTime":1779223221975,"traceId":"a812cc422b85a022"},{"name":"generate-route-types","duration":26214,"timestamp":415249731835,"id":10,"parentId":1,"tags":{},"startTime":1779223221978,"traceId":"a812cc422b85a022"},{"name":"public-dir-conflict-check","duration":108,"timestamp":415249758156,"id":11,"parentId":1,"tags":{},"startTime":1779223222004,"traceId":"a812cc422b85a022"},{"name":"generate-routes-manifest","duration":4559,"timestamp":415249758406,"id":12,"parentId":1,"tags":{},"startTime":1779223222005,"traceId":"a812cc422b85a022"},{"name":"run-turbopack","duration":6590231,"timestamp":415249768093,"id":14,"parentId":1,"tags":{},"startTime":1779223222014,"traceId":"a812cc422b85a022"},{"name":"turbopack-build-events","duration":81,"timestamp":415250095746,"id":15,"parentId":1,"tags":{},"startTime":1779223222342,"traceId":"a812cc422b85a022"},{"name":"run-typescript","duration":10224688,"timestamp":415256381728,"id":16,"parentId":1,"tags":{},"startTime":1779223228628,"traceId":"a812cc422b85a022"},{"name":"generate-required-server-files","duration":2507,"timestamp":415266607767,"id":18,"parentId":1,"tags":{},"startTime":1779223238854,"traceId":"a812cc422b85a022"},{"name":"check-static-error-page","duration":13577,"timestamp":415266814331,"id":20,"parentId":19,"tags":{},"startTime":1779223239061,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":524494,"timestamp":415266832068,"id":65,"parentId":22,"tags":{},"startTime":1779223239078,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":539367,"timestamp":415266817364,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779223239064,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":561458,"timestamp":415266832577,"id":69,"parentId":28,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":573546,"timestamp":415266820608,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":568265,"timestamp":415266833066,"id":72,"parentId":32,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":580322,"timestamp":415266821111,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":593847,"timestamp":415266832335,"id":67,"parentId":26,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":605927,"timestamp":415266820340,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":593235,"timestamp":415266833231,"id":73,"parentId":33,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":605268,"timestamp":415266821248,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779223239068,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":618698,"timestamp":415266833333,"id":75,"parentId":35,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":630734,"timestamp":415266821528,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779223239068,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":619236,"timestamp":415266833307,"id":74,"parentId":34,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":631210,"timestamp":415266821388,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779223239068,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":625906,"timestamp":415266833398,"id":77,"parentId":37,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":637167,"timestamp":415266822212,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779223239068,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":632288,"timestamp":415266833410,"id":78,"parentId":38,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":643462,"timestamp":415266822311,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":637407,"timestamp":415266833367,"id":76,"parentId":36,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":648777,"timestamp":415266822048,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779223239068,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":648724,"timestamp":415266833520,"id":80,"parentId":40,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":659865,"timestamp":415266822453,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":649851,"timestamp":415266832838,"id":70,"parentId":29,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":662032,"timestamp":415266820698,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":649919,"timestamp":415266832988,"id":71,"parentId":30,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":662144,"timestamp":415266820795,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":653747,"timestamp":415266832219,"id":66,"parentId":25,"tags":{},"startTime":1779223239078,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":665859,"timestamp":415266820170,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779223239066,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":654723,"timestamp":415266833503,"id":79,"parentId":39,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":665883,"timestamp":415266822388,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":658460,"timestamp":415266833569,"id":84,"parentId":46,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":667526,"timestamp":415266824552,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":659403,"timestamp":415266833578,"id":85,"parentId":47,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":668367,"timestamp":415266824686,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":667508,"timestamp":415266833603,"id":87,"parentId":49,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":676317,"timestamp":415266824844,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":667745,"timestamp":415266833556,"id":83,"parentId":45,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":678183,"timestamp":415266823144,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":670363,"timestamp":415266833617,"id":88,"parentId":50,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":679138,"timestamp":415266824905,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":673107,"timestamp":415266831636,"id":64,"parentId":21,"tags":{},"startTime":1779223239078,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":688713,"timestamp":415266816069,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779223239062,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":668274,"timestamp":415266842608,"id":90,"parentId":24,"tags":{},"startTime":1779223239089,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":693112,"timestamp":415266817814,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779223239064,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":686967,"timestamp":415266833532,"id":81,"parentId":42,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":697869,"timestamp":415266822704,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":687162,"timestamp":415266833590,"id":86,"parentId":48,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":696024,"timestamp":415266824759,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":688130,"timestamp":415266833541,"id":82,"parentId":44,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":698700,"timestamp":415266823011,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":682862,"timestamp":415266846208,"id":92,"parentId":41,"tags":{},"startTime":1779223239092,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":706606,"timestamp":415266822514,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":695648,"timestamp":415266833626,"id":89,"parentId":51,"tags":{},"startTime":1779223239080,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":704327,"timestamp":415266824981,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779223239071,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":682040,"timestamp":415266847397,"id":93,"parentId":43,"tags":{},"startTime":1779223239094,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":706668,"timestamp":415266822796,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779223239069,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":717036,"timestamp":415266832462,"id":68,"parentId":27,"tags":{},"startTime":1779223239079,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":729095,"timestamp":415266820480,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":697660,"timestamp":415266890418,"id":96,"parentId":53,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":762697,"timestamp":415266825457,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":744847,"timestamp":415266845330,"id":91,"parentId":31,"tags":{},"startTime":1779223239092,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":769367,"timestamp":415266820878,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779223239067,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":705165,"timestamp":415266890403,"id":95,"parentId":52,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":770295,"timestamp":415266825330,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":706232,"timestamp":415266890467,"id":100,"parentId":58,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":770237,"timestamp":415266826528,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779223239073,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":707015,"timestamp":415266890427,"id":97,"parentId":54,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":771923,"timestamp":415266825560,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":709625,"timestamp":415266890440,"id":98,"parentId":55,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":774424,"timestamp":415266825693,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":710770,"timestamp":415266892931,"id":102,"parentId":61,"tags":{},"startTime":1779223239139,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":776609,"timestamp":415266827134,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779223239073,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":712729,"timestamp":415266892953,"id":104,"parentId":63,"tags":{},"startTime":1779223239139,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":778407,"timestamp":415266827447,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779223239074,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":717844,"timestamp":415266890337,"id":94,"parentId":23,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":790610,"timestamp":415266817610,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779223239064,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":715470,"timestamp":415266892944,"id":103,"parentId":62,"tags":{},"startTime":1779223239139,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":781182,"timestamp":415266827272,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779223239074,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":715681,"timestamp":415266892967,"id":105,"parentId":57,"tags":{},"startTime":1779223239139,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":782699,"timestamp":415266825986,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":704015,"timestamp":415266906956,"id":106,"parentId":60,"tags":{},"startTime":1779223239153,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":784264,"timestamp":415266826826,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779223239073,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":720967,"timestamp":415266892880,"id":101,"parentId":59,"tags":{},"startTime":1779223239139,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":787176,"timestamp":415266826701,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779223239073,"traceId":"a812cc422b85a022"},{"name":"is-page-static","duration":743248,"timestamp":415266890454,"id":99,"parentId":56,"tags":{},"startTime":1779223239137,"traceId":"a812cc422b85a022"},{"name":"check-page","duration":807914,"timestamp":415266825829,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779223239072,"traceId":"a812cc422b85a022"},{"name":"static-check","duration":820501,"timestamp":415266813287,"id":19,"parentId":1,"tags":{},"startTime":1779223239060,"traceId":"a812cc422b85a022"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":507,"timestamp":415267643615,"id":108,"parentId":1,"tags":{},"startTime":1779223239890,"traceId":"a812cc422b85a022"},{"name":"load-dotenv","duration":49,"timestamp":415267655562,"id":111,"parentId":110,"tags":{},"startTime":1779223239902,"traceId":"a812cc422b85a022"},{"name":"run-export-path-map","duration":505,"timestamp":415267658458,"id":112,"parentId":110,"tags":{},"startTime":1779223239905,"traceId":"a812cc422b85a022"},{"name":"next-export","duration":668173,"timestamp":415267654362,"id":110,"parentId":1,"tags":{},"startTime":1779223239901,"traceId":"a812cc422b85a022"},{"name":"move-exported-app-not-found-","duration":578,"timestamp":415268327231,"id":113,"parentId":109,"tags":{},"startTime":1779223240574,"traceId":"a812cc422b85a022"},{"name":"move-exported-app-global-error-","duration":476,"timestamp":415268327905,"id":114,"parentId":109,"tags":{},"startTime":1779223240574,"traceId":"a812cc422b85a022"},{"name":"static-generation","duration":682692,"timestamp":415267647955,"id":109,"parentId":1,"tags":{},"startTime":1779223239894,"traceId":"a812cc422b85a022"},{"name":"write-routes-manifest","duration":512,"timestamp":415268330950,"id":115,"parentId":1,"tags":{},"startTime":1779223240577,"traceId":"a812cc422b85a022"},{"name":"print-tree-view","duration":3704,"timestamp":415268349681,"id":116,"parentId":1,"tags":{},"startTime":1779223240596,"traceId":"a812cc422b85a022"},{"name":"write-route-bundle-stats","duration":13003,"timestamp":415268353419,"id":117,"parentId":1,"tags":{},"startTime":1779223240600,"traceId":"a812cc422b85a022"},{"name":"telemetry-flush","duration":33778,"timestamp":415268366454,"id":118,"parentId":1,"tags":{},"startTime":1779223240613,"traceId":"a812cc422b85a022"},{"name":"next-build","duration":18883552,"timestamp":415249516713,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779223221763,"traceId":"a812cc422b85a022"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":6590231,"timestamp":415249768093,"id":14,"parentId":1,"tags":{},"startTime":1779223222014,"traceId":"a812cc422b85a022"},{"name":"turbopack-build-events","duration":81,"timestamp":415250095746,"id":15,"parentId":1,"tags":{},"startTime":1779223222342,"traceId":"a812cc422b85a022"},{"name":"run-typescript","duration":10224688,"timestamp":415256381728,"id":16,"parentId":1,"tags":{},"startTime":1779223228628,"traceId":"a812cc422b85a022"},{"name":"static-check","duration":820501,"timestamp":415266813287,"id":19,"parentId":1,"tags":{},"startTime":1779223239060,"traceId":"a812cc422b85a022"},{"name":"static-generation","duration":682692,"timestamp":415267647955,"id":109,"parentId":1,"tags":{},"startTime":1779223239894,"traceId":"a812cc422b85a022"},{"name":"telemetry-flush","duration":33778,"timestamp":415268366454,"id":118,"parentId":1,"tags":{},"startTime":1779223240613,"traceId":"a812cc422b85a022"},{"name":"next-build","duration":18883552,"timestamp":415249516713,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779223221763,"traceId":"a812cc422b85a022"}]
|
|
@@ -4609,6 +4609,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4609
4609
|
parts.push(`${flows} active link${flows === 1 ? '' : 's'}`);
|
|
4610
4610
|
return `Agent network topology — ${parts.join(' · ')}. Tab to navigate nodes, double-click canvas to reset view.`;
|
|
4611
4611
|
})()}
|
|
4612
|
+
/* Round 734 / Loop — aria-describedby points at the <desc>
|
|
4613
|
+
child added below. The existing aria-label (R7/R469) is
|
|
4614
|
+
DYNAMIC — encodes live counts. The <desc> is STABLE —
|
|
4615
|
+
encodes the structural vocabulary of the canvas. Together
|
|
4616
|
+
they form the WAI-ARIA name + description pair: SR
|
|
4617
|
+
announces the accessible name (label) first, then
|
|
4618
|
+
optionally reads the description on follow-up. Distinct
|
|
4619
|
+
a11y mechanism from R730-R733's <title> a11y children
|
|
4620
|
+
(which are accessible NAMES on individual decorative
|
|
4621
|
+
elements; this is a DESCRIPTION on the root canvas). */
|
|
4622
|
+
aria-describedby="anet-topo-canvas-desc"
|
|
4612
4623
|
data-topo-canvas-aria
|
|
4613
4624
|
/* Round 469 / Loop — fleet-split numeric attrs on the root
|
|
4614
4625
|
svg. The aria-label already encodes online/working/offline
|
|
@@ -5174,6 +5185,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5174
5185
|
{ surface: "legend panel title", selector: "[data-legend-panel-title]", accessible_name: "legend · status / vendor / runtime swatch panel" },
|
|
5175
5186
|
{ surface: "title-block brand logo", selector: "[data-topo-brand-logo]", accessible_name: "sleep2agi · brand logo" },
|
|
5176
5187
|
{ surface: "canvas-corner crescent", selector: "[data-topo-brand-canvas-mark]", accessible_name: "sleep2agi · canvas-corner brand mark" },
|
|
5188
|
+
/* R733 — hub-highlight added; first non-brand a11y surface.
|
|
5189
|
+
Note the 3-part accessible_name: "<name> · <role> · <state>".
|
|
5190
|
+
The R732 canonical-format regex matches /^[^·]+ · [^·]+$/
|
|
5191
|
+
(exactly 2 parts) — R733 hub uses an extended 3-part form.
|
|
5192
|
+
The R733 test handles this by relaxing the canonical-format
|
|
5193
|
+
regex to `[^·]+( · [^·]+)+` (≥2 parts). */
|
|
5194
|
+
{ surface: "hub-highlight disc", selector: "[data-topo-hub-highlight]", accessible_name: "hub · network center · idle indicator" },
|
|
5177
5195
|
])}
|
|
5178
5196
|
data-topo-pinned-aspect={(() => {
|
|
5179
5197
|
const aspects: string[] = [];
|
|
@@ -5277,6 +5295,16 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5277
5295
|
}}
|
|
5278
5296
|
style={{ cursor: isPanning ? 'grabbing' : 'grab', touchAction: 'none' }}
|
|
5279
5297
|
>
|
|
5298
|
+
{/* Round 734 / Loop — SVG <desc> stable structural description
|
|
5299
|
+
targeted by aria-describedby on the root <svg>. Complements
|
|
5300
|
+
the dynamic aria-label (R7/R469 live-state counts) with
|
|
5301
|
+
stable structural vocabulary. WAI-ARIA name + description
|
|
5302
|
+
pair: SR reads aria-label first (current state), then
|
|
5303
|
+
optionally reads this desc on follow-up for structural
|
|
5304
|
+
context. Distinct mechanism from R730-R733 SVG <title>
|
|
5305
|
+
children (those are NAMES on decorative elements; this is
|
|
5306
|
+
a DESCRIPTION on the canvas root). */}
|
|
5307
|
+
<desc id="anet-topo-canvas-desc">{'Live agent network topology canvas. Hub at center surrounded by per-agent node circles arranged in a ring (or grid prefix-cluster layout). Flow links between nodes animate during inter-agent activity. Recent-signal panel top-left, legend top-right, chrome strip bottom-right. Tab to focus nodes, double-click empty canvas to reset zoom and pan, l to toggle ring/grid layout.'}</desc>
|
|
5280
5308
|
<defs>
|
|
5281
5309
|
<linearGradient id="topo-panel" x1="0" x2="1" y1="0" y2="1">
|
|
5282
5310
|
<stop offset="0%" stopColor={pal.panelStops[0]} />
|
|
@@ -9552,6 +9580,16 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
9552
9580
|
transition: 'opacity 300ms ease-out, fill 200ms ease-out, r 200ms ease-out, filter 200ms ease-out',
|
|
9553
9581
|
} as React.CSSProperties}
|
|
9554
9582
|
>
|
|
9583
|
+
{/* Round 733 / Loop — SVG <title> a11y child for the hub-
|
|
9584
|
+
highlight disc, the most prominent focal element on
|
|
9585
|
+
the canvas (network center). Sibling treatment to R730/
|
|
9586
|
+
R731 brand-surface a11y sweep. The hub-highlight is
|
|
9587
|
+
visibility-gated (only shows when workingCount === 0)
|
|
9588
|
+
but its <title> stays in DOM regardless — screen
|
|
9589
|
+
readers can identify it at all times. Canonical
|
|
9590
|
+
format "<name> · <role>": "hub" is the network-center
|
|
9591
|
+
name; "network center · idle indicator" is the role
|
|
9592
|
+
expanded to reflect both spatial and state semantics. */}<title>hub · network center · idle indicator</title>
|
|
9555
9593
|
{/* Round 497 / Loop — idle-state breath (呼吸感 theme pivot
|
|
9556
9594
|
from the R492-R496 press-family arc). Pre-R497 the hub
|
|
9557
9595
|
idle highlight read as a static dim disc — present but
|
package/package.json
CHANGED
|
@@ -102,10 +102,13 @@ const validShape = Array.isArray(catalog) && catalog.every(e =>
|
|
|
102
102
|
&& typeof e?.accessible_name === 'string' && e.accessible_name.length > 0
|
|
103
103
|
);
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
/* R733 relaxed canonical-format from "exactly 2 parts" to ">=2 parts"
|
|
106
|
+
* to admit the new hub-highlight entry's 3-part name ("hub · network
|
|
107
|
+
* center · idle indicator"). All earlier entries still match. */
|
|
108
|
+
const canonicalFormat = (s) => typeof s === 'string' && /^[^·]+( · [^·]+)+$/.test(s);
|
|
106
109
|
const allCanonical = Array.isArray(catalog) && catalog.every(e => canonicalFormat(e.accessible_name));
|
|
107
110
|
|
|
108
|
-
const expectedSurfaces = ['canvas-corner crescent', 'legend panel title', 'recent panel title', 'title-block brand logo', 'watermark text'];
|
|
111
|
+
const expectedSurfaces = ['canvas-corner crescent', 'hub-highlight disc', 'legend panel title', 'recent panel title', 'title-block brand logo', 'watermark text'];
|
|
109
112
|
const actualSurfaces = Array.isArray(catalog) ? catalog.map(e => e.surface).sort() : [];
|
|
110
113
|
const surfacesMatch = JSON.stringify(actualSurfaces) === JSON.stringify(expectedSurfaces);
|
|
111
114
|
|
|
@@ -115,7 +118,7 @@ const results = {
|
|
|
115
118
|
attr_present: !!result.catalogAttr,
|
|
116
119
|
json_parses: catalog !== null,
|
|
117
120
|
is_array: Array.isArray(catalog),
|
|
118
|
-
|
|
121
|
+
has_6_entries: Array.isArray(catalog) && catalog.length === 6,
|
|
119
122
|
shape_valid: validShape,
|
|
120
123
|
all_accessible_names_canonical: allCanonical,
|
|
121
124
|
surfaces_match_expected_set: surfacesMatch,
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Round 734 — SVG <desc> stable structural description on root canvas
|
|
2
|
+
* + aria-describedby linkage. Different a11y mechanism from R730-R733:
|
|
3
|
+
* R730-R733 add <title> children as accessible NAMES on individual
|
|
4
|
+
* decorative elements (watermark, brand logo, hub, etc.)
|
|
5
|
+
* R734 adds <desc> as a stable DESCRIPTION on the canvas root,
|
|
6
|
+
* complementing the existing dynamic aria-label (R7/R469).
|
|
7
|
+
*
|
|
8
|
+
* WAI-ARIA name + description pair: SR announces the accessible name
|
|
9
|
+
* (label) first, then optionally reads the description on follow-up.
|
|
10
|
+
*
|
|
11
|
+
* Assertions:
|
|
12
|
+
* - Root <svg> has aria-describedby="anet-topo-canvas-desc"
|
|
13
|
+
* - <desc id="anet-topo-canvas-desc"> exists as a child of root <svg>
|
|
14
|
+
* - desc content mentions key structural surfaces: hub, ring/grid,
|
|
15
|
+
* recent-signal, legend, chrome strip
|
|
16
|
+
* - desc content mentions key interactions: Tab, double-click, l-key
|
|
17
|
+
* - aria-label (R7/R469 dynamic) still present and not replaced
|
|
18
|
+
* - aria-roledescription (R-original) still present
|
|
19
|
+
*/
|
|
20
|
+
import { chromium } from 'playwright';
|
|
21
|
+
import { readFileSync } from 'node:fs';
|
|
22
|
+
|
|
23
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
24
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
25
|
+
|
|
26
|
+
const browser = await chromium.launch({ headless: true });
|
|
27
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
28
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
29
|
+
await ctx.addInitScript(() => {
|
|
30
|
+
try {
|
|
31
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
32
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
33
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
34
|
+
} catch {}
|
|
35
|
+
});
|
|
36
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
37
|
+
const r = await route.fetch();
|
|
38
|
+
const b = await r.json();
|
|
39
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
40
|
+
const mk = (alias) => ({
|
|
41
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
42
|
+
network_id: nid, project_dir: null,
|
|
43
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
44
|
+
});
|
|
45
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
|
|
46
|
+
});
|
|
47
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
48
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
49
|
+
const page = await ctx.newPage();
|
|
50
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
51
|
+
await page.waitForSelector('[data-topo-canvas-aria]', { timeout: 15000, state: 'attached' });
|
|
52
|
+
await page.waitForTimeout(300);
|
|
53
|
+
|
|
54
|
+
const state = await page.evaluate(() => {
|
|
55
|
+
const svg = document.querySelector('[data-topo-canvas-aria]');
|
|
56
|
+
const desc = document.getElementById('anet-topo-canvas-desc');
|
|
57
|
+
return {
|
|
58
|
+
aria_describedby: svg?.getAttribute('aria-describedby') ?? null,
|
|
59
|
+
aria_label: svg?.getAttribute('aria-label') ?? null,
|
|
60
|
+
aria_roledescr: svg?.getAttribute('aria-roledescription') ?? null,
|
|
61
|
+
desc_present: !!desc,
|
|
62
|
+
desc_text: desc?.textContent ?? null,
|
|
63
|
+
desc_is_child_of_svg: desc?.parentElement === svg,
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
await browser.close();
|
|
68
|
+
|
|
69
|
+
const text = state.desc_text ?? '';
|
|
70
|
+
const textLower = text.toLowerCase();
|
|
71
|
+
const mentionsStructural = ['hub', 'ring', 'grid', 'recent-signal', 'legend', 'chrome strip'].every(k => textLower.includes(k));
|
|
72
|
+
const mentionsInteractions = ['Tab', 'double-click', 'l '].every(k => text.includes(k));
|
|
73
|
+
|
|
74
|
+
const results = {
|
|
75
|
+
aria_describedby_correct: state.aria_describedby === 'anet-topo-canvas-desc',
|
|
76
|
+
desc_element_present: state.desc_present === true,
|
|
77
|
+
desc_is_direct_child: state.desc_is_child_of_svg === true,
|
|
78
|
+
desc_mentions_structural: mentionsStructural,
|
|
79
|
+
desc_mentions_interactions: mentionsInteractions,
|
|
80
|
+
aria_label_preserved: typeof state.aria_label === 'string' && state.aria_label.includes('Agent network topology'),
|
|
81
|
+
aria_roledescription_kept: state.aria_roledescr === 'agent network topology',
|
|
82
|
+
};
|
|
83
|
+
const ok = Object.values(results).every(Boolean);
|
|
84
|
+
console.log(`${ok ? '✅' : '❌'} R734 SVG <desc> + aria-describedby on root canvas (WAI-ARIA name + description pair):`,
|
|
85
|
+
JSON.stringify(results, null, 2),
|
|
86
|
+
`\n state: ${JSON.stringify(state)}`);
|
|
87
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/* Round 733 — extend SVG <title> a11y to the hub-highlight disc, the
|
|
2
|
+
* most prominent focal element on the canvas (network center). 6th
|
|
3
|
+
* surface in the R730-family a11y sweep, first non-brand a11y surface.
|
|
4
|
+
*
|
|
5
|
+
* Uses an extended 3-part accessible_name format:
|
|
6
|
+
* "hub · network center · idle indicator"
|
|
7
|
+
* name (hub) · spatial role (network center) · state role (idle indicator)
|
|
8
|
+
* R732 catalog's canonical-format regex was widened to `[^·]+( · [^·]+)+`
|
|
9
|
+
* (≥2 parts) to admit this entry.
|
|
10
|
+
*
|
|
11
|
+
* Assertions:
|
|
12
|
+
* - Hub-highlight <circle> has a direct <title> child with expected text
|
|
13
|
+
* - The accessible name has exactly 3 parts (3-part canonical form)
|
|
14
|
+
* - R732 catalog has 6 entries (was 5 pre-R733)
|
|
15
|
+
* - R732 catalog includes hub-highlight disc entry
|
|
16
|
+
* - Existing R497 SMIL opacity breath child preserved on hub-highlight
|
|
17
|
+
* (regression — the <title> is a sibling, not replacing)
|
|
18
|
+
*/
|
|
19
|
+
import { chromium } from 'playwright';
|
|
20
|
+
import { readFileSync } from 'node:fs';
|
|
21
|
+
|
|
22
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
23
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
24
|
+
|
|
25
|
+
const browser = await chromium.launch({ headless: true });
|
|
26
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
27
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
28
|
+
await ctx.addInitScript(() => {
|
|
29
|
+
try {
|
|
30
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
31
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
32
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
33
|
+
} catch {}
|
|
34
|
+
});
|
|
35
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
36
|
+
const r = await route.fetch();
|
|
37
|
+
const b = await r.json();
|
|
38
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
39
|
+
const mk = (alias) => ({
|
|
40
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
41
|
+
network_id: nid, project_dir: null,
|
|
42
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
43
|
+
});
|
|
44
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
|
|
45
|
+
});
|
|
46
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
47
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
48
|
+
const page = await ctx.newPage();
|
|
49
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
50
|
+
await page.waitForSelector('[data-topo-canvas-aria]', { timeout: 15000, state: 'attached' });
|
|
51
|
+
await page.waitForTimeout(300);
|
|
52
|
+
|
|
53
|
+
const state = await page.evaluate(() => {
|
|
54
|
+
const hub = document.querySelector('[data-topo-hub-highlight]');
|
|
55
|
+
const svg = document.querySelector('[data-topo-canvas-aria]');
|
|
56
|
+
const directTitleText = (el) => {
|
|
57
|
+
if (!el) return null;
|
|
58
|
+
for (const child of el.children) {
|
|
59
|
+
if (child.tagName.toLowerCase() === 'title') return child.textContent;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
};
|
|
63
|
+
return {
|
|
64
|
+
hub_present: !!hub,
|
|
65
|
+
hub_title_text: directTitleText(hub),
|
|
66
|
+
hub_smil_animate: hub?.querySelector('animate[attributeName="opacity"]') !== null,
|
|
67
|
+
hub_smil_dur: hub?.querySelector('animate[attributeName="opacity"]')?.getAttribute('dur') ?? null,
|
|
68
|
+
catalog_attr: svg?.getAttribute('data-topo-a11y-titles') ?? null,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await browser.close();
|
|
73
|
+
|
|
74
|
+
let catalog = null;
|
|
75
|
+
try { catalog = JSON.parse(state.catalog_attr ?? ''); } catch {}
|
|
76
|
+
|
|
77
|
+
const hubEntry = Array.isArray(catalog) ? catalog.find(e => e.surface === 'hub-highlight disc') : null;
|
|
78
|
+
const partCount = typeof state.hub_title_text === 'string' ? state.hub_title_text.split(' · ').length : 0;
|
|
79
|
+
|
|
80
|
+
const results = {
|
|
81
|
+
/* Hub-highlight is conditionally visible (workingCount === 0) but
|
|
82
|
+
* the <circle> with <title> is always mounted; treat as pass if
|
|
83
|
+
* element renders, conservative SR-coverage check otherwise. */
|
|
84
|
+
hub_title_present_when_rendered: !state.hub_present || state.hub_title_text === 'hub · network center · idle indicator',
|
|
85
|
+
three_part_canonical_form: !state.hub_present || partCount === 3,
|
|
86
|
+
smil_opacity_breath_preserved: !state.hub_present || (state.hub_smil_animate && state.hub_smil_dur === '4s'),
|
|
87
|
+
r732_catalog_has_6_entries: Array.isArray(catalog) && catalog.length === 6,
|
|
88
|
+
r732_catalog_has_hub_entry: !!hubEntry && hubEntry.accessible_name === 'hub · network center · idle indicator',
|
|
89
|
+
};
|
|
90
|
+
const ok = Object.values(results).every(Boolean);
|
|
91
|
+
console.log(`${ok ? '✅' : '❌'} R733 hub-highlight SVG <title> a11y (6th titled surface, first non-brand):`,
|
|
92
|
+
JSON.stringify(results, null, 2),
|
|
93
|
+
`\n state: ${JSON.stringify(state)}`,
|
|
94
|
+
`\n hub entry: ${JSON.stringify(hubEntry)}`);
|
|
95
|
+
process.exit(ok ? 0 : 1);
|