@sleep2agi/agent-network-dashboard 0.4.5-preview.16 → 0.4.5-preview.18
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 +9 -9
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +2 -2
- package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +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 +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs/page.js.nft.json +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +3 -3
- package/.next/server/app/logs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages/page.js.nft.json +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +3 -3
- package/.next/server/app/messages.segments/_full.segment.rsc +3 -3
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes/page.js.nft.json +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +3 -3
- package/.next/server/app/nodes.segments/_full.segment.rsc +3 -3
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks/page.js.nft.json +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +3 -3
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +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 +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page.js.nft.json +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +3 -3
- package/.next/server/app/tasks.segments/_full.segment.rsc +3 -3
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__04e5_8f._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04e5_8f._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0~wm-j6._.js → [root-of-the-server]__0o8yj3c._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0o8yj3c._.js.map +1 -0
- package/.next/server/chunks/ssr/{_13_v7-3._.js → _0kdizff._.js} +2 -2
- package/.next/server/chunks/ssr/_0kdizff._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_10b5blc._.js → app_0.zbtn5._.js} +2 -2
- package/.next/server/chunks/ssr/app_0.zbtn5._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_11rum9b._.js → app_04n78pr._.js} +2 -2
- package/.next/server/chunks/ssr/app_04n78pr._.js.map +1 -0
- package/.next/server/chunks/ssr/app_0_agk0r._.js +3 -0
- package/.next/server/chunks/ssr/app_0_agk0r._.js.map +1 -0
- package/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{03wwuo3wor.05.js → 0aby6p.a03e3n.js} +1 -1
- package/.next/static/chunks/{0h.ajsk_uxigl.js → 0elnqam.~nrl2.js} +1 -1
- package/.next/static/chunks/{05f.bm74.tg7p.js → 0l3gf0ickq445.js} +1 -1
- package/.next/static/chunks/{163g5zdashl0u.js → 0lb13~qih~i61.js} +1 -1
- package/.next/static/chunks/{0xdken69.ao36.css → 0vu6hg8v.i15e.css} +1 -1
- package/.next/static/chunks/10-ka4k4ni9u2.js +1 -0
- package/.next/static/chunks/{12dcb86elsl-e.js → 169v~dd1tdxdm.js} +1 -1
- package/.next/static/chunks/{0phmkvpddvjsy.js → 17uwnuk~0zoo3.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/logs/page.tsx +28 -4
- package/app/page.tsx +57 -7
- package/package.json +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0byvz32._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0byvz32._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0~wm-j6._.js.map +0 -1
- package/.next/server/chunks/ssr/_13_v7-3._.js.map +0 -1
- package/.next/server/chunks/ssr/app_0et5yua._.js +0 -3
- package/.next/server/chunks/ssr/app_0et5yua._.js.map +0 -1
- package/.next/server/chunks/ssr/app_10b5blc._.js.map +0 -1
- package/.next/server/chunks/ssr/app_11rum9b._.js.map +0 -1
- package/.next/static/chunks/0e7c40p~wq665.js +0 -1
- /package/.next/static/{qUnnW9GrnCg67RPEEOYpO → ZupDl5EGkCy2UOb5tx5pi}/_buildManifest.js +0 -0
- /package/.next/static/{qUnnW9GrnCg67RPEEOYpO → ZupDl5EGkCy2UOb5tx5pi}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{qUnnW9GrnCg67RPEEOYpO → ZupDl5EGkCy2UOb5tx5pi}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65822,e=>{"use strict";var s=e.i(83599),t=e.i(58963);let a=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 t=e.includes("?")?"&":"?";return`${e}${t}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",a,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/health",a,r);return{health:e||null,error:t}},"useLicense",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/license",a,{refreshInterval:6e4});return{license:e?.ok?e:null,error:t}},"useMessages",0,function(e=100){let{networkId:l}=(0,t.useNetworkId)(),{data:i,error:o,isLoading:c}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),a,r);return{messages:i?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:l,error:i,isLoading:o}=(0,s.default)(n("/api/hub/status",e),a,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),a,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,t.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),a,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let s=Math.floor(e/3600),t=Math.floor(e%3600/60);return s>0?`${s}h ${t}m`:`${t}m`},"timeAgo",0,function(e){if(!e)return"--";let s=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}])},95356,e=>{"use strict";var s=e.i(18050),t=e.i(22016);let a={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function r({variant:e,size:t}){let a={width:t,height:t},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,s.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,s.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,s.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,s.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,s.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,s.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,s.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,s.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,s.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,s.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,s.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,s.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,s.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,s.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,s.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,s.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,s.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function n({variant:e="generic",title:l,sub:i,cta:o,compact:c=!1}){let d=a[e],x=l??d.title,h=i??d.sub;return(0,s.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,s.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,s.jsx)(r,{variant:e,size:c?40:56})}),(0,s.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,s.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,s.jsx)("div",{className:"mt-4",children:o.href?(0,s.jsxs)(t.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,s.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,s.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,s.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}e.s(["EmptyState",0,n,"NodesEmptyState",0,function({hint:e}){return e?.global_count?(0,s.jsx)(n,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`}):(0,s.jsx)(n,{variant:"nodes",cta:{label:"Run anet quickstart",href:"https://anet.sh"}})}])},69874,e=>{"use strict";var s=e.i(18050);let t=[180,200,220,270,300,330,30,90];e.s(["AliasAvatar",0,function({alias:e,size:a=28,className:r=""}){let n=function(e){let s=0;for(let t=0;t<e.length;t++)s=31*s+e.charCodeAt(t)>>>0;let a=t[s%t.length];return{bg:`hsl(${a} 55% 22%)`,ring:`hsl(${a} 60% 45%)`,text:`hsl(${a} 80% 78%)`}}(e),l=Math.max(9,Math.round(.42*a));return(0,s.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${r}`,style:{width:a,height:a,fontSize:l,backgroundColor:n.bg,borderColor:n.ring,color:n.text},title:e,"aria-hidden":!0,children:e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"})}])},86688,e=>{"use strict";var s=e.i(18050),t=e.i(71645),a=e.i(22016),r=e.i(18150),n=e.i(65822),l=e.i(58442),i=e.i(95356),o=e.i(69874);let c={working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"};e.s(["default",0,function(){let e,d,x,h,{sessions:u,isLoading:g}=(0,n.useSessions)(),{health:p}=(0,n.useHealth)(),m=p?.sse_sessions||{},y=e=>(e.network_id?m[`${e.network_id}:${e.alias}`]:void 0)??m[e.alias],[b,j]=(0,t.useState)(""),[f,v]=(0,t.useState)(""),[N,w]=(0,t.useState)("list"),[k,C]=(0,t.useState)({}),[$,S]=(0,t.useState)(null),[A,T]=(0,t.useState)({}),[_,I]=(0,t.useState)(null),M=u.map(e=>({...e,online:!!y(e)})).filter(e=>"online"===b?e.online:"offline"===b?!e.online:!b||b===e.status).filter(e=>!f||e.alias.toLowerCase().includes(f.toLowerCase())||(e.agent||"").toLowerCase().includes(f.toLowerCase())).sort((e,s)=>!!s.online-!!e.online||("working"===s.status)-("working"===e.status)),L=u.filter(e=>y(e)).length,B=e=>{S(s=>s===e?null:e),T(s=>({...s,[e]:{}}))},E=(e,s)=>{C(t=>({...t,[e]:s}))},U=async e=>{let s=k[e]?.trim()||"";if(s){T(s=>({...s,[e]:{sending:!0}}));try{let t=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:e,task:s})}),a=await t.json();if(!t.ok||a?.ok===!1)throw Error(a?.error||"Send failed");C(s=>({...s,[e]:""})),T(s=>({...s,[e]:{success:"Task sent"}})),S(null)}catch(s){T(t=>({...t,[e]:{error:s instanceof Error?s.message:"Send failed"}}))}}};return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,s.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30",children:[L," online"]}),(0,s.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30",children:[u.length," total"]})]}),u.length>0&&(e=M.filter(e=>e.online&&"working"===e.status).length,d=M.filter(e=>e.online&&"idle"===e.status).length,x=M.filter(e=>!e.online).length,h=M.length||1,(0,s.jsxs)("div",{className:"mb-6",children:[(0,s.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[e>0&&(0,s.jsx)("div",{className:"bg-green-500",style:{width:`${e/h*100}%`}}),d>0&&(0,s.jsx)("div",{className:"bg-cyan-500",style:{width:`${d/h*100}%`}}),x>0&&(0,s.jsx)("div",{className:"bg-gray-600",style:{width:`${x/h*100}%`}})]}),(0,s.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[e>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),e," working"]}),d>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),d," idle"]}),x>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),x," offline"]})]})]})),(0,s.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,s.jsx)("input",{type:"text",value:f,onChange:e=>v(e.target.value),placeholder:"Search nodes...",className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48"}),(0,s.jsxs)("select",{value:b,onChange:e=>j(e.target.value),className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,s.jsx)("option",{value:"",children:"All"}),(0,s.jsx)("option",{value:"online",children:"Online"}),(0,s.jsx)("option",{value:"offline",children:"Offline"}),(0,s.jsx)("option",{value:"working",children:"Working"}),(0,s.jsx)("option",{value:"idle",children:"Idle"}),(0,s.jsx)("option",{value:"blocked",children:"Blocked"}),(0,s.jsx)("option",{value:"error",children:"Error"})]}),(0,s.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>w(e),className:`rounded-md px-3 py-1.5 transition-colors ${N===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),g?(0,s.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,s.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===M.length?(0,s.jsx)(i.EmptyState,{variant:"nodes",title:"No nodes match your filters",sub:"Try clearing search or status filters, or wait for an agent to register."}):"grid"===N?(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:M.map(e=>{let t=e.online?e.status:"offline",n=A[e.alias]||{},l="number"==typeof e.progress?e.progress:0;return(0,s.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,s.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,s.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:36}),(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),(0,s.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[10px] uppercase tracking-wide ${c[t]||c.offline}`,children:t})]}),(0,s.jsxs)("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:[e.agent||"—",(0,s.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),e.server||"—"]})]}),(0,s.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20",children:"Task"})]})]}),(0,s.jsxs)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Current task"}),(0,s.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)})]}),(0,s.jsx)("div",{className:`mt-1 line-clamp-2 ${e.task?"text-gray-300":"text-gray-600 italic"}`,children:e.task||"No current task"})]}),l>0&&l<100&&(0,s.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,s.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${l}%`}})}),$===e.alias&&(0,s.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,s.jsx)("input",{type:"text",value:k[e.alias]||"",onChange:s=>E(e.alias,s.target.value),onKeyDown:s=>"Enter"===s.key&&U(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>S(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,s.jsx)("button",{type:"button",onClick:()=>U(e.alias),disabled:n.sending||!(k[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:n.sending?"Sending...":"Send"})]})]}),n.error&&(0,s.jsx)("div",{className:"mt-2 text-xs text-red-400",children:n.error}),n.success&&$!==e.alias&&(0,s.jsx)("div",{className:"mt-2 text-xs text-green-400",children:n.success})]},e.alias)})}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,s.jsx)("div",{className:"col-span-1",children:"Status"}),(0,s.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,s.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,s.jsx)("div",{className:"col-span-2",children:"Server"}),(0,s.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,s.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,s.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),M.map(e=>{let t=e.online?e.status:"offline",n=A[e.alias]||{};return(0,s.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!e.online?"opacity-50":""}`,children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,s.jsx)("div",{className:"col-span-1",children:(0,s.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${c[t]||c.offline}`,children:t})}),(0,s.jsx)("div",{className:"col-span-2 min-w-0",children:(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"flex items-center gap-2 min-w-0 hover:text-cyan-300",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:20}),(0,s.jsx)("span",{className:"truncate text-sm font-medium text-white",children:e.alias})]})}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.agent||"--"}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.server||"--"}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:e.task||"--"}),(0,s.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)}),(0,s.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Task"})]})]}),(0,s.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:28}),(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:[(0,s.jsx)("div",{className:"truncate text-sm font-medium text-white",children:e.alias}),(0,s.jsxs)("div",{className:"truncate text-[10px] text-gray-500",children:[e.agent||"—"," · ",(0,r.timeAgo)(e.last_seen_at||e.updated_at)]})]}),(0,s.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${c[t]||c.offline}`,children:t})]}),e.task&&(0,s.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Send Task"})]})]}),$===e.alias&&(0,s.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,s.jsx)("input",{type:"text",value:k[e.alias]||"",onChange:s=>E(e.alias,s.target.value),onKeyDown:s=>"Enter"===s.key&&U(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>S(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,s.jsx)("button",{type:"button",onClick:()=>U(e.alias),disabled:n.sending||!(k[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:n.sending?"Sending...":"Send"})]})]}),n.error&&(0,s.jsx)("div",{className:"mt-2 text-xs text-red-400",children:n.error}),n.success&&$!==e.alias&&(0,s.jsx)("div",{className:"mt-2 text-xs text-green-400",children:n.success})]},e.alias)})]}),_&&(0,s.jsx)(l.TaskChatPanel,{alias:_,onClose:()=>I(null)})]})}])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let s=Math.floor(e/3600),t=Math.floor(e%3600/60);return s>0?`${s}h ${t}m`:`${t}m`},"timeAgo",0,function(e){if(!e)return"--";let s=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`}])},69874,e=>{"use strict";var s=e.i(18050);let t=[180,200,220,270,300,330,30,90];e.s(["AliasAvatar",0,function({alias:e,size:a=28,className:r=""}){let n=function(e){let s=0;for(let t=0;t<e.length;t++)s=31*s+e.charCodeAt(t)>>>0;let a=t[s%t.length];return{bg:`hsl(${a} 55% 22%)`,ring:`hsl(${a} 60% 45%)`,text:`hsl(${a} 80% 78%)`}}(e),l=Math.max(9,Math.round(.42*a));return(0,s.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${r}`,style:{width:a,height:a,fontSize:l,backgroundColor:n.bg,borderColor:n.ring,color:n.text},title:e,"aria-hidden":!0,children:e?(e.trim().match(/[\p{L}\p{N}]/u)?.[0]||e.trim()[0]||"·").toUpperCase():"·"})}])},95356,e=>{"use strict";var s=e.i(18050),t=e.i(22016);let a={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function r({variant:e,size:t}){let a={width:t,height:t},n={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(e){case"nodes":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,s.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,s.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,s.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,s.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,s.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,s.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,s.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,s.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,s.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,s.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,s.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,s.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,s.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,s.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,s.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,s.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,s.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,s.jsx)("svg",{viewBox:"0 0 64 64",...a,children:(0,s.jsxs)("g",{...n,children:[(0,s.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,s.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function n({variant:e="generic",title:l,sub:i,cta:o,compact:c=!1}){let d=a[e],x=l??d.title,h=i??d.sub;return(0,s.jsxs)("div",{className:`text-center ${c?"py-8":"py-16"} px-4`,role:"status",children:[(0,s.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,s.jsx)(r,{variant:e,size:c?40:56})}),(0,s.jsx)("h3",{className:`font-medium text-gray-300 ${c?"text-sm":"text-base"}`,children:x}),h&&(0,s.jsx)("p",{className:`text-gray-500 ${c?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:h}),o&&(0,s.jsx)("div",{className:"mt-4",children:o.href?(0,s.jsxs)(t.default,{href:o.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,s.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,s.jsxs)("button",{onClick:o.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[o.label,(0,s.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}e.s(["EmptyState",0,n,"NodesEmptyState",0,function({hint:e}){return e?.global_count?(0,s.jsx)(n,{variant:"nodes",title:"No agents in this network",sub:`Server has ${e.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`}):(0,s.jsx)(n,{variant:"nodes",cta:{label:"Run anet quickstart",href:"https://anet.sh"}})}])},65822,e=>{"use strict";var s=e.i(83599),t=e.i(58963);let a=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 t=e.includes("?")?"&":"?";return`${e}${t}network_id=${encodeURIComponent(s)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,s.default)("/api/anet/config",a,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/health",a,r);return{health:e||null,error:t}},"useLicense",0,function(){let{data:e,error:t}=(0,s.default)("/api/hub/license",a,{refreshInterval:6e4});return{license:e?.ok?e:null,error:t}},"useMessages",0,function(e=100){let{networkId:l}=(0,t.useNetworkId)(),{data:i,error:o,isLoading:c}=(0,s.default)(n(`/api/hub/messages?limit=${e}`,l),a,r);return{messages:i?.messages||[],error:o,isLoading:c}},"useSessions",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:l,error:i,isLoading:o}=(0,s.default)(n("/api/hub/status",e),a,r);return{sessions:l?.sessions||[],hint:l?._hint,error:i,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,t.useNetworkId)(),{data:l,error:i}=(0,s.default)(n("/api/hub/stats",e),a,r);return{stats:l?.ok?l:null,error:i}},"useTasks",0,function(e){let{networkId:l}=(0,t.useNetworkId)(),i=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:c,isLoading:d}=(0,s.default)(n(`/api/hub/tasks?${i}`,l),a,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:c,isLoading:d}}])},86688,e=>{"use strict";var s=e.i(18050),t=e.i(71645),a=e.i(22016),r=e.i(18150),n=e.i(65822),l=e.i(58442),i=e.i(95356),o=e.i(69874);let c={working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"};e.s(["default",0,function(){let e,d,x,h,{sessions:u,isLoading:g}=(0,n.useSessions)(),{health:p}=(0,n.useHealth)(),m=p?.sse_sessions||{},y=e=>(e.network_id?m[`${e.network_id}:${e.alias}`]:void 0)??m[e.alias],[b,j]=(0,t.useState)(""),[f,v]=(0,t.useState)(""),[N,w]=(0,t.useState)("list"),[k,C]=(0,t.useState)({}),[$,S]=(0,t.useState)(null),[A,T]=(0,t.useState)({}),[_,I]=(0,t.useState)(null),M=u.map(e=>({...e,online:!!y(e)})).filter(e=>"online"===b?e.online:"offline"===b?!e.online:!b||b===e.status).filter(e=>!f||e.alias.toLowerCase().includes(f.toLowerCase())||(e.agent||"").toLowerCase().includes(f.toLowerCase())).sort((e,s)=>!!s.online-!!e.online||("working"===s.status)-("working"===e.status)),L=u.filter(e=>y(e)).length,B=e=>{S(s=>s===e?null:e),T(s=>({...s,[e]:{}}))},E=(e,s)=>{C(t=>({...t,[e]:s}))},U=async e=>{let s=k[e]?.trim()||"";if(s){T(s=>({...s,[e]:{sending:!0}}));try{let t=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:e,task:s})}),a=await t.json();if(!t.ok||a?.ok===!1)throw Error(a?.error||"Send failed");C(s=>({...s,[e]:""})),T(s=>({...s,[e]:{success:"Task sent"}})),S(null)}catch(s){T(t=>({...t,[e]:{error:s instanceof Error?s.message:"Send failed"}}))}}};return(0,s.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,s.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30",children:[L," online"]}),(0,s.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30",children:[u.length," total"]})]}),u.length>0&&(e=M.filter(e=>e.online&&"working"===e.status).length,d=M.filter(e=>e.online&&"idle"===e.status).length,x=M.filter(e=>!e.online).length,h=M.length||1,(0,s.jsxs)("div",{className:"mb-6",children:[(0,s.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[e>0&&(0,s.jsx)("div",{className:"bg-green-500",style:{width:`${e/h*100}%`}}),d>0&&(0,s.jsx)("div",{className:"bg-cyan-500",style:{width:`${d/h*100}%`}}),x>0&&(0,s.jsx)("div",{className:"bg-gray-600",style:{width:`${x/h*100}%`}})]}),(0,s.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[e>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),e," working"]}),d>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),d," idle"]}),x>0&&(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),x," offline"]})]})]})),(0,s.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,s.jsx)("input",{type:"text",value:f,onChange:e=>v(e.target.value),placeholder:"Search nodes...",className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48"}),(0,s.jsxs)("select",{value:b,onChange:e=>j(e.target.value),className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,s.jsx)("option",{value:"",children:"All"}),(0,s.jsx)("option",{value:"online",children:"Online"}),(0,s.jsx)("option",{value:"offline",children:"Offline"}),(0,s.jsx)("option",{value:"working",children:"Working"}),(0,s.jsx)("option",{value:"idle",children:"Idle"}),(0,s.jsx)("option",{value:"blocked",children:"Blocked"}),(0,s.jsx)("option",{value:"error",children:"Error"})]}),(0,s.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(e=>(0,s.jsx)("button",{type:"button",onClick:()=>w(e),className:`rounded-md px-3 py-1.5 transition-colors ${N===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),g?(0,s.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,s.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===M.length?(0,s.jsx)(i.EmptyState,{variant:"nodes",title:"No nodes match your filters",sub:"Try clearing search or status filters, or wait for an agent to register."}):"grid"===N?(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:M.map(e=>{let t=e.online?e.status:"offline",n=A[e.alias]||{},l="number"==typeof e.progress?e.progress:0;return(0,s.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,s.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,s.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:36}),(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),(0,s.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[10px] uppercase tracking-wide ${c[t]||c.offline}`,children:t})]}),(0,s.jsxs)("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:[e.agent||"—",(0,s.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),e.server||"—"]})]}),(0,s.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20",children:"Task"})]})]}),(0,s.jsxs)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Current task"}),(0,s.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)})]}),(0,s.jsx)("div",{className:`mt-1 line-clamp-2 ${e.task?"text-gray-300":"text-gray-600 italic"}`,children:e.task||"No current task"})]}),l>0&&l<100&&(0,s.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,s.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${l}%`}})}),$===e.alias&&(0,s.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,s.jsx)("input",{type:"text",value:k[e.alias]||"",onChange:s=>E(e.alias,s.target.value),onKeyDown:s=>"Enter"===s.key&&U(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>S(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,s.jsx)("button",{type:"button",onClick:()=>U(e.alias),disabled:n.sending||!(k[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:n.sending?"Sending...":"Send"})]})]}),n.error&&(0,s.jsx)("div",{className:"mt-2 text-xs text-red-400",children:n.error}),n.success&&$!==e.alias&&(0,s.jsx)("div",{className:"mt-2 text-xs text-green-400",children:n.success})]},e.alias)})}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,s.jsx)("div",{className:"col-span-1",children:"Status"}),(0,s.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,s.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,s.jsx)("div",{className:"col-span-2",children:"Server"}),(0,s.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,s.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,s.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),M.map(e=>{let t=e.online?e.status:"offline",n=A[e.alias]||{};return(0,s.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!e.online?"opacity-50":""}`,children:[(0,s.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,s.jsx)("div",{className:"col-span-1",children:(0,s.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${c[t]||c.offline}`,children:t})}),(0,s.jsx)("div",{className:"col-span-2 min-w-0",children:(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"flex items-center gap-2 min-w-0 hover:text-cyan-300",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:20}),(0,s.jsx)("span",{className:"truncate text-sm font-medium text-white",children:e.alias})]})}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.agent||"--"}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.server||"--"}),(0,s.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:e.task||"--"}),(0,s.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)}),(0,s.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Task"})]})]}),(0,s.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsx)(o.AliasAvatar,{alias:e.alias,size:28}),(0,s.jsxs)(a.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:[(0,s.jsx)("div",{className:"truncate text-sm font-medium text-white",children:e.alias}),(0,s.jsxs)("div",{className:"truncate text-[10px] text-gray-500",children:[e.agent||"—"," · ",(0,r.timeAgo)(e.last_seen_at||e.updated_at)]})]}),(0,s.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${c[t]||c.offline}`,children:t})]}),e.task&&(0,s.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>I(e.alias),className:"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,s.jsx)("button",{type:"button",onClick:()=>B(e.alias),className:"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Send Task"})]})]}),$===e.alias&&(0,s.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,s.jsx)("input",{type:"text",value:k[e.alias]||"",onChange:s=>E(e.alias,s.target.value),onKeyDown:s=>"Enter"===s.key&&U(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>S(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,s.jsx)("button",{type:"button",onClick:()=>U(e.alias),disabled:n.sending||!(k[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:n.sending?"Sending...":"Send"})]})]}),n.error&&(0,s.jsx)("div",{className:"mt-2 text-xs text-red-400",children:n.error}),n.success&&$!==e.alias&&(0,s.jsx)("div",{className:"mt-2 text-xs text-green-400",children:n.success})]},e.alias)})]}),_&&(0,s.jsx)(l.TaskChatPanel,{alias:_,onClose:()=>I(null)})]})}])}]);
|
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":340,"timestamp":193047259111,"id":4,"parentId":1,"tags":{},"startTime":1778564533084,"traceId":"e5935599772cdd6b"},{"name":"load-custom-routes","duration":512,"timestamp":193047259614,"id":5,"parentId":1,"tags":{},"startTime":1778564533084,"traceId":"e5935599772cdd6b"},{"name":"create-dist-dir","duration":366,"timestamp":193047260174,"id":6,"parentId":1,"tags":{},"startTime":1778564533085,"traceId":"e5935599772cdd6b"},{"name":"clean","duration":547,"timestamp":193047261226,"id":7,"parentId":1,"tags":{},"startTime":1778564533086,"traceId":"e5935599772cdd6b"},{"name":"discover-routes","duration":8900,"timestamp":193047347812,"id":8,"parentId":1,"tags":{},"startTime":1778564533173,"traceId":"e5935599772cdd6b"},{"name":"create-root-mapping","duration":109,"timestamp":193047356778,"id":9,"parentId":1,"tags":{},"startTime":1778564533181,"traceId":"e5935599772cdd6b"},{"name":"generate-route-types","duration":30487,"timestamp":193047359105,"id":10,"parentId":1,"tags":{},"startTime":1778564533184,"traceId":"e5935599772cdd6b"},{"name":"public-dir-conflict-check","duration":109,"timestamp":193047389689,"id":11,"parentId":1,"tags":{},"startTime":1778564533214,"traceId":"e5935599772cdd6b"},{"name":"generate-routes-manifest","duration":4254,"timestamp":193047389915,"id":12,"parentId":1,"tags":{},"startTime":1778564533215,"traceId":"e5935599772cdd6b"},{"name":"run-turbopack","duration":7605712,"timestamp":193047407611,"id":14,"parentId":1,"tags":{},"startTime":1778564533232,"traceId":"e5935599772cdd6b"},{"name":"turbopack-build-events","duration":77,"timestamp":193047692465,"id":15,"parentId":1,"tags":{},"startTime":1778564533517,"traceId":"e5935599772cdd6b"},{"name":"run-typescript","duration":7268943,"timestamp":193055020542,"id":16,"parentId":1,"tags":{},"startTime":1778564540845,"traceId":"e5935599772cdd6b"},{"name":"generate-required-server-files","duration":3095,"timestamp":193062290823,"id":18,"parentId":1,"tags":{},"startTime":1778564548116,"traceId":"e5935599772cdd6b"},{"name":"check-static-error-page","duration":17167,"timestamp":193062384205,"id":20,"parentId":19,"tags":{},"startTime":1778564548209,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":437441,"timestamp":193062405330,"id":62,"parentId":22,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":455690,"timestamp":193062387249,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778564548212,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":526014,"timestamp":193062405453,"id":63,"parentId":25,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":541041,"timestamp":193062390531,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778564548215,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":527591,"timestamp":193062404879,"id":61,"parentId":21,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":546892,"timestamp":193062385640,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778564548210,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":560386,"timestamp":193062405733,"id":65,"parentId":27,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":573783,"timestamp":193062392420,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778564548217,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":583333,"timestamp":193062405846,"id":67,"parentId":29,"tags":{},"startTime":1778564548231,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":596500,"timestamp":193062392768,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778564548217,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":588326,"timestamp":193062405895,"id":68,"parentId":30,"tags":{},"startTime":1778564548231,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":601156,"timestamp":193062393149,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778564548218,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":591072,"timestamp":193062405665,"id":64,"parentId":26,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":604576,"timestamp":193062392242,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778564548217,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":592494,"timestamp":193062405950,"id":69,"parentId":32,"tags":{},"startTime":1778564548231,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":604964,"timestamp":193062393550,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778564548218,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":596818,"timestamp":193062407239,"id":71,"parentId":34,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":610304,"timestamp":193062393843,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778564548219,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":598549,"timestamp":193062405790,"id":66,"parentId":28,"tags":{},"startTime":1778564548230,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":611784,"timestamp":193062392590,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778564548217,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":600819,"timestamp":193062407259,"id":72,"parentId":35,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":614122,"timestamp":193062394018,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778564548219,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":601747,"timestamp":193062407317,"id":73,"parentId":36,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":614580,"timestamp":193062394536,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778564548219,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":606477,"timestamp":193062407336,"id":74,"parentId":37,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":619180,"timestamp":193062394692,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778564548219,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":606909,"timestamp":193062407345,"id":75,"parentId":38,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":619493,"timestamp":193062394800,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778564548219,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":610732,"timestamp":193062407351,"id":76,"parentId":39,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":623263,"timestamp":193062394875,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":611394,"timestamp":193062407357,"id":77,"parentId":40,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":623842,"timestamp":193062394951,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":614456,"timestamp":193062407362,"id":78,"parentId":41,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":626815,"timestamp":193062395078,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":615763,"timestamp":193062407368,"id":79,"parentId":42,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":627971,"timestamp":193062395206,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":619043,"timestamp":193062407373,"id":80,"parentId":43,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":631151,"timestamp":193062395314,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":622291,"timestamp":193062407378,"id":81,"parentId":44,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":634311,"timestamp":193062395424,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":623399,"timestamp":193062407382,"id":82,"parentId":45,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":635299,"timestamp":193062395539,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":624437,"timestamp":193062407168,"id":70,"parentId":33,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":637943,"timestamp":193062393712,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778564548218,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":624517,"timestamp":193062407387,"id":83,"parentId":46,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":636294,"timestamp":193062395681,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":628162,"timestamp":193062407392,"id":84,"parentId":47,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":639838,"timestamp":193062395783,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778564548220,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":628150,"timestamp":193062410146,"id":86,"parentId":24,"tags":{},"startTime":1778564548235,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":650601,"timestamp":193062387752,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778564548212,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":629204,"timestamp":193062411240,"id":87,"parentId":31,"tags":{},"startTime":1778564548236,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":647201,"timestamp":193062393297,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778564548218,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":637891,"timestamp":193062407397,"id":85,"parentId":48,"tags":{},"startTime":1778564548232,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":649465,"timestamp":193062395896,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778564548221,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":622150,"timestamp":193062424471,"id":88,"parentId":23,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":659120,"timestamp":193062387554,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778564548212,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":630483,"timestamp":193062424547,"id":91,"parentId":51,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":658486,"timestamp":193062396642,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778564548221,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":638555,"timestamp":193062424563,"id":92,"parentId":52,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":666329,"timestamp":193062396855,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778564548222,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":648721,"timestamp":193062424573,"id":93,"parentId":53,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":676280,"timestamp":193062397092,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778564548222,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":654302,"timestamp":193062424588,"id":94,"parentId":55,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":681185,"timestamp":193062397790,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778564548222,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":664218,"timestamp":193062424602,"id":95,"parentId":56,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":690860,"timestamp":193062398050,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778564548223,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":676294,"timestamp":193062424610,"id":96,"parentId":58,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":700260,"timestamp":193062400735,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778564548225,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":678569,"timestamp":193062424532,"id":90,"parentId":50,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":706669,"timestamp":193062396489,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778564548221,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":681219,"timestamp":193062424521,"id":89,"parentId":49,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":709474,"timestamp":193062396316,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778564548221,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":688547,"timestamp":193062424664,"id":98,"parentId":60,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":712178,"timestamp":193062401095,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778564548226,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":688693,"timestamp":193062424679,"id":99,"parentId":54,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":716077,"timestamp":193062397322,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778564548222,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":692036,"timestamp":193062424623,"id":97,"parentId":59,"tags":{},"startTime":1778564548249,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":715816,"timestamp":193062400910,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778564548226,"traceId":"e5935599772cdd6b"},{"name":"is-page-static","duration":687207,"timestamp":193062433983,"id":100,"parentId":57,"tags":{},"startTime":1778564548259,"traceId":"e5935599772cdd6b"},{"name":"check-page","duration":722950,"timestamp":193062398297,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778564548223,"traceId":"e5935599772cdd6b"},{"name":"static-check","duration":738418,"timestamp":193062382867,"id":19,"parentId":1,"tags":{},"startTime":1778564548208,"traceId":"e5935599772cdd6b"},{"name":"write-routes-manifest","duration":527,"timestamp":193063129247,"id":102,"parentId":1,"tags":{},"startTime":1778564548954,"traceId":"e5935599772cdd6b"},{"name":"load-dotenv","duration":49,"timestamp":193063143429,"id":105,"parentId":104,"tags":{},"startTime":1778564548968,"traceId":"e5935599772cdd6b"},{"name":"run-export-path-map","duration":720,"timestamp":193063146160,"id":106,"parentId":104,"tags":{},"startTime":1778564548971,"traceId":"e5935599772cdd6b"},{"name":"next-export","duration":533554,"timestamp":193063142193,"id":104,"parentId":1,"tags":{},"startTime":1778564548967,"traceId":"e5935599772cdd6b"},{"name":"move-exported-app-not-found-","duration":1699,"timestamp":193063679168,"id":107,"parentId":103,"tags":{},"startTime":1778564549504,"traceId":"e5935599772cdd6b"},{"name":"move-exported-app-global-error-","duration":489,"timestamp":193063681027,"id":108,"parentId":103,"tags":{},"startTime":1778564549506,"traceId":"e5935599772cdd6b"}]
|
|
2
|
-
[{"name":"static-generation","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":317,"timestamp":194070445796,"id":4,"parentId":1,"tags":{},"startTime":1778565556270,"traceId":"199298f4cd9eb94e"},{"name":"load-custom-routes","duration":455,"timestamp":194070446264,"id":5,"parentId":1,"tags":{},"startTime":1778565556271,"traceId":"199298f4cd9eb94e"},{"name":"create-dist-dir","duration":741,"timestamp":194070446759,"id":6,"parentId":1,"tags":{},"startTime":1778565556271,"traceId":"199298f4cd9eb94e"},{"name":"clean","duration":511,"timestamp":194070448280,"id":7,"parentId":1,"tags":{},"startTime":1778565556273,"traceId":"199298f4cd9eb94e"},{"name":"discover-routes","duration":8874,"timestamp":194070534633,"id":8,"parentId":1,"tags":{},"startTime":1778565556359,"traceId":"199298f4cd9eb94e"},{"name":"create-root-mapping","duration":124,"timestamp":194070543572,"id":9,"parentId":1,"tags":{},"startTime":1778565556368,"traceId":"199298f4cd9eb94e"},{"name":"generate-route-types","duration":31666,"timestamp":194070545852,"id":10,"parentId":1,"tags":{},"startTime":1778565556371,"traceId":"199298f4cd9eb94e"},{"name":"public-dir-conflict-check","duration":102,"timestamp":194070577702,"id":11,"parentId":1,"tags":{},"startTime":1778565556402,"traceId":"199298f4cd9eb94e"},{"name":"generate-routes-manifest","duration":4139,"timestamp":194070577931,"id":12,"parentId":1,"tags":{},"startTime":1778565556403,"traceId":"199298f4cd9eb94e"},{"name":"run-turbopack","duration":8192867,"timestamp":194070588037,"id":14,"parentId":1,"tags":{},"startTime":1778565556413,"traceId":"199298f4cd9eb94e"},{"name":"turbopack-build-events","duration":77,"timestamp":194070892547,"id":15,"parentId":1,"tags":{},"startTime":1778565556717,"traceId":"199298f4cd9eb94e"},{"name":"run-typescript","duration":7907609,"timestamp":194078790734,"id":16,"parentId":1,"tags":{},"startTime":1778565564615,"traceId":"199298f4cd9eb94e"},{"name":"generate-required-server-files","duration":2163,"timestamp":194086699226,"id":18,"parentId":1,"tags":{},"startTime":1778565572524,"traceId":"199298f4cd9eb94e"},{"name":"check-static-error-page","duration":15667,"timestamp":194086767847,"id":20,"parentId":19,"tags":{},"startTime":1778565572593,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":329888,"timestamp":194086785789,"id":62,"parentId":22,"tags":{},"startTime":1778565572610,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":345733,"timestamp":194086770102,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778565572595,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":399426,"timestamp":194086785486,"id":61,"parentId":21,"tags":{},"startTime":1778565572610,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":416109,"timestamp":194086768876,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778565572594,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":401956,"timestamp":194086785869,"id":63,"parentId":25,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":413927,"timestamp":194086773955,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778565572599,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":406806,"timestamp":194086786131,"id":66,"parentId":28,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":418039,"timestamp":194086774954,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778565572600,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":437823,"timestamp":194086786190,"id":67,"parentId":29,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":448900,"timestamp":194086775185,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778565572600,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":464693,"timestamp":194086786225,"id":68,"parentId":30,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":475512,"timestamp":194086775478,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778565572600,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":499430,"timestamp":194086786071,"id":65,"parentId":27,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":510835,"timestamp":194086774734,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778565572599,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":531427,"timestamp":194086786257,"id":69,"parentId":32,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":541741,"timestamp":194086776016,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":531863,"timestamp":194086786360,"id":70,"parentId":33,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":542141,"timestamp":194086776130,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":532358,"timestamp":194086786027,"id":64,"parentId":26,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":544152,"timestamp":194086774252,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778565572599,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":538438,"timestamp":194086786422,"id":72,"parentId":35,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":548598,"timestamp":194086776315,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":543284,"timestamp":194086786406,"id":71,"parentId":34,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":553562,"timestamp":194086776225,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":547848,"timestamp":194086786498,"id":75,"parentId":38,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":557647,"timestamp":194086776857,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":548230,"timestamp":194086786472,"id":73,"parentId":36,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":558090,"timestamp":194086776637,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":553811,"timestamp":194086786504,"id":76,"parentId":39,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":563443,"timestamp":194086776920,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":557053,"timestamp":194086786490,"id":74,"parentId":37,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":566840,"timestamp":194086776753,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778565572601,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":560408,"timestamp":194086786515,"id":78,"parentId":41,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":569905,"timestamp":194086777079,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":561150,"timestamp":194086786509,"id":77,"parentId":40,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":570712,"timestamp":194086776986,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":564681,"timestamp":194086786520,"id":79,"parentId":42,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":574075,"timestamp":194086777170,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":564919,"timestamp":194086786525,"id":80,"parentId":43,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":574236,"timestamp":194086777244,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":567398,"timestamp":194086786536,"id":82,"parentId":45,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":576585,"timestamp":194086777391,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":568262,"timestamp":194086786542,"id":83,"parentId":46,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":577358,"timestamp":194086777483,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":570033,"timestamp":194086786531,"id":81,"parentId":44,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":579283,"timestamp":194086777320,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":572020,"timestamp":194086786552,"id":85,"parentId":48,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":580984,"timestamp":194086777632,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":575477,"timestamp":194086786547,"id":84,"parentId":47,"tags":{},"startTime":1778565572611,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":584509,"timestamp":194086777559,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778565572602,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":558317,"timestamp":194086803878,"id":87,"parentId":31,"tags":{},"startTime":1778565572629,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":586540,"timestamp":194086775678,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778565572600,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":561224,"timestamp":194086801083,"id":86,"parentId":24,"tags":{},"startTime":1778565572626,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":591825,"timestamp":194086770499,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778565572595,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":544022,"timestamp":194086824339,"id":88,"parentId":23,"tags":{},"startTime":1778565572649,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":598057,"timestamp":194086770351,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778565572595,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":550684,"timestamp":194086824394,"id":91,"parentId":51,"tags":{},"startTime":1778565572649,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":594415,"timestamp":194086780710,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778565572605,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":556408,"timestamp":194086824402,"id":92,"parentId":52,"tags":{},"startTime":1778565572649,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":599343,"timestamp":194086781516,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778565572606,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":561811,"timestamp":194086825540,"id":93,"parentId":53,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":605679,"timestamp":194086781721,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778565572606,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":568153,"timestamp":194086825565,"id":94,"parentId":55,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":611381,"timestamp":194086782396,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778565572607,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":573225,"timestamp":194086825578,"id":95,"parentId":56,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":616310,"timestamp":194086782564,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778565572607,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":579982,"timestamp":194086825587,"id":96,"parentId":58,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":622554,"timestamp":194086783068,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778565572608,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":591515,"timestamp":194086825592,"id":97,"parentId":59,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":633993,"timestamp":194086783201,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778565572608,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":596601,"timestamp":194086825606,"id":98,"parentId":60,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":638938,"timestamp":194086783322,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778565572608,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":598018,"timestamp":194086824378,"id":89,"parentId":49,"tags":{},"startTime":1778565572649,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":642162,"timestamp":194086780259,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778565572605,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":600502,"timestamp":194086824388,"id":90,"parentId":50,"tags":{},"startTime":1778565572649,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":644445,"timestamp":194086780490,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778565572605,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":569690,"timestamp":194086859085,"id":100,"parentId":57,"tags":{},"startTime":1778565572684,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":646114,"timestamp":194086782706,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778565572607,"traceId":"199298f4cd9eb94e"},{"name":"is-page-static","duration":605571,"timestamp":194086825619,"id":99,"parentId":54,"tags":{},"startTime":1778565572650,"traceId":"199298f4cd9eb94e"},{"name":"check-page","duration":649336,"timestamp":194086781895,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778565572607,"traceId":"199298f4cd9eb94e"},{"name":"static-check","duration":664283,"timestamp":194086767028,"id":19,"parentId":1,"tags":{},"startTime":1778565572592,"traceId":"199298f4cd9eb94e"},{"name":"write-routes-manifest","duration":474,"timestamp":194087437872,"id":102,"parentId":1,"tags":{},"startTime":1778565573263,"traceId":"199298f4cd9eb94e"},{"name":"load-dotenv","duration":44,"timestamp":194087450898,"id":105,"parentId":104,"tags":{},"startTime":1778565573276,"traceId":"199298f4cd9eb94e"},{"name":"run-export-path-map","duration":669,"timestamp":194087453796,"id":106,"parentId":104,"tags":{},"startTime":1778565573278,"traceId":"199298f4cd9eb94e"},{"name":"next-export","duration":540501,"timestamp":194087449690,"id":104,"parentId":1,"tags":{},"startTime":1778565573274,"traceId":"199298f4cd9eb94e"},{"name":"move-exported-app-not-found-","duration":700,"timestamp":194087993496,"id":107,"parentId":103,"tags":{},"startTime":1778565573818,"traceId":"199298f4cd9eb94e"},{"name":"move-exported-app-global-error-","duration":414,"timestamp":194087994302,"id":108,"parentId":103,"tags":{},"startTime":1778565573819,"traceId":"199298f4cd9eb94e"}]
|
|
2
|
+
[{"name":"static-generation","duration":556299,"timestamp":194087442847,"id":103,"parentId":1,"tags":{},"startTime":1778565573268,"traceId":"199298f4cd9eb94e"},{"name":"write-routes-manifest","duration":466,"timestamp":194087999358,"id":109,"parentId":1,"tags":{},"startTime":1778565573824,"traceId":"199298f4cd9eb94e"},{"name":"print-tree-view","duration":3662,"timestamp":194088012663,"id":110,"parentId":1,"tags":{},"startTime":1778565573837,"traceId":"199298f4cd9eb94e"},{"name":"write-route-bundle-stats","duration":13063,"timestamp":194088016362,"id":111,"parentId":1,"tags":{},"startTime":1778565573841,"traceId":"199298f4cd9eb94e"},{"name":"telemetry-flush","duration":25956,"timestamp":194088029460,"id":112,"parentId":1,"tags":{},"startTime":1778565573854,"traceId":"199298f4cd9eb94e"},{"name":"next-build","duration":17658741,"timestamp":194070396715,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778565556221,"traceId":"199298f4cd9eb94e"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":8192867,"timestamp":194070588037,"id":14,"parentId":1,"tags":{},"startTime":1778565556413,"traceId":"199298f4cd9eb94e"},{"name":"turbopack-build-events","duration":77,"timestamp":194070892547,"id":15,"parentId":1,"tags":{},"startTime":1778565556717,"traceId":"199298f4cd9eb94e"},{"name":"run-typescript","duration":7907609,"timestamp":194078790734,"id":16,"parentId":1,"tags":{},"startTime":1778565564615,"traceId":"199298f4cd9eb94e"},{"name":"static-check","duration":664283,"timestamp":194086767028,"id":19,"parentId":1,"tags":{},"startTime":1778565572592,"traceId":"199298f4cd9eb94e"},{"name":"static-generation","duration":556299,"timestamp":194087442847,"id":103,"parentId":1,"tags":{},"startTime":1778565573268,"traceId":"199298f4cd9eb94e"},{"name":"telemetry-flush","duration":25956,"timestamp":194088029460,"id":112,"parentId":1,"tags":{},"startTime":1778565573854,"traceId":"199298f4cd9eb94e"},{"name":"next-build","duration":17658741,"timestamp":194070396715,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778565556221,"traceId":"199298f4cd9eb94e"}]
|
package/app/logs/page.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import Link from 'next/link';
|
|
|
5
5
|
import { timeAgo } from '../components/utils';
|
|
6
6
|
import { useNetworkId } from '../lib/network-context';
|
|
7
7
|
import { EmptyState } from '../components/EmptyState';
|
|
8
|
+
import { AliasAvatar } from '../components/AliasAvatar';
|
|
8
9
|
|
|
9
10
|
interface AuditLog {
|
|
10
11
|
id: string;
|
|
@@ -26,6 +27,18 @@ const ACTION_COLORS: Record<string, string> = {
|
|
|
26
27
|
send_task: 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20',
|
|
27
28
|
};
|
|
28
29
|
|
|
30
|
+
/** 2px left-rail stripe color per audit action — reuses the r32 server-logs
|
|
31
|
+
* pattern so failed logins / token rotations spike out of a wall of
|
|
32
|
+
* registers and logins without users reading every chip. Inline hex
|
|
33
|
+
* prevents Tailwind v4 from purging dynamic class names. */
|
|
34
|
+
const ACTION_STRIPE: Record<string, string> = {
|
|
35
|
+
register: '#4ade80',
|
|
36
|
+
login: '#60a5fa',
|
|
37
|
+
login_failed: '#ef4444',
|
|
38
|
+
create_network: '#a78bfa',
|
|
39
|
+
send_task: '#22d3ee',
|
|
40
|
+
};
|
|
41
|
+
|
|
29
42
|
export default function LogsPage() {
|
|
30
43
|
const { networkId } = useNetworkId();
|
|
31
44
|
const [logs, setLogs] = useState<AuditLog[]>([]);
|
|
@@ -125,13 +138,23 @@ export default function LogsPage() {
|
|
|
125
138
|
<EmptyState variant="logs" />
|
|
126
139
|
) : (
|
|
127
140
|
<div className="space-y-2">
|
|
128
|
-
{logs.map(log =>
|
|
129
|
-
|
|
141
|
+
{logs.map(log => {
|
|
142
|
+
const userName = log.username || log.user_id;
|
|
143
|
+
return (
|
|
144
|
+
<div key={log.id} className="relative bg-[#111128] border border-[#2a2a4a] rounded-lg pl-4 pr-4 py-3 hover:border-[#3a3a5a] transition-colors overflow-hidden">
|
|
145
|
+
{/* 2px left rail per action (round 33) — failed logins, token
|
|
146
|
+
rotations spike out of a wall of register/login rows. */}
|
|
147
|
+
<span
|
|
148
|
+
aria-hidden
|
|
149
|
+
className="absolute left-0 top-0 bottom-0 w-0.5"
|
|
150
|
+
style={{ backgroundColor: ACTION_STRIPE[log.action] || 'transparent' }}
|
|
151
|
+
/>
|
|
130
152
|
<div className="flex flex-wrap items-center gap-2 mb-1">
|
|
131
153
|
<span className={`text-xs px-2 py-0.5 rounded-md border ${ACTION_COLORS[log.action] || 'bg-gray-500/10 text-gray-400 border-gray-500/20'}`}>
|
|
132
154
|
{log.action}
|
|
133
155
|
</span>
|
|
134
|
-
<
|
|
156
|
+
{userName && <AliasAvatar alias={userName} size={16} />}
|
|
157
|
+
<span className="text-sm text-gray-200 font-medium">{userName}</span>
|
|
135
158
|
{log.target_type && (
|
|
136
159
|
<>
|
|
137
160
|
<span className="text-xs text-gray-600">→</span>
|
|
@@ -143,7 +166,8 @@ export default function LogsPage() {
|
|
|
143
166
|
{log.detail && <div className="text-xs text-gray-500">{log.detail}</div>}
|
|
144
167
|
{log.ip && log.ip !== 'unknown' && <div className="text-[10px] text-gray-700">IP: {log.ip}</div>}
|
|
145
168
|
</div>
|
|
146
|
-
|
|
169
|
+
);
|
|
170
|
+
})}
|
|
147
171
|
</div>
|
|
148
172
|
)}
|
|
149
173
|
</div>
|
package/app/page.tsx
CHANGED
|
@@ -41,6 +41,7 @@ export default function Dashboard() {
|
|
|
41
41
|
const cmd = useCommandCenter();
|
|
42
42
|
const [showDispatch, setShowDispatch] = useState(false);
|
|
43
43
|
const [inbox, setInbox] = useState<InboxMessage[]>([]);
|
|
44
|
+
const [agentFilter, setAgentFilter] = useState<'all' | 'working' | 'idle' | 'offline'>('all');
|
|
44
45
|
const { mutate } = useSWRConfig();
|
|
45
46
|
|
|
46
47
|
// SSE: instant revalidation on CommHub events
|
|
@@ -359,13 +360,62 @@ export default function Dashboard() {
|
|
|
359
360
|
|
|
360
361
|
{sessions.length === 0 && !sessError ? (
|
|
361
362
|
<EmptyState hint={sessHint} />
|
|
362
|
-
) : (
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
))
|
|
367
|
-
|
|
368
|
-
|
|
363
|
+
) : (() => {
|
|
364
|
+
const counts = {
|
|
365
|
+
all: sortedSessions.length,
|
|
366
|
+
working: sortedSessions.filter(s => isOnline(s) && s.status === 'working').length,
|
|
367
|
+
idle: sortedSessions.filter(s => isOnline(s) && s.status !== 'working').length,
|
|
368
|
+
offline: sortedSessions.filter(s => !isOnline(s)).length,
|
|
369
|
+
};
|
|
370
|
+
const filtered = sortedSessions.filter(s => {
|
|
371
|
+
if (agentFilter === 'all') return true;
|
|
372
|
+
if (agentFilter === 'offline') return !isOnline(s);
|
|
373
|
+
if (agentFilter === 'working') return isOnline(s) && s.status === 'working';
|
|
374
|
+
if (agentFilter === 'idle') return isOnline(s) && s.status !== 'working';
|
|
375
|
+
return true;
|
|
376
|
+
});
|
|
377
|
+
// Filter chip color keyed to status (round 34): working=green, idle=cyan,
|
|
378
|
+
// offline=gray, all=neutral. Inline hex dots avoid Tailwind v4 purge.
|
|
379
|
+
const chips: { key: typeof agentFilter; label: string; dot?: string }[] = [
|
|
380
|
+
{ key: 'all', label: 'All' },
|
|
381
|
+
{ key: 'working', label: 'Working', dot: '#4ade80' },
|
|
382
|
+
{ key: 'idle', label: 'Idle', dot: '#22d3ee' },
|
|
383
|
+
{ key: 'offline', label: 'Offline', dot: '#6b7280' },
|
|
384
|
+
];
|
|
385
|
+
return (
|
|
386
|
+
<>
|
|
387
|
+
<div className="mb-3 flex flex-wrap items-center gap-1">
|
|
388
|
+
{chips.map(c => (
|
|
389
|
+
<button
|
|
390
|
+
key={c.key}
|
|
391
|
+
type="button"
|
|
392
|
+
onClick={() => setAgentFilter(c.key)}
|
|
393
|
+
disabled={counts[c.key] === 0 && c.key !== 'all'}
|
|
394
|
+
className={`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs transition-colors disabled:opacity-30 disabled:cursor-not-allowed ${
|
|
395
|
+
agentFilter === c.key
|
|
396
|
+
? 'bg-cyan-500/10 text-cyan-300 border border-cyan-500/30'
|
|
397
|
+
: 'text-gray-500 hover:text-gray-200 hover:bg-[#1a1a2a] border border-transparent'
|
|
398
|
+
}`}
|
|
399
|
+
>
|
|
400
|
+
{c.dot && <span aria-hidden className="inline-block w-1.5 h-1.5 rounded-full" style={{ backgroundColor: c.dot }} />}
|
|
401
|
+
<span>{c.label}</span>
|
|
402
|
+
<span className={`text-[10px] tabular-nums ${agentFilter === c.key ? 'text-cyan-400' : 'text-gray-600'}`}>{counts[c.key]}</span>
|
|
403
|
+
</button>
|
|
404
|
+
))}
|
|
405
|
+
</div>
|
|
406
|
+
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-3 sm:gap-4">
|
|
407
|
+
{filtered.map(s => (
|
|
408
|
+
<AgentCard key={s.alias} session={s} hasSse={isOnline(s)} sseCount={sseLookup(s) || 0} onChat={cmd.openTab} />
|
|
409
|
+
))}
|
|
410
|
+
</div>
|
|
411
|
+
{filtered.length === 0 && (
|
|
412
|
+
<div className="mt-4 text-center text-xs text-gray-600">
|
|
413
|
+
No agents match "{agentFilter}" — <button onClick={() => setAgentFilter('all')} className="underline hover:text-gray-400">Show all</button>
|
|
414
|
+
</div>
|
|
415
|
+
)}
|
|
416
|
+
</>
|
|
417
|
+
);
|
|
418
|
+
})()}
|
|
369
419
|
|
|
370
420
|
<InboxPanel messages={inbox} />
|
|
371
421
|
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},44332,a=>{"use strict";var b=a.i(72596),c=a.i(22397);let d=async a=>{let b=await fetch(a);if(401===b.status)throw window.location.assign("/login"),Error("unauthorized");return b.json()},e={refreshInterval:5e3,dedupingInterval:3e3};function f(a,b){if(!b)return a;let c=a.includes("?")?"&":"?";return`${a}${c}network_id=${encodeURIComponent(b)}`}a.s(["useAnetConfig",0,function(){let{data:a}=(0,b.default)("/api/anet/config",d,{refreshInterval:3e4});return{config:a||null}},"useHealth",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/health",d,e);return{health:a||null,error:c}},"useLicense",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/license",d,{refreshInterval:6e4});return{license:a?.ok?a:null,error:c}},"useMessages",0,function(a=100){let{networkId:g}=(0,c.useNetworkId)(),{data:h,error:i,isLoading:j}=(0,b.default)(f(`/api/hub/messages?limit=${a}`,g),d,e);return{messages:h?.messages||[],error:i,isLoading:j}},"useSessions",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h,isLoading:i}=(0,b.default)(f("/api/hub/status",a),d,e);return{sessions:g?.sessions||[],hint:g?._hint,error:h,isLoading:i}},"useStats",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h}=(0,b.default)(f("/api/hub/stats",a),d,e);return{stats:g?.ok?g:null,error:h}},"useTasks",0,function(a){let{networkId:g}=(0,c.useNetworkId)(),h=new URLSearchParams({limit:"100",...a}).toString(),{data:i,error:j,isLoading:k}=(0,b.default)(f(`/api/hub/tasks?${h}`,g),d,e);return{tasks:i?.tasks||[],count:i?.count??0,source:i?.source,error:j,isLoading:k}}])},43515,a=>{"use strict";a.s(["formatUptime",0,function(a){let b=Math.floor(a/3600),c=Math.floor(a%3600/60);return b>0?`${b}h ${c}m`:`${c}m`},"timeAgo",0,function(a){if(!a)return"--";let b=Math.floor((Date.now()-new Date(a.replace(" ","T")+"Z").getTime())/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}])},53142,a=>{"use strict";var b=a.i(87924),c=a.i(38246);let d={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function e({variant:a,size:c}){let d={width:c,height:c},f={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(a){case"nodes":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,b.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,b.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,b.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,b.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,b.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,b.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,b.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,b.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,b.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,b.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,b.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,b.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,b.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,b.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,b.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,b.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,b.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...f,children:[(0,b.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function f({variant:a="generic",title:g,sub:h,cta:i,compact:j=!1}){let k=d[a],l=g??k.title,m=h??k.sub;return(0,b.jsxs)("div",{className:`text-center ${j?"py-8":"py-16"} px-4`,role:"status",children:[(0,b.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,b.jsx)(e,{variant:a,size:j?40:56})}),(0,b.jsx)("h3",{className:`font-medium text-gray-300 ${j?"text-sm":"text-base"}`,children:l}),m&&(0,b.jsx)("p",{className:`text-gray-500 ${j?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:m}),i&&(0,b.jsx)("div",{className:"mt-4",children:i.href?(0,b.jsxs)(c.default,{href:i.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[i.label,(0,b.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,b.jsxs)("button",{onClick:i.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[i.label,(0,b.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}a.s(["EmptyState",0,f,"NodesEmptyState",0,function({hint:a}){return a?.global_count?(0,b.jsx)(f,{variant:"nodes",title:"No agents in this network",sub:`Server has ${a.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`}):(0,b.jsx)(f,{variant:"nodes",cta:{label:"Run anet quickstart",href:"https://anet.sh"}})}])},1720,a=>{"use strict";var b=a.i(87924);let c=[180,200,220,270,300,330,30,90];a.s(["AliasAvatar",0,function({alias:a,size:d=28,className:e=""}){let f=function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;let d=c[b%c.length];return{bg:`hsl(${d} 55% 22%)`,ring:`hsl(${d} 60% 45%)`,text:`hsl(${d} 80% 78%)`}}(a),g=Math.max(9,Math.round(.42*d));return(0,b.jsx)("span",{className:`anet-alias-avatar inline-flex items-center justify-center rounded-full border shrink-0 font-semibold ${e}`,style:{width:d,height:d,fontSize:g,backgroundColor:f.bg,borderColor:f.ring,color:f.text},title:a,"aria-hidden":!0,children:a?(a.trim().match(/[\p{L}\p{N}]/u)?.[0]||a.trim()[0]||"·").toUpperCase():"·"})}])},54826,(a,b,c)=>{},15299,(a,b,c)=>{a.r(54826);var d=a.r(72131),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){return i(g(a),"`insertRule` accepts only strings"),"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++},c.replaceRule=function(a,b){this._optimizeForSpeed;var c=this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){f||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}return a},c.deleteRule=function(a){this._serverSheet.deleteRule(a)},c.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},c.cssRules=function(){return this._serverSheet.cssRules},c.makeStyleTag=function(a,b,c){b&&i(g(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function i(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var j=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);function p(){return new n}function q(){return d.useContext(o)}function r(a){var b=q();return b&&b.add(a),null}o.displayName="StyleSheetContext",e.default.useInsertionEffect||e.default.useLayoutEffect,r.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},c.StyleRegistry=function(a){var b=a.registry,c=a.children,f=d.useContext(o),g=d.useState(function(){return f||b||p()})[0];return e.default.createElement(o.Provider,{value:g},c)},c.createStyleRegistry=p,c.style=r,c.useStyleRegistry=q},31626,(a,b,c)=>{b.exports=a.r(15299).style}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0byvz32._.js.map
|