@hivemagnus/magnus-ui 1.0.2 → 1.0.3
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/dist/app/apps/dashboard/.next/BUILD_ID +1 -1
- package/dist/app/apps/dashboard/.next/build-manifest.json +3 -3
- package/dist/app/apps/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/app/apps/dashboard/.next/required-server-files.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/[anomalyId]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/[anomalyId]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/remediation/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/anomalies/remediation/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/api-docs/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/api-docs/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/application-operations/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/application-operations/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/installations/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/installations/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/profiles/[id]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/profiles/[id]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/profiles/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/ardent/profiles/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/audit/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/codex/installations/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/codex/installations/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/codex/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/codex/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/commands/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/commands/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/cron/page/server-reference-manifest.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/cron/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/cron/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/files/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/files/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-map/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-map/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-readiness/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-readiness/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-timeline/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/fleet-timeline/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/governor/operations/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/governor/operations/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/governor/share/[token]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/governor/share/[token]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/hermes-drift/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/hermes-drift/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/hermes-security/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/hermes-security/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/incidents/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/incidents/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/library/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/library/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/login/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/logs/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/mission-control/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/mission-control/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/nodes/[nodeId]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/nodes/[nodeId]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/nodes/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/notifications/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/notifications/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/installations/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/installations/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/profiles/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/profiles/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/web-gateway/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/orchestra/web-gateway/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/retention/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/retention/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/roles/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/roles/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/rollouts/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/rollouts/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/cases/[caseId]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/cases/[caseId]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/cases/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/cases/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/entities/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/entities/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/events/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/events/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/evidence/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/evidence/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/policies/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/policies/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/sources/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/security-fusion/sources/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/skills/page/server-reference-manifest.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/skills/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/[id]/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/[id]/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/new/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/new/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/page.js.nft.json +1 -1
- package/dist/app/apps/dashboard/.next/server/app/webhooks/page_client-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0z6dblsnzx20l._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/[root-of-the-server]__10vlrswrzvf4x._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1cnr5ucuq-tas._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/apps_dashboard_src_0gs_s688kgg1i._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/apps_dashboard_src_app_cron_page_tsx_1i3duyygc0_tg._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/apps_dashboard_src_app_skills_page_tsx_0n5zp4xad38in._.js +1 -1
- package/dist/app/apps/dashboard/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_refresh-ccw-dot_1bka5q1p8_fx4.js +1 -1
- package/dist/app/apps/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dist/app/apps/dashboard/.next/server/pages/500.html +1 -1
- package/dist/app/apps/dashboard/.next/server/preview-props.json +3 -3
- package/dist/app/apps/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/app/apps/dashboard/.next/server/server-reference-manifest.json +3 -3
- package/dist/app/apps/dashboard/.next/static/chunks/{28q140y6b7-89.js → 15k-qmnbw3cjb.js} +1 -1
- package/dist/app/apps/dashboard/.next/static/chunks/{07pjhg_to7dzv.js → 1tnd5uxb6jeaw.js} +1 -1
- package/dist/app/apps/dashboard/.next/static/chunks/{36hoxd3zs7thr.js → 2d4ylz_vuib6b.js} +1 -1
- package/dist/app/apps/dashboard/.next/static/chunks/{2zfns6xyegode.js → 2zsyn-x33zktn.js} +1 -1
- package/dist/app/apps/dashboard/.next/static/chunks/{0akep08qly94l.js → 3snkyozidkred.js} +1 -1
- package/dist/app/apps/dashboard/package.json +2 -2
- package/dist/app/apps/dashboard/server.js +1 -1
- package/package.json +2 -2
- /package/dist/app/apps/dashboard/.next/static/{UZn0mscl5hk5YJtZnvSnK → BZlZSgkcAsB8gK9YHwg8e}/_buildManifest.js +0 -0
- /package/dist/app/apps/dashboard/.next/static/{UZn0mscl5hk5YJtZnvSnK → BZlZSgkcAsB8gK9YHwg8e}/_clientMiddlewareManifest.js +0 -0
- /package/dist/app/apps/dashboard/.next/static/{UZn0mscl5hk5YJtZnvSnK → BZlZSgkcAsB8gK9YHwg8e}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,[67683,e=>{var a=e.i(43476),s=e.i(22016),r=e.i(78894),t=e.i(51737);e.s(["f",0,function({summary:e,showAction:n=!0}){let i=e.nodes.filter(e=>e.tailscale?.requiresRenewal).sort((e,a)=>e.tailscale?.expired!==a.tailscale?.expired?e.tailscale?.expired?-1:1:(e.tailscale?.daysRemaining??Number.MAX_SAFE_INTEGER)-(a.tailscale?.daysRemaining??Number.MAX_SAFE_INTEGER));if(0===i.length)return null;let l=i.some(e=>e.tailscale?.expired),o=l?t.f:r.f,c=l?{panel:"border-danger/40 bg-danger/5",rail:"bg-danger",icon:"bg-danger/10 text-danger",text:"text-danger",chip:"border-danger/30 text-danger",action:"border-danger/40 text-danger hover:bg-danger/10"}:{panel:"border-warning/40 bg-warning/5",rail:"bg-warning",icon:"bg-warning/10 text-warning",text:"text-warning",chip:"border-warning/30 text-warning",action:"border-warning/40 text-warning hover:bg-warning/10"};return(0,a.jsxs)("section",{id:"tailscale-renewal",role:"alert","aria-label":"Tailscale renewal alert",className:`relative overflow-hidden rounded border px-4 py-3 ${c.panel}`,children:[(0,a.jsx)("div",{className:`absolute inset-y-0 left-0 w-0.5 ${c.rail}`}),(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,a.jsx)("div",{className:`mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded ${c.icon}`,children:(0,a.jsx)(o,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:`text-xs font-bold uppercase tracking-[0.14em] ${c.text}`,children:l?"Tailscale access expired":"Tailscale renewal due"}),(0,a.jsxs)("p",{className:"mt-1 text-[11px] text-text-muted",children:[i.length," node ",1===i.length?"key needs":"keys need"," renewal within ",e.warningDays," days. Renew before tailnet access is interrupted."]}),(0,a.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:i.map(e=>(0,a.jsxs)("span",{title:e.tailscale?.keyExpiry?`Expires ${e.tailscale.keyExpiry}`:void 0,className:`inline-flex items-center gap-1 rounded border bg-background/40 px-2 py-0.5 font-mono text-[10px] ${c.chip}`,children:[(0,a.jsx)("span",{className:"font-semibold",children:e.name}),(0,a.jsx)("span",{"aria-hidden":"true",children:"·"}),(0,a.jsx)("span",{children:e.tailscale?.expired?"expired":`${e.tailscale?.daysRemaining??"?"}d`})]},e.id))})]})]}),n&&(0,a.jsx)(s.default,{href:"/nodes#tailscale-renewal",className:`shrink-0 self-start rounded border px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider transition-colors sm:self-center ${c.action}`,children:"Review nodes"})]})]})}])},46670,e=>{var a=e.i(43476),s=e.i(78571);let r={default:"border-border text-text-muted",success:"border-success/40 text-success bg-success/5 shadow-[0_0_6px_rgba(0,255,65,0.15)]",warning:"border-warning/40 text-warning bg-warning/5 shadow-[0_0_6px_rgba(255,179,0,0.15)]",danger:"border-danger/40 text-danger bg-danger/5 shadow-[0_0_6px_rgba(255,23,68,0.15)]",info:"border-info/40 text-info bg-info/5 shadow-[0_0_6px_rgba(0,176,255,0.15)]"},t={default:"bg-text-muted",success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info"};e.s(["t",0,function({children:e,variant:n="default",className:i,dot:l=!1,pulse:o=!1}){return(0,a.jsxs)("span",{className:(0,s.f)("inline-flex items-center gap-1.5 rounded-chip border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider",r[n],i),children:[l&&(0,a.jsxs)("span",{"aria-hidden":"true",className:"relative inline-flex h-1.5 w-1.5",children:[o&&(0,a.jsx)("span",{className:(0,s.f)("absolute inset-0 rounded-full animate-halo",t[n])}),(0,a.jsx)("span",{className:(0,s.f)("relative inline-flex h-1.5 w-1.5 rounded-full",t[n])})]}),e]})},"k",0,function(e){switch(e.toUpperCase()){case"ONLINE":case"COMPLETED":case"ACTIVE":case"RUNNING":case"INSTALLED":case"HEALTHY":return"success";case"DEGRADED":case"PAUSED":case"QUEUED":case"PENDING":case"INSTALLING":return"warning";case"OFFLINE":case"FAILED":case"ERROR":case"TIMEOUT":case"CANCELLED":case"DECOMMISSIONED":case"CRITICAL":return"danger";case"PROVISIONING":case"UPDATING":return"info";default:return"default"}}])},93999,51196,55427,e=>{var a=e.i(43476);let s=(0,e.i(75254).f)("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);var r=e.i(15057),t=e.i(78571),n=e.i(3062),i=e.i(35084);let l={warning:"shadow-[0_0_6px_var(--color-warning)]",danger:"shadow-[0_0_8px_var(--color-danger)]",accent:"shadow-[0_0_6px_var(--color-accent)]",primary:"shadow-[0_0_6px_var(--color-primary)]"},o={xs:"h-1",sm:"h-1.5",md:"h-2"};function c({value:e,max:s=100,tone:r,thresholds:n=i.q,label:d,size:x="xs",showValue:m=!1,valueLabel:h,glow:p,className:u,testId:g}){let f="number"==typeof e&&Number.isFinite(e),v=f?Math.max(0,Math.min(100,e/(s||1)*100)):0,b=r??(f?(0,i.Z)(v,n):"muted"),j=p||!r&&f&&v>=n.warn,N=h??(f?`${v.toFixed(+(v<10&&v>0))}%`:"—");return(0,a.jsxs)("div",{className:(0,t.f)("flex min-w-0 items-center gap-2",u),"data-testid":g,children:[(0,a.jsx)("div",{role:"meter","aria-label":d,"aria-valuemin":0,"aria-valuemax":s,"aria-valuenow":f?e:void 0,"aria-valuetext":N,className:(0,t.f)("relative flex-1 overflow-hidden rounded-full bg-border/70",o[x]),children:(0,a.jsx)("div",{style:{"--meter":`${v}%`},className:(0,t.f)("h-full w-(--meter) rounded-full transition-[width] duration-700 ease-out-expo starting:w-0",i.H[b],j&&l[b])})}),m&&(0,a.jsx)("span",{className:(0,t.f)("num w-11 shrink-0 text-right text-[11px]",f?i.T[b]:"text-text-muted"),children:N})]})}e.s(["f",0,c],51196);var d=e.i(71645);function x({values:e,tone:s="primary",width:r=160,height:n=32,area:l=!0,max:o,percent:c=!1,threshold:m,live:h=!0,emptyLabel:p="not enough data",className:u,testId:g,label:f,stretch:v=!1}){let b=`spark${(0,d.useId)().replace(/:/g,"")}`;if(e.length<2)return(0,a.jsx)("div",{className:(0,t.f)("flex h-8 items-center text-xs italic text-text-muted",u),"data-testid":g,children:p});let j=i.v[s],N=o??(c?Math.max(100,...e):Math.max(...e,m??0)||1),w=n-4,y=r/(e.length-1),_=e=>2+w-Math.max(0,e)/N*w,k=e.map((e,a)=>[a*y,_(e)]),C=k.map(([e,a])=>`${e.toFixed(1)},${a.toFixed(1)}`).join(" "),E=k[k.length-1];return(0,a.jsxs)("svg",{width:v?"100%":r,height:n,viewBox:`0 0 ${r} ${n}`,preserveAspectRatio:v?"none":void 0,className:(0,t.f)("block overflow-visible",u),"data-testid":g,role:f?"img":void 0,"aria-label":f,"aria-hidden":!f||void 0,children:[l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:b,x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:j,stopOpacity:.35}),(0,a.jsx)("stop",{offset:"100%",stopColor:j,stopOpacity:0})]})}),(0,a.jsx)("polygon",{points:`0,${n} ${C} ${r},${n}`,fill:`url(#${b})`})]}),void 0!==m&&(0,a.jsx)("line",{x1:0,x2:r,y1:_(m),y2:_(m),stroke:"var(--color-warning)",strokeOpacity:.5,strokeDasharray:"3 3",strokeWidth:1}),(0,a.jsx)("polyline",{fill:"none",stroke:j,strokeWidth:1.5,vectorEffect:"non-scaling-stroke",strokeLinejoin:"round",strokeLinecap:"round",points:C}),h&&!v&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("circle",{cx:E[0],cy:E[1],r:2.5,fill:j,className:"origin-center animate-halo [transform-box:fill-box]"}),(0,a.jsx)("circle",{cx:E[0],cy:E[1],r:2,fill:j})]})]})}e.s(["f",0,x],55427),e.s(["N",0,function({title:e,description:s,children:r,className:t,action:i,tone:l,corners:o=!1,...c}){return(0,a.jsx)(n.f,{...c,tone:l,corners:o,title:e,description:s,action:i,className:t,children:r})},"n",0,function({label:e,value:l,icon:o,trend:d,spark:m,meter:h,delta:p,tone:u="primary",className:g,testId:f}){let v=!p||p.value>=0===(p.positiveIsGood??!0);return(0,a.jsxs)(n.f,{tone:u,className:(0,t.f)("overflow-hidden",g),testId:f,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-[0.15em] text-text-muted",children:e}),o&&(0,a.jsx)("span",{className:"text-primary/60",children:o})]}),(0,a.jsxs)("div",{className:"mt-2 flex items-end justify-between gap-2",children:[(0,a.jsx)("div",{className:(0,t.f)("num text-2xl font-bold","primary"===u?"text-primary neon-text":i.T[u]),children:l}),p&&0!==p.value&&(0,a.jsxs)("span",{className:(0,t.f)("num mb-1 inline-flex items-center gap-0.5 text-[11px]",v?"text-success":"text-danger"),children:[p.value>0?(0,a.jsx)(r.f,{className:"h-3 w-3"}):(0,a.jsx)(s,{className:"h-3 w-3"}),Math.abs(p.value).toFixed(+!Number.isInteger(p.value)),p.unit]})]}),d&&(0,a.jsx)("div",{className:(0,t.f)("mt-1 text-[11px]",d.positive?"text-success":"text-danger"),children:d.value}),void 0!==h&&(0,a.jsx)(c,{value:h,className:"mt-3",label:e}),m&&m.length>1&&(0,a.jsx)("div",{className:"-mx-5 -mb-5 mt-3 opacity-80",children:(0,a.jsx)(x,{values:m,tone:u,width:240,height:28,stretch:!0,live:!1})})]})}],93999)},3062,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(35084);let t={primary:"[--panel-corner-color:color-mix(in_srgb,var(--color-primary)_60%,transparent)]",accent:"[--panel-corner-color:color-mix(in_srgb,var(--color-accent)_70%,transparent)]",success:"[--panel-corner-color:color-mix(in_srgb,var(--color-success)_60%,transparent)]",warning:"[--panel-corner-color:color-mix(in_srgb,var(--color-warning)_70%,transparent)]",danger:"[--panel-corner-color:color-mix(in_srgb,var(--color-danger)_70%,transparent)]",info:"[--panel-corner-color:color-mix(in_srgb,var(--color-info)_60%,transparent)]",muted:"[--panel-corner-color:var(--color-border-strong)]"},n={primary:"[--glow-hover-color:var(--color-glow)]",accent:"[--glow-hover-color:var(--color-glow-accent)]",success:"[--glow-hover-color:var(--color-glow-success)]",warning:"[--glow-hover-color:var(--color-glow-warning)]",danger:"[--glow-hover-color:var(--color-glow-danger)]",info:"[--glow-hover-color:var(--color-glow)]",muted:"[--glow-hover-color:var(--color-glow)]"},i={primary:"hover:border-primary/30",accent:"hover:border-accent/40",success:"hover:border-success/30",warning:"hover:border-warning/40",danger:"hover:border-danger/40",info:"hover:border-info/30",muted:"hover:border-border-strong"},l={none:"",sm:"p-3",md:"p-5",lg:"p-6"};e.s(["f",0,function({tone:e="primary",corners:o=!0,interactive:c=!0,hero:d=!1,title:x,description:m,icon:h,action:p,as:u="div",padding:g="md",testId:f,className:v,children:b,...j}){return(0,a.jsxs)(u,{...j,"data-testid":f??j["data-testid"],className:(0,s.f)("relative rounded-panel border border-border bg-surface transition-colors duration-300",l[g],o&&"panel-corners",o&&t[e],c&&"glow-hover",c&&n[e],c&&i[e],d&&"grid-bg overflow-hidden bg-surface/80",v),children:[(x||p||h)&&(0,a.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[h&&(0,a.jsx)("span",{className:(0,s.f)("mt-0.5 shrink-0",r.T[e]),children:h}),(0,a.jsxs)("div",{className:"min-w-0",children:[x&&(0,a.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider",children:x}),m&&(0,a.jsx)("p",{className:"mt-0.5 text-[11px] text-text-muted",children:m})]})]}),p]}),b]})}])},73404,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(35084);e.s(["f",0,function({title:e,eyebrow:t,description:n,icon:i,actions:l,status:o,tone:c="primary",className:d,testId:x}){return(0,a.jsxs)("div",{"data-testid":x,className:(0,s.f)("flex flex-wrap items-end justify-between gap-4",d),children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[i&&(0,a.jsx)("span",{"aria-hidden":"true",className:(0,s.f)("mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-panel border bg-surface","accent"===c?"border-accent/40 shadow-[0_0_14px_var(--color-glow-accent)]":"border-primary/40 shadow-[0_0_14px_var(--color-glow)]",r.T[c]),children:i}),(0,a.jsxs)("div",{className:"min-w-0",children:[t&&(0,a.jsxs)("p",{className:(0,s.f)("mb-1 text-[10px] font-medium uppercase tracking-[0.3em]",r.T[c],"opacity-80"),children:[(0,a.jsx)("span",{"aria-hidden":"true",children:"// "}),t]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsx)("h1",{className:(0,s.f)("text-xl font-bold uppercase tracking-wider",r.T[c],r.z[c]),children:e}),o]}),n&&(0,a.jsx)("p",{className:"mt-1 max-w-3xl text-xs text-text-muted",children:n})]})]}),l&&(0,a.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:l})]})}])},63376,e=>{var a=e.i(43476);e.s(["z",0,function({children:e,className:s}){return(0,a.jsx)("div",{className:`animate-page-in${s?` ${s}`:""}`,children:e})},"U",0,function({children:e,className:s}){return(0,a.jsx)("div",{className:s,children:e})}])},65369,e=>{var a=e.i(43476),s=e.i(78571);function r({className:e}){return(0,a.jsx)("div",{"aria-hidden":"true",className:(0,s.f)("skeleton h-3 w-full",e)})}e.s(["l",0,r,"g",0,function({count:e=4,className:t}){return(0,a.jsx)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("grid gap-4 sm:grid-cols-2 lg:grid-cols-4",t),children:Array.from({length:e},(e,s)=>(0,a.jsxs)("div",{className:"panel-corners rounded-panel border border-border bg-surface p-5",children:[(0,a.jsx)(r,{className:"h-2 w-1/2"}),(0,a.jsx)(r,{className:"mt-4 h-7 w-2/3"}),(0,a.jsx)(r,{className:"mt-3 h-1 w-full opacity-60"})]},s))})},"F",0,function({rows:e=5,cols:t=4,className:n}){return(0,a.jsxs)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("overflow-hidden rounded-panel border border-border",n),children:[(0,a.jsx)("div",{className:"flex gap-4 border-b border-border bg-surface px-4 py-3",children:Array.from({length:t},(e,s)=>(0,a.jsx)(r,{className:"h-2 flex-1 opacity-60"},s))}),Array.from({length:e},(e,n)=>(0,a.jsx)("div",{className:"flex gap-4 border-b border-border/50 px-4 py-3 last:border-0",children:Array.from({length:t},(e,t)=>(0,a.jsx)(r,{className:(0,s.f)("h-3 flex-1",(n+t)%3==0&&"max-w-[60%]")},t))},n))]})},"Q",0,function({lines:e=3,className:t}){let n=["w-full","w-11/12","w-4/5","w-2/3","w-3/4"];return(0,a.jsx)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("space-y-2",t),children:Array.from({length:e},(e,s)=>(0,a.jsx)(r,{className:n[s%n.length]},s))})}])},75723,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(46670);let t={success:"bg-success shadow-[0_0_6px_var(--color-success)]",warning:"bg-warning shadow-[0_0_6px_var(--color-warning)]",danger:"bg-danger shadow-[0_0_6px_var(--color-danger)]",info:"bg-info shadow-[0_0_6px_var(--color-info)]",default:"bg-text-muted"},n={success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info",default:"bg-text-muted"},i=new Set(["ONLINE","RUNNING","ACTIVE","HEALTHY","CRITICAL","UPDATING","PROVISIONING"]);e.s(["f",0,function({status:e,pulse:l,size:o="sm",className:c,label:d}){let x=(0,r.k)(e),m=l??i.has(e.toUpperCase()),h="xs"===o?"h-1.5 w-1.5":"h-2 w-2";return(0,a.jsxs)("span",{className:(0,s.f)("relative inline-flex shrink-0",h,c),role:d?"img":void 0,"aria-label":d,"aria-hidden":!d||void 0,children:[m&&(0,a.jsx)("span",{className:(0,s.f)("absolute inset-0 rounded-full animate-halo",n[x])}),(0,a.jsx)("span",{className:(0,s.f)("relative inline-flex rounded-full",h,t[x])})]})}])},71417,e=>{e.s(["L",0,function(e){if(0===e)return"0 B";let a=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,a)).toFixed(1))} ${["B","KB","MB","GB","TB"][a]}`},"C",0,function(e){return e?("string"==typeof e?new Date(e):e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}])},15057,e=>{let a=(0,e.i(75254).f)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["f",0,a],15057)},81203,e=>{let a=(0,e.i(75254).f)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);e.s(["f",0,a],81203)},12181,14098,e=>{let a=(0,e.i(75254).f)("RefreshCcwDot",[["path",{d:"M3 2v6h6",key:"18ldww"}],["path",{d:"M21 12A9 9 0 0 0 6 5.3L3 8",key:"1pbrqz"}],["path",{d:"M21 22v-6h-6",key:"usdfbe"}],["path",{d:"M3 12a9 9 0 0 0 15 6.7l3-2.7",key:"1hosoe"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);e.s(["f",0,a],12181);var s=e.i(43476),r=e.i(71645),t=e.i(68759),n=e.i(32568),i=e.i(82983),l=e.i(18393),o=e.i(31278);e.s(["E",0,function({open:e,node:a,onClose:c,onSaved:d}){let[x,m]=(0,r.useState)([]),[h,p]=(0,r.useState)(""),[u,g]=(0,r.useState)(!0),[f,v]=(0,r.useState)(!1),[b,j]=(0,r.useState)(""),[N,w]=(0,r.useState)(!1);(0,r.useEffect)(()=>{e&&(j(""),p(a?.role?.id??""),g(!0),w(!0),(async()=>{try{let e=await i.f.roles.list();m(e.data??[])}catch{j("Failed to load roles")}finally{w(!1)}})())},[e,a?.role?.id]);let y=async()=>{if(a){v(!0),j("");try{let e=a.role?.id;e&&e!==h&&await i.f.roles.unassign(e,{nodeIds:[a.id]}),h&&await i.f.roles.assign(h,{nodeIds:[a.id],defer:!u});let s=h?x.find(e=>e.id===h)??null:null;d(s),c()}catch(e){j(e instanceof Error?e.message:"Failed to assign role")}finally{v(!1)}}},_=async()=>{if(a?.role){v(!0),j("");try{await i.f.roles.unassign(a.role.id,{nodeIds:[a.id]}),d(null),c()}catch(e){j(e instanceof Error?e.message:"Failed to unassign role")}finally{v(!1)}}},k=()=>{j(""),v(!1),c()};return(0,s.jsx)(n.n,{open:e,onClose:k,title:a?.role?"Change Role":"Assign Role",description:a?`Node: ${a.name}`:"",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[N?(0,s.jsxs)("div",{className:"flex items-center gap-2 py-4 text-xs text-text-muted",children:[(0,s.jsx)(o.f,{className:"h-4 w-4 animate-spin"}),"Loading roles…"]}):0===x.length?(0,s.jsx)("p",{className:"text-xs text-text-muted py-4",children:"No roles found. Create a role first on the Roles page."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.G,{label:"Role",children:(0,s.jsxs)("select",{value:h,onChange:e=>p(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"",children:"— No role —"}),x.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})}),h&&(0,s.jsxs)("label",{className:"flex items-center gap-2 text-xs cursor-pointer",children:[(0,s.jsx)("input",{type:"checkbox",checked:u,onChange:e=>g(e.target.checked),className:"rounded border-border"}),"Apply role immediately"]})]}),b&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:b}),(0,s.jsxs)("div",{className:"flex justify-between pt-2",children:[(0,s.jsx)("div",{children:a?.role&&(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:()=>void _(),disabled:f,children:"Unassign Role"})}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:k,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void y(),disabled:f||!h||0===x.length,icon:f?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:f?"Saving…":a?.role?"Change Role":"Assign Role"})]})]})]})})},"F",0,function({open:e,node:a,onClose:c,onSaved:d}){let[x,m]=(0,r.useState)(""),[h,p]=(0,r.useState)(""),[u,g]=(0,r.useState)(""),[f,v]=(0,r.useState)(!1),[b,j]=(0,r.useState)("");(0,r.useEffect)(()=>{if(a){m(a.name);try{let e=JSON.parse(a.tags);p(e.join(", "))}catch{p("")}g(a.status),j("")}},[a]);let N=async()=>{if(a&&x.trim()){v(!0),j("");try{let e=h.split(",").map(e=>e.trim()).filter(Boolean);await i.f.nodes.update(a.id,{name:x.trim(),tags:e,status:u.toUpperCase()}),d(),c()}catch(e){j(e instanceof Error?e.message:"Failed to update node")}finally{v(!1)}}},w=()=>{j(""),v(!1),c()};return(0,s.jsx)(n.n,{open:e,onClose:w,title:"Edit Node",description:a?`${a.hostname}`:"",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(n.G,{label:"Name",required:!0,children:(0,s.jsx)("input",{type:"text",value:x,onChange:e=>m(e.target.value),className:n.W})}),(0,s.jsx)(n.G,{label:"Status",children:(0,s.jsxs)("select",{value:u,onChange:e=>g(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"ONLINE",children:"ONLINE"}),(0,s.jsx)("option",{value:"OFFLINE",children:"OFFLINE"}),(0,s.jsx)("option",{value:"DEGRADED",children:"DEGRADED"}),(0,s.jsx)("option",{value:"PROVISIONING",children:"PROVISIONING"}),(0,s.jsx)("option",{value:"MAINTENANCE",children:"MAINTENANCE"})]})}),(0,s.jsxs)(n.G,{label:"Tags",children:[(0,s.jsx)("input",{type:"text",value:h,onChange:e=>p(e.target.value),placeholder:"web, production, us-east",className:n.W}),(0,s.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Comma-separated list of tags"})]}),b&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:b}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:w,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void N(),disabled:f||!x.trim(),icon:f?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:f?"Saving…":"Save Changes"})]})]})})},"M",0,function({open:e,onClose:a,onRegistered:c}){let[d,x]=(0,r.useState)(""),[m,h]=(0,r.useState)(""),[p,u]=(0,r.useState)("4100"),[g,f]=(0,r.useState)("linux"),[v,b]=(0,r.useState)("x86_64"),[j,N]=(0,r.useState)(""),[w,y]=(0,r.useState)(!1),[_,k]=(0,r.useState)(""),C=async()=>{if(d.trim()&&m.trim()){y(!0),k("");try{let e=j.split(",").map(e=>e.trim()).filter(Boolean);await i.f.nodes.register({name:d.trim(),hostname:m.trim(),ipAddress:m.trim(),port:Number(p)||4100,os:g,arch:v,tags:e,agentVersion:"1.0.2"}),c(),E()}catch(e){k(e instanceof Error?e.message:"Failed to register node")}finally{y(!1)}}},E=()=>{x(""),h(""),u("4100"),f("linux"),b("x86_64"),N(""),k(""),y(!1),a()};return(0,s.jsx)(n.n,{open:e,onClose:E,title:"Register Node",description:"Manually register a node already running the agent",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(n.G,{label:"Node Name",required:!0,children:(0,s.jsx)("input",{type:"text",value:d,onChange:e=>x(e.target.value),placeholder:"web-server-01",className:n.W,autoFocus:!0})}),(0,s.jsx)(n.G,{label:"FQDN / Hostname",required:!0,children:(0,s.jsx)("input",{type:"text",value:m,onChange:e=>h(e.target.value),placeholder:"node-1.example.com",className:n.W})}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,s.jsx)(n.G,{label:"Port",children:(0,s.jsx)("input",{type:"number",value:p,onChange:e=>u(e.target.value),className:n.W})}),(0,s.jsx)(n.G,{label:"OS",children:(0,s.jsxs)("select",{value:g,onChange:e=>f(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"linux",children:"Linux"}),(0,s.jsx)("option",{value:"darwin",children:"macOS"}),(0,s.jsx)("option",{value:"windows",children:"Windows"})]})}),(0,s.jsx)(n.G,{label:"Architecture",children:(0,s.jsxs)("select",{value:v,onChange:e=>b(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"x86_64",children:"x86_64"}),(0,s.jsx)("option",{value:"aarch64",children:"aarch64"}),(0,s.jsx)("option",{value:"arm",children:"arm"})]})})]}),(0,s.jsxs)(n.G,{label:"Tags",children:[(0,s.jsx)("input",{type:"text",value:j,onChange:e=>N(e.target.value),placeholder:"web, production, us-east",className:n.W}),(0,s.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Comma-separated"})]}),_&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:_}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:E,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void C(),disabled:w||!d.trim()||!m.trim(),icon:w?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:w?"Registering…":"Register Node"})]})]})})}],14098)},51737,e=>{let a=(0,e.i(75254).f)("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["f",0,a],51737)}],59439,e=>{e.v(a=>Promise.all(["static/chunks/1ixu-i6j99dj0.js"].map(a=>e.l(a))).then(()=>a(93309)))},37138,e=>{e.v(a=>Promise.all(["static/chunks/3h4dmpbixi6eo.js"].map(a=>e.l(a))).then(()=>a(99894)))}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,[67683,e=>{var a=e.i(43476),s=e.i(22016),r=e.i(78894),t=e.i(51737);e.s(["f",0,function({summary:e,showAction:n=!0}){let i=e.nodes.filter(e=>e.tailscale?.requiresRenewal).sort((e,a)=>e.tailscale?.expired!==a.tailscale?.expired?e.tailscale?.expired?-1:1:(e.tailscale?.daysRemaining??Number.MAX_SAFE_INTEGER)-(a.tailscale?.daysRemaining??Number.MAX_SAFE_INTEGER));if(0===i.length)return null;let l=i.some(e=>e.tailscale?.expired),o=l?t.f:r.f,c=l?{panel:"border-danger/40 bg-danger/5",rail:"bg-danger",icon:"bg-danger/10 text-danger",text:"text-danger",chip:"border-danger/30 text-danger",action:"border-danger/40 text-danger hover:bg-danger/10"}:{panel:"border-warning/40 bg-warning/5",rail:"bg-warning",icon:"bg-warning/10 text-warning",text:"text-warning",chip:"border-warning/30 text-warning",action:"border-warning/40 text-warning hover:bg-warning/10"};return(0,a.jsxs)("section",{id:"tailscale-renewal",role:"alert","aria-label":"Tailscale renewal alert",className:`relative overflow-hidden rounded border px-4 py-3 ${c.panel}`,children:[(0,a.jsx)("div",{className:`absolute inset-y-0 left-0 w-0.5 ${c.rail}`}),(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,a.jsx)("div",{className:`mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded ${c.icon}`,children:(0,a.jsx)(o,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:`text-xs font-bold uppercase tracking-[0.14em] ${c.text}`,children:l?"Tailscale access expired":"Tailscale renewal due"}),(0,a.jsxs)("p",{className:"mt-1 text-[11px] text-text-muted",children:[i.length," node ",1===i.length?"key needs":"keys need"," renewal within ",e.warningDays," days. Renew before tailnet access is interrupted."]}),(0,a.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:i.map(e=>(0,a.jsxs)("span",{title:e.tailscale?.keyExpiry?`Expires ${e.tailscale.keyExpiry}`:void 0,className:`inline-flex items-center gap-1 rounded border bg-background/40 px-2 py-0.5 font-mono text-[10px] ${c.chip}`,children:[(0,a.jsx)("span",{className:"font-semibold",children:e.name}),(0,a.jsx)("span",{"aria-hidden":"true",children:"·"}),(0,a.jsx)("span",{children:e.tailscale?.expired?"expired":`${e.tailscale?.daysRemaining??"?"}d`})]},e.id))})]})]}),n&&(0,a.jsx)(s.default,{href:"/nodes#tailscale-renewal",className:`shrink-0 self-start rounded border px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider transition-colors sm:self-center ${c.action}`,children:"Review nodes"})]})]})}])},46670,e=>{var a=e.i(43476),s=e.i(78571);let r={default:"border-border text-text-muted",success:"border-success/40 text-success bg-success/5 shadow-[0_0_6px_rgba(0,255,65,0.15)]",warning:"border-warning/40 text-warning bg-warning/5 shadow-[0_0_6px_rgba(255,179,0,0.15)]",danger:"border-danger/40 text-danger bg-danger/5 shadow-[0_0_6px_rgba(255,23,68,0.15)]",info:"border-info/40 text-info bg-info/5 shadow-[0_0_6px_rgba(0,176,255,0.15)]"},t={default:"bg-text-muted",success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info"};e.s(["t",0,function({children:e,variant:n="default",className:i,dot:l=!1,pulse:o=!1}){return(0,a.jsxs)("span",{className:(0,s.f)("inline-flex items-center gap-1.5 rounded-chip border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider",r[n],i),children:[l&&(0,a.jsxs)("span",{"aria-hidden":"true",className:"relative inline-flex h-1.5 w-1.5",children:[o&&(0,a.jsx)("span",{className:(0,s.f)("absolute inset-0 rounded-full animate-halo",t[n])}),(0,a.jsx)("span",{className:(0,s.f)("relative inline-flex h-1.5 w-1.5 rounded-full",t[n])})]}),e]})},"k",0,function(e){switch(e.toUpperCase()){case"ONLINE":case"COMPLETED":case"ACTIVE":case"RUNNING":case"INSTALLED":case"HEALTHY":return"success";case"DEGRADED":case"PAUSED":case"QUEUED":case"PENDING":case"INSTALLING":return"warning";case"OFFLINE":case"FAILED":case"ERROR":case"TIMEOUT":case"CANCELLED":case"DECOMMISSIONED":case"CRITICAL":return"danger";case"PROVISIONING":case"UPDATING":return"info";default:return"default"}}])},93999,51196,55427,e=>{var a=e.i(43476);let s=(0,e.i(75254).f)("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);var r=e.i(15057),t=e.i(78571),n=e.i(3062),i=e.i(35084);let l={warning:"shadow-[0_0_6px_var(--color-warning)]",danger:"shadow-[0_0_8px_var(--color-danger)]",accent:"shadow-[0_0_6px_var(--color-accent)]",primary:"shadow-[0_0_6px_var(--color-primary)]"},o={xs:"h-1",sm:"h-1.5",md:"h-2"};function c({value:e,max:s=100,tone:r,thresholds:n=i.q,label:d,size:x="xs",showValue:m=!1,valueLabel:h,glow:p,className:u,testId:g}){let f="number"==typeof e&&Number.isFinite(e),v=f?Math.max(0,Math.min(100,e/(s||1)*100)):0,b=r??(f?(0,i.Z)(v,n):"muted"),j=p||!r&&f&&v>=n.warn,N=h??(f?`${v.toFixed(+(v<10&&v>0))}%`:"—");return(0,a.jsxs)("div",{className:(0,t.f)("flex min-w-0 items-center gap-2",u),"data-testid":g,children:[(0,a.jsx)("div",{role:"meter","aria-label":d,"aria-valuemin":0,"aria-valuemax":s,"aria-valuenow":f?e:void 0,"aria-valuetext":N,className:(0,t.f)("relative flex-1 overflow-hidden rounded-full bg-border/70",o[x]),children:(0,a.jsx)("div",{style:{"--meter":`${v}%`},className:(0,t.f)("h-full w-(--meter) rounded-full transition-[width] duration-700 ease-out-expo starting:w-0",i.H[b],j&&l[b])})}),m&&(0,a.jsx)("span",{className:(0,t.f)("num w-11 shrink-0 text-right text-[11px]",f?i.T[b]:"text-text-muted"),children:N})]})}e.s(["f",0,c],51196);var d=e.i(71645);function x({values:e,tone:s="primary",width:r=160,height:n=32,area:l=!0,max:o,percent:c=!1,threshold:m,live:h=!0,emptyLabel:p="not enough data",className:u,testId:g,label:f,stretch:v=!1}){let b=`spark${(0,d.useId)().replace(/:/g,"")}`;if(e.length<2)return(0,a.jsx)("div",{className:(0,t.f)("flex h-8 items-center text-xs italic text-text-muted",u),"data-testid":g,children:p});let j=i.v[s],N=o??(c?Math.max(100,...e):Math.max(...e,m??0)||1),w=n-4,y=r/(e.length-1),_=e=>2+w-Math.max(0,e)/N*w,k=e.map((e,a)=>[a*y,_(e)]),C=k.map(([e,a])=>`${e.toFixed(1)},${a.toFixed(1)}`).join(" "),E=k[k.length-1];return(0,a.jsxs)("svg",{width:v?"100%":r,height:n,viewBox:`0 0 ${r} ${n}`,preserveAspectRatio:v?"none":void 0,className:(0,t.f)("block overflow-visible",u),"data-testid":g,role:f?"img":void 0,"aria-label":f,"aria-hidden":!f||void 0,children:[l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:b,x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:j,stopOpacity:.35}),(0,a.jsx)("stop",{offset:"100%",stopColor:j,stopOpacity:0})]})}),(0,a.jsx)("polygon",{points:`0,${n} ${C} ${r},${n}`,fill:`url(#${b})`})]}),void 0!==m&&(0,a.jsx)("line",{x1:0,x2:r,y1:_(m),y2:_(m),stroke:"var(--color-warning)",strokeOpacity:.5,strokeDasharray:"3 3",strokeWidth:1}),(0,a.jsx)("polyline",{fill:"none",stroke:j,strokeWidth:1.5,vectorEffect:"non-scaling-stroke",strokeLinejoin:"round",strokeLinecap:"round",points:C}),h&&!v&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("circle",{cx:E[0],cy:E[1],r:2.5,fill:j,className:"origin-center animate-halo [transform-box:fill-box]"}),(0,a.jsx)("circle",{cx:E[0],cy:E[1],r:2,fill:j})]})]})}e.s(["f",0,x],55427),e.s(["N",0,function({title:e,description:s,children:r,className:t,action:i,tone:l,corners:o=!1,...c}){return(0,a.jsx)(n.f,{...c,tone:l,corners:o,title:e,description:s,action:i,className:t,children:r})},"n",0,function({label:e,value:l,icon:o,trend:d,spark:m,meter:h,delta:p,tone:u="primary",className:g,testId:f}){let v=!p||p.value>=0===(p.positiveIsGood??!0);return(0,a.jsxs)(n.f,{tone:u,className:(0,t.f)("overflow-hidden",g),testId:f,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-[0.15em] text-text-muted",children:e}),o&&(0,a.jsx)("span",{className:"text-primary/60",children:o})]}),(0,a.jsxs)("div",{className:"mt-2 flex items-end justify-between gap-2",children:[(0,a.jsx)("div",{className:(0,t.f)("num text-2xl font-bold","primary"===u?"text-primary neon-text":i.T[u]),children:l}),p&&0!==p.value&&(0,a.jsxs)("span",{className:(0,t.f)("num mb-1 inline-flex items-center gap-0.5 text-[11px]",v?"text-success":"text-danger"),children:[p.value>0?(0,a.jsx)(r.f,{className:"h-3 w-3"}):(0,a.jsx)(s,{className:"h-3 w-3"}),Math.abs(p.value).toFixed(+!Number.isInteger(p.value)),p.unit]})]}),d&&(0,a.jsx)("div",{className:(0,t.f)("mt-1 text-[11px]",d.positive?"text-success":"text-danger"),children:d.value}),void 0!==h&&(0,a.jsx)(c,{value:h,className:"mt-3",label:e}),m&&m.length>1&&(0,a.jsx)("div",{className:"-mx-5 -mb-5 mt-3 opacity-80",children:(0,a.jsx)(x,{values:m,tone:u,width:240,height:28,stretch:!0,live:!1})})]})}],93999)},3062,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(35084);let t={primary:"[--panel-corner-color:color-mix(in_srgb,var(--color-primary)_60%,transparent)]",accent:"[--panel-corner-color:color-mix(in_srgb,var(--color-accent)_70%,transparent)]",success:"[--panel-corner-color:color-mix(in_srgb,var(--color-success)_60%,transparent)]",warning:"[--panel-corner-color:color-mix(in_srgb,var(--color-warning)_70%,transparent)]",danger:"[--panel-corner-color:color-mix(in_srgb,var(--color-danger)_70%,transparent)]",info:"[--panel-corner-color:color-mix(in_srgb,var(--color-info)_60%,transparent)]",muted:"[--panel-corner-color:var(--color-border-strong)]"},n={primary:"[--glow-hover-color:var(--color-glow)]",accent:"[--glow-hover-color:var(--color-glow-accent)]",success:"[--glow-hover-color:var(--color-glow-success)]",warning:"[--glow-hover-color:var(--color-glow-warning)]",danger:"[--glow-hover-color:var(--color-glow-danger)]",info:"[--glow-hover-color:var(--color-glow)]",muted:"[--glow-hover-color:var(--color-glow)]"},i={primary:"hover:border-primary/30",accent:"hover:border-accent/40",success:"hover:border-success/30",warning:"hover:border-warning/40",danger:"hover:border-danger/40",info:"hover:border-info/30",muted:"hover:border-border-strong"},l={none:"",sm:"p-3",md:"p-5",lg:"p-6"};e.s(["f",0,function({tone:e="primary",corners:o=!0,interactive:c=!0,hero:d=!1,title:x,description:m,icon:h,action:p,as:u="div",padding:g="md",testId:f,className:v,children:b,...j}){return(0,a.jsxs)(u,{...j,"data-testid":f??j["data-testid"],className:(0,s.f)("relative rounded-panel border border-border bg-surface transition-colors duration-300",l[g],o&&"panel-corners",o&&t[e],c&&"glow-hover",c&&n[e],c&&i[e],d&&"grid-bg overflow-hidden bg-surface/80",v),children:[(x||p||h)&&(0,a.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[h&&(0,a.jsx)("span",{className:(0,s.f)("mt-0.5 shrink-0",r.T[e]),children:h}),(0,a.jsxs)("div",{className:"min-w-0",children:[x&&(0,a.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider",children:x}),m&&(0,a.jsx)("p",{className:"mt-0.5 text-[11px] text-text-muted",children:m})]})]}),p]}),b]})}])},73404,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(35084);e.s(["f",0,function({title:e,eyebrow:t,description:n,icon:i,actions:l,status:o,tone:c="primary",className:d,testId:x}){return(0,a.jsxs)("div",{"data-testid":x,className:(0,s.f)("flex flex-wrap items-end justify-between gap-4",d),children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[i&&(0,a.jsx)("span",{"aria-hidden":"true",className:(0,s.f)("mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-panel border bg-surface","accent"===c?"border-accent/40 shadow-[0_0_14px_var(--color-glow-accent)]":"border-primary/40 shadow-[0_0_14px_var(--color-glow)]",r.T[c]),children:i}),(0,a.jsxs)("div",{className:"min-w-0",children:[t&&(0,a.jsxs)("p",{className:(0,s.f)("mb-1 text-[10px] font-medium uppercase tracking-[0.3em]",r.T[c],"opacity-80"),children:[(0,a.jsx)("span",{"aria-hidden":"true",children:"// "}),t]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsx)("h1",{className:(0,s.f)("text-xl font-bold uppercase tracking-wider",r.T[c],r.z[c]),children:e}),o]}),n&&(0,a.jsx)("p",{className:"mt-1 max-w-3xl text-xs text-text-muted",children:n})]})]}),l&&(0,a.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:l})]})}])},63376,e=>{var a=e.i(43476);e.s(["z",0,function({children:e,className:s}){return(0,a.jsx)("div",{className:`animate-page-in${s?` ${s}`:""}`,children:e})},"U",0,function({children:e,className:s}){return(0,a.jsx)("div",{className:s,children:e})}])},65369,e=>{var a=e.i(43476),s=e.i(78571);function r({className:e}){return(0,a.jsx)("div",{"aria-hidden":"true",className:(0,s.f)("skeleton h-3 w-full",e)})}e.s(["l",0,r,"g",0,function({count:e=4,className:t}){return(0,a.jsx)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("grid gap-4 sm:grid-cols-2 lg:grid-cols-4",t),children:Array.from({length:e},(e,s)=>(0,a.jsxs)("div",{className:"panel-corners rounded-panel border border-border bg-surface p-5",children:[(0,a.jsx)(r,{className:"h-2 w-1/2"}),(0,a.jsx)(r,{className:"mt-4 h-7 w-2/3"}),(0,a.jsx)(r,{className:"mt-3 h-1 w-full opacity-60"})]},s))})},"F",0,function({rows:e=5,cols:t=4,className:n}){return(0,a.jsxs)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("overflow-hidden rounded-panel border border-border",n),children:[(0,a.jsx)("div",{className:"flex gap-4 border-b border-border bg-surface px-4 py-3",children:Array.from({length:t},(e,s)=>(0,a.jsx)(r,{className:"h-2 flex-1 opacity-60"},s))}),Array.from({length:e},(e,n)=>(0,a.jsx)("div",{className:"flex gap-4 border-b border-border/50 px-4 py-3 last:border-0",children:Array.from({length:t},(e,t)=>(0,a.jsx)(r,{className:(0,s.f)("h-3 flex-1",(n+t)%3==0&&"max-w-[60%]")},t))},n))]})},"Q",0,function({lines:e=3,className:t}){let n=["w-full","w-11/12","w-4/5","w-2/3","w-3/4"];return(0,a.jsx)("div",{role:"status","aria-label":"Loading",className:(0,s.f)("space-y-2",t),children:Array.from({length:e},(e,s)=>(0,a.jsx)(r,{className:n[s%n.length]},s))})}])},75723,e=>{var a=e.i(43476),s=e.i(78571),r=e.i(46670);let t={success:"bg-success shadow-[0_0_6px_var(--color-success)]",warning:"bg-warning shadow-[0_0_6px_var(--color-warning)]",danger:"bg-danger shadow-[0_0_6px_var(--color-danger)]",info:"bg-info shadow-[0_0_6px_var(--color-info)]",default:"bg-text-muted"},n={success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info",default:"bg-text-muted"},i=new Set(["ONLINE","RUNNING","ACTIVE","HEALTHY","CRITICAL","UPDATING","PROVISIONING"]);e.s(["f",0,function({status:e,pulse:l,size:o="sm",className:c,label:d}){let x=(0,r.k)(e),m=l??i.has(e.toUpperCase()),h="xs"===o?"h-1.5 w-1.5":"h-2 w-2";return(0,a.jsxs)("span",{className:(0,s.f)("relative inline-flex shrink-0",h,c),role:d?"img":void 0,"aria-label":d,"aria-hidden":!d||void 0,children:[m&&(0,a.jsx)("span",{className:(0,s.f)("absolute inset-0 rounded-full animate-halo",n[x])}),(0,a.jsx)("span",{className:(0,s.f)("relative inline-flex rounded-full",h,t[x])})]})}])},71417,e=>{e.s(["L",0,function(e){if(0===e)return"0 B";let a=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,a)).toFixed(1))} ${["B","KB","MB","GB","TB"][a]}`},"C",0,function(e){return e?("string"==typeof e?new Date(e):e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}])},15057,e=>{let a=(0,e.i(75254).f)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["f",0,a],15057)},81203,e=>{let a=(0,e.i(75254).f)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);e.s(["f",0,a],81203)},12181,14098,e=>{let a=(0,e.i(75254).f)("RefreshCcwDot",[["path",{d:"M3 2v6h6",key:"18ldww"}],["path",{d:"M21 12A9 9 0 0 0 6 5.3L3 8",key:"1pbrqz"}],["path",{d:"M21 22v-6h-6",key:"usdfbe"}],["path",{d:"M3 12a9 9 0 0 0 15 6.7l3-2.7",key:"1hosoe"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);e.s(["f",0,a],12181);var s=e.i(43476),r=e.i(71645),t=e.i(68759),n=e.i(32568),i=e.i(82983),l=e.i(18393),o=e.i(31278);e.s(["E",0,function({open:e,node:a,onClose:c,onSaved:d}){let[x,m]=(0,r.useState)([]),[h,p]=(0,r.useState)(""),[u,g]=(0,r.useState)(!0),[f,v]=(0,r.useState)(!1),[b,j]=(0,r.useState)(""),[N,w]=(0,r.useState)(!1);(0,r.useEffect)(()=>{e&&(j(""),p(a?.role?.id??""),g(!0),w(!0),(async()=>{try{let e=await i.f.roles.list();m(e.data??[])}catch{j("Failed to load roles")}finally{w(!1)}})())},[e,a?.role?.id]);let y=async()=>{if(a){v(!0),j("");try{let e=a.role?.id;e&&e!==h&&await i.f.roles.unassign(e,{nodeIds:[a.id]}),h&&await i.f.roles.assign(h,{nodeIds:[a.id],defer:!u});let s=h?x.find(e=>e.id===h)??null:null;d(s),c()}catch(e){j(e instanceof Error?e.message:"Failed to assign role")}finally{v(!1)}}},_=async()=>{if(a?.role){v(!0),j("");try{await i.f.roles.unassign(a.role.id,{nodeIds:[a.id]}),d(null),c()}catch(e){j(e instanceof Error?e.message:"Failed to unassign role")}finally{v(!1)}}},k=()=>{j(""),v(!1),c()};return(0,s.jsx)(n.n,{open:e,onClose:k,title:a?.role?"Change Role":"Assign Role",description:a?`Node: ${a.name}`:"",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[N?(0,s.jsxs)("div",{className:"flex items-center gap-2 py-4 text-xs text-text-muted",children:[(0,s.jsx)(o.f,{className:"h-4 w-4 animate-spin"}),"Loading roles…"]}):0===x.length?(0,s.jsx)("p",{className:"text-xs text-text-muted py-4",children:"No roles found. Create a role first on the Roles page."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.G,{label:"Role",children:(0,s.jsxs)("select",{value:h,onChange:e=>p(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"",children:"— No role —"}),x.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})}),h&&(0,s.jsxs)("label",{className:"flex items-center gap-2 text-xs cursor-pointer",children:[(0,s.jsx)("input",{type:"checkbox",checked:u,onChange:e=>g(e.target.checked),className:"rounded border-border"}),"Apply role immediately"]})]}),b&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:b}),(0,s.jsxs)("div",{className:"flex justify-between pt-2",children:[(0,s.jsx)("div",{children:a?.role&&(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:()=>void _(),disabled:f,children:"Unassign Role"})}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:k,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void y(),disabled:f||!h||0===x.length,icon:f?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:f?"Saving…":a?.role?"Change Role":"Assign Role"})]})]})]})})},"F",0,function({open:e,node:a,onClose:c,onSaved:d}){let[x,m]=(0,r.useState)(""),[h,p]=(0,r.useState)(""),[u,g]=(0,r.useState)(""),[f,v]=(0,r.useState)(!1),[b,j]=(0,r.useState)("");(0,r.useEffect)(()=>{if(a){m(a.name);try{let e=JSON.parse(a.tags);p(e.join(", "))}catch{p("")}g(a.status),j("")}},[a]);let N=async()=>{if(a&&x.trim()){v(!0),j("");try{let e=h.split(",").map(e=>e.trim()).filter(Boolean);await i.f.nodes.update(a.id,{name:x.trim(),tags:e,status:u.toUpperCase()}),d(),c()}catch(e){j(e instanceof Error?e.message:"Failed to update node")}finally{v(!1)}}},w=()=>{j(""),v(!1),c()};return(0,s.jsx)(n.n,{open:e,onClose:w,title:"Edit Node",description:a?`${a.hostname}`:"",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(n.G,{label:"Name",required:!0,children:(0,s.jsx)("input",{type:"text",value:x,onChange:e=>m(e.target.value),className:n.W})}),(0,s.jsx)(n.G,{label:"Status",children:(0,s.jsxs)("select",{value:u,onChange:e=>g(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"ONLINE",children:"ONLINE"}),(0,s.jsx)("option",{value:"OFFLINE",children:"OFFLINE"}),(0,s.jsx)("option",{value:"DEGRADED",children:"DEGRADED"}),(0,s.jsx)("option",{value:"PROVISIONING",children:"PROVISIONING"}),(0,s.jsx)("option",{value:"MAINTENANCE",children:"MAINTENANCE"})]})}),(0,s.jsxs)(n.G,{label:"Tags",children:[(0,s.jsx)("input",{type:"text",value:h,onChange:e=>p(e.target.value),placeholder:"web, production, us-east",className:n.W}),(0,s.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Comma-separated list of tags"})]}),b&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:b}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:w,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void N(),disabled:f||!x.trim(),icon:f?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:f?"Saving…":"Save Changes"})]})]})})},"M",0,function({open:e,onClose:a,onRegistered:c}){let[d,x]=(0,r.useState)(""),[m,h]=(0,r.useState)(""),[p,u]=(0,r.useState)("4100"),[g,f]=(0,r.useState)("linux"),[v,b]=(0,r.useState)("x86_64"),[j,N]=(0,r.useState)(""),[w,y]=(0,r.useState)(!1),[_,k]=(0,r.useState)(""),C=async()=>{if(d.trim()&&m.trim()){y(!0),k("");try{let e=j.split(",").map(e=>e.trim()).filter(Boolean);await i.f.nodes.register({name:d.trim(),hostname:m.trim(),ipAddress:m.trim(),port:Number(p)||4100,os:g,arch:v,tags:e,agentVersion:"1.0.3"}),c(),E()}catch(e){k(e instanceof Error?e.message:"Failed to register node")}finally{y(!1)}}},E=()=>{x(""),h(""),u("4100"),f("linux"),b("x86_64"),N(""),k(""),y(!1),a()};return(0,s.jsx)(n.n,{open:e,onClose:E,title:"Register Node",description:"Manually register a node already running the agent",icon:(0,s.jsx)(l.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(n.G,{label:"Node Name",required:!0,children:(0,s.jsx)("input",{type:"text",value:d,onChange:e=>x(e.target.value),placeholder:"web-server-01",className:n.W,autoFocus:!0})}),(0,s.jsx)(n.G,{label:"FQDN / Hostname",required:!0,children:(0,s.jsx)("input",{type:"text",value:m,onChange:e=>h(e.target.value),placeholder:"node-1.example.com",className:n.W})}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,s.jsx)(n.G,{label:"Port",children:(0,s.jsx)("input",{type:"number",value:p,onChange:e=>u(e.target.value),className:n.W})}),(0,s.jsx)(n.G,{label:"OS",children:(0,s.jsxs)("select",{value:g,onChange:e=>f(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"linux",children:"Linux"}),(0,s.jsx)("option",{value:"darwin",children:"macOS"}),(0,s.jsx)("option",{value:"windows",children:"Windows"})]})}),(0,s.jsx)(n.G,{label:"Architecture",children:(0,s.jsxs)("select",{value:v,onChange:e=>b(e.target.value),className:n.N,children:[(0,s.jsx)("option",{value:"x86_64",children:"x86_64"}),(0,s.jsx)("option",{value:"aarch64",children:"aarch64"}),(0,s.jsx)("option",{value:"arm",children:"arm"})]})})]}),(0,s.jsxs)(n.G,{label:"Tags",children:[(0,s.jsx)("input",{type:"text",value:j,onChange:e=>N(e.target.value),placeholder:"web, production, us-east",className:n.W}),(0,s.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Comma-separated"})]}),_&&(0,s.jsx)("div",{className:"rounded border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",children:_}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(t.K,{variant:"secondary",size:"sm",onClick:E,children:"Cancel"}),(0,s.jsx)(t.K,{size:"sm",onClick:()=>void C(),disabled:w||!d.trim()||!m.trim(),icon:w?(0,s.jsx)(o.f,{className:"h-3.5 w-3.5 animate-spin"}):void 0,children:w?"Registering…":"Register Node"})]})]})})}],14098)},51737,e=>{let a=(0,e.i(75254).f)("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["f",0,a],51737)}],59439,e=>{e.v(a=>Promise.all(["static/chunks/1ixu-i6j99dj0.js"].map(a=>e.l(a))).then(()=>a(93309)))},37138,e=>{e.v(a=>Promise.all(["static/chunks/3h4dmpbixi6eo.js"].map(a=>e.l(a))).then(()=>a(99894)))}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59180,e=>{var s=e.i(43476),t=e.i(71645),a=e.i(68759),r=e.i(46670),n=e.i(93999),i=e.i(32568),l=e.i(82983),c=e.i(4050),o=e.i(95187);let d=(0,o.createServerReference)("40d858f94a6d79e55efef6eb915bc193fc6862ce99",o.callServer,void 0,o.findSourceMapURL,"scanSkills");var x=e.i(78571),m=e.i(63376),p=e.i(88187),h=e.i(16715),u=e.i(55436),f=e.i(88844),g=e.i(18393);let v=(0,e.i(75254).f)("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var j=e.i(41929),N=e.i(64659),b=e.i(63059),w=e.i(86536),y=e.i(69074),k=e.i(31278),S=e.i(78894),_=e.i(95468),C=e.i(73884);e.s(["default",0,function(){let{activeNode:e}=(0,c.l)(),[o,I]=(0,t.useState)([]),[E,M]=(0,t.useState)(!1),[L,A]=(0,t.useState)(null),[D,z]=(0,t.useState)(!1),[P,R]=(0,t.useState)(""),[T,$]=(0,t.useState)(new Set),[F,O]=(0,t.useState)(null),[U,G]=(0,t.useState)(null),[H,K]=(0,t.useState)(""),[V,q]=(0,t.useState)(!1),W=(0,t.useCallback)(async()=>{M(!0),I([]),A(null);let s=Date.now();try{let s=await d(e.id);if(s.success&&Array.isArray(s.data)){let e=s.data.map(e=>({...e,status:"error"===e.status?"error":"done",skills:e.skills.map(e=>({...e,files:e.files.map(e=>"string"==typeof e?{name:e,content:""}:e)}))}));I(e);let t=new Set(e.filter(e=>e.skills.length>0).map(e=>e.nodeId));$(t.size>0?t:new Set(e.map(e=>e.nodeId)))}else A(s.error?.message??"Scan returned unsuccessful response")}catch(s){let e=s instanceof Error?s.message:"Scan request failed";A(e)}finally{let e=Date.now()-s;e<1500&&await new Promise(s=>setTimeout(s,1500-e)),M(!1),z(!0)}},[e]);(0,t.useEffect)(()=>{e&&W()},[e,W]);let B=o.reduce((e,s)=>e+("done"===s.status?s.skills.length:0),0),J=o.filter(e=>"done"===e.status).length,Q=o.filter(e=>"error"===e.status).length,Y=e=>{if(!P)return!0;let s=P.toLowerCase();return e.name.toLowerCase().includes(s)||e.description.toLowerCase().includes(s)||e.tags.some(e=>e.toLowerCase().includes(s))},Z=async()=>{if(U&&H){q(!0);try{let e={name:U.skill.name,version:H,description:U.skill.description,author:U.skill.author,entryPoint:U.skill.entryPoint,dependencies:U.skill.dependencies,tags:U.skill.tags},s={};for(let e of U.skill.files)s[e.name]=e.content;let t=JSON.stringify({manifest:e,files:s},null,2);await l.f.library.files.create({name:`${U.skill.name} v${H}`,fileName:`${U.skill.name}-${H}.json`,mimeType:"application/x-magnus-skill",content:t,tags:["skill",...U.skill.tags]}),G(null),K("")}catch{}finally{q(!1)}}};return(0,s.jsxs)(m.U,{className:"space-y-6",children:[(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-bold uppercase tracking-wider",children:"Skills"}),(0,s.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wider",children:"Discover and manage Hermes Agent skills across your fleet"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[D&&!E&&(0,s.jsxs)("span",{className:"text-[10px] text-text-muted uppercase tracking-wider mr-2",children:[o.length," node",1!==o.length?"s":""," · ",B," skill",1!==B?"s":"",Q>0&&` \xb7 ${Q} error${1!==Q?"s":""}`]}),(0,s.jsxs)(a.K,{variant:"secondary",size:"sm",onClick:()=>void W(),disabled:E,children:[(0,s.jsx)(h.f,{className:(0,x.f)("h-3.5 w-3.5 mr-1.5",E&&"animate-spin")}),E?"Scanning...":"Rescan"]})]})]})}),E&&(0,s.jsx)(m.z,{children:(0,s.jsx)(p.f,{title:"Scanning Nodes for Skills",description:"Probing all online nodes...",nodes:o.map(e=>({nodeId:e.nodeId,nodeName:e.nodeName,status:e.status,error:e.error})),scanning:!0})}),!E&&D&&B>0&&(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(u.f,{className:"absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-text-muted"}),(0,s.jsx)("input",{type:"text",placeholder:"Search skills by name, description, or tag...",value:P,onChange:e=>R(e.target.value),className:(0,x.f)(i.W,"pl-9")})]})}),!E&&D&&L&&(0,s.jsx)(m.z,{children:(0,s.jsx)(n.N,{children:(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,s.jsx)(S.f,{className:"h-10 w-10 text-danger/60 mb-3"}),(0,s.jsx)("p",{className:"text-xs font-bold text-danger mb-1",children:"Scan Failed"}),(0,s.jsx)("p",{className:"text-[11px] text-text-muted max-w-md",children:L}),(0,s.jsxs)(a.K,{variant:"secondary",size:"sm",className:"mt-4",onClick:()=>void W(),children:[(0,s.jsx)(h.f,{className:"h-3.5 w-3.5 mr-1.5"}),"Retry Scan"]})]})})}),!E&&D&&!L&&(0,s.jsxs)(s.Fragment,{children:[0===o.length?(0,s.jsx)(m.z,{children:(0,s.jsx)(n.N,{children:(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,s.jsx)(g.f,{className:"h-10 w-10 text-text-muted/40 mb-3"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"No online nodes found to scan. Ensure at least one node agent is running and connected."})]})})}):o.map(e=>{let t=T.has(e.nodeId),i=e.skills.filter(Y);return(0,s.jsx)(m.z,{children:(0,s.jsxs)(n.N,{className:"overflow-hidden",children:[(0,s.jsxs)("button",{onClick:()=>{var s;return s=e.nodeId,void $(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})},className:"w-full flex items-center gap-4 p-4 text-left hover:bg-surface-hover transition-all",children:[(0,s.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded border border-primary/30 bg-primary/5 shrink-0",children:(0,s.jsx)(g.f,{className:"h-4 w-4 text-primary"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider",children:e.nodeName}),"done"===e.status&&(0,s.jsxs)(r.t,{variant:e.skills.length>0?"success":"default",children:[e.skills.length," skill",1!==e.skills.length?"s":""]}),"error"===e.status&&(0,s.jsx)(r.t,{variant:"danger",children:"Error"})]}),"error"===e.status&&e.error&&(0,s.jsx)("p",{className:"text-[11px] text-danger mt-0.5 truncate",children:e.error}),"done"===e.status&&0===e.skills.length&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted mt-0.5",children:"No skills installed on this node"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:["done"===e.status?(0,s.jsx)(_.f,{className:"h-4 w-4 text-success"}):(0,s.jsx)(C.f,{className:"h-4 w-4 text-danger"}),t?(0,s.jsx)(N.f,{className:"h-4 w-4 text-text-muted"}):(0,s.jsx)(b.f,{className:"h-4 w-4 text-text-muted"})]})]}),t&&"done"===e.status&&(0,s.jsx)("div",{className:"border-t border-border/50 bg-bg/50",children:0===i.length?(0,s.jsx)("div",{className:"flex items-center justify-center py-8 text-center",children:(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:0===e.skills.length?"No skills installed on this node. Deploy skills from the Library.":"No skills match your search on this node."})}):(0,s.jsx)("div",{className:"divide-y divide-border/30",children:i.map(t=>(0,s.jsxs)("div",{className:"p-4 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(f.f,{className:"h-4 w-4 text-primary"}),(0,s.jsx)("span",{className:"text-xs font-bold",children:t.name}),(0,s.jsx)(r.t,{variant:"info",children:t.version})]}),(0,s.jsxs)(a.K,{size:"sm",variant:"secondary",onClick:()=>{G({skill:t,nodeId:e.nodeId,nodeName:e.nodeName}),K(t.version)},children:[(0,s.jsx)(y.f,{className:"h-3 w-3 mr-1"}),"Publish"]})]}),t.description&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:t.description}),t.tags.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:t.tags.map(e=>(0,s.jsxs)(r.t,{variant:"default",children:[(0,s.jsx)(v,{className:"h-2.5 w-2.5 mr-1"}),e]},e))}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Author"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.author||"—"})]}),(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Entry Point"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.entryPoint||"—"})]}),(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Dependencies"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.dependencies.length>0?t.dependencies.join(", "):"—"})]})]}),t.files.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-1.5",children:["Files (",t.files.length,")"]}),(0,s.jsx)("div",{className:"space-y-1",children:t.files.map(e=>(0,s.jsxs)("button",{onClick:()=>O(e),className:"flex items-center gap-2 rounded border border-border/50 px-3 py-1.5 text-xs hover:border-primary/30 hover:shadow-[0_0_20px_var(--color-glow)] transition-all w-full text-left",children:[(0,s.jsx)(j.f,{className:"h-3 w-3 text-primary"}),(0,s.jsx)("span",{children:e.name}),(0,s.jsx)(w.f,{className:"h-3 w-3 text-text-muted ml-auto"})]},e.name))})]})]},t.name))})})]})},e.nodeId)}),o.length>0&&(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"flex items-center justify-between text-[10px] text-text-muted uppercase tracking-wider",children:[(0,s.jsxs)("span",{children:[J," node",1!==J?"s":""," scanned ·"," ",B," skill",1!==B?"s":""," discovered"]}),Q>0&&(0,s.jsxs)("span",{className:"text-danger",children:[Q," node",1!==Q?"s":""," unreachable"]})]})})]}),(0,s.jsx)(i.n,{open:!!F,onClose:()=>O(null),title:F?.name??"File",icon:(0,s.jsx)(j.f,{className:"h-5 w-5 text-primary"}),className:"max-w-3xl",children:(0,s.jsx)("pre",{className:"rounded border border-border bg-bg p-4 text-xs overflow-auto max-h-96 whitespace-pre-wrap",children:F?.content||"(empty)"})}),(0,s.jsx)(i.n,{open:!!U,onClose:()=>G(null),title:"Publish to Library",description:U?.skill.name??"",icon:(0,s.jsx)(y.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{className:"block text-[11px] font-bold uppercase tracking-wider mb-1.5",children:["Version ",(0,s.jsx)("span",{className:"text-accent",children:"*"})]}),(0,s.jsx)("input",{type:"text",value:H,onChange:e=>K(e.target.value),placeholder:"1.0.0",className:i.W})]}),U&&(0,s.jsxs)("div",{className:"rounded border border-border bg-bg p-3 text-xs space-y-1",children:[(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Source:"})," ",U.nodeName]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Files:"})," ",U.skill.files.length," files"]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Tags:"})," ",["skill",...U.skill.tags].join(", ")]})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(a.K,{variant:"secondary",size:"sm",onClick:()=>G(null),children:"Cancel"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>void Z(),disabled:V||!H,children:V?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(k.f,{className:"h-3.5 w-3.5 animate-spin mr-1.5"}),"Publishing..."]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(y.f,{className:"h-3.5 w-3.5 mr-1.5"}),"Publish"]})})]})]})})]})}],59180)},46670,e=>{var s=e.i(43476),t=e.i(78571);let a={default:"border-border text-text-muted",success:"border-success/40 text-success bg-success/5 shadow-[0_0_6px_rgba(0,255,65,0.15)]",warning:"border-warning/40 text-warning bg-warning/5 shadow-[0_0_6px_rgba(255,179,0,0.15)]",danger:"border-danger/40 text-danger bg-danger/5 shadow-[0_0_6px_rgba(255,23,68,0.15)]",info:"border-info/40 text-info bg-info/5 shadow-[0_0_6px_rgba(0,176,255,0.15)]"},r={default:"bg-text-muted",success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info"};e.s(["t",0,function({children:e,variant:n="default",className:i,dot:l=!1,pulse:c=!1}){return(0,s.jsxs)("span",{className:(0,t.f)("inline-flex items-center gap-1.5 rounded-chip border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider",a[n],i),children:[l&&(0,s.jsxs)("span",{"aria-hidden":"true",className:"relative inline-flex h-1.5 w-1.5",children:[c&&(0,s.jsx)("span",{className:(0,t.f)("absolute inset-0 rounded-full animate-halo",r[n])}),(0,s.jsx)("span",{className:(0,t.f)("relative inline-flex h-1.5 w-1.5 rounded-full",r[n])})]}),e]})},"k",0,function(e){switch(e.toUpperCase()){case"ONLINE":case"COMPLETED":case"ACTIVE":case"RUNNING":case"INSTALLED":case"HEALTHY":return"success";case"DEGRADED":case"PAUSED":case"QUEUED":case"PENDING":case"INSTALLING":return"warning";case"OFFLINE":case"FAILED":case"ERROR":case"TIMEOUT":case"CANCELLED":case"DECOMMISSIONED":case"CRITICAL":return"danger";case"PROVISIONING":case"UPDATING":return"info";default:return"default"}}])},93999,51196,55427,e=>{var s=e.i(43476);let t=(0,e.i(75254).f)("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);var a=e.i(15057),r=e.i(78571),n=e.i(3062),i=e.i(35084);let l={warning:"shadow-[0_0_6px_var(--color-warning)]",danger:"shadow-[0_0_8px_var(--color-danger)]",accent:"shadow-[0_0_6px_var(--color-accent)]",primary:"shadow-[0_0_6px_var(--color-primary)]"},c={xs:"h-1",sm:"h-1.5",md:"h-2"};function o({value:e,max:t=100,tone:a,thresholds:n=i.q,label:d,size:x="xs",showValue:m=!1,valueLabel:p,glow:h,className:u,testId:f}){let g="number"==typeof e&&Number.isFinite(e),v=g?Math.max(0,Math.min(100,e/(t||1)*100)):0,j=a??(g?(0,i.Z)(v,n):"muted"),N=h||!a&&g&&v>=n.warn,b=p??(g?`${v.toFixed(+(v<10&&v>0))}%`:"—");return(0,s.jsxs)("div",{className:(0,r.f)("flex min-w-0 items-center gap-2",u),"data-testid":f,children:[(0,s.jsx)("div",{role:"meter","aria-label":d,"aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":g?e:void 0,"aria-valuetext":b,className:(0,r.f)("relative flex-1 overflow-hidden rounded-full bg-border/70",c[x]),children:(0,s.jsx)("div",{style:{"--meter":`${v}%`},className:(0,r.f)("h-full w-(--meter) rounded-full transition-[width] duration-700 ease-out-expo starting:w-0",i.H[j],N&&l[j])})}),m&&(0,s.jsx)("span",{className:(0,r.f)("num w-11 shrink-0 text-right text-[11px]",g?i.T[j]:"text-text-muted"),children:b})]})}e.s(["f",0,o],51196);var d=e.i(71645);function x({values:e,tone:t="primary",width:a=160,height:n=32,area:l=!0,max:c,percent:o=!1,threshold:m,live:p=!0,emptyLabel:h="not enough data",className:u,testId:f,label:g,stretch:v=!1}){let j=`spark${(0,d.useId)().replace(/:/g,"")}`;if(e.length<2)return(0,s.jsx)("div",{className:(0,r.f)("flex h-8 items-center text-xs italic text-text-muted",u),"data-testid":f,children:h});let N=i.v[t],b=c??(o?Math.max(100,...e):Math.max(...e,m??0)||1),w=n-4,y=a/(e.length-1),k=e=>2+w-Math.max(0,e)/b*w,S=e.map((e,s)=>[s*y,k(e)]),_=S.map(([e,s])=>`${e.toFixed(1)},${s.toFixed(1)}`).join(" "),C=S[S.length-1];return(0,s.jsxs)("svg",{width:v?"100%":a,height:n,viewBox:`0 0 ${a} ${n}`,preserveAspectRatio:v?"none":void 0,className:(0,r.f)("block overflow-visible",u),"data-testid":f,role:g?"img":void 0,"aria-label":g,"aria-hidden":!g||void 0,children:[l&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("defs",{children:(0,s.jsxs)("linearGradient",{id:j,x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,s.jsx)("stop",{offset:"0%",stopColor:N,stopOpacity:.35}),(0,s.jsx)("stop",{offset:"100%",stopColor:N,stopOpacity:0})]})}),(0,s.jsx)("polygon",{points:`0,${n} ${_} ${a},${n}`,fill:`url(#${j})`})]}),void 0!==m&&(0,s.jsx)("line",{x1:0,x2:a,y1:k(m),y2:k(m),stroke:"var(--color-warning)",strokeOpacity:.5,strokeDasharray:"3 3",strokeWidth:1}),(0,s.jsx)("polyline",{fill:"none",stroke:N,strokeWidth:1.5,vectorEffect:"non-scaling-stroke",strokeLinejoin:"round",strokeLinecap:"round",points:_}),p&&!v&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("circle",{cx:C[0],cy:C[1],r:2.5,fill:N,className:"origin-center animate-halo [transform-box:fill-box]"}),(0,s.jsx)("circle",{cx:C[0],cy:C[1],r:2,fill:N})]})]})}e.s(["f",0,x],55427),e.s(["N",0,function({title:e,description:t,children:a,className:r,action:i,tone:l,corners:c=!1,...o}){return(0,s.jsx)(n.f,{...o,tone:l,corners:c,title:e,description:t,action:i,className:r,children:a})},"n",0,function({label:e,value:l,icon:c,trend:d,spark:m,meter:p,delta:h,tone:u="primary",className:f,testId:g}){let v=!h||h.value>=0===(h.positiveIsGood??!0);return(0,s.jsxs)(n.f,{tone:u,className:(0,r.f)("overflow-hidden",f),testId:g,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-[0.15em] text-text-muted",children:e}),c&&(0,s.jsx)("span",{className:"text-primary/60",children:c})]}),(0,s.jsxs)("div",{className:"mt-2 flex items-end justify-between gap-2",children:[(0,s.jsx)("div",{className:(0,r.f)("num text-2xl font-bold","primary"===u?"text-primary neon-text":i.T[u]),children:l}),h&&0!==h.value&&(0,s.jsxs)("span",{className:(0,r.f)("num mb-1 inline-flex items-center gap-0.5 text-[11px]",v?"text-success":"text-danger"),children:[h.value>0?(0,s.jsx)(a.f,{className:"h-3 w-3"}):(0,s.jsx)(t,{className:"h-3 w-3"}),Math.abs(h.value).toFixed(+!Number.isInteger(h.value)),h.unit]})]}),d&&(0,s.jsx)("div",{className:(0,r.f)("mt-1 text-[11px]",d.positive?"text-success":"text-danger"),children:d.value}),void 0!==p&&(0,s.jsx)(o,{value:p,className:"mt-3",label:e}),m&&m.length>1&&(0,s.jsx)("div",{className:"-mx-5 -mb-5 mt-3 opacity-80",children:(0,s.jsx)(x,{values:m,tone:u,width:240,height:28,stretch:!0,live:!1})})]})}],93999)},3062,e=>{var s=e.i(43476),t=e.i(78571),a=e.i(35084);let r={primary:"[--panel-corner-color:color-mix(in_srgb,var(--color-primary)_60%,transparent)]",accent:"[--panel-corner-color:color-mix(in_srgb,var(--color-accent)_70%,transparent)]",success:"[--panel-corner-color:color-mix(in_srgb,var(--color-success)_60%,transparent)]",warning:"[--panel-corner-color:color-mix(in_srgb,var(--color-warning)_70%,transparent)]",danger:"[--panel-corner-color:color-mix(in_srgb,var(--color-danger)_70%,transparent)]",info:"[--panel-corner-color:color-mix(in_srgb,var(--color-info)_60%,transparent)]",muted:"[--panel-corner-color:var(--color-border-strong)]"},n={primary:"[--glow-hover-color:var(--color-glow)]",accent:"[--glow-hover-color:var(--color-glow-accent)]",success:"[--glow-hover-color:var(--color-glow-success)]",warning:"[--glow-hover-color:var(--color-glow-warning)]",danger:"[--glow-hover-color:var(--color-glow-danger)]",info:"[--glow-hover-color:var(--color-glow)]",muted:"[--glow-hover-color:var(--color-glow)]"},i={primary:"hover:border-primary/30",accent:"hover:border-accent/40",success:"hover:border-success/30",warning:"hover:border-warning/40",danger:"hover:border-danger/40",info:"hover:border-info/30",muted:"hover:border-border-strong"},l={none:"",sm:"p-3",md:"p-5",lg:"p-6"};e.s(["f",0,function({tone:e="primary",corners:c=!0,interactive:o=!0,hero:d=!1,title:x,description:m,icon:p,action:h,as:u="div",padding:f="md",testId:g,className:v,children:j,...N}){return(0,s.jsxs)(u,{...N,"data-testid":g??N["data-testid"],className:(0,t.f)("relative rounded-panel border border-border bg-surface transition-colors duration-300",l[f],c&&"panel-corners",c&&r[e],o&&"glow-hover",o&&n[e],o&&i[e],d&&"grid-bg overflow-hidden bg-surface/80",v),children:[(x||h||p)&&(0,s.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[p&&(0,s.jsx)("span",{className:(0,t.f)("mt-0.5 shrink-0",a.T[e]),children:p}),(0,s.jsxs)("div",{className:"min-w-0",children:[x&&(0,s.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider",children:x}),m&&(0,s.jsx)("p",{className:"mt-0.5 text-[11px] text-text-muted",children:m})]})]}),h]}),j]})}])},63376,e=>{var s=e.i(43476);e.s(["z",0,function({children:e,className:t}){return(0,s.jsx)("div",{className:`animate-page-in${t?` ${t}`:""}`,children:e})},"U",0,function({children:e,className:t}){return(0,s.jsx)("div",{className:t,children:e})}])},88187,69074,e=>{var s=e.i(43476),t=e.i(32181),a=e.i(31278),r=e.i(95468),n=e.i(73884),i=e.i(63639);e.s(["f",0,function({title:e,description:l,nodes:c,scanning:o}){return(0,s.jsxs)(t.f.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.4,ease:[.16,1,.3,1]},className:"rounded border border-primary/30 bg-surface p-6 relative overflow-hidden",children:[o&&(0,s.jsx)(t.f.div,{className:"absolute inset-0 pointer-events-none",initial:{opacity:0},animate:{opacity:1},children:(0,s.jsx)(t.f.div,{className:"absolute left-0 right-0 h-px bg-gradient-to-r from-transparent via-primary/60 to-transparent",animate:{top:["0%","100%"]},transition:{duration:2,repeat:1/0,ease:"linear"}})}),(0,s.jsx)("div",{className:"absolute inset-0 rounded pointer-events-none",style:{boxShadow:o?"0 0 20px var(--color-glow), inset 0 0 20px rgba(0,229,255,0.03)":"none",transition:"box-shadow 0.5s ease"}}),(0,s.jsxs)("div",{className:"relative z-10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[o?(0,s.jsx)(t.f.div,{animate:{rotate:360},transition:{duration:2,repeat:1/0,ease:"linear"},children:(0,s.jsx)(i.f,{className:"h-5 w-5 text-primary"})}):(0,s.jsx)(r.f,{className:"h-5 w-5 text-success"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-bold uppercase tracking-wider",children:o?e:"Scan Complete"}),l&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:l})]})]}),c.length>0&&(0,s.jsx)("div",{className:"space-y-2",children:c.map((e,i)=>(0,s.jsxs)(t.f.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05*i,duration:.3},className:"flex items-center gap-3 text-xs",children:["scanning"===e.status&&(0,s.jsx)(a.f,{className:"h-3.5 w-3.5 text-primary animate-spin"}),"done"===e.status&&(0,s.jsx)(r.f,{className:"h-3.5 w-3.5 text-success"}),"error"===e.status&&(0,s.jsx)(n.f,{className:"h-3.5 w-3.5 text-danger"}),(0,s.jsx)("span",{className:"text-text",children:e.nodeName}),"error"===e.status&&e.error&&(0,s.jsx)("span",{className:"text-[10px] text-danger/70 truncate max-w-[200px]",children:e.error})]},e.nodeId))}),0===c.length&&o&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:"Discovering nodes..."})]})]})}],88187);let l=(0,e.i(75254).f)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);e.s(["f",0,l],69074)},15057,e=>{let s=(0,e.i(75254).f)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["f",0,s],15057)},86536,e=>{let s=(0,e.i(75254).f)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["f",0,s],86536)},41929,e=>{let s=(0,e.i(75254).f)("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]);e.s(["f",0,s],41929)},88844,e=>{let s=(0,e.i(75254).f)("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);e.s(["f",0,s],88844)},95187,(e,s,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var a={callServer:function(){return n.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var r in a)Object.defineProperty(t,r,{enumerable:!0,get:a[r]});let n=e.r(32120),i=e.r(92245),l=e.r(35326)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59180,e=>{var s=e.i(43476),t=e.i(71645),a=e.i(68759),r=e.i(46670),n=e.i(93999),i=e.i(32568),l=e.i(82983),c=e.i(4050),d=e.i(95187);let o=(0,d.createServerReference)("40e6891d18db2632e5d3c46d96829260594be328d5",d.callServer,void 0,d.findSourceMapURL,"scanSkills");var x=e.i(78571),m=e.i(63376),p=e.i(88187),h=e.i(16715),u=e.i(55436),f=e.i(88844),g=e.i(18393);let v=(0,e.i(75254).f)("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var j=e.i(41929),N=e.i(64659),b=e.i(63059),w=e.i(86536),y=e.i(69074),k=e.i(31278),S=e.i(78894),_=e.i(95468),C=e.i(73884);e.s(["default",0,function(){let{activeNode:e}=(0,c.l)(),[d,I]=(0,t.useState)([]),[E,M]=(0,t.useState)(!1),[L,A]=(0,t.useState)(null),[D,z]=(0,t.useState)(!1),[P,R]=(0,t.useState)(""),[T,$]=(0,t.useState)(new Set),[F,O]=(0,t.useState)(null),[U,G]=(0,t.useState)(null),[H,K]=(0,t.useState)(""),[V,q]=(0,t.useState)(!1),W=(0,t.useCallback)(async()=>{M(!0),I([]),A(null);let s=Date.now();try{let s=await o(e.id);if(s.success&&Array.isArray(s.data)){let e=s.data.map(e=>({...e,status:"error"===e.status?"error":"done",skills:e.skills.map(e=>({...e,files:e.files.map(e=>"string"==typeof e?{name:e,content:""}:e)}))}));I(e);let t=new Set(e.filter(e=>e.skills.length>0).map(e=>e.nodeId));$(t.size>0?t:new Set(e.map(e=>e.nodeId)))}else A(s.error?.message??"Scan returned unsuccessful response")}catch(s){let e=s instanceof Error?s.message:"Scan request failed";A(e)}finally{let e=Date.now()-s;e<1500&&await new Promise(s=>setTimeout(s,1500-e)),M(!1),z(!0)}},[e]);(0,t.useEffect)(()=>{e&&W()},[e,W]);let B=d.reduce((e,s)=>e+("done"===s.status?s.skills.length:0),0),J=d.filter(e=>"done"===e.status).length,Q=d.filter(e=>"error"===e.status).length,Y=e=>{if(!P)return!0;let s=P.toLowerCase();return e.name.toLowerCase().includes(s)||e.description.toLowerCase().includes(s)||e.tags.some(e=>e.toLowerCase().includes(s))},Z=async()=>{if(U&&H){q(!0);try{let e={name:U.skill.name,version:H,description:U.skill.description,author:U.skill.author,entryPoint:U.skill.entryPoint,dependencies:U.skill.dependencies,tags:U.skill.tags},s={};for(let e of U.skill.files)s[e.name]=e.content;let t=JSON.stringify({manifest:e,files:s},null,2);await l.f.library.files.create({name:`${U.skill.name} v${H}`,fileName:`${U.skill.name}-${H}.json`,mimeType:"application/x-magnus-skill",content:t,tags:["skill",...U.skill.tags]}),G(null),K("")}catch{}finally{q(!1)}}};return(0,s.jsxs)(m.U,{className:"space-y-6",children:[(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-bold uppercase tracking-wider",children:"Skills"}),(0,s.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wider",children:"Discover and manage Hermes Agent skills across your fleet"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[D&&!E&&(0,s.jsxs)("span",{className:"text-[10px] text-text-muted uppercase tracking-wider mr-2",children:[d.length," node",1!==d.length?"s":""," · ",B," skill",1!==B?"s":"",Q>0&&` \xb7 ${Q} error${1!==Q?"s":""}`]}),(0,s.jsxs)(a.K,{variant:"secondary",size:"sm",onClick:()=>void W(),disabled:E,children:[(0,s.jsx)(h.f,{className:(0,x.f)("h-3.5 w-3.5 mr-1.5",E&&"animate-spin")}),E?"Scanning...":"Rescan"]})]})]})}),E&&(0,s.jsx)(m.z,{children:(0,s.jsx)(p.f,{title:"Scanning Nodes for Skills",description:"Probing all online nodes...",nodes:d.map(e=>({nodeId:e.nodeId,nodeName:e.nodeName,status:e.status,error:e.error})),scanning:!0})}),!E&&D&&B>0&&(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(u.f,{className:"absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-text-muted"}),(0,s.jsx)("input",{type:"text",placeholder:"Search skills by name, description, or tag...",value:P,onChange:e=>R(e.target.value),className:(0,x.f)(i.W,"pl-9")})]})}),!E&&D&&L&&(0,s.jsx)(m.z,{children:(0,s.jsx)(n.N,{children:(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,s.jsx)(S.f,{className:"h-10 w-10 text-danger/60 mb-3"}),(0,s.jsx)("p",{className:"text-xs font-bold text-danger mb-1",children:"Scan Failed"}),(0,s.jsx)("p",{className:"text-[11px] text-text-muted max-w-md",children:L}),(0,s.jsxs)(a.K,{variant:"secondary",size:"sm",className:"mt-4",onClick:()=>void W(),children:[(0,s.jsx)(h.f,{className:"h-3.5 w-3.5 mr-1.5"}),"Retry Scan"]})]})})}),!E&&D&&!L&&(0,s.jsxs)(s.Fragment,{children:[0===d.length?(0,s.jsx)(m.z,{children:(0,s.jsx)(n.N,{children:(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,s.jsx)(g.f,{className:"h-10 w-10 text-text-muted/40 mb-3"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"No online nodes found to scan. Ensure at least one node agent is running and connected."})]})})}):d.map(e=>{let t=T.has(e.nodeId),i=e.skills.filter(Y);return(0,s.jsx)(m.z,{children:(0,s.jsxs)(n.N,{className:"overflow-hidden",children:[(0,s.jsxs)("button",{onClick:()=>{var s;return s=e.nodeId,void $(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})},className:"w-full flex items-center gap-4 p-4 text-left hover:bg-surface-hover transition-all",children:[(0,s.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded border border-primary/30 bg-primary/5 shrink-0",children:(0,s.jsx)(g.f,{className:"h-4 w-4 text-primary"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider",children:e.nodeName}),"done"===e.status&&(0,s.jsxs)(r.t,{variant:e.skills.length>0?"success":"default",children:[e.skills.length," skill",1!==e.skills.length?"s":""]}),"error"===e.status&&(0,s.jsx)(r.t,{variant:"danger",children:"Error"})]}),"error"===e.status&&e.error&&(0,s.jsx)("p",{className:"text-[11px] text-danger mt-0.5 truncate",children:e.error}),"done"===e.status&&0===e.skills.length&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted mt-0.5",children:"No skills installed on this node"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:["done"===e.status?(0,s.jsx)(_.f,{className:"h-4 w-4 text-success"}):(0,s.jsx)(C.f,{className:"h-4 w-4 text-danger"}),t?(0,s.jsx)(N.f,{className:"h-4 w-4 text-text-muted"}):(0,s.jsx)(b.f,{className:"h-4 w-4 text-text-muted"})]})]}),t&&"done"===e.status&&(0,s.jsx)("div",{className:"border-t border-border/50 bg-bg/50",children:0===i.length?(0,s.jsx)("div",{className:"flex items-center justify-center py-8 text-center",children:(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:0===e.skills.length?"No skills installed on this node. Deploy skills from the Library.":"No skills match your search on this node."})}):(0,s.jsx)("div",{className:"divide-y divide-border/30",children:i.map(t=>(0,s.jsxs)("div",{className:"p-4 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(f.f,{className:"h-4 w-4 text-primary"}),(0,s.jsx)("span",{className:"text-xs font-bold",children:t.name}),(0,s.jsx)(r.t,{variant:"info",children:t.version})]}),(0,s.jsxs)(a.K,{size:"sm",variant:"secondary",onClick:()=>{G({skill:t,nodeId:e.nodeId,nodeName:e.nodeName}),K(t.version)},children:[(0,s.jsx)(y.f,{className:"h-3 w-3 mr-1"}),"Publish"]})]}),t.description&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:t.description}),t.tags.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:t.tags.map(e=>(0,s.jsxs)(r.t,{variant:"default",children:[(0,s.jsx)(v,{className:"h-2.5 w-2.5 mr-1"}),e]},e))}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Author"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.author||"—"})]}),(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Entry Point"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.entryPoint||"—"})]}),(0,s.jsxs)("div",{className:"rounded border border-border bg-surface p-2",children:[(0,s.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-0.5",children:"Dependencies"}),(0,s.jsx)("p",{className:"text-[11px]",children:t.dependencies.length>0?t.dependencies.join(", "):"—"})]})]}),t.files.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-[10px] font-bold uppercase tracking-wider text-text-muted mb-1.5",children:["Files (",t.files.length,")"]}),(0,s.jsx)("div",{className:"space-y-1",children:t.files.map(e=>(0,s.jsxs)("button",{onClick:()=>O(e),className:"flex items-center gap-2 rounded border border-border/50 px-3 py-1.5 text-xs hover:border-primary/30 hover:shadow-[0_0_20px_var(--color-glow)] transition-all w-full text-left",children:[(0,s.jsx)(j.f,{className:"h-3 w-3 text-primary"}),(0,s.jsx)("span",{children:e.name}),(0,s.jsx)(w.f,{className:"h-3 w-3 text-text-muted ml-auto"})]},e.name))})]})]},t.name))})})]})},e.nodeId)}),d.length>0&&(0,s.jsx)(m.z,{children:(0,s.jsxs)("div",{className:"flex items-center justify-between text-[10px] text-text-muted uppercase tracking-wider",children:[(0,s.jsxs)("span",{children:[J," node",1!==J?"s":""," scanned ·"," ",B," skill",1!==B?"s":""," discovered"]}),Q>0&&(0,s.jsxs)("span",{className:"text-danger",children:[Q," node",1!==Q?"s":""," unreachable"]})]})})]}),(0,s.jsx)(i.n,{open:!!F,onClose:()=>O(null),title:F?.name??"File",icon:(0,s.jsx)(j.f,{className:"h-5 w-5 text-primary"}),className:"max-w-3xl",children:(0,s.jsx)("pre",{className:"rounded border border-border bg-bg p-4 text-xs overflow-auto max-h-96 whitespace-pre-wrap",children:F?.content||"(empty)"})}),(0,s.jsx)(i.n,{open:!!U,onClose:()=>G(null),title:"Publish to Library",description:U?.skill.name??"",icon:(0,s.jsx)(y.f,{className:"h-5 w-5 text-primary"}),children:(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{className:"block text-[11px] font-bold uppercase tracking-wider mb-1.5",children:["Version ",(0,s.jsx)("span",{className:"text-accent",children:"*"})]}),(0,s.jsx)("input",{type:"text",value:H,onChange:e=>K(e.target.value),placeholder:"1.0.0",className:i.W})]}),U&&(0,s.jsxs)("div",{className:"rounded border border-border bg-bg p-3 text-xs space-y-1",children:[(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Source:"})," ",U.nodeName]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Files:"})," ",U.skill.files.length," files"]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Tags:"})," ",["skill",...U.skill.tags].join(", ")]})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,s.jsx)(a.K,{variant:"secondary",size:"sm",onClick:()=>G(null),children:"Cancel"}),(0,s.jsx)(a.K,{size:"sm",onClick:()=>void Z(),disabled:V||!H,children:V?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(k.f,{className:"h-3.5 w-3.5 animate-spin mr-1.5"}),"Publishing..."]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(y.f,{className:"h-3.5 w-3.5 mr-1.5"}),"Publish"]})})]})]})})]})}],59180)},46670,e=>{var s=e.i(43476),t=e.i(78571);let a={default:"border-border text-text-muted",success:"border-success/40 text-success bg-success/5 shadow-[0_0_6px_rgba(0,255,65,0.15)]",warning:"border-warning/40 text-warning bg-warning/5 shadow-[0_0_6px_rgba(255,179,0,0.15)]",danger:"border-danger/40 text-danger bg-danger/5 shadow-[0_0_6px_rgba(255,23,68,0.15)]",info:"border-info/40 text-info bg-info/5 shadow-[0_0_6px_rgba(0,176,255,0.15)]"},r={default:"bg-text-muted",success:"bg-success",warning:"bg-warning",danger:"bg-danger",info:"bg-info"};e.s(["t",0,function({children:e,variant:n="default",className:i,dot:l=!1,pulse:c=!1}){return(0,s.jsxs)("span",{className:(0,t.f)("inline-flex items-center gap-1.5 rounded-chip border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider",a[n],i),children:[l&&(0,s.jsxs)("span",{"aria-hidden":"true",className:"relative inline-flex h-1.5 w-1.5",children:[c&&(0,s.jsx)("span",{className:(0,t.f)("absolute inset-0 rounded-full animate-halo",r[n])}),(0,s.jsx)("span",{className:(0,t.f)("relative inline-flex h-1.5 w-1.5 rounded-full",r[n])})]}),e]})},"k",0,function(e){switch(e.toUpperCase()){case"ONLINE":case"COMPLETED":case"ACTIVE":case"RUNNING":case"INSTALLED":case"HEALTHY":return"success";case"DEGRADED":case"PAUSED":case"QUEUED":case"PENDING":case"INSTALLING":return"warning";case"OFFLINE":case"FAILED":case"ERROR":case"TIMEOUT":case"CANCELLED":case"DECOMMISSIONED":case"CRITICAL":return"danger";case"PROVISIONING":case"UPDATING":return"info";default:return"default"}}])},93999,51196,55427,e=>{var s=e.i(43476);let t=(0,e.i(75254).f)("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);var a=e.i(15057),r=e.i(78571),n=e.i(3062),i=e.i(35084);let l={warning:"shadow-[0_0_6px_var(--color-warning)]",danger:"shadow-[0_0_8px_var(--color-danger)]",accent:"shadow-[0_0_6px_var(--color-accent)]",primary:"shadow-[0_0_6px_var(--color-primary)]"},c={xs:"h-1",sm:"h-1.5",md:"h-2"};function d({value:e,max:t=100,tone:a,thresholds:n=i.q,label:o,size:x="xs",showValue:m=!1,valueLabel:p,glow:h,className:u,testId:f}){let g="number"==typeof e&&Number.isFinite(e),v=g?Math.max(0,Math.min(100,e/(t||1)*100)):0,j=a??(g?(0,i.Z)(v,n):"muted"),N=h||!a&&g&&v>=n.warn,b=p??(g?`${v.toFixed(+(v<10&&v>0))}%`:"—");return(0,s.jsxs)("div",{className:(0,r.f)("flex min-w-0 items-center gap-2",u),"data-testid":f,children:[(0,s.jsx)("div",{role:"meter","aria-label":o,"aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":g?e:void 0,"aria-valuetext":b,className:(0,r.f)("relative flex-1 overflow-hidden rounded-full bg-border/70",c[x]),children:(0,s.jsx)("div",{style:{"--meter":`${v}%`},className:(0,r.f)("h-full w-(--meter) rounded-full transition-[width] duration-700 ease-out-expo starting:w-0",i.H[j],N&&l[j])})}),m&&(0,s.jsx)("span",{className:(0,r.f)("num w-11 shrink-0 text-right text-[11px]",g?i.T[j]:"text-text-muted"),children:b})]})}e.s(["f",0,d],51196);var o=e.i(71645);function x({values:e,tone:t="primary",width:a=160,height:n=32,area:l=!0,max:c,percent:d=!1,threshold:m,live:p=!0,emptyLabel:h="not enough data",className:u,testId:f,label:g,stretch:v=!1}){let j=`spark${(0,o.useId)().replace(/:/g,"")}`;if(e.length<2)return(0,s.jsx)("div",{className:(0,r.f)("flex h-8 items-center text-xs italic text-text-muted",u),"data-testid":f,children:h});let N=i.v[t],b=c??(d?Math.max(100,...e):Math.max(...e,m??0)||1),w=n-4,y=a/(e.length-1),k=e=>2+w-Math.max(0,e)/b*w,S=e.map((e,s)=>[s*y,k(e)]),_=S.map(([e,s])=>`${e.toFixed(1)},${s.toFixed(1)}`).join(" "),C=S[S.length-1];return(0,s.jsxs)("svg",{width:v?"100%":a,height:n,viewBox:`0 0 ${a} ${n}`,preserveAspectRatio:v?"none":void 0,className:(0,r.f)("block overflow-visible",u),"data-testid":f,role:g?"img":void 0,"aria-label":g,"aria-hidden":!g||void 0,children:[l&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("defs",{children:(0,s.jsxs)("linearGradient",{id:j,x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,s.jsx)("stop",{offset:"0%",stopColor:N,stopOpacity:.35}),(0,s.jsx)("stop",{offset:"100%",stopColor:N,stopOpacity:0})]})}),(0,s.jsx)("polygon",{points:`0,${n} ${_} ${a},${n}`,fill:`url(#${j})`})]}),void 0!==m&&(0,s.jsx)("line",{x1:0,x2:a,y1:k(m),y2:k(m),stroke:"var(--color-warning)",strokeOpacity:.5,strokeDasharray:"3 3",strokeWidth:1}),(0,s.jsx)("polyline",{fill:"none",stroke:N,strokeWidth:1.5,vectorEffect:"non-scaling-stroke",strokeLinejoin:"round",strokeLinecap:"round",points:_}),p&&!v&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("circle",{cx:C[0],cy:C[1],r:2.5,fill:N,className:"origin-center animate-halo [transform-box:fill-box]"}),(0,s.jsx)("circle",{cx:C[0],cy:C[1],r:2,fill:N})]})]})}e.s(["f",0,x],55427),e.s(["N",0,function({title:e,description:t,children:a,className:r,action:i,tone:l,corners:c=!1,...d}){return(0,s.jsx)(n.f,{...d,tone:l,corners:c,title:e,description:t,action:i,className:r,children:a})},"n",0,function({label:e,value:l,icon:c,trend:o,spark:m,meter:p,delta:h,tone:u="primary",className:f,testId:g}){let v=!h||h.value>=0===(h.positiveIsGood??!0);return(0,s.jsxs)(n.f,{tone:u,className:(0,r.f)("overflow-hidden",f),testId:g,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-[0.15em] text-text-muted",children:e}),c&&(0,s.jsx)("span",{className:"text-primary/60",children:c})]}),(0,s.jsxs)("div",{className:"mt-2 flex items-end justify-between gap-2",children:[(0,s.jsx)("div",{className:(0,r.f)("num text-2xl font-bold","primary"===u?"text-primary neon-text":i.T[u]),children:l}),h&&0!==h.value&&(0,s.jsxs)("span",{className:(0,r.f)("num mb-1 inline-flex items-center gap-0.5 text-[11px]",v?"text-success":"text-danger"),children:[h.value>0?(0,s.jsx)(a.f,{className:"h-3 w-3"}):(0,s.jsx)(t,{className:"h-3 w-3"}),Math.abs(h.value).toFixed(+!Number.isInteger(h.value)),h.unit]})]}),o&&(0,s.jsx)("div",{className:(0,r.f)("mt-1 text-[11px]",o.positive?"text-success":"text-danger"),children:o.value}),void 0!==p&&(0,s.jsx)(d,{value:p,className:"mt-3",label:e}),m&&m.length>1&&(0,s.jsx)("div",{className:"-mx-5 -mb-5 mt-3 opacity-80",children:(0,s.jsx)(x,{values:m,tone:u,width:240,height:28,stretch:!0,live:!1})})]})}],93999)},3062,e=>{var s=e.i(43476),t=e.i(78571),a=e.i(35084);let r={primary:"[--panel-corner-color:color-mix(in_srgb,var(--color-primary)_60%,transparent)]",accent:"[--panel-corner-color:color-mix(in_srgb,var(--color-accent)_70%,transparent)]",success:"[--panel-corner-color:color-mix(in_srgb,var(--color-success)_60%,transparent)]",warning:"[--panel-corner-color:color-mix(in_srgb,var(--color-warning)_70%,transparent)]",danger:"[--panel-corner-color:color-mix(in_srgb,var(--color-danger)_70%,transparent)]",info:"[--panel-corner-color:color-mix(in_srgb,var(--color-info)_60%,transparent)]",muted:"[--panel-corner-color:var(--color-border-strong)]"},n={primary:"[--glow-hover-color:var(--color-glow)]",accent:"[--glow-hover-color:var(--color-glow-accent)]",success:"[--glow-hover-color:var(--color-glow-success)]",warning:"[--glow-hover-color:var(--color-glow-warning)]",danger:"[--glow-hover-color:var(--color-glow-danger)]",info:"[--glow-hover-color:var(--color-glow)]",muted:"[--glow-hover-color:var(--color-glow)]"},i={primary:"hover:border-primary/30",accent:"hover:border-accent/40",success:"hover:border-success/30",warning:"hover:border-warning/40",danger:"hover:border-danger/40",info:"hover:border-info/30",muted:"hover:border-border-strong"},l={none:"",sm:"p-3",md:"p-5",lg:"p-6"};e.s(["f",0,function({tone:e="primary",corners:c=!0,interactive:d=!0,hero:o=!1,title:x,description:m,icon:p,action:h,as:u="div",padding:f="md",testId:g,className:v,children:j,...N}){return(0,s.jsxs)(u,{...N,"data-testid":g??N["data-testid"],className:(0,t.f)("relative rounded-panel border border-border bg-surface transition-colors duration-300",l[f],c&&"panel-corners",c&&r[e],d&&"glow-hover",d&&n[e],d&&i[e],o&&"grid-bg overflow-hidden bg-surface/80",v),children:[(x||h||p)&&(0,s.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[p&&(0,s.jsx)("span",{className:(0,t.f)("mt-0.5 shrink-0",a.T[e]),children:p}),(0,s.jsxs)("div",{className:"min-w-0",children:[x&&(0,s.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider",children:x}),m&&(0,s.jsx)("p",{className:"mt-0.5 text-[11px] text-text-muted",children:m})]})]}),h]}),j]})}])},63376,e=>{var s=e.i(43476);e.s(["z",0,function({children:e,className:t}){return(0,s.jsx)("div",{className:`animate-page-in${t?` ${t}`:""}`,children:e})},"U",0,function({children:e,className:t}){return(0,s.jsx)("div",{className:t,children:e})}])},88187,69074,e=>{var s=e.i(43476),t=e.i(32181),a=e.i(31278),r=e.i(95468),n=e.i(73884),i=e.i(63639);e.s(["f",0,function({title:e,description:l,nodes:c,scanning:d}){return(0,s.jsxs)(t.f.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.4,ease:[.16,1,.3,1]},className:"rounded border border-primary/30 bg-surface p-6 relative overflow-hidden",children:[d&&(0,s.jsx)(t.f.div,{className:"absolute inset-0 pointer-events-none",initial:{opacity:0},animate:{opacity:1},children:(0,s.jsx)(t.f.div,{className:"absolute left-0 right-0 h-px bg-gradient-to-r from-transparent via-primary/60 to-transparent",animate:{top:["0%","100%"]},transition:{duration:2,repeat:1/0,ease:"linear"}})}),(0,s.jsx)("div",{className:"absolute inset-0 rounded pointer-events-none",style:{boxShadow:d?"0 0 20px var(--color-glow), inset 0 0 20px rgba(0,229,255,0.03)":"none",transition:"box-shadow 0.5s ease"}}),(0,s.jsxs)("div",{className:"relative z-10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[d?(0,s.jsx)(t.f.div,{animate:{rotate:360},transition:{duration:2,repeat:1/0,ease:"linear"},children:(0,s.jsx)(i.f,{className:"h-5 w-5 text-primary"})}):(0,s.jsx)(r.f,{className:"h-5 w-5 text-success"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-bold uppercase tracking-wider",children:d?e:"Scan Complete"}),l&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:l})]})]}),c.length>0&&(0,s.jsx)("div",{className:"space-y-2",children:c.map((e,i)=>(0,s.jsxs)(t.f.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05*i,duration:.3},className:"flex items-center gap-3 text-xs",children:["scanning"===e.status&&(0,s.jsx)(a.f,{className:"h-3.5 w-3.5 text-primary animate-spin"}),"done"===e.status&&(0,s.jsx)(r.f,{className:"h-3.5 w-3.5 text-success"}),"error"===e.status&&(0,s.jsx)(n.f,{className:"h-3.5 w-3.5 text-danger"}),(0,s.jsx)("span",{className:"text-text",children:e.nodeName}),"error"===e.status&&e.error&&(0,s.jsx)("span",{className:"text-[10px] text-danger/70 truncate max-w-[200px]",children:e.error})]},e.nodeId))}),0===c.length&&d&&(0,s.jsx)("p",{className:"text-[11px] text-text-muted",children:"Discovering nodes..."})]})]})}],88187);let l=(0,e.i(75254).f)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);e.s(["f",0,l],69074)},15057,e=>{let s=(0,e.i(75254).f)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["f",0,s],15057)},86536,e=>{let s=(0,e.i(75254).f)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["f",0,s],86536)},41929,e=>{let s=(0,e.i(75254).f)("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]);e.s(["f",0,s],41929)},88844,e=>{let s=(0,e.i(75254).f)("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);e.s(["f",0,s],88844)},95187,(e,s,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var a={callServer:function(){return n.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var r in a)Object.defineProperty(t,r,{enumerable:!0,get:a[r]});let n=e.r(32120),i=e.r(92245),l=e.r(35326)}])})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hivemagnus/magnus-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Magnus UI: web console for the Magnus fleet control plane, shipped as a prebuilt Next.js server with the magnus-ui CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"magnus",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"ws": "^8.22.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@hivemagnus/magnus-contracts": "1.0.
|
|
67
|
+
"@hivemagnus/magnus-contracts": "1.0.3",
|
|
68
68
|
"@playwright/test": "^1.64.1",
|
|
69
69
|
"@tailwindcss/postcss": "^4.0.0",
|
|
70
70
|
"@types/node": "^22.20.5",
|
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_API_URL":"https://localhost:4000","NEXT_PUBLIC_AGENT_VERSION":"1.0.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_API_URL":"https://localhost:4000","NEXT_PUBLIC_AGENT_VERSION":"1.0.3"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"instrumentationClientInject":[],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":true,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/opt/magnus-ui-build","enablePrerenderSourceMaps":true,"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"deprecated":{},"experimental":{"agentUpgrade":"security","agentFeedback":false,"coldCacheBadge":false,"collapseAdapterRoutes":true,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"parallelRouteMetadata":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"reactBrowserBailout":true,"useOffline":false,"varyParams":true,"optimisticRouting":true,"concurrentRouterQueue":false,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptMozjpeg":true,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"useCacheStaticRootParamTracking":false,"globalNotFound":false,"explicitParallelRouteChildren":true,"strictRouteMatching":true,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"disableResumeDataCacheCompression":false,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"exposeRuntimeErrorsToHMR":false,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":true,"turbopackStaleOutputMaxAge":604800000,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackSharedRuntime":true,"serverActions":{"bodySizeLimit":"2mb"},"turbopackMemoryEvictionMode":"auto","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","serverExternalPackages":["ssh2"],"turbopack":{"root":"/opt/magnus-ui-build"},"repoRoot":"/opt/magnus-ui-build","distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/dashboard-plugins/:path*","destination":"/api/hermes/dashboard/dashboard-plugins/:path*"},{"source":"/kanban","destination":"/api/hermes/dashboard/kanban"}],"fallback":[]},"_originalRedirects":[{"source":"/hermes","destination":"/orchestra/installations","permanent":true},{"source":"/hermes/installations","destination":"/orchestra/installations","permanent":true},{"source":"/hermes/profiles","destination":"/orchestra/profiles","permanent":true},{"source":"/orchestra/agents","destination":"/orchestra/installations","permanent":true}]}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hivemagnus/magnus-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Magnus UI: web console for the Magnus fleet control plane, shipped as a prebuilt Next.js server with the magnus-ui CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"magnus",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"ws": "^8.22.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@hivemagnus/magnus-contracts": "1.0.
|
|
67
|
+
"@hivemagnus/magnus-contracts": "1.0.3",
|
|
68
68
|
"@playwright/test": "^1.64.1",
|
|
69
69
|
"@tailwindcss/postcss": "^4.0.0",
|
|
70
70
|
"@types/node": "^22.20.5",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|