@sleep2agi/agent-network-dashboard 0.5.1-preview.57 → 0.5.1-preview.59
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/{0vh3xqcpo04~a.js → 0bhz.u~29khvn.js} +3 -3
- package/.next/static/chunks/{14vv4p7-u1o5q.js → 14286v4_~z.qj.js} +1 -1
- package/.next/static/chunks/{05w9u-mpyn5m3.js → 14s7vjc_.9ey7.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +36 -8
- package/package.json +1 -1
- package/scripts/topo-chip-row-hover-lift-test.mjs +95 -0
- package/scripts/topo-filter-pill-hover-lift-test.mjs +101 -0
- /package/.next/static/{vHPpNXTwlJbOzB5cnE4Ki → R6sI--ujZV5ZqhwSJgZdY}/_buildManifest.js +0 -0
- /package/.next/static/{vHPpNXTwlJbOzB5cnE4Ki → R6sI--ujZV5ZqhwSJgZdY}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{vHPpNXTwlJbOzB5cnE4Ki → R6sI--ujZV5ZqhwSJgZdY}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59276,e=>{"use strict";var s=e.i(12629),a=e.i(11449);let t=async e=>{let s=await fetch(e);if(401===s.status)throw window.location.assign("/login"),Error("unauthorized");return s.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function n(e,s){if(!s)return e;let a=e.includes("?")?"&":"?";return`${e}${a}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",t,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/health",t,r);return{health:e||null,error:a}},"useLicense",0,function(){let{data:e,error:a}=(0,s.default)("/api/hub/license",t,{refreshInterval:6e4});return{license:e?.ok?e:null,error:a}},"useMessages",0,function(e=100){let{networkId:l}=(0,a.useNetworkId)(),{data:i,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),t,r);return{messages:i?.messages||[],error:c,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i,isLoading:c}=(0,s.default)(n("/api/hub/status",e),t,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:c}},"useStats",0,function(){let{networkId:e}=(0,a.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),t,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,a.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:c,error:d,isLoading:o}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),t,r);return{tasks:c?.tasks||[],count:c?.count??0,source:c?.source,error:d,isLoading:o}}])},70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.5.1-preview.56"],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.58"],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 +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.58"],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]})]})]})]})}])}]);
|
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":430,"timestamp":148420474047,"id":4,"parentId":1,"tags":{},"startTime":1778956392720,"traceId":"6ea5bea33df7190e"},{"name":"load-custom-routes","duration":612,"timestamp":148420474661,"id":5,"parentId":1,"tags":{},"startTime":1778956392721,"traceId":"6ea5bea33df7190e"},{"name":"create-dist-dir","duration":873,"timestamp":148420475328,"id":6,"parentId":1,"tags":{},"startTime":1778956392722,"traceId":"6ea5bea33df7190e"},{"name":"clean","duration":37083,"timestamp":148420477089,"id":7,"parentId":1,"tags":{},"startTime":1778956392723,"traceId":"6ea5bea33df7190e"},{"name":"discover-routes","duration":27397,"timestamp":148420600849,"id":8,"parentId":1,"tags":{},"startTime":1778956392847,"traceId":"6ea5bea33df7190e"},{"name":"create-root-mapping","duration":116,"timestamp":148420628308,"id":9,"parentId":1,"tags":{},"startTime":1778956392875,"traceId":"6ea5bea33df7190e"},{"name":"generate-route-types","duration":19742,"timestamp":148420630870,"id":10,"parentId":1,"tags":{},"startTime":1778956392877,"traceId":"6ea5bea33df7190e"},{"name":"public-dir-conflict-check","duration":146,"timestamp":148420650709,"id":11,"parentId":1,"tags":{},"startTime":1778956392897,"traceId":"6ea5bea33df7190e"},{"name":"generate-routes-manifest","duration":4712,"timestamp":148420651065,"id":12,"parentId":1,"tags":{},"startTime":1778956392897,"traceId":"6ea5bea33df7190e"},{"name":"run-turbopack","duration":6261490,"timestamp":148420660916,"id":14,"parentId":1,"tags":{},"startTime":1778956392907,"traceId":"6ea5bea33df7190e"},{"name":"turbopack-build-events","duration":101,"timestamp":148420954988,"id":15,"parentId":1,"tags":{},"startTime":1778956393201,"traceId":"6ea5bea33df7190e"},{"name":"run-typescript","duration":10107470,"timestamp":148426936670,"id":16,"parentId":1,"tags":{},"startTime":1778956399183,"traceId":"6ea5bea33df7190e"},{"name":"generate-required-server-files","duration":2569,"timestamp":148437045662,"id":18,"parentId":1,"tags":{},"startTime":1778956409292,"traceId":"6ea5bea33df7190e"},{"name":"check-static-error-page","duration":12458,"timestamp":148437234886,"id":20,"parentId":19,"tags":{},"startTime":1778956409481,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":492724,"timestamp":148437250643,"id":65,"parentId":22,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":506241,"timestamp":148437237269,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778956409484,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":588406,"timestamp":148437250888,"id":67,"parentId":26,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":599548,"timestamp":148437239838,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778956409486,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":593265,"timestamp":148437251759,"id":72,"parentId":32,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":604472,"timestamp":148437240622,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":619237,"timestamp":148437251960,"id":73,"parentId":33,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":630546,"timestamp":148437240725,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":627893,"timestamp":148437250323,"id":64,"parentId":21,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":642165,"timestamp":148437236121,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778956409482,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":639693,"timestamp":148437252067,"id":74,"parentId":34,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":650986,"timestamp":148437240856,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":648583,"timestamp":148437251024,"id":68,"parentId":27,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":659723,"timestamp":148437239956,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778956409486,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":649351,"timestamp":148437250767,"id":66,"parentId":25,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":660510,"timestamp":148437239656,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778956409486,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":648776,"timestamp":148437251604,"id":71,"parentId":30,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":660122,"timestamp":148437240311,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":661709,"timestamp":148437252189,"id":79,"parentId":39,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":672371,"timestamp":148437241579,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":668956,"timestamp":148437252157,"id":77,"parentId":37,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":679742,"timestamp":148437241419,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":676077,"timestamp":148437252125,"id":76,"parentId":36,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":686963,"timestamp":148437241294,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":676251,"timestamp":148437252173,"id":78,"parentId":38,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":686939,"timestamp":148437241515,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":683525,"timestamp":148437252232,"id":82,"parentId":44,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":693511,"timestamp":148437242293,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778956409489,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":688029,"timestamp":148437252265,"id":84,"parentId":46,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":697888,"timestamp":148437242450,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778956409489,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":690601,"timestamp":148437252216,"id":81,"parentId":42,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":700918,"timestamp":148437241954,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":695616,"timestamp":148437252293,"id":86,"parentId":48,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":703986,"timestamp":148437243980,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778956409490,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":695884,"timestamp":148437252248,"id":83,"parentId":45,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":705789,"timestamp":148437242380,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778956409489,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":696873,"timestamp":148437251429,"id":70,"parentId":29,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":708125,"timestamp":148437240202,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778956409486,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":701567,"timestamp":148437252277,"id":85,"parentId":47,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":710137,"timestamp":148437243828,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778956409490,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":701835,"timestamp":148437252318,"id":88,"parentId":50,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":709954,"timestamp":148437244238,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":702034,"timestamp":148437252307,"id":87,"parentId":49,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":710249,"timestamp":148437244127,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778956409490,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":698111,"timestamp":148437259295,"id":90,"parentId":24,"tags":{},"startTime":1778956409506,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":719753,"timestamp":148437237700,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778956409484,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":708029,"timestamp":148437252205,"id":80,"parentId":40,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":718630,"timestamp":148437241649,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":692647,"timestamp":148437267787,"id":92,"parentId":41,"tags":{},"startTime":1778956409514,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":718750,"timestamp":148437241717,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":708499,"timestamp":148437252101,"id":75,"parentId":35,"tags":{},"startTime":1778956409498,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":719679,"timestamp":148437240949,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":697746,"timestamp":148437263566,"id":91,"parentId":31,"tags":{},"startTime":1778956409510,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":720958,"timestamp":148437240394,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778956409487,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":693241,"timestamp":148437269169,"id":93,"parentId":43,"tags":{},"startTime":1778956409515,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":720370,"timestamp":148437242078,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778956409488,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":693931,"timestamp":148437272467,"id":96,"parentId":53,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":721659,"timestamp":148437244770,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":720388,"timestamp":148437252333,"id":89,"parentId":51,"tags":{},"startTime":1778956409499,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":728439,"timestamp":148437244342,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":700794,"timestamp":148437272513,"id":99,"parentId":56,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":728073,"timestamp":148437245273,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778956409492,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":707461,"timestamp":148437272647,"id":101,"parentId":59,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":734041,"timestamp":148437246111,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778956409492,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":734040,"timestamp":148437251148,"id":69,"parentId":28,"tags":{},"startTime":1778956409497,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":745158,"timestamp":148437240104,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778956409486,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":715233,"timestamp":148437272671,"id":102,"parentId":61,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":741185,"timestamp":148437246761,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778956409493,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":722789,"timestamp":148437272694,"id":104,"parentId":63,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":748426,"timestamp":148437247105,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778956409493,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":724740,"timestamp":148437281330,"id":105,"parentId":60,"tags":{},"startTime":1778956409528,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":759838,"timestamp":148437246309,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778956409493,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":707679,"timestamp":148437301970,"id":106,"parentId":57,"tags":{},"startTime":1778956409548,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":764244,"timestamp":148437245443,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778956409492,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":750224,"timestamp":148437272499,"id":98,"parentId":55,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":777683,"timestamp":148437245106,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":752990,"timestamp":148437272485,"id":97,"parentId":54,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":780628,"timestamp":148437244894,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":777730,"timestamp":148437272523,"id":100,"parentId":58,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":804448,"timestamp":148437245876,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778956409492,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":778293,"timestamp":148437272424,"id":94,"parentId":23,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":813287,"timestamp":148437237501,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778956409484,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":783794,"timestamp":148437272455,"id":95,"parentId":52,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":811646,"timestamp":148437244648,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778956409491,"traceId":"6ea5bea33df7190e"},{"name":"is-page-static","duration":804363,"timestamp":148437272680,"id":103,"parentId":62,"tags":{},"startTime":1778956409519,"traceId":"6ea5bea33df7190e"},{"name":"check-page","duration":830190,"timestamp":148437246922,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778956409493,"traceId":"6ea5bea33df7190e"},{"name":"static-check","duration":843134,"timestamp":148437234021,"id":19,"parentId":1,"tags":{},"startTime":1778956409480,"traceId":"6ea5bea33df7190e"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":272,"timestamp":149085546830,"id":4,"parentId":1,"tags":{},"startTime":1778957057793,"traceId":"10f5ede51c9a4adc"},{"name":"load-custom-routes","duration":439,"timestamp":149085547241,"id":5,"parentId":1,"tags":{},"startTime":1778957057794,"traceId":"10f5ede51c9a4adc"},{"name":"create-dist-dir","duration":675,"timestamp":149085547720,"id":6,"parentId":1,"tags":{},"startTime":1778957057794,"traceId":"10f5ede51c9a4adc"},{"name":"clean","duration":32001,"timestamp":149085549066,"id":7,"parentId":1,"tags":{},"startTime":1778957057795,"traceId":"10f5ede51c9a4adc"},{"name":"discover-routes","duration":10136,"timestamp":149085678152,"id":8,"parentId":1,"tags":{},"startTime":1778957057924,"traceId":"10f5ede51c9a4adc"},{"name":"create-root-mapping","duration":146,"timestamp":149085688360,"id":9,"parentId":1,"tags":{},"startTime":1778957057935,"traceId":"10f5ede51c9a4adc"},{"name":"generate-route-types","duration":35059,"timestamp":149085691602,"id":10,"parentId":1,"tags":{},"startTime":1778957057938,"traceId":"10f5ede51c9a4adc"},{"name":"public-dir-conflict-check","duration":101,"timestamp":149085726769,"id":11,"parentId":1,"tags":{},"startTime":1778957057973,"traceId":"10f5ede51c9a4adc"},{"name":"generate-routes-manifest","duration":4554,"timestamp":149085726994,"id":12,"parentId":1,"tags":{},"startTime":1778957057973,"traceId":"10f5ede51c9a4adc"},{"name":"run-turbopack","duration":5729677,"timestamp":149085737815,"id":14,"parentId":1,"tags":{},"startTime":1778957057984,"traceId":"10f5ede51c9a4adc"},{"name":"turbopack-build-events","duration":117,"timestamp":149086053692,"id":15,"parentId":1,"tags":{},"startTime":1778957058300,"traceId":"10f5ede51c9a4adc"},{"name":"run-typescript","duration":10212081,"timestamp":149091477687,"id":16,"parentId":1,"tags":{},"startTime":1778957063724,"traceId":"10f5ede51c9a4adc"},{"name":"generate-required-server-files","duration":3000,"timestamp":149101691100,"id":18,"parentId":1,"tags":{},"startTime":1778957073937,"traceId":"10f5ede51c9a4adc"},{"name":"check-static-error-page","duration":14709,"timestamp":149101863209,"id":20,"parentId":19,"tags":{},"startTime":1778957074109,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":449021,"timestamp":149101881148,"id":65,"parentId":22,"tags":{},"startTime":1778957074127,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":464208,"timestamp":149101866117,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778957074112,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":587098,"timestamp":149101883610,"id":71,"parentId":30,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":600768,"timestamp":149101870051,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":611494,"timestamp":149101883111,"id":69,"parentId":28,"tags":{},"startTime":1778957074129,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":625002,"timestamp":149101869743,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":635473,"timestamp":149101883692,"id":72,"parentId":32,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":648781,"timestamp":149101870466,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778957074117,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":636551,"timestamp":149101883897,"id":73,"parentId":33,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":649916,"timestamp":149101870602,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778957074117,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":649532,"timestamp":149101884049,"id":75,"parentId":35,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":662789,"timestamp":149101870866,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778957074117,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":660459,"timestamp":149101883428,"id":70,"parentId":29,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":674107,"timestamp":149101869880,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":666932,"timestamp":149101884121,"id":77,"parentId":37,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":679546,"timestamp":149101871580,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":667381,"timestamp":149101883997,"id":74,"parentId":34,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":680707,"timestamp":149101870723,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778957074117,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":675920,"timestamp":149101884156,"id":79,"parentId":39,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":688300,"timestamp":149101871833,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":676186,"timestamp":149101884172,"id":80,"parentId":40,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":688445,"timestamp":149101871949,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":681370,"timestamp":149101882797,"id":67,"parentId":26,"tags":{},"startTime":1778957074129,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":694727,"timestamp":149101869495,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":685425,"timestamp":149101884200,"id":82,"parentId":44,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":696862,"timestamp":149101872811,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":685716,"timestamp":149101884187,"id":81,"parentId":42,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":697566,"timestamp":149101872389,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":686957,"timestamp":149101884075,"id":76,"parentId":36,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":699692,"timestamp":149101871385,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":696215,"timestamp":149101880696,"id":64,"parentId":21,"tags":{},"startTime":1778957074127,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":712455,"timestamp":149101864495,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778957074111,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":692974,"timestamp":149101884247,"id":85,"parentId":47,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":704094,"timestamp":149101873173,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":700556,"timestamp":149101884232,"id":84,"parentId":46,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":711777,"timestamp":149101873061,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":705352,"timestamp":149101884278,"id":87,"parentId":49,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":716275,"timestamp":149101873401,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778957074120,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":705759,"timestamp":149101884294,"id":88,"parentId":50,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":714729,"timestamp":149101875367,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":707998,"timestamp":149101884143,"id":78,"parentId":38,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":720467,"timestamp":149101871715,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":715261,"timestamp":149101884216,"id":83,"parentId":45,"tags":{},"startTime":1778957074130,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":726583,"timestamp":149101872938,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":710497,"timestamp":149101889317,"id":90,"parentId":24,"tags":{},"startTime":1778957074136,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":733220,"timestamp":149101866641,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778957074113,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":709580,"timestamp":149101890473,"id":91,"parentId":31,"tags":{},"startTime":1778957074137,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":729907,"timestamp":149101870182,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":711840,"timestamp":149101892733,"id":93,"parentId":43,"tags":{},"startTime":1778957074139,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":732087,"timestamp":149101872527,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778957074119,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":724296,"timestamp":149101882944,"id":68,"parentId":27,"tags":{},"startTime":1778957074129,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":737663,"timestamp":149101869620,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":734581,"timestamp":149101884306,"id":89,"parentId":51,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":743468,"timestamp":149101875474,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":730252,"timestamp":149101891314,"id":92,"parentId":41,"tags":{},"startTime":1778957074138,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":749501,"timestamp":149101872109,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778957074118,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":779162,"timestamp":149101894936,"id":94,"parentId":23,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":807766,"timestamp":149101866406,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778957074113,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":787893,"timestamp":149101895038,"id":99,"parentId":56,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":806716,"timestamp":149101876311,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778957074123,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":802430,"timestamp":149101881286,"id":66,"parentId":25,"tags":{},"startTime":1778957074128,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":814467,"timestamp":149101869317,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778957074116,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":790639,"timestamp":149101895024,"id":98,"parentId":55,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":809543,"timestamp":149101876170,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":801635,"timestamp":149101884259,"id":86,"parentId":48,"tags":{},"startTime":1778957074131,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":812680,"timestamp":149101873273,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778957074120,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":792673,"timestamp":149101894966,"id":95,"parentId":52,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":811886,"timestamp":149101875793,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":796545,"timestamp":149101895050,"id":100,"parentId":58,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":814781,"timestamp":149101876874,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778957074123,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":796843,"timestamp":149101894992,"id":97,"parentId":54,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":815843,"timestamp":149101876028,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":798874,"timestamp":149101895187,"id":102,"parentId":61,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":816585,"timestamp":149101877516,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778957074124,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":800085,"timestamp":149101895208,"id":104,"parentId":63,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":817601,"timestamp":149101877731,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778957074124,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":794135,"timestamp":149101903241,"id":105,"parentId":60,"tags":{},"startTime":1778957074150,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":820228,"timestamp":149101877189,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778957074123,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":785083,"timestamp":149101914735,"id":106,"parentId":57,"tags":{},"startTime":1778957074161,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":823374,"timestamp":149101876478,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778957074123,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":805379,"timestamp":149101895200,"id":103,"parentId":62,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":822971,"timestamp":149101877633,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778957074124,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":815544,"timestamp":149101894982,"id":96,"parentId":53,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":834666,"timestamp":149101875904,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778957074122,"traceId":"10f5ede51c9a4adc"},{"name":"is-page-static","duration":849132,"timestamp":149101895160,"id":101,"parentId":59,"tags":{},"startTime":1778957074141,"traceId":"10f5ede51c9a4adc"},{"name":"check-page","duration":867300,"timestamp":149101877058,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778957074123,"traceId":"10f5ede51c9a4adc"},{"name":"static-check","duration":882092,"timestamp":149101862310,"id":19,"parentId":1,"tags":{},"startTime":1778957074109,"traceId":"10f5ede51c9a4adc"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":512,"timestamp":149102753133,"id":108,"parentId":1,"tags":{},"startTime":1778957074999,"traceId":"10f5ede51c9a4adc"},{"name":"load-dotenv","duration":61,"timestamp":149102767648,"id":111,"parentId":110,"tags":{},"startTime":1778957075014,"traceId":"10f5ede51c9a4adc"},{"name":"run-export-path-map","duration":707,"timestamp":149102770975,"id":112,"parentId":110,"tags":{},"startTime":1778957075017,"traceId":"10f5ede51c9a4adc"},{"name":"next-export","duration":631918,"timestamp":149102765801,"id":110,"parentId":1,"tags":{},"startTime":1778957075012,"traceId":"10f5ede51c9a4adc"},{"name":"move-exported-app-not-found-","duration":541,"timestamp":149103401358,"id":113,"parentId":109,"tags":{},"startTime":1778957075648,"traceId":"10f5ede51c9a4adc"},{"name":"move-exported-app-global-error-","duration":436,"timestamp":149103401987,"id":114,"parentId":109,"tags":{},"startTime":1778957075648,"traceId":"10f5ede51c9a4adc"},{"name":"static-generation","duration":645048,"timestamp":149102759340,"id":109,"parentId":1,"tags":{},"startTime":1778957075006,"traceId":"10f5ede51c9a4adc"},{"name":"write-routes-manifest","duration":469,"timestamp":149103404638,"id":115,"parentId":1,"tags":{},"startTime":1778957075651,"traceId":"10f5ede51c9a4adc"},{"name":"print-tree-view","duration":4453,"timestamp":149103424062,"id":116,"parentId":1,"tags":{},"startTime":1778957075670,"traceId":"10f5ede51c9a4adc"},{"name":"write-route-bundle-stats","duration":14873,"timestamp":149103428555,"id":117,"parentId":1,"tags":{},"startTime":1778957075675,"traceId":"10f5ede51c9a4adc"},{"name":"telemetry-flush","duration":18208,"timestamp":149103443465,"id":118,"parentId":1,"tags":{},"startTime":1778957075690,"traceId":"10f5ede51c9a4adc"},{"name":"next-build","duration":17964978,"timestamp":149085496736,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778957057743,"traceId":"10f5ede51c9a4adc"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5729677,"timestamp":149085737815,"id":14,"parentId":1,"tags":{},"startTime":1778957057984,"traceId":"10f5ede51c9a4adc"},{"name":"turbopack-build-events","duration":117,"timestamp":149086053692,"id":15,"parentId":1,"tags":{},"startTime":1778957058300,"traceId":"10f5ede51c9a4adc"},{"name":"run-typescript","duration":10212081,"timestamp":149091477687,"id":16,"parentId":1,"tags":{},"startTime":1778957063724,"traceId":"10f5ede51c9a4adc"},{"name":"static-check","duration":882092,"timestamp":149101862310,"id":19,"parentId":1,"tags":{},"startTime":1778957074109,"traceId":"10f5ede51c9a4adc"},{"name":"static-generation","duration":645048,"timestamp":149102759340,"id":109,"parentId":1,"tags":{},"startTime":1778957075006,"traceId":"10f5ede51c9a4adc"},{"name":"telemetry-flush","duration":18208,"timestamp":149103443465,"id":118,"parentId":1,"tags":{},"startTime":1778957075690,"traceId":"10f5ede51c9a4adc"},{"name":"next-build","duration":17964978,"timestamp":149085496736,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778957057743,"traceId":"10f5ede51c9a4adc"}]
|
|
@@ -2027,11 +2027,37 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2027
2027
|
7th surface in the info-density tabular-nums
|
|
2028
2028
|
sweep — and the first on the HTML side
|
|
2029
2029
|
(previous 6 were SVG <text>/<tspan>). */
|
|
2030
|
-
|
|
2030
|
+
/* Round 398 / Loop: chip-row chips gain hover translateY
|
|
2031
|
+
(-1px) lift on the CLICKABLE variant only (workingCount
|
|
2032
|
+
> 0 here / onlineNodes.length > 0 below / activeLinks
|
|
2033
|
+
> 0 deeper). Pre-R398 the chips brightened bg + border
|
|
2034
|
+
on hover (R201) but didn't lift — only their clickable
|
|
2035
|
+
siblings (filter pin pills R397, recent rows R143,
|
|
2036
|
+
legend rows R144) acknowledged cursor entry with a
|
|
2037
|
+
translate-y. R398 closes the chip-row by extending
|
|
2038
|
+
the same gesture to the static header chips, gated
|
|
2039
|
+
on the clickable role so empty chips (which have
|
|
2040
|
+
no role="button") stay planted at their R205
|
|
2041
|
+
opacity-50 receded paint. transition-transform
|
|
2042
|
+
+ duration-200 + ease-out + transform-gpu added
|
|
2043
|
+
alongside existing transition-colors so the lift
|
|
2044
|
+
and the color tween share rhythm.
|
|
2045
|
+
Gesture-vocabulary table (post-R398):
|
|
2046
|
+
recent-signal row -1 px (R143)
|
|
2047
|
+
legend row -1 px (R144)
|
|
2048
|
+
group cluster box fill+sw lift (R142)
|
|
2049
|
+
filter pin pills -1 px (R397)
|
|
2050
|
+
chip-row chips -1 px (R398, this round)
|
|
2051
|
+
Empty chips: no lift. Pin-mirror chips: no
|
|
2052
|
+
conflict (R180 inset double-ring is a box-shadow
|
|
2053
|
+
not a transform). new data-chip-hover-lift attr
|
|
2054
|
+
surfaces the lift surface for tests. */
|
|
2055
|
+
className={`tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
|
|
2031
2056
|
workingCount > 0
|
|
2032
|
-
? 'bg-green-500/10 text-green-300 border-green-500/20 hover:bg-green-500/15 hover:border-green-500/30'
|
|
2057
|
+
? 'bg-green-500/10 text-green-300 border-green-500/20 hover:bg-green-500/15 hover:border-green-500/30 hover:-translate-y-px'
|
|
2033
2058
|
: 'bg-green-500/10 text-green-300 border-green-500/20'
|
|
2034
2059
|
}`}
|
|
2060
|
+
data-chip-hover-lift={workingCount > 0 ? 'true' : 'false'}
|
|
2035
2061
|
data-working-chip
|
|
2036
2062
|
data-working-chip-aliases={workingAliases.join(',')}
|
|
2037
2063
|
data-pin-mirror={pinnedStatus === 'working' ? 'true' : 'false'}
|
|
@@ -2125,11 +2151,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2125
2151
|
/* Round 232 / Loop: tabular-nums on online chip
|
|
2126
2152
|
(sibling treatment to working chip — same row,
|
|
2127
2153
|
same digit-jitter physics on count crossings). */
|
|
2128
|
-
|
|
2154
|
+
// R398: hover translate-y lift on clickable variant — see working chip above.
|
|
2155
|
+
className={`tabular-nums font-medium px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors transition-transform duration-200 ease-out transform-gpu ${
|
|
2129
2156
|
onlineNodes.length > 0
|
|
2130
|
-
? 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20 hover:bg-cyan-500/15 hover:border-cyan-500/30'
|
|
2157
|
+
? 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20 hover:bg-cyan-500/15 hover:border-cyan-500/30 hover:-translate-y-px'
|
|
2131
2158
|
: 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20'
|
|
2132
2159
|
}`}
|
|
2160
|
+
data-chip-hover-lift={onlineNodes.length > 0 ? 'true' : 'false'}
|
|
2133
2161
|
data-online-chip
|
|
2134
2162
|
data-online-chip-aliases={onlineAliases.join(',')}
|
|
2135
2163
|
data-pin-mirror={pinnedStatus === 'idle' ? 'true' : 'false'}
|
|
@@ -2400,7 +2428,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2400
2428
|
// R355: `group` lets the inner opacity-70 spans (prefix
|
|
2401
2429
|
// `filter:` + count `· N`) brighten to 100 % on pill hover.
|
|
2402
2430
|
// Sibling treatment on group + vendor pills below.
|
|
2403
|
-
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2431
|
+
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus transition-transform duration-200 ease-out hover:-translate-y-px transform-gpu" data-topo-filter-pill-hover-lift="true"
|
|
2404
2432
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
2405
2433
|
onClick={() => setPinnedStatus(null)}
|
|
2406
2434
|
style={{
|
|
@@ -2453,7 +2481,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2453
2481
|
data-filter-match-count={matchCount}
|
|
2454
2482
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
2455
2483
|
// R355 sibling — `group` parent + group-hover on inner spans.
|
|
2456
|
-
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2484
|
+
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus transition-transform duration-200 ease-out hover:-translate-y-px transform-gpu" data-topo-filter-pill-hover-lift="true"
|
|
2457
2485
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
2458
2486
|
onClick={() => setPinnedGroup(null)}
|
|
2459
2487
|
style={{
|
|
@@ -2518,7 +2546,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2518
2546
|
data-filter-match-count={matchCount}
|
|
2519
2547
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
2520
2548
|
// R355 sibling — `group` parent + group-hover on inner spans.
|
|
2521
|
-
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2549
|
+
className="group inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus transition-transform duration-200 ease-out hover:-translate-y-px transform-gpu" data-topo-filter-pill-hover-lift="true"
|
|
2522
2550
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear vendor filter'}
|
|
2523
2551
|
onClick={() => setPinnedVendor(null)}
|
|
2524
2552
|
style={{
|
|
@@ -2580,7 +2608,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2580
2608
|
data-filter-match-count={link.count}
|
|
2581
2609
|
data-filter-match-aliases={`${link.from},${link.to}`}
|
|
2582
2610
|
data-active-filter-edge-hot={isHot ? 'true' : 'false'}
|
|
2583
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2611
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus transition-transform duration-200 ease-out hover:-translate-y-px transform-gpu" data-topo-filter-pill-hover-lift="true"
|
|
2584
2612
|
title={`${link.from} → ${link.to} (${link.count} msg${link.count === 1 ? '' : 's'}${isHot ? ', hot lane · ≥ 10' : ''}) — click to clear`}
|
|
2585
2613
|
onClick={() => setPinnedEdgeKey(null)}
|
|
2586
2614
|
style={{
|
package/package.json
CHANGED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/* Round 398 verification: chip-row chips (working / online) gain
|
|
2
|
+
* hover translateY(-1px) lift on clickable variant only. Extends
|
|
3
|
+
* R397's filter-pill lift to the static header chips, gated to
|
|
4
|
+
* the chip's clickable role so empty chips stay planted.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - Populated working chip (workingCount > 0):
|
|
8
|
+
* * data-chip-hover-lift === 'true'
|
|
9
|
+
* * className includes 'hover:-translate-y-px'
|
|
10
|
+
* * className includes 'transition-transform' + 'transform-gpu'
|
|
11
|
+
* - Populated online chip (onlineNodes.length > 0):
|
|
12
|
+
* * data-chip-hover-lift === 'true'
|
|
13
|
+
* * className includes 'hover:-translate-y-px'
|
|
14
|
+
* - Pre-R398 invariants preserved:
|
|
15
|
+
* * transition-colors duration-200 still present
|
|
16
|
+
* * R201 hover:bg + hover:border tokens still present
|
|
17
|
+
* * anet-topo-chip-focus + tabular-nums + font-medium present
|
|
18
|
+
*/
|
|
19
|
+
import { chromium } from 'playwright';
|
|
20
|
+
import { readFileSync } from 'node:fs';
|
|
21
|
+
|
|
22
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
23
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
24
|
+
|
|
25
|
+
const browser = await chromium.launch({ headless: true });
|
|
26
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
27
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
28
|
+
await ctx.addInitScript(() => {
|
|
29
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
30
|
+
});
|
|
31
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
32
|
+
const r = await route.fetch();
|
|
33
|
+
const b = await r.json();
|
|
34
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
35
|
+
const mk = (alias, status) => ({
|
|
36
|
+
alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
37
|
+
network_id: nid, project_dir: null,
|
|
38
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
39
|
+
});
|
|
40
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
41
|
+
mk('alpha', 'working'),
|
|
42
|
+
mk('beta', 'idle'),
|
|
43
|
+
mk('gamma', 'idle'),
|
|
44
|
+
] } });
|
|
45
|
+
});
|
|
46
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
47
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
48
|
+
|
|
49
|
+
const page = await ctx.newPage();
|
|
50
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
51
|
+
await page.waitForSelector('[data-working-chip]', { timeout: 15000 });
|
|
52
|
+
await page.waitForTimeout(400);
|
|
53
|
+
|
|
54
|
+
const probe = await page.evaluate(() => {
|
|
55
|
+
const work = document.querySelector('[data-working-chip]');
|
|
56
|
+
const online = document.querySelector('[data-online-chip]');
|
|
57
|
+
return {
|
|
58
|
+
work: work ? {
|
|
59
|
+
className: work.className,
|
|
60
|
+
lift: work.getAttribute('data-chip-hover-lift'),
|
|
61
|
+
clickable: work.getAttribute('data-working-chip-clickable'),
|
|
62
|
+
} : null,
|
|
63
|
+
online: online ? {
|
|
64
|
+
className: online.className,
|
|
65
|
+
lift: online.getAttribute('data-chip-hover-lift'),
|
|
66
|
+
clickable: online.getAttribute('data-online-chip-clickable'),
|
|
67
|
+
} : null,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
await browser.close();
|
|
72
|
+
|
|
73
|
+
const wc = probe.work?.className || '';
|
|
74
|
+
const oc = probe.online?.className || '';
|
|
75
|
+
const results = {
|
|
76
|
+
// working chip: clickable + R398 lift attrs + className tokens
|
|
77
|
+
work_lift_true: probe.work?.lift === 'true',
|
|
78
|
+
work_clickable_true: probe.work?.clickable === 'true',
|
|
79
|
+
work_has_hover_translate: wc.includes('hover:-translate-y-px'),
|
|
80
|
+
work_has_transition_transform: wc.includes('transition-transform'),
|
|
81
|
+
work_has_transform_gpu: wc.includes('transform-gpu'),
|
|
82
|
+
work_has_transition_colors: wc.includes('transition-colors'), // R201 preserved
|
|
83
|
+
work_has_hover_bg: wc.includes('hover:bg-green-500/15'), // R201 preserved
|
|
84
|
+
work_has_chip_focus: wc.includes('anet-topo-chip-focus'),
|
|
85
|
+
// online chip mirror
|
|
86
|
+
online_lift_true: probe.online?.lift === 'true',
|
|
87
|
+
online_clickable_true: probe.online?.clickable === 'true',
|
|
88
|
+
online_has_hover_translate: oc.includes('hover:-translate-y-px'),
|
|
89
|
+
online_has_transition_transform: oc.includes('transition-transform'),
|
|
90
|
+
};
|
|
91
|
+
const ok = Object.values(results).every(Boolean);
|
|
92
|
+
console.log(`${ok ? '✅' : '❌'} chip-row chips hover lift translateY(-1px):`, JSON.stringify(results),
|
|
93
|
+
'\n workingClass:', wc,
|
|
94
|
+
'\n onlineClass: ', oc);
|
|
95
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* Round 397 verification: filter pin pills gain hover lift
|
|
2
|
+
* translateY(-1px). Sibling to R143 recent-row lift idiom —
|
|
3
|
+
* extends the "rising on hover" gesture from SVG canvas surfaces
|
|
4
|
+
* to the HTML filter chip strip. All 4 filter pill variants
|
|
5
|
+
* (status / group / vendor / edge) carry the lift.
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Source-file verification of the new className tokens
|
|
9
|
+
* (transition-transform + hover:-translate-y-px + transform-gpu)
|
|
10
|
+
* - The data-topo-filter-pill-hover-lift="true" sentinel attr
|
|
11
|
+
* is mounted when any filter pill is rendered (pinned filter
|
|
12
|
+
* present). Test mounts a status filter by clicking a status
|
|
13
|
+
* chip, then probes the resulting pill.
|
|
14
|
+
* - Pre-R397 invariants preserved on the pill className:
|
|
15
|
+
* * group / rounded-md / font-mono / font-medium / text-xs
|
|
16
|
+
* / border / anet-fade-in / anet-topo-chip-focus
|
|
17
|
+
*
|
|
18
|
+
* Note: hover dispatch on HTML chips in headless can fire but
|
|
19
|
+
* computing the post-hover translate-y reliably requires a mouse
|
|
20
|
+
* sweep. Test asserts the className tokens are present (which
|
|
21
|
+
* is what Tailwind compiles into `:hover` CSS) plus the sentinel
|
|
22
|
+
* attr — both deterministic from source.
|
|
23
|
+
*/
|
|
24
|
+
import { chromium } from 'playwright';
|
|
25
|
+
import { readFileSync } from 'node:fs';
|
|
26
|
+
|
|
27
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
28
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
29
|
+
|
|
30
|
+
const browser = await chromium.launch({ headless: true });
|
|
31
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
32
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
33
|
+
await ctx.addInitScript(() => {
|
|
34
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
35
|
+
});
|
|
36
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
37
|
+
const r = await route.fetch();
|
|
38
|
+
const b = await r.json();
|
|
39
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
40
|
+
const mk = (alias, status) => ({
|
|
41
|
+
alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
42
|
+
network_id: nid, project_dir: null,
|
|
43
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
44
|
+
});
|
|
45
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
46
|
+
mk('alpha', 'working'),
|
|
47
|
+
mk('beta', 'idle'),
|
|
48
|
+
mk('gamma', 'idle'),
|
|
49
|
+
] } });
|
|
50
|
+
});
|
|
51
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
52
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
53
|
+
|
|
54
|
+
const page = await ctx.newPage();
|
|
55
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
56
|
+
await page.waitForSelector('g[data-node]', { timeout: 15000 });
|
|
57
|
+
await page.waitForTimeout(400);
|
|
58
|
+
|
|
59
|
+
// Click a legend status row to pin the status filter → mounts the
|
|
60
|
+
// filter pill. Use the alpha node since `working` row exists in fixture.
|
|
61
|
+
await page.click('[data-legend-status="working"]');
|
|
62
|
+
await page.waitForSelector('[data-topo-filter-pill-hover-lift="true"]', { timeout: 5000 });
|
|
63
|
+
|
|
64
|
+
const probe = await page.evaluate(() => {
|
|
65
|
+
const pill = document.querySelector('[data-topo-filter-pill-hover-lift="true"]');
|
|
66
|
+
return pill ? {
|
|
67
|
+
className: pill.className,
|
|
68
|
+
activeFilter: pill.getAttribute('data-active-filter'),
|
|
69
|
+
} : null;
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
73
|
+
const occurrences = (fileText.match(/hover:-translate-y-px/g) || []).length;
|
|
74
|
+
const sentinelOccurrences = (fileText.match(/data-topo-filter-pill-hover-lift="true"/g) || []).length;
|
|
75
|
+
|
|
76
|
+
await browser.close();
|
|
77
|
+
|
|
78
|
+
const cls = probe?.className || '';
|
|
79
|
+
const results = {
|
|
80
|
+
// Sentinel attr mounted on the filter pill
|
|
81
|
+
pill_mounted: !!probe,
|
|
82
|
+
// R397: hover-lift tokens present in className
|
|
83
|
+
has_transition_transform: cls.includes('transition-transform'),
|
|
84
|
+
has_hover_translate: cls.includes('hover:-translate-y-px'),
|
|
85
|
+
has_transform_gpu: cls.includes('transform-gpu'),
|
|
86
|
+
has_duration_200: cls.includes('duration-200'),
|
|
87
|
+
has_ease_out: cls.includes('ease-out'),
|
|
88
|
+
// Pre-R397 className tokens preserved
|
|
89
|
+
has_rounded_md: cls.includes('rounded-md'),
|
|
90
|
+
has_font_mono: cls.includes('font-mono'),
|
|
91
|
+
has_anet_topo_chip_focus: cls.includes('anet-topo-chip-focus'),
|
|
92
|
+
// Source-file replace_all coverage: 3 "group ..." pills + 1 plain pill = 4 occurrences
|
|
93
|
+
source_4_pills_lifted: occurrences === 4,
|
|
94
|
+
source_4_sentinels: sentinelOccurrences === 4,
|
|
95
|
+
};
|
|
96
|
+
const ok = Object.values(results).every(Boolean);
|
|
97
|
+
console.log(`${ok ? '✅' : '❌'} filter pin pills hover lift translateY(-1px):`, JSON.stringify(results),
|
|
98
|
+
'\n className:', cls,
|
|
99
|
+
'\n activeFilter:', probe?.activeFilter,
|
|
100
|
+
'\n occurrences:', occurrences, '/ sentinels:', sentinelOccurrences);
|
|
101
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{vHPpNXTwlJbOzB5cnE4Ki → R6sI--ujZV5ZqhwSJgZdY}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|