@sleep2agi/agent-network-dashboard 0.5.3-preview.252 → 0.5.3-preview.254
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 +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0x-5lk.0kyort.js → 0-t50keogxsg1.js} +1 -1
- package/.next/static/chunks/{0culr_bidzj0m.css → 0kxp3b9ooqo9w.css} +1 -1
- package/.next/static/chunks/{0jpw62w_o0evv.js → 0u.ob15vjha6u.js} +1 -1
- package/.next/static/chunks/{0f6r4cjf~k7~j.js → 0~4k1nbapvia1.js} +3 -3
- package/.next/static/chunks/{0g84jw2-4ete9.js → 11hzac0zl0f91.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +72 -20
- package/app/globals.css +33 -0
- package/package.json +1 -1
- package/scripts/topo-a11y-titles-catalog-test.mjs +2 -2
- package/scripts/topo-canvas-entrance-animation-test.mjs +117 -0
- package/scripts/topo-canvas-scan-beam-diagonal-test.mjs +148 -0
- package/scripts/topo-respiratory-patterns-catalog-test.mjs +5 -5
- /package/.next/static/{cJtkfCMBFbZcSau6IWC8T → 0ShBgwMviORwHuIMhcMPr}/_buildManifest.js +0 -0
- /package/.next/static/{cJtkfCMBFbZcSau6IWC8T → 0ShBgwMviORwHuIMhcMPr}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{cJtkfCMBFbZcSau6IWC8T → 0ShBgwMviORwHuIMhcMPr}/_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.251"],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.253"],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":355,"timestamp":416542595116,"id":4,"parentId":1,"tags":{},"startTime":1779224514841,"traceId":"e359de374d751faa"},{"name":"load-custom-routes","duration":733,"timestamp":416542595691,"id":5,"parentId":1,"tags":{},"startTime":1779224514842,"traceId":"e359de374d751faa"},{"name":"create-dist-dir","duration":753,"timestamp":416542596492,"id":6,"parentId":1,"tags":{},"startTime":1779224514843,"traceId":"e359de374d751faa"},{"name":"clean","duration":35886,"timestamp":416542597987,"id":7,"parentId":1,"tags":{},"startTime":1779224514844,"traceId":"e359de374d751faa"},{"name":"discover-routes","duration":27108,"timestamp":416542717133,"id":8,"parentId":1,"tags":{},"startTime":1779224514963,"traceId":"e359de374d751faa"},{"name":"create-root-mapping","duration":204,"timestamp":416542744310,"id":9,"parentId":1,"tags":{},"startTime":1779224514991,"traceId":"e359de374d751faa"},{"name":"generate-route-types","duration":21639,"timestamp":416542747264,"id":10,"parentId":1,"tags":{},"startTime":1779224514994,"traceId":"e359de374d751faa"},{"name":"public-dir-conflict-check","duration":110,"timestamp":416542769036,"id":11,"parentId":1,"tags":{},"startTime":1779224515015,"traceId":"e359de374d751faa"},{"name":"generate-routes-manifest","duration":7367,"timestamp":416542769361,"id":12,"parentId":1,"tags":{},"startTime":1779224515016,"traceId":"e359de374d751faa"},{"name":"run-turbopack","duration":6239139,"timestamp":416542791613,"id":14,"parentId":1,"tags":{},"startTime":1779224515038,"traceId":"e359de374d751faa"},{"name":"turbopack-build-events","duration":100,"timestamp":416543097879,"id":15,"parentId":1,"tags":{},"startTime":1779224515344,"traceId":"e359de374d751faa"},{"name":"run-typescript","duration":10257958,"timestamp":416549041426,"id":16,"parentId":1,"tags":{},"startTime":1779224521288,"traceId":"e359de374d751faa"},{"name":"generate-required-server-files","duration":3488,"timestamp":416559300796,"id":18,"parentId":1,"tags":{},"startTime":1779224531547,"traceId":"e359de374d751faa"},{"name":"check-static-error-page","duration":16900,"timestamp":416559486804,"id":20,"parentId":19,"tags":{},"startTime":1779224531733,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":437593,"timestamp":416559507709,"id":65,"parentId":22,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":455416,"timestamp":416559490094,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779224531736,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":556862,"timestamp":416559508579,"id":71,"parentId":30,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":571405,"timestamp":416559494158,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":569337,"timestamp":416559507856,"id":66,"parentId":25,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":583874,"timestamp":416559493405,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":570283,"timestamp":416559508138,"id":69,"parentId":28,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":584648,"timestamp":416559493850,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":572956,"timestamp":416559508649,"id":72,"parentId":32,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":587070,"timestamp":416559494599,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779224531741,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":578550,"timestamp":416559508898,"id":74,"parentId":34,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":592596,"timestamp":416559494919,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779224531741,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":610670,"timestamp":416559508931,"id":75,"parentId":35,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":624590,"timestamp":416559495088,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779224531741,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":617580,"timestamp":416559508982,"id":77,"parentId":37,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":630808,"timestamp":416559495828,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779224531742,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":620160,"timestamp":416559508038,"id":68,"parentId":27,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":634591,"timestamp":416559493708,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":625904,"timestamp":416559509019,"id":78,"parentId":38,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":638999,"timestamp":416559495982,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779224531742,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":634284,"timestamp":416559509048,"id":80,"parentId":40,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":647156,"timestamp":416559496249,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779224531743,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":638739,"timestamp":416559507361,"id":64,"parentId":21,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":657688,"timestamp":416559488461,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779224531735,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":647913,"timestamp":416559507946,"id":67,"parentId":26,"tags":{},"startTime":1779224531754,"traceId":"e359de374d751faa"},{"name":"check-page","duration":662337,"timestamp":416559493578,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":660907,"timestamp":416559509058,"id":81,"parentId":42,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":673411,"timestamp":416559496650,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779224531743,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":662369,"timestamp":416559509034,"id":79,"parentId":39,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":675319,"timestamp":416559496135,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779224531742,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":671400,"timestamp":416559509085,"id":83,"parentId":45,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":681605,"timestamp":416559498936,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779224531745,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":671741,"timestamp":416559508956,"id":76,"parentId":36,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":685097,"timestamp":416559495637,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779224531742,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":671781,"timestamp":416559509094,"id":84,"parentId":46,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":681841,"timestamp":416559499075,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779224531745,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":672311,"timestamp":416559508818,"id":73,"parentId":33,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":686411,"timestamp":416559494764,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779224531741,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":672217,"timestamp":416559509108,"id":85,"parentId":47,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":682164,"timestamp":416559499197,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779224531745,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":675819,"timestamp":416559508413,"id":70,"parentId":29,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":690293,"timestamp":416559493985,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779224531740,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":675728,"timestamp":416559514302,"id":91,"parentId":31,"tags":{},"startTime":1779224531761,"traceId":"e359de374d751faa"},{"name":"check-page","duration":695772,"timestamp":416559494304,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779224531741,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":678051,"timestamp":416559513208,"id":90,"parentId":24,"tags":{},"startTime":1779224531759,"traceId":"e359de374d751faa"},{"name":"check-page","duration":700586,"timestamp":416559490721,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779224531737,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":682697,"timestamp":416559509157,"id":89,"parentId":51,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":692211,"timestamp":416559499688,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779224531746,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":704964,"timestamp":416559509145,"id":88,"parentId":50,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":714599,"timestamp":416559499583,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779224531746,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":698001,"timestamp":416559516459,"id":93,"parentId":43,"tags":{},"startTime":1779224531763,"traceId":"e359de374d751faa"},{"name":"check-page","duration":717712,"timestamp":416559496802,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779224531743,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":705536,"timestamp":416559509130,"id":87,"parentId":49,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":715235,"timestamp":416559499464,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779224531746,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":732693,"timestamp":416559509121,"id":86,"parentId":48,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":742580,"timestamp":416559499308,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779224531746,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":738195,"timestamp":416559515065,"id":92,"parentId":41,"tags":{},"startTime":1779224531761,"traceId":"e359de374d751faa"},{"name":"check-page","duration":757024,"timestamp":416559496367,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779224531743,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":742881,"timestamp":416559518457,"id":94,"parentId":23,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":770986,"timestamp":416559490427,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779224531737,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":752382,"timestamp":416559518542,"id":100,"parentId":58,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":768900,"timestamp":416559502085,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779224531748,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":764599,"timestamp":416559518656,"id":101,"parentId":59,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":781009,"timestamp":416559502315,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779224531749,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":769761,"timestamp":416559518677,"id":102,"parentId":61,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":785450,"timestamp":416559503067,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779224531749,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":796223,"timestamp":416559509071,"id":82,"parentId":44,"tags":{},"startTime":1779224531755,"traceId":"e359de374d751faa"},{"name":"check-page","duration":806596,"timestamp":416559498762,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779224531745,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":787290,"timestamp":416559518690,"id":103,"parentId":62,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":802809,"timestamp":416559503234,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779224531750,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":789484,"timestamp":416559518502,"id":96,"parentId":53,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":807773,"timestamp":416559500295,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779224531747,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":795791,"timestamp":416559518487,"id":95,"parentId":52,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":814217,"timestamp":416559500107,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779224531746,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":796507,"timestamp":416559518698,"id":104,"parentId":63,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":811836,"timestamp":416559503416,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779224531750,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":797158,"timestamp":416559518511,"id":97,"parentId":54,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":815226,"timestamp":416559500497,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779224531747,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":787695,"timestamp":416559529613,"id":105,"parentId":60,"tags":{},"startTime":1779224531776,"traceId":"e359de374d751faa"},{"name":"check-page","duration":814823,"timestamp":416559502539,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779224531749,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":774793,"timestamp":416559543801,"id":106,"parentId":57,"tags":{},"startTime":1779224531790,"traceId":"e359de374d751faa"},{"name":"check-page","duration":817371,"timestamp":416559501263,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779224531748,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":815986,"timestamp":416559518522,"id":98,"parentId":55,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":833836,"timestamp":416559500733,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779224531747,"traceId":"e359de374d751faa"},{"name":"is-page-static","duration":835951,"timestamp":416559518534,"id":99,"parentId":56,"tags":{},"startTime":1779224531765,"traceId":"e359de374d751faa"},{"name":"check-page","duration":853565,"timestamp":416559500970,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779224531747,"traceId":"e359de374d751faa"},{"name":"static-check","duration":868960,"timestamp":416559485614,"id":19,"parentId":1,"tags":{},"startTime":1779224531732,"traceId":"e359de374d751faa"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":351,"timestamp":417279326809,"id":4,"parentId":1,"tags":{},"startTime":1779225251573,"traceId":"8c20b6a221d98ca3"},{"name":"load-custom-routes","duration":495,"timestamp":417279327309,"id":5,"parentId":1,"tags":{},"startTime":1779225251574,"traceId":"8c20b6a221d98ca3"},{"name":"create-dist-dir","duration":721,"timestamp":417279327850,"id":6,"parentId":1,"tags":{},"startTime":1779225251574,"traceId":"8c20b6a221d98ca3"},{"name":"clean","duration":30412,"timestamp":417279329301,"id":7,"parentId":1,"tags":{},"startTime":1779225251576,"traceId":"8c20b6a221d98ca3"},{"name":"discover-routes","duration":8997,"timestamp":417279441307,"id":8,"parentId":1,"tags":{},"startTime":1779225251688,"traceId":"8c20b6a221d98ca3"},{"name":"create-root-mapping","duration":117,"timestamp":417279450381,"id":9,"parentId":1,"tags":{},"startTime":1779225251697,"traceId":"8c20b6a221d98ca3"},{"name":"generate-route-types","duration":24366,"timestamp":417279452968,"id":10,"parentId":1,"tags":{},"startTime":1779225251699,"traceId":"8c20b6a221d98ca3"},{"name":"public-dir-conflict-check","duration":132,"timestamp":417279477451,"id":11,"parentId":1,"tags":{},"startTime":1779225251724,"traceId":"8c20b6a221d98ca3"},{"name":"generate-routes-manifest","duration":5146,"timestamp":417279477750,"id":12,"parentId":1,"tags":{},"startTime":1779225251724,"traceId":"8c20b6a221d98ca3"},{"name":"run-turbopack","duration":6458281,"timestamp":417279502286,"id":14,"parentId":1,"tags":{},"startTime":1779225251749,"traceId":"8c20b6a221d98ca3"},{"name":"turbopack-build-events","duration":101,"timestamp":417279803566,"id":15,"parentId":1,"tags":{},"startTime":1779225252050,"traceId":"8c20b6a221d98ca3"},{"name":"run-typescript","duration":10663603,"timestamp":417285983210,"id":16,"parentId":1,"tags":{},"startTime":1779225258229,"traceId":"8c20b6a221d98ca3"},{"name":"generate-required-server-files","duration":7119,"timestamp":417296648432,"id":18,"parentId":1,"tags":{},"startTime":1779225268895,"traceId":"8c20b6a221d98ca3"},{"name":"check-static-error-page","duration":13560,"timestamp":417296885922,"id":20,"parentId":19,"tags":{},"startTime":1779225269132,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":508068,"timestamp":417296904560,"id":65,"parentId":22,"tags":{},"startTime":1779225269151,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":524384,"timestamp":417296888429,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779225269135,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":616142,"timestamp":417296904820,"id":67,"parentId":26,"tags":{},"startTime":1779225269151,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":630221,"timestamp":417296890872,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779225269137,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":627696,"timestamp":417296905789,"id":71,"parentId":30,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":642140,"timestamp":417296891432,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":630885,"timestamp":417296905631,"id":70,"parentId":29,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":645330,"timestamp":417296891261,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":646068,"timestamp":417296906047,"id":73,"parentId":33,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":660281,"timestamp":417296891968,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":646333,"timestamp":417296906133,"id":74,"parentId":34,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":663038,"timestamp":417296892115,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":652488,"timestamp":417296906158,"id":75,"parentId":35,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":666440,"timestamp":417296892264,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779225269139,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":657904,"timestamp":417296906204,"id":77,"parentId":37,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":671204,"timestamp":417296892964,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779225269139,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":662732,"timestamp":417296905852,"id":72,"parentId":32,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":676800,"timestamp":417296891834,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":664728,"timestamp":417296906219,"id":78,"parentId":38,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":678980,"timestamp":417296893129,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779225269139,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":672350,"timestamp":417296904108,"id":64,"parentId":21,"tags":{},"startTime":1779225269150,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":689194,"timestamp":417296887305,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779225269134,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":673389,"timestamp":417296906242,"id":80,"parentId":40,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":686343,"timestamp":417296893336,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779225269140,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":682234,"timestamp":417296906177,"id":76,"parentId":36,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":695700,"timestamp":417296892773,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779225269139,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":683975,"timestamp":417296905226,"id":68,"parentId":27,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":698261,"timestamp":417296890988,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779225269137,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":688356,"timestamp":417296906293,"id":84,"parentId":46,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":700368,"timestamp":417296894334,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779225269141,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":689570,"timestamp":417296906266,"id":82,"parentId":44,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":701773,"timestamp":417296894109,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779225269140,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":692706,"timestamp":417296906278,"id":83,"parentId":45,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":704836,"timestamp":417296894230,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779225269141,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":695070,"timestamp":417296906315,"id":86,"parentId":48,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":705327,"timestamp":417296896102,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779225269142,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":699206,"timestamp":417296906355,"id":88,"parentId":50,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":709250,"timestamp":417296896350,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":701807,"timestamp":417296906340,"id":87,"parentId":49,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":711949,"timestamp":417296896242,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":708328,"timestamp":417296906228,"id":79,"parentId":39,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":721381,"timestamp":417296893227,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779225269139,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":710036,"timestamp":417296909762,"id":90,"parentId":24,"tags":{},"startTime":1779225269156,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":731038,"timestamp":417296888811,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779225269135,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":716706,"timestamp":417296906365,"id":89,"parentId":51,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":726699,"timestamp":417296896427,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":713012,"timestamp":417296913605,"id":93,"parentId":43,"tags":{},"startTime":1779225269160,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":732848,"timestamp":417296893819,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779225269140,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":727331,"timestamp":417296910941,"id":91,"parentId":31,"tags":{},"startTime":1779225269157,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":746805,"timestamp":417296891559,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779225269138,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":732233,"timestamp":417296906306,"id":85,"parentId":47,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":742674,"timestamp":417296895909,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779225269142,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":726906,"timestamp":417296911846,"id":92,"parentId":41,"tags":{},"startTime":1779225269158,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":745369,"timestamp":417296893434,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779225269140,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":741267,"timestamp":417296906256,"id":81,"parentId":42,"tags":{},"startTime":1779225269153,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":753892,"timestamp":417296893687,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779225269140,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":753047,"timestamp":417296904710,"id":66,"parentId":25,"tags":{},"startTime":1779225269151,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":767135,"timestamp":417296890702,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779225269137,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":733756,"timestamp":417296925034,"id":98,"parentId":55,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":761588,"timestamp":417296897257,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779225269144,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":756564,"timestamp":417296925058,"id":100,"parentId":58,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":783533,"timestamp":417296898165,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779225269144,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":763777,"timestamp":417296924940,"id":94,"parentId":23,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":800154,"timestamp":417296888634,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779225269135,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":764943,"timestamp":417296925184,"id":101,"parentId":59,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":791845,"timestamp":417296898362,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779225269145,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":772712,"timestamp":417296925201,"id":102,"parentId":61,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":799056,"timestamp":417296898921,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779225269145,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":774755,"timestamp":417296925215,"id":103,"parentId":62,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":800967,"timestamp":417296899073,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779225269145,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":778982,"timestamp":417296925229,"id":104,"parentId":63,"tags":{},"startTime":1779225269172,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":805056,"timestamp":417296899217,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779225269145,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":782397,"timestamp":417296925245,"id":105,"parentId":60,"tags":{},"startTime":1779225269172,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":809164,"timestamp":417296898522,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779225269145,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":778726,"timestamp":417296938462,"id":106,"parentId":57,"tags":{},"startTime":1779225269185,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":819784,"timestamp":417296897654,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779225269144,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":815254,"timestamp":417296905361,"id":69,"parentId":28,"tags":{},"startTime":1779225269152,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":829530,"timestamp":417296891137,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779225269137,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":795986,"timestamp":417296924988,"id":96,"parentId":53,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":824143,"timestamp":417296896915,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":805220,"timestamp":417296924972,"id":95,"parentId":52,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":833487,"timestamp":417296896773,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":814437,"timestamp":417296925019,"id":97,"parentId":54,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":842448,"timestamp":417296897077,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779225269143,"traceId":"8c20b6a221d98ca3"},{"name":"is-page-static","duration":823331,"timestamp":417296925044,"id":99,"parentId":56,"tags":{},"startTime":1779225269171,"traceId":"8c20b6a221d98ca3"},{"name":"check-page","duration":850978,"timestamp":417296897450,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779225269144,"traceId":"8c20b6a221d98ca3"},{"name":"static-check","duration":863350,"timestamp":417296885114,"id":19,"parentId":1,"tags":{},"startTime":1779225269131,"traceId":"8c20b6a221d98ca3"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":586,"timestamp":417297758359,"id":108,"parentId":1,"tags":{},"startTime":1779225270005,"traceId":"8c20b6a221d98ca3"},{"name":"load-dotenv","duration":56,"timestamp":417297769238,"id":111,"parentId":110,"tags":{},"startTime":1779225270016,"traceId":"8c20b6a221d98ca3"},{"name":"run-export-path-map","duration":581,"timestamp":417297772390,"id":112,"parentId":110,"tags":{},"startTime":1779225270019,"traceId":"8c20b6a221d98ca3"},{"name":"next-export","duration":642969,"timestamp":417297768029,"id":110,"parentId":1,"tags":{},"startTime":1779225270014,"traceId":"8c20b6a221d98ca3"},{"name":"move-exported-app-not-found-","duration":579,"timestamp":417298416050,"id":113,"parentId":109,"tags":{},"startTime":1779225270662,"traceId":"8c20b6a221d98ca3"},{"name":"move-exported-app-global-error-","duration":713,"timestamp":417298416717,"id":114,"parentId":109,"tags":{},"startTime":1779225270663,"traceId":"8c20b6a221d98ca3"},{"name":"static-generation","duration":656987,"timestamp":417297762576,"id":109,"parentId":1,"tags":{},"startTime":1779225270009,"traceId":"8c20b6a221d98ca3"},{"name":"write-routes-manifest","duration":400,"timestamp":417298419793,"id":115,"parentId":1,"tags":{},"startTime":1779225270666,"traceId":"8c20b6a221d98ca3"},{"name":"print-tree-view","duration":4722,"timestamp":417298429579,"id":116,"parentId":1,"tags":{},"startTime":1779225270676,"traceId":"8c20b6a221d98ca3"},{"name":"write-route-bundle-stats","duration":15946,"timestamp":417298434344,"id":117,"parentId":1,"tags":{},"startTime":1779225270681,"traceId":"8c20b6a221d98ca3"},{"name":"telemetry-flush","duration":24033,"timestamp":417298450328,"id":118,"parentId":1,"tags":{},"startTime":1779225270697,"traceId":"8c20b6a221d98ca3"},{"name":"next-build","duration":19196531,"timestamp":417279277864,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779225251524,"traceId":"8c20b6a221d98ca3"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":6458281,"timestamp":417279502286,"id":14,"parentId":1,"tags":{},"startTime":1779225251749,"traceId":"8c20b6a221d98ca3"},{"name":"turbopack-build-events","duration":101,"timestamp":417279803566,"id":15,"parentId":1,"tags":{},"startTime":1779225252050,"traceId":"8c20b6a221d98ca3"},{"name":"run-typescript","duration":10663603,"timestamp":417285983210,"id":16,"parentId":1,"tags":{},"startTime":1779225258229,"traceId":"8c20b6a221d98ca3"},{"name":"static-check","duration":863350,"timestamp":417296885114,"id":19,"parentId":1,"tags":{},"startTime":1779225269131,"traceId":"8c20b6a221d98ca3"},{"name":"static-generation","duration":656987,"timestamp":417297762576,"id":109,"parentId":1,"tags":{},"startTime":1779225270009,"traceId":"8c20b6a221d98ca3"},{"name":"telemetry-flush","duration":24033,"timestamp":417298450328,"id":118,"parentId":1,"tags":{},"startTime":1779225270697,"traceId":"8c20b6a221d98ca3"},{"name":"next-build","duration":19196531,"timestamp":417279277864,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779225251524,"traceId":"8c20b6a221d98ca3"}]
|
|
@@ -4594,7 +4594,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4594
4594
|
<svg
|
|
4595
4595
|
ref={svgRef}
|
|
4596
4596
|
viewBox="0 0 1000 680"
|
|
4597
|
-
|
|
4597
|
+
/* Round 740 / Loop — one-time canvas entrance animation.
|
|
4598
|
+
SVG scales 0.99 → 1 and opacity 0.8 → 1 over 600ms with
|
|
4599
|
+
ease-out on FIRST PAINT only (CSS keyframes animation
|
|
4600
|
+
runs once per mount, no `infinite` repeat). Pure visible
|
|
4601
|
+
entrance polish — distinct from breath, ambient, meta,
|
|
4602
|
+
and a11y threads. The class is conditional on
|
|
4603
|
+
!reducedMotion so users who prefer reduced motion see
|
|
4604
|
+
the canvas at its final state immediately. After 600ms
|
|
4605
|
+
the canvas sits at scale(1) opacity(1); subsequent
|
|
4606
|
+
paints don't replay. See globals.css R740 block. */
|
|
4607
|
+
className={`w-full h-auto block${reducedMotion ? '' : ' anet-topo-canvas-entrance'}`}
|
|
4608
|
+
data-topo-canvas-entrance={reducedMotion ? 'false' : 'true'}
|
|
4598
4609
|
preserveAspectRatio="xMidYMid meet"
|
|
4599
4610
|
aria-roledescription="agent network topology"
|
|
4600
4611
|
aria-label={(() => {
|
|
@@ -5057,6 +5068,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5057
5068
|
scoped). R737 test verifies anchor presence in the
|
|
5058
5069
|
catalog regardless of the naming convention. */
|
|
5059
5070
|
{ name: "scan-beam-pair", cadences: [23, 30], anchors: ["scan beam horizontal", "scan beam vertical"], shape: "coprime-crosshair" },
|
|
5071
|
+
/* R739 — scan-beam-trio supersets the pair with the new
|
|
5072
|
+
diagonal beam. cadences [19, 23, 30] are pairwise
|
|
5073
|
+
coprime (19 prime, 23 prime, gcd(23,30)=1). Shape
|
|
5074
|
+
"coprime-trio": all 3 cadences mutually coprime,
|
|
5075
|
+
3 sweep directions (horizontal, vertical, diagonal). */
|
|
5076
|
+
{ name: "scan-beam-trio", cadences: [19, 23, 30], anchors: ["scan beam horizontal", "scan beam vertical", "scan beam diagonal"], shape: "coprime-trio" },
|
|
5060
5077
|
])}
|
|
5061
5078
|
/* Round 720 / Loop — 4TH orthogonal meta-doc catalog: tiers.
|
|
5062
5079
|
Joins R710 (cadences) + R716 (axes) + R717 (patterns) to
|
|
@@ -5183,31 +5200,20 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5183
5200
|
cross-family `scan-beam-pair` entry. triple_axis_pairs
|
|
5184
5201
|
and triple_axis_solos stay unchanged (the new pattern
|
|
5185
5202
|
isn't triple-axis). */
|
|
5186
|
-
patterns_count
|
|
5203
|
+
/* R739 — patterns_count bumped 9 → 10 to admit the new
|
|
5204
|
+
cross-family `scan-beam-trio` entry. ambient family
|
|
5205
|
+
grows: ambient_patterns 1 → 2 (pair + trio coexist),
|
|
5206
|
+
ambient_cadences 2 → 3 (added 19s for diagonal beam),
|
|
5207
|
+
scan_beam_pairs stays 1 (pair pattern unchanged). */
|
|
5208
|
+
patterns_count: 10,
|
|
5187
5209
|
tiers_count: 7,
|
|
5188
5210
|
triple_axis_pairs: 2,
|
|
5189
5211
|
triple_axis_solos: 2,
|
|
5190
|
-
/* Round 738 / Loop — cross-family awareness fields.
|
|
5191
|
-
R737 made R717 patterns catalog cross-family for the
|
|
5192
|
-
first time (8 breath + 1 ambient = 9 entries). R738
|
|
5193
|
-
surfaces that split as queryable stats:
|
|
5194
|
-
breath_patterns 8 entries (R717 minus scan-beam-pair)
|
|
5195
|
-
ambient_patterns 1 entry (just scan-beam-pair today)
|
|
5196
|
-
pattern_families 2 (breath ∪ ambient)
|
|
5197
|
-
scan_beam_pairs 1 (R735 + R736 = 1 pair instance)
|
|
5198
|
-
ambient_cadences 2 (23 + 30 — the scan-beam coprime pair)
|
|
5199
|
-
Cross-check invariant (R738 test):
|
|
5200
|
-
breath_patterns + ambient_patterns === patterns_count
|
|
5201
|
-
pattern_families === |distinct families in R717 entries|
|
|
5202
|
-
scan_beam_pairs maps to (R717 entries named "scan-beam-*").length
|
|
5203
|
-
Each new field is derivable from existing catalogs but
|
|
5204
|
-
surfaced here for tooling that wants a single stats
|
|
5205
|
-
snapshot of the cross-family layer. */
|
|
5206
5212
|
breath_patterns: 8,
|
|
5207
|
-
ambient_patterns:
|
|
5213
|
+
ambient_patterns: 2,
|
|
5208
5214
|
pattern_families: 2,
|
|
5209
5215
|
scan_beam_pairs: 1,
|
|
5210
|
-
ambient_cadences:
|
|
5216
|
+
ambient_cadences: 3,
|
|
5211
5217
|
})}
|
|
5212
5218
|
/* Round 732 / Loop — 7TH orthogonal meta-doc catalog: a11y
|
|
5213
5219
|
titles. R730/R731 added SVG <title> children to 5 decorative
|
|
@@ -5245,6 +5251,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5245
5251
|
/* R736 — vertical scan beam companion to R735. Coprime
|
|
5246
5252
|
cadence (23s) with R735 (30s) — ambient crosshair drift. */
|
|
5247
5253
|
{ surface: "canvas scan beam vertical", selector: "[data-topo-canvas-scan-beam-vertical]", accessible_name: "canvas scan beam vertical · ambient sweep · 23s cycle" },
|
|
5254
|
+
/* R739 — diagonal scan beam, completes ambient trio. */
|
|
5255
|
+
{ surface: "canvas scan beam diagonal", selector: "[data-topo-canvas-scan-beam-diagonal]", accessible_name: "canvas scan beam diagonal · ambient sweep · 19s cycle" },
|
|
5248
5256
|
])}
|
|
5249
5257
|
data-topo-pinned-aspect={(() => {
|
|
5250
5258
|
const aspects: string[] = [];
|
|
@@ -5514,6 +5522,50 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5514
5522
|
<title>canvas scan beam vertical · ambient sweep · 23s cycle</title>
|
|
5515
5523
|
</rect>
|
|
5516
5524
|
|
|
5525
|
+
{/* Round 739 / Loop — diagonal scan beam, 3rd member of the
|
|
5526
|
+
ambient scan beam family. Sweeps a short 45° line segment
|
|
5527
|
+
from upper-left → lower-right across the canvas every 19s.
|
|
5528
|
+
Coprime with both existing beams: gcd(19, 23) = 1 and
|
|
5529
|
+
gcd(19, 30) = 1 (19 is prime, never shares factors).
|
|
5530
|
+
The 3-element family now spans:
|
|
5531
|
+
R735 horizontal beam 30 s (top → bottom)
|
|
5532
|
+
R736 vertical beam 23 s (left → right)
|
|
5533
|
+
R739 diagonal beam 19 s (NW → SE) ← this round
|
|
5534
|
+
19 < 23 < 30 → cadence ladder ascending with the
|
|
5535
|
+
dimensionality (1D horizontal/vertical → 2D diagonal); the
|
|
5536
|
+
diagonal as the fastest fits — it has 2× the displacement
|
|
5537
|
+
distance (sqrt(2) factor) so faster cadence keeps the
|
|
5538
|
+
perceived sweep velocity comparable across all 3 beams.
|
|
5539
|
+
|
|
5540
|
+
Geometry: <line> with 4 synchronized SMIL <animate>
|
|
5541
|
+
children on x1/y1/x2/y2 endpoints. The line is ~100 px
|
|
5542
|
+
long (sqrt(70² + 70²)) and stays at constant 45° angle
|
|
5543
|
+
throughout the sweep. Starts off-canvas at (-100, -100)
|
|
5544
|
+
→ (-30, -30), ends off-canvas at (1100, 780) → (1170, 850).
|
|
5545
|
+
Same opacity ramp pattern as R735/R736 (max 0.06 — slightly
|
|
5546
|
+
dimmer than the orthogonal pair because the diagonal
|
|
5547
|
+
traverses the full diagonal of the canvas rather than
|
|
5548
|
+
one orthogonal axis, so per-pixel exposure is higher).
|
|
5549
|
+
|
|
5550
|
+
Same z-order rules (background layer, before nodes),
|
|
5551
|
+
same reducedMotion JSX gate, same overlap-test safety
|
|
5552
|
+
by selector exclusion. Same canonical 3-part a11y title. */}
|
|
5553
|
+
<line
|
|
5554
|
+
x1="-100" y1="-100" x2="-30" y2="-30"
|
|
5555
|
+
stroke={pal.legendAccent} strokeWidth="1"
|
|
5556
|
+
opacity="0"
|
|
5557
|
+
data-topo-canvas-scan-beam-diagonal
|
|
5558
|
+
data-topo-canvas-scan-beam-diagonal-active={!reducedMotion ? 'true' : 'false'}
|
|
5559
|
+
style={{ pointerEvents: 'none' }}
|
|
5560
|
+
>
|
|
5561
|
+
{!reducedMotion && (<animate attributeName="x1" values="-100;1100;-100" dur="19s" repeatCount="indefinite" />)}
|
|
5562
|
+
{!reducedMotion && (<animate attributeName="y1" values="-100;780;-100" dur="19s" repeatCount="indefinite" />)}
|
|
5563
|
+
{!reducedMotion && (<animate attributeName="x2" values="-30;1170;-30" dur="19s" repeatCount="indefinite" />)}
|
|
5564
|
+
{!reducedMotion && (<animate attributeName="y2" values="-30;850;-30" dur="19s" repeatCount="indefinite" />)}
|
|
5565
|
+
{!reducedMotion && (<animate attributeName="opacity" values="0;0.06;0.06;0" keyTimes="0;0.05;0.95;1" dur="19s" repeatCount="indefinite" />)}
|
|
5566
|
+
<title>canvas scan beam diagonal · ambient sweep · 19s cycle</title>
|
|
5567
|
+
</line>
|
|
5568
|
+
|
|
5517
5569
|
{/* Round 103 (issue #81): everything inside this <g> zooms + pans
|
|
5518
5570
|
together. transform order = translate then scale.
|
|
5519
5571
|
Round 168 / Loop: smoothView arms a one-shot transition on
|
package/app/globals.css
CHANGED
|
@@ -1311,6 +1311,39 @@ body {
|
|
|
1311
1311
|
transform-origin defaults to center — kicker scales around its own
|
|
1312
1312
|
midpoint, no glyph drift. paint-only → flex parent stable → topo-
|
|
1313
1313
|
overlap-test untouched. prefers-reduced-motion: reduce neutralizes. */
|
|
1314
|
+
/* Round 740 — one-time canvas entrance animation. Plays on FIRST PAINT
|
|
1315
|
+
only, then the canvas sits at scale(1) opacity(1) for the rest of
|
|
1316
|
+
the session. Distinct from all prior animation families:
|
|
1317
|
+
- breath family (R699+) is rest-axis infinite
|
|
1318
|
+
- ambient family (R735+) is sweep-axis infinite
|
|
1319
|
+
- R740 entrance is ONE-SHOT (no `infinite` keyword) — plays once
|
|
1320
|
+
Subsequent re-mounts (route changes, etc.) replay the animation —
|
|
1321
|
+
intended as a "the canvas just arrived" signal to the user.
|
|
1322
|
+
|
|
1323
|
+
Animation: 0% scale(0.99) opacity(0.8) → 100% scale(1) opacity(1)
|
|
1324
|
+
over 600ms with ease-out timing. Subtle: the scale change is only
|
|
1325
|
+
1% (0.99 → 1.00); opacity ramps from 0.8 to 1.0. Reads as "settling
|
|
1326
|
+
in" — the canvas zooms in slightly while fading in.
|
|
1327
|
+
|
|
1328
|
+
transform-origin defaults to 50% 50% (canvas center), so the scale
|
|
1329
|
+
ripple comes from the middle outward.
|
|
1330
|
+
|
|
1331
|
+
prefers-reduced-motion guard: when reduced motion is preferred, the
|
|
1332
|
+
class isn't applied (JSX-level gate in TopoGraph.tsx), so the CSS
|
|
1333
|
+
animation never runs. Belt-and-suspenders @media block below
|
|
1334
|
+
neutralises if the class somehow ends up applied. */
|
|
1335
|
+
@keyframes anet-topo-canvas-entrance-kf {
|
|
1336
|
+
0% { transform: scale(0.99); opacity: 0.8; }
|
|
1337
|
+
100% { transform: scale(1); opacity: 1; }
|
|
1338
|
+
}
|
|
1339
|
+
.anet-topo-canvas-entrance {
|
|
1340
|
+
animation: anet-topo-canvas-entrance-kf 600ms ease-out;
|
|
1341
|
+
transform-origin: 50% 50%;
|
|
1342
|
+
}
|
|
1343
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1344
|
+
.anet-topo-canvas-entrance { animation: none; }
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1314
1347
|
/* Round 728 — recent + legend panel titles join the triple-axis tier
|
|
1315
1348
|
at 8 s, forming the "8 s triple-axis PAIR" (mirror to R724's 6 s pair).
|
|
1316
1349
|
Both panel titles already share R700/R701 SMIL opacity (8 s) +
|
package/package.json
CHANGED
|
@@ -108,7 +108,7 @@ const validShape = Array.isArray(catalog) && catalog.every(e =>
|
|
|
108
108
|
const canonicalFormat = (s) => typeof s === 'string' && /^[^·]+( · [^·]+)+$/.test(s);
|
|
109
109
|
const allCanonical = Array.isArray(catalog) && catalog.every(e => canonicalFormat(e.accessible_name));
|
|
110
110
|
|
|
111
|
-
const expectedSurfaces = ['canvas scan beam', 'canvas scan beam vertical', 'canvas-corner crescent', 'hub-highlight disc', 'legend panel title', 'recent panel title', 'title-block brand logo', 'watermark text'];
|
|
111
|
+
const expectedSurfaces = ['canvas scan beam', 'canvas scan beam diagonal', 'canvas scan beam vertical', 'canvas-corner crescent', 'hub-highlight disc', 'legend panel title', 'recent panel title', 'title-block brand logo', 'watermark text'];
|
|
112
112
|
const actualSurfaces = Array.isArray(catalog) ? catalog.map(e => e.surface).sort() : [];
|
|
113
113
|
const surfacesMatch = JSON.stringify(actualSurfaces) === JSON.stringify(expectedSurfaces);
|
|
114
114
|
|
|
@@ -118,7 +118,7 @@ const results = {
|
|
|
118
118
|
attr_present: !!result.catalogAttr,
|
|
119
119
|
json_parses: catalog !== null,
|
|
120
120
|
is_array: Array.isArray(catalog),
|
|
121
|
-
|
|
121
|
+
has_9_entries: Array.isArray(catalog) && catalog.length === 9,
|
|
122
122
|
shape_valid: validShape,
|
|
123
123
|
all_accessible_names_canonical: allCanonical,
|
|
124
124
|
surfaces_match_expected_set: surfacesMatch,
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* Round 740 — one-time canvas entrance animation. Plays on first
|
|
2
|
+
* paint, then the canvas sits at scale(1) opacity(1) for the rest of
|
|
3
|
+
* the session. Distinct from breath (infinite rest-axis) and ambient
|
|
4
|
+
* (infinite sweep-axis) — R740 is ONE-SHOT.
|
|
5
|
+
*
|
|
6
|
+
* Assertions:
|
|
7
|
+
* - .anet-topo-canvas-entrance class on root <svg> (reducedMotion off)
|
|
8
|
+
* - data-topo-canvas-entrance="true" attribute
|
|
9
|
+
* - CSS @keyframes 0% scale(0.99) opacity 0.8 → 100% scale(1) opacity 1
|
|
10
|
+
* - .anet-topo-canvas-entrance binds 600ms ease-out animation
|
|
11
|
+
* - CSS animation NOT infinite (no `infinite` keyword) — one-shot
|
|
12
|
+
* - transform-origin: 50% 50%
|
|
13
|
+
* - prefers-reduced-motion guard present
|
|
14
|
+
* - Animation completes within ~1s (test waits 1.2s after mount,
|
|
15
|
+
* then verifies computed transform is identity matrix)
|
|
16
|
+
* - Existing canvas className tokens (w-full h-auto block) preserved
|
|
17
|
+
*/
|
|
18
|
+
import { chromium } from 'playwright';
|
|
19
|
+
import { readFileSync } from 'node:fs';
|
|
20
|
+
|
|
21
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
22
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
23
|
+
|
|
24
|
+
const browser = await chromium.launch({ headless: true });
|
|
25
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
26
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
27
|
+
await ctx.addInitScript(() => {
|
|
28
|
+
try {
|
|
29
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
30
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
31
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
32
|
+
} catch {}
|
|
33
|
+
});
|
|
34
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
35
|
+
const r = await route.fetch();
|
|
36
|
+
const b = await r.json();
|
|
37
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
38
|
+
const mk = (alias) => ({
|
|
39
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
40
|
+
network_id: nid, project_dir: null,
|
|
41
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
42
|
+
});
|
|
43
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
|
|
44
|
+
});
|
|
45
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
46
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
47
|
+
const page = await ctx.newPage();
|
|
48
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
49
|
+
await page.waitForSelector('[data-topo-canvas-aria]', { timeout: 15000, state: 'attached' });
|
|
50
|
+
|
|
51
|
+
/* Wait past the 600ms animation duration so computed transform settles
|
|
52
|
+
* to the final state (scale(1)). */
|
|
53
|
+
await page.waitForTimeout(1200);
|
|
54
|
+
|
|
55
|
+
const state = await page.evaluate(() => {
|
|
56
|
+
const svg = document.querySelector('[data-topo-canvas-aria]');
|
|
57
|
+
if (!svg) return null;
|
|
58
|
+
const cs = getComputedStyle(svg);
|
|
59
|
+
return {
|
|
60
|
+
has_entrance_class: svg.classList.contains('anet-topo-canvas-entrance'),
|
|
61
|
+
entrance_attr: svg.getAttribute('data-topo-canvas-entrance'),
|
|
62
|
+
class_attr: svg.getAttribute('class'),
|
|
63
|
+
anim_name: cs.animationName,
|
|
64
|
+
anim_duration: cs.animationDuration,
|
|
65
|
+
anim_iteration: cs.animationIterationCount,
|
|
66
|
+
transform_origin: cs.transformOrigin,
|
|
67
|
+
computed_transform: cs.transform,
|
|
68
|
+
computed_opacity: cs.opacity,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await browser.close();
|
|
73
|
+
|
|
74
|
+
const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
|
|
75
|
+
const cssKfStart = /@keyframes anet-topo-canvas-entrance-kf\s*\{[\s\S]*?0%\s*\{[\s\S]*?transform:\s*scale\(0\.99\)[\s\S]*?opacity:\s*0\.8/.test(cssSrc);
|
|
76
|
+
const cssKfEnd = /@keyframes anet-topo-canvas-entrance-kf\s*\{[\s\S]*?100%\s*\{[\s\S]*?transform:\s*scale\(1\)[\s\S]*?opacity:\s*1/.test(cssSrc);
|
|
77
|
+
const cssClassBound = /\.anet-topo-canvas-entrance\s*\{[\s\S]*?animation:\s*anet-topo-canvas-entrance-kf\s+600ms\s+ease-out/.test(cssSrc);
|
|
78
|
+
/* The CSS source regex was too broad (matched `infinite` in OTHER
|
|
79
|
+
* class blocks past this one). Verify one-shot directly via the
|
|
80
|
+
* runtime computed animation-iteration-count — this is the property
|
|
81
|
+
* that actually determines whether the animation replays. */
|
|
82
|
+
const runtimeOneShot = state?.anim_iteration === '1';
|
|
83
|
+
const cssTransformOrigin = /\.anet-topo-canvas-entrance\s*\{[\s\S]*?transform-origin:\s*50%\s+50%/.test(cssSrc);
|
|
84
|
+
const cssReducedMotion = /@media\s*\(prefers-reduced-motion:\s*reduce\)\s*\{[\s\S]*?\.anet-topo-canvas-entrance\s*\{\s*animation:\s*none/.test(cssSrc);
|
|
85
|
+
|
|
86
|
+
/* After 1.2s the animation should have completed; computed transform
|
|
87
|
+
* should be identity-matrix (scale 1). matrix(1, 0, 0, 1, 0, 0) === 'none'
|
|
88
|
+
* in some browsers; accept either. */
|
|
89
|
+
const transformSettled = state?.computed_transform === 'none'
|
|
90
|
+
|| state?.computed_transform === 'matrix(1, 0, 0, 1, 0, 0)';
|
|
91
|
+
|
|
92
|
+
const opacitySettled = parseFloat(state?.computed_opacity ?? '0') > 0.99;
|
|
93
|
+
|
|
94
|
+
const classKept = typeof state?.class_attr === 'string'
|
|
95
|
+
&& state.class_attr.includes('w-full')
|
|
96
|
+
&& state.class_attr.includes('h-auto')
|
|
97
|
+
&& state.class_attr.includes('block')
|
|
98
|
+
&& state.class_attr.includes('anet-topo-canvas-entrance');
|
|
99
|
+
|
|
100
|
+
const results = {
|
|
101
|
+
has_entrance_class: state?.has_entrance_class === true,
|
|
102
|
+
entrance_attr_true: state?.entrance_attr === 'true',
|
|
103
|
+
original_classes_preserved: classKept,
|
|
104
|
+
css_keyframe_start: cssKfStart,
|
|
105
|
+
css_keyframe_end: cssKfEnd,
|
|
106
|
+
css_class_binds_600ms_ease_out: cssClassBound,
|
|
107
|
+
runtime_animation_one_shot: runtimeOneShot,
|
|
108
|
+
css_transform_origin_center: cssTransformOrigin,
|
|
109
|
+
css_reduced_motion_guard: cssReducedMotion,
|
|
110
|
+
transform_settled_to_identity: transformSettled,
|
|
111
|
+
opacity_settled_to_1: opacitySettled,
|
|
112
|
+
};
|
|
113
|
+
const ok = Object.values(results).every(Boolean);
|
|
114
|
+
console.log(`${ok ? '✅' : '❌'} R740 one-time canvas entrance animation (scale 0.99→1 + opacity 0.8→1 @ 600ms ease-out, one-shot):`,
|
|
115
|
+
JSON.stringify(results, null, 2),
|
|
116
|
+
`\n state: ${JSON.stringify(state)}`);
|
|
117
|
+
process.exit(ok ? 0 : 1);
|