heyio 0.40.0 → 0.42.0
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/api/logout.test.js +129 -0
- package/dist/api/server.js +118 -2
- package/dist/api/wiki.test.js +283 -0
- package/dist/copilot/skills.js +72 -0
- package/dist/copilot/skills.test.js +55 -0
- package/dist/store/db.js +28 -0
- package/dist/store/squads.js +33 -1
- package/dist/store/squads.test.js +52 -0
- package/package.json +1 -1
- package/web-dist/assets/{AgentActivityView-D-xGvKsm.js → AgentActivityView-CedxxE6K.js} +1 -1
- package/web-dist/assets/{ChatView-DV4zdwDI.js → ChatView-DMkYQo_V.js} +1 -1
- package/web-dist/assets/FeedView-BH4q-31V.js +1 -0
- package/web-dist/assets/InboxView-BVwVP4EW.js +1 -0
- package/web-dist/assets/{LoginView-DNcKxnq-.js → LoginView-DRPDhnwu.js} +1 -1
- package/web-dist/assets/{McpView-CbiIag57.js → McpView-D8yWz-lq.js} +1 -1
- package/web-dist/assets/{SchedulesView-uxtLtxEL.js → SchedulesView-BzzyncGF.js} +1 -1
- package/web-dist/assets/{SettingsTabs.vue_vue_type_script_setup_true_lang-BE0YBCo4.js → SettingsTabs.vue_vue_type_script_setup_true_lang-oW3ySu7Y.js} +1 -1
- package/web-dist/assets/SkillsView-oxpYuhx7.js +1 -0
- package/web-dist/assets/SquadsView-CaKUIKlq.js +1 -0
- package/web-dist/assets/StatusIndicator.vue_vue_type_script_setup_true_lang-8U15Qp_Q.js +1 -0
- package/web-dist/assets/WikiView-C5jXUlfW.js +1 -0
- package/web-dist/assets/index-BrWzNw-N.css +10 -0
- package/web-dist/assets/{index-D1C7prBJ.js → index-f67odrrt.js} +32 -32
- package/web-dist/index.html +2 -2
- package/web-dist/assets/FeedView-BBbnBU_A.js +0 -1
- package/web-dist/assets/InboxView-C_6LL8bG.js +0 -1
- package/web-dist/assets/SkillsView-CobJkgd1.js +0 -1
- package/web-dist/assets/SquadsView-DpI4RInq.js +0 -1
- package/web-dist/assets/StatusIndicator.vue_vue_type_script_setup_true_lang-BwmRY2qH.js +0 -1
- package/web-dist/assets/WikiView-DeY1mFGq.js +0 -1
- package/web-dist/assets/index-DMGoXFX1.css +0 -10
package/web-dist/index.html
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-f67odrrt.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BrWzNw-N.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="app"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as C,o as S,c as o,a as t,F as b,m as g,r as u,q as j,G as x,j as a,z as F,b as l,B as T,E as h,t as i,s as y,J as M,g as k,n as z,A as B,x as E,T as L,U as N}from"./index-D1C7prBJ.js";const O={class:"h-full overflow-y-auto p-5"},V={class:"mx-auto max-w-4xl"},A={key:0,class:"rounded-lg border border-border bg-card px-5 py-10 font-mono text-xs uppercase tracking-[0.22em] text-muted-foreground/50"},I={key:1,class:"rounded-lg border border-dashed border-border bg-card/30 px-5 py-10 font-mono text-xs uppercase tracking-[0.22em] text-muted-foreground/50"},R={key:2,class:"space-y-4"},q={class:"border-b border-border/50 px-5 py-3"},D=["onClick"],H={class:"flex items-start gap-3"},P={class:"mt-1.5 shrink-0"},U={key:0,class:"h-1.5 w-1.5 rounded-full bg-primary",style:{boxShadow:"var(--glow-cyan)"}},$={key:1,class:"h-1.5 w-1.5"},G={class:"min-w-0 flex-1"},J={class:"mb-1 flex flex-wrap items-center gap-1.5"},K={class:"font-mono text-[10px] text-muted-foreground/50"},Q={class:"text-[10px] text-muted-foreground/50"},W={class:"flex items-center justify-between gap-2"},X={class:"font-mono text-[10px] text-muted-foreground/40"},Y={key:0,class:"text-[10px] text-primary/60"},Z={key:0,class:"mt-3 rounded border border-white/[0.06] bg-black/30 p-3 text-xs text-foreground/60"},ee=["innerHTML"],oe=C({__name:"FeedView",setup(te){const f=u([]),m=u({}),c=u(null),p=u(!1),v=j(()=>{var r;const s=new Map;for(const n of f.value){const e=n.squad_slug??"io",d=m.value[e];s.has(e)||s.set(e,{key:e,label:(d==null?void 0:d.name)??N(e),universe:d==null?void 0:d.universe,entries:[]}),(r=s.get(e))==null||r.entries.push(n)}return[...s.values()]});async function _(){p.value=!0;try{const[s,r]=await Promise.all([x("/api/feed?limit=120"),x("/api/squads")]);if(s.ok&&(f.value=(await s.json()).entries),r.ok){const n=await r.json();m.value=Object.fromEntries(n.squads.map(e=>[e.slug??e.id??e.name.toLowerCase(),{name:e.name,universe:e.universe}]))}}finally{p.value=!1}}async function w(s){c.value=c.value===s.id?null:s.id,s.read_at||(await x(`/api/feed/${s.id}/read`,{method:"POST"}).catch(()=>null),s.read_at=new Date().toISOString())}return S(_),(s,r)=>(a(),o("div",O,[t("div",V,[t("div",{class:"mb-5 flex items-center justify-between gap-3"},[r[0]||(r[0]=t("div",null,[t("div",{class:"font-mono text-[10px] uppercase tracking-[0.3em] text-primary"},"Activity Feed"),t("div",{class:"mt-2 text-sm text-foreground/70"},"Unread events keep the cyan indicator and expand inline for detail.")],-1)),t("button",{class:"rounded border border-border px-3 py-1.5 font-mono text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-primary",onClick:_},"refresh")]),p.value?(a(),o("div",A,"Syncing feed…")):v.value.length?(a(),o("div",R,[(a(!0),o(b,null,g(v.value,n=>(a(),o("section",{key:n.key,class:"overflow-hidden rounded-lg border border-border bg-card"},[t("div",q,[t("span",{class:"rounded px-1.5 py-0.5 font-mono text-[10px]",style:F({color:l(h)(n.universe),backgroundColor:l(T)(l(h)(n.universe),.15)})},i(n.label),5)]),(a(!0),o(b,null,g(n.entries,e=>(a(),o("article",{key:e.id,class:y(["cursor-pointer border-b border-border/40 px-5 py-4 transition-colors last:border-b-0 hover:bg-white/[0.02]",e.read_at?"":"bg-white/[0.015]"]),onClick:d=>w(e)},[t("div",H,[t("div",P,[e.read_at?(a(),o("div",$)):(a(),o("div",U))]),t("div",G,[t("div",J,[t("span",K,i(e.source_ref??e.instance_id??e.task_id??e.type),1),r[1]||(r[1]=t("span",{class:"font-mono text-[10px] text-muted-foreground/40"},"·",-1)),t("span",Q,i(e.source_type??"IO"),1)]),t("div",{class:y(["mb-1 text-sm leading-snug",e.read_at?"text-foreground/70":"text-foreground"])},i(e.title),3),t("div",W,[t("span",X,i(l(M)(e.created_at)),1),e.body?(a(),o("span",Y,i(c.value===e.id?"▲ collapse":"▼ details"),1)):k("",!0)]),z(L,{"enter-active-class":"duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:B(()=>[c.value===e.id&&e.body?(a(),o("div",Z,[t("div",{class:"wiki-content text-xs font-mono leading-relaxed",innerHTML:l(E)(e.body)},null,8,ee)])):k("",!0)]),_:2},1024)])])],10,D))),128))]))),128))])):(a(),o("div",I,"No feed activity."))])]))}});export{oe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as g,o as _,c as n,a as e,t as o,F as h,m as y,g as k,b as p,J as b,r as m,q as w,G as x,j as i,s as C}from"./index-D1C7prBJ.js";const j={class:"grid h-full min-h-0 gap-5 p-5 xl:grid-cols-[360px_minmax(0,1fr)]"},E={class:"flex min-h-0 flex-col overflow-hidden rounded-lg border border-border bg-card"},I={class:"border-b border-border px-5 py-4"},B={class:"mt-2 flex items-end justify-between gap-3"},F={class:"text-3xl font-semibold"},N={class:"min-h-0 flex-1 overflow-y-auto p-3"},R=["onClick"],S={class:"flex items-center justify-between gap-3"},V={class:"truncate text-sm font-medium"},$={class:"font-mono text-[10px] uppercase tracking-[0.2em] text-accent-foreground"},q={class:"mt-2 text-sm leading-6 text-foreground/65"},D={class:"mt-3 font-mono text-[11px] uppercase tracking-[0.18em] text-muted-foreground/55"},L={key:0,class:"rounded-lg border border-dashed border-border px-4 py-12 text-center font-mono text-xs uppercase tracking-[0.22em] text-muted-foreground/45"},T={class:"flex min-h-0 flex-col overflow-hidden rounded-lg border border-border bg-card"},z={class:"border-b border-border px-6 py-4"},G={class:"mt-2 text-lg font-semibold"},J={class:"min-h-0 flex-1 overflow-y-auto px-6 py-6"},M={key:0,class:"grid gap-5 lg:grid-cols-[1fr_220px]"},P={class:"rounded-lg border border-white/[0.06] bg-sidebar/60 px-5 py-5 text-sm leading-7 text-foreground/75"},A={class:"rounded-lg border border-white/[0.06] bg-sidebar/60 px-5 py-5 font-mono text-xs uppercase tracking-[0.18em] text-muted-foreground/55"},H={class:"mt-2 text-foreground"},K={class:"mt-2 text-accent-foreground"},O={class:"mt-2 text-foreground/80"},Q={key:1,class:"flex h-full items-center justify-center font-mono text-xs uppercase tracking-[0.22em] text-muted-foreground/45"},Y=g({__name:"InboxView",setup(U){const a=m([]),c=m(null),f=m(0),s=w(()=>a.value.find(d=>d.id===c.value)??null);async function u(){var l;const[d,t]=await Promise.all([x("/api/inbox/count"),x("/api/inbox")]);d.ok&&(f.value=(await d.json()).count??0),t.ok&&(a.value=(await t.json()).entries,c.value=((l=a.value[0])==null?void 0:l.id)??null)}async function v(d){await x(`/api/inbox/${d}`,{method:"DELETE"}),await u()}return _(u),(d,t)=>{var l;return i(),n("div",j,[e("section",E,[e("div",I,[t[2]||(t[2]=e("div",{class:"font-mono text-[10px] uppercase tracking-[0.28em] text-accent-foreground"},"Inbox",-1)),e("div",B,[e("div",null,[e("div",F,o(f.value),1),t[1]||(t[1]=e("div",{class:"font-mono text-xs uppercase tracking-[0.18em] text-muted-foreground/55"},"active inbox entries",-1))]),e("button",{class:"rounded border border-border px-3 py-1.5 font-mono text-xs text-muted-foreground transition-colors hover:border-accent-foreground/40 hover:text-accent-foreground",onClick:u},"refresh")])]),e("div",N,[(i(!0),n(h,null,y(a.value,r=>(i(),n("button",{key:r.id,class:C(["mb-2 w-full rounded-lg border px-4 py-4 text-left transition-colors",c.value===r.id?"border-accent-foreground/40 bg-accent-foreground/10":"border-border bg-sidebar/40 hover:bg-white/[0.03]"]),onClick:W=>c.value=r.id},[e("div",S,[e("div",V,o(r.title),1),e("div",$,o(r.type),1)]),e("div",q,o(r.body),1),e("div",D,o(p(b)(r.created_at)),1)],10,R))),128)),a.value.length?k("",!0):(i(),n("div",L,"Inbox is empty"))])]),e("section",T,[e("div",z,[t[3]||(t[3]=e("div",{class:"font-mono text-[10px] uppercase tracking-[0.28em] text-primary"},"Selected message",-1)),e("div",G,o(((l=s.value)==null?void 0:l.title)??"No message selected"),1)]),e("div",J,[s.value?(i(),n("div",M,[e("article",P,o(s.value.body),1),e("aside",A,[t[4]||(t[4]=e("div",null,"source",-1)),e("div",H,o(s.value.source_type??"inbox"),1),t[5]||(t[5]=e("div",{class:"mt-4"},"reference",-1)),e("div",K,o(s.value.source_ref??s.value.squad_slug??"—"),1),t[6]||(t[6]=e("div",{class:"mt-4"},"received",-1)),e("div",O,o(p(b)(s.value.created_at)),1),e("button",{class:"mt-6 w-full rounded border border-destructive/40 px-4 py-2 text-destructive transition-colors hover:bg-destructive/10",onClick:t[0]||(t[0]=r=>v(s.value.id))},"dismiss")])])):(i(),n("div",Q,"Select a message from the left rail"))])])])}}});export{Y as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_}from"./SettingsTabs.vue_vue_type_script_setup_true_lang-BE0YBCo4.js";import{d as w,o as y,D as C,A as S,G as B,r as p,j as a,a as t,c as i,m,z as g,t as r,F as x,s as c,q as z,N as F}from"./index-D1C7prBJ.js";const j={class:"max-w-2xl space-y-6"},E={class:"mb-2 flex items-center gap-2"},I={class:"font-mono text-[10px] text-muted-foreground/40"},D={class:"overflow-hidden rounded-lg border border-border"},G={class:"w-36 shrink-0 break-all font-mono text-xs text-foreground/80"},M={class:"flex-1 text-xs leading-relaxed text-muted-foreground"},N=["onClick"],A=w({__name:"SkillsView",setup(O){const f={"File System":"#00d9ff","Code Intelligence":"#5fff87","Git & CI":"#c4a7ff",Communication:"#ffd000"},d=p([]),o=p({}),b=z(()=>{const s=new Map;for(const e of d.value){const l=F(e.name,e.path);s.set(l,[...s.get(l)??[],e])}return[...s.entries()]});async function v(){const s=await B("/api/skills");s.ok&&(d.value=(await s.json()).skills,o.value=Object.fromEntries(d.value.map(e=>[e.slug,o.value[e.slug]??!0])))}function h(s){o.value={...o.value,[s]:!o.value[s]}}return y(v),(s,e)=>(a(),C(_,{active:"skills"},{default:S(()=>[t("div",j,[e[2]||(e[2]=t("p",{class:"text-xs text-muted-foreground"},"Enable or disable capabilities available to IO agents. Built-in skills cannot be removed here; the toggles model the operator deck from the reference design.",-1)),(a(!0),i(x,null,m(b.value,([l,u])=>(a(),i("div",{key:l},[t("div",E,[t("div",{class:"h-1.5 w-1.5 rounded-full",style:g({backgroundColor:f[l]??"#00d9ff"})},null,4),t("span",{class:"font-mono text-[10px] font-semibold uppercase tracking-wider",style:g({color:f[l]??"#00d9ff"})},r(l),5),e[0]||(e[0]=t("div",{class:"h-px flex-1 bg-border/40"},null,-1)),t("span",I,r(u.filter(n=>o.value[n.slug]).length)+"/"+r(u.length),1)]),t("div",D,[(a(!0),i(x,null,m(u,(n,k)=>(a(),i("div",{key:n.slug,class:c(["flex items-center gap-3 bg-card px-4 py-2.5 transition-colors hover:bg-card/80",k>0?"border-t border-border/50":""])},[t("code",G,r(n.name),1),t("span",M,r(n.description),1),e[1]||(e[1]=t("span",{class:"shrink-0 font-mono text-[9px] text-muted-foreground/30"},"built-in",-1)),t("button",{type:"button",class:c(["relative h-4 w-8 shrink-0 rounded-full transition-colors",o.value[n.slug]?"bg-primary":"bg-white/10"]),onClick:V=>h(n.slug)},[t("span",{class:c(["absolute left-0.5 top-0.5 h-3 w-3 rounded-full bg-white transition-transform",o.value[n.slug]?"translate-x-4":"translate-x-0"])},null,2)],10,N)],2))),128))])]))),128))])]),_:1}))}});export{A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as w,j as s,c as a,a as e,n as v,z as h,t as i,g as p,s as G,_ as C,A as M,T as H,r as k,q as y,b as R,B as S,C as J,F as f,m as b,D as j,E as K,o as Q,G as _,H as O,I as W,J as X,K as Y}from"./index-D1C7prBJ.js";import{_ as T}from"./StatusIndicator.vue_vue_type_script_setup_true_lang-BwmRY2qH.js";const Z={class:"flex items-center gap-2 rounded px-2 py-1.5 transition-colors hover:bg-white/[0.03]"},ee={class:"flex shrink-0 gap-1"},te={key:0,class:"rounded bg-primary/10 px-1 py-0.5 font-mono text-[9px] leading-none text-primary"},se={key:1,class:"rounded bg-status-success/10 px-1 py-0.5 font-mono text-[9px] leading-none text-status-success"},ne={class:"min-w-0 flex-1"},ae={key:0,class:"block truncate font-mono text-[11px] text-foreground/60"},oe={key:1,class:"font-mono text-[11px] text-muted-foreground/40"},re={key:0,class:"mx-2 mb-1.5 rounded border border-white/[0.06] bg-white/[0.03] px-3 py-2"},ie={class:"text-xs leading-relaxed text-foreground/60"},le={key:0,class:"mt-2 font-mono text-[10px] text-muted-foreground/45"},de=w({__name:"AgentRow",props:{agent:{},universeColor:{}},setup(t){const d=t,r=k(!1),u=y(()=>d.agent.charter||d.agent.role_title||"No charter available.");return(x,o)=>(s(),a("div",{class:"cursor-pointer",onClick:o[0]||(o[0]=l=>r.value=!r.value)},[e("div",Z,[v(T,{status:t.agent.status},null,8,["status"]),e("span",{class:"shrink-0 font-mono text-xs font-medium",style:h({color:t.universeColor})},i(t.agent.character_name),5),e("div",ee,[t.agent.is_lead?(s(),a("span",te,"LEAD")):p("",!0),t.agent.is_qa?(s(),a("span",se,"QA")):p("",!0)]),e("div",ne,[t.agent.current_task?(s(),a("span",ae,"↳ "+i(t.agent.current_task),1)):(s(),a("span",oe,"idle"))]),v(C,{name:"chevron-down",class:G(["h-3 w-3 shrink-0 text-muted-foreground/40 transition-transform",r.value?"rotate-180":""])},null,8,["class"])]),v(H,{"enter-active-class":"duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:M(()=>[r.value?(s(),a("div",re,[o[1]||(o[1]=e("div",{class:"mb-1 font-mono text-[10px] uppercase tracking-wider text-muted-foreground/60"},"Charter",-1)),e("div",ie,i(u.value),1),t.agent.role_title&&t.agent.charter?(s(),a("div",le,"Role · "+i(t.agent.role_title),1)):p("",!0)])):p("",!0)]),_:1})]))}}),ce={class:"max-w-[120px] truncate text-muted-foreground"},ue=w({__name:"InstancePill",props:{instance:{}},setup(t){const d=t,r=y(()=>J(d.instance.status));return(u,x)=>(s(),a("div",{class:"flex items-center gap-1.5 rounded border px-2 py-1 font-mono text-[10px]",style:h({borderColor:R(S)(r.value,.3),backgroundColor:R(S)(r.value,.08)})},[e("div",{class:"h-1.5 w-1.5 shrink-0 rounded-full",style:h({backgroundColor:r.value})},null,4),e("span",{style:h({color:r.value})},i(t.instance.issue_ref||t.instance.id),5),x[0]||(x[0]=e("span",{class:"text-muted-foreground/50"},"·",-1)),e("span",ce,i(t.instance.branch_name||"detached"),1)],4))}}),me={class:"flex flex-col overflow-hidden rounded-lg border border-border bg-card"},xe={class:"px-4 pb-2.5 pt-3"},pe={class:"mb-2 flex items-start justify-between gap-2"},fe={class:"flex min-w-0 items-center gap-2"},ge={class:"truncate text-sm font-semibold"},ve={key:0,class:"shrink-0 rounded-full bg-destructive px-1.5 py-0.5 font-mono text-[9px] font-bold text-white"},he={class:"truncate font-mono text-[10px] text-muted-foreground/50"},_e={class:"px-2 py-1.5"},be={class:"px-4 py-2.5"},ke={class:"mb-2 flex items-center gap-1.5 font-mono text-[10px] uppercase tracking-wider text-muted-foreground/50"},ye={class:"flex flex-wrap gap-1.5"},we={class:"px-4 py-2.5"},qe={class:"mb-2 flex items-center gap-1.5 font-mono text-[10px] uppercase tracking-wider text-muted-foreground/50"},$e={class:"space-y-1"},Ce={class:"flex-1 text-foreground/60"},Re={class:"shrink-0 font-mono text-muted-foreground/40"},Se=w({__name:"SquadCard",props:{squad:{}},setup(t){const d=t,r=y(()=>K(d.squad.universe)),u=y(()=>d.squad.instances.filter(x=>x.status==="running").length);return(x,o)=>(s(),a("article",me,[e("div",{class:"h-px",style:h({backgroundColor:r.value,opacity:.6})},null,4),e("div",xe,[e("div",pe,[e("div",fe,[v(T,{status:t.squad.status},null,8,["status"]),e("h3",ge,i(t.squad.name),1),t.squad.unread_count>0?(s(),a("span",ve,i(t.squad.unread_count),1)):p("",!0)]),e("span",{class:"shrink-0 rounded px-1.5 py-0.5 font-mono text-[10px]",style:h({color:r.value,backgroundColor:R(S)(r.value,.15)})},i(t.squad.universe),5)]),e("div",he,i(t.squad.project_path),1)]),o[4]||(o[4]=e("div",{class:"mx-3 border-t border-border/50"},null,-1)),e("div",_e,[(s(!0),a(f,null,b(t.squad.agents,l=>(s(),j(de,{key:l.character_name,agent:l,"universe-color":r.value},null,8,["agent","universe-color"]))),128))]),t.squad.instances.length?(s(),a(f,{key:0},[o[0]||(o[0]=e("div",{class:"mx-3 border-t border-border/50"},null,-1)),e("div",be,[e("div",ke,[v(C,{name:"git-branch",class:"h-3 w-3"}),e("span",null,"Instances ("+i(u.value)+"/"+i(t.squad.instances.length)+" running)",1)]),e("div",ye,[(s(!0),a(f,null,b(t.squad.instances,l=>(s(),j(ue,{key:l.id,instance:l},null,8,["instance"]))),128))])])],64)):p("",!0),t.squad.recent_decisions.length?(s(),a(f,{key:1},[o[3]||(o[3]=e("div",{class:"mx-3 border-t border-border/50"},null,-1)),e("div",we,[e("div",qe,[v(C,{name:"sparkles",class:"h-3 w-3"}),o[1]||(o[1]=e("span",null,"Decisions",-1))]),e("div",$e,[(s(!0),a(f,null,b(t.squad.recent_decisions,l=>(s(),a("div",{key:l.id,class:"flex items-baseline gap-2 text-[11px]"},[o[2]||(o[2]=e("span",{class:"shrink-0 font-mono text-muted-foreground/40"},"·",-1)),e("span",Ce,i(l.title),1),e("span",Re,i(l.timestamp),1)]))),128))])])],64)):p("",!0)]))}}),je={class:"h-full overflow-y-auto p-5"},Ie={key:0,class:"mb-4 rounded-lg border border-destructive/25 bg-destructive/10 px-4 py-3 text-sm text-destructive"},Ae={key:1,class:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3"},Be={key:2,class:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3"},ze={key:3,class:"flex h-full min-h-[320px] items-center justify-center rounded-lg border border-dashed border-border bg-card/30 font-mono text-xs uppercase tracking-[0.22em] text-muted-foreground/55"},Ne=w({__name:"SquadsView",setup(t){const d=k(!1),r=k(""),u=k([]);async function x(){d.value=!0,r.value="";try{const[o,l]=await Promise.all([_("/api/squads"),_("/api/feed?limit=200")]),g=o.ok?(await o.json()).squads:[],q=new Map;if(l.ok){const m=(await l.json()).entries;for(const c of m)!c.read_at&&c.squad_slug&&q.set(c.squad_slug,(q.get(c.squad_slug)??0)+1)}u.value=await Promise.all(g.map(async m=>{var E;const c=m.slug??m.id??m.name.toLowerCase().replace(/\s+/g,"-"),[I,A]=await Promise.all([_(`/api/squads/${encodeURIComponent(c)}/agents`),_(`/api/squads/${encodeURIComponent(c)}/instances`)]),U=I.ok?(await I.json()).agents:[],F=A.ok?(await A.json()).instances:[],B=U.map(n=>({character_name:n.character_name??"Unnamed Agent",role_title:n.role_title,charter:n.charter??n.role_title,model_tier:n.model_tier??(n.is_lead?"high":"medium"),status:O(n.status),is_lead:!!n.is_lead,is_qa:!!n.is_qa,current_task:n.currentTask??n.current_task??null})),$=F.map(n=>({id:String(n.id),issue_ref:n.issue_ref,branch_name:n.branch_name,status:W(n.status),worktree_path:n.worktree_path})),z=await Promise.all($.slice(0,3).map(n=>_(`/api/squads/${encodeURIComponent(c)}/instances/${encodeURIComponent(n.id)}`))),D=[];for(let n=0;n<z.length;n+=1){const N=z[n];if(!N.ok)continue;const V=await N.json();for(const[L,P]of(V.decisions??[]).slice(0,3).entries())D.push({id:`${((E=$[n])==null?void 0:E.id)??n}-${L}`,title:P.decision??"Decision recorded",timestamp:X(P.created_at)})}return{id:m.id??c,slug:c,name:m.name,project_path:m.project_path??"—",universe:m.universe??"Ghostbusters",status:Y(B,m),unread_count:q.get(c)??0,agents:B,instances:$,recent_decisions:D.slice(0,4)}}))}catch(o){r.value=o instanceof Error?o.message:"Failed to load squads.",u.value=[]}finally{d.value=!1}}return Q(x),(o,l)=>(s(),a("div",je,[r.value?(s(),a("div",Ie,i(r.value),1)):p("",!0),d.value&&!u.value.length?(s(),a("div",Ae,[(s(),a(f,null,b(6,g=>e("div",{key:g,class:"h-64 animate-pulse rounded-lg border border-border bg-card/60"})),64))])):u.value.length?(s(),a("div",Be,[(s(!0),a(f,null,b(u.value,g=>(s(),j(Se,{key:g.id,squad:g},null,8,["squad"]))),128))])):(s(),a("div",ze," No squads discovered. "))]))}});export{Ne as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as r,j as s,c as t,F as l,a}from"./index-D1C7prBJ.js";const n={class:"relative flex h-3 w-3 shrink-0 items-center justify-center"},u={key:1,class:"status-error-dot h-2 w-2 rounded-full bg-status-error",style:{boxShadow:"var(--glow-error)"}},d={key:2,class:"h-2 w-2 rounded-full bg-status-success",style:{boxShadow:"var(--glow-success)"}},i={key:3,class:"h-2 w-2 rounded-full bg-status-idle opacity-40"},g=r({__name:"StatusIndicator",props:{status:{default:"idle"}},setup(o){return(c,e)=>(s(),t("div",n,[o.status==="working"?(s(),t(l,{key:0},[e[0]||(e[0]=a("div",{class:"status-working-ring absolute h-3 w-3 rounded-full bg-status-working",style:{boxShadow:"var(--glow-cyan)"}},null,-1)),e[1]||(e[1]=a("div",{class:"h-2 w-2 rounded-full bg-status-working",style:{boxShadow:"var(--glow-cyan)"}},null,-1))],64)):o.status==="error"?(s(),t("div",u)):o.status==="success"?(s(),t("div",d)):(s(),t("div",i))]))}});export{g as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as F,j as a,c as n,z as T,n as f,_ as b,s as g,p as D,t as m,T as M,A as W,F as w,m as k,D as C,g as j,r as p,O as U,l as q,o as H,a as i,w as P,v as L,b as O,x as A,q as N,G as V,P as E}from"./index-D1C7prBJ.js";const G={key:0,class:"overflow-hidden"},S=F({__name:"WikiTreeNode",props:{node:{},selectedPath:{},depth:{default:0}},emits:["select"],setup(t,{emit:u}){const s=u,r=p(!0);return(v,l)=>{const h=U("WikiTreeNode",!0);return a(),n("div",null,[t.node.children.length?(a(),n("button",{key:0,class:"flex w-full items-center gap-1.5 rounded px-2 py-1 text-left font-mono text-xs uppercase tracking-wider text-muted-foreground/70 transition-colors hover:bg-white/[0.03]",style:T({paddingLeft:`${t.depth*12+8}px`}),onClick:l[0]||(l[0]=c=>r.value=!r.value)},[f(b,{name:"chevron-right",class:g(["h-3 w-3 shrink-0 transition-transform",r.value?"rotate-90":""])},null,8,["class"]),D(" "+m(t.node.label),1)],4)):(a(),n("button",{key:1,class:g(["flex w-full items-center gap-1.5 rounded px-2 py-1.5 text-left text-xs transition-colors",t.selectedPath===t.node.path?"bg-primary/10 text-primary":"text-foreground/60 hover:bg-white/[0.03] hover:text-foreground"]),style:T({paddingLeft:`${t.depth*12+8}px`}),onClick:l[1]||(l[1]=c=>t.node.path&&s("select",t.node.path))},m(t.node.label),7)),f(M,{"enter-active-class":"duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:W(()=>[t.node.children.length&&r.value?(a(),n("div",G,[(a(!0),n(w,null,k(t.node.children,c=>(a(),C(h,{key:c.id,node:c,"selected-path":t.selectedPath,depth:t.depth+1,onSelect:l[2]||(l[2]=x=>s("select",x))},null,8,["node","selected-path","depth"]))),128))])):j("",!0)]),_:1})])}}}),I={class:"relative flex h-full flex-col overflow-hidden md:flex-row"},R={class:"flex shrink-0 items-center gap-2 border-b border-border bg-sidebar px-4 py-2 md:hidden"},_={key:0,class:"absolute left-0 right-0 top-[calc(2.75rem+2.75rem)] z-20 max-h-[60vh] overflow-y-auto border-b border-border bg-sidebar px-2 py-3 md:hidden"},J={class:"hidden w-52 shrink-0 overflow-y-auto border-r border-border px-2 py-4 md:block"},K={class:"flex-1 overflow-y-auto"},Q={key:0,class:"max-w-2xl px-4 py-5 md:px-8 md:py-6"},X={class:"mb-5 text-xl font-semibold"},Y=["innerHTML"],Z={key:1,class:"flex h-full items-center justify-center font-mono text-sm text-muted-foreground/40"},te=F({__name:"WikiView",setup(t){const u=p([]),s=p(""),r=p(null),v=p(""),l=p(!1),h=N(()=>{const o=v.value.trim().toLowerCase();return o?u.value.filter(e=>`${e.path} ${e.title}`.toLowerCase().includes(o)):u.value}),c=N(()=>E(h.value));async function x(){const o=await V("/api/wiki");o.ok&&(u.value=(await o.json()).pages,!s.value&&u.value[0]&&(s.value=u.value[0].path))}async function z(o){if(!o)return;const e=await V(`/api/wiki/${encodeURIComponent(o)}`);e.ok&&(r.value=await e.json())}function B(o){s.value=o,l.value=!1}return q(s,o=>{z(o)}),H(x),(o,e)=>{var $;return a(),n("div",I,[i("div",R,[i("button",{class:"flex items-center gap-1.5 rounded border border-border px-3 py-1.5 font-mono text-xs text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",onClick:e[0]||(e[0]=d=>l.value=!l.value)},[f(b,{name:"book",class:"h-3.5 w-3.5"}),i("span",null,m((($=r.value)==null?void 0:$.path)??"Pages"),1),f(b,{name:"chevron-down",class:g(["h-3 w-3 transition-transform",l.value?"rotate-180":""])},null,8,["class"])])]),f(M,{"enter-active-class":"duration-200 ease-out","enter-from-class":"-translate-y-2 opacity-0","enter-to-class":"translate-y-0 opacity-100","leave-active-class":"duration-150 ease-in","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"-translate-y-2 opacity-0"},{default:W(()=>[l.value?(a(),n("div",_,[P(i("input",{"onUpdate:modelValue":e[1]||(e[1]=d=>v.value=d),class:"mb-3 w-full rounded border border-border bg-card px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/35",placeholder:"Filter pages"},null,512),[[L,v.value]]),(a(!0),n(w,null,k(c.value,d=>(a(),C(S,{key:d.id,node:d,"selected-path":s.value,onSelect:e[2]||(e[2]=y=>B(y))},null,8,["node","selected-path"]))),128))])):j("",!0)]),_:1}),i("aside",J,[P(i("input",{"onUpdate:modelValue":e[3]||(e[3]=d=>v.value=d),class:"mb-3 w-full rounded border border-border bg-sidebar px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/35",placeholder:"Filter pages"},null,512),[[L,v.value]]),(a(!0),n(w,null,k(c.value,d=>(a(),C(S,{key:d.id,node:d,"selected-path":s.value,onSelect:e[4]||(e[4]=y=>s.value=y)},null,8,["node","selected-path"]))),128))]),i("section",K,[r.value?(a(),n("div",Q,[i("h2",X,m(r.value.path),1),i("div",{class:"wiki-content",innerHTML:O(A)(r.value.content)},null,8,Y)])):(a(),n("div",Z,"Select an article"))])])}}});export{te as default};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
2
|
-
Theme: GitHub Dark
|
|
3
|
-
Description: Dark theme as seen on github.com
|
|
4
|
-
Author: github.com
|
|
5
|
-
Maintainer: @Hirse
|
|
6
|
-
Updated: 2021-05-15
|
|
7
|
-
|
|
8
|
-
Outdated base version: https://github.com/primer/github-syntax-dark
|
|
9
|
-
Current colors taken from GitHub's CSS
|
|
10
|
-
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Space Grotesk,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{--tw-border-opacity: 1;border-color:rgb(var(--border-rgb) / var(--tw-border-opacity, 1));box-sizing:border-box}html{font-size:13px}html,body,#app{margin:0;height:100%;--tw-bg-opacity: 1;background-color:rgb(var(--background-rgb) / var(--tw-bg-opacity, 1));font-family:Space Grotesk,system-ui,sans-serif;--tw-text-opacity: 1;color:rgb(var(--foreground-rgb) / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(circle at top left,rgba(0,217,255,.08),transparent 24%),radial-gradient(circle at top right,rgba(196,167,255,.07),transparent 18%),linear-gradient(180deg,rgba(255,255,255,.02),transparent 35%),var(--background)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.35),transparent 65%);mask-image:linear-gradient(180deg,rgba(0,0,0,.35),transparent 65%)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}input,textarea,select{outline:2px solid transparent;outline-offset:2px}::-moz-selection{background:#00d9ff47;color:#fff}::selection{background:#00d9ff47;color:#fff}.wiki-content{font-size:.875rem;line-height:1.75rem;color:rgb(var(--foreground-rgb) / .72)}.wiki-content h1,.wiki-content h2,.wiki-content h3,.wiki-content h4{margin-bottom:.75rem;margin-top:1.5rem;font-weight:600;--tw-text-opacity: 1;color:rgb(var(--foreground-rgb) / var(--tw-text-opacity, 1))}.wiki-content h1{margin-top:0;font-size:1.75rem}.wiki-content h2{font-size:1.3rem}.wiki-content h3{font-size:1.05rem}.wiki-content p,.wiki-content ul,.wiki-content ol,.wiki-content pre,.wiki-content blockquote,.wiki-content table,.wiki-content hr,.wiki-content .md-spacer{margin-bottom:1rem}.wiki-content ul,.wiki-content ol{padding-left:1.25rem}.wiki-content li{margin-bottom:.25rem}.wiki-content a{--tw-text-opacity: 1;color:rgb(var(--primary-rgb) / var(--tw-text-opacity, 1));text-decoration-line:underline;text-underline-offset:4px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;text-decoration-color:rgb(var(--primary-rgb) / .3)}.wiki-content a:hover{text-decoration-color:rgb(var(--primary-rgb) / 1)}.wiki-content strong{font-weight:600;--tw-text-opacity: 1;color:rgb(var(--foreground-rgb) / var(--tw-text-opacity, 1))}.wiki-content code{border-radius:.25rem;padding:.125rem .25rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-size:11px;--tw-text-opacity: 1;color:rgb(var(--primary-rgb) / var(--tw-text-opacity, 1));background:#ffffff0f}.wiki-content pre{overflow-x:auto;border-radius:.5rem;border-width:1px;padding:1rem;border-color:#ffffff0f;background:#0000004d}.wiki-content pre code{background-color:transparent;padding:0;font-size:11px;color:rgb(var(--foreground-rgb) / .8)}.wiki-content blockquote{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border-left-width:2px;padding:.75rem 1rem;border-left-color:rgb(var(--accent-foreground-rgb) / .7);background:#ffffff08;color:rgb(var(--foreground-rgb) / .7)}.wiki-content table{width:100%;border-collapse:collapse;text-align:left;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-size:.75rem;line-height:1rem}.wiki-content th{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--border-rgb) / var(--tw-border-opacity, 1));padding:.5rem .75rem;--tw-text-opacity: 1;color:rgb(var(--muted-foreground-rgb) / var(--tw-text-opacity, 1))}.wiki-content td{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--border-rgb) / var(--tw-border-opacity, 1));padding:.5rem .75rem;border-bottom-color:rgb(var(--border-rgb) / .4)}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-14{bottom:3.5rem}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.left-full{left:100%}.right-0{right:0}.right-3{right:.75rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-\[calc\(2\.75rem\+2\.75rem\)\]{top:5.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2 / span 2}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-9{height:2.25rem}.h-\[380px\]{height:380px}.h-full{height:100%}.h-px{height:1px}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-\[320px\]{min-height:320px}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-3\.5{min-width:.875rem}.min-w-4{min-width:1rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[120px\]{max-width:120px}.max-w-\[82\%\]{max-width:82%}.max-w-\[85\%\]{max-width:85%}.max-w-\[980px\]{max-width:980px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-2{--tw-translate-y: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.97\]{--tw-scale-x: .97;--tw-scale-y: .97;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-bl-sm{border-bottom-left-radius:.125rem}.rounded-br-sm{border-bottom-right-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-dashed{border-style:dashed}.border-accent-foreground\/40{border-color:rgb(var(--accent-foreground-rgb) / .4)}.border-border{--tw-border-opacity: 1;border-color:rgb(var(--border-rgb) / var(--tw-border-opacity, 1))}.border-border\/40{border-color:rgb(var(--border-rgb) / .4)}.border-border\/50{border-color:rgb(var(--border-rgb) / .5)}.border-destructive\/25{border-color:rgb(var(--destructive-rgb) / .25)}.border-destructive\/40{border-color:rgb(var(--destructive-rgb) / .4)}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:rgb(var(--primary-rgb) / var(--tw-border-opacity, 1))}.border-primary\/20{border-color:rgb(var(--primary-rgb) / .2)}.border-primary\/30{border-color:rgb(var(--primary-rgb) / .3)}.border-primary\/40{border-color:rgb(var(--primary-rgb) / .4)}.border-transparent{border-color:transparent}.border-white\/\[0\.05\]{border-color:#ffffff0d}.border-white\/\[0\.06\]{border-color:#ffffff0f}.bg-accent-foreground\/10{background-color:rgb(var(--accent-foreground-rgb) / .1)}.bg-background{--tw-bg-opacity: 1;background-color:rgb(var(--background-rgb) / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-border{--tw-bg-opacity: 1;background-color:rgb(var(--border-rgb) / var(--tw-bg-opacity, 1))}.bg-border\/40{background-color:rgb(var(--border-rgb) / .4)}.bg-border\/80{background-color:rgb(var(--border-rgb) / .8)}.bg-card{--tw-bg-opacity: 1;background-color:rgb(var(--card-rgb) / var(--tw-bg-opacity, 1))}.bg-card\/30{background-color:rgb(var(--card-rgb) / .3)}.bg-card\/60{background-color:rgb(var(--card-rgb) / .6)}.bg-destructive{--tw-bg-opacity: 1;background-color:rgb(var(--destructive-rgb) / var(--tw-bg-opacity, 1))}.bg-destructive\/10{background-color:rgb(var(--destructive-rgb) / .1)}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-popover{--tw-bg-opacity: 1;background-color:rgb(var(--popover-rgb) / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(var(--primary-rgb) / var(--tw-bg-opacity, 1))}.bg-primary\/10{background-color:rgb(var(--primary-rgb) / .1)}.bg-primary\/15{background-color:rgb(var(--primary-rgb) / .15)}.bg-primary\/5{background-color:rgb(var(--primary-rgb) / .05)}.bg-primary\/\[0\.04\]{background-color:rgb(var(--primary-rgb) / .04)}.bg-sidebar{--tw-bg-opacity: 1;background-color:rgb(var(--sidebar-rgb) / var(--tw-bg-opacity, 1))}.bg-sidebar\/40{background-color:rgb(var(--sidebar-rgb) / .4)}.bg-sidebar\/60{background-color:rgb(var(--sidebar-rgb) / .6)}.bg-sidebar\/95{background-color:rgb(var(--sidebar-rgb) / .95)}.bg-status-error{--tw-bg-opacity: 1;background-color:rgb(var(--status-error-rgb) / var(--tw-bg-opacity, 1))}.bg-status-idle{--tw-bg-opacity: 1;background-color:rgb(var(--status-idle-rgb) / var(--tw-bg-opacity, 1))}.bg-status-success{--tw-bg-opacity: 1;background-color:rgb(var(--status-success-rgb) / var(--tw-bg-opacity, 1))}.bg-status-success\/10{background-color:rgb(var(--status-success-rgb) / .1)}.bg-status-working{--tw-bg-opacity: 1;background-color:rgb(var(--status-working-rgb) / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/\[0\.015\]{background-color:#ffffff04}.bg-white\/\[0\.03\]{background-color:#ffffff08}.bg-white\/\[0\.04\]{background-color:#ffffff0a}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2\.5{padding-bottom:.625rem}.pb-\[calc\(env\(safe-area-inset-bottom\)\+3\.5rem\)\]{padding-bottom:calc(env(safe-area-inset-bottom) + 3.5rem)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-accent-foreground{--tw-text-opacity: 1;color:rgb(var(--accent-foreground-rgb) / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-destructive{--tw-text-opacity: 1;color:rgb(var(--destructive-rgb) / var(--tw-text-opacity, 1))}.text-foreground{--tw-text-opacity: 1;color:rgb(var(--foreground-rgb) / var(--tw-text-opacity, 1))}.text-foreground\/50{color:rgb(var(--foreground-rgb) / .5)}.text-foreground\/55{color:rgb(var(--foreground-rgb) / .55)}.text-foreground\/60{color:rgb(var(--foreground-rgb) / .6)}.text-foreground\/65{color:rgb(var(--foreground-rgb) / .65)}.text-foreground\/70{color:rgb(var(--foreground-rgb) / .7)}.text-foreground\/75{color:rgb(var(--foreground-rgb) / .75)}.text-foreground\/80{color:rgb(var(--foreground-rgb) / .8)}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.text-muted-foreground{--tw-text-opacity: 1;color:rgb(var(--muted-foreground-rgb) / var(--tw-text-opacity, 1))}.text-muted-foreground\/30{color:rgb(var(--muted-foreground-rgb) / .3)}.text-muted-foreground\/40{color:rgb(var(--muted-foreground-rgb) / .4)}.text-muted-foreground\/45{color:rgb(var(--muted-foreground-rgb) / .45)}.text-muted-foreground\/50{color:rgb(var(--muted-foreground-rgb) / .5)}.text-muted-foreground\/55{color:rgb(var(--muted-foreground-rgb) / .55)}.text-muted-foreground\/60{color:rgb(var(--muted-foreground-rgb) / .6)}.text-muted-foreground\/65{color:rgb(var(--muted-foreground-rgb) / .65)}.text-muted-foreground\/70{color:rgb(var(--muted-foreground-rgb) / .7)}.text-primary{--tw-text-opacity: 1;color:rgb(var(--primary-rgb) / var(--tw-text-opacity, 1))}.text-primary\/60{color:rgb(var(--primary-rgb) / .6)}.text-primary\/70{color:rgb(var(--primary-rgb) / .7)}.text-primary\/80{color:rgb(var(--primary-rgb) / .8)}.text-status-success{--tw-text-opacity: 1;color:rgb(var(--status-success-rgb) / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow: 0 20px 60px rgba(0,0,0,.45);--tw-shadow-colored: 0 20px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-\[cubic-bezier\(0\.22\,1\,0\.36\,1\)\]{transition-timing-function:cubic-bezier(.22,1,.36,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{color-scheme:dark;font-family:Space Grotesk,system-ui,sans-serif}.dark{--background: #0a0a0f;--foreground: #e8e8ed;--card: #121218;--popover: #1a1a24;--primary: #00d9ff;--secondary: #1e1e2a;--muted: #252530;--muted-foreground: #8a8a99;--accent: #2d2d3f;--accent-foreground: #c4a7ff;--destructive: #ff3864;--border: #252530;--sidebar: #0f0f16;--status-idle: #8a8a99;--status-working: #00d9ff;--status-error: #ff3864;--status-success: #5fff87;--universe-ateam: #ff6b35;--universe-thundercats: #ffd000;--universe-gijoe: #5fff87;--universe-ghostbusters: #c4a7ff;--glow-cyan: 0 0 20px rgba(0, 217, 255, .4);--glow-error: 0 0 20px rgba(255, 56, 100, .4);--glow-success: 0 0 20px rgba(95, 255, 135, .28);--font-sans: "Space Grotesk";--font-mono: "JetBrains Mono";--font-size: 13px;--radius: .375rem;--background-rgb: 10 10 15;--foreground-rgb: 232 232 237;--card-rgb: 18 18 24;--popover-rgb: 26 26 36;--primary-rgb: 0 217 255;--secondary-rgb: 30 30 42;--muted-rgb: 37 37 48;--muted-foreground-rgb: 138 138 153;--accent-rgb: 45 45 63;--accent-foreground-rgb: 196 167 255;--destructive-rgb: 255 56 100;--border-rgb: 37 37 48;--sidebar-rgb: 15 15 22;--status-idle-rgb: 138 138 153;--status-working-rgb: 0 217 255;--status-error-rgb: 255 56 100;--status-success-rgb: 95 255 135;--universe-ateam-rgb: 255 107 53;--universe-thundercats-rgb: 255 208 0;--universe-gijoe-rgb: 95 255 135;--universe-ghostbusters-rgb: 196 167 255}.status-working-ring{animation:status-pulse 2s ease-in-out infinite}.status-error-dot{animation:status-blink 1s linear infinite}.text-glow-cyan{text-shadow:var(--glow-cyan)}@keyframes status-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.65);opacity:0}}@keyframes status-blink{0%,49%,to{opacity:1}50%,75%{opacity:.35}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0f0f16bf}::-webkit-scrollbar-thumb{border:2px solid rgba(15,15,22,.9);border-radius:9999px;background:#8a8a9952}::-webkit-scrollbar-thumb:hover{background:#8a8a997a}.placeholder\:text-muted-foreground\/30::-moz-placeholder{color:rgb(var(--muted-foreground-rgb) / .3)}.placeholder\:text-muted-foreground\/30::placeholder{color:rgb(var(--muted-foreground-rgb) / .3)}.placeholder\:text-muted-foreground\/35::-moz-placeholder{color:rgb(var(--muted-foreground-rgb) / .35)}.placeholder\:text-muted-foreground\/35::placeholder{color:rgb(var(--muted-foreground-rgb) / .35)}.placeholder\:text-muted-foreground\/40::-moz-placeholder{color:rgb(var(--muted-foreground-rgb) / .4)}.placeholder\:text-muted-foreground\/40::placeholder{color:rgb(var(--muted-foreground-rgb) / .4)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-accent-foreground\/40:hover{border-color:rgb(var(--accent-foreground-rgb) / .4)}.hover\:border-primary\/40:hover{border-color:rgb(var(--primary-rgb) / .4)}.hover\:bg-card\/80:hover{background-color:rgb(var(--card-rgb) / .8)}.hover\:bg-destructive\/10:hover{background-color:rgb(var(--destructive-rgb) / .1)}.hover\:bg-primary\/25:hover{background-color:rgb(var(--primary-rgb) / .25)}.hover\:bg-primary\/5:hover{background-color:rgb(var(--primary-rgb) / .05)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}.hover\:text-accent-foreground:hover{--tw-text-opacity: 1;color:rgb(var(--accent-foreground-rgb) / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{--tw-text-opacity: 1;color:rgb(var(--destructive-rgb) / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{--tw-text-opacity: 1;color:rgb(var(--foreground-rgb) / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{--tw-text-opacity: 1;color:rgb(var(--muted-foreground-rgb) / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(var(--primary-rgb) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width: 768px){.md\:bottom-10{bottom:2.5rem}.md\:right-4{right:1rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-\[360px\]{width:360px}.md\:w-\[420px\]{width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-4{gap:1rem}.md\:p-5{padding:1.25rem}.md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:pb-0{padding-bottom:0}}@media (min-width: 1024px){.lg\:grid-cols-\[160px_minmax\(0\,1fr\)_170px\]{grid-template-columns:160px minmax(0,1fr) 170px}.lg\:grid-cols-\[1fr_220px\]{grid-template-columns:1fr 220px}.lg\:grid-rows-\[auto_minmax\(180px\,0\.7fr\)_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(180px,.7fr) minmax(0,1fr)}}@media (min-width: 1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}}
|