@sleep2agi/agent-network-dashboard 0.5.1-preview.66 → 0.5.1-preview.68
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 +4 -4
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{06xpgr~ljg-so.js → 0hannsk~p5sjc.js} +2 -2
- package/.next/static/chunks/{0oge56y7wyv07.js → 0rtdswjsz0em6.js} +1 -1
- package/.next/static/chunks/{0bmuo_~tnu3eu.js → 15b.z4cz5arvv.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +59 -7
- package/package.json +1 -1
- package/scripts/topo-edge-freshness-floor-test.mjs +99 -0
- package/scripts/topo-node-halo-offline-opacity-test.mjs +87 -0
- /package/.next/static/{nZA6I2WlboppxV3ccft1K → urudwbBaMeFYVotTRH7yJ}/_buildManifest.js +0 -0
- /package/.next/static/{nZA6I2WlboppxV3ccft1K → urudwbBaMeFYVotTRH7yJ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{nZA6I2WlboppxV3ccft1K → urudwbBaMeFYVotTRH7yJ}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.1-preview.
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.1-preview.67"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.1-preview.65"],70286)},65610,e=>{"use strict";var s=e.i(22381),a=e.i(23910),t=e.i(56839),r=e.i(59276),n=e.i(70286);e.s(["default",0,function(){let{config:e}=(0,r.useAnetConfig)(),{health:l}=(0,r.useHealth)(),{license:i}=(0,r.useLicense)(),[c,d]=(0,a.useState)(""),[o,x]=(0,a.useState)(""),[m,h]=(0,a.useState)(""),[g,u]=(0,a.useState)(""),[p,N]=(0,a.useState)(""),b="flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",j="break-all sm:max-w-[320px] sm:text-right";return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white mb-3 lg:ml-0 ml-10",children:"Settings"}),(0,s.jsx)("nav",{className:"mb-8 flex flex-wrap gap-1 text-xs",children:[{href:"#connection",label:"Connection"},{href:"#account",label:"Account"},{href:"#resources",label:"Resources"}].map(e=>(0,s.jsx)("a",{href:e.href,className:"rounded-md px-2.5 py-1 text-gray-500 hover:text-cyan-300 hover:bg-cyan-500/10 transition-colors",children:e.label},e.href))}),(0,s.jsxs)("div",{className:"max-w-2xl space-y-10",children:[(0,s.jsxs)("div",{id:"connection",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Connection"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"CommHub Connection"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500 shrink-0",children:"Hub URL"}),(0,s.jsx)("span",{className:`text-cyan-300 ${j}`,children:e?.hub||"not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Config Source"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:e?.source==="file"?"Local file (~/.anet/config.json)":e?.source==="runtime-env"?"Vercel env vars":"Missing"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Auth Token"}),(0,s.jsx)("span",{className:`${e?.tokenConfigured?"text-green-400":"text-red-400"} ${j}`,children:e?.tokenConfigured?`Configured (${e.tokenPreview})`:"Not configured"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Server Auth"}),(0,s.jsx)("span",{className:`${l?.auth==="enabled"?"text-green-400":"text-yellow-400"} sm:text-right`,children:l?.auth||"--"})]}),e?.error&&(0,s.jsx)("div",{className:"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600",children:e.error})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Server Info"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.version||"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Sessions"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sessions??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsxs)("span",{className:"text-gray-500",children:["SSE streams ",(0,s.jsx)("span",{className:"text-gray-600",children:"· server"})]}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.sse_connections??"--"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Uptime"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:l?.uptime?`${Math.floor(l.uptime/3600)}h ${Math.floor(l.uptime%3600/60)}m`:"--"})]})]})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Dashboard"}),(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Version"}),(0,s.jsx)("span",{className:`text-gray-300 font-mono ${j}`,title:"From package.json @sleep2agi/agent-network-dashboard",children:n.DASHBOARD_VERSION})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Data Layer"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"SWR (5s refresh, 3s dedup)"})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Pages"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:"Overview, Tasks, Nodes, Messages, Networks, Audit, Server Logs, Admin, Settings"})]})]})]})]}),(0,s.jsxs)("div",{id:"account",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Account"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsxs)("h2",{className:"text-sm font-semibold text-gray-300 mb-4 flex items-center gap-2",children:["License",i?.license&&(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-[10px] font-medium px-2 py-0.5 rounded-full border ${"pro"===i.license.type?"text-green-300 bg-green-500/10 border-green-500/30":i.license.days_left<=7?"text-red-300 bg-red-500/10 border-red-500/30":"text-amber-300 bg-amber-500/10 border-amber-500/30"}`,children:[(0,s.jsx)("span",{"aria-hidden":!0,className:"w-1.5 h-1.5 rounded-full bg-current"}),i.license.type,i.license.days_left?` \xb7 ${i.license.days_left}d left`:""]})]}),i?.license?(0,s.jsxs)("div",{className:"space-y-3 text-sm",children:[i.license.days_left<=7&&(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-red-400 font-medium",children:"⚠ Expiring soon"}),(0,s.jsxs)("span",{className:"text-red-400",children:[i.license.days_left," days left"]})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Expires"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.license.expires_at})]}),i.limits&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Agents"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_agents})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Max Networks"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_networks})]}),(0,s.jsxs)("div",{className:b,children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Tasks/Day"}),(0,s.jsx)("span",{className:`text-gray-300 ${j}`,children:i.limits.max_tasks_day})]})]}),(0,s.jsxs)("div",{className:"pt-3 border-t border-[#2a2a4a]",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"anet-XXXX-XXXX-XXXX-XXXX",className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!c.trim())return;let e=await fetch("/api/hub/license",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:c})}),s=await e.json();x(s.ok?`Activated: ${s.type}`:`Failed: ${s.error}`),s.ok&&d(""),setTimeout(()=>x(""),5e3)},className:"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors",children:"Activate"})]}),o&&(0,s.jsx)("div",{className:`mt-2 text-xs ${o.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:o})]})]}):(0,s.jsx)("div",{className:"text-xs text-gray-600",children:"License info not available"})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Change Password"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("input",{type:"password",value:m,onChange:e=>h(e.target.value),placeholder:"Current password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("input",{type:"password",value:g,onChange:e=>u(e.target.value),placeholder:"New password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none"}),(0,s.jsx)("button",{onClick:async()=>{if(!m||!g)return;let e=sessionStorage.getItem("anet_v3_auth");if(!e)return void N("Not logged in with V3 auth");let{token:s}=JSON.parse(e),a=await fetch("/api/hub/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"change_password",token:s,current_password:m,new_password:g})}),t=await a.json();if(N(t.ok?"Password changed":`Failed: ${t.error}`),t.ok){if(t.token){let s=JSON.parse(e);sessionStorage.setItem("anet_v3_auth",JSON.stringify({...s,token:t.token}))}h(""),u("")}setTimeout(()=>N(""),5e3)},disabled:!m||!g,className:"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors",children:"Change Password"})]}),p&&(0,s.jsx)("div",{className:`mt-2 text-xs ${p.startsWith("Failed")?"text-red-400":"text-green-400"}`,children:p})]}),(0,s.jsxs)("section",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-4",children:"Sign out"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Signing out clears your dashboard session cookie. You'll return to the login page."}),(0,s.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),window.location.assign("/login")},className:"px-4 py-2 bg-transparent hover:bg-[#1a1a2a] text-gray-300 text-sm rounded-lg border border-[#2a2a4a] hover:border-[#3a3a5a] transition-colors",children:"Sign out"})]})]}),(0,s.jsxs)("div",{id:"resources",className:"space-y-4 scroll-mt-6",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,s.jsx)("div",{className:"text-[11px] uppercase tracking-[0.14em] text-gray-400 font-semibold",children:"Resources"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-[#2a2a4a]"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,s.jsxs)(t.default,{href:"/settings/tokens",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"API Tokens"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create and manage tokens for CLI access."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]}),(0,s.jsxs)(t.default,{href:"/settings/networks",className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold text-gray-300",children:"Networks"}),(0,s.jsx)("p",{className:"text-xs text-gray-500 mt-2",children:"Create, manage, and delete agent networks."}),(0,s.jsx)("span",{className:"text-xs text-cyan-400 mt-3 inline-block",children:"Manage →"})]})]})]})]})]})}])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.1-preview.67"],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":315,"timestamp":151209515527,"id":4,"parentId":1,"tags":{},"startTime":1778959181762,"traceId":"8d720ab1517efe94"},{"name":"load-custom-routes","duration":470,"timestamp":151209516020,"id":5,"parentId":1,"tags":{},"startTime":1778959181762,"traceId":"8d720ab1517efe94"},{"name":"create-dist-dir","duration":787,"timestamp":151209516533,"id":6,"parentId":1,"tags":{},"startTime":1778959181763,"traceId":"8d720ab1517efe94"},{"name":"clean","duration":41431,"timestamp":151209518037,"id":7,"parentId":1,"tags":{},"startTime":1778959181764,"traceId":"8d720ab1517efe94"},{"name":"discover-routes","duration":28105,"timestamp":151209650577,"id":8,"parentId":1,"tags":{},"startTime":1778959181897,"traceId":"8d720ab1517efe94"},{"name":"create-root-mapping","duration":139,"timestamp":151209678747,"id":9,"parentId":1,"tags":{},"startTime":1778959181925,"traceId":"8d720ab1517efe94"},{"name":"generate-route-types","duration":19344,"timestamp":151209681780,"id":10,"parentId":1,"tags":{},"startTime":1778959181928,"traceId":"8d720ab1517efe94"},{"name":"public-dir-conflict-check","duration":101,"timestamp":151209701208,"id":11,"parentId":1,"tags":{},"startTime":1778959181947,"traceId":"8d720ab1517efe94"},{"name":"generate-routes-manifest","duration":5452,"timestamp":151209701428,"id":12,"parentId":1,"tags":{},"startTime":1778959181948,"traceId":"8d720ab1517efe94"},{"name":"run-turbopack","duration":5864622,"timestamp":151209713086,"id":14,"parentId":1,"tags":{},"startTime":1778959181959,"traceId":"8d720ab1517efe94"},{"name":"turbopack-build-events","duration":116,"timestamp":151210009716,"id":15,"parentId":1,"tags":{},"startTime":1778959182256,"traceId":"8d720ab1517efe94"},{"name":"run-typescript","duration":9212491,"timestamp":151215600224,"id":16,"parentId":1,"tags":{},"startTime":1778959187847,"traceId":"8d720ab1517efe94"},{"name":"generate-required-server-files","duration":2273,"timestamp":151224813829,"id":18,"parentId":1,"tags":{},"startTime":1778959197060,"traceId":"8d720ab1517efe94"},{"name":"check-static-error-page","duration":11033,"timestamp":151224965500,"id":20,"parentId":19,"tags":{},"startTime":1778959197212,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":465713,"timestamp":151224978741,"id":65,"parentId":22,"tags":{},"startTime":1778959197225,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":476914,"timestamp":151224967707,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778959197214,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":541071,"timestamp":151224978891,"id":66,"parentId":25,"tags":{},"startTime":1778959197225,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":550126,"timestamp":151224969991,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778959197216,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":546635,"timestamp":151224980236,"id":67,"parentId":26,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":556765,"timestamp":151224970173,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778959197216,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":551100,"timestamp":151224980507,"id":69,"parentId":28,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":561244,"timestamp":151224970415,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":550872,"timestamp":151224981237,"id":73,"parentId":33,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":560977,"timestamp":151224971182,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":563952,"timestamp":151224980388,"id":68,"parentId":27,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":574297,"timestamp":151224970278,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":577451,"timestamp":151224981055,"id":72,"parentId":32,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":587489,"timestamp":151224971084,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":577378,"timestamp":151224981351,"id":75,"parentId":35,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":587420,"timestamp":151224971342,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":582147,"timestamp":151224981323,"id":74,"parentId":34,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":592266,"timestamp":151224971263,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":586722,"timestamp":151224980970,"id":71,"parentId":30,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":597049,"timestamp":151224970698,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":590180,"timestamp":151224981418,"id":78,"parentId":38,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":599781,"timestamp":151224971874,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":593941,"timestamp":151224981401,"id":77,"parentId":37,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":603622,"timestamp":151224971770,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":597359,"timestamp":151224981372,"id":76,"parentId":36,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":607113,"timestamp":151224971662,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":598109,"timestamp":151224981429,"id":79,"parentId":39,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":607639,"timestamp":151224971947,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":601390,"timestamp":151224981465,"id":82,"parentId":44,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":610366,"timestamp":151224972534,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":606745,"timestamp":151224980802,"id":70,"parentId":29,"tags":{},"startTime":1778959197227,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":617058,"timestamp":151224970542,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":610244,"timestamp":151224981503,"id":85,"parentId":47,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":619070,"timestamp":151224972749,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":613247,"timestamp":151224981456,"id":81,"parentId":42,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":622490,"timestamp":151224972267,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":614987,"timestamp":151224981475,"id":83,"parentId":45,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":623892,"timestamp":151224972617,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":615185,"timestamp":151224981489,"id":84,"parentId":46,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":624030,"timestamp":151224972678,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":615336,"timestamp":151224981527,"id":87,"parentId":49,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":622804,"timestamp":151224974094,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778959197220,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":620652,"timestamp":151224981513,"id":86,"parentId":48,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":629375,"timestamp":151224972830,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":620928,"timestamp":151224981549,"id":89,"parentId":51,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":628198,"timestamp":151224974314,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":621106,"timestamp":151224981540,"id":88,"parentId":50,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":628425,"timestamp":151224974246,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":621321,"timestamp":151224981443,"id":80,"parentId":40,"tags":{},"startTime":1778959197228,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":630774,"timestamp":151224972025,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":615147,"timestamp":151224987759,"id":90,"parentId":24,"tags":{},"startTime":1778959197234,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":634784,"timestamp":151224968144,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778959197214,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":615160,"timestamp":151224988779,"id":91,"parentId":31,"tags":{},"startTime":1778959197235,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":633138,"timestamp":151224970843,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778959197217,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":625023,"timestamp":151224990939,"id":93,"parentId":43,"tags":{},"startTime":1778959197237,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":643693,"timestamp":151224972356,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778959197219,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":626582,"timestamp":151224989632,"id":92,"parentId":41,"tags":{},"startTime":1778959197236,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":644157,"timestamp":151224972089,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778959197218,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":667195,"timestamp":151224978431,"id":64,"parentId":21,"tags":{},"startTime":1778959197225,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":679083,"timestamp":151224966618,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778959197213,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":659573,"timestamp":151224993362,"id":100,"parentId":58,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":677369,"timestamp":151224975623,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778959197222,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":671117,"timestamp":151224993327,"id":97,"parentId":54,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":689731,"timestamp":151224974814,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":679202,"timestamp":151224993336,"id":98,"parentId":55,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":697662,"timestamp":151224974949,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":679496,"timestamp":151224993266,"id":94,"parentId":23,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":704872,"timestamp":151224967936,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778959197214,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":681636,"timestamp":151224993487,"id":102,"parentId":61,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":699000,"timestamp":151224976180,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778959197222,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":687816,"timestamp":151224993313,"id":96,"parentId":53,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":706476,"timestamp":151224974704,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":677566,"timestamp":151225005079,"id":105,"parentId":57,"tags":{},"startTime":1778959197251,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":707421,"timestamp":151224975261,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778959197222,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":691173,"timestamp":151224993515,"id":104,"parentId":63,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":708361,"timestamp":151224976367,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778959197223,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":692658,"timestamp":151224993503,"id":103,"parentId":62,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":709921,"timestamp":151224976277,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778959197223,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":673572,"timestamp":151225013906,"id":106,"parentId":60,"tags":{},"startTime":1778959197260,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":711625,"timestamp":151224975894,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778959197222,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":696069,"timestamp":151224993471,"id":101,"parentId":59,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":713814,"timestamp":151224975764,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778959197222,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":696722,"timestamp":151224993349,"id":99,"parentId":56,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":714992,"timestamp":151224975099,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"is-page-static","duration":699310,"timestamp":151224993290,"id":95,"parentId":52,"tags":{},"startTime":1778959197240,"traceId":"8d720ab1517efe94"},{"name":"check-page","duration":718027,"timestamp":151224974604,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778959197221,"traceId":"8d720ab1517efe94"},{"name":"static-check","duration":728002,"timestamp":151224964684,"id":19,"parentId":1,"tags":{},"startTime":1778959197211,"traceId":"8d720ab1517efe94"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":269,"timestamp":151735899635,"id":4,"parentId":1,"tags":{},"startTime":1778959708146,"traceId":"aa1c60eb5e0927e5"},{"name":"load-custom-routes","duration":637,"timestamp":151735900068,"id":5,"parentId":1,"tags":{},"startTime":1778959708146,"traceId":"aa1c60eb5e0927e5"},{"name":"create-dist-dir","duration":809,"timestamp":151735900750,"id":6,"parentId":1,"tags":{},"startTime":1778959708147,"traceId":"aa1c60eb5e0927e5"},{"name":"clean","duration":39651,"timestamp":151735902553,"id":7,"parentId":1,"tags":{},"startTime":1778959708149,"traceId":"aa1c60eb5e0927e5"},{"name":"discover-routes","duration":11714,"timestamp":151736032471,"id":8,"parentId":1,"tags":{},"startTime":1778959708279,"traceId":"aa1c60eb5e0927e5"},{"name":"create-root-mapping","duration":176,"timestamp":151736044280,"id":9,"parentId":1,"tags":{},"startTime":1778959708291,"traceId":"aa1c60eb5e0927e5"},{"name":"generate-route-types","duration":43295,"timestamp":151736048425,"id":10,"parentId":1,"tags":{},"startTime":1778959708295,"traceId":"aa1c60eb5e0927e5"},{"name":"public-dir-conflict-check","duration":162,"timestamp":151736091856,"id":11,"parentId":1,"tags":{},"startTime":1778959708338,"traceId":"aa1c60eb5e0927e5"},{"name":"generate-routes-manifest","duration":5166,"timestamp":151736092196,"id":12,"parentId":1,"tags":{},"startTime":1778959708338,"traceId":"aa1c60eb5e0927e5"},{"name":"run-turbopack","duration":5892936,"timestamp":151736103304,"id":14,"parentId":1,"tags":{},"startTime":1778959708350,"traceId":"aa1c60eb5e0927e5"},{"name":"turbopack-build-events","duration":73,"timestamp":151736401898,"id":15,"parentId":1,"tags":{},"startTime":1778959708648,"traceId":"aa1c60eb5e0927e5"},{"name":"run-typescript","duration":9204279,"timestamp":151742010118,"id":16,"parentId":1,"tags":{},"startTime":1778959714256,"traceId":"aa1c60eb5e0927e5"},{"name":"generate-required-server-files","duration":2126,"timestamp":151751215428,"id":18,"parentId":1,"tags":{},"startTime":1778959723462,"traceId":"aa1c60eb5e0927e5"},{"name":"check-static-error-page","duration":15128,"timestamp":151751415708,"id":20,"parentId":19,"tags":{},"startTime":1778959723662,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":401634,"timestamp":151751433750,"id":65,"parentId":22,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":416572,"timestamp":151751418967,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778959723665,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":518822,"timestamp":151751434578,"id":71,"parentId":30,"tags":{},"startTime":1778959723681,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":530596,"timestamp":151751422901,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":538844,"timestamp":151751434646,"id":72,"parentId":32,"tags":{},"startTime":1778959723681,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":550223,"timestamp":151751423344,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778959723670,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":556305,"timestamp":151751434127,"id":69,"parentId":28,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":567890,"timestamp":151751422621,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":561431,"timestamp":151751436638,"id":73,"parentId":33,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":574676,"timestamp":151751423471,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778959723670,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":564517,"timestamp":151751433851,"id":66,"parentId":25,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":576203,"timestamp":151751422206,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778959723668,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":561971,"timestamp":151751436758,"id":74,"parentId":34,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":575213,"timestamp":151751423580,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778959723670,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":567328,"timestamp":151751436812,"id":75,"parentId":35,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":580494,"timestamp":151751423696,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778959723670,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":570798,"timestamp":151751436880,"id":78,"parentId":38,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":583150,"timestamp":151751424581,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":575387,"timestamp":151751436836,"id":76,"parentId":36,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":588044,"timestamp":151751424223,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778959723670,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":575517,"timestamp":151751436892,"id":79,"parentId":39,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":587751,"timestamp":151751424684,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":583417,"timestamp":151751436903,"id":80,"parentId":40,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":595574,"timestamp":151751424793,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":587189,"timestamp":151751436913,"id":81,"parentId":42,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":598976,"timestamp":151751425180,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":588799,"timestamp":151751436925,"id":82,"parentId":44,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":600175,"timestamp":151751425600,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":591673,"timestamp":151751436936,"id":83,"parentId":45,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":602922,"timestamp":151751425727,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":594659,"timestamp":151751436947,"id":84,"parentId":46,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":605798,"timestamp":151751425848,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":600857,"timestamp":151751436865,"id":77,"parentId":37,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":613345,"timestamp":151751424445,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":600971,"timestamp":151751436957,"id":85,"parentId":47,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":612000,"timestamp":151751425956,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":604198,"timestamp":151751433922,"id":67,"parentId":26,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":615765,"timestamp":151751422385,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":606658,"timestamp":151751436990,"id":88,"parentId":50,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":617399,"timestamp":151751426288,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778959723673,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":609413,"timestamp":151751436968,"id":86,"parentId":48,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":620345,"timestamp":151751426073,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":615460,"timestamp":151751433468,"id":64,"parentId":21,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":631606,"timestamp":151751417362,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778959723664,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":603718,"timestamp":151751445598,"id":90,"parentId":24,"tags":{},"startTime":1778959723692,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":629838,"timestamp":151751419515,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778959723666,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":612501,"timestamp":151751436979,"id":87,"parentId":49,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":623307,"timestamp":151751426197,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":608307,"timestamp":151751446756,"id":91,"parentId":31,"tags":{},"startTime":1778959723693,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":632055,"timestamp":151751423053,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":607137,"timestamp":151751451346,"id":93,"parentId":43,"tags":{},"startTime":1778959723698,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":633200,"timestamp":151751425324,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778959723672,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":629806,"timestamp":151751437026,"id":89,"parentId":51,"tags":{},"startTime":1778959723683,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":640498,"timestamp":151751426378,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778959723673,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":636315,"timestamp":151751434401,"id":70,"parentId":29,"tags":{},"startTime":1778959723681,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":648036,"timestamp":151751422743,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":656723,"timestamp":151751433990,"id":68,"parentId":27,"tags":{},"startTime":1778959723680,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":668289,"timestamp":151751422504,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778959723669,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":669644,"timestamp":151751447616,"id":92,"parentId":41,"tags":{},"startTime":1778959723694,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":692450,"timestamp":151751424887,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778959723671,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":663440,"timestamp":151751454087,"id":95,"parentId":52,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":690778,"timestamp":151751426788,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778959723673,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":667988,"timestamp":151751454099,"id":96,"parentId":53,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":695180,"timestamp":151751426959,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778959723673,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":672721,"timestamp":151751454257,"id":101,"parentId":59,"tags":{},"startTime":1778959723701,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":697543,"timestamp":151751429532,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778959723676,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":674366,"timestamp":151751454060,"id":94,"parentId":23,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":709188,"timestamp":151751419282,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778959723666,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":676423,"timestamp":151751454109,"id":97,"parentId":54,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":702692,"timestamp":151751427885,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778959723674,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":681035,"timestamp":151751454137,"id":100,"parentId":58,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":705898,"timestamp":151751429312,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778959723676,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":681567,"timestamp":151751454292,"id":104,"parentId":63,"tags":{},"startTime":1778959723701,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":705340,"timestamp":151751430557,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778959723677,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":668101,"timestamp":151751469816,"id":105,"parentId":60,"tags":{},"startTime":1778959723716,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":708226,"timestamp":151751429728,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778959723676,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":686188,"timestamp":151751454274,"id":102,"parentId":61,"tags":{},"startTime":1778959723701,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":710281,"timestamp":151751430220,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778959723676,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":687450,"timestamp":151751454283,"id":103,"parentId":62,"tags":{},"startTime":1778959723701,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":711397,"timestamp":151751430393,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778959723677,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":672351,"timestamp":151751478746,"id":106,"parentId":57,"tags":{},"startTime":1778959723725,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":722451,"timestamp":151751428689,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778959723675,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":712957,"timestamp":151751454128,"id":99,"parentId":56,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":738810,"timestamp":151751428421,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778959723675,"traceId":"aa1c60eb5e0927e5"},{"name":"is-page-static","duration":714745,"timestamp":151751454118,"id":98,"parentId":55,"tags":{},"startTime":1778959723700,"traceId":"aa1c60eb5e0927e5"},{"name":"check-page","duration":740750,"timestamp":151751428149,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778959723674,"traceId":"aa1c60eb5e0927e5"},{"name":"static-check","duration":754469,"timestamp":151751414463,"id":19,"parentId":1,"tags":{},"startTime":1778959723661,"traceId":"aa1c60eb5e0927e5"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":649,"timestamp":151752178082,"id":108,"parentId":1,"tags":{},"startTime":1778959724424,"traceId":"aa1c60eb5e0927e5"},{"name":"load-dotenv","duration":66,"timestamp":151752190779,"id":111,"parentId":110,"tags":{},"startTime":1778959724437,"traceId":"aa1c60eb5e0927e5"},{"name":"run-export-path-map","duration":583,"timestamp":151752193677,"id":112,"parentId":110,"tags":{},"startTime":1778959724440,"traceId":"aa1c60eb5e0927e5"},{"name":"next-export","duration":564696,"timestamp":151752189557,"id":110,"parentId":1,"tags":{},"startTime":1778959724436,"traceId":"aa1c60eb5e0927e5"},{"name":"move-exported-app-not-found-","duration":565,"timestamp":151752758841,"id":113,"parentId":109,"tags":{},"startTime":1778959725005,"traceId":"aa1c60eb5e0927e5"},{"name":"move-exported-app-global-error-","duration":394,"timestamp":151752759501,"id":114,"parentId":109,"tags":{},"startTime":1778959725006,"traceId":"aa1c60eb5e0927e5"},{"name":"static-generation","duration":579557,"timestamp":151752182890,"id":109,"parentId":1,"tags":{},"startTime":1778959724429,"traceId":"aa1c60eb5e0927e5"},{"name":"write-routes-manifest","duration":502,"timestamp":151752762709,"id":115,"parentId":1,"tags":{},"startTime":1778959725009,"traceId":"aa1c60eb5e0927e5"},{"name":"print-tree-view","duration":5896,"timestamp":151752772673,"id":116,"parentId":1,"tags":{},"startTime":1778959725019,"traceId":"aa1c60eb5e0927e5"},{"name":"write-route-bundle-stats","duration":18718,"timestamp":151752778623,"id":117,"parentId":1,"tags":{},"startTime":1778959725025,"traceId":"aa1c60eb5e0927e5"},{"name":"telemetry-flush","duration":22831,"timestamp":151752797367,"id":118,"parentId":1,"tags":{},"startTime":1778959725044,"traceId":"aa1c60eb5e0927e5"},{"name":"next-build","duration":16973189,"timestamp":151735847034,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778959708093,"traceId":"aa1c60eb5e0927e5"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5892936,"timestamp":151736103304,"id":14,"parentId":1,"tags":{},"startTime":1778959708350,"traceId":"aa1c60eb5e0927e5"},{"name":"turbopack-build-events","duration":73,"timestamp":151736401898,"id":15,"parentId":1,"tags":{},"startTime":1778959708648,"traceId":"aa1c60eb5e0927e5"},{"name":"run-typescript","duration":9204279,"timestamp":151742010118,"id":16,"parentId":1,"tags":{},"startTime":1778959714256,"traceId":"aa1c60eb5e0927e5"},{"name":"static-check","duration":754469,"timestamp":151751414463,"id":19,"parentId":1,"tags":{},"startTime":1778959723661,"traceId":"aa1c60eb5e0927e5"},{"name":"static-generation","duration":579557,"timestamp":151752182890,"id":109,"parentId":1,"tags":{},"startTime":1778959724429,"traceId":"aa1c60eb5e0927e5"},{"name":"telemetry-flush","duration":22831,"timestamp":151752797367,"id":118,"parentId":1,"tags":{},"startTime":1778959725044,"traceId":"aa1c60eb5e0927e5"},{"name":"next-build","duration":16973189,"timestamp":151735847034,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778959708093,"traceId":"aa1c60eb5e0927e5"}]
|
|
@@ -4471,13 +4471,34 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4471
4471
|
// synchronised per-edge animation set.
|
|
4472
4472
|
const stagger = (index * 0.37) % duration;
|
|
4473
4473
|
// Round 10 / Loop: freshness fade. An edge that fired ≤30s ago
|
|
4474
|
-
// stays at full intensity; over 5 minutes it decays to
|
|
4475
|
-
// Surfaces "what's happening now" vs background
|
|
4476
|
-
// hiding old flow entirely (some context
|
|
4477
|
-
// captured at useMemo-recompute time
|
|
4478
|
-
// — accuracy is within the poll
|
|
4474
|
+
// stays at full intensity; over 5 minutes it decays to a
|
|
4475
|
+
// floor. Surfaces "what's happening now" vs background
|
|
4476
|
+
// chatter without hiding old flow entirely (some context
|
|
4477
|
+
// still useful). `now` captured at useMemo-recompute time
|
|
4478
|
+
// (every 5s message refresh) — accuracy is within the poll
|
|
4479
|
+
// interval, plenty.
|
|
4480
|
+
//
|
|
4481
|
+
// Round 406 / Loop: edge freshness fade floor 0.35 → 0.40.
|
|
4482
|
+
// Stale-state legibility lift family (6th anchor) — pre-
|
|
4483
|
+
// R406 edges older than 5 minutes faded to α=0.35 (a 65 %
|
|
4484
|
+
// dim against full intensity). The decay rate is the same
|
|
4485
|
+
// 1 - ageMs/300s curve; only the FLOOR shifts. Sibling
|
|
4486
|
+
// treatment to:
|
|
4487
|
+
// R317 subordinate-text gray-500 → gray-400
|
|
4488
|
+
// R358 freshness ramp floor 0.25 → 0.30
|
|
4489
|
+
// R372 minimap offline-dot opacity 0.5 → 0.6
|
|
4490
|
+
// R404 hub-halo cyber trough 0.08 → 0.10
|
|
4491
|
+
// R405 hub-halo light trough 0.32 → 0.34
|
|
4492
|
+
// R406 edge freshness floor 0.35 → 0.40 (this round)
|
|
4493
|
+
// Edges past 5min now sit at 40% intensity instead of 35%
|
|
4494
|
+
// — they still recede against fresh edges but read
|
|
4495
|
+
// legibly enough to convey "this conversation existed".
|
|
4496
|
+
// ageMs threshold for the 5-minute decay unchanged; the
|
|
4497
|
+
// decay curve shape (linear) unchanged. The visual delta
|
|
4498
|
+
// is most pronounced on edges between 5-60 minutes old —
|
|
4499
|
+
// where the floor was binding pre-R406.
|
|
4479
4500
|
const ageMs = link.last_at ? Math.max(0, Date.now() - Date.parse(link.last_at)) : 0;
|
|
4480
|
-
const fresh = Math.max(0.
|
|
4501
|
+
const fresh = Math.max(0.40, 1 - ageMs / (5 * 60 * 1000));
|
|
4481
4502
|
// Round 16 arrow-tier binning — keep `topo-arrow` as the
|
|
4482
4503
|
// medium tier id so the legend swatch picks it up unchanged.
|
|
4483
4504
|
const arrowId = link.count <= 2 ? 'topo-arrow-s'
|
|
@@ -6171,12 +6192,43 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6171
6192
|
parent stays for status flips. data-node-halo-
|
|
6172
6193
|
breath-offset surfaces the chosen offset for
|
|
6173
6194
|
test introspection. */}
|
|
6195
|
+
{/* Round 407 / Loop: offline node halo opacity lift —
|
|
6196
|
+
cyber 0.25 → 0.30 and light 0.4 → 0.45. Pre-R407
|
|
6197
|
+
offline node halos faded to α=0.25 cyber (75 %
|
|
6198
|
+
dim) / α=0.4 light. On the dark canvas the 0.25
|
|
6199
|
+
halo read as "nearly gone" — exactly the
|
|
6200
|
+
legibility floor R404/R405 just lifted on the
|
|
6201
|
+
hub-halo and R372 lifted on minimap offline dots.
|
|
6202
|
+
R407 closes the same family at the per-node halo
|
|
6203
|
+
surface: +0.05 lift on both themes so offline
|
|
6204
|
+
anchors stay legibly present without crossing into
|
|
6205
|
+
"could be online" territory (online cyber 0.65 /
|
|
6206
|
+
light 0.85 unchanged — the 0.30/0.65 cyber ratio
|
|
6207
|
+
still gives 2.17× contrast for online/offline).
|
|
6208
|
+
Stale-state legibility lift family (7 anchors now):
|
|
6209
|
+
R317 subordinate-text gray-500 → gray-400
|
|
6210
|
+
R358 freshness floor 0.25 → 0.30
|
|
6211
|
+
R372 minimap offline-dot 0.5 → 0.6
|
|
6212
|
+
R404 hub-halo cyber trough 0.08 → 0.10
|
|
6213
|
+
R405 hub-halo light trough 0.32 → 0.34
|
|
6214
|
+
R406 edge freshness floor 0.35 → 0.40
|
|
6215
|
+
R407 node halo offline opacity (this round)
|
|
6216
|
+
cyber 0.25 → 0.30
|
|
6217
|
+
light 0.4 → 0.45
|
|
6218
|
+
R278 retired-breath gate + R12 status.halo color
|
|
6219
|
+
+ R226 phase stagger code-path preserved (the
|
|
6220
|
+
breath stays disabled per Vincent's R278 ask;
|
|
6221
|
+
only the BASE opacity floor shifts here). transi-
|
|
6222
|
+
tion list ('fill,opacity' 300ms ease-out) unchanged.
|
|
6223
|
+
data-node-halo-offline-opacity attr exposes the
|
|
6224
|
+
resolved value for tests. */}
|
|
6174
6225
|
<circle
|
|
6175
6226
|
cx={pos.x}
|
|
6176
6227
|
cy={pos.y}
|
|
6177
6228
|
r={radius + 8}
|
|
6178
6229
|
fill={status.halo}
|
|
6179
|
-
opacity={isOnline ? (isLight ? 0.85 : 0.65) : (isLight ? 0.
|
|
6230
|
+
opacity={isOnline ? (isLight ? 0.85 : 0.65) : (isLight ? 0.45 : 0.30)}
|
|
6231
|
+
data-node-halo-offline-opacity={isOnline ? undefined : (isLight ? 0.45 : 0.30)}
|
|
6180
6232
|
className="transition-[fill,opacity] duration-300 ease-out"
|
|
6181
6233
|
data-node-halo-breath={!reducedMotion && session.status === 'working' ? 'on' : 'off'}
|
|
6182
6234
|
data-node-halo-breath-offset={
|
package/package.json
CHANGED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* Round 406 verification: edge freshness fade floor 0.35 → 0.40.
|
|
2
|
+
* Stale-state legibility lift family (6th anchor) — stale edges
|
|
3
|
+
* (>5min) now sit at 40% intensity instead of 35%. The decay
|
|
4
|
+
* curve shape (linear 1 - ageMs/300s) unchanged.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - Source-file verification of `Math.max(0.40, 1 - ageMs / (5 * 60 * 1000))`
|
|
8
|
+
* - DOM probe: seed a STALE edge (ageMs > 5min) so fresh hits the
|
|
9
|
+
* floor; assert the visible flow path's opacity reflects the
|
|
10
|
+
* lifted floor (computed as 0.40 × edge_opacity_mul × base).
|
|
11
|
+
* - Compare against pre-R406 expectation (0.35 floor): the lifted
|
|
12
|
+
* floor produces ~14.3 % higher edge opacity on stale edges.
|
|
13
|
+
*/
|
|
14
|
+
import { chromium } from 'playwright';
|
|
15
|
+
import { readFileSync } from 'node:fs';
|
|
16
|
+
|
|
17
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
18
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
19
|
+
// 10 minutes ago — well past the 5-min decay window; freshness hits floor.
|
|
20
|
+
const stale = new Date(Date.now() - 10 * 60 * 1000).toISOString();
|
|
21
|
+
|
|
22
|
+
const browser = await chromium.launch({ headless: true });
|
|
23
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
24
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
25
|
+
await ctx.addInitScript(() => {
|
|
26
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
27
|
+
});
|
|
28
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
29
|
+
const r = await route.fetch();
|
|
30
|
+
const b = await r.json();
|
|
31
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
32
|
+
const mk = (alias) => ({
|
|
33
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
34
|
+
network_id: nid, project_dir: null,
|
|
35
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
36
|
+
});
|
|
37
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [ mk('alpha'), mk('beta'), mk('gamma') ] } });
|
|
38
|
+
});
|
|
39
|
+
// Seed a stale flow link 10 minutes ago — past the 5-min decay so floor binds.
|
|
40
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
|
|
41
|
+
json: { messages: [
|
|
42
|
+
{ id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'old', created_at: stale, network_id: 'default' },
|
|
43
|
+
] },
|
|
44
|
+
}));
|
|
45
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
46
|
+
|
|
47
|
+
const page = await ctx.newPage();
|
|
48
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
49
|
+
await page.waitForSelector('[data-edge-visible]', { timeout: 15000 });
|
|
50
|
+
await page.waitForTimeout(600);
|
|
51
|
+
|
|
52
|
+
const probe = await page.evaluate(() => {
|
|
53
|
+
const edge = document.querySelector('[data-edge-visible]');
|
|
54
|
+
if (!edge) return null;
|
|
55
|
+
return {
|
|
56
|
+
opacityAttr: edge.getAttribute('opacity'),
|
|
57
|
+
edgeKey: edge.getAttribute('data-edge-visible'),
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
62
|
+
const sourceHasFloor040 = /Math\.max\(0\.40, 1 - ageMs/.test(fileText);
|
|
63
|
+
const sourceLacksFloor035 = !/Math\.max\(0\.35, 1 - ageMs/.test(fileText);
|
|
64
|
+
|
|
65
|
+
await browser.close();
|
|
66
|
+
|
|
67
|
+
// Pre-R406 expected: (0.28 cyber base) × 0.35 floor × 1 mul = 0.098
|
|
68
|
+
// Post-R406 expected: (0.28 cyber base) × 0.40 floor × 1 mul = 0.112
|
|
69
|
+
// On the visible flow path the wire is:
|
|
70
|
+
// opacity = Math.min(1, (isLight ? 0.22 : 0.28) * fresh * edgeOpacityMul)
|
|
71
|
+
// For an unhovered edge in a fresh sessions context (no other hover/active):
|
|
72
|
+
// edgeOpacityMul = !hoveredAlias && !activeGroup ? (hoveredActiveLinks ? 1.5 : 1) : 0.35
|
|
73
|
+
// = 1 in this probe → opacity ≈ 0.112 post-R406
|
|
74
|
+
// Browser may serialize this as "0.112" or "0.11" — accept either with
|
|
75
|
+
// a tolerance probe.
|
|
76
|
+
const opacityNum = probe ? parseFloat(probe.opacityAttr || '0') : 0;
|
|
77
|
+
const expectedPost = 0.28 * 0.40 * 1; // 0.112
|
|
78
|
+
const expectedPre = 0.28 * 0.35 * 1; // 0.098
|
|
79
|
+
const distToPost = Math.abs(opacityNum - expectedPost);
|
|
80
|
+
const distToPre = Math.abs(opacityNum - expectedPre);
|
|
81
|
+
|
|
82
|
+
const results = {
|
|
83
|
+
// Edge mounted from seeded stale flow
|
|
84
|
+
edge_mounted: !!probe,
|
|
85
|
+
edge_key_present: !!probe?.edgeKey,
|
|
86
|
+
// Post-R406 opacity is CLOSER to 0.112 than 0.098
|
|
87
|
+
opacity_close_to_post_r406: distToPost < 0.01,
|
|
88
|
+
// Opacity is FURTHER from the pre-R406 0.098 baseline
|
|
89
|
+
opacity_not_pre_r406: distToPre > distToPost,
|
|
90
|
+
// Source-file canonical wire
|
|
91
|
+
source_floor_040: sourceHasFloor040,
|
|
92
|
+
source_no_floor_035: sourceLacksFloor035,
|
|
93
|
+
};
|
|
94
|
+
const ok = Object.values(results).every(Boolean);
|
|
95
|
+
console.log(`${ok ? '✅' : '❌'} edge freshness floor 0.35 → 0.40:`, JSON.stringify(results),
|
|
96
|
+
'\n probe:', probe,
|
|
97
|
+
'\n opacityNum:', opacityNum, '/ expectedPost:', expectedPost, '/ distToPost:', distToPost.toFixed(4),
|
|
98
|
+
'\n expectedPre:', expectedPre, '/ distToPre:', distToPre.toFixed(4));
|
|
99
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Round 407 verification: node halo offline opacity lift — cyber
|
|
2
|
+
* 0.25 → 0.30 and light 0.4 → 0.45. Probes both themes via two
|
|
3
|
+
* browser contexts with a single offline (ghost) session.
|
|
4
|
+
*
|
|
5
|
+
* Contract:
|
|
6
|
+
* - Online node (status: idle): opacity '0.65' cyber / '0.85' light
|
|
7
|
+
* (unchanged by R407 — invariant probe)
|
|
8
|
+
* - Offline node (status: offline + stale last_seen_at):
|
|
9
|
+
* * cyber: opacity attr === '0.3'
|
|
10
|
+
* * light: opacity attr === '0.45'
|
|
11
|
+
* * data-node-halo-offline-opacity === '0.3' / '0.45'
|
|
12
|
+
* - Source-file verification: the conditional
|
|
13
|
+
* `(isLight ? 0.45 : 0.30)` is present.
|
|
14
|
+
*/
|
|
15
|
+
import { chromium } from 'playwright';
|
|
16
|
+
import { readFileSync } from 'node:fs';
|
|
17
|
+
|
|
18
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
19
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
20
|
+
const stale = new Date(Date.now() - 30 * 60 * 1000).toISOString();
|
|
21
|
+
|
|
22
|
+
async function probeTheme(theme) {
|
|
23
|
+
const browser = await chromium.launch({ headless: true });
|
|
24
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
25
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
26
|
+
await ctx.addInitScript((t) => {
|
|
27
|
+
try { localStorage.setItem('anet-theme', t); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
28
|
+
}, theme);
|
|
29
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
30
|
+
const r = await route.fetch();
|
|
31
|
+
const b = await r.json();
|
|
32
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
33
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
34
|
+
{ alias: 'alpha', status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli', network_id: nid, project_dir: null, created_at: fresh, updated_at: fresh, last_seen_at: fresh },
|
|
35
|
+
{ alias: 'ghost', status: 'offline', model: 'claude-opus-4', runtime: 'claude-code-cli', network_id: nid, project_dir: null, created_at: stale, updated_at: stale, last_seen_at: stale },
|
|
36
|
+
] } });
|
|
37
|
+
});
|
|
38
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
39
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
40
|
+
const page = await ctx.newPage();
|
|
41
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
42
|
+
await page.waitForSelector('g[data-node]', { timeout: 15000 });
|
|
43
|
+
await page.waitForTimeout(400);
|
|
44
|
+
const probe = await page.evaluate(() => {
|
|
45
|
+
const nodes = Array.from(document.querySelectorAll('g[data-node]'));
|
|
46
|
+
const read = (alias) => {
|
|
47
|
+
const node = nodes.find((n) => n.getAttribute('data-node') === alias);
|
|
48
|
+
if (!node) return null;
|
|
49
|
+
const halo = node.querySelector('[data-node-halo-breath]');
|
|
50
|
+
return halo ? {
|
|
51
|
+
opacityAttr: halo.getAttribute('opacity'),
|
|
52
|
+
offlineData: halo.getAttribute('data-node-halo-offline-opacity'),
|
|
53
|
+
} : null;
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
online: read('alpha'),
|
|
57
|
+
offline: read('ghost'),
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
await browser.close();
|
|
61
|
+
return probe;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const cyber = await probeTheme('cyber');
|
|
65
|
+
const light = await probeTheme('light');
|
|
66
|
+
|
|
67
|
+
const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
68
|
+
const sourceHasOfflineLift = /isOnline\s*\?\s*\(isLight\s*\?\s*0\.85\s*:\s*0\.65\)\s*:\s*\(isLight\s*\?\s*0\.45\s*:\s*0\.30\)/.test(fileText);
|
|
69
|
+
|
|
70
|
+
const results = {
|
|
71
|
+
// Online (R407 doesn't touch online — invariant)
|
|
72
|
+
cyber_online_065: cyber?.online?.opacityAttr === '0.65',
|
|
73
|
+
light_online_085: light?.online?.opacityAttr === '0.85',
|
|
74
|
+
cyber_online_no_offline_attr: cyber?.online?.offlineData === null || cyber?.online?.offlineData === undefined,
|
|
75
|
+
// Offline (R407 lift)
|
|
76
|
+
cyber_offline_0_3: cyber?.offline?.opacityAttr === '0.3',
|
|
77
|
+
cyber_offline_data_0_3: cyber?.offline?.offlineData === '0.3',
|
|
78
|
+
light_offline_0_45: light?.offline?.opacityAttr === '0.45',
|
|
79
|
+
light_offline_data_0_45: light?.offline?.offlineData === '0.45',
|
|
80
|
+
// Source-file verification
|
|
81
|
+
source_offline_lift: sourceHasOfflineLift,
|
|
82
|
+
};
|
|
83
|
+
const ok = Object.values(results).every(Boolean);
|
|
84
|
+
console.log(`${ok ? '✅' : '❌'} node halo offline opacity lift:`, JSON.stringify(results),
|
|
85
|
+
'\n cyber:', cyber,
|
|
86
|
+
'\n light:', light);
|
|
87
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{nZA6I2WlboppxV3ccft1K → urudwbBaMeFYVotTRH7yJ}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|