cogpit 2.6.0 → 2.6.5
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/cli.js +2323 -2393
- package/dist/web/assets/{CommandPaletteHost-DfaMCzBW.js → CommandPaletteHost-DrCXDZkP.js} +1 -1
- package/dist/web/assets/{ConfigBrowser-CYyPu1XZ.js → ConfigBrowser-B3IvCBt5.js} +1 -1
- package/dist/web/assets/{HighlightedEditor-D0E4fNIR.js → HighlightedEditor-Cm-79JuL.js} +1 -1
- package/dist/web/assets/{KeyboardShortcutsDialog-Cmk72Wcu.js → KeyboardShortcutsDialog-DKPBP4Tr.js} +1 -1
- package/dist/web/assets/{MobileFileChanges-B5e6WRrN.js → MobileFileChanges-B2aGoWIm.js} +1 -1
- package/dist/web/assets/{PreviewPanel-L5TxNJuc.js → PreviewPanel-Bo7DnIca.js} +1 -1
- package/dist/web/assets/ProjectFilesPanel-BURFV70d.js +4 -0
- package/dist/web/assets/{ProjectSwitcherModal-D37bS3Y8.js → ProjectSwitcherModal-lncPQd9P.js} +1 -1
- package/dist/web/assets/{TerminalOutput-qo7CUaKh.js → TerminalOutput-fFrlHJcb.js} +1 -1
- package/dist/web/assets/{ThemeSelectorModal-DeKpqiLO.js → ThemeSelectorModal-E23TFwmi.js} +1 -1
- package/dist/web/assets/WorkflowsPanel-dlTy3KtX.js +1 -0
- package/dist/web/assets/WorktreePanel-psgNQDIs.js +1 -0
- package/dist/web/assets/{index-C1O8__7w.js → index-BtpxC457.js} +1 -1
- package/dist/web/assets/index-C-D_sWB4.js +1 -0
- package/dist/web/assets/{index-aYw7Kb2u.js → index-CImOF4Hf.js} +1 -1
- package/dist/web/assets/index-CriFWu3H.js +1 -0
- package/dist/web/assets/index-DOkVkYA9.js +157 -0
- package/dist/web/assets/index-DpPYXAB1.css +1 -0
- package/dist/web/assets/session-parser.worker-DlF00ZHH.js +29 -0
- package/dist/web/assets/vendor-ui-DpPWL3l4.js +922 -0
- package/dist/web/index.html +3 -3
- package/package.json +1 -1
- package/dist/web/assets/ProjectFilesPanel-9mVexNJQ.js +0 -4
- package/dist/web/assets/WorkflowsPanel-Dvy1NPzW.js +0 -1
- package/dist/web/assets/WorktreePanel-DJdlsguj.js +0 -1
- package/dist/web/assets/index-BnTYSkBh.css +0 -1
- package/dist/web/assets/index-CdXCbj1g.js +0 -157
- package/dist/web/assets/index-CyRmDc3P.js +0 -1
- package/dist/web/assets/index-vzYZixNy.js +0 -1
- package/dist/web/assets/session-parser.worker-CnmfpqaO.js +0 -29
- package/dist/web/assets/vendor-ui-CevbH8m5.js +0 -907
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as Y,j as t,r as v}from"./vendor-react-gGw_S5I_.js";import{_ as Ye,V as le,aY as Ee,aZ as J,m as dt,n as ut,I as ft,W as Ct,X as _t,a_ as $t,B as ce,a$ as mt,w as Ie,b0 as ht,a6 as xt,a7 as pt,a9 as gt,b1 as nt,b2 as bt,a4 as et,b3 as At,aq as Et,ar as zt,b4 as jt,i as Tt,j as It,k as Dt,b5 as Pt,U as Lt,aF as Ft,h as Rt,D as Ut}from"./index-DOkVkYA9.js";import{a7 as Bt,a8 as Ot,a9 as Mt,aa as Vt,e as Ht,T as Gt,M as Wt,ab as Xt,ac as qt,ad as Kt,a2 as vt,C as wt,ae as it,af as Jt,F as Yt,y as Zt,ag as Qt,D as es,ah as ts,ai as ss}from"./vendor-ui-DpPWL3l4.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";function ns(s){const e=Y.c(11);let n,a,i;e[0]!==s?({className:n,size:i,...a}=s,e[0]=s,e[1]=n,e[2]=a,e[3]=i):(n=e[1],a=e[2],i=e[3]);const r=i===void 0?"default":i;let l;e[4]!==n?(l=Ye("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",n),e[4]=n,e[5]=l):l=e[5];let f;e[6]===Symbol.for("react.memo_cache_sentinel")?(f=t.jsx(Ot,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"}),e[6]=f):f=e[6];let c;return e[7]!==a||e[8]!==r||e[9]!==l?(c=t.jsx(Bt,{"data-slot":"switch","data-size":r,className:l,...a,children:f}),e[7]=a,e[8]=r,e[9]=l,e[10]=c):c=e[10],c}function as(s){const e=Y.c(3),{name:n}=s,a=n.toLowerCase();if(a.includes("iphone")||a.includes("android")){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(Ht,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=r):r=e[0],r}if(a.includes("ipad")||a.includes("tablet")){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(Gt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[1]=r):r=e[1],r}let i;return e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Wt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[2]=i):i=e[2],i}function at(s){const e=Math.floor((Date.now()-s)/1e3);if(e<60)return"just now";const n=Math.floor(e/60);if(n<60)return`${n}m ago`;const a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function is(s){const e=[`Shared ${at(s.createdAt)}`,s.lastAccessAt>0?`opened ${at(s.lastAccessAt)}`:"never opened"];return s.guests>0&&e.push(s.guests===1?"1 guest":`${s.guests} guests`),e.join(" · ")}function ls(){const s=Y.c(12),{shares:e,revoke:n,revokeAll:a}=$t();let i;s[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx("p",{className:"text-xs text-muted-foreground",children:"Shared sessions"}),s[0]=i):i=s[0];let r;s[1]!==a||s[2]!==e.length?(r=e.length>0&&t.jsx(ce,{variant:"ghost",size:"xs",className:"text-destructive hover:text-destructive",onClick:()=>void a(),children:"Revoke all"}),s[1]=a,s[2]=e.length,s[3]=r):r=s[3];let l;s[4]!==r?(l=t.jsxs("div",{className:"flex h-6 items-center justify-between",children:[i,r]}),s[4]=r,s[5]=l):l=s[5];let f;s[6]!==n||s[7]!==e?(f=e.length===0?t.jsx("p",{className:"text-xs text-muted-foreground",children:"No sessions are shared."}):t.jsx("div",{className:"flex flex-col gap-1.5",children:e.map(o=>{const m=o.title||o.sessionId;return t.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"truncate text-sm text-foreground",children:m}),t.jsx("p",{className:"text-xs text-muted-foreground",children:is(o)})]}),t.jsx(ce,{variant:"ghost",size:"xs","aria-label":`Revoke share of ${m}`,className:"text-destructive hover:text-destructive",onClick:()=>void n(o.sessionId),children:"Revoke"})]},o.sessionId)})}),s[6]=n,s[7]=e,s[8]=f):f=s[8];let c;return s[9]!==l||s[10]!==f?(c=t.jsxs("div",{className:"flex flex-col gap-2",children:[l,f]}),s[9]=l,s[10]=f,s[11]=c):c=s[11],c}function rs(s){const e=Y.c(30),{networkAccess:n,setNetworkAccess:a,networkPassword:i,setNetworkPassword:r,showNetworkPassword:l,setShowNetworkPassword:f,hasExistingPassword:c,initialNetworkAccess:o,connectedDevices:m,minPasswordLength:j}=s;let x;e[0]!==n?(x=n?t.jsx(Xt,{"data-icon":"inline-start",className:"size-4 text-success"}):t.jsx(qt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[0]=n,e[1]=x):x=e[1];let b;e[2]===Symbol.for("react.memo_cache_sentinel")?(b=t.jsxs("div",{children:[t.jsx("p",{className:"text-sm font-medium text-foreground",children:"Network Access"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Allow other devices to connect"})]}),e[2]=b):b=e[2];let y;e[3]!==x?(y=t.jsxs("div",{className:"flex items-center gap-2",children:[x,b]}),e[3]=x,e[4]=y):y=e[4];let C;e[5]!==a?(C=_=>a(_),e[5]=a,e[6]=C):C=e[6];let w;e[7]!==n||e[8]!==C?(w=t.jsx(ns,{"aria-label":"Network Access",checked:n,onCheckedChange:C}),e[7]=n,e[8]=C,e[9]=w):w=e[9];let N;e[10]!==y||e[11]!==w?(N=t.jsxs("div",{className:"flex items-center justify-between",children:[y,w]}),e[10]=y,e[11]=w,e[12]=N):N=e[12];let p;e[13]!==c||e[14]!==j||e[15]!==n||e[16]!==i||e[17]!==r||e[18]!==f||e[19]!==l?(p=n&&t.jsxs(le,{"data-invalid":i.length>0&&i.length<j,children:[t.jsx(Ee,{htmlFor:"network-password",children:"Password"}),t.jsx(J,{children:c&&i.length===0?"A password is already set. Leave blank to keep it.":`Use at least ${j} characters.`}),t.jsxs(dt,{children:[t.jsx(ut,{id:"network-password",type:l?"text":"password",value:i,onChange:_=>r(_.target.value),placeholder:c?"Enter new password to change":"Set a password for remote access"}),t.jsx(ft,{align:"inline-end",children:t.jsx(Ct,{size:"icon-xs","aria-label":l?"Hide password":"Show password",onClick:()=>f(!l),children:l?t.jsx(Mt,{"data-icon":"inline-start"}):t.jsx(Vt,{"data-icon":"inline-start"})})})]}),i.length>0&&i.length<j&&t.jsxs(_t,{children:["Password must be at least ",j," characters (",i.length,"/",j,")"]}),t.jsx(J,{children:"Requires app restart. Remote browsers need an HTTPS reverse proxy; port 19384 remains available to Cogpit hubs and device clients."})]}),e[13]=c,e[14]=j,e[15]=n,e[16]=i,e[17]=r,e[18]=f,e[19]=l,e[20]=p):p=e[20];let u;e[21]!==m||e[22]!==o||e[23]!==n?(u=n&&o&&m.length>0&&t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("p",{className:"text-xs text-muted-foreground",children:"Connected devices"}),t.jsx("div",{className:"flex flex-col gap-1.5",children:m.map(os)})]}),e[21]=m,e[22]=o,e[23]=n,e[24]=u):u=e[24];let S;e[25]===Symbol.for("react.memo_cache_sentinel")?(S=t.jsx(ls,{}),e[25]=S):S=e[25];let h;return e[26]!==N||e[27]!==p||e[28]!==u?(h=t.jsxs("div",{className:"flex flex-col gap-4 border-t pt-5",children:[N,p,u,S]}),e[26]=N,e[27]=p,e[28]=u,e[29]=h):h=e[29],h}function os(s,e){return t.jsxs("div",{className:"flex items-center justify-between rounded-lg border px-3 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2.5",children:[t.jsx(as,{name:s.deviceName}),t.jsxs("div",{children:[t.jsx("p",{className:"text-sm text-foreground",children:s.deviceName}),t.jsx("p",{className:"text-xs text-muted-foreground",children:s.ip})]})]}),t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx("span",{className:"size-1.5 rounded-full bg-success"}),t.jsx("span",{className:"text-xs text-muted-foreground",children:at(s.lastActivity)})]})]},`${s.ip}-${e}`)}const cs=["auto","path","npm","bundled","custom"],tt={source:"auto"},ds=["path","npm","bundled"];function us(s){return cs.includes(s)}function fs(s){if(!s||typeof s!="object")return;const{source:e,path:n}=s;if(!(!us(e)||e==="auto"))return e==="custom"?typeof n=="string"&&n.trim()?{source:e,path:n.trim()}:void 0:{source:e}}const Te={auto:"Automatic",path:"Installed on PATH",npm:"Global npm install",bundled:"Bundled with Cogpit",custom:"Custom path"};function Nt(s,e){return e?`v${e} · ${s}`:s}function ms(s,e){return s===null?"Checking installed binaries…":e?e.version===null?`${e.path} did not report a version — check the path.`:`Now running: ${Nt(e.path,e.version)}`:"No launchable binary for the saved choice — sessions cannot start."}function hs(s){return s!==null&&s.version!==null}function xs(s){const e=Y.c(92),{kind:n,value:a,onChange:i,disabled:r,reportVersion:l}=s;let f;e[0]!==n?(f=mt(n),e[0]=n,e[1]=f):f=e[1];const{displayName:c}=f,[o,m]=v.useState(null),[j,x]=v.useState(!1),b=`agent-executable-${n}`;let y;e[2]!==n?(y=()=>{let I=!1;return Ie(`/api/agent-executable/${n}`).then(bs).then(te=>{I||m(te)}).catch(gs),()=>{I=!0}},e[2]=n,e[3]=y):y=e[3];let C;e[4]!==n||e[5]!==l?(C=[n,l],e[4]=n,e[5]=l,e[6]=C):C=e[6],v.useEffect(y,C);let w,N,p,u,S,h,_,z,T,k,$,D,g;if(e[7]!==r||e[8]!==c||e[9]!==b||e[10]!==i||e[11]!==j||e[12]!==(o==null?void 0:o.active)||e[13]!==(o==null?void 0:o.candidates)||e[14]!==a.path||e[15]!==a.source){const I=new Map((o==null?void 0:o.candidates.map(ps))??[]);u=(o==null?void 0:o.active)??null;let te;e[29]!==r||e[30]!==b||e[31]!==i||e[32]!==a.path||e[33]!==a.source?(te=(L,B,ae,oe)=>{const lt=oe===void 0?!0:oe,K=`${b}-${L}`;return t.jsxs(le,{orientation:"horizontal",children:[t.jsx("input",{type:"radio",id:K,name:b,className:"mt-1 size-4 shrink-0 accent-primary",checked:a.source===L,disabled:r||!lt,onChange:()=>i(L==="custom"?{source:L,path:a.path??""}:{source:L})}),t.jsxs(ht,{children:[t.jsx(Ee,{htmlFor:K,children:B}),t.jsx(J,{className:"break-all",children:ae})]})]},L)},e[29]=r,e[30]=b,e[31]=i,e[32]=a.path,e[33]=a.source,e[34]=te):te=e[34],S=te;const se=L=>{const B=I.get(L);return S(L,Te[L],B?Nt(B.path,B.version):"Not found on this machine.",B!==void 0||a.source===L)},ze=u?`${Te[a.source]} · v${u.version??"?"}`:Te[a.source];p=xt,D=j,g=x,h="flex flex-col gap-2";let X;e[35]===Symbol.for("react.memo_cache_sentinel")?(X=t.jsx(ce,{type:"button",variant:"ghost",className:"h-auto w-full justify-between px-0 font-medium hover:bg-transparent"}),e[35]=X):X=e[35];let ne;e[36]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx(Kt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[36]=ne):ne=e[36];let q;e[37]!==c?(q=t.jsxs("span",{className:"flex items-center gap-2",children:[ne,c," executable"]}),e[37]=c,e[38]=q):q=e[38];let F;e[39]!==ze?(F=t.jsx("span",{className:"truncate",children:ze}),e[39]=ze,e[40]=F):F=e[40];let R;e[41]!==j?(R=j?t.jsx(vt,{className:"size-4 shrink-0"}):t.jsx(wt,{className:"size-4 shrink-0"}),e[41]=j,e[42]=R):R=e[42];let U;e[43]!==F||e[44]!==R?(U=t.jsxs("span",{className:"flex min-w-0 items-center gap-1 text-xs font-normal text-muted-foreground",children:[F,R]}),e[43]=F,e[44]=R,e[45]=U):U=e[45],e[46]!==q||e[47]!==U?(_=t.jsxs(pt,{render:X,children:[q,U]}),e[46]=q,e[47]=U,e[48]=_):_=e[48],N=gt,w=le,e[49]===Symbol.for("react.memo_cache_sentinel")?($=t.jsx(J,{children:"Which binary new sessions run. Automatic uses your installed CLI unless it is older than the copy bundled with Cogpit."}),e[49]=$):$=e[49],z="flex flex-col gap-2 pl-1",e[50]!==S?(T=S("auto",Te.auto,"Recommended."),e[50]=S,e[51]=T):T=e[51],k=ds.map(se),e[7]=r,e[8]=c,e[9]=b,e[10]=i,e[11]=j,e[12]=o==null?void 0:o.active,e[13]=o==null?void 0:o.candidates,e[14]=a.path,e[15]=a.source,e[16]=w,e[17]=N,e[18]=p,e[19]=u,e[20]=S,e[21]=h,e[22]=_,e[23]=z,e[24]=T,e[25]=k,e[26]=$,e[27]=D,e[28]=g}else w=e[16],N=e[17],p=e[18],u=e[19],S=e[20],h=e[21],_=e[22],z=e[23],T=e[24],k=e[25],$=e[26],D=e[27],g=e[28];const P=`${c} executable path`,H=a.source==="custom"?a.path??"":"",re=r||a.source!=="custom";let Z;e[52]!==i?(Z=I=>i({source:"custom",path:I.target.value}),e[52]=i,e[53]=Z):Z=e[53];let A;e[54]!==P||e[55]!==H||e[56]!==re||e[57]!==Z?(A=t.jsx(nt,{"aria-label":P,value:H,placeholder:"/path/to/binary",disabled:re,onChange:Z,className:"mt-1"}),e[54]=P,e[55]=H,e[56]=re,e[57]=Z,e[58]=A):A=e[58];let G;e[59]!==S||e[60]!==A?(G=S("custom",Te.custom,A),e[59]=S,e[60]=A,e[61]=G):G=e[61];let O;e[62]!==G||e[63]!==z||e[64]!==T||e[65]!==k?(O=t.jsxs("div",{className:z,children:[T,k,G]}),e[62]=G,e[63]=z,e[64]=T,e[65]=k,e[66]=O):O=e[66];let Q;e[67]!==u?(Q=hs(u)?"text-muted-foreground":"text-destructive",e[67]=u,e[68]=Q):Q=e[68];let E;e[69]!==Q?(E=Ye("text-xs",Q),e[69]=Q,e[70]=E):E=e[70];let W;e[71]!==u||e[72]!==o?(W=ms(o,u),e[71]=u,e[72]=o,e[73]=W):W=e[73];let M;e[74]!==E||e[75]!==W?(M=t.jsx("p",{className:E,"aria-live":"polite",children:W}),e[74]=E,e[75]=W,e[76]=M):M=e[76];let ee;e[77]!==w||e[78]!==O||e[79]!==M||e[80]!==$?(ee=t.jsxs(w,{children:[$,O,M]}),e[77]=w,e[78]=O,e[79]=M,e[80]=$,e[81]=ee):ee=e[81];let V;e[82]!==N||e[83]!==ee?(V=t.jsx(N,{children:ee}),e[82]=N,e[83]=ee,e[84]=V):V=e[84];let de;return e[85]!==p||e[86]!==h||e[87]!==_||e[88]!==V||e[89]!==D||e[90]!==g?(de=t.jsxs(p,{open:D,onOpenChange:g,className:h,children:[_,V]}),e[85]=p,e[86]=h,e[87]=_,e[88]=V,e[89]=D,e[90]=g,e[91]=de):de=e[91],de}function ps(s){return[s.source,s]}function gs(){}function bs(s){return s.ok?s.json():null}function St(s){return s instanceof Error?s.message:String(s)}async function rt(s){try{const e=await Ie(`/api/agent-accounts/${s}`);return e.status===404?{status:"missing"}:e.ok?await e.json():{status:"error",error:await bt(e,`Request failed (${e.status})`)}}catch(e){return{status:"error",error:St(e)}}}function js(s){const[e,n]=v.useState(null),[a,i]=v.useState(null),[r,l]=v.useState(null);v.useEffect(()=>{let c=!1;return rt(s).then(o=>{c||n(o)}),()=>{c=!0}},[s]);const f=v.useCallback(async c=>{i(c),l(null);try{const o=await Ie(`/api/agent-accounts/${s}/switch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slot:c})});if(!o.ok){l({kind:"failed",error:await bt(o,`Request failed (${o.status})`)});return}l({kind:"switched",result:await o.json()}),n(await rt(s))}catch(o){l({kind:"failed",error:St(o)})}finally{i(null)}},[s]);return{report:e,switchingSlot:a,outcome:r,switchTo:f}}const vs={token_expired:"Token expired",relogin_required:"Login needed",no_credentials:"No credentials",keychain_unavailable:"Keychain locked",foreign_credential:"Credential mismatch",api_key:"API key",unavailable:"Usage unavailable"};function st(s){return s.alias??s.email}function ot(s){const e=Y.c(18),{label:n,window:a}=s;if(!a)return null;const i=a.pct>=80,r=a.resetsIn?`${n} window resets in ${a.resetsIn}`:void 0;let l;e[0]!==n?(l=t.jsx("span",{className:"w-5",children:n}),e[0]=n,e[1]=l):l=e[1];const f=i?"bg-destructive":"bg-primary";let c;e[2]!==f?(c=Ye("absolute inset-y-0 left-0 rounded-full",f),e[2]=f,e[3]=c):c=e[3];const o=`${a.pct}%`;let m;e[4]!==o?(m={width:o},e[4]=o,e[5]=m):m=e[5];let j;e[6]!==c||e[7]!==m?(j=t.jsx("span",{className:"relative h-1 w-16 overflow-hidden rounded-full bg-muted",children:t.jsx("span",{className:c,style:m})}),e[6]=c,e[7]=m,e[8]=j):j=e[8];let x;e[9]!==a.pct?(x=Math.round(a.pct),e[9]=a.pct,e[10]=x):x=e[10];let b;e[11]!==x?(b=t.jsxs("span",{className:"tabular-nums",children:[x,"%"]}),e[11]=x,e[12]=b):b=e[12];let y;return e[13]!==r||e[14]!==l||e[15]!==j||e[16]!==b?(y=t.jsxs("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",title:r,children:[l,j,b]}),e[13]=r,e[14]=l,e[15]=j,e[16]=b,e[17]=y):y=e[17],y}function ct(s){return/[.!?]$/.test(s)?s:`${s}.`}function ws(s,e){if(s.kind==="failed")return`Switch failed: ${s.error}`;const{result:n}=s,a=[ct(n.message)];return n.switched&&a.push(n.credentialStore==="keychain"?`Running ${e} sessions pick it up within about 30 seconds; restart one to apply it immediately.`:`New messages in ${e} use it from now on.`),[...a,...n.warnings.map(ct)].join(" ")}function Ns(s){const e=Y.c(41),{kind:n,disabled:a}=s;let i;e[0]!==n?(i=mt(n),e[0]=n,e[1]=i):i=e[1];const{displayName:r}=i,{report:l,switchingSlot:f,outcome:c,switchTo:o}=js(n),[m,j]=v.useState(!1);if(l===null||l.status==="missing")return null;let x,b;if(e[2]!==l.accounts||e[3]!==l.status){x=l.status==="ok"?l.accounts:[];const g=x.find(Ss)??null;b=l.status==="error"?"Unavailable":g?`${st(g)} · ${x.length} account${x.length===1?"":"s"}`:`${x.length} account${x.length===1?"":"s"}`,e[2]=l.accounts,e[3]=l.status,e[4]=x,e[5]=b}else x=e[4],b=e[5];const y=b;let C;e[6]===Symbol.for("react.memo_cache_sentinel")?(C=t.jsx(ce,{type:"button",variant:"ghost",className:"h-auto w-full justify-between px-0 font-medium hover:bg-transparent"}),e[6]=C):C=e[6];let w;e[7]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx(Jt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),e[7]=w):w=e[7];let N;e[8]!==r?(N=t.jsxs("span",{className:"flex items-center gap-2",children:[w,r," accounts"]}),e[8]=r,e[9]=N):N=e[9];let p;e[10]!==y?(p=t.jsx("span",{className:"truncate",children:y}),e[10]=y,e[11]=p):p=e[11];let u;e[12]!==m?(u=m?t.jsx(vt,{className:"size-4 shrink-0"}):t.jsx(wt,{className:"size-4 shrink-0"}),e[12]=m,e[13]=u):u=e[13];let S;e[14]!==p||e[15]!==u?(S=t.jsxs("span",{className:"flex min-w-0 items-center gap-1 text-xs font-normal text-muted-foreground",children:[p,u]}),e[14]=p,e[15]=u,e[16]=S):S=e[16];let h;e[17]!==N||e[18]!==S?(h=t.jsxs(pt,{render:C,children:[N,S]}),e[17]=N,e[18]=S,e[19]=h):h=e[19];const _=l.status==="ok"&&`Logins managed by ${l.tool}${l.version?` ${l.version}`:""}. `;let z;e[20]!==r||e[21]!==_?(z=t.jsxs(J,{children:[_,"Switching changes which login ",r," sessions authenticate with."]}),e[20]=r,e[21]=_,e[22]=z):z=e[22];let T;e[23]!==x||e[24]!==a||e[25]!==l.error||e[26]!==l.status||e[27]!==o||e[28]!==f?(T=l.status==="error"?t.jsx("p",{className:"text-xs text-destructive",role:"alert",children:l.error}):t.jsx("ul",{className:"flex flex-col divide-y divide-border rounded-md border border-border",children:x.map(g=>{const P=f===g.slot,H=vs[g.usageStatus];return t.jsxs("li",{className:"flex items-center gap-3 px-3 py-2",children:[t.jsx("span",{className:"w-5 shrink-0 text-xs tabular-nums text-muted-foreground",children:g.slot}),t.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[t.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[t.jsx("span",{className:"truncate text-sm font-medium",children:st(g)}),g.alias&&t.jsx("span",{className:"truncate text-xs text-muted-foreground",children:g.email}),g.active&&t.jsx(et,{children:"Active"}),g.disabled&&t.jsx(et,{variant:"outline",children:"Disabled"}),H&&t.jsx(et,{variant:"destructive",children:H})]}),g.organization&&t.jsx("span",{className:"truncate text-xs text-muted-foreground",children:g.organization}),g.usage&&t.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:[t.jsx(ot,{label:"5h",window:g.usage.fiveHour}),t.jsx(ot,{label:"7d",window:g.usage.sevenDay})]})]}),!a&&!g.active&&t.jsx(ce,{type:"button",size:"sm",variant:"outline",disabled:f!==null,onClick:()=>o(g.slot),"aria-label":`Switch to ${st(g)}`,children:P?t.jsxs(t.Fragment,{children:[t.jsx(it,{"data-icon":"inline-start",className:"size-3.5 animate-spin"}),"Switching…"]}):"Switch"})]},g.slot)})}),e[23]=x,e[24]=a,e[25]=l.error,e[26]=l.status,e[27]=o,e[28]=f,e[29]=T):T=e[29];let k;e[30]!==r||e[31]!==c?(k=c&&t.jsx("p",{className:Ye("text-xs",c.kind==="failed"?"text-destructive":"text-muted-foreground"),"aria-live":"polite",role:c.kind==="failed"?"alert":"status",children:ws(c,r)}),e[30]=r,e[31]=c,e[32]=k):k=e[32];let $;e[33]!==z||e[34]!==T||e[35]!==k?($=t.jsx(gt,{children:t.jsxs(le,{children:[z,T,k]})}),e[33]=z,e[34]=T,e[35]=k,e[36]=$):$=e[36];let D;return e[37]!==m||e[38]!==$||e[39]!==h?(D=t.jsxs(xt,{open:m,onOpenChange:j,className:"flex flex-col gap-2",children:[h,$]}),e[37]=m,e[38]=$,e[39]=h,e[40]=D):D=e[40],D}function Ss(s){return s.active}const ys=jt().filter(s=>s.cli.bundledBySdk).map(s=>s.kind),ks=jt().filter(s=>s.capabilities.accountSwitching).map(s=>s.kind);function Cs(s,e){return s.source===e.source&&(s.source!=="custom"||s.path===e.path)}function _s(s){const e=Y.c(5),{status:n,error:a}=s;if(n==="validating"){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[t.jsx(it,{"data-icon":"inline-start",className:"size-3.5 animate-spin"}),"Checking path..."]}),e[0]=i):i=e[0],i}if(n==="valid"){let i;return e[1]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-success",children:[t.jsx(ts,{"data-icon":"inline-start",className:"size-3.5"}),"Valid .claude directory found"]}),e[1]=i):i=e[1],i}if(n==="invalid"&&a){let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(ss,{"data-icon":"inline-start",className:"size-3.5"}),e[2]=i):i=e[2];let r;return e[3]!==a?(r=t.jsxs("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[i,a]}),e[3]=a,e[4]=r):r=e[4],r}return null}function Rs(s){const e=Y.c(110),{open:n,currentPath:a,onClose:i,onSaved:r}=s,[l,f]=v.useState(a),[c,o]=v.useState(!1),{status:m,error:j,debouncedValidate:x,reset:b,save:y}=At();let C;e[0]===Symbol.for("react.memo_cache_sentinel")?(C=Et(),e[0]=C):C=e[0];const w=C;let N;e[1]===Symbol.for("react.memo_cache_sentinel")?(N=zt("configWrite"),e[1]=N):N=e[1];const p=N,[u,S]=v.useState(!1),[h,_]=v.useState(""),[z,T]=v.useState(!1),[k,$]=v.useState(""),[D,g]=v.useState(""),[P,H]=v.useState(""),[re,Z]=v.useState(""),[A,G]=v.useState(!1),[O,Q]=v.useState(!1),[E,W]=v.useState(tt),[M,ee]=v.useState(0),[V,de]=v.useState(tt),[I,te]=v.useState(!1),[se,ze]=v.useState(!1);let X;e[2]===Symbol.for("react.memo_cache_sentinel")?(X=[],e[2]=X):X=e[2];const[ne,q]=v.useState(X);let F,R;e[3]!==a||e[4]!==n||e[5]!==b?(F=()=>{n&&(f(a),b(),Ie("/api/config").then(Ts).then(d=>{const ie=(d==null?void 0:d.networkAccess)||!1;S(ie),te(ie),ze(!!(d!=null&&d.networkPassword)),_("");const Xe=(d==null?void 0:d.terminalApp)||"";$(Xe),g(Xe);const qe=(d==null?void 0:d.editorApp)||"";H(qe),Z(qe);const Ke=(d==null?void 0:d.useBuiltInEditor)===!0;G(Ke),Q(Ke);const Je=fs(d==null?void 0:d.agentExecutable)??tt;W(Je),de(Je),ie&&(d!=null&&d.networkPassword)&&!w?Ie("/api/connected-devices").then(zs).then(Ae=>q((Ae==null?void 0:Ae.devices)||[])).catch(Es):q([])}).catch(As))},R=[n,a,b,w],e[3]=a,e[4]=n,e[5]=b,e[6]=F,e[7]=R):(F=e[6],R=e[7]),v.useEffect(F,R);let U;e[8]!==x?(U=d=>{const ie=d.target.value;f(ie),x(ie)},e[8]=x,e[9]=U):U=e[9];const L=U;let B;e[10]!==E||e[11]!==P||e[12]!==I||e[13]!==u||e[14]!==h||e[15]!==r||e[16]!==l||e[17]!==y||e[18]!==k||e[19]!==A?(B=async()=>{o(!0);const d=await y(l,{networkAccess:w?I:u,networkPassword:!w&&u&&h.length>0?h:void 0,terminalApp:k.trim()||void 0,editorApp:P.trim()||void 0,useBuiltInEditor:A,agentExecutable:E});d.success&&d.claudeDir&&(ee($s),r(d.claudeDir)),o(!1)},e[10]=E,e[11]=P,e[12]=I,e[13]=u,e[14]=h,e[15]=r,e[16]=l,e[17]=y,e[18]=k,e[19]=A,e[20]=B):B=e[20];const ae=B;let oe;e[21]!==E||e[22]!==P||e[23]!==se||e[24]!==V||e[25]!==re||e[26]!==I||e[27]!==D||e[28]!==O||e[29]!==u||e[30]!==h||e[31]!==m||e[32]!==k||e[33]!==A?(oe=function(){var Ae;if(m==="validating"||m==="invalid")return!1;const ie=m==="valid",Xe=!w&&(u!==I||u&&h.length>0),qe=k!==D,Ke=P!==re||A!==O,Je=!Cs(E,V);if(!ie&&!Xe&&!qe&&!Ke&&!Je||E.source==="custom"&&!((Ae=E.path)!=null&&Ae.trim()))return!1;if(!w&&u){const yt=h.length>0&&h.length<16,kt=!se&&h.length===0;if(yt||kt)return!1}return!0},e[21]=E,e[22]=P,e[23]=se,e[24]=V,e[25]=re,e[26]=I,e[27]=D,e[28]=O,e[29]=u,e[30]=h,e[31]=m,e[32]=k,e[33]=A,e[34]=oe):oe=e[34];const K=oe();let ue;e[35]!==i?(ue=d=>{d||i()},e[35]=i,e[36]=ue):ue=e[36];let De;e[37]===Symbol.for("react.memo_cache_sentinel")?(De=t.jsxs(Tt,{children:[t.jsx(It,{className:"text-foreground",children:"Configuration"}),t.jsx(Dt,{className:"text-muted-foreground",children:"Manage local paths, preferred apps, and remote access."})]}),e[37]=De):De=e[37];let Pe,Le;e[38]===Symbol.for("react.memo_cache_sentinel")?(Pe=t.jsx(Ee,{htmlFor:"claude-directory",children:"Claude directory"}),Le=t.jsx(J,{children:"The directory containing your Claude configuration."}),e[38]=Pe,e[39]=Le):(Pe=e[38],Le=e[39]);let Fe;e[40]===Symbol.for("react.memo_cache_sentinel")?(Fe=t.jsx(ft,{children:t.jsx(Yt,{"data-icon":"inline-start"})}),e[40]=Fe):Fe=e[40];let fe;e[41]!==K||e[42]!==ae||e[43]!==c?(fe=d=>{d.key==="Enter"&&K&&!c&&ae()},e[41]=K,e[42]=ae,e[43]=c,e[44]=fe):fe=e[44];let me;e[45]!==L||e[46]!==l||e[47]!==fe?(me=t.jsxs(dt,{children:[Fe,t.jsx(ut,{id:"claude-directory",value:l,onChange:L,placeholder:"/Users/you/.claude",disabled:!p,onKeyDown:fe})]}),e[45]=L,e[46]=l,e[47]=fe,e[48]=me):me=e[48];let he;e[49]!==j||e[50]!==m?(he=t.jsx("div",{"aria-live":"polite",children:t.jsx(_s,{status:m,error:j})}),e[49]=j,e[50]=m,e[51]=he):he=e[51];let xe;e[52]!==me||e[53]!==he?(xe=t.jsxs(le,{children:[Pe,Le,me,he]}),e[52]=me,e[53]=he,e[54]=xe):xe=e[54];let Re,Ue;e[55]===Symbol.for("react.memo_cache_sentinel")?(Re=t.jsxs(Ee,{htmlFor:"terminal-application",children:[t.jsx(Zt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Terminal application"]}),Ue=t.jsx(J,{children:"Leave blank to use the system default for Ctrl+Cmd+T."}),e[55]=Re,e[56]=Ue):(Re=e[55],Ue=e[56]);let Be;e[57]===Symbol.for("react.memo_cache_sentinel")?(Be=d=>$(d.target.value),e[57]=Be):Be=e[57];let pe;e[58]!==k?(pe=t.jsxs(le,{children:[Re,Ue,t.jsx(nt,{id:"terminal-application",value:k,onChange:Be,placeholder:"Ghostty, iTerm, or /path/to/binary",disabled:!p})]}),e[58]=k,e[59]=pe):pe=e[59];let Oe;e[60]===Symbol.for("react.memo_cache_sentinel")?(Oe=d=>G(d===!0),e[60]=Oe):Oe=e[60];let ge;e[61]!==A?(ge=t.jsx(Pt,{id:"use-built-in-editor",checked:A,onCheckedChange:Oe,disabled:!p}),e[61]=A,e[62]=ge):ge=e[62];let Me;e[63]===Symbol.for("react.memo_cache_sentinel")?(Me=t.jsxs(ht,{children:[t.jsxs(Ee,{htmlFor:"use-built-in-editor",children:[t.jsx(Qt,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Open files in Cogpit"]}),t.jsx(J,{children:"Files and diffs open in Cogpit’s file workspace instead of launching an external editor."})]}),e[63]=Me):Me=e[63];let be;e[64]!==ge?(be=t.jsxs(le,{orientation:"horizontal",children:[ge,Me]}),e[64]=ge,e[65]=be):be=e[65];let Ve;e[66]===Symbol.for("react.memo_cache_sentinel")?(Ve=t.jsxs(Ee,{htmlFor:"editor-application",children:[t.jsx(es,{"data-icon":"inline-start",className:"size-4 text-muted-foreground"}),"Editor application"]}),e[66]=Ve):Ve=e[66];const Ze=A?"Not used while files open in Cogpit.":"Leave blank to use $VISUAL or automatic detection.";let je;e[67]!==Ze?(je=t.jsx(J,{children:Ze}),e[67]=Ze,e[68]=je):je=e[68];let He;e[69]===Symbol.for("react.memo_cache_sentinel")?(He=d=>H(d.target.value),e[69]=He):He=e[69];const Qe=!p||A;let ve;e[70]!==P||e[71]!==Qe?(ve=t.jsx(nt,{id:"editor-application",value:P,onChange:He,placeholder:"cursor, code, zed, or /path/to/binary",disabled:Qe}),e[70]=P,e[71]=Qe,e[72]=ve):ve=e[72];let we;e[73]!==je||e[74]!==ve?(we=t.jsxs(le,{children:[Ve,je,ve]}),e[73]=je,e[74]=ve,e[75]=we):we=e[75];let Ne;e[76]!==E||e[77]!==M?(Ne=ys.map(d=>t.jsx(xs,{kind:d,value:E,onChange:W,disabled:!p,reportVersion:M},d)),e[76]=E,e[77]=M,e[78]=Ne):Ne=e[78];let Ge;e[79]===Symbol.for("react.memo_cache_sentinel")?(Ge=ks.map(d=>t.jsx(Ns,{kind:d,disabled:!p},d)),e[79]=Ge):Ge=e[79];let Se;e[80]!==ne||e[81]!==se||e[82]!==I||e[83]!==u||e[84]!==h||e[85]!==z?(Se=!w&&p&&t.jsx(rs,{networkAccess:u,setNetworkAccess:S,networkPassword:h,setNetworkPassword:_,showNetworkPassword:z,setShowNetworkPassword:T,hasExistingPassword:se,initialNetworkAccess:I,connectedDevices:ne,minPasswordLength:16}),e[80]=ne,e[81]=se,e[82]=I,e[83]=u,e[84]=h,e[85]=z,e[86]=Se):Se=e[86];let ye;e[87]!==xe||e[88]!==pe||e[89]!==be||e[90]!==we||e[91]!==Ne||e[92]!==Se?(ye=t.jsxs(Lt,{children:[xe,pe,be,we,Ne,Ge,Se]}),e[87]=xe,e[88]=pe,e[89]=be,e[90]=we,e[91]=Ne,e[92]=Se,e[93]=ye):ye=e[93];let ke;e[94]!==i?(ke=t.jsx(ce,{variant:"outline",onClick:i,children:"Cancel"}),e[94]=i,e[95]=ke):ke=e[95];let Ce;e[96]!==K||e[97]!==ae||e[98]!==c?(Ce=p&&t.jsx(ce,{disabled:!K||c,onClick:ae,children:c?t.jsxs(t.Fragment,{children:[t.jsx(it,{"data-icon":"inline-start",className:"size-4 animate-spin"}),"Saving..."]}):"Save"}),e[96]=K,e[97]=ae,e[98]=c,e[99]=Ce):Ce=e[99];let _e;e[100]!==ke||e[101]!==Ce?(_e=t.jsxs(Ft,{children:[ke,Ce]}),e[100]=ke,e[101]=Ce,e[102]=_e):_e=e[102];let $e;e[103]!==ye||e[104]!==_e?($e=t.jsxs(Rt,{className:"max-h-[calc(100dvh-2rem)] overflow-y-auto sm:max-w-lg",children:[De,ye,_e]}),e[103]=ye,e[104]=_e,e[105]=$e):$e=e[105];let We;return e[106]!==n||e[107]!==$e||e[108]!==ue?(We=t.jsx(Ut,{open:n,onOpenChange:ue,children:$e}),e[106]=n,e[107]=$e,e[108]=ue,e[109]=We):We=e[109],We}function $s(s){return s+1}function As(){}function Es(){}function zs(s){return s.json()}function Ts(s){return s.json()}export{Rs as ConfigDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as V,a as Ge,c as B,j as s}from"./vendor-react-gGw_S5I_.js";import{w as He,B as U,a$ as Ke,aQ as _e,A as qe,b2 as We,bg as Le,Z as ke,Y as ze,a4 as Te,bh as Xe,b6 as Ze,b5 as Je,b4 as et,bi as tt,bj as st,bk as nt,bl as it,_ as ue,bm as lt,a5 as ot,aB as at,bn as rt,bo as ct,bp as dt,v as ut,$ as ft,bq as mt,E as xt,y as ht,z as gt,G as pt,H as bt,al as jt,p as wt,br as vt,bs as Nt,q as yt}from"./index-CdXCbj1g.js";import{c as St,al as It,ar as Be,C as De,as as Se,ai as _t,at as qt,L as Ct,au as Tt,av as kt,b as At,N as Et}from"./vendor-ui-CevbH8m5.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";const Rt=4e3;function Mt(){const[l,e]=V.useState([]),[t,n]=V.useState(!1),[i,r]=V.useState(null),o=V.useRef(!1);V.useEffect(()=>(o.current=!1,()=>{o.current=!0}),[]);const c=V.useCallback(async()=>{try{const m=await He("/api/mission-control");if(o.current)return;if(!m.ok)throw new Error(`Mission Control request failed (${m.status})`);const x=await m.json();if(o.current)return;e(Array.isArray(x.summaries)?x.summaries:[]),r(null)}catch(m){if(o.current)return;r(m instanceof Error?m.message:"Failed to load Mission Control")}finally{o.current||n(!1)}},[]);V.useEffect(()=>{n(!0);const m=()=>{(typeof document>"u"||document.visibilityState==="visible")&&c()},x=()=>{document.visibilityState==="visible"&&c()};m();const j=setInterval(m,Rt);return document.addEventListener("visibilitychange",x),()=>{clearInterval(j),document.removeEventListener("visibilitychange",x)}},[c]);const d=V.useMemo(()=>{const m=new Map;for(const x of l)m.set(x.sessionId,x);return m},[l]),g=V.useCallback(()=>{c()},[c]);return{summaries:d,loading:t,error:i,refresh:g}}const Ae="data-view-transition-kind",Lt="(prefers-reduced-motion: reduce)";let de=null,Fe=null;function $t(l,e,t){t===null?l.removeAttribute(e):l.setAttribute(e,t)}function Dt(l,e){const t={root:l,kind:e,previousKind:l.getAttribute(Ae)};return l.setAttribute(Ae,e),Fe=t,t}function Ie(l){Fe===l&&(l.root.getAttribute(Ae)===l.kind&&$t(l.root,Ae,l.previousKind),Fe=null)}function Ft(){const l=de;if(l){de=null;try{l.transition.skipTransition()}catch{Ie(l.tag);return}Ie(l.tag)}}function zt(){if(typeof window>"u"||typeof window.matchMedia!="function")return!1;try{return window.matchMedia(Lt).matches}catch{return!1}}function Ot(l,{kind:e}){Ft();const t=typeof document>"u"?null:document,n=t==null?void 0:t.startViewTransition;if(!t||!(typeof n=="function")||zt())return l(),null;const r=Dt(t.documentElement,e);let o=!1,c=!1,d;const g=m=>{if(!o){o=!0;try{m?Ge.flushSync(l):l()}catch(x){throw c=!0,d=x,x}}};try{const m=n.call(t,()=>g(!0)),x={transition:m,tag:r};return de=x,m.ready.catch(()=>{}),m.updateCallbackDone.catch(()=>{}),m.finished.then(()=>{de===x&&(de=null),Ie(r)},()=>{de===x&&(de=null),Ie(r)}),m}catch{if(Ie(r),c)throw d;return g(!1),null}}function Vt(l){const e={};for(const t of l)t.type==="boolean"?e[t.name]=t.defaultValue===!0:t.defaultValue!==void 0?e[t.name]=String(t.defaultValue):e[t.name]="";return e}function Ut(l,e){const t={};for(const n of l){const i=e[n.name];if(typeof i=="boolean"){t[n.name]=i;continue}i!==""&&(t[n.name]=n.type==="number"||n.type==="integer"?Number(i):i)}return t}function Yt(l,e){return l.every(t=>{if(!t.required)return!0;const n=e[t.name];return typeof n=="boolean"?!0:n===""?!1:t.type==="number"||t.type==="integer"?Number.isFinite(Number(n)):!0})}function Bt(l){const e=B.c(64),{request:t,responding:n,onAnswer:i}=l;let r;e[0]!==t.fields?(r=()=>Vt(t.fields),e[0]=t.fields,e[1]=r):r=e[1];const[o,c]=V.useState(r);let d;e[2]!==t.fields||e[3]!==o?(d=Yt(t.fields,o),e[2]=t.fields,e[3]=o,e[4]=d):d=e[4];const g=d,m=t.displayName||t.title||t.serverName;let x;e[5]===Symbol.for("react.memo_cache_sentinel")?(x=(q,S)=>{c(w=>({...w,[q]:S}))},e[5]=x):x=e[5];const j=x;let p;e[6]!==i||e[7]!==t.requestId?(p=()=>i(t.requestId,{action:"decline"}),e[6]=i,e[7]=t.requestId,e[8]=p):p=e[8];const u=p;if(t.mode==="url"&&t.url){const q=t.url;let S;e[9]!==t.message?(S=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:t.message}),e[9]=t.message,e[10]=S):S=e[10];let w;e[11]!==q?(w=s.jsx("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",title:q,children:q}),e[11]=q,e[12]=w):w=e[12];let I;e[13]!==i||e[14]!==t.requestId||e[15]!==q?(I=()=>{window.open(q,"_blank","noopener,noreferrer"),i(t.requestId,{action:"accept"})},e[13]=i,e[14]=t.requestId,e[15]=q,e[16]=I):I=e[16];let z;e[17]===Symbol.for("react.memo_cache_sentinel")?(z=s.jsx(St,{"data-icon":"inline-end"}),e[17]=z):z=e[17];let L;e[18]!==n||e[19]!==I?(L=s.jsxs(U,{size:"sm",disabled:n,onClick:I,children:["Open link",z]}),e[18]=n,e[19]=I,e[20]=L):L=e[20];let k;e[21]!==u||e[22]!==n?(k=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:u,children:"Decline"}),e[21]=u,e[22]=n,e[23]=k):k=e[23];let R;e[24]!==k||e[25]!==L?(R=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[L,k]}),e[24]=k,e[25]=L,e[26]=R):R=e[26];let D;return e[27]!==m||e[28]!==R||e[29]!==S||e[30]!==w?(D=s.jsxs(Ve,{server:m,children:[S,w,R]}),e[27]=m,e[28]=R,e[29]=S,e[30]=w,e[31]=D):D=e[31],D}let a;e[32]!==t.message?(a=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:t.message}),e[32]=t.message,e[33]=a):a=e[33];let h;if(e[34]!==t.fields||e[35]!==t.requestId||e[36]!==n||e[37]!==o){let q;e[39]!==t.requestId||e[40]!==n||e[41]!==o?(q=S=>s.jsx(Pt,{id:`elicit-${t.requestId}-${S.name}`,field:S,value:o[S.name],disabled:n,onChange:w=>j(S.name,w)},S.name),e[39]=t.requestId,e[40]=n,e[41]=o,e[42]=q):q=e[42],h=t.fields.map(q),e[34]=t.fields,e[35]=t.requestId,e[36]=n,e[37]=o,e[38]=h}else h=e[38];let f;e[43]!==h?(f=s.jsx("div",{className:"mt-3 flex flex-col gap-3",children:h}),e[43]=h,e[44]=f):f=e[44];const y=n||!g;let v;e[45]!==i||e[46]!==t.fields||e[47]!==t.requestId||e[48]!==o?(v=()=>i(t.requestId,{action:"accept",content:Ut(t.fields,o)}),e[45]=i,e[46]=t.fields,e[47]=t.requestId,e[48]=o,e[49]=v):v=e[49];let _;e[50]!==y||e[51]!==v?(_=s.jsx(U,{size:"sm",disabled:y,onClick:v,children:"Send"}),e[50]=y,e[51]=v,e[52]=_):_=e[52];let T;e[53]!==u||e[54]!==n?(T=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:u,children:"Decline"}),e[53]=u,e[54]=n,e[55]=T):T=e[55];let N;e[56]!==_||e[57]!==T?(N=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[_,T]}),e[56]=_,e[57]=T,e[58]=N):N=e[58];let b;return e[59]!==m||e[60]!==N||e[61]!==a||e[62]!==f?(b=s.jsxs(Ve,{server:m,children:[a,f,N]}),e[59]=m,e[60]=N,e[61]=a,e[62]=f,e[63]=b):b=e[63],b}function Pt(l){const e=B.c(55),{id:t,field:n,value:i,disabled:r,onChange:o}=l;if(n.type==="boolean"){const u=i===!0;let a;e[0]!==o?(a=v=>o(v===!0),e[0]=o,e[1]=a):a=e[1];let h;e[2]!==r||e[3]!==t||e[4]!==u||e[5]!==a?(h=s.jsx(We,{id:t,checked:u,disabled:r,onCheckedChange:a}),e[2]=r,e[3]=t,e[4]=u,e[5]=a,e[6]=h):h=e[6];let f;e[7]!==n?(f=s.jsx($e,{field:n}),e[7]=n,e[8]=f):f=e[8];let y;return e[9]!==t||e[10]!==h||e[11]!==f?(y=s.jsxs(Le,{htmlFor:t,className:"items-start gap-2 font-normal",children:[h,f]}),e[9]=t,e[10]=h,e[11]=f,e[12]=y):y=e[12],y}if(n.type==="enum"){let u;e[13]!==n?(u=s.jsx($e,{field:n}),e[13]=n,e[14]=u):u=e[14];let a;e[15]!==t||e[16]!==u?(a=s.jsx(Le,{htmlFor:t,children:u}),e[15]=t,e[16]=u,e[17]=a):a=e[17];let h;e[18]!==i?(h=typeof i=="string"&&i?[i]:[],e[18]=i,e[19]=h):h=e[19];let f;e[20]!==o?(f=b=>{b[0]&&o(b[0])},e[20]=o,e[21]=f):f=e[21];const y=n.label;let v;e[22]!==n.options?(v=n.options??[],e[22]=n.options,e[23]=v):v=e[23];let _;if(e[24]!==r||e[25]!==v){let b;e[27]!==r?(b=q=>s.jsx(ke,{value:q.value,disabled:r,className:"w-full justify-start px-3",children:q.label},q.value),e[27]=r,e[28]=b):b=e[28],_=v.map(b),e[24]=r,e[25]=v,e[26]=_}else _=e[26];let T;e[29]!==n.label||e[30]!==t||e[31]!==h||e[32]!==f||e[33]!==_?(T=s.jsx(ze,{id:t,value:h,onValueChange:f,orientation:"vertical",variant:"outline",size:"sm",className:"w-full items-stretch","aria-label":y,children:_}),e[29]=n.label,e[30]=t,e[31]=h,e[32]=f,e[33]=_,e[34]=T):T=e[34];let N;return e[35]!==a||e[36]!==T?(N=s.jsxs("div",{className:"flex flex-col gap-1.5",children:[a,T]}),e[35]=a,e[36]=T,e[37]=N):N=e[37],N}let c;e[38]!==n?(c=s.jsx($e,{field:n}),e[38]=n,e[39]=c):c=e[39];let d;e[40]!==t||e[41]!==c?(d=s.jsx(Le,{htmlFor:t,children:c}),e[40]=t,e[41]=c,e[42]=d):d=e[42];const g=n.type==="string"?"text":"number",m=typeof i=="string"?i:"";let x;e[43]!==o?(x=u=>o(u.target.value),e[43]=o,e[44]=x):x=e[44];let j;e[45]!==r||e[46]!==n.label||e[47]!==t||e[48]!==g||e[49]!==m||e[50]!==x?(j=s.jsx(Ke,{id:t,"aria-label":n.label,type:g,value:m,disabled:r,onChange:x}),e[45]=r,e[46]=n.label,e[47]=t,e[48]=g,e[49]=m,e[50]=x,e[51]=j):j=e[51];let p;return e[52]!==d||e[53]!==j?(p=s.jsxs("div",{className:"flex flex-col gap-1.5",children:[d,j]}),e[52]=d,e[53]=j,e[54]=p):p=e[54],p}function $e(l){const e=B.c(8),{field:t}=l;let n;e[0]!==t.required?(n=t.required&&s.jsx("span",{className:"ml-0.5 text-warning",children:"*"}),e[0]=t.required,e[1]=n):n=e[1];let i;e[2]!==t.description?(i=t.description&&s.jsx("span",{className:"block text-xs font-normal text-muted-foreground",children:t.description}),e[2]=t.description,e[3]=i):i=e[3];let r;return e[4]!==t.label||e[5]!==n||e[6]!==i?(r=s.jsxs("span",{className:"min-w-0",children:[t.label,n,i]}),e[4]=t.label,e[5]=n,e[6]=i,e[7]=r):r=e[7],r}function Ve(l){const e=B.c(8),{server:t,children:n}=l;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(It,{className:"text-info"}),e[0]=i):i=e[0];let r;e[1]!==t?(r=s.jsxs(_e,{children:[t," needs input"]}),e[1]=t,e[2]=r):r=e[2];let o;e[3]!==n?(o=s.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:n}),e[3]=n,e[4]=o):o=e[4];let c;return e[5]!==r||e[6]!==o?(c=s.jsxs(qe,{className:"border-info/40 bg-info/5",children:[i,r,o]}),e[5]=r,e[6]=o,e[7]=c):c=e[7],c}const Qt=["allow","allow_always","deny"],Gt=[{decision:"allow",label:"Allow",variant:"default"},{decision:"deny",label:"Deny",variant:"destructive"},{decision:"allow_always",label:"Always",variant:"outline"}];function Ht(l,e){return(l.availableDecisions??Qt).includes(e)}function Kt(l){const e=B.c(22),{request:t,queued:n,responding:i,onRespond:r}=l;let o;if(e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i){let c;e[5]!==t?(c=y=>Ht(t,y.decision),e[5]=t,e[6]=c):c=e[6];const d=Gt.filter(c),g=d.some(Wt);let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(Be,{className:"text-warning"}),e[7]=m):m=e[7];const x=t.title||`Allow ${t.toolName}?`;let j;e[8]!==x?(j=s.jsx("span",{className:"min-w-0 flex-1 truncate",children:x}),e[8]=x,e[9]=j):j=e[9];let p;e[10]!==n?(p=n>0&&s.jsxs("span",{className:"shrink-0 font-mono text-xs text-warning",children:["+",n]}),e[10]=n,e[11]=p):p=e[11];let u;e[12]!==j||e[13]!==p?(u=s.jsxs(_e,{className:"flex min-w-0 items-center gap-2",children:[j,p]}),e[12]=j,e[13]=p,e[14]=u):u=e[14];let a;e[15]!==t.toolName?(a=s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:t.toolName}),e[15]=t.toolName,e[16]=a):a=e[16];let h;e[17]!==t.summary?(h=t.summary&&s.jsx("code",{className:"min-w-0 flex-1 truncate rounded bg-muted px-2 py-1 font-mono text-xs text-foreground",children:t.summary}),e[17]=t.summary,e[18]=h):h=e[18];let f;e[19]!==a||e[20]!==h?(f=s.jsxs("div",{className:"col-start-2 mt-2 flex min-w-0 items-center gap-2",children:[a,h]}),e[19]=a,e[20]=h,e[21]=f):f=e[21],o=s.jsxs(qe,{className:"border-warning/40 bg-warning/5",children:[m,u,f,g?s.jsx("div",{className:"col-start-2 mt-3 flex items-center gap-2",children:d.map(y=>{const{decision:v,label:_,variant:T}=y;return s.jsx(U,{size:"xs",variant:T,disabled:i,onClick:()=>r(t.requestId,v),children:_},v)})}):s.jsx("p",{className:"col-start-2 mt-2 text-xs text-warning",children:"Resolve this approval in its own provider"})]}),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=o}else o=e[4];return o}function Wt(l){return l.decision!=="allow_always"}function Xt(l){return l.some(e=>e.options.length===0||e.options.some(t=>t.hasPreview))}function Zt(l){const e=B.c(63),{request:t,responding:n,gone:i,onAnswer:r,onOpenSession:o}=l,c=t.questions,[d,g]=V.useState(0);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m={},e[0]=m):m=e[0];const x=V.useRef(m);let j;e[1]===Symbol.for("react.memo_cache_sentinel")?(j=new Set,e[1]=j):j=e[1];const[p,u]=V.useState(j);if(c.length===0)return null;if(Xt(c)){let E;e[2]!==c[0].question?(E=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:c[0].question}),e[2]=c[0].question,e[3]=E):E=e[3];let C;e[4]===Symbol.for("react.memo_cache_sentinel")?(C=s.jsx(De,{"data-icon":"inline-end"}),e[4]=C):C=e[4];let $;e[5]!==o?($=s.jsxs(U,{variant:"outline",size:"sm",onClick:o,className:"mt-3",children:["Open full question",C]}),e[5]=o,e[6]=$):$=e[6];let O;return e[7]!==E||e[8]!==$?(O=s.jsxs(Ue,{children:[E,$]}),e[7]=E,e[8]=$,e[9]=O):O=e[9],O}const a=c[d];let h;e[10]!==a.question||e[11]!==d||e[12]!==r||e[13]!==c.length||e[14]!==t.toolUseId?(h=function(C){const $={...x.current,[a.question]:C};if(d+1<c.length){x.current=$,u(new Set),g(d+1);return}r(t.toolUseId,$)},e[10]=a.question,e[11]=d,e[12]=r,e[13]=c.length,e[14]=t.toolUseId,e[15]=h):h=e[15];const f=h;let y;e[16]!==a.header?(y=a.header&&s.jsx(Te,{variant:"outline",className:"border-info/40 text-info",children:a.header}),e[16]=a.header,e[17]=y):y=e[17];let v;e[18]!==d||e[19]!==c.length?(v=c.length>1&&s.jsxs("span",{className:"ml-auto shrink-0 font-mono text-xs text-muted-foreground",children:[d+1," of ",c.length]}),e[18]=d,e[19]=c.length,e[20]=v):v=e[20];let _;e[21]!==y||e[22]!==v?(_=s.jsxs("div",{className:"flex items-baseline gap-1.5",children:[y,v]}),e[21]=y,e[22]=v,e[23]=_):_=e[23];let T;e[24]!==a.question?(T=s.jsx("p",{className:"mt-2 line-clamp-3 text-sm leading-relaxed text-foreground",title:a.question,children:a.question}),e[24]=a.question,e[25]=T):T=e[25];let N;e[26]!==p?(N=[...p],e[26]=p,e[27]=N):N=e[27];let b;e[28]!==f||e[29]!==a.multiSelect?(b=E=>{a.multiSelect?u(new Set(E)):E[0]&&f(E[0])},e[28]=f,e[29]=a.multiSelect,e[30]=b):b=e[30];const q=a.multiSelect,S=a.question;let w;if(e[31]!==a.options||e[32]!==n){let E;e[34]!==n?(E=C=>s.jsx(Jt,{option:C,disabled:n},C.label),e[34]=n,e[35]=E):E=e[35],w=a.options.map(E),e[31]=a.options,e[32]=n,e[33]=w}else w=e[33];let I;e[36]!==a.multiSelect||e[37]!==a.question||e[38]!==w||e[39]!==N||e[40]!==b?(I=s.jsx(ze,{value:N,onValueChange:b,multiple:q,orientation:"vertical",variant:"outline",size:"sm",className:"mt-3 w-full items-stretch","aria-label":S,children:w}),e[36]=a.multiSelect,e[37]=a.question,e[38]=w,e[39]=N,e[40]=b,e[41]=I):I=e[41];let z;e[42]!==f||e[43]!==a.multiSelect||e[44]!==d||e[45]!==c.length||e[46]!==n||e[47]!==p?(z=a.multiSelect&&s.jsx(U,{size:"sm",disabled:n||p.size===0,onClick:()=>f(Xe(p)),children:d+1<c.length?"Next":"Send"}),e[42]=f,e[43]=a.multiSelect,e[44]=d,e[45]=c.length,e[46]=n,e[47]=p,e[48]=z):z=e[48];let L;e[49]===Symbol.for("react.memo_cache_sentinel")?(L=s.jsx(De,{"data-icon":"inline-end"}),e[49]=L):L=e[49];let k;e[50]!==o?(k=s.jsxs(U,{variant:"ghost",size:"sm",onClick:o,className:"ml-auto text-muted-foreground",children:["Open session",L]}),e[50]=o,e[51]=k):k=e[51];let R;e[52]!==z||e[53]!==k?(R=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[z,k]}),e[52]=z,e[53]=k,e[54]=R):R=e[54];let D;e[55]!==i?(D=i&&s.jsx("p",{className:"mt-2 text-xs text-warning",children:"This question may already be answered. Open the session to check."}),e[55]=i,e[56]=D):D=e[56];let A;return e[57]!==I||e[58]!==R||e[59]!==D||e[60]!==_||e[61]!==T?(A=s.jsxs(Ue,{children:[_,T,I,R,D]}),e[57]=I,e[58]=R,e[59]=D,e[60]=_,e[61]=T,e[62]=A):A=e[62],A}function Jt(l){const e=B.c(17),{option:t,disabled:n}=l;let i;e[0]!==t.label?(i=s.jsx("span",{className:"min-w-0 flex-1 truncate text-left",children:t.label}),e[0]=t.label,e[1]=i):i=e[1];const r=i;if(!t.description){let m;return e[2]!==n||e[3]!==r||e[4]!==t.label?(m=s.jsx(ke,{value:t.label,disabled:n,className:"w-full justify-start px-3",children:r}),e[2]=n,e[3]=r,e[4]=t.label,e[5]=m):m=e[5],m}let o;e[6]!==n||e[7]!==t.label?(o=s.jsx(ke,{value:t.label,disabled:n,className:"w-full justify-start px-3"}),e[6]=n,e[7]=t.label,e[8]=o):o=e[8];let c;e[9]!==r||e[10]!==o?(c=s.jsx(Je,{render:o,children:r}),e[9]=r,e[10]=o,e[11]=c):c=e[11];let d;e[12]!==t.description?(d=s.jsx(Ze,{side:"right",className:"max-w-72 text-left",children:t.description}),e[12]=t.description,e[13]=d):d=e[13];let g;return e[14]!==c||e[15]!==d?(g=s.jsxs(et,{children:[c,d]}),e[14]=c,e[15]=d,e[16]=g):g=e[16],g}function Ue(l){const e=B.c(4),{children:t}=l;let n,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(Se,{className:"text-info"}),i=s.jsx(_e,{children:"Answer to continue"}),e[0]=n,e[1]=i):(n=e[0],i=e[1]);let r;return e[2]!==t?(r=s.jsxs(qe,{className:"border-info/40 bg-info/5",children:[n,i,s.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:t})]}),e[2]=t,e[3]=r):r=e[3],r}function es(l){const e=B.c(33),{request:t,responding:n,onChoose:i}=l;let r,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(Be,{className:"text-warning"}),o=s.jsx(_e,{children:"Claude declined this request"}),e[0]=r,e[1]=o):(r=e[0],o=e[1]);let c;e[2]!==t.originalModel?(c=s.jsxs("p",{className:"text-sm leading-relaxed text-foreground",children:[t.originalModel," would not answer. Retrying on a fallback model may work."]}),e[2]=t.originalModel,e[3]=c):c=e[3];let d;e[4]!==t.guidanceText?(d=t.guidanceText&&s.jsx("p",{className:"mt-1 text-sm leading-relaxed text-muted-foreground",children:t.guidanceText}),e[4]=t.guidanceText,e[5]=d):d=e[5];let g;e[6]!==i||e[7]!==t.requestId?(g=()=>i(t.requestId,"retry_fallback"),e[6]=i,e[7]=t.requestId,e[8]=g):g=e[8];let m;e[9]!==t.fallbackModel||e[10]!==n||e[11]!==g?(m=s.jsxs(U,{size:"sm",disabled:n,onClick:g,children:["Retry on ",t.fallbackModel]}),e[9]=t.fallbackModel,e[10]=n,e[11]=g,e[12]=m):m=e[12];let x;e[13]!==i||e[14]!==t.requestId?(x=()=>i(t.requestId,"edit_prompt"),e[13]=i,e[14]=t.requestId,e[15]=x):x=e[15];let j;e[16]!==n||e[17]!==x?(j=s.jsx(U,{variant:"outline",size:"sm",disabled:n,onClick:x,children:"Edit prompt"}),e[16]=n,e[17]=x,e[18]=j):j=e[18];let p;e[19]!==i||e[20]!==t.requestId?(p=()=>i(t.requestId,"cancelled"),e[19]=i,e[20]=t.requestId,e[21]=p):p=e[21];let u;e[22]!==n||e[23]!==p?(u=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,className:"ml-auto text-muted-foreground",onClick:p,children:"Dismiss"}),e[22]=n,e[23]=p,e[24]=u):u=e[24];let a;e[25]!==u||e[26]!==m||e[27]!==j?(a=s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[m,j,u]}),e[25]=u,e[26]=m,e[27]=j,e[28]=a):a=e[28];let h;return e[29]!==a||e[30]!==c||e[31]!==d?(h=s.jsxs(qe,{className:"border-warning/40 bg-warning/5",children:[r,o,s.jsxs("div",{className:"col-start-2 mt-1 min-w-0",children:[c,d,a]})]}),e[29]=a,e[30]=c,e[31]=d,e[32]=h):h=e[32],h}function Pe(l){return l==="awaiting_approval"||l==="awaiting_prompt"||l==="awaiting_question"||l==="awaiting_answer"}function Ee(l){return l==="done"||l==="failed"}const Ye={awaiting_approval:0,awaiting_prompt:1,awaiting_question:2,awaiting_answer:3,running:4,failed:5,done:6};function ts(l,e,t,n,i,r){return t?"awaiting_approval":n?"awaiting_prompt":i?"awaiting_question":r||l.agentStatus==="deferred"||l.agentStatus==="idle"&&e?"awaiting_answer":l.agentTerminalReason?"failed":e&&l.agentStatus&&nt.has(l.agentStatus)?"running":"done"}const ss=6;function ns({sessions:l,procBySession:e,summaries:t,permissionsBySession:n,questionsBySession:i,elicitationsBySession:r,dialogsBySession:o,awaitingPlan:c,newlyCompleted:d,finishedLimit:g=ss,now:m=Date.now()}){const x=[];for(const u of tt(l)){const a=n.get(u.sessionId)??[],h=i.get(u.sessionId)??[],f=r.get(u.sessionId)??[],y=o.get(u.sessionId)??[],v=c.has(u.sessionId),_=a.length+h.length+f.length+y.length+Number(v);u.teamName&&u.agentName&&_===0||x.push({session:u,state:ts(u,st(u,e,m),a.length>0,f.length>0||y.length>0,h.length>0,v),summary:t.get(u.sessionId)??null,permissions:a,questions:h,elicitations:f,dialogs:y})}const j=x.filter(u=>Ee(u.state)),p=[...j.filter(u=>d.has(u.session.sessionId)),...j.filter(u=>!d.has(u.session.sessionId))].slice(0,g);return[...x.filter(u=>!Ee(u.state)),...p].sort((u,a)=>Ye[u.state]-Ye[a.state])}function is(l,e){switch(e){case"running":return l.filter(t=>t.state==="running");case"needs-you":return l.filter(t=>Pe(t.state));case"finished":return l.filter(t=>Ee(t.state));default:return l}}function ls(l){const e={total:l.length,running:0,needsYou:0,finished:0,failed:0};for(const t of l)t.state==="running"&&e.running++,Pe(t.state)&&e.needsYou++,Ee(t.state)&&e.finished++,t.state==="failed"&&e.failed++;return e}function os(l){return l>=90?"text-destructive":l>=70?"text-warning":"text-muted-foreground"}const as={awaiting_approval:{label:"Waiting for approval",text:"text-warning",shell:"border-warning/40 bg-warning/5",icon:Se},awaiting_prompt:{label:"Waiting for your input",text:"text-info",shell:"border-info/40 bg-info/5",icon:Se},awaiting_question:{label:"Waiting for your answer",text:"text-info",shell:"border-info/40 bg-info/5",icon:Se},awaiting_answer:{label:"Waiting for your answer",text:"text-warning",shell:"border-warning/40 bg-warning/5",icon:Se},running:{label:"Running",text:"text-info",shell:"border-border",icon:null},done:{label:"Done",text:"text-success",shell:"border-border",icon:qt},failed:{label:"Failed",text:"text-destructive",shell:"border-destructive/40",icon:_t}};function rs(l){const e=B.c(3),{icon:t}=l;if(!t){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx("span",{className:"size-2 shrink-0 rounded-full bg-info"}),e[0]=i):i=e[0],i}let n;return e[1]!==t?(n=s.jsx(t,{className:"size-3.5 shrink-0"}),e[1]=t,e[2]=n):n=e[2],n}const cs=V.memo(function(e){const t=B.c(88),{card:n,customName:i,projectLabel:r,responding:o,goneQuestions:c,compact:d,onOpen:g,onRespond:m,onAnswerQuestion:x,onAnswerElicitation:j,onChooseDialog:p}=e,u=d===void 0?!1:d,{session:a,state:h,summary:f,permissions:y,questions:v,elicitations:_,dialogs:T}=n,N=as[h],b=y[0],q=v[0],S=_[0],w=T[0],I=!!(b||q||S||w);let z;t[0]!==i||t[1]!==a?(z=it(a,i),t[0]=i,t[1]=a,t[2]=z):z=t[2];const L=z,k=u&&"gap-1.5 py-2";let R;t[3]!==N.shell||t[4]!==k?(R=ue("motion-card motion-list-item group flex min-w-0 flex-col gap-2 rounded-lg border bg-card p-3 text-left transition-colors hover:border-foreground/20",N.shell,k),t[3]=N.shell,t[4]=k,t[5]=R):R=t[5];const D=`Open session ${L}`;let A;t[6]!==r?(A=s.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground",children:r}),t[6]=r,t[7]=A):A=t[7];let E;t[8]!==f?(E=(f==null?void 0:f.model)&&s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:lt(f.model)}),t[8]=f,t[9]=E):E=t[9];let C;t[10]===Symbol.for("react.memo_cache_sentinel")?(C=s.jsx(De,{"data-icon":"inline-end",className:"shrink-0 text-transparent transition-colors group-hover:text-muted-foreground"}),t[10]=C):C=t[10];let $;t[11]!==A||t[12]!==E?($=s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[A,E,C]}),t[11]=A,t[12]=E,t[13]=$):$=t[13];const O=u?"truncate":"line-clamp-2";let se;t[14]!==O?(se=ue("text-sm font-medium leading-snug text-foreground",O),t[14]=O,t[15]=se):se=t[15];let P;t[16]!==se||t[17]!==L?(P=s.jsx("span",{className:se,children:L}),t[16]=se,t[17]=L,t[18]=P):P=t[18];let ne;t[19]!==g||t[20]!==P||t[21]!==D||t[22]!==$?(ne=s.jsxs(U,{variant:"ghost",onClick:g,className:"-m-1 h-auto min-w-0 flex-col items-stretch justify-start gap-1 whitespace-normal p-1 text-left","aria-label":D,children:[$,P]}),t[19]=g,t[20]=P,t[21]=D,t[22]=$,t[23]=ne):ne=t[23];let ie;t[24]!==N.text?(ie=ue("flex items-center gap-1.5 text-xs font-medium",N.text),t[24]=N.text,t[25]=ie):ie=t[25];let le;t[26]!==N.icon?(le=s.jsx(rs,{icon:N.icon}),t[26]=N.icon,t[27]=le):le=t[27];let te;t[28]!==N.label?(te=s.jsx("span",{className:"truncate",children:N.label}),t[28]=N.label,t[29]=te):te=t[29];const ce=a.lastActivityAt||a.lastModified;let Q;t[30]!==ce?(Q=ot(ce),t[30]=ce,t[31]=Q):Q=t[31];let oe;t[32]!==Q?(oe=s.jsx("span",{className:"ml-auto shrink-0 font-mono text-xs font-normal text-muted-foreground",children:Q}),t[32]=Q,t[33]=oe):oe=t[33];let G;t[34]!==ie||t[35]!==le||t[36]!==te||t[37]!==oe?(G=s.jsxs("div",{className:ie,children:[le,te,oe]}),t[34]=ie,t[35]=le,t[36]=te,t[37]=oe,t[38]=G):G=t[38];let H;t[39]!==m||t[40]!==y.length||t[41]!==b||t[42]!==o||t[43]!==a.sessionId?(H=b&&s.jsx(Kt,{request:b,queued:y.length-1,responding:o.has(b.requestId),onRespond:(re,Y)=>m(a.sessionId,re,Y)}),t[39]=m,t[40]=y.length,t[41]=b,t[42]=o,t[43]=a.sessionId,t[44]=H):H=t[44];let K;t[45]!==w||t[46]!==p||t[47]!==b||t[48]!==o||t[49]!==a.sessionId?(K=!b&&w&&s.jsx(es,{request:w,responding:o.has(w.requestId),onChoose:(re,Y)=>p(a.sessionId,re,Y)},w.requestId),t[45]=w,t[46]=p,t[47]=b,t[48]=o,t[49]=a.sessionId,t[50]=K):K=t[50];let W;t[51]!==w||t[52]!==S||t[53]!==j||t[54]!==b||t[55]!==o||t[56]!==a.sessionId?(W=!b&&!w&&S&&s.jsx(Bt,{request:S,responding:o.has(S.requestId),onAnswer:(re,Y)=>j(a.sessionId,re,Y)},S.requestId),t[51]=w,t[52]=S,t[53]=j,t[54]=b,t[55]=o,t[56]=a.sessionId,t[57]=W):W=t[57];let X;t[58]!==w||t[59]!==S||t[60]!==c||t[61]!==x||t[62]!==g||t[63]!==q||t[64]!==b||t[65]!==o||t[66]!==a.sessionId?(X=!b&&!w&&!S&&q&&s.jsx(Zt,{request:q,responding:o.has(q.toolUseId),gone:c.has(q.toolUseId),onAnswer:(re,Y)=>x(a.sessionId,re,Y),onOpenSession:g},q.toolUseId),t[58]=w,t[59]=S,t[60]=c,t[61]=x,t[62]=g,t[63]=q,t[64]=b,t[65]=o,t[66]=a.sessionId,t[67]=X):X=t[67];let Z;t[68]!==I||t[69]!==f?(Z=!I&&(f==null?void 0:f.currentTool)&&s.jsx(ds,{tool:f.currentTool}),t[68]=I,t[69]=f,t[70]=Z):Z=t[70];let J;t[71]!==I||t[72]!==u||t[73]!==f?(J=!u&&!I&&(f==null?void 0:f.lastAssistantText)&&s.jsx("p",{className:"line-clamp-4 text-sm leading-relaxed text-muted-foreground",children:f.lastAssistantText}),t[71]=I,t[72]=u,t[73]=f,t[74]=J):J=t[74];let ee;t[75]!==f?(ee=f&&s.jsx(us,{summary:f}),t[75]=f,t[76]=ee):ee=t[76];let ae;return t[77]!==ne||t[78]!==G||t[79]!==H||t[80]!==K||t[81]!==W||t[82]!==X||t[83]!==Z||t[84]!==J||t[85]!==ee||t[86]!==R?(ae=s.jsxs("div",{className:R,children:[ne,G,H,K,W,X,Z,J,ee]}),t[77]=ne,t[78]=G,t[79]=H,t[80]=K,t[81]=W,t[82]=X,t[83]=Z,t[84]=J,t[85]=ee,t[86]=R,t[87]=ae):ae=t[87],ae});function ds(l){const e=B.c(7),{tool:t}=l;let n;e[0]!==t.name?(n=s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:t.name}),e[0]=t.name,e[1]=n):n=e[1];let i;e[2]!==t.summary?(i=s.jsx("code",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground/80",children:t.summary}),e[2]=t.summary,e[3]=i):i=e[3];let r;return e[4]!==n||e[5]!==i?(r=s.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-md bg-muted/50 px-2.5 py-2",children:[n,i]}),e[4]=n,e[5]=i,e[6]=r):r=e[6],r}function us(l){const e=B.c(11),{summary:t}=l,n=t.filesTotal,i=t.context,r=n.count>0,o=i!==null&&i.used>0;if(!r&&!o)return null;let c;e[0]!==n.additions||e[1]!==n.count||e[2]!==n.deletions||e[3]!==r?(c=r&&s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsxs("span",{className:"truncate",children:[n.count," file",n.count===1?"":"s"]}),s.jsx(at,{add:n.additions,del:n.deletions})]}),e[0]=n.additions,e[1]=n.count,e[2]=n.deletions,e[3]=r,e[4]=c):c=e[4];let d;e[5]!==i||e[6]!==o?(d=o&&s.jsxs("span",{className:ue("ml-auto shrink-0",os(i.percent)),children:["ctx ",i.percent,"%"]}),e[5]=i,e[6]=o,e[7]=d):d=e[7];let g;return e[8]!==c||e[9]!==d?(g=s.jsxs("div",{className:"mt-auto flex items-center gap-2 border-t pt-2 font-mono text-xs text-muted-foreground",children:[c,d]}),e[8]=c,e[9]=d,e[10]=g):g=e[10],g}const fs=8e3,ms=12,xs="Start Claude Code, Codex, or Copilot and every session shows up here",hs=[{id:"all",label:"All"},{id:"running",label:"Running"},{id:"needs-you",label:"Needs you"},{id:"finished",label:"Finished"}],gs=[{id:"grid",label:"Grid layout",Icon:Ct},{id:"list",label:"List layout",Icon:Tt}];function Ns(l){const e=B.c(118),{onSelectSession:t}=l,{sessions:n,procBySession:i,newlyCompleted:r,refresh:o}=rt(),{summaries:c,loading:d,error:g,refresh:m}=Mt(),{permissionsBySession:x,questionsBySession:j,elicitationsBySession:p,dialogsBySession:u,awaitingPlan:a,responding:h,respond:f,answerQuestion:y,answerElicitation:v,answerDialog:_,refresh:T}=ct();let N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N=new Set,e[0]=N):N=e[0];const[b,q]=V.useState(N),{names:S}=dt(),{names:w}=ut(),[I,z]=V.useState("all");let L;e[1]===Symbol.for("react.memo_cache_sentinel")?(L=ft("mission-control-layout"),e[1]=L):L=e[1];const[k,R]=mt(L,"grid");let D;e[2]!==a||e[3]!==u||e[4]!==p||e[5]!==r||e[6]!==x||e[7]!==i||e[8]!==j||e[9]!==n||e[10]!==c?(D=ns({sessions:n,procBySession:i,summaries:c,permissionsBySession:x,questionsBySession:j,elicitationsBySession:p,dialogsBySession:u,awaitingPlan:a,newlyCompleted:r}),e[2]=a,e[3]=u,e[4]=p,e[5]=r,e[6]=x,e[7]=i,e[8]=j,e[9]=n,e[10]=c,e[11]=D):D=e[11];const A=D;let E;e[12]!==A?(E=ls(A),e[12]=A,e[13]=E):E=e[13];const C=E;let $;e[14]!==A||e[15]!==I?($=is(A,I),e[14]=A,e[15]=I,e[16]=$):$=e[16];const O=$;let se;e[17]!==T||e[18]!==o||e[19]!==m?(se=()=>{o(),m(),T()},e[17]=T,e[18]=o,e[19]=m,e[20]=se):se=e[20];const P=se;let ne,ie;e[21]!==o?(ne=()=>{const F=setInterval(()=>{document.visibilityState==="visible"&&o()},fs);return()=>clearInterval(F)},ie=[o],e[21]=o,e[22]=ne,e[23]=ie):(ne=e[22],ie=e[23]),V.useEffect(ne,ie);let le;e[24]!==y?(le=async(F,M,Me)=>{(await y(F,M,Me)).ok||q(Qe=>new Set(Qe).add(M))},e[24]=y,e[25]=le):le=e[25];const te=le;let ce;e[26]!==A.length?(ce=function(M){A.length<=ms?Ot(M,{kind:"fade"}):V.startTransition(M)},e[26]=A.length,e[27]=ce):ce=e[27];const Q=ce;let oe;e[28]===Symbol.for("react.memo_cache_sentinel")?(oe=s.jsx("h2",{className:"truncate text-sm font-semibold",children:"Mission Control"}),e[28]=oe):oe=e[28];let G;e[29]!==C.total?(G=s.jsx(Te,{variant:"secondary",children:C.total}),e[29]=C.total,e[30]=G):G=e[30];let H;e[31]!==C.needsYou?(H=C.needsYou>0&&s.jsxs(Te,{variant:"outline",className:"border-warning/40 text-warning",children:[C.needsYou," need you"]}),e[31]=C.needsYou,e[32]=H):H=e[32];let K;e[33]!==C.failed?(K=C.failed>0&&s.jsxs(Te,{variant:"destructive",children:[C.failed," failed"]}),e[33]=C.failed,e[34]=K):K=e[34];let W;e[35]!==G||e[36]!==H||e[37]!==K?(W=s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[oe,G,H,K]}),e[35]=G,e[36]=H,e[37]=K,e[38]=W):W=e[38];let X;e[39]!==I?(X=[I],e[39]=I,e[40]=X):X=e[40];let Z;e[41]!==I||e[42]!==Q?(Z=F=>{const M=F.at(-1);M&&M!==I&&Q(()=>z(M))},e[41]=I,e[42]=Q,e[43]=Z):Z=e[43];let J;e[44]!==C.needsYou?(J=hs.map(F=>s.jsxs(ke,{value:F.id,"aria-label":`Show ${F.label.toLowerCase()} sessions`,children:[F.label,F.id==="needs-you"&&C.needsYou>0&&s.jsx("span",{className:"font-mono text-warning",children:C.needsYou})]},F.id)),e[44]=C.needsYou,e[45]=J):J=e[45];let ee;e[46]!==X||e[47]!==Z||e[48]!==J?(ee=s.jsx(ze,{value:X,onValueChange:Z,variant:"outline",size:"sm",spacing:0,"aria-label":"Filter sessions",children:J}),e[46]=X,e[47]=Z,e[48]=J,e[49]=ee):ee=e[49];let ae;e[50]!==k||e[51]!==R||e[52]!==Q?(ae=gs.map(F=>{const{id:M,label:Me,Icon:Oe}=F;return s.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":Me,"aria-pressed":k===M,onClick:()=>{M!==k&&Q(()=>R(M))},className:ue(k===M&&"bg-accent text-accent-foreground"),children:s.jsx(Oe,{"data-icon":"inline-start"})},M)}),e[50]=k,e[51]=R,e[52]=Q,e[53]=ae):ae=e[53];const re=d&&"animate-spin";let Y;e[54]!==re?(Y=ue(re),e[54]=re,e[55]=Y):Y=e[55];let fe;e[56]!==Y?(fe=s.jsx(At,{"data-icon":"inline-start",className:Y}),e[56]=Y,e[57]=fe):fe=e[57];let me;e[58]!==P||e[59]!==fe?(me=s.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":"Refresh Mission Control",onClick:P,children:fe}),e[58]=P,e[59]=fe,e[60]=me):me=e[60];let xe;e[61]!==ae||e[62]!==me?(xe=s.jsxs("div",{className:"flex items-center gap-1",children:[ae,me]}),e[61]=ae,e[62]=me,e[63]=xe):xe=e[63];let he;e[64]!==ee||e[65]!==xe?(he=s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[ee,xe]}),e[64]=ee,e[65]=xe,e[66]=he):he=e[66];let ge;e[67]!==W||e[68]!==he?(ge=s.jsxs("header",{className:"flex min-h-12 shrink-0 flex-wrap items-center gap-3 border-b px-4 py-2",children:[W,he]}),e[67]=W,e[68]=he,e[69]=ge):ge=e[69];let pe;e[70]!==g||e[71]!==P?(pe=g&&s.jsxs(qe,{variant:"destructive",className:"mb-4",children:[s.jsx(Et,{}),s.jsx(_e,{children:"Mission Control could not refresh"}),s.jsx(wt,{className:"truncate",children:g}),s.jsx(vt,{children:s.jsx(U,{variant:"outline",size:"xs",onClick:P,children:"Retry"})})]}),e[70]=g,e[71]=P,e[72]=pe):pe=e[72];let be;e[73]!==A.length||e[74]!==I||e[75]!==d||e[76]!==O.length?(be=O.length===0&&!d&&s.jsx(xt,{className:"min-h-64",children:s.jsxs(ht,{children:[s.jsx(gt,{variant:"icon",children:s.jsx(kt,{})}),s.jsx(pt,{children:A.length===0?"No live sessions":`Nothing matches "${I}"`}),s.jsx(bt,{children:A.length===0?xs:"Try a different filter."})]})}),e[73]=A.length,e[74]=I,e[75]=d,e[76]=O.length,e[77]=be):be=e[77];let je;e[78]!==A.length||e[79]!==d||e[80]!==O.length?(je=O.length===0&&d&&A.length===0&&s.jsxs("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-muted-foreground",children:[s.jsx(jt,{}),"Loading sessions…"]}),e[78]=A.length,e[79]=d,e[80]=O.length,e[81]=je):je=e[81];const Re=k==="grid"&&"md:grid-cols-2 2xl:grid-cols-3";let we;e[82]!==Re?(we=ue("grid grid-cols-1 gap-3",Re),e[82]=Re,e[83]=we):we=e[83];let ve;if(e[84]!==_||e[85]!==v||e[86]!==b||e[87]!==te||e[88]!==k||e[89]!==t||e[90]!==w||e[91]!==f||e[92]!==h||e[93]!==S||e[94]!==O){let F;e[96]!==_||e[97]!==v||e[98]!==b||e[99]!==te||e[100]!==k||e[101]!==t||e[102]!==w||e[103]!==f||e[104]!==h||e[105]!==S?(F=M=>s.jsx(cs,{card:M,compact:k==="list",customName:S[M.session.sessionId],projectLabel:w[M.session.dirName]??Nt(M.session),responding:h,goneQuestions:b,onOpen:()=>t(M.session.dirName,M.session.fileName),onRespond:f,onAnswerQuestion:te,onAnswerElicitation:v,onChooseDialog:_},M.session.sessionId),e[96]=_,e[97]=v,e[98]=b,e[99]=te,e[100]=k,e[101]=t,e[102]=w,e[103]=f,e[104]=h,e[105]=S,e[106]=F):F=e[106],ve=O.map(F),e[84]=_,e[85]=v,e[86]=b,e[87]=te,e[88]=k,e[89]=t,e[90]=w,e[91]=f,e[92]=h,e[93]=S,e[94]=O,e[95]=ve}else ve=e[95];let Ne;e[107]!==we||e[108]!==ve?(Ne=s.jsx("div",{className:we,children:ve}),e[107]=we,e[108]=ve,e[109]=Ne):Ne=e[109];let ye;e[110]!==pe||e[111]!==be||e[112]!==je||e[113]!==Ne?(ye=s.jsx(yt,{className:"flex-1",children:s.jsxs("div",{className:"p-4",children:[pe,be,je,Ne]})}),e[110]=pe,e[111]=be,e[112]=je,e[113]=Ne,e[114]=ye):ye=e[114];let Ce;return e[115]!==ge||e[116]!==ye?(Ce=s.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[ge,ye]}),e[115]=ge,e[116]=ye,e[117]=Ce):Ce=e[117],Ce}export{Ns as MissionControl};
|
|
1
|
+
import{r as V,a as Qe,c as B,j as s}from"./vendor-react-gGw_S5I_.js";import{w as He,B as U,b1 as Ke,aS as _e,A as qe,b5 as We,bj as Le,Z as ke,Y as ze,a4 as Te,bk as Xe,b9 as Ze,b8 as Je,b7 as et,bl as tt,bm as st,bn as nt,bo as it,_ as ue,bp as lt,a5 as ot,a8 as at,bq as rt,br as ct,bs as dt,v as ut,$ as ft,bt as mt,E as xt,y as ht,z as gt,G as pt,H as bt,am as jt,p as wt,bu as vt,bv as Nt,q as yt}from"./index-DOkVkYA9.js";import{c as St,al as It,ar as Be,C as $e,as as Se,ai as _t,at as qt,L as Ct,au as Tt,av as kt,b as At,N as Et}from"./vendor-ui-DpPWL3l4.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";const Rt=4e3;function Mt(){const[l,e]=V.useState([]),[t,n]=V.useState(!1),[i,r]=V.useState(null),o=V.useRef(!1);V.useEffect(()=>(o.current=!1,()=>{o.current=!0}),[]);const c=V.useCallback(async()=>{try{const m=await He("/api/mission-control");if(o.current)return;if(!m.ok)throw new Error(`Mission Control request failed (${m.status})`);const x=await m.json();if(o.current)return;e(Array.isArray(x.summaries)?x.summaries:[]),r(null)}catch(m){if(o.current)return;r(m instanceof Error?m.message:"Failed to load Mission Control")}finally{o.current||n(!1)}},[]);V.useEffect(()=>{n(!0);const m=()=>{(typeof document>"u"||document.visibilityState==="visible")&&c()},x=()=>{document.visibilityState==="visible"&&c()};m();const j=setInterval(m,Rt);return document.addEventListener("visibilitychange",x),()=>{clearInterval(j),document.removeEventListener("visibilitychange",x)}},[c]);const d=V.useMemo(()=>{const m=new Map;for(const x of l)m.set(x.sessionId,x);return m},[l]),g=V.useCallback(()=>{c()},[c]);return{summaries:d,loading:t,error:i,refresh:g}}const Ae="data-view-transition-kind",Lt="(prefers-reduced-motion: reduce)";let de=null,Fe=null;function Dt(l,e,t){t===null?l.removeAttribute(e):l.setAttribute(e,t)}function $t(l,e){const t={root:l,kind:e,previousKind:l.getAttribute(Ae)};return l.setAttribute(Ae,e),Fe=t,t}function Ie(l){Fe===l&&(l.root.getAttribute(Ae)===l.kind&&Dt(l.root,Ae,l.previousKind),Fe=null)}function Ft(){const l=de;if(l){de=null;try{l.transition.skipTransition()}catch{Ie(l.tag);return}Ie(l.tag)}}function zt(){if(typeof window>"u"||typeof window.matchMedia!="function")return!1;try{return window.matchMedia(Lt).matches}catch{return!1}}function Ot(l,{kind:e}){Ft();const t=typeof document>"u"?null:document,n=t==null?void 0:t.startViewTransition;if(!t||!(typeof n=="function")||zt())return l(),null;const r=$t(t.documentElement,e);let o=!1,c=!1,d;const g=m=>{if(!o){o=!0;try{m?Qe.flushSync(l):l()}catch(x){throw c=!0,d=x,x}}};try{const m=n.call(t,()=>g(!0)),x={transition:m,tag:r};return de=x,m.ready.catch(()=>{}),m.updateCallbackDone.catch(()=>{}),m.finished.then(()=>{de===x&&(de=null),Ie(r)},()=>{de===x&&(de=null),Ie(r)}),m}catch{if(Ie(r),c)throw d;return g(!1),null}}function Vt(l){const e={};for(const t of l)t.type==="boolean"?e[t.name]=t.defaultValue===!0:t.defaultValue!==void 0?e[t.name]=String(t.defaultValue):e[t.name]="";return e}function Ut(l,e){const t={};for(const n of l){const i=e[n.name];if(typeof i=="boolean"){t[n.name]=i;continue}i!==""&&(t[n.name]=n.type==="number"||n.type==="integer"?Number(i):i)}return t}function Yt(l,e){return l.every(t=>{if(!t.required)return!0;const n=e[t.name];return typeof n=="boolean"?!0:n===""?!1:t.type==="number"||t.type==="integer"?Number.isFinite(Number(n)):!0})}function Bt(l){const e=B.c(64),{request:t,responding:n,onAnswer:i}=l;let r;e[0]!==t.fields?(r=()=>Vt(t.fields),e[0]=t.fields,e[1]=r):r=e[1];const[o,c]=V.useState(r);let d;e[2]!==t.fields||e[3]!==o?(d=Yt(t.fields,o),e[2]=t.fields,e[3]=o,e[4]=d):d=e[4];const g=d,m=t.displayName||t.title||t.serverName;let x;e[5]===Symbol.for("react.memo_cache_sentinel")?(x=(q,S)=>{c(w=>({...w,[q]:S}))},e[5]=x):x=e[5];const j=x;let p;e[6]!==i||e[7]!==t.requestId?(p=()=>i(t.requestId,{action:"decline"}),e[6]=i,e[7]=t.requestId,e[8]=p):p=e[8];const u=p;if(t.mode==="url"&&t.url){const q=t.url;let S;e[9]!==t.message?(S=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:t.message}),e[9]=t.message,e[10]=S):S=e[10];let w;e[11]!==q?(w=s.jsx("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",title:q,children:q}),e[11]=q,e[12]=w):w=e[12];let I;e[13]!==i||e[14]!==t.requestId||e[15]!==q?(I=()=>{window.open(q,"_blank","noopener,noreferrer"),i(t.requestId,{action:"accept"})},e[13]=i,e[14]=t.requestId,e[15]=q,e[16]=I):I=e[16];let z;e[17]===Symbol.for("react.memo_cache_sentinel")?(z=s.jsx(St,{"data-icon":"inline-end"}),e[17]=z):z=e[17];let L;e[18]!==n||e[19]!==I?(L=s.jsxs(U,{size:"sm",disabled:n,onClick:I,children:["Open link",z]}),e[18]=n,e[19]=I,e[20]=L):L=e[20];let k;e[21]!==u||e[22]!==n?(k=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:u,children:"Decline"}),e[21]=u,e[22]=n,e[23]=k):k=e[23];let R;e[24]!==k||e[25]!==L?(R=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[L,k]}),e[24]=k,e[25]=L,e[26]=R):R=e[26];let $;return e[27]!==m||e[28]!==R||e[29]!==S||e[30]!==w?($=s.jsxs(Ve,{server:m,children:[S,w,R]}),e[27]=m,e[28]=R,e[29]=S,e[30]=w,e[31]=$):$=e[31],$}let a;e[32]!==t.message?(a=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:t.message}),e[32]=t.message,e[33]=a):a=e[33];let h;if(e[34]!==t.fields||e[35]!==t.requestId||e[36]!==n||e[37]!==o){let q;e[39]!==t.requestId||e[40]!==n||e[41]!==o?(q=S=>s.jsx(Pt,{id:`elicit-${t.requestId}-${S.name}`,field:S,value:o[S.name],disabled:n,onChange:w=>j(S.name,w)},S.name),e[39]=t.requestId,e[40]=n,e[41]=o,e[42]=q):q=e[42],h=t.fields.map(q),e[34]=t.fields,e[35]=t.requestId,e[36]=n,e[37]=o,e[38]=h}else h=e[38];let f;e[43]!==h?(f=s.jsx("div",{className:"mt-3 flex flex-col gap-3",children:h}),e[43]=h,e[44]=f):f=e[44];const y=n||!g;let v;e[45]!==i||e[46]!==t.fields||e[47]!==t.requestId||e[48]!==o?(v=()=>i(t.requestId,{action:"accept",content:Ut(t.fields,o)}),e[45]=i,e[46]=t.fields,e[47]=t.requestId,e[48]=o,e[49]=v):v=e[49];let _;e[50]!==y||e[51]!==v?(_=s.jsx(U,{size:"sm",disabled:y,onClick:v,children:"Send"}),e[50]=y,e[51]=v,e[52]=_):_=e[52];let T;e[53]!==u||e[54]!==n?(T=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,onClick:u,children:"Decline"}),e[53]=u,e[54]=n,e[55]=T):T=e[55];let N;e[56]!==_||e[57]!==T?(N=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[_,T]}),e[56]=_,e[57]=T,e[58]=N):N=e[58];let b;return e[59]!==m||e[60]!==N||e[61]!==a||e[62]!==f?(b=s.jsxs(Ve,{server:m,children:[a,f,N]}),e[59]=m,e[60]=N,e[61]=a,e[62]=f,e[63]=b):b=e[63],b}function Pt(l){const e=B.c(55),{id:t,field:n,value:i,disabled:r,onChange:o}=l;if(n.type==="boolean"){const u=i===!0;let a;e[0]!==o?(a=v=>o(v===!0),e[0]=o,e[1]=a):a=e[1];let h;e[2]!==r||e[3]!==t||e[4]!==u||e[5]!==a?(h=s.jsx(We,{id:t,checked:u,disabled:r,onCheckedChange:a}),e[2]=r,e[3]=t,e[4]=u,e[5]=a,e[6]=h):h=e[6];let f;e[7]!==n?(f=s.jsx(De,{field:n}),e[7]=n,e[8]=f):f=e[8];let y;return e[9]!==t||e[10]!==h||e[11]!==f?(y=s.jsxs(Le,{htmlFor:t,className:"items-start gap-2 font-normal",children:[h,f]}),e[9]=t,e[10]=h,e[11]=f,e[12]=y):y=e[12],y}if(n.type==="enum"){let u;e[13]!==n?(u=s.jsx(De,{field:n}),e[13]=n,e[14]=u):u=e[14];let a;e[15]!==t||e[16]!==u?(a=s.jsx(Le,{htmlFor:t,children:u}),e[15]=t,e[16]=u,e[17]=a):a=e[17];let h;e[18]!==i?(h=typeof i=="string"&&i?[i]:[],e[18]=i,e[19]=h):h=e[19];let f;e[20]!==o?(f=b=>{b[0]&&o(b[0])},e[20]=o,e[21]=f):f=e[21];const y=n.label;let v;e[22]!==n.options?(v=n.options??[],e[22]=n.options,e[23]=v):v=e[23];let _;if(e[24]!==r||e[25]!==v){let b;e[27]!==r?(b=q=>s.jsx(ke,{value:q.value,disabled:r,className:"w-full justify-start px-3",children:q.label},q.value),e[27]=r,e[28]=b):b=e[28],_=v.map(b),e[24]=r,e[25]=v,e[26]=_}else _=e[26];let T;e[29]!==n.label||e[30]!==t||e[31]!==h||e[32]!==f||e[33]!==_?(T=s.jsx(ze,{id:t,value:h,onValueChange:f,orientation:"vertical",variant:"outline",size:"sm",className:"w-full items-stretch","aria-label":y,children:_}),e[29]=n.label,e[30]=t,e[31]=h,e[32]=f,e[33]=_,e[34]=T):T=e[34];let N;return e[35]!==a||e[36]!==T?(N=s.jsxs("div",{className:"flex flex-col gap-1.5",children:[a,T]}),e[35]=a,e[36]=T,e[37]=N):N=e[37],N}let c;e[38]!==n?(c=s.jsx(De,{field:n}),e[38]=n,e[39]=c):c=e[39];let d;e[40]!==t||e[41]!==c?(d=s.jsx(Le,{htmlFor:t,children:c}),e[40]=t,e[41]=c,e[42]=d):d=e[42];const g=n.type==="string"?"text":"number",m=typeof i=="string"?i:"";let x;e[43]!==o?(x=u=>o(u.target.value),e[43]=o,e[44]=x):x=e[44];let j;e[45]!==r||e[46]!==n.label||e[47]!==t||e[48]!==g||e[49]!==m||e[50]!==x?(j=s.jsx(Ke,{id:t,"aria-label":n.label,type:g,value:m,disabled:r,onChange:x}),e[45]=r,e[46]=n.label,e[47]=t,e[48]=g,e[49]=m,e[50]=x,e[51]=j):j=e[51];let p;return e[52]!==d||e[53]!==j?(p=s.jsxs("div",{className:"flex flex-col gap-1.5",children:[d,j]}),e[52]=d,e[53]=j,e[54]=p):p=e[54],p}function De(l){const e=B.c(8),{field:t}=l;let n;e[0]!==t.required?(n=t.required&&s.jsx("span",{className:"ml-0.5 text-warning",children:"*"}),e[0]=t.required,e[1]=n):n=e[1];let i;e[2]!==t.description?(i=t.description&&s.jsx("span",{className:"block text-xs font-normal text-muted-foreground",children:t.description}),e[2]=t.description,e[3]=i):i=e[3];let r;return e[4]!==t.label||e[5]!==n||e[6]!==i?(r=s.jsxs("span",{className:"min-w-0",children:[t.label,n,i]}),e[4]=t.label,e[5]=n,e[6]=i,e[7]=r):r=e[7],r}function Ve(l){const e=B.c(8),{server:t,children:n}=l;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(It,{className:"text-info"}),e[0]=i):i=e[0];let r;e[1]!==t?(r=s.jsxs(_e,{children:[t," needs input"]}),e[1]=t,e[2]=r):r=e[2];let o;e[3]!==n?(o=s.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:n}),e[3]=n,e[4]=o):o=e[4];let c;return e[5]!==r||e[6]!==o?(c=s.jsxs(qe,{className:"border-info/40 bg-info/5",children:[i,r,o]}),e[5]=r,e[6]=o,e[7]=c):c=e[7],c}const Gt=["allow","allow_always","deny"],Qt=[{decision:"allow",label:"Allow",variant:"default"},{decision:"deny",label:"Deny",variant:"destructive"},{decision:"allow_always",label:"Always",variant:"outline"}];function Ht(l,e){return(l.availableDecisions??Gt).includes(e)}function Kt(l){const e=B.c(22),{request:t,queued:n,responding:i,onRespond:r}=l;let o;if(e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i){let c;e[5]!==t?(c=y=>Ht(t,y.decision),e[5]=t,e[6]=c):c=e[6];const d=Qt.filter(c),g=d.some(Wt);let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(Be,{className:"text-warning"}),e[7]=m):m=e[7];const x=t.title||`Allow ${t.toolName}?`;let j;e[8]!==x?(j=s.jsx("span",{className:"min-w-0 flex-1 truncate",children:x}),e[8]=x,e[9]=j):j=e[9];let p;e[10]!==n?(p=n>0&&s.jsxs("span",{className:"shrink-0 font-mono text-xs text-warning",children:["+",n]}),e[10]=n,e[11]=p):p=e[11];let u;e[12]!==j||e[13]!==p?(u=s.jsxs(_e,{className:"flex min-w-0 items-center gap-2",children:[j,p]}),e[12]=j,e[13]=p,e[14]=u):u=e[14];let a;e[15]!==t.toolName?(a=s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:t.toolName}),e[15]=t.toolName,e[16]=a):a=e[16];let h;e[17]!==t.summary?(h=t.summary&&s.jsx("code",{className:"min-w-0 flex-1 truncate rounded bg-muted px-2 py-1 font-mono text-xs text-foreground",children:t.summary}),e[17]=t.summary,e[18]=h):h=e[18];let f;e[19]!==a||e[20]!==h?(f=s.jsxs("div",{className:"col-start-2 mt-2 flex min-w-0 items-center gap-2",children:[a,h]}),e[19]=a,e[20]=h,e[21]=f):f=e[21],o=s.jsxs(qe,{className:"border-warning/40 bg-warning/5",children:[m,u,f,g?s.jsx("div",{className:"col-start-2 mt-3 flex items-center gap-2",children:d.map(y=>{const{decision:v,label:_,variant:T}=y;return s.jsx(U,{size:"xs",variant:T,disabled:i,onClick:()=>r(t.requestId,v),children:_},v)})}):s.jsx("p",{className:"col-start-2 mt-2 text-xs text-warning",children:"Resolve this approval in its own provider"})]}),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=o}else o=e[4];return o}function Wt(l){return l.decision!=="allow_always"}function Xt(l){return l.some(e=>e.options.length===0||e.options.some(t=>t.hasPreview))}function Zt(l){const e=B.c(63),{request:t,responding:n,gone:i,onAnswer:r,onOpenSession:o}=l,c=t.questions,[d,g]=V.useState(0);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m={},e[0]=m):m=e[0];const x=V.useRef(m);let j;e[1]===Symbol.for("react.memo_cache_sentinel")?(j=new Set,e[1]=j):j=e[1];const[p,u]=V.useState(j);if(c.length===0)return null;if(Xt(c)){let E;e[2]!==c[0].question?(E=s.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:c[0].question}),e[2]=c[0].question,e[3]=E):E=e[3];let C;e[4]===Symbol.for("react.memo_cache_sentinel")?(C=s.jsx($e,{"data-icon":"inline-end"}),e[4]=C):C=e[4];let D;e[5]!==o?(D=s.jsxs(U,{variant:"outline",size:"sm",onClick:o,className:"mt-3",children:["Open full question",C]}),e[5]=o,e[6]=D):D=e[6];let O;return e[7]!==E||e[8]!==D?(O=s.jsxs(Ue,{children:[E,D]}),e[7]=E,e[8]=D,e[9]=O):O=e[9],O}const a=c[d];let h;e[10]!==a.question||e[11]!==d||e[12]!==r||e[13]!==c.length||e[14]!==t.toolUseId?(h=function(C){const D={...x.current,[a.question]:C};if(d+1<c.length){x.current=D,u(new Set),g(d+1);return}r(t.toolUseId,D)},e[10]=a.question,e[11]=d,e[12]=r,e[13]=c.length,e[14]=t.toolUseId,e[15]=h):h=e[15];const f=h;let y;e[16]!==a.header?(y=a.header&&s.jsx(Te,{variant:"outline",className:"border-info/40 text-info",children:a.header}),e[16]=a.header,e[17]=y):y=e[17];let v;e[18]!==d||e[19]!==c.length?(v=c.length>1&&s.jsxs("span",{className:"ml-auto shrink-0 font-mono text-xs text-muted-foreground",children:[d+1," of ",c.length]}),e[18]=d,e[19]=c.length,e[20]=v):v=e[20];let _;e[21]!==y||e[22]!==v?(_=s.jsxs("div",{className:"flex items-baseline gap-1.5",children:[y,v]}),e[21]=y,e[22]=v,e[23]=_):_=e[23];let T;e[24]!==a.question?(T=s.jsx("p",{className:"mt-2 line-clamp-3 text-sm leading-relaxed text-foreground",title:a.question,children:a.question}),e[24]=a.question,e[25]=T):T=e[25];let N;e[26]!==p?(N=[...p],e[26]=p,e[27]=N):N=e[27];let b;e[28]!==f||e[29]!==a.multiSelect?(b=E=>{a.multiSelect?u(new Set(E)):E[0]&&f(E[0])},e[28]=f,e[29]=a.multiSelect,e[30]=b):b=e[30];const q=a.multiSelect,S=a.question;let w;if(e[31]!==a.options||e[32]!==n){let E;e[34]!==n?(E=C=>s.jsx(Jt,{option:C,disabled:n},C.label),e[34]=n,e[35]=E):E=e[35],w=a.options.map(E),e[31]=a.options,e[32]=n,e[33]=w}else w=e[33];let I;e[36]!==a.multiSelect||e[37]!==a.question||e[38]!==w||e[39]!==N||e[40]!==b?(I=s.jsx(ze,{value:N,onValueChange:b,multiple:q,orientation:"vertical",variant:"outline",size:"sm",className:"mt-3 w-full items-stretch","aria-label":S,children:w}),e[36]=a.multiSelect,e[37]=a.question,e[38]=w,e[39]=N,e[40]=b,e[41]=I):I=e[41];let z;e[42]!==f||e[43]!==a.multiSelect||e[44]!==d||e[45]!==c.length||e[46]!==n||e[47]!==p?(z=a.multiSelect&&s.jsx(U,{size:"sm",disabled:n||p.size===0,onClick:()=>f(Xe(p)),children:d+1<c.length?"Next":"Send"}),e[42]=f,e[43]=a.multiSelect,e[44]=d,e[45]=c.length,e[46]=n,e[47]=p,e[48]=z):z=e[48];let L;e[49]===Symbol.for("react.memo_cache_sentinel")?(L=s.jsx($e,{"data-icon":"inline-end"}),e[49]=L):L=e[49];let k;e[50]!==o?(k=s.jsxs(U,{variant:"ghost",size:"sm",onClick:o,className:"ml-auto text-muted-foreground",children:["Open session",L]}),e[50]=o,e[51]=k):k=e[51];let R;e[52]!==z||e[53]!==k?(R=s.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[z,k]}),e[52]=z,e[53]=k,e[54]=R):R=e[54];let $;e[55]!==i?($=i&&s.jsx("p",{className:"mt-2 text-xs text-warning",children:"This question may already be answered. Open the session to check."}),e[55]=i,e[56]=$):$=e[56];let A;return e[57]!==I||e[58]!==R||e[59]!==$||e[60]!==_||e[61]!==T?(A=s.jsxs(Ue,{children:[_,T,I,R,$]}),e[57]=I,e[58]=R,e[59]=$,e[60]=_,e[61]=T,e[62]=A):A=e[62],A}function Jt(l){const e=B.c(17),{option:t,disabled:n}=l;let i;e[0]!==t.label?(i=s.jsx("span",{className:"min-w-0 flex-1 truncate text-left",children:t.label}),e[0]=t.label,e[1]=i):i=e[1];const r=i;if(!t.description){let m;return e[2]!==n||e[3]!==r||e[4]!==t.label?(m=s.jsx(ke,{value:t.label,disabled:n,className:"w-full justify-start px-3",children:r}),e[2]=n,e[3]=r,e[4]=t.label,e[5]=m):m=e[5],m}let o;e[6]!==n||e[7]!==t.label?(o=s.jsx(ke,{value:t.label,disabled:n,className:"w-full justify-start px-3"}),e[6]=n,e[7]=t.label,e[8]=o):o=e[8];let c;e[9]!==r||e[10]!==o?(c=s.jsx(Je,{render:o,children:r}),e[9]=r,e[10]=o,e[11]=c):c=e[11];let d;e[12]!==t.description?(d=s.jsx(Ze,{side:"right",className:"max-w-72 text-left",children:t.description}),e[12]=t.description,e[13]=d):d=e[13];let g;return e[14]!==c||e[15]!==d?(g=s.jsxs(et,{children:[c,d]}),e[14]=c,e[15]=d,e[16]=g):g=e[16],g}function Ue(l){const e=B.c(4),{children:t}=l;let n,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(Se,{className:"text-info"}),i=s.jsx(_e,{children:"Answer to continue"}),e[0]=n,e[1]=i):(n=e[0],i=e[1]);let r;return e[2]!==t?(r=s.jsxs(qe,{className:"border-info/40 bg-info/5",children:[n,i,s.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:t})]}),e[2]=t,e[3]=r):r=e[3],r}function es(l){const e=B.c(33),{request:t,responding:n,onChoose:i}=l;let r,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(Be,{className:"text-warning"}),o=s.jsx(_e,{children:"Claude declined this request"}),e[0]=r,e[1]=o):(r=e[0],o=e[1]);let c;e[2]!==t.originalModel?(c=s.jsxs("p",{className:"text-sm leading-relaxed text-foreground",children:[t.originalModel," would not answer. Retrying on a fallback model may work."]}),e[2]=t.originalModel,e[3]=c):c=e[3];let d;e[4]!==t.guidanceText?(d=t.guidanceText&&s.jsx("p",{className:"mt-1 text-sm leading-relaxed text-muted-foreground",children:t.guidanceText}),e[4]=t.guidanceText,e[5]=d):d=e[5];let g;e[6]!==i||e[7]!==t.requestId?(g=()=>i(t.requestId,"retry_fallback"),e[6]=i,e[7]=t.requestId,e[8]=g):g=e[8];let m;e[9]!==t.fallbackModel||e[10]!==n||e[11]!==g?(m=s.jsxs(U,{size:"sm",disabled:n,onClick:g,children:["Retry on ",t.fallbackModel]}),e[9]=t.fallbackModel,e[10]=n,e[11]=g,e[12]=m):m=e[12];let x;e[13]!==i||e[14]!==t.requestId?(x=()=>i(t.requestId,"edit_prompt"),e[13]=i,e[14]=t.requestId,e[15]=x):x=e[15];let j;e[16]!==n||e[17]!==x?(j=s.jsx(U,{variant:"outline",size:"sm",disabled:n,onClick:x,children:"Edit prompt"}),e[16]=n,e[17]=x,e[18]=j):j=e[18];let p;e[19]!==i||e[20]!==t.requestId?(p=()=>i(t.requestId,"cancelled"),e[19]=i,e[20]=t.requestId,e[21]=p):p=e[21];let u;e[22]!==n||e[23]!==p?(u=s.jsx(U,{variant:"ghost",size:"sm",disabled:n,className:"ml-auto text-muted-foreground",onClick:p,children:"Dismiss"}),e[22]=n,e[23]=p,e[24]=u):u=e[24];let a;e[25]!==u||e[26]!==m||e[27]!==j?(a=s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[m,j,u]}),e[25]=u,e[26]=m,e[27]=j,e[28]=a):a=e[28];let h;return e[29]!==a||e[30]!==c||e[31]!==d?(h=s.jsxs(qe,{className:"border-warning/40 bg-warning/5",children:[r,o,s.jsxs("div",{className:"col-start-2 mt-1 min-w-0",children:[c,d,a]})]}),e[29]=a,e[30]=c,e[31]=d,e[32]=h):h=e[32],h}function Pe(l){return l==="awaiting_approval"||l==="awaiting_prompt"||l==="awaiting_question"||l==="awaiting_answer"}function Ee(l){return l==="done"||l==="failed"}const Ye={awaiting_approval:0,awaiting_prompt:1,awaiting_question:2,awaiting_answer:3,running:4,failed:5,done:6};function ts(l,e,t,n,i,r){return t?"awaiting_approval":n?"awaiting_prompt":i?"awaiting_question":r||l.agentStatus==="deferred"||l.agentStatus==="idle"&&e?"awaiting_answer":l.agentTerminalReason?"failed":e&&l.agentStatus&&nt.has(l.agentStatus)?"running":"done"}const ss=6;function ns({sessions:l,procBySession:e,summaries:t,permissionsBySession:n,questionsBySession:i,elicitationsBySession:r,dialogsBySession:o,awaitingPlan:c,newlyCompleted:d,finishedLimit:g=ss,now:m=Date.now()}){const x=[];for(const u of tt(l)){const a=n.get(u.sessionId)??[],h=i.get(u.sessionId)??[],f=r.get(u.sessionId)??[],y=o.get(u.sessionId)??[],v=c.has(u.sessionId),_=a.length+h.length+f.length+y.length+Number(v);u.teamName&&u.agentName&&_===0||x.push({session:u,state:ts(u,st(u,e,m),a.length>0,f.length>0||y.length>0,h.length>0,v),summary:t.get(u.sessionId)??null,permissions:a,questions:h,elicitations:f,dialogs:y})}const j=x.filter(u=>Ee(u.state)),p=[...j.filter(u=>d.has(u.session.sessionId)),...j.filter(u=>!d.has(u.session.sessionId))].slice(0,g);return[...x.filter(u=>!Ee(u.state)),...p].sort((u,a)=>Ye[u.state]-Ye[a.state])}function is(l,e){switch(e){case"running":return l.filter(t=>t.state==="running");case"needs-you":return l.filter(t=>Pe(t.state));case"finished":return l.filter(t=>Ee(t.state));default:return l}}function ls(l){const e={total:l.length,running:0,needsYou:0,finished:0,failed:0};for(const t of l)t.state==="running"&&e.running++,Pe(t.state)&&e.needsYou++,Ee(t.state)&&e.finished++,t.state==="failed"&&e.failed++;return e}function os(l){return l>=90?"text-destructive":l>=70?"text-warning":"text-muted-foreground"}const as={awaiting_approval:{label:"Waiting for approval",text:"text-warning",shell:"border-warning/40 bg-warning/5",icon:Se},awaiting_prompt:{label:"Waiting for your input",text:"text-info",shell:"border-info/40 bg-info/5",icon:Se},awaiting_question:{label:"Waiting for your answer",text:"text-info",shell:"border-info/40 bg-info/5",icon:Se},awaiting_answer:{label:"Waiting for your answer",text:"text-warning",shell:"border-warning/40 bg-warning/5",icon:Se},running:{label:"Running",text:"text-info",shell:"border-border",icon:null},done:{label:"Done",text:"text-success",shell:"border-border",icon:qt},failed:{label:"Failed",text:"text-destructive",shell:"border-destructive/40",icon:_t}};function rs(l){const e=B.c(3),{icon:t}=l;if(!t){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx("span",{className:"size-2 shrink-0 rounded-full bg-info"}),e[0]=i):i=e[0],i}let n;return e[1]!==t?(n=s.jsx(t,{className:"size-3.5 shrink-0"}),e[1]=t,e[2]=n):n=e[2],n}const cs=V.memo(function(e){const t=B.c(88),{card:n,customName:i,projectLabel:r,responding:o,goneQuestions:c,compact:d,onOpen:g,onRespond:m,onAnswerQuestion:x,onAnswerElicitation:j,onChooseDialog:p}=e,u=d===void 0?!1:d,{session:a,state:h,summary:f,permissions:y,questions:v,elicitations:_,dialogs:T}=n,N=as[h],b=y[0],q=v[0],S=_[0],w=T[0],I=!!(b||q||S||w);let z;t[0]!==i||t[1]!==a?(z=it(a,i),t[0]=i,t[1]=a,t[2]=z):z=t[2];const L=z,k=u&&"gap-1.5 py-2";let R;t[3]!==N.shell||t[4]!==k?(R=ue("motion-card motion-list-item group flex min-w-0 flex-col gap-2 rounded-lg border bg-card p-3 text-left transition-colors hover:border-foreground/20",N.shell,k),t[3]=N.shell,t[4]=k,t[5]=R):R=t[5];const $=`Open session ${L}`;let A;t[6]!==r?(A=s.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground",children:r}),t[6]=r,t[7]=A):A=t[7];let E;t[8]!==f?(E=(f==null?void 0:f.model)&&s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:lt(f.model)}),t[8]=f,t[9]=E):E=t[9];let C;t[10]===Symbol.for("react.memo_cache_sentinel")?(C=s.jsx($e,{"data-icon":"inline-end",className:"shrink-0 text-transparent transition-colors group-hover:text-muted-foreground"}),t[10]=C):C=t[10];let D;t[11]!==A||t[12]!==E?(D=s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[A,E,C]}),t[11]=A,t[12]=E,t[13]=D):D=t[13];const O=u?"truncate":"line-clamp-2";let se;t[14]!==O?(se=ue("text-sm font-medium leading-snug text-foreground",O),t[14]=O,t[15]=se):se=t[15];let P;t[16]!==se||t[17]!==L?(P=s.jsx("span",{className:se,children:L}),t[16]=se,t[17]=L,t[18]=P):P=t[18];let ne;t[19]!==g||t[20]!==P||t[21]!==$||t[22]!==D?(ne=s.jsxs(U,{variant:"ghost",onClick:g,className:"-m-1 h-auto min-w-0 flex-col items-stretch justify-start gap-1 whitespace-normal p-1 text-left","aria-label":$,children:[D,P]}),t[19]=g,t[20]=P,t[21]=$,t[22]=D,t[23]=ne):ne=t[23];let ie;t[24]!==N.text?(ie=ue("flex items-center gap-1.5 text-xs font-medium",N.text),t[24]=N.text,t[25]=ie):ie=t[25];let le;t[26]!==N.icon?(le=s.jsx(rs,{icon:N.icon}),t[26]=N.icon,t[27]=le):le=t[27];let te;t[28]!==N.label?(te=s.jsx("span",{className:"truncate",children:N.label}),t[28]=N.label,t[29]=te):te=t[29];const ce=a.lastActivityAt||a.lastModified;let G;t[30]!==ce?(G=ot(ce),t[30]=ce,t[31]=G):G=t[31];let oe;t[32]!==G?(oe=s.jsx("span",{className:"ml-auto shrink-0 font-mono text-xs font-normal text-muted-foreground",children:G}),t[32]=G,t[33]=oe):oe=t[33];let Q;t[34]!==ie||t[35]!==le||t[36]!==te||t[37]!==oe?(Q=s.jsxs("div",{className:ie,children:[le,te,oe]}),t[34]=ie,t[35]=le,t[36]=te,t[37]=oe,t[38]=Q):Q=t[38];let H;t[39]!==m||t[40]!==y.length||t[41]!==b||t[42]!==o||t[43]!==a.sessionId?(H=b&&s.jsx(Kt,{request:b,queued:y.length-1,responding:o.has(b.requestId),onRespond:(re,Y)=>m(a.sessionId,re,Y)}),t[39]=m,t[40]=y.length,t[41]=b,t[42]=o,t[43]=a.sessionId,t[44]=H):H=t[44];let K;t[45]!==w||t[46]!==p||t[47]!==b||t[48]!==o||t[49]!==a.sessionId?(K=!b&&w&&s.jsx(es,{request:w,responding:o.has(w.requestId),onChoose:(re,Y)=>p(a.sessionId,re,Y)},w.requestId),t[45]=w,t[46]=p,t[47]=b,t[48]=o,t[49]=a.sessionId,t[50]=K):K=t[50];let W;t[51]!==w||t[52]!==S||t[53]!==j||t[54]!==b||t[55]!==o||t[56]!==a.sessionId?(W=!b&&!w&&S&&s.jsx(Bt,{request:S,responding:o.has(S.requestId),onAnswer:(re,Y)=>j(a.sessionId,re,Y)},S.requestId),t[51]=w,t[52]=S,t[53]=j,t[54]=b,t[55]=o,t[56]=a.sessionId,t[57]=W):W=t[57];let X;t[58]!==w||t[59]!==S||t[60]!==c||t[61]!==x||t[62]!==g||t[63]!==q||t[64]!==b||t[65]!==o||t[66]!==a.sessionId?(X=!b&&!w&&!S&&q&&s.jsx(Zt,{request:q,responding:o.has(q.toolUseId),gone:c.has(q.toolUseId),onAnswer:(re,Y)=>x(a.sessionId,re,Y),onOpenSession:g},q.toolUseId),t[58]=w,t[59]=S,t[60]=c,t[61]=x,t[62]=g,t[63]=q,t[64]=b,t[65]=o,t[66]=a.sessionId,t[67]=X):X=t[67];let Z;t[68]!==I||t[69]!==f?(Z=!I&&(f==null?void 0:f.currentTool)&&s.jsx(ds,{tool:f.currentTool}),t[68]=I,t[69]=f,t[70]=Z):Z=t[70];let J;t[71]!==I||t[72]!==u||t[73]!==f?(J=!u&&!I&&(f==null?void 0:f.lastAssistantText)&&s.jsx("p",{className:"line-clamp-4 text-sm leading-relaxed text-muted-foreground",children:f.lastAssistantText}),t[71]=I,t[72]=u,t[73]=f,t[74]=J):J=t[74];let ee;t[75]!==f?(ee=f&&s.jsx(us,{summary:f}),t[75]=f,t[76]=ee):ee=t[76];let ae;return t[77]!==ne||t[78]!==Q||t[79]!==H||t[80]!==K||t[81]!==W||t[82]!==X||t[83]!==Z||t[84]!==J||t[85]!==ee||t[86]!==R?(ae=s.jsxs("div",{className:R,children:[ne,Q,H,K,W,X,Z,J,ee]}),t[77]=ne,t[78]=Q,t[79]=H,t[80]=K,t[81]=W,t[82]=X,t[83]=Z,t[84]=J,t[85]=ee,t[86]=R,t[87]=ae):ae=t[87],ae});function ds(l){const e=B.c(7),{tool:t}=l;let n;e[0]!==t.name?(n=s.jsx("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:t.name}),e[0]=t.name,e[1]=n):n=e[1];let i;e[2]!==t.summary?(i=s.jsx("code",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground/80",children:t.summary}),e[2]=t.summary,e[3]=i):i=e[3];let r;return e[4]!==n||e[5]!==i?(r=s.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-md bg-muted/50 px-2.5 py-2",children:[n,i]}),e[4]=n,e[5]=i,e[6]=r):r=e[6],r}function us(l){const e=B.c(11),{summary:t}=l,n=t.filesTotal,i=t.context,r=n.count>0,o=i!==null&&i.used>0;if(!r&&!o)return null;let c;e[0]!==n.additions||e[1]!==n.count||e[2]!==n.deletions||e[3]!==r?(c=r&&s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsxs("span",{className:"truncate",children:[n.count," file",n.count===1?"":"s"]}),s.jsx(at,{add:n.additions,del:n.deletions})]}),e[0]=n.additions,e[1]=n.count,e[2]=n.deletions,e[3]=r,e[4]=c):c=e[4];let d;e[5]!==i||e[6]!==o?(d=o&&s.jsxs("span",{className:ue("ml-auto shrink-0",os(i.percent)),children:["ctx ",i.percent,"%"]}),e[5]=i,e[6]=o,e[7]=d):d=e[7];let g;return e[8]!==c||e[9]!==d?(g=s.jsxs("div",{className:"mt-auto flex items-center gap-2 border-t pt-2 font-mono text-xs text-muted-foreground",children:[c,d]}),e[8]=c,e[9]=d,e[10]=g):g=e[10],g}const fs=8e3,ms=12,xs="Start Claude Code, Codex, or Copilot and every session shows up here",hs=[{id:"all",label:"All"},{id:"running",label:"Running"},{id:"needs-you",label:"Needs you"},{id:"finished",label:"Finished"}],gs=[{id:"grid",label:"Grid layout",Icon:Ct},{id:"list",label:"List layout",Icon:Tt}];function Ns(l){const e=B.c(118),{onSelectSession:t}=l,{sessions:n,procBySession:i,newlyCompleted:r,refresh:o}=rt(),{summaries:c,loading:d,error:g,refresh:m}=Mt(),{permissionsBySession:x,questionsBySession:j,elicitationsBySession:p,dialogsBySession:u,awaitingPlan:a,responding:h,respond:f,answerQuestion:y,answerElicitation:v,answerDialog:_,refresh:T}=ct();let N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N=new Set,e[0]=N):N=e[0];const[b,q]=V.useState(N),{names:S}=dt(),{names:w}=ut(),[I,z]=V.useState("all");let L;e[1]===Symbol.for("react.memo_cache_sentinel")?(L=ft("mission-control-layout"),e[1]=L):L=e[1];const[k,R]=mt(L,"grid");let $;e[2]!==a||e[3]!==u||e[4]!==p||e[5]!==r||e[6]!==x||e[7]!==i||e[8]!==j||e[9]!==n||e[10]!==c?($=ns({sessions:n,procBySession:i,summaries:c,permissionsBySession:x,questionsBySession:j,elicitationsBySession:p,dialogsBySession:u,awaitingPlan:a,newlyCompleted:r}),e[2]=a,e[3]=u,e[4]=p,e[5]=r,e[6]=x,e[7]=i,e[8]=j,e[9]=n,e[10]=c,e[11]=$):$=e[11];const A=$;let E;e[12]!==A?(E=ls(A),e[12]=A,e[13]=E):E=e[13];const C=E;let D;e[14]!==A||e[15]!==I?(D=is(A,I),e[14]=A,e[15]=I,e[16]=D):D=e[16];const O=D;let se;e[17]!==T||e[18]!==o||e[19]!==m?(se=()=>{o(),m(),T()},e[17]=T,e[18]=o,e[19]=m,e[20]=se):se=e[20];const P=se;let ne,ie;e[21]!==o?(ne=()=>{const F=setInterval(()=>{document.visibilityState==="visible"&&o()},fs);return()=>clearInterval(F)},ie=[o],e[21]=o,e[22]=ne,e[23]=ie):(ne=e[22],ie=e[23]),V.useEffect(ne,ie);let le;e[24]!==y?(le=async(F,M,Me)=>{(await y(F,M,Me)).ok||q(Ge=>new Set(Ge).add(M))},e[24]=y,e[25]=le):le=e[25];const te=le;let ce;e[26]!==A.length?(ce=function(M){A.length<=ms?Ot(M,{kind:"fade"}):V.startTransition(M)},e[26]=A.length,e[27]=ce):ce=e[27];const G=ce;let oe;e[28]===Symbol.for("react.memo_cache_sentinel")?(oe=s.jsx("h2",{className:"truncate text-sm font-semibold",children:"Mission Control"}),e[28]=oe):oe=e[28];let Q;e[29]!==C.total?(Q=s.jsx(Te,{variant:"secondary",children:C.total}),e[29]=C.total,e[30]=Q):Q=e[30];let H;e[31]!==C.needsYou?(H=C.needsYou>0&&s.jsxs(Te,{variant:"outline",className:"border-warning/40 text-warning",children:[C.needsYou," need you"]}),e[31]=C.needsYou,e[32]=H):H=e[32];let K;e[33]!==C.failed?(K=C.failed>0&&s.jsxs(Te,{variant:"destructive",children:[C.failed," failed"]}),e[33]=C.failed,e[34]=K):K=e[34];let W;e[35]!==Q||e[36]!==H||e[37]!==K?(W=s.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[oe,Q,H,K]}),e[35]=Q,e[36]=H,e[37]=K,e[38]=W):W=e[38];let X;e[39]!==I?(X=[I],e[39]=I,e[40]=X):X=e[40];let Z;e[41]!==I||e[42]!==G?(Z=F=>{const M=F.at(-1);M&&M!==I&&G(()=>z(M))},e[41]=I,e[42]=G,e[43]=Z):Z=e[43];let J;e[44]!==C.needsYou?(J=hs.map(F=>s.jsxs(ke,{value:F.id,"aria-label":`Show ${F.label.toLowerCase()} sessions`,children:[F.label,F.id==="needs-you"&&C.needsYou>0&&s.jsx("span",{className:"font-mono text-warning",children:C.needsYou})]},F.id)),e[44]=C.needsYou,e[45]=J):J=e[45];let ee;e[46]!==X||e[47]!==Z||e[48]!==J?(ee=s.jsx(ze,{value:X,onValueChange:Z,variant:"outline",size:"sm",spacing:0,"aria-label":"Filter sessions",children:J}),e[46]=X,e[47]=Z,e[48]=J,e[49]=ee):ee=e[49];let ae;e[50]!==k||e[51]!==R||e[52]!==G?(ae=gs.map(F=>{const{id:M,label:Me,Icon:Oe}=F;return s.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":Me,"aria-pressed":k===M,onClick:()=>{M!==k&&G(()=>R(M))},className:ue(k===M&&"bg-accent text-accent-foreground"),children:s.jsx(Oe,{"data-icon":"inline-start"})},M)}),e[50]=k,e[51]=R,e[52]=G,e[53]=ae):ae=e[53];const re=d&&"animate-spin";let Y;e[54]!==re?(Y=ue(re),e[54]=re,e[55]=Y):Y=e[55];let fe;e[56]!==Y?(fe=s.jsx(At,{"data-icon":"inline-start",className:Y}),e[56]=Y,e[57]=fe):fe=e[57];let me;e[58]!==P||e[59]!==fe?(me=s.jsx(U,{variant:"ghost",size:"icon-xs","aria-label":"Refresh Mission Control",onClick:P,children:fe}),e[58]=P,e[59]=fe,e[60]=me):me=e[60];let xe;e[61]!==ae||e[62]!==me?(xe=s.jsxs("div",{className:"flex items-center gap-1",children:[ae,me]}),e[61]=ae,e[62]=me,e[63]=xe):xe=e[63];let he;e[64]!==ee||e[65]!==xe?(he=s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[ee,xe]}),e[64]=ee,e[65]=xe,e[66]=he):he=e[66];let ge;e[67]!==W||e[68]!==he?(ge=s.jsxs("header",{className:"flex min-h-12 shrink-0 flex-wrap items-center gap-3 border-b px-4 py-2",children:[W,he]}),e[67]=W,e[68]=he,e[69]=ge):ge=e[69];let pe;e[70]!==g||e[71]!==P?(pe=g&&s.jsxs(qe,{variant:"destructive",className:"mb-4",children:[s.jsx(Et,{}),s.jsx(_e,{children:"Mission Control could not refresh"}),s.jsx(wt,{className:"truncate",children:g}),s.jsx(vt,{children:s.jsx(U,{variant:"outline",size:"xs",onClick:P,children:"Retry"})})]}),e[70]=g,e[71]=P,e[72]=pe):pe=e[72];let be;e[73]!==A.length||e[74]!==I||e[75]!==d||e[76]!==O.length?(be=O.length===0&&!d&&s.jsx(xt,{className:"min-h-64",children:s.jsxs(ht,{children:[s.jsx(gt,{variant:"icon",children:s.jsx(kt,{})}),s.jsx(pt,{children:A.length===0?"No live sessions":`Nothing matches "${I}"`}),s.jsx(bt,{children:A.length===0?xs:"Try a different filter."})]})}),e[73]=A.length,e[74]=I,e[75]=d,e[76]=O.length,e[77]=be):be=e[77];let je;e[78]!==A.length||e[79]!==d||e[80]!==O.length?(je=O.length===0&&d&&A.length===0&&s.jsxs("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-muted-foreground",children:[s.jsx(jt,{}),"Loading sessions…"]}),e[78]=A.length,e[79]=d,e[80]=O.length,e[81]=je):je=e[81];const Re=k==="grid"&&"md:grid-cols-2 2xl:grid-cols-3";let we;e[82]!==Re?(we=ue("grid grid-cols-1 gap-3",Re),e[82]=Re,e[83]=we):we=e[83];let ve;if(e[84]!==_||e[85]!==v||e[86]!==b||e[87]!==te||e[88]!==k||e[89]!==t||e[90]!==w||e[91]!==f||e[92]!==h||e[93]!==S||e[94]!==O){let F;e[96]!==_||e[97]!==v||e[98]!==b||e[99]!==te||e[100]!==k||e[101]!==t||e[102]!==w||e[103]!==f||e[104]!==h||e[105]!==S?(F=M=>s.jsx(cs,{card:M,compact:k==="list",customName:S[M.session.sessionId],projectLabel:w[M.session.dirName]??Nt(M.session),responding:h,goneQuestions:b,onOpen:()=>t(M.session.dirName,M.session.fileName),onRespond:f,onAnswerQuestion:te,onAnswerElicitation:v,onChooseDialog:_},M.session.sessionId),e[96]=_,e[97]=v,e[98]=b,e[99]=te,e[100]=k,e[101]=t,e[102]=w,e[103]=f,e[104]=h,e[105]=S,e[106]=F):F=e[106],ve=O.map(F),e[84]=_,e[85]=v,e[86]=b,e[87]=te,e[88]=k,e[89]=t,e[90]=w,e[91]=f,e[92]=h,e[93]=S,e[94]=O,e[95]=ve}else ve=e[95];let Ne;e[107]!==we||e[108]!==ve?(Ne=s.jsx("div",{className:we,children:ve}),e[107]=we,e[108]=ve,e[109]=Ne):Ne=e[109];let ye;e[110]!==pe||e[111]!==be||e[112]!==je||e[113]!==Ne?(ye=s.jsx(yt,{className:"flex-1",children:s.jsxs("div",{className:"p-4",children:[pe,be,je,Ne]})}),e[110]=pe,e[111]=be,e[112]=je,e[113]=Ne,e[114]=ye):ye=e[114];let Ce;return e[115]!==ge||e[116]!==ye?(Ce=s.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[ge,ye]}),e[115]=ge,e[116]=ye,e[117]=Ce):Ce=e[117],Ce}export{Ns as MissionControl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as u,c as _e,j as s}from"./vendor-react-gGw_S5I_.js";import{w as Ze,bw as Qe,b2 as et,bx as ct,by as Vt,_ as Ue,z as Dt,G as Rt,H as nt,y as It,b1 as lt,B as ue,bz as At,E as Lt,av as Ot,n as qt,I as Zt,W as Qt,m as es,b8 as Mt,b9 as Ft,b7 as Bt,bA as Ve,bB as ts,bC as ss,a4 as ns,bD as ls,bE as rs,bF as os,bG as as,bH as is,i as Pt,j as zt,k as $t,aY as ut,X as cs,V as ft,U as us,bI as Kt,aF as Ut,h as Yt,D as Gt,aa as fs,ab as ds,ac as ms,ad as hs,ae as ps,af as xs,ag as gs,ah as bs,ai as ws,a5 as ys,am as Ht,$ as dt,bt as mt,bJ as js}from"./index-DOkVkYA9.js";import{a4 as Ss,aw as ks,o as Ns,J as Xt,A as Cs,h as ot,X as at,ax as Es,ay as _s,az as Ts,c as vs,aA as Ds,j as ht,a2 as Rs,P as Is,N as Wt,aB as As}from"./vendor-ui-DpPWL3l4.js";import"./vendor-shiki-DOn6sF-i.js";import"./vendor-markdown-BE1gYnO9.js";const We="/api/browser",Ls=5e3,Os="all";function pt(n,e=""){return`${We}/sessions/${encodeURIComponent(n)}${e}`}function xt(n){return{headers:{"content-type":"application/json"},body:JSON.stringify(n)}}function tt(n,e){return n instanceof Error&&n.message?n.message:e}function Ms(n){const[e,t]=u.useState(null),[l,a]=u.useState(null),i=u.useRef(!1),o=u.useRef(0),f=u.useRef(!1);u.useEffect(()=>(i.current=!0,()=>{i.current=!1}),[]);const d=u.useCallback(async()=>{const c=++o.current;f.current=!0;try{const p=await Ze(Qe(We)),m=p.ok?await p.json():null;if(!i.current||c!==o.current)return;m?(t(g=>JSON.stringify(g)===JSON.stringify(m)?g:m),a(null)):a(await et(p,`Could not read the browser list (${p.status})`))}catch(p){i.current&&c===o.current&&a(tt(p,"Could not read the browser list"))}finally{c===o.current&&(f.current=!1)}},[]);u.useEffect(()=>{if(!n)return;d();const c=setInterval(()=>{f.current||d()},Ls);return()=>clearInterval(c)},[n,d]);const h=u.useCallback(async(c,p,m)=>{let g;try{g=await Ze(Qe(c),p)}catch(D){return{ok:!1,error:tt(D,m)}}if(!g.ok)return{ok:!1,error:await et(g,m)};const E=await ct(g);return d(),{ok:!0,data:E}},[d]),w=u.useCallback(async(c,p,m)=>{const g=await h(c,p,m);return g.ok?{ok:!0}:g},[h]),_=u.useCallback((c,p)=>w(`${We}/sessions`,{method:"POST",...xt({name:c,note:p})},`Could not create ${c}`),[w]),I=u.useCallback(c=>w(pt(c),{method:"DELETE"},`Could not delete ${c}`),[w]),y=u.useCallback(c=>w(pt(c,"/stop"),{method:"POST"},`Could not stop ${c}`),[w]),v=u.useCallback(async()=>{const c="Could not read where the browser skill is installed";let p;try{p=await Ze(Qe(`${We}/skill`))}catch(g){return{ok:!1,error:tt(g,c)}}if(!p.ok)return{ok:!1,error:await et(p,c)};const m=await ct(p);return Array.isArray(m==null?void 0:m.targets)?{ok:!0,targets:m.targets}:{ok:!1,error:c}},[]),j=u.useCallback(async c=>{const p="Could not install the browser skill",m=await h(`${We}/skill/install`,{method:"POST",...xt({target:c})},p);if(!m.ok)return m;const{paths:g}=m.data??{};return Array.isArray(g)&&g.every(E=>typeof E=="string")?{ok:!0,paths:g}:{ok:!1,error:p}},[h]);return{status:e,error:l,create:_,remove:I,stop:y,readSkillTargets:v,installSkill:j}}const st=4;new TextEncoder;const Fs=new TextDecoder;function Bs(n){if(n.byteLength<st)throw new Error("Frame truncated before header length");const e=new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0),t=st+e;if(n.byteLength<t)throw new Error("Frame truncated inside header");return{header:Ps(Fs.decode(n.subarray(st,t))),jpeg:n.subarray(t)}}function Ps(n){let e;try{e=JSON.parse(n)}catch{throw new Error("Frame header is not valid JSON")}if(typeof e!="object"||e===null)throw new Error("Frame header is not an object");const{deviceWidth:t,deviceHeight:l,pageScaleFactor:a,offsetTop:i,scrollOffsetX:o,scrollOffsetY:f,targetId:d,ts:h}=e;if(typeof t!="number"||typeof l!="number"||typeof a!="number"||typeof i!="number"||typeof o!="number"||typeof f!="number"||typeof d!="string"||typeof h!="number")throw new Error("Frame header is missing fields");return{deviceWidth:t,deviceHeight:l,pageScaleFactor:a,offsetTop:i,scrollOffsetX:o,scrollOffsetY:f,targetId:d,ts:h}}const gt=500,zs=5e3,bt=[];function $s(n){const e=window.location.protocol==="https:"?"wss:":"ws:",t=Vt();return`${e}//${window.location.host}${t}/__browser?session=${encodeURIComponent(n)}`}function Ks(n){try{return JSON.parse(n)}catch{return null}}function Us(n,e){return n.state===e.state&&n.session===e.session&&n.message===e.message}function Ys(n,e){return n.targetId===e.targetId&&n.url===e.url&&n.title===e.title&&n.canGoBack===e.canGoBack&&n.canGoForward===e.canGoForward}function Gs(n,e){return n.length===e.length&&n.every((t,l)=>t.targetId===e[l].targetId&&t.url===e[l].url&&t.title===e[l].title)}function rt(n){n&&n.bitmap.close()}function Hs(n,e){const t=_e.c(16),[l,a]=u.useState("idle"),[i,o]=u.useState(null),[f,d]=u.useState(null),[h,w]=u.useState(bt),[_,I]=u.useState(null),[y,v]=u.useState(null),[j,c]=u.useState(null),[p,m]=u.useState(null),g=u.useRef(null),E=u.useRef(null),D=u.useRef(null),F=u.useRef(e);let T,V;t[0]!==e?(T=()=>{F.current=e},V=[e],t[0]=e,t[1]=T,t[2]=V):(T=t[1],V=t[2]),u.useEffect(T,V);let K,H;t[3]!==n?(K=()=>{if(o(null),d(null),w(bt),I(null),m(null),v(null),c(null),n===null){a("idle");return}const U=n,k={alive:!0,issued:0,applied:0};let N=gt;const P=function(L,C){if(!k.alive||C<=k.applied){rt(L);return}k.applied=C,E.current=L,v(L),c(Date.now())},M=function(L){let C,W;try{const q=Bs(new Uint8Array(L));C=q.header,W=new Blob([q.jpeg],{type:"image/jpeg"})}catch{return}const x=k.issued=k.issued+1;createImageBitmap(W).then(q=>P({bitmap:q,header:C},x),Xs)},Y=function(L){var W;const C=Ks(L);if(C)e:switch(C.type){case"status":{o(x=>x&&Us(x,C)?x:C),m(null);break e}case"page":{d(x=>x&&Ys(x,C)?x:C);break e}case"tabs":{w(x=>Gs(x,C.tabs)?x:C.tabs),I(C.followed);break e}case"error":{m(C.message);break e}case"clipboard":(W=F.current)==null||W.call(F,C.text)}};function z(){if(!k.alive)return;const B=g.current;if(B&&B.readyState!==WebSocket.CLOSED)return;a("connecting");const L=new WebSocket($s(U));L.binaryType="arraybuffer",g.current=L,L.onopen=()=>{if(!k.alive){L.close();return}N=gt,a("connected")},L.onmessage=C=>{k.alive&&(typeof C.data=="string"?Y(C.data):C.data instanceof ArrayBuffer&&M(C.data))},L.onclose=()=>{if(!k.alive)return;g.current=null,a("disconnected");const C=N;N=Math.min(N*2,zs),D.current=setTimeout(z,C)}}return z(),()=>{k.alive=!1,D.current&&(clearTimeout(D.current),D.current=null);const B=g.current;g.current=null,B&&(B.onclose=null,B.close()),rt(E.current),E.current=null}},H=[n],t[3]=n,t[4]=K,t[5]=H):(K=t[4],H=t[5]),u.useEffect(K,H);let X;t[6]===Symbol.for("react.memo_cache_sentinel")?(X=U=>{const k=g.current;k&&k.readyState===WebSocket.OPEN&&k.send(JSON.stringify(U))},t[6]=X):X=t[6];const R=X;let O;return t[7]!==p||t[8]!==_||t[9]!==y||t[10]!==j||t[11]!==f||t[12]!==i||t[13]!==l||t[14]!==h?(O={status:l,state:i,page:f,tabs:h,followed:_,frame:y,lastFrameAt:j,error:p,send:R},t[7]=p,t[8]=_,t[9]=y,t[10]=j,t[11]=f,t[12]=i,t[13]=l,t[14]=h,t[15]=O):O=t[15],O}function Xs(){}const Ws=6e3;function Js(n){const e=_e.c(16),{activity:t}=n,[l,a]=u.useState(!0),i=t?`${t.toolCallId}:${t.done}`:null;let o,f;if(e[0]!==i?(o=()=>{if(i===null)return;a(!0);const c=setTimeout(()=>a(!1),Ws);return()=>clearTimeout(c)},f=[i],e[0]=i,e[1]=o,e[2]=f):(o=e[1],f=e[2]),u.useEffect(o,f),!t)return null;const d=l?"opacity-100":"opacity-0";let h;e[3]!==d?(h=Ue("pointer-events-none absolute inset-x-0 bottom-0 flex justify-center px-2 pb-6 pt-8","bg-gradient-to-t from-transparent via-background/70 to-transparent","transition-opacity duration-700 motion-reduce:transition-none",d),e[3]=d,e[4]=h):h=e[4];let w;e[5]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Ss,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted-foreground"}),e[5]=w):w=e[5];let _;e[6]!==t.command?(_=s.jsx("code",{className:"min-w-0 truncate font-mono text-[11px]",children:t.command}),e[6]=t.command,e[7]=_):_=e[7];const I=t.done?"ran":"running";let y;e[8]!==I?(y=s.jsx("span",{className:"shrink-0 text-muted-foreground",children:I}),e[8]=I,e[9]=y):y=e[9];let v;e[10]!==_||e[11]!==y?(v=s.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-full bg-background/85 px-3 py-1 text-xs shadow-xs backdrop-blur-sm",children:[w,_,y]}),e[10]=_,e[11]=y,e[12]=v):v=e[12];let j;return e[13]!==h||e[14]!==v?(j=s.jsx("div",{className:h,children:v}),e[13]=h,e[14]=v,e[15]=j):j=e[15],j}const wt="npm i -g agent-browser && agent-browser install",Vs=1500;function qs(n){const e=_e.c(20),{onOpenSkill:t}=n,[l,a]=u.useState(!1),i=u.useRef(null);let o,f;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=()=>()=>{i.current&&clearTimeout(i.current)},f=[],e[0]=o,e[1]=f):(o=e[0],f=e[1]),u.useEffect(o,f);let d;e[2]===Symbol.for("react.memo_cache_sentinel")?(d=async function(){await Ot(wt)&&(a(!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>a(!1),Vs))},e[2]=d):d=e[2];const h=d;let w,_;e[3]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Dt,{variant:"icon",children:s.jsx(Ns,{})}),_=s.jsx(Rt,{children:"Nothing to show yet"}),e[3]=w,e[4]=_):(w=e[3],_=e[4]);let I;e[5]===Symbol.for("react.memo_cache_sentinel")?(I=s.jsxs(It,{children:[w,_,s.jsxs(nt,{children:["This panel streams a real browser the agent drives. That takes the"," ",s.jsx("code",{className:"font-mono",children:"agent-browser"})," command, which is not on this machine yet."]})]}),e[5]=I):I=e[5];let y;e[6]===Symbol.for("react.memo_cache_sentinel")?(y=s.jsx("code",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:wt}),e[6]=y):y=e[6];const v=l?"Copied":"Copy install command";let j;e[7]===Symbol.for("react.memo_cache_sentinel")?(j=()=>void h(),e[7]=j):j=e[7];let c;e[8]!==l?(c=l?s.jsx(Xt,{"data-icon":"inline-start",className:"text-emerald-500"}):s.jsx(Cs,{"data-icon":"inline-start"}),e[8]=l,e[9]=c):c=e[9];let p;e[10]!==c||e[11]!==v?(p=s.jsxs("div",{className:"flex w-full items-center gap-1.5 rounded-md border bg-muted/40 py-1 pl-2.5 pr-1 text-left",children:[y,s.jsx(ue,{variant:"ghost",size:"icon-xs","aria-label":v,onClick:j,children:c})]}),e[10]=c,e[11]=v,e[12]=p):p=e[12];let m;e[13]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(ot,{"data-icon":"inline-start"}),e[13]=m):m=e[13];let g;e[14]!==t?(g=s.jsxs(ue,{variant:"outline",size:"sm",onClick:t,children:[m,"Install the agent skill…"]}),e[14]=t,e[15]=g):g=e[15];let E;e[16]===Symbol.for("react.memo_cache_sentinel")?(E=s.jsx(nt,{className:"text-xs",children:"The skill teaches the agent when to use a named browser and how this panel follows along. Installing writes it into your home directory, so it is never done for you."}),e[16]=E):E=e[16];let D;return e[17]!==p||e[18]!==g?(D=s.jsxs(Lt,{className:"size-full",children:[I,s.jsxs(At,{children:[p,g,E]})]}),e[17]=p,e[18]=g,e[19]=D):D=e[19],D}function Zs(n){const e=_e.c(23),{name:t,lastUrl:l,onOpen:a}=n,[i,o]=u.useState(null),f=i??l??"";let d;e[0]!==a||e[1]!==f?(d=function(F){F.preventDefault();const T=f.trim();T&&a(T)},e[0]=a,e[1]=f,e[2]=d):d=e[2];const h=d;let w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Dt,{variant:"icon",children:s.jsx(ks,{})}),e[3]=w):w=e[3];let _;e[4]!==t?(_=s.jsxs(Rt,{children:[t," isn’t running"]}),e[4]=t,e[5]=_):_=e[5];let I;e[6]===Symbol.for("react.memo_cache_sentinel")?(I=s.jsx(nt,{children:"The agent opens it by itself the moment it browses. You can also open a page here and watch from the start."}),e[6]=I):I=e[6];let y;e[7]!==_?(y=s.jsxs(It,{children:[w,_,I]}),e[7]=_,e[8]=y):y=e[8];let v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=D=>o(D.target.value),e[9]=v):v=e[9];let j;e[10]!==f?(j=s.jsx(lt,{"aria-label":"Page to open",className:"h-8 text-sm",placeholder:"example.com",spellCheck:!1,autoComplete:"off",value:f,onChange:v}),e[10]=f,e[11]=j):j=e[11];let c;e[12]!==f?(c=f.trim(),e[12]=f,e[13]=c):c=e[13];const p=!c;let m;e[14]!==p?(m=s.jsx(ue,{type:"submit",size:"sm",disabled:p,children:"Open"}),e[14]=p,e[15]=m):m=e[15];let g;e[16]!==h||e[17]!==m||e[18]!==j?(g=s.jsx(At,{children:s.jsxs("form",{className:"flex w-full items-center gap-2",onSubmit:h,children:[j,m]})}),e[16]=h,e[17]=m,e[18]=j,e[19]=g):g=e[19];let E;return e[20]!==g||e[21]!==y?(E=s.jsxs(Lt,{className:"size-full",children:[y,g]}),e[20]=g,e[21]=y,e[22]=E):E=e[22],E}function yt(n){if(n.url==="about:blank"&&(!n.title.trim()||n.title==="about:blank"))return"New tab";if(n.title.trim())return n.title.trim();try{return new URL(n.url).hostname||n.url}catch{return n.url}}const Qs={live:{label:"LIVE",hint:"Streaming the page as it changes",tone:"text-emerald-600 dark:text-emerald-400",dot:"bg-emerald-500"},idle:{label:"IDLE",hint:"The page has not changed for a few seconds",tone:"text-muted-foreground",dot:"ring-1 ring-muted-foreground/50 ring-inset"},offline:{label:"OFFLINE",hint:"The connection dropped — this is the last frame that arrived",tone:"text-amber-600 dark:text-amber-400",dot:"bg-amber-500"}};function en(n){const e=_e.c(17),{status:t}=n,l=Qs[t];let a;e[0]!==l.tone?(a=Ue("ml-1 flex shrink-0 cursor-default items-center gap-1 text-[10px] font-medium tracking-wide",l.tone),e[0]=l.tone,e[1]=a):a=e[1];let i;e[2]!==a?(i=s.jsx("span",{className:a}),e[2]=a,e[3]=i):i=e[3];let o;e[4]!==l.dot?(o=Ue("size-1.5 rounded-full",l.dot),e[4]=l.dot,e[5]=o):o=e[5];let f;e[6]!==o?(f=s.jsx("span",{"aria-hidden":"true",className:o}),e[6]=o,e[7]=f):f=e[7];let d;e[8]!==l.label||e[9]!==i||e[10]!==f?(d=s.jsxs(Mt,{render:i,children:[f,l.label]}),e[8]=l.label,e[9]=i,e[10]=f,e[11]=d):d=e[11];let h;e[12]!==l.hint?(h=s.jsx(Ft,{children:l.hint}),e[12]=l.hint,e[13]=h):h=e[13];let w;return e[14]!==d||e[15]!==h?(w=s.jsxs(Bt,{children:[d,h]}),e[14]=d,e[15]=h,e[16]=w):w=e[16],w}const tn=u.memo(function(e){const t=_e.c(49),{page:l,tabs:a,followed:i,status:o,onNavigate:f,onBack:d,onForward:h,onReload:w,onFollow:_,onCloseTab:I}=e,[y,v]=u.useState(null),j=(l==null?void 0:l.url)??"";let c;t[0]!==y||t[1]!==j||t[2]!==f?(c=function(J){J.preventDefault();const fe=(y??j).trim();v(null),fe&&f(fe)},t[0]=y,t[1]=j,t[2]=f,t[3]=c):c=t[3];const p=c;let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=function(J){J.key==="Escape"&&(J.preventDefault(),v(null),J.currentTarget.blur())},t[4]=m):m=t[4];const g=m,E=!(l!=null&&l.canGoBack);let D;t[5]===Symbol.for("react.memo_cache_sentinel")?(D=s.jsx(Es,{"data-icon":"inline-start"}),t[5]=D):D=t[5];let F;t[6]!==d||t[7]!==E?(F=s.jsx(ue,{variant:"ghost",size:"icon-sm","aria-label":"Back",disabled:E,onClick:d,children:D}),t[6]=d,t[7]=E,t[8]=F):F=t[8];const T=!(l!=null&&l.canGoForward);let V;t[9]===Symbol.for("react.memo_cache_sentinel")?(V=s.jsx(_s,{"data-icon":"inline-start"}),t[9]=V):V=t[9];let K;t[10]!==h||t[11]!==T?(K=s.jsx(ue,{variant:"ghost",size:"icon-sm","aria-label":"Forward",disabled:T,onClick:h,children:V}),t[10]=h,t[11]=T,t[12]=K):K=t[12];const H=!l;let X;t[13]===Symbol.for("react.memo_cache_sentinel")?(X=s.jsx(Ts,{"data-icon":"inline-start"}),t[13]=X):X=t[13];let R;t[14]!==w||t[15]!==H?(R=s.jsx(ue,{variant:"ghost",size:"icon-sm","aria-label":"Reload",disabled:H,onClick:w,children:X}),t[14]=w,t[15]=H,t[16]=R):R=t[16];const O=y??j;let U;t[17]===Symbol.for("react.memo_cache_sentinel")?(U=G=>v(G.target.value),t[17]=U):U=t[17];let k;t[18]===Symbol.for("react.memo_cache_sentinel")?(k=()=>v(null),t[18]=k):k=t[18];let N;t[19]!==O?(N=s.jsx(qt,{"aria-label":"Page URL",className:"text-xs",placeholder:"Enter a URL",spellCheck:!1,autoComplete:"off",value:O,onChange:U,onFocus:sn,onBlur:k,onKeyDown:g}),t[19]=O,t[20]=N):N=t[20];const P=!j;let M;t[21]!==j?(M=()=>window.open(j,"_blank","noopener,noreferrer"),t[21]=j,t[22]=M):M=t[22];let Y;t[23]===Symbol.for("react.memo_cache_sentinel")?(Y=s.jsx(vs,{"data-icon":"inline-start"}),t[23]=Y):Y=t[23];let z;t[24]!==P||t[25]!==M?(z=s.jsx(Zt,{align:"inline-end",children:s.jsx(Qt,{size:"icon-xs","aria-label":"Open in your browser",disabled:P,onClick:M,children:Y})}),t[24]=P,t[25]=M,t[26]=z):z=t[26];let B;t[27]!==N||t[28]!==z?(B=s.jsxs(es,{className:"h-7",children:[N,z]}),t[27]=N,t[28]=z,t[29]=B):B=t[29];let L;t[30]!==p||t[31]!==B?(L=s.jsx("form",{className:"ml-1 min-w-0 flex-1",onSubmit:p,children:B}),t[30]=p,t[31]=B,t[32]=L):L=t[32];let C;t[33]!==o?(C=o&&s.jsx(en,{status:o}),t[33]=o,t[34]=C):C=t[34];let W;t[35]!==R||t[36]!==L||t[37]!==C||t[38]!==F||t[39]!==K?(W=s.jsxs("div",{className:"flex items-center gap-0.5",children:[F,K,R,L,C]}),t[35]=R,t[36]=L,t[37]=C,t[38]=F,t[39]=K,t[40]=W):W=t[40];let x;t[41]!==i||t[42]!==I||t[43]!==_||t[44]!==a?(x=a.length>0&&s.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-0.5",children:a.map(G=>s.jsxs("div",{className:Ue("flex max-w-48 shrink-0 items-center rounded-md",G.targetId===i&&"bg-secondary"),children:[s.jsx(ue,{size:"xs",variant:"ghost",className:"min-w-0 shrink rounded-r-none","aria-current":G.targetId===i?"page":void 0,title:G.title||G.url,onClick:()=>_(G.targetId),onMouseDown:nn,onAuxClick:J=>{J.button===1&&(J.preventDefault(),I(G.targetId))},children:s.jsx("span",{className:"truncate",children:yt(G)})}),s.jsx(ue,{size:"icon-xs",variant:"ghost",className:"rounded-l-none","aria-label":`Close tab: ${yt(G)}`,title:"Close tab",onClick:()=>I(G.targetId),children:s.jsx(at,{"data-icon":"inline-start"})})]},G.targetId))}),t[41]=i,t[42]=I,t[43]=_,t[44]=a,t[45]=x):x=t[45];let q;return t[46]!==W||t[47]!==x?(q=s.jsxs("div",{className:"flex shrink-0 flex-col gap-1 border-b px-2 py-1.5",children:[W,x]}),t[46]=W,t[47]=x,t[48]=q):q=t[48],q});function sn(n){return n.target.select()}function nn(n){n.button===1&&n.preventDefault()}const qe="default",ln=/^[a-z0-9][a-z0-9_-]{0,39}$/,rn="Lowercase letters, numbers, - and _, starting with a letter or number (40 max).",on=10080*60*1e3;function an(n){if(!n)return null;const e=new Date(n).getTime();if(Number.isNaN(e))return null;if(Date.now()-e>=on)return new Date(e).toLocaleDateString();const t=ys(n);return t==="now"?"just now":`${t} ago`}function jt(n){const e=_e.c(5),{running:t,className:l}=n,a=t?"bg-emerald-500":"ring-1 ring-muted-foreground/50 ring-inset";let i;e[0]!==l||e[1]!==a?(i=Ue("size-2 shrink-0 rounded-full",a,l),e[0]=l,e[1]=a,e[2]=i):i=e[2];let o;return e[3]!==i?(o=s.jsx("span",{"aria-hidden":"true",className:i}),e[3]=i,e[4]=o):o=e[4],o}const cn=u.memo(function(e){const t=_e.c(126),{sessions:l,selected:a,currentSessionId:i,followAgent:o,busy:f,onSelect:d,onToggleFollow:h,onOpenSkill:w,onCreate:_,onRemove:I,onStop:y,onShowDefault:v,onClose:j}=e,c=f===void 0?!1:f,p=u.useId(),m=u.useId(),[g,E]=u.useState(!1),[D,F]=u.useState(""),[T,V]=u.useState(""),[K,H]=u.useState(null),[X,R]=u.useState(!1),[O,U]=u.useState(null),k=a===qe;let N;t[0]!==a||t[1]!==l?(N=l.find(ne=>ne.name===a)??null,t[0]=a,t[1]=l,t[2]=N):N=t[2];const P=N;let M,Y;t[3]!==D?(Y=D.trim(),M=Y.length>0&&!ln.test(Y),t[3]=D,t[4]=M,t[5]=Y):(M=t[4],Y=t[5]);const z=M,B=z?rn:K,L=Y.length>0&&!z&&!X;let C;t[6]===Symbol.for("react.memo_cache_sentinel")?(C=function(){F(""),V(""),H(null),R(!1),E(!0)},t[6]=C):C=t[6];const W=C;let x;t[7]!==L||t[8]!==T||t[9]!==_||t[10]!==d||t[11]!==Y?(x=async function(){if(!L)return;R(!0);const Fe=await _(Y,T.trim());if(R(!1),!Fe.ok){H(Fe.error);return}E(!1),d(Y)},t[7]=L,t[8]=T,t[9]=_,t[10]=d,t[11]=Y,t[12]=x):x=t[12];const q=x,G=!k&&"border-amber-500/40 bg-amber-500/10";let J;t[13]!==G?(J=Ue("@container/browser-bar flex h-10 shrink-0 items-center gap-2 border-b px-2",G),t[13]=G,t[14]=J):J=t[14];let fe;t[15]===Symbol.for("react.memo_cache_sentinel")?(fe=s.jsx(ue,{variant:"ghost",size:"xs","aria-label":"Switch browser",className:"max-w-40"}),t[15]=fe):fe=t[15];const Le=(P==null?void 0:P.running)??!1;let be;t[16]!==Le?(be=s.jsx(jt,{running:Le}),t[16]=Le,t[17]=be):be=t[17];let de;t[18]!==a?(de=s.jsx("span",{className:"truncate",children:a}),t[18]=a,t[19]=de):de=t[19];let Oe;t[20]===Symbol.for("react.memo_cache_sentinel")?(Oe=s.jsx(Rs,{"data-icon":"inline-end",className:"opacity-60"}),t[20]=Oe):Oe=t[20];let we;t[21]!==be||t[22]!==de?(we=s.jsxs(ts,{render:fe,children:[be,de,Oe]}),t[21]=be,t[22]=de,t[23]=we):we=t[23];let ye;t[24]!==d?(ye=ne=>d(ne),t[24]=d,t[25]=ye):ye=t[25];let je;if(t[26]!==i||t[27]!==l){let ne;t[29]!==i?(ne=Fe=>{const it=an(Fe.lastUsedAt),Jt=Fe.driverSessionId!==null&&Fe.driverSessionId!==i;return s.jsxs(ss,{value:Fe.name,className:"items-start py-1.5",children:[s.jsx(jt,{running:Fe.running,className:"mt-[0.4rem]"}),s.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"truncate",children:Fe.name}),s.jsx("span",{className:"sr-only",children:Fe.running?"running":"stopped"}),Fe.isDefault&&s.jsx(ns,{variant:"secondary",className:"h-4 px-1.5 text-[0.65rem] font-normal",children:"Default"}),it&&s.jsx("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground",children:it})]}),Jt&&s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:"driven by another session"})]})]},Fe.name)},t[29]=i,t[30]=ne):ne=t[30],je=l.map(ne),t[26]=i,t[27]=l,t[28]=je}else je=t[28];let Se;t[31]!==a||t[32]!==ye||t[33]!==je?(Se=s.jsx(ls,{value:a,onValueChange:ye,children:je}),t[31]=a,t[32]=ye,t[33]=je,t[34]=Se):Se=t[34];let Te;t[35]===Symbol.for("react.memo_cache_sentinel")?(Te=s.jsx(rs,{}),t[35]=Te):Te=t[35];let ve;t[36]===Symbol.for("react.memo_cache_sentinel")?(ve=s.jsx(Is,{}),t[36]=ve):ve=t[36];let me;t[37]!==c?(me=s.jsxs(Ve,{disabled:c,onClick:W,children:[ve,"New browser…"]}),t[37]=c,t[38]=me):me=t[38];let De;t[39]===Symbol.for("react.memo_cache_sentinel")?(De=s.jsx(ot,{}),t[39]=De):De=t[39];let he;t[40]!==w?(he=s.jsxs(Ve,{onClick:w,children:[De,"Agent skill…"]}),t[40]=w,t[41]=he):he=t[41];let ke;t[42]!==c||t[43]!==k||t[44]!==y||t[45]!==a||t[46]!==(P==null?void 0:P.running)?(ke=!k&&s.jsxs(s.Fragment,{children:[s.jsxs(Ve,{disabled:c||!(P!=null&&P.running),onClick:()=>y(a),children:[s.jsx(Ds,{}),"Stop"]}),s.jsxs(Ve,{variant:"destructive",disabled:c,onClick:()=>U(a),children:[s.jsx(ht,{}),"Delete…"]})]}),t[42]=c,t[43]=k,t[44]=y,t[45]=a,t[46]=P==null?void 0:P.running,t[47]=ke):ke=t[47];let pe;t[48]!==Se||t[49]!==me||t[50]!==he||t[51]!==ke?(pe=s.jsxs(os,{align:"start",sideOffset:6,className:"w-72",children:[Se,Te,me,he,ke]}),t[48]=Se,t[49]=me,t[50]=he,t[51]=ke,t[52]=pe):pe=t[52];let Ne;t[53]!==we||t[54]!==pe?(Ne=s.jsxs(as,{children:[we,pe]}),t[53]=we,t[54]=pe,t[55]=Ne):Ne=t[55];let ae;t[56]===Symbol.for("react.memo_cache_sentinel")?(ae=s.jsx("span",{className:"flex-1"}),t[56]=ae):ae=t[56];let Ce;t[57]!==k||t[58]!==v?(Ce=!k&&s.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsxs("span",{role:"status",className:"flex min-w-0 items-center gap-1.5 text-xs font-medium text-amber-700 dark:text-amber-300",children:[s.jsx(Wt,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),s.jsx("span",{className:"sr-only @sm/browser-bar:not-sr-only @sm/browser-bar:whitespace-nowrap",children:"Not the default browser"})]}),s.jsx(ue,{variant:"outline",size:"xs",onClick:v,children:"Show default"})]}),t[57]=k,t[58]=v,t[59]=Ce):Ce=t[59];let xe;t[60]!==h?(xe=ne=>h(ne),t[60]=h,t[61]=xe):xe=t[61];let ie;t[62]!==o||t[63]!==xe?(ie=s.jsx(is,{size:"sm","aria-label":"Follow agent",pressed:o,onPressedChange:xe,className:"text-muted-foreground data-pressed:text-foreground"}),t[62]=o,t[63]=xe,t[64]=ie):ie=t[64];let Me,Ee;t[65]===Symbol.for("react.memo_cache_sentinel")?(Me=s.jsx(As,{"data-icon":"inline-start"}),Ee=s.jsx("span",{className:"hidden @md/browser-bar:inline",children:"Follow"}),t[65]=Me,t[66]=Ee):(Me=t[65],Ee=t[66]);let ee;t[67]!==ie?(ee=s.jsxs(Mt,{render:ie,children:[Me,Ee]}),t[67]=ie,t[68]=ee):ee=t[68];let Z;t[69]===Symbol.for("react.memo_cache_sentinel")?(Z=s.jsx(Ft,{children:"Switch to whichever browser this session’s agent uses"}),t[69]=Z):Z=t[69];let te;t[70]!==ee?(te=s.jsxs(Bt,{children:[ee,Z]}),t[70]=ee,t[71]=te):te=t[71];let ge;t[72]===Symbol.for("react.memo_cache_sentinel")?(ge=s.jsx(at,{"data-icon":"inline-start"}),t[72]=ge):ge=t[72];let Q;t[73]!==j?(Q=s.jsx(ue,{variant:"ghost",size:"icon-sm","aria-label":"Close browser panel",onClick:j,children:ge}),t[73]=j,t[74]=Q):Q=t[74];let S;t[75]!==q?(S=ne=>{ne.preventDefault(),q()},t[75]=q,t[76]=S):S=t[76];let r;t[77]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsxs(Pt,{children:[s.jsx(zt,{children:"New browser"}),s.jsx($t,{children:"A named browser keeps its own cookies and logins, and stays out of the default one."})]}),t[77]=r):r=t[77];const b=!!B;let A;t[78]!==p?(A=s.jsx(ut,{htmlFor:p,children:"Name"}),t[78]=p,t[79]=A):A=t[79];const se=!!B;let le;t[80]===Symbol.for("react.memo_cache_sentinel")?(le=ne=>{F(ne.target.value),H(null)},t[80]=le):le=t[80];let re;t[81]!==p||t[82]!==D||t[83]!==se?(re=s.jsx(lt,{id:p,autoFocus:!0,autoComplete:"off",spellCheck:!1,placeholder:"shop","aria-invalid":se,value:D,onChange:le}),t[81]=p,t[82]=D,t[83]=se,t[84]=re):re=t[84];let ce;t[85]!==B?(ce=s.jsx(cs,{children:B}),t[85]=B,t[86]=ce):ce=t[86];let oe;t[87]!==b||t[88]!==A||t[89]!==re||t[90]!==ce?(oe=s.jsxs(ft,{"data-invalid":b,children:[A,re,ce]}),t[87]=b,t[88]=A,t[89]=re,t[90]=ce,t[91]=oe):oe=t[91];let Be;t[92]===Symbol.for("react.memo_cache_sentinel")?(Be=s.jsx("span",{className:"text-muted-foreground/60",children:"(optional)"}),t[92]=Be):Be=t[92];let Re;t[93]!==m?(Re=s.jsxs(ut,{htmlFor:m,children:["Note ",Be]}),t[93]=m,t[94]=Re):Re=t[94];let Pe;t[95]===Symbol.for("react.memo_cache_sentinel")?(Pe=ne=>V(ne.target.value),t[95]=Pe):Pe=t[95];let Ie;t[96]!==T||t[97]!==m?(Ie=s.jsx(lt,{id:m,autoComplete:"off",placeholder:"What this browser is signed in to",value:T,onChange:Pe}),t[96]=T,t[97]=m,t[98]=Ie):Ie=t[98];let ze;t[99]!==Re||t[100]!==Ie?(ze=s.jsxs(ft,{children:[Re,Ie]}),t[99]=Re,t[100]=Ie,t[101]=ze):ze=t[101];let $e;t[102]!==oe||t[103]!==ze?($e=s.jsxs(us,{className:"gap-4",children:[oe,ze]}),t[102]=oe,t[103]=ze,t[104]=$e):$e=t[104];let Ye;t[105]===Symbol.for("react.memo_cache_sentinel")?(Ye=s.jsx(Kt,{render:s.jsx(ue,{type:"button",variant:"outline"}),children:"Cancel"}),t[105]=Ye):Ye=t[105];const $=!L;let Ae;t[106]!==$?(Ae=s.jsxs(Ut,{children:[Ye,s.jsx(ue,{type:"submit",disabled:$,children:"Create browser"})]}),t[106]=$,t[107]=Ae):Ae=t[107];let Ke;t[108]!==S||t[109]!==$e||t[110]!==Ae?(Ke=s.jsx(Yt,{className:"sm:max-w-sm",children:s.jsxs("form",{className:"flex flex-col gap-4",onSubmit:S,children:[r,$e,Ae]})}),t[108]=S,t[109]=$e,t[110]=Ae,t[111]=Ke):Ke=t[111];let He;t[112]!==g||t[113]!==Ke?(He=s.jsx(Gt,{open:g,onOpenChange:E,children:Ke}),t[112]=g,t[113]=Ke,t[114]=He):He=t[114];let Xe;t[115]!==O||t[116]!==I?(Xe=O!==null&&s.jsx(fs,{open:!0,onOpenChange:ne=>{ne||U(null)},children:s.jsxs(ds,{size:"sm",children:[s.jsxs(ms,{children:[s.jsx(hs,{className:"bg-destructive/10 text-destructive",children:s.jsx(ht,{})}),s.jsxs(ps,{children:["Delete ",O,"?"]}),s.jsx(xs,{children:"Its profile goes with it, so everything signed in there is signed out. Other browsers are untouched."})]}),s.jsxs(gs,{children:[s.jsx(bs,{size:"sm",children:"Cancel"}),s.jsx(ws,{variant:"destructive",size:"sm",onClick:()=>{I(O),U(null)},children:"Delete browser"})]})]})}),t[115]=O,t[116]=I,t[117]=Xe):Xe=t[117];let Je;return t[118]!==Ne||t[119]!==Ce||t[120]!==te||t[121]!==Q||t[122]!==He||t[123]!==Xe||t[124]!==J?(Je=s.jsxs("div",{className:J,children:[Ne,ae,Ce,te,Q,He,Xe]}),t[118]=Ne,t[119]=Ce,t[120]=te,t[121]=Q,t[122]=He,t[123]=Xe,t[124]=J,t[125]=Je):Je=t[125],Je});function un(n){const e=_e.c(36),{open:t,onOpenChange:l,readTargets:a,install:i}=n,[o,f]=u.useState(null),[d,h]=u.useState(null),[w,_]=u.useState(null);let I;e[0]!==a?(I=async()=>{const N=await a();N.ok?(f(N.targets),h(null)):h(N.error)},e[0]=a,e[1]=I):I=e[1];const y=I;let v,j;e[2]!==y||e[3]!==t?(v=()=>{t&&(h(null),y())},j=[t,y],e[2]=y,e[3]=t,e[4]=v,e[5]=j):(v=e[4],j=e[5]),u.useEffect(v,j);let c;e[6]!==i||e[7]!==y?(c=async function(P){_(P);const M=await i(P);_(null),M.ok?await y():h(M.error)},e[6]=i,e[7]=y,e[8]=c):c=e[8];const p=c;let m;e[9]!==o?(m=(o==null?void 0:o.some(fn))??!1,e[9]=o,e[10]=m):m=e[10];const g=m;let E;e[11]===Symbol.for("react.memo_cache_sentinel")?(E=s.jsx(zt,{children:"Agent skill"}),e[11]=E):E=e[11];let D;e[12]===Symbol.for("react.memo_cache_sentinel")?(D=s.jsxs(Pt,{children:[E,s.jsxs($t,{children:["The skill teaches an agent how Cogpit’s browsers work: when to use a named one, when to keep to a throwaway, and that this panel is watching. Install it for agents you run outside Cogpit — it writes a"," ",s.jsx("code",{className:"font-mono",children:"SKILL.md"})," into that CLI’s configuration directory in your home folder."]})]}),e[12]=D):D=e[12];let F;e[13]!==d?(F=d&&s.jsx("p",{role:"alert",className:"text-sm text-destructive",children:d}),e[13]=d,e[14]=F):F=e[14];let T;e[15]!==w||e[16]!==p||e[17]!==o?(T=o===null?s.jsxs("div",{role:"status",className:"flex items-center gap-2 py-4 text-sm text-muted-foreground",children:[s.jsx(Ht,{}),"Reading where it is installed…"]}):s.jsx("ul",{className:"flex flex-col gap-2",children:o.map(N=>s.jsxs("li",{className:"flex items-center gap-3 rounded-md border p-2.5",children:[s.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsx("span",{className:"truncate text-sm font-medium",children:N.label}),s.jsx("span",{className:"truncate font-mono text-xs text-muted-foreground",children:N.configRoot}),N.automatic&&s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:"Already automatic in the sessions Cogpit starts"})]}),N.installed?s.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(Xt,{"aria-hidden":!0,className:"size-3.5 text-emerald-500"}),"Installed"]}):s.jsx(ue,{size:"xs",variant:"outline","aria-label":`Install for ${N.label}`,disabled:w!==null,onClick:()=>void p(N.kind),children:"Install"})]},N.kind))}),e[15]=w,e[16]=p,e[17]=o,e[18]=T):T=e[18];const V=!g||w!==null;let K;e[19]!==p?(K=()=>void p(Os),e[19]=p,e[20]=K):K=e[20];let H;e[21]===Symbol.for("react.memo_cache_sentinel")?(H=s.jsx(ot,{"data-icon":"inline-start"}),e[21]=H):H=e[21];let X;e[22]!==V||e[23]!==K?(X=s.jsxs(ue,{variant:"outline",disabled:V,onClick:K,children:[H,"Install for all"]}),e[22]=V,e[23]=K,e[24]=X):X=e[24];let R;e[25]===Symbol.for("react.memo_cache_sentinel")?(R=s.jsx(Kt,{render:s.jsx(ue,{type:"button"}),children:"Done"}),e[25]=R):R=e[25];let O;e[26]!==X?(O=s.jsxs(Ut,{children:[X,R]}),e[26]=X,e[27]=O):O=e[27];let U;e[28]!==O||e[29]!==F||e[30]!==T?(U=s.jsxs(Yt,{className:"sm:max-w-md",children:[D,F,T,O]}),e[28]=O,e[29]=F,e[30]=T,e[31]=U):U=e[31];let k;return e[32]!==l||e[33]!==t||e[34]!==U?(k=s.jsx(Gt,{open:t,onOpenChange:l,children:U}),e[32]=l,e[33]=t,e[34]=U,e[35]=k):k=e[35],k}function fn(n){return!n.installed}const dn={x:0,y:0,width:0,height:0,scale:0};function mn(n,e){if(n.width<=0||n.height<=0||e.width<=0||e.height<=0)return dn;const t=Math.min(1,n.width/e.width,n.height/e.height),l=e.width*t,a=e.height*t;return{x:Math.round((n.width-l)/2),y:Math.round((n.height-a)/2),width:l,height:a,scale:t}}function St(n,e,t,l,a={}){if(l.scale<=0||l.width<=0||l.height<=0)return null;const i=n-t.left-l.x,o=e-t.top-l.y;return!(i>=0&&o>=0&&i<=l.width&&o<=l.height)&&!a.clamp?null:{x:kt(i/l.scale,l.width/l.scale),y:kt(o/l.scale,l.height/l.scale)}}function kt(n,e){return Math.min(Math.max(n,0),e)}const hn=1,pn=2,xn=4,gn=8;function Ge(n){return(n.altKey?hn:0)|(n.ctrlKey?pn:0)|(n.metaKey?xn:0)|(n.shiftKey?gn:0)}const bn=["left","middle","right"];function Nt(n){return bn[n]??"left"}const wn=150,Ct=2,yn=500,Et=5,jn=1,Sn=2,kn=16,Nn="Keyboard captured · Esc to release",Cn=new Set(["F5","F11","F12"]),En=new Set(["i","j","c"]);function _t(n){return Cn.has(n.key)||n.metaKey?!0:n.ctrlKey&&n.shiftKey&&En.has(n.key.toLowerCase())}function _n(n){if(!(n.ctrlKey||n.metaKey))return n.key.length===1?n.key:n.key==="Enter"?"\r":void 0}function Tt(n,e,t){return e===jn?n*kn:e===Sn?n*t:n}function Tn(n,e,t){try{n.drawImage(e,t.x,t.y,t.width,t.height)}catch{}}function vn(n){const e=_e.c(85),{frame:t,send:l,onSizeChange:a,className:i}=n,o=u.useRef(null),f=u.useRef(null),d=u.useRef(null),h=u.useRef(null),w=u.useRef(!1);let _;e[0]===Symbol.for("react.memo_cache_sentinel")?(_={count:0,at:0,x:0,y:0,button:-1},e[0]=_):_=e[0];const I=u.useRef(_);let y;e[1]===Symbol.for("react.memo_cache_sentinel")?(y=new Map,e[1]=y):y=e[1];const v=u.useRef(y);let j;e[2]===Symbol.for("react.memo_cache_sentinel")?(j={width:0,height:0,dpr:1},e[2]=j):j=e[2];const[c,p]=u.useState(j),[m,g]=u.useState(!1),E=t?t.header.deviceWidth:0,D=t?t.header.deviceHeight:0;let F;e[3]!==D||e[4]!==E||e[5]!==c?(F=mn(c,{width:E,height:D}),e[3]=D,e[4]=E,e[5]=c,e[6]=F):F=e[6];const T=F,V=u.useRef(a);let K,H;e[7]!==a?(K=()=>{V.current=a},H=[a],e[7]=a,e[8]=K,e[9]=H):(K=e[8],H=e[9]),u.useEffect(K,H);let X,R;e[10]===Symbol.for("react.memo_cache_sentinel")?(X=()=>{const S=o.current;if(!S)return;let r=null;const b=()=>{const se=S.getBoundingClientRect(),le=Math.round(se.width),re=Math.round(se.height),ce=window.devicePixelRatio||1;p(oe=>oe.width===le&&oe.height===re&&oe.dpr===ce?oe:{width:le,height:re,dpr:ce}),r&&clearTimeout(r),r=setTimeout(()=>{r=null,le>0&&re>0&&V.current(le,re,ce)},wn)};b();const A=new ResizeObserver(b);return A.observe(S),()=>{A.disconnect(),r&&clearTimeout(r)}},R=[],e[10]=X,e[11]=R):(X=e[10],R=e[11]),u.useEffect(X,R);let O,U;e[12]!==T||e[13]!==t||e[14]!==c?(U=()=>{const S=f.current,r=S==null?void 0:S.getContext("2d");if(!S||!r)return;const b=Math.round(c.width*c.dpr),A=Math.round(c.height*c.dpr);S.width!==b&&(S.width=b),S.height!==A&&(S.height=A),r.setTransform(c.dpr,0,0,c.dpr,0,0),r.clearRect(0,0,c.width,c.height),!(!t||T.width<=0||T.height<=0)&&Tn(r,t.bitmap,T)},O=[t,T,c],e[12]=T,e[13]=t,e[14]=c,e[15]=O,e[16]=U):(O=e[15],U=e[16]),u.useEffect(U,O);let k,N;e[17]!==t?(k=()=>()=>rt(t),N=[t],e[17]=t,e[18]=k,e[19]=N):(k=e[18],N=e[19]),u.useEffect(k,N);let P;e[20]!==T?(P=function(r,b,A){const se=f.current;return se?St(r,b,se.getBoundingClientRect(),T,{clamp:A}):null},e[20]=T,e[21]=P):P=e[21];const M=P;let Y;e[22]!==l?(Y=function(r,b,A,se,le){l({type:"mouse",event:r,x:b.x,y:b.y,button:A,clickCount:se,modifiers:le})},e[22]=l,e[23]=Y):Y=e[23];const z=Y;let B;e[24]===Symbol.for("react.memo_cache_sentinel")?(B=function(r){const b=I.current,A=Date.now(),se=r.button===b.button&&A-b.at<yn&&Math.abs(r.clientX-b.x)<=Et&&Math.abs(r.clientY-b.y)<=Et;return I.current={count:se?b.count+1:1,at:A,x:r.clientX,y:r.clientY,button:r.button},I.current.count},e[24]=B):B=e[24];const L=B;let C;e[25]!==M||e[26]!==z?(C=function(){const r=d.current;if(d.current=null,!r)return;const b=M(r.clientX,r.clientY,w.current);b&&z("move",b,"none",0,r.modifiers)},e[25]=M,e[26]=z,e[27]=C):C=e[27];const W=C;let x;e[28]!==W?(x=function(){h.current!==null&&(cancelAnimationFrame(h.current),h.current=null),W()},e[28]=W,e[29]=x):x=e[29];const q=x;let G;e[30]!==M||e[31]!==z?(G=function(r){if(r.currentTarget.focus(),r.button===Ct)return;const b=M(r.clientX,r.clientY,!1);b&&(r.currentTarget.setPointerCapture(r.pointerId),w.current=!0,z("down",b,Nt(r.button),L(r),Ge(r)))},e[30]=M,e[31]=z,e[32]=G):G=e[32];const J=G;let fe;e[33]!==W?(fe=function(r){d.current={clientX:r.clientX,clientY:r.clientY,modifiers:Ge(r)},h.current===null&&(h.current=requestAnimationFrame(()=>{h.current=null,W()}))},e[33]=W,e[34]=fe):fe=e[34];const Le=fe;let be;e[35]!==q||e[36]!==M||e[37]!==z?(be=function(r){q();const b=w.current;if(w.current=!1,r.currentTarget.hasPointerCapture(r.pointerId)&&r.currentTarget.releasePointerCapture(r.pointerId),r.button===Ct)return;const A=M(r.clientX,r.clientY,b);A&&z("up",A,Nt(r.button),I.current.count,Ge(r))},e[35]=q,e[36]=M,e[37]=z,e[38]=be):be=e[38];const de=be;let Oe;e[39]!==M||e[40]!==z?(Oe=function(r){r.preventDefault();const b=M(r.clientX,r.clientY,!1);if(!b)return;const A=Ge(r);z("down",b,"right",1,A),z("up",b,"right",1,A)},e[39]=M,e[40]=z,e[41]=Oe):Oe=e[41];const we=Oe;let ye;e[42]!==l?(ye=function(r){if(r.key==="Escape"){r.currentTarget.blur();return}_t(r)||r.preventDefault();const b={type:"key",event:"down",key:r.key,code:r.code,modifiers:Ge(r)},A=_n(r);A!==void 0&&(b.text=A),v.current.set(r.code,r.key),l(b)},e[42]=l,e[43]=ye):ye=e[43];const je=ye;let Se;e[44]!==l?(Se=function(r){r.key!=="Escape"&&(_t(r)||r.preventDefault(),v.current.delete(r.code),l({type:"key",event:"up",key:r.key,code:r.code,modifiers:Ge(r)}))},e[44]=l,e[45]=Se):Se=e[45];const Te=Se;let ve,me;e[46]!==D||e[47]!==E||e[48]!==T||e[49]!==l?(ve=()=>{const S=f.current;if(!S)return;const r=b=>{b.preventDefault();const A=St(b.clientX,b.clientY,S.getBoundingClientRect(),T);A&&l({type:"wheel",x:A.x,y:A.y,deltaX:Tt(b.deltaX,b.deltaMode,E),deltaY:Tt(b.deltaY,b.deltaMode,D),modifiers:Ge(b)})};return S.addEventListener("wheel",r,{passive:!1}),()=>S.removeEventListener("wheel",r)},me=[l,T,E,D],e[46]=D,e[47]=E,e[48]=T,e[49]=l,e[50]=ve,e[51]=me):(ve=e[50],me=e[51]),u.useEffect(ve,me);let De,he;e[52]!==m||e[53]!==l?(De=()=>{if(!m)return;const S=r=>{var A;const b=(A=r.clipboardData)==null?void 0:A.getData("text/plain");b&&(r.preventDefault(),l({type:"paste",text:b}))};return document.addEventListener("paste",S),()=>document.removeEventListener("paste",S)},he=[m,l],e[52]=m,e[53]=l,e[54]=De,e[55]=he):(De=e[54],he=e[55]),u.useEffect(De,he);let ke,pe;e[56]===Symbol.for("react.memo_cache_sentinel")?(ke=()=>()=>{h.current!==null&&cancelAnimationFrame(h.current)},pe=[],e[56]=ke,e[57]=pe):(ke=e[56],pe=e[57]),u.useEffect(ke,pe);let Ne;e[58]!==l?(Ne=()=>{for(const[S,r]of v.current)l({type:"key",event:"up",key:r,code:S,modifiers:0});v.current.clear()},e[58]=l,e[59]=Ne):Ne=e[59];const ae=Ne;let Ce,xe;e[60]!==ae?(Ce=()=>ae,xe=[ae],e[60]=ae,e[61]=Ce,e[62]=xe):(Ce=e[61],xe=e[62]),u.useEffect(Ce,xe);let ie;e[63]!==i?(ie=Ue("relative min-h-0 min-w-0 overflow-hidden bg-muted/30",i),e[63]=i,e[64]=ie):ie=e[64];const Me=m&&"ring-2 ring-ring ring-inset";let Ee;e[65]!==Me?(Ee=Ue("block size-full cursor-default touch-none select-none outline-none",Me),e[65]=Me,e[66]=Ee):Ee=e[66];let ee;e[67]===Symbol.for("react.memo_cache_sentinel")?(ee=()=>g(!0),e[67]=ee):ee=e[67];let Z;e[68]!==ae?(Z=()=>{g(!1),ae()},e[68]=ae,e[69]=Z):Z=e[69];let te;e[70]!==we||e[71]!==je||e[72]!==Te||e[73]!==J||e[74]!==Le||e[75]!==de||e[76]!==Ee||e[77]!==Z?(te=s.jsx("canvas",{ref:f,role:"application","aria-label":"Browser viewport",tabIndex:0,className:Ee,onFocus:ee,onBlur:Z,onPointerDown:J,onPointerMove:Le,onPointerUp:de,onPointerCancel:de,onContextMenu:we,onKeyDown:je,onKeyUp:Te}),e[70]=we,e[71]=je,e[72]=Te,e[73]=J,e[74]=Le,e[75]=de,e[76]=Ee,e[77]=Z,e[78]=te):te=e[78];let ge;e[79]!==m?(ge=m&&s.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-2 flex justify-center",children:s.jsx("span",{className:"rounded-full bg-background/80 px-2 py-0.5 text-[10px] text-muted-foreground shadow-xs backdrop-blur-sm",children:Nn})}),e[79]=m,e[80]=ge):ge=e[80];let Q;return e[81]!==ie||e[82]!==te||e[83]!==ge?(Q=s.jsxs("div",{ref:o,className:ie,children:[te,ge]}),e[81]=ie,e[82]=te,e[83]=ge,e[84]=Q):Q=e[84],Q}const Dn="browser-panel-session",Rn="browser-panel-follow",In=1e4,vt=3e3,An=[];function Yn(n){var $e,Ye;const e=_e.c(110),{context:t,active:l,closePanel:a}=n;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=dt(Dn),e[0]=i):i=e[0];const[o,f]=mt(i,qe);let d;e[1]===Symbol.for("react.memo_cache_sentinel")?(d=dt(Rn),e[1]=d):d=e[1];const[h,w]=mt(d,!0),[_,I]=u.useState(!1),[y,v]=u.useState(null),[j,c]=u.useState(null),[p,m]=u.useState(!1),g=u.useRef(0),{status:E,error:D,create:F,remove:T,stop:V,readSkillTargets:K,installSkill:H}=Ms(l),R=Hs(l?o:null,Ln),O=(E==null?void 0:E.sessions)??An;let U;e[2]!==t.session?(U=js(t.session),e[2]=t.session,e[3]=U):U=e[3];const k=U,N=(k==null?void 0:k.session)??null;let P;if(e[4]!==N||e[5]!==O){let $;e[7]!==N?($=Ae=>Ae.name===N,e[7]=N,e[8]=$):$=e[8],P=O.some($),e[4]=N,e[5]=O,e[6]=P}else P=e[6];const M=P;let Y,z;e[9]!==N||e[10]!==M||e[11]!==h||e[12]!==o||e[13]!==f?(Y=()=>{!h||N===null||N===o||!M||Date.now()-g.current<In||f(N)},z=[h,N,M,o,f],e[9]=N,e[10]=M,e[11]=h,e[12]=o,e[13]=f,e[14]=Y,e[15]=z):(Y=e[14],z=e[15]),u.useEffect(Y,z);let B;e[16]!==f?(B=$=>{g.current=Date.now(),f($)},e[16]=f,e[17]=B):B=e[17];const L=B;let C;e[18]===Symbol.for("react.memo_cache_sentinel")?(C=async $=>{I(!0);const Ae=await $();I(!1),Ae.ok||v(Ae.error)},e[18]=C):C=e[18];const W=C,{send:x}=R;let q;e[19]!==x?(q=($,Ae,Ke)=>{x({type:"viewport",width:$,height:Ae,dpr:Ke})},e[19]=x,e[20]=q):q=e[20];const G=q;let J;e[21]!==w?(J=$=>{$&&(g.current=0),w($)},e[21]=w,e[22]=J):J=e[22];const fe=J;let Le;e[23]!==L?(Le=()=>L(qe),e[23]=L,e[24]=Le):Le=e[24];const be=Le;let de;e[25]===Symbol.for("react.memo_cache_sentinel")?(de=()=>m(!0),e[25]=de):de=e[25];const Oe=de;let we;e[26]!==T||e[27]!==L?(we=$=>{L(qe),W(()=>T($))},e[26]=T,e[27]=L,e[28]=we):we=e[28];const ye=we;let je;e[29]!==V?(je=$=>void W(()=>V($)),e[29]=V,e[30]=je):je=e[30];const Se=je;let Te;e[31]!==x?(Te=$=>x({type:"navigate",url:$}),e[31]=x,e[32]=Te):Te=e[32];const ve=Te;let me;e[33]!==x?(me=()=>x({type:"back"}),e[33]=x,e[34]=me):me=e[34];const De=me;let he;e[35]!==x?(he=()=>x({type:"forward"}),e[35]=x,e[36]=he):he=e[36];const ke=he;let pe;e[37]!==x?(pe=()=>x({type:"reload"}),e[37]=x,e[38]=pe):pe=e[38];const Ne=pe;let ae;e[39]!==x?(ae=$=>x({type:"follow",targetId:$}),e[39]=x,e[40]=ae):ae=e[40];const Ce=ae;let xe;e[41]!==x?(xe=$=>x({type:"close-tab",targetId:$}),e[41]=x,e[42]=xe):xe=e[42];const ie=xe,Me=On(R.lastFrameAt),Ee=(($e=R.state)==null?void 0:$e.state)??null,ee=(E==null?void 0:E.installed)===!1||Ee==="not-installed",Z=!ee&&Ee==="live",te=!ee&&Ee==="stopped";let ge;e[43]!==o||e[44]!==O?(ge=O.find($=>$.name===o)??null,e[43]=o,e[44]=O,e[45]=ge):ge=e[45];const Q=ge,S=Z&&(R.status==="disconnected"||R.status==="connecting"),r=R.error??y??D,b=r!==null&&r!==j?r:null,A=((Ye=t.session)==null?void 0:Ye.sessionId)??null;let se;e[46]!==_||e[47]!==a||e[48]!==F||e[49]!==h||e[50]!==ye||e[51]!==Se||e[52]!==L||e[53]!==o||e[54]!==O||e[55]!==be||e[56]!==A||e[57]!==fe?(se=s.jsx(cn,{sessions:O,selected:o,currentSessionId:A,followAgent:h,busy:_,onSelect:L,onToggleFollow:fe,onOpenSkill:Oe,onCreate:F,onRemove:ye,onStop:Se,onShowDefault:be,onClose:a}),e[46]=_,e[47]=a,e[48]=F,e[49]=h,e[50]=ye,e[51]=Se,e[52]=L,e[53]=o,e[54]=O,e[55]=be,e[56]=A,e[57]=fe,e[58]=se):se=e[58];let le;e[59]!==ie||e[60]!==Ce||e[61]!==Me||e[62]!==De||e[63]!==ke||e[64]!==Z||e[65]!==ve||e[66]!==S||e[67]!==Ne||e[68]!==R.followed||e[69]!==R.page||e[70]!==R.tabs?(le=Z&&s.jsx(tn,{page:R.page,tabs:R.tabs,followed:R.followed,status:S?"offline":Me,onNavigate:ve,onBack:De,onForward:ke,onReload:Ne,onFollow:Ce,onCloseTab:ie}),e[59]=ie,e[60]=Ce,e[61]=Me,e[62]=De,e[63]=ke,e[64]=Z,e[65]=ve,e[66]=S,e[67]=Ne,e[68]=R.followed,e[69]=R.page,e[70]=R.tabs,e[71]=le):le=e[71];let re;e[72]!==r||e[73]!==b?(re=b&&s.jsx(Bn,{message:b,onDismiss:()=>{v(null),c(r)}}),e[72]=r,e[73]=b,e[74]=re):re=e[74];let ce;e[75]!==ee?(ce=ee&&s.jsx(qs,{onOpenSkill:Oe}),e[75]=ee,e[76]=ce):ce=e[76];let oe;e[77]!==o||e[78]!==(Q==null?void 0:Q.lastUrl)||e[79]!==x||e[80]!==te?(oe=te&&s.jsx(Zs,{name:o,lastUrl:(Q==null?void 0:Q.lastUrl)??null,onOpen:$=>x({type:"launch",url:$})}),e[77]=o,e[78]=Q==null?void 0:Q.lastUrl,e[79]=x,e[80]=te,e[81]=oe):oe=e[81];let Be;e[82]!==k||e[83]!==G||e[84]!==Z||e[85]!==S||e[86]!==o||e[87]!==x||e[88]!==R.frame?(Be=Z&&s.jsxs(s.Fragment,{children:[s.jsx(vn,{className:"flex-1",frame:R.frame,send:x,onSizeChange:G}),S&&s.jsx(Fn,{}),s.jsx(Js,{activity:k&&k.session===o?k:null})]}),e[82]=k,e[83]=G,e[84]=Z,e[85]=S,e[86]=o,e[87]=x,e[88]=R.frame,e[89]=Be):Be=e[89];let Re;e[90]!==Z||e[91]!==ee||e[92]!==o||e[93]!==te?(Re=!ee&&!te&&!Z&&s.jsxs("div",{role:"status",className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[s.jsx(Ht,{}),"Connecting to ",o,"…"]}),e[90]=Z,e[91]=ee,e[92]=o,e[93]=te,e[94]=Re):Re=e[94];let Pe;e[95]!==ce||e[96]!==oe||e[97]!==Be||e[98]!==Re?(Pe=s.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[ce,oe,Be,Re]}),e[95]=ce,e[96]=oe,e[97]=Be,e[98]=Re,e[99]=Pe):Pe=e[99];let Ie;e[100]!==H||e[101]!==K||e[102]!==p?(Ie=s.jsx(un,{open:p,onOpenChange:m,readTargets:K,install:H}),e[100]=H,e[101]=K,e[102]=p,e[103]=Ie):Ie=e[103];let ze;return e[104]!==se||e[105]!==le||e[106]!==re||e[107]!==Pe||e[108]!==Ie?(ze=s.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[se,le,re,Pe,Ie]}),e[104]=se,e[105]=le,e[106]=re,e[107]=Pe,e[108]=Ie,e[109]=ze):ze=e[109],ze}function Ln(n){return void Ot(n)}function On(n){const e=_e.c(5),[,t]=u.useState(0);let l;e[0]!==t||e[1]!==n?(l=()=>{if(n===null)return;const i=n+vt-Date.now();if(i<=0)return;const o=setTimeout(()=>t(Mn),i);return()=>clearTimeout(o)},e[0]=t,e[1]=n,e[2]=l):l=e[2];let a;return e[3]!==n?(a=[n],e[3]=n,e[4]=a):a=e[4],u.useEffect(l,a),n===null?"idle":Date.now()-n<vt?"live":"idle"}function Mn(n){return n+1}function Fn(){const n=_e.c(1);let e;return n[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex justify-center p-2",children:s.jsx("span",{role:"status",className:"rounded-full bg-background/85 px-2.5 py-0.5 text-[11px] text-muted-foreground shadow-xs backdrop-blur-sm",children:"Reconnecting…"})}),n[0]=e):e=n[0],e}function Bn(n){const e=_e.c(9),{message:t,onDismiss:l}=n;let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(Wt,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),e[0]=a):a=e[0];let i;e[1]!==t?(i=s.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),e[1]=t,e[2]=i):i=e[2];let o;e[3]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(at,{"data-icon":"inline-start"}),e[3]=o):o=e[3];let f;e[4]!==l?(f=s.jsx(ue,{variant:"ghost",size:"icon-xs","aria-label":"Dismiss",onClick:l,children:o}),e[4]=l,e[5]=f):f=e[5];let d;return e[6]!==i||e[7]!==f?(d=s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-2 py-1 text-xs text-destructive",children:[a,i,f]}),e[6]=i,e[7]=f,e[8]=d):d=e[8],d}export{Yn as BrowserPanel};
|