cogpit 3.5.3 → 3.5.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.
Files changed (44) hide show
  1. package/README.md +11 -5
  2. package/dist/cli-runtime.js +2916 -2294
  3. package/dist/cli.js +1 -1
  4. package/dist/instance-worker.js +510 -254
  5. package/dist/web/assets/AgentCheckDialog-DdcPaEtO.js +1 -0
  6. package/dist/web/assets/{AutomationsPanel-D7XmgTgZ.js → AutomationsPanel-DHA6W_CZ.js} +1 -1
  7. package/dist/web/assets/{CogpitBlock-CiS2M1Q_.js → CogpitBlock-CN0s_qTc.js} +16 -16
  8. package/dist/web/assets/CommandPaletteHost-D5mRzqIm.js +1 -0
  9. package/dist/web/assets/{ConfigBrowser-DqQo1F4o.js → ConfigBrowser-CXxrxWWl.js} +1 -1
  10. package/dist/web/assets/CrewPanel-DJM6YaDN.js +1 -0
  11. package/dist/web/assets/{HighlightedEditor-DPrSCx1c.js → HighlightedEditor-G-YJnadM.js} +2 -2
  12. package/dist/web/assets/KeyboardShortcutsDialog-CcyskXfr.js +1 -0
  13. package/dist/web/assets/MissionHome-o1MjTkAZ.js +2 -0
  14. package/dist/web/assets/{MobileFileChanges-Ngv9AlhR.js → MobileFileChanges-SeyE4VAV.js} +1 -1
  15. package/dist/web/assets/{PluginsDialog-CWRSNNll.js → PluginsDialog-BPHFbLGS.js} +1 -1
  16. package/dist/web/assets/{PreviewPanel-CQcJIdef.js → PreviewPanel-Cb6P4TQ0.js} +1 -1
  17. package/dist/web/assets/{ProjectFilesPanel-D5EKIBD7.js → ProjectFilesPanel-BIEcyM9w.js} +3 -3
  18. package/dist/web/assets/{ProjectSwitcherModal-BoSCOiv9.js → ProjectSwitcherModal-CXI-isj1.js} +1 -1
  19. package/dist/web/assets/{TerminalOutput-DYZJD2WR.js → TerminalOutput-Cmf1kDEH.js} +1 -1
  20. package/dist/web/assets/{ThemeSelectorModal-8sO11Ob-.js → ThemeSelectorModal-DKvI2x91.js} +1 -1
  21. package/dist/web/assets/{WorkflowsPanel-qv6TkN7g.js → WorkflowsPanel-B7bJ_vvB.js} +1 -1
  22. package/dist/web/assets/WorktreePanel-Bu2NThZy.js +1 -0
  23. package/dist/web/assets/{edition-ui-DQHX5fm4.js → edition-ui-CpK32xJF.js} +1 -1
  24. package/dist/web/assets/index-BYVl1VlW.js +515 -0
  25. package/dist/web/assets/{index-DU4gWgPu.js → index-DUyjpORE.js} +2 -2
  26. package/dist/web/assets/index-N7rDyHyl.js +2 -0
  27. package/dist/web/assets/index-RGkLLDnk.css +1 -0
  28. package/dist/web/assets/{index-zhwBlO_8.js → index-TyUw7tBu.js} +2 -2
  29. package/dist/web/assets/index-lC5dVkKa.js +1 -0
  30. package/dist/web/assets/session-parser.worker-tdry_1oJ.js +43 -0
  31. package/dist/web/assets/{switch-gTnbAJaZ.js → switch-DFZA-ROd.js} +1 -1
  32. package/dist/web/assets/{vendor-ui-CKjyvB3_.js → vendor-ui-B0az9ATE.js} +224 -199
  33. package/dist/web/index.html +4 -4
  34. package/package.json +1 -1
  35. package/dist/web/assets/CommandPaletteHost-Dj06VjlP.js +0 -1
  36. package/dist/web/assets/CrewPanel-DzLPmS6o.js +0 -1
  37. package/dist/web/assets/KeyboardShortcutsDialog-BdXPWBJw.js +0 -1
  38. package/dist/web/assets/MissionHome-CTcx5vR7.js +0 -2
  39. package/dist/web/assets/WorktreePanel-Dr82TWOP.js +0 -1
  40. package/dist/web/assets/index-BGSPI7dK.js +0 -1
  41. package/dist/web/assets/index-BVmNox_3.js +0 -504
  42. package/dist/web/assets/index-CHtH7TlZ.js +0 -2
  43. package/dist/web/assets/index-DKDki7Rz.css +0 -1
  44. package/dist/web/assets/session-parser.worker-DCsmYUeX.js +0 -41
@@ -8,17 +8,17 @@
8
8
  <meta name="apple-mobile-web-app-capable" content="yes" />
9
9
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
10
10
  <meta name="theme-color" content="#09090b" />
11
- <title>Cogpit - Agent Session Dashboard</title>
11
+ <title>Cogpit</title>
12
12
  <style>
13
13
  html, body, #root { height: 100%; height: 100dvh; margin: 0; overflow: hidden; }
14
14
  .dark body { background: var(--canvas, #09090b); color: var(--foreground, #fafafa); }
15
15
  body { background: var(--canvas, #fafafa); color: var(--foreground, #09090b); }
16
16
  </style>
17
- <script type="module" crossorigin src="/assets/index-BVmNox_3.js"></script>
17
+ <script type="module" crossorigin src="/assets/index-BYVl1VlW.js"></script>
18
18
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-gGw_S5I_.js">
19
- <link rel="modulepreload" crossorigin href="/assets/vendor-ui-CKjyvB3_.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/vendor-ui-B0az9ATE.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/vendor-markdown-BEJ8yVzA.js">
21
- <link rel="stylesheet" crossorigin href="/assets/index-DKDki7Rz.css">
21
+ <link rel="stylesheet" crossorigin href="/assets/index-RGkLLDnk.css">
22
22
  <script src="/theme-bootstrap.js"></script>
23
23
  </head>
24
24
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogpit",
3
- "version": "3.5.3",
3
+ "version": "3.5.5",
4
4
  "description": "Run Cogpit's local Claude Code, Codex, and GitHub Copilot CLI interface without installing it",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{c as ie,j as u,r as M}from"./vendor-react-gGw_S5I_.js";import{bb as h,bc as Z,x as ue,bd as he,be as ge,bf as fe,bg as ve,bh as we,bi as be,bj as Ce,bk as Se,W as je,bl as ye,bm as xe,aH as ee,aY as p,bn as Te,a$ as Pe,bo as Oe,bp as ke,bq as Ne,br as Fe,bs as $e,F as Ee}from"./index-BVmNox_3.js";import{bg as Ie,dc as Re,bS as te,ak as Ae,cR as De,cN as Le,bl as He,ck as Me,b5 as ne,a7 as Be,b$ as qe,aB as Ge,cE as Ke,cw as We,dd as Ue,ct as ze,bO as _e,c5 as ae,de as pe,cy as Ve,cS as Xe,df as Ye,dg as Je,aF as Qe,a3 as Ze,aT as oe,cn as et,c0 as tt,aa as nt}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";function a(t,e,s,c,l,m,d){return{id:t,label:e,icon:c,run:l,shortcut:m,description:d,value:`${e} ${s}`}}function V(...t){return t.filter(e=>e!==!1&&e!==void 0)}function at(t){const e=ie.c(40);let s,c,l,m,d,w,b,r,C,g,j,f,y,N,x;if(e[0]!==t){const I=V(a("home","Go to Mission Control","home overview dashboard",Le,t.onGoHome),a("mission-control",t.showMission?"Exit Mission Control":"Open Mission Control","live sessions blocked waiting answer everything at once",De,t.onToggleMissionControl,h("missionControl")),...(t.extraActions??[]).map(ot),a("new-session","Start a new session","project agent chat create",Ie,t.onNewSession,h("newSession")),t.onDuplicateSession&&a("duplicate-session","Duplicate this session","copy fork clone branch thread",Re,t.onDuplicateSession),t.canFocusComposer&&a("focus-composer","Focus message composer","chat prompt input",te,t.onFocusComposer,h("focusComposer")),t.onFindInConversation&&a("find-in-conversation","Find in conversation","search text transcript turns matches",Ae,t.onFindInConversation,h("findInConversation"))),F=(t.projects??[]).slice(0,8).map(n=>a(`project-${n.dirName}`,n.shortName,`${n.path} ${n.dirName} project workspace`,He,()=>{var i;return(i=t.onOpenProject)==null?void 0:i.call(t,n.dirName)},void 0,`${n.path} · ${n.sessionCount} session${n.sessionCount===1?"":"s"}`)),$=(t.recentSessions??[]).slice(0,10).map(n=>{const v=(n.aiTitle||n.name||n.slug||n.lastUserMessage||n.firstUserMessage||n.sessionId).replace(/\s+/g," ").trim().slice(0,160)||n.sessionId,L=[n.projectShortName,n.gitBranch].filter(Boolean).join(" · ");return a(`session-${n.dirName}-${n.fileName}`,v,`${n.projectShortName} ${n.cwd??""} ${n.gitBranch??""} ${n.sessionId} recent thread conversation`,te,()=>{var q;return(q=t.onOpenSession)==null?void 0:q.call(t,n.dirName,n.fileName)},void 0,L)}),R=t.devices??[],E=R.length>1&&t.onSwitchDevice?R.slice(0,Z.length).map((n,i)=>a(`device-${n.id}`,n.isActive?`${n.name} (current)`:`Switch to ${n.name}`,`device machine host remote ${n.id}`,n.isLocal?Me:ne,()=>{var v;return(v=t.onSwitchDevice)==null?void 0:v.call(t,n.id)},h(Z[i]))):[],o=V(a("toggle-sidebar",t.showSidebar?"Hide session sidebar":"Show session sidebar","projects navigation panel",Ue,t.onToggleSidebar,h("toggleSidebar")),t.hasSession&&a("toggle-stats",t.showStats?"Hide session details":"Show session details","stats tokens usage panel",We,t.onToggleStats,h("toggleStats")),t.onToggleProjectFiles&&a("project-files",t.showProjectFiles?"Close project files":"Open project files","browse edit save workspace source code",Ke,t.onToggleProjectFiles,h("projectFiles")),t.onToggleBrowser&&a("toggle-browser",t.showBrowser?"Hide browser":"Show browser","web page live view browse panel",Ge,t.onToggleBrowser),t.hasFileChanges&&a("toggle-file-changes",t.showFileChanges?"Hide file changes":"Show file changes","diff edits review panel",qe,t.onToggleFileChanges),t.supportsWorktrees&&t.canOpenTerminal&&a("toggle-worktrees",t.showWorktrees?"Hide worktrees":"Show worktrees","git branches panel",Be,t.onToggleWorktrees)),A=V(t.onOpenProjectInEditor&&a("open-project-editor","Open project in editor","code cursor vscode zed workspace",tt,t.onOpenProjectInEditor),t.onRevealProject&&a("reveal-project","Reveal project in file manager","finder explorer folder directory",et,t.onRevealProject),t.onCopyResumeCommand&&a("copy-resume-command","Copy resume command","cli claude codex copilot terminal clipboard continue session",oe,t.onCopyResumeCommand),t.onCopyProjectPath&&a("copy-project-path","Copy project path","workspace directory clipboard",oe,t.onCopyProjectPath),t.onOpenIntegratedTerminal&&a("integrated-terminal","New integrated terminal","embedded shell command line process panel",Ze,t.onOpenIntegratedTerminal,h("newIntegratedTerminal")),t.canOpenTerminal&&a("terminal","Open in system terminal","external shell command line app",Qe,t.onOpenTerminal,h("systemTerminal")),t.onTogglePreview&&a("preview","Toggle development preview","browser localhost dev server website",Je,t.onTogglePreview,h("preview")),t.onOpenKeyboardShortcuts&&a("keyboard-shortcuts","Customize keyboard shortcuts","keybindings hotkeys settings",Ye,t.onOpenKeyboardShortcuts),t.onOpenConfig&&a("config",t.showConfig?"Close agent configuration":"Open agent configuration","skills commands claude settings files",Xe,t.onOpenConfig),a("settings","Open Cogpit settings","preferences network",Ve,t.onOpenSettings),a("theme","Change theme & chat width","appearance light dark oled width narrow wide",pe,t.onOpenTheme,h("themeSelector")),a("expand","Expand all groups","conversation details",ae,t.onExpandAll,h("expandAll")),a("expand-payloads","Expand all tool payloads","raw input result diff conversation details",ae,t.onExpandToolPayloads,h("expandToolPayloads")),a("collapse","Collapse all","conversation groups payloads details",_e,t.onCollapseAll),t.onKillAll&&a("kill-all","Kill all agent processes","stop terminate halt everything runaway",ze,t.onKillAll),t.onOpenDevices&&a("manage-devices","Manage devices…","remote machines hub hosts edit rename remove switch",nt,()=>{var n;return(n=t.onOpenDevices)==null?void 0:n.call(t,"manage")}),t.onOpenDevices&&a("add-device","Add device…","remote machine hub host connect pair new",ne,()=>{var n;return(n=t.onOpenDevices)==null?void 0:n.call(t,"add")})),k=[{value:"Navigation",items:I},...$.length>0?[{value:"Recent sessions",items:$}]:[],...F.length>0?[{value:"Projects",items:F}]:[],...E.length>0?[{value:"Devices",items:E}]:[],{value:"View",items:o},{value:"Tools",items:A}],D=function(i){t.onOpenChange(!1),i.run()};l=ve,y=t.open,N=t.onOpenChange,x="Command palette",w="Search for a Cogpit action to run.",b="max-w-xl",c=we,C="Search commands",g=!0,e[16]===Symbol.for("react.memo_cache_sentinel")?(j=u.jsx(be,{"aria-label":"Search commands",autoFocus:!0,placeholder:"Search commands..."}),e[16]=j):j=e[16],e[17]!==t.loadingNavigation?(f=t.loadingNavigation&&u.jsxs("div",{className:"motion-enter flex items-center gap-2 px-3 py-2 text-xs text-muted-foreground",role:"status",children:[u.jsx(ue,{className:"size-3.5"}),"Loading projects and sessions..."]}),e[17]=t.loadingNavigation,e[18]=f):f=e[18],s=Ce,m="max-h-[min(26rem,60vh)]",e[19]===Symbol.for("react.memo_cache_sentinel")?(d=u.jsx(Se,{children:"No matching actions."}),e[19]=d):d=e[19],r=k.map(n=>u.jsx(he,{heading:n.value,children:n.items.map(i=>{const v=i.icon;return u.jsxs(ge,{value:i.value,onSelect:()=>D(i),children:[u.jsx(v,{"aria-hidden":"true"}),u.jsxs("span",{className:"min-w-0 flex-1",children:[u.jsx("span",{className:"block truncate",children:i.label}),i.description&&u.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:i.description})]}),i.shortcut&&u.jsx(fe,{children:i.shortcut})]},i.id)})},n.value)),e[0]=t,e[1]=s,e[2]=c,e[3]=l,e[4]=m,e[5]=d,e[6]=w,e[7]=b,e[8]=r,e[9]=C,e[10]=g,e[11]=j,e[12]=f,e[13]=y,e[14]=N,e[15]=x}else s=e[1],c=e[2],l=e[3],m=e[4],d=e[5],w=e[6],b=e[7],r=e[8],C=e[9],g=e[10],j=e[11],f=e[12],y=e[13],N=e[14],x=e[15];let T;e[20]!==s||e[21]!==m||e[22]!==d||e[23]!==r?(T=u.jsxs(s,{className:m,children:[d,r]}),e[20]=s,e[21]=m,e[22]=d,e[23]=r,e[24]=T):T=e[24];let P;e[25]!==c||e[26]!==T||e[27]!==C||e[28]!==g||e[29]!==j||e[30]!==f?(P=u.jsxs(c,{label:C,loop:g,children:[j,f,T]}),e[25]=c,e[26]=T,e[27]=C,e[28]=g,e[29]=j,e[30]=f,e[31]=P):P=e[31];let O;return e[32]!==l||e[33]!==w||e[34]!==b||e[35]!==P||e[36]!==y||e[37]!==N||e[38]!==x?(O=u.jsx(l,{open:y,onOpenChange:N,title:x,description:w,className:b,children:P}),e[32]=l,e[33]=w,e[34]=b,e[35]=P,e[36]=y,e[37]=N,e[38]=x,e[39]=O):O=e[39],O}function ot(t){return a(t.id,t.label,t.keywords,t.icon,t.onSelect)}async function se(t,e){const s=await Ee(t,{signal:e});if(!s.ok)throw new Error(`Request failed (${s.status})`);const c=await s.json();return Array.isArray(c)?c:[]}function rt(t){var X;const e=ie.c(51);let s,c,l,m,d,w;e[0]!==t?({open:l,currentProjectDirName:s,projectCwd:d,onProcessStarted:c,launchTerminalRequest:w,...m}=t,e[0]=t,e[1]=s,e[2]=c,e[3]=l,e[4]=m,e[5]=d,e[6]=w):(s=e[1],c=e[2],l=e[3],m=e[4],d=e[5],w=e[6]);const b=w===void 0?0:w,r=je();let C;e[7]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[7]=C):C=e[7];const[g,j]=M.useState(C);let f;e[8]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[8]=f):f=e[8];const[y,N]=M.useState(f),[x,T]=M.useState(!1),P=M.useRef(0),O=ye();let I,F;e[9]!==O||e[10]!==l?(I=()=>{if(!l)return;const S=new AbortController,B=Pe();return T(!0),Promise.allSettled([se("/api/projects",S.signal),se(Oe({limit:"12",perProject:"3"},O),S.signal)]).then(me=>{const[Y,J]=me;if(S.signal.aborted)return;const Q=J.status==="fulfilled"?J.value:[];ke(Q,B),j(Y.status==="fulfilled"?Y.value:[]),N(Q),T(!1)}),()=>S.abort()},F=[l,O],e[9]=O,e[10]=l,e[11]=I,e[12]=F):(I=e[11],F=e[12]),M.useEffect(I,F);let $;e[13]!==g?($=xe(g),e[13]=g,e[14]=$):$=e[14];const R=$;let E;e:{if(d){E=d;break e}if(!s){E=null;break e}let S;e[15]!==s||e[16]!==g?(S=((X=g.find(B=>B.dirName===s))==null?void 0:X.path)??null,e[15]=s,e[16]=g,e[17]=S):S=e[17],E=S}const o=E;let A;e[18]!==c||e[19]!==r||e[20]!==o?(A=()=>{if(!o)return;const S=r.spawnTerminal({cwd:o}),B=o.replace(/\/+$/,"").split("/").at(-1)||"Terminal";c({id:S,name:B,type:"terminal",status:"running",source:o})},e[18]=c,e[19]=r,e[20]=o,e[21]=A):A=e[21];const k=A;let D,n;e[22]!==k||e[23]!==b||e[24]!==r.status||e[25]!==o?(n=()=>{b<=P.current||!o||r.status!=="connected"||(P.current=b,k())},D=[k,b,r.status,o],e[22]=k,e[23]=b,e[24]=r.status,e[25]=o,e[26]=D,e[27]=n):(D=e[26],n=e[27]),M.useEffect(n,D);let i;e[28]!==s||e[29]!==o?(i={path:o,dirName:s},e[28]=s,e[29]=o,e[30]=i):i=e[30];const v=i;let L;e[31]!==v?(L=()=>Ne(v),e[31]=v,e[32]=L):L=e[32];const q=L;let G;e[33]!==v?(G=()=>Fe(v),e[33]=v,e[34]=G):G=e[34];const le=G,ce=!ee()&&p("hostFiles"),re=p("hostFiles")&&(!ee()||Te());let K;e[35]!==o?(K=()=>{o&&$e(o)},e[35]=o,e[36]=K):K=e[36];const de=K;let H;e[37]!==k||e[38]!==r.status||e[39]!==o?(H=o&&r.status==="connected"&&p("terminal")?k:void 0,e[37]=k,e[38]=r.status,e[39]=o,e[40]=H):H=e[40];const U=o&&re?q:void 0,z=o&&ce?le:void 0,_=o?de:void 0;let W;return e[41]!==x||e[42]!==l||e[43]!==m||e[44]!==y||e[45]!==R||e[46]!==H||e[47]!==U||e[48]!==z||e[49]!==_?(W=u.jsx(at,{...m,open:l,projects:R,recentSessions:y,loadingNavigation:x,onOpenIntegratedTerminal:H,onOpenProjectInEditor:U,onRevealProject:z,onCopyProjectPath:_}),e[41]=x,e[42]=l,e[43]=m,e[44]=y,e[45]=R,e[46]=H,e[47]=U,e[48]=z,e[49]=_,e[50]=W):W=e[50],W}export{rt as CommandPaletteHost};
@@ -1 +0,0 @@
1
- import{r as C,c as ue,j as n}from"./vendor-react-gGw_S5I_.js";import{F as ze,d4 as it,a0 as je,d5 as jt,d6 as yt,d7 as Nt,B as te,E as rt,f as ct,U as It,h as dt,i as ut,ae as Je,d8 as Ct,ac as Qe,aC as et,d9 as kt,da as St,m as ft,ad as Mt,db as $t,av as Rt,cv as Tt,dc as At,cU as Ot,aZ as Et,o as Lt,n as _t,D as zt,j as Dt,c as oe,dd as Ft,bP as Pt,bQ as Yt,bO as qt,de as qe,V as We,df as Wt,ct as Ht,c9 as Ut,ca as Bt,cb as Ae,cc as Oe,al as Gt,k as Vt,dg as Kt,dh as Xt,di as Zt,b8 as Jt}from"./index-BVmNox_3.js";import{S as Qt}from"./switch-gTnbAJaZ.js";import{bS as es,dx as ts,aP as ss,bq as ns,N as ht,bo as pt,bg as os,bx as as,bp as ls,A as De,dy as is,aO as rs,X as cs}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";async function ke(t){if(t.ok)return t;const e=await t.json().catch(()=>null);throw new Error((e==null?void 0:e.error)||"Couldn't update crew chat.")}function Ee(t,e){return[...new Map([...t,...e].map(s=>[s.sequence,s])).values()].sort((s,r)=>s.sequence-r.sequence)}function ds(t){const[e,s]=C.useState(null),[r,i]=C.useState([]),[a,c]=C.useState(null),[o,f]=C.useState(!1),[g,h]=C.useState(!1),[l,w]=C.useState(!1),[u,x]=C.useState(new Set),p=C.useRef(0),m=C.useRef(null),y=C.useRef(!1),k=C.useRef(!1),b=C.useRef(new Set),M=C.useRef(!1),N=C.useRef(null),$=C.useCallback(async j=>{const L=++p.current;try{const I=N.current,S=await(await ke(await ze(`/api/crew-chat/${encodeURIComponent(t)}${I===null?"":`?after=${I}&limit=100`}`))).json();if(!j()||L!==p.current)return;s(R=>R&&JSON.stringify(R.members)===JSON.stringify(S.members)?{...S,members:R.members}:S),i(R=>Ee(R,S.messages)),N.current=S.nextCursor,M.current||(M.current=!0,w(S.hasMore)),c(null)}catch(I){j()&&L===p.current&&c(I instanceof Error?I.message:"Couldn't load crew chat.")}},[t]);it($,2e3);const _=C.useCallback(async j=>{var L;if(y.current)return!1;y.current=!0,f(!0),((L=m.current)==null?void 0:L.text)!==j&&(m.current={text:j,id:crypto.randomUUID()});try{const A=await(await ke(await je(`/api/crew-chat/${encodeURIComponent(t)}`,{text:j,commandId:m.current.id}))).json();return p.current++,i(S=>Ee(S,[A.message])),m.current=null,c(A.pending.length?"Message saved. Some members are unavailable; delivery will retry.":null),!0}catch(I){return c(I instanceof Error?I.message:"Couldn't send the message."),!1}finally{y.current=!1,f(!1)}},[t]),O=C.useCallback(async(j,L)=>{if(!b.current.has(j)){b.current.add(j),x(I=>new Set(I).add(j));try{await ke(await je(`/api/crew-chat/${encodeURIComponent(t)}`,{sessionId:j,listening:L},{method:"PATCH"})),p.current++,s(I=>I&&{...I,members:I.members.map(A=>A.sessionId===j?{...A,listening:L}:A)}),c(null)}catch(I){c(I instanceof Error?I.message:"Couldn't change listening.")}finally{b.current.delete(j),x(I=>{const A=new Set(I);return A.delete(j),A})}}},[t]),E=C.useCallback(async()=>{if(!(!r.length||k.current)){k.current=!0,h(!0);try{const L=await(await ke(await ze(`/api/crew-chat/${encodeURIComponent(t)}?before=${r[0].sequence}`))).json();i(I=>Ee(I,L.messages)),w(L.hasMore)}catch(j){c(j instanceof Error?j.message:"Couldn't load older messages.")}finally{k.current=!1,h(!1)}}},[r,t]);return{page:e,messages:r,error:a,posting:o,busyMembers:u,hasOlder:l,loadingOlder:g,post:_,setListening:O,older:E}}const us=[],fs=new Map;function hs(t){var He,Ue,Be,Ge,Ve,Ke,Xe;const e=ue.c(111),{rootId:s,kinds:r,active:i}=t,a=r===void 0?fs:r,c=i===void 0?!0:i,o=ds(s),[f,g]=C.useState(""),h=C.useRef(null),l=C.useRef(!0);let w;e[0]!==o.messages?(w=(He=o.messages.at(-1))==null?void 0:He.sequence,e[0]=o.messages,e[1]=w):w=e[1];const u=w,x=((Ue=o.page)==null?void 0:Ue.members)??us;let p;e[2]!==x?(p=jt(x),e[2]=x,e[3]=p):p=e[3];const m=p;let y;e[4]!==x||e[5]!==s?(y=yt(x,s),e[4]=x,e[5]=s,e[6]=y):y=e[6];const k=y;let b;e[7]!==x?(b=new Map(x.map(ms)),e[7]=x,e[8]=b):b=e[8];const M=b;let N;e[9]!==o.messages||e[10]!==s?(N=Nt(o.messages,s),e[9]=o.messages,e[10]=s,e[11]=N):N=e[11];const $=N;let _;e[12]!==c?(_=()=>{var V,B;c&&l.current&&((B=(V=h.current)==null?void 0:V.scrollIntoView)==null||B.call(V,{block:"end"}))},e[12]=c,e[13]=_):_=e[13];let O;e[14]!==c||e[15]!==u?(O=[c,u],e[14]=c,e[15]=u,e[16]=O):O=e[16],C.useEffect(_,O);let E;e[17]!==o||e[18]!==f?(E=async()=>{const V=f.trim();!V||o.posting||await o.post(V)&&(g(B=>B.trim()===V?"":B),l.current=!0)},e[17]=o,e[18]=f,e[19]=E):E=e[19];const j=E;let L;e[20]!==o.page||e[21]!==x?(L=o.page?`${x.filter(ps).length} listening · Members & mentions`:"Loading chat…",e[20]=o.page,e[21]=x,e[22]=L):L=e[22];let I;e[23]!==L?(I=n.jsx("summary",{className:"cursor-pointer text-xs text-muted-foreground",children:L}),e[23]=L,e[24]=I):I=e[24];let A;if(e[25]!==o||e[26]!==a||e[27]!==x||e[28]!==s||e[29]!==k){let V;e[31]!==o||e[32]!==a||e[33]!==s||e[34]!==k?(V=B=>{var Ze;return n.jsxs(Je,{orientation:"horizontal",className:"items-center gap-2",children:[n.jsx(Ct,{role:B.sessionId===s?"lead":"agent",sessionId:B.sessionId,kinds:a,tints:k,className:"size-5"}),n.jsxs(Qe,{className:"min-w-0 flex-1 items-baseline gap-1.5",htmlFor:`listen-${B.sessionId}`,"aria-label":`Listen for ${B.name}`,children:[n.jsx("span",{className:"truncate",children:B.name}),n.jsxs("span",{className:"truncate text-xs font-normal text-muted-foreground",children:["@",B.handle]})]}),n.jsx(te,{variant:"ghost",size:"icon-xs",disabled:!((Ze=o.page)!=null&&Ze.canPost)||!B.canInteract,onClick:()=>g(ye=>`${ye}${ye&&!/\s$/.test(ye)?" ":""}@${B.handle} `),"aria-label":`Mention ${B.name}`,title:`Mention @${B.handle}`,className:"text-muted-foreground",children:n.jsx(ts,{"data-icon":"inline-start"})}),n.jsx(Qt,{id:`listen-${B.sessionId}`,size:"sm",checked:B.listening,disabled:!B.canInteract||o.busyMembers.has(B.sessionId),onCheckedChange:ye=>void o.setListening(B.sessionId,ye)})]},B.sessionId)},e[31]=o,e[32]=a,e[33]=s,e[34]=k,e[35]=V):V=e[35],A=x.map(V),e[25]=o,e[26]=a,e[27]=x,e[28]=s,e[29]=k,e[30]=A}else A=e[30];let S;e[36]!==A?(S=n.jsx(et,{className:"max-h-48 gap-2 overflow-y-auto py-2",children:A}),e[36]=A,e[37]=S):S=e[37];let R;e[38]===Symbol.for("react.memo_cache_sentinel")?(R=n.jsx("p",{className:"pb-1 text-xs text-muted-foreground",children:"Listening sends short notices while an agent works. @mentions send the full message, even when listening is off."}),e[38]=R):R=e[38];let F;e[39]!==I||e[40]!==S?(F=n.jsxs("details",{className:"shrink-0 border-b px-3 py-2",children:[I,S,R]}),e[39]=I,e[40]=S,e[41]=F):F=e[41];let P;e[42]===Symbol.for("react.memo_cache_sentinel")?(P=V=>{const B=V.target;l.current=B.scrollHeight-B.scrollTop-B.clientHeight<80},e[42]=P):P=e[42];let H;e[43]!==o?(H=o.hasOlder&&n.jsx("div",{className:"flex justify-center py-2",children:n.jsx(te,{variant:"ghost",size:"xs",disabled:o.loadingOlder,onClick:()=>void o.older(),children:o.loadingOlder?"Loading…":"Load earlier messages"})}),e[43]=o,e[44]=H):H=e[44];let D;e[45]!==o.messages.length||e[46]!==o.page?(D=o.page&&o.messages.length===0&&n.jsx(rt,{children:n.jsxs(ct,{children:[n.jsx(It,{variant:"icon",children:n.jsx(es,{})}),n.jsx(dt,{children:"Talk to the crew"}),n.jsx(ut,{children:"Share a discovery, ask a question, or tag someone for their input."})]})}),e[45]=o.messages.length,e[46]=o.page,e[47]=D):D=e[47];let Y;if(e[48]!==M||e[49]!==m||e[50]!==a||e[51]!==s||e[52]!==$||e[53]!==k){let V;e[55]!==M||e[56]!==m||e[57]!==a||e[58]!==s||e[59]!==k?(V=B=>n.jsxs(C.Fragment,{children:[B.day!==void 0&&n.jsx(kt,{day:B.day}),n.jsx(St,{run:B,members:M,handles:m,kinds:a,tints:k,rootId:s})]},B.messages[0].sequence),e[55]=M,e[56]=m,e[57]=a,e[58]=s,e[59]=k,e[60]=V):V=e[60],Y=$.map(V),e[48]=M,e[49]=m,e[50]=a,e[51]=s,e[52]=$,e[53]=k,e[54]=Y}else Y=e[54];let G;e[61]===Symbol.for("react.memo_cache_sentinel")?(G=n.jsx("div",{ref:h}),e[61]=G):G=e[61];let U;e[62]!==Y?(U=n.jsxs("div",{role:"log","aria-label":"Shared messages","aria-live":"polite","aria-relevant":"additions",className:"flex flex-col gap-4 px-3 py-3",children:[Y,G]}),e[62]=Y,e[63]=U):U=e[63];let z;e[64]!==H||e[65]!==D||e[66]!==U?(z=n.jsxs(ft,{className:"min-h-0 flex-1",onScrollCapture:P,children:[H,D,U]}),e[64]=H,e[65]=D,e[66]=U,e[67]=z):z=e[67];let q;e[68]!==j?(q=V=>{V.preventDefault(),j()},e[68]=j,e[69]=q):q=e[69];const W=!!o.error,K=`crew-chat-${s}`;let d;e[70]!==K?(d=n.jsx(Qe,{htmlFor:K,className:"sr-only",children:"Message the crew"}),e[70]=K,e[71]=d):d=e[71];const v=`crew-chat-${s}`,T=!((Be=o.page)!=null&&Be.canPost),X=!!o.error;let ae;e[72]===Symbol.for("react.memo_cache_sentinel")?(ae=V=>g(V.target.value),e[72]=ae):ae=e[72];let J;e[73]!==j?(J=V=>{V.key==="Enter"&&(V.metaKey||V.ctrlKey)&&!V.nativeEvent.isComposing&&(V.preventDefault(),j())},e[73]=j,e[74]=J):J=e[74];let Q;e[75]!==f||e[76]!==v||e[77]!==T||e[78]!==X||e[79]!==J?(Q=n.jsx(Mt,{id:v,value:f,rows:3,maxLength:$t,placeholder:"Message the crew… use @ to tag an agent",disabled:T,"aria-invalid":X,onChange:ae,onKeyDown:J}),e[75]=f,e[76]=v,e[77]=T,e[78]=X,e[79]=J,e[80]=Q):Q=e[80];let ee;e[81]!==o.error?(ee=o.error&&n.jsx("p",{role:"alert",className:"text-xs text-destructive",children:o.error}),e[81]=o.error,e[82]=ee):ee=e[82];let se;e[83]!==W||e[84]!==d||e[85]!==Q||e[86]!==ee?(se=n.jsxs(Je,{"data-invalid":W,children:[d,Q,ee]}),e[83]=W,e[84]=d,e[85]=Q,e[86]=ee,e[87]=se):se=e[87];const re=((Ge=o.page)==null?void 0:Ge.canPost)===!1?"You have read access to this crew.":"⌘ / Ctrl + Enter to send";let Z;e[88]!==re?(Z=n.jsx(Rt,{className:"flex-1",children:re}),e[88]=re,e[89]=Z):Z=e[89];let ce;e[90]!==((Ve=o.page)==null?void 0:Ve.canPost)||e[91]!==o.posting||e[92]!==f?(ce=!((Ke=o.page)!=null&&Ke.canPost)||!f.trim()||o.posting,e[90]=(Xe=o.page)==null?void 0:Xe.canPost,e[91]=o.posting,e[92]=f,e[93]=ce):ce=e[93];let pe;e[94]===Symbol.for("react.memo_cache_sentinel")?(pe=n.jsx(ss,{"data-icon":"inline-start"}),e[94]=pe):pe=e[94];const Te=o.posting?"Sending…":"Send";let ge;e[95]!==ce||e[96]!==Te?(ge=n.jsxs(te,{type:"submit",size:"sm",disabled:ce,children:[pe,Te]}),e[95]=ce,e[96]=Te,e[97]=ge):ge=e[97];let xe;e[98]!==Z||e[99]!==ge?(xe=n.jsxs("div",{className:"flex items-center gap-2",children:[Z,ge]}),e[98]=Z,e[99]=ge,e[100]=xe):xe=e[100];let we;e[101]!==se||e[102]!==xe?(we=n.jsxs(et,{className:"gap-2",children:[se,xe]}),e[101]=se,e[102]=xe,e[103]=we):we=e[103];let be;e[104]!==q||e[105]!==we?(be=n.jsx("form",{className:"shrink-0 border-t p-3",onSubmit:q,children:we}),e[104]=q,e[105]=we,e[106]=be):be=e[106];let Ce;return e[107]!==F||e[108]!==z||e[109]!==be?(Ce=n.jsxs("section",{"aria-label":"Crew chat",className:"flex h-full min-h-0 flex-col",children:[F,z,be]}),e[107]=F,e[108]=z,e[109]=be,e[110]=Ce):Ce=e[110],Ce}function ps(t){return t.listening}function ms(t){return[t.sessionId,t]}const fe={working:"bg-success ring-2 ring-success/30","needs-you":"bg-warning",done:"bg-muted-foreground/50",failed:"bg-destructive",unreachable:"border border-muted-foreground/60"};function mt(t){const e=new Date(t),s=e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return e.toDateString()===new Date().toDateString()?s:`${e.toLocaleDateString([],{month:"short",day:"numeric"})}, ${s}`}function he(t){if(t.status==="deferred")return"needs-you";switch(t.outcome){case"needs_input":return"needs-you";case"running":return"working";case"error":return"failed";case"unreachable":case"not_found":return"unreachable";default:return"done"}}function tt(t,e){var s,r;return{sessionId:t.sessionId,dirName:((s=t.address)==null?void 0:s.dirName)??"",fileName:((r=t.address)==null?void 0:r.fileName)??"",projectShortName:"",lastModified:t.lastActivityAt??"",lastActivityAt:t.lastActivityAt,size:0,cwd:t.cwd,customTitle:t.customTitle,aiTitle:t.aiTitle,firstUserMessage:t.firstUserMessage,...t.parentId&&{crew:{rootId:e,parentId:t.parentId,startedAt:t.startedAt??0,...t.name&&{name:t.name}}}}}function gs(t,e,s){var o;const r=((o=[...e.values()].find(f=>f.parentId===null))==null?void 0:o.sessionId)??t.sessionId,i=s[t.sessionId],a=tt(t,r);if(!t.parentId)return Tt(a,i);const c=e.get(t.parentId);return At(a,{customName:i,parent:c&&tt(c,r)})}function xs(t){const e=new Map;for(const a of t.members){if(!a.parentId)continue;const c=e.get(a.parentId);c?c.push(a):e.set(a.parentId,[a])}const s=[],r=new Set,i=(a,c)=>{var f;const o=[...e.get(a)??[]].sort((g,h)=>(g.startedAt??0)-(h.startedAt??0));for(const g of o)r.has(g.sessionId)||(r.add(g.sessionId),s.push({member:g,depth:c,children:((f=e.get(g.sessionId))==null?void 0:f.length)??0}),i(g.sessionId,c+1))};i(t.rootId,0);for(const a of t.members)a.parentId&&!r.has(a.sessionId)&&(r.add(a.sessionId),s.push({member:a,depth:0,children:0}));return s}function ws(t){const e=({member:s,pending:r})=>r.askedAt??(Date.parse(s.lastActivityAt??"")||0);return t.members.flatMap(s=>s.waiting.map(r=>({member:s,pending:r}))).sort((s,r)=>e(s)-e(r))}function bs(t){const e={size:0,working:0,needsYou:0,done:0,failed:0,unreachable:0,unreadResults:0};for(const s of t.members){if(!s.parentId)continue;e.size++;const r=he(s);r==="working"?e.working++:r==="needs-you"?e.needsYou++:r==="failed"?e.failed++:r==="unreachable"?e.unreachable++:e.done++,Re(s)&&e.unreadResults++}return e}function Re(t){return!!(t.result&&t.result.state!=="running"&&!t.result.acknowledged)}function Ie(t){const[e]=t.waiting;switch(he(t)){case"needs-you":return(e==null?void 0:e.kind)==="permission"?`Waiting on a permission · ${e.toolName}`:(e==null?void 0:e.kind)==="question"?"Asked a question":!e&&t.status==="deferred"?"Awaiting permission review":"Plan to review";case"working":return t.status==="tool_use"&&t.toolName?t.toolName:t.status==="thinking"?"Thinking":t.status==="compacting"?"Compacting":t.status==="awaiting_agents"?"Waiting on its agents":"Working";case"failed":return t.error?`Failed · ${t.error}`:"Failed";case"unreachable":return t.device?`${t.device.name} is not answering`:"Not found";default:return Re(t)?"Finished · result unread":"Finished"}}const le=196,ne=86,de=40,ve=12,vs=28,Me=6,st=8,me=10,js=6,$e=28,Fe=36;function gt(t){const e=he(t);return e==="working"||e==="needs-you"}function ys(t){const e={all:t.members.length,active:0,working:0,needsYou:0};for(const s of t.members){const r=he(s);r==="working"?e.working++:r==="needs-you"&&e.needsYou++}return e.active=e.working+e.needsYou,e}const nt=(t,e)=>(t.startedAt??0)-(e.startedAt??0)||t.sessionId.localeCompare(e.sessionId);function xt(t){const e=new Map(t.members.map(i=>[i.sessionId,i])),s=new Map,r=[];for(const i of t.members){const a=i.parentId&&i.sessionId!==t.rootId?e.get(i.parentId):void 0;if(!a){r.push(i);continue}const c=s.get(a.sessionId);c?c.push(i):s.set(a.sessionId,[i])}for(const i of s.values())i.sort(nt);return r.sort((i,a)=>+(a.sessionId===t.rootId)-+(i.sessionId===t.rootId)||nt(i,a)),{roots:r,childrenOf:s}}function Ns(t,e){if(e==="all")return new Set(t.members.map(i=>i.sessionId));const s=new Map(t.members.map(i=>[i.sessionId,i])),r=new Set;for(const i of t.members){if(!gt(i))continue;let a=i;for(;a&&!r.has(a.sessionId);)r.add(a.sessionId),a=a.sessionId===t.rootId||!a.parentId?void 0:s.get(a.parentId)}return r}function Is(t){const{roots:e,childrenOf:s}=xt(t),r=new Set;let i=0;const a=e.map(c=>({member:c,depth:0}));for(;a.length>0;){const{member:c,depth:o}=a.pop();if(!r.has(c.sessionId)){r.add(c.sessionId),i=Math.max(i,o);for(const f of s.get(c.sessionId)??[])a.push({member:f,depth:o+1})}}return i}function Cs(t){return(t+1)*le+t*de}function ks(t,e,s,{group:r=!1,stacked:i}={}){const{roots:a,childrenOf:c}=xt(t),o=Ns(t,e),f=N=>(c.get(N)??[]).filter($=>o.has($.sessionId)),g=(i==null?void 0:i.cardWidth)??le,h=[],l=[],w=[],u=new Set;let x=0,p=0;const m=N=>{const $={count:0,working:0,needsYou:0},_=new Set(u),O=[...f(N)];for(;O.length>0;){const E=O.pop();if(_.has(E.sessionId))continue;_.add(E.sessionId),$.count++;const j=he(E);j==="working"?$.working++:j==="needs-you"&&$.needsYou++,O.push(...f(E.sessionId))}return $},y=N=>f(N).filter($=>!u.has($.sessionId)),k=N=>y(N.sessionId).length===0||s.has(N.sessionId),b=(N,$,_)=>{u.add(N.sessionId);const O=y(N.sessionId),E=O.length>0&&s.has(N.sessionId),j=E?[]:O,L=r&&!i&&j.length>=st?j.filter(k):[],I=L.length>=st?L:[],A=new Set(I),S=j.filter(P=>!A.has(P)),R={member:N,depth:$,x:(_==null?void 0:_.x)??$*(i?$e:le+de),y:(_==null?void 0:_.y)??x+(S.length===0&&I.length>0?me:0),childCount:O.length,collapsed:E,hidden:E?m(N.sessionId):{count:0,working:0,needsYou:0},context:e==="active"&&!gt(N),grouped:!!_};if(h.push(R),p=Math.max(p,R.x+g+(i&&O.length>0?Fe:0)),i){x+=ne+ve;const P=j.map(H=>b(H,$+1));return P.length>0&&l.push({parentId:N.sessionId,path:Ms(R.x,R.y,P)}),R.y}if(E){const P=R.y+ne/2;l.push({parentId:N.sessionId,path:`M${R.x+le} ${P}H${R.x+le+de/2}`})}if(_)return R.y;if(j.length===0)return x+=ne+ve,R.y;const F=S.map(P=>b(P,$+1));return I.length>0&&F.push(M(N.sessionId,I,$+1)+me),l.push({parentId:N.sessionId,path:Ss(R.x+le,R.y,F)}),R.y},M=(N,$,_)=>{const O=Math.min(js,Math.max(2,Math.ceil(Math.sqrt($.length/1.5)))),E=Math.ceil($.length/O),j={parentId:N,x:_*(le+de),y:x,width:O*le+(O-1)*de+2*me,height:E*ne+(E-1)*ve+2*me};return w.push(j),$.forEach((L,I)=>b(L,_,{x:j.x+me+I%O*(le+de),y:j.y+me+Math.floor(I/O)*(ne+ve)})),p=Math.max(p,j.x+j.width),x+=j.height+ve,j.y};for(const N of a)!o.has(N.sessionId)||u.has(N.sessionId)||(h.length>0&&(x+=vs),b(N,0));return{orientation:i?"stacked":"across",cardWidth:g,nodes:h,edges:l,groups:w,width:p,height:Math.max(0,x-ve)}}function Ss(t,e,s){const r=e+ne/2,i=[`M${t} ${r}H${t+de}`];for(const a of s)a!==e&&i.push(wt(t,r,a+ne/2));return i.join("")}function wt(t,e,s){const r=t+de/2;return`M${r} ${e}V${s-Me}Q${r} ${s} ${r+Me} ${s}H${t+de}`}function Ms(t,e,s){return s.map(r=>bt(t,e,r)).join("")}function bt(t,e,s){const r=t+$e/2,i=s+ne/2;return`M${r} ${e+ne}V${i-Me}Q${r} ${i} ${r+Me} ${i}H${t+$e}`}function $s(t,e){const s=new Map(t.nodes.map(c=>[c.member.sessionId,c])),r=new Map(t.groups.map(c=>[c.parentId,c]));let i=e?s.get(e):void 0;const a=[];for(;i!=null&&i.member.parentId;){const c=i.member.parentId,o=s.get(c);if(!o||o.depth!==i.depth-1)break;if(t.orientation==="stacked"){a.unshift(bt(o.x,o.y,i.y)),i=o;continue}const f=o.x+le,g=o.y+ne/2,h=i.grouped?r.get(c):void 0,l=(h?h.y+me:i.y)+ne/2;a.unshift(l===g?`M${f} ${g}H${f+de}`:`M${f} ${g}H${f+de/2}${wt(f,g,l)}`),i=o}return a.length>0?a.join(""):null}const ie=14,Pe=.25,ot=1.5,Rs=.7,Se=1.2,Ts=56,As=900,Os=.85,Es=320,Le={all:new Set,active:new Set};function Ls(t){const[e,s]=Ot(Et("crew-map-filter"),"all"),r=e==="active"?"active":"all",[i,a]=C.useState({rootId:t,folds:Le}),c=C.useRef(new Map),o=i.rootId===t?i.folds:Le,f=C.useCallback(h=>a(l=>{const w=l.rootId===t?l.folds:Le,u=new Set(w[r]);return u.delete(h)||u.add(h),{rootId:t,folds:{...w,[r]:u}}}),[r,t]),g=C.useMemo(()=>({get current(){return c.current.get(t)??null},set current(h){c.current.set(t,h)}}),[t]);return{filter:r,setFilter:s,collapsed:o[r],toggle:f,viewport:g}}function _s(t){const e=ue.c(86),{crew:s,hereId:r,controls:i,kinds:a,nameOf:c,onOpen:o}=t,[f,g]=C.useState(!1),{filter:h,collapsed:l,toggle:w}=i;let u,x,p,m,y,k,b,M,N,$,_,O,E,j,L,I;if(e[0]!==l||e[1]!==i||e[2]!==s||e[3]!==f||e[4]!==h||e[5]!==r||e[6]!==a||e[7]!==c||e[8]!==o||e[9]!==w){let U;e[26]!==s.rootId?(U=v=>v.sessionId===s.rootId,e[26]=s.rootId,e[27]=U):U=e[27];const z=s.members.find(U);let q;e[28]!==l||e[29]!==i||e[30]!==s||e[31]!==h||e[32]!==r||e[33]!==a||e[34]!==c||e[35]!==w?(q=(v,T)=>n.jsx(Ps,{crew:s,collapsed:l,groups:!v,filter:h,hereId:r,kinds:a,nameOf:c,memory:v,onOpen:T,onToggle:w,onShowAll:()=>i.setFilter("all")}),e[28]=l,e[29]=i,e[30]=s,e[31]=h,e[32]=r,e[33]=a,e[34]=c,e[35]=w,e[36]=q):q=e[36],p=q,k="flex h-full min-h-0 flex-col";let W;e[37]!==i||e[38]!==s?(W=n.jsx(at,{crew:s,controls:i}),e[37]=i,e[38]=s,e[39]=W):W=e[39];let K;e[40]===Symbol.for("react.memo_cache_sentinel")?(K=n.jsx("span",{className:"flex-1"}),e[40]=K):K=e[40];let d;e[41]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":"Expand the map",title:"Expand the map",onClick:()=>g(!0),children:n.jsx(ns,{"data-icon":"inline-start"})}),e[41]=d):d=e[41],e[42]!==W?(b=n.jsxs("div",{className:"flex shrink-0 items-center gap-2 px-3 pb-2",children:[W,K,d]}),e[42]=W,e[43]=b):b=e[43],e[44]!==p||e[45]!==i.viewport||e[46]!==o?(M=p(i.viewport,o),e[44]=p,e[45]=i.viewport,e[46]=o,e[47]=M):M=e[47],x=Lt,I=f,y=g,u=_t,O=!0,E="flex h-[calc(100dvh-1rem)] w-[calc(100vw-1rem)] max-w-none flex-col gap-0 overflow-hidden p-0 sm:h-[calc(100dvh-4rem)] sm:w-[calc(100vw-4rem)] sm:max-w-none",e[48]===Symbol.for("react.memo_cache_sentinel")?(j=n.jsx(zt,{className:"sr-only",children:"Crew map"}),L=n.jsx(Dt,{className:"sr-only",children:"Every session in this crew, from the one that started it."}),e[48]=j,e[49]=L):(j=e[48],L=e[49]),$="flex h-12 shrink-0 items-center gap-3 pl-4 pr-14",e[50]===Symbol.for("react.memo_cache_sentinel")?(_=n.jsx(ht,{"aria-hidden":"true",className:"size-4 shrink-0 text-muted-foreground"}),e[50]=_):_=e[50],m="min-w-0 truncate text-sm font-medium",N=z?c(z):"Crew",e[0]=l,e[1]=i,e[2]=s,e[3]=f,e[4]=h,e[5]=r,e[6]=a,e[7]=c,e[8]=o,e[9]=w,e[10]=u,e[11]=x,e[12]=p,e[13]=m,e[14]=y,e[15]=k,e[16]=b,e[17]=M,e[18]=N,e[19]=$,e[20]=_,e[21]=O,e[22]=E,e[23]=j,e[24]=L,e[25]=I}else u=e[10],x=e[11],p=e[12],m=e[13],y=e[14],k=e[15],b=e[16],M=e[17],N=e[18],$=e[19],_=e[20],O=e[21],E=e[22],j=e[23],L=e[24],I=e[25];let A;e[51]!==m||e[52]!==N?(A=n.jsx("span",{className:m,children:N}),e[51]=m,e[52]=N,e[53]=A):A=e[53];let S;e[54]===Symbol.for("react.memo_cache_sentinel")?(S=n.jsx("span",{className:"flex-1"}),e[54]=S):S=e[54];let R;e[55]!==i||e[56]!==s?(R=n.jsx(at,{crew:s,controls:i}),e[55]=i,e[56]=s,e[57]=R):R=e[57];let F;e[58]!==A||e[59]!==R||e[60]!==$||e[61]!==_?(F=n.jsxs("header",{className:$,children:[_,A,S,R]}),e[58]=A,e[59]=R,e[60]=$,e[61]=_,e[62]=F):F=e[62];let P;e[63]!==o?(P=U=>{g(!1),o(U)},e[63]=o,e[64]=P):P=e[64];let H;e[65]!==p||e[66]!==P?(H=p(null,P),e[65]=p,e[66]=P,e[67]=H):H=e[67];let D;e[68]!==u||e[69]!==F||e[70]!==H||e[71]!==O||e[72]!==E||e[73]!==j||e[74]!==L?(D=n.jsxs(u,{showCloseButton:O,className:E,children:[j,L,F,H]}),e[68]=u,e[69]=F,e[70]=H,e[71]=O,e[72]=E,e[73]=j,e[74]=L,e[75]=D):D=e[75];let Y;e[76]!==x||e[77]!==y||e[78]!==D||e[79]!==I?(Y=n.jsx(x,{open:I,onOpenChange:y,children:D}),e[76]=x,e[77]=y,e[78]=D,e[79]=I,e[80]=Y):Y=e[80];let G;return e[81]!==k||e[82]!==b||e[83]!==M||e[84]!==Y?(G=n.jsxs("div",{className:k,children:[b,M,Y]}),e[81]=k,e[82]=b,e[83]=M,e[84]=Y,e[85]=G):G=e[85],G}function at(t){const e=ue.c(3),{crew:s,controls:r}=t;let i;if(e[0]!==r||e[1]!==s){const a=ys(s),c=[{id:"all",label:"All",count:a.all,hint:"Every session in the crew"},{id:"active",label:"Active",count:a.active,hint:"Sessions working or waiting on you, and the sessions that started them"}];i=n.jsx("div",{role:"radiogroup","aria-label":"Show on the map",className:"flex shrink-0 gap-0.5 rounded-full border bg-background p-0.5",children:c.map(o=>{const{id:f,label:g,count:h,hint:l}=o;return n.jsxs("button",{type:"button",role:"radio","aria-checked":r.filter===f,"aria-label":`${g}, ${vt(h)}`,title:l,onClick:()=>r.setFilter(f),className:oe("inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",r.filter===f&&"bg-accent text-foreground"),children:[g,n.jsx("span",{className:"tabular-nums text-muted-foreground",children:h})]},f)})}),e[0]=r,e[1]=s,e[2]=i}else i=e[2];return i}function vt(t){return`${t} ${t===1?"session":"sessions"}`}function _e(t,e,s){return t.orientation==="stacked"?{scale:e,left:ie,top:ie}:{scale:e,left:Math.max(ie,(s.width-t.width*e)/2),top:Math.max(ie,Math.min((s.height-t.height*e)/2,s.height*.12))}}function zs(t,e,s){return{width:Math.max(s.width,e.left+t.width*e.scale+ie),height:Math.max(s.height,e.top+t.height*e.scale+Ts)}}function lt(t,e,{widthOnly:s=!1}={}){if(t.width===0||e.width===0)return 1;const r=(e.width-2*ie)/t.width,i=s?r:Math.min(r,(e.height-2*ie)/t.height);return Ye(i,Pe,1)}const Ye=(t,e,s)=>Math.min(s,Math.max(e,t));function Ds(t,e,s,r,i){var w;const a=new Map(e.layout.nodes.map(u=>[u.member.sessionId,u])),c=new Map(s.nodes.map(u=>[u.member.sessionId,u]));if(e.frame===r&&a.size===c.size&&s.nodes.every(u=>{const x=a.get(u.member.sessionId);return x!==void 0&&x.x===u.x&&x.y===u.y}))return null;const f=u=>({x:e.frame.left+u.x*e.frame.scale-t.left,y:e.frame.top+u.y*e.frame.scale-t.top}),g=i&&a.has(i)&&c.has(i)?i:(w=e.layout.nodes.filter(u=>c.has(u.member.sessionId)).map(u=>({node:u,screen:f(u)})).filter(({screen:u})=>u.y+ne*e.frame.scale>0&&u.x+e.layout.cardWidth*e.frame.scale>0).sort((u,x)=>u.screen.y-x.screen.y||u.screen.x-x.screen.x)[0])==null?void 0:w.node.member.sessionId;if(!g)return null;const h=f(a.get(g)),l=c.get(g);return{left:r.left+l.x*r.scale-h.x,top:r.top+l.y*r.scale-h.y}}function Fs(t,e,s,r){const i=new Map(t.nodes.map(x=>[x.member.sessionId,x])),a=e?i.get(e):void 0;if(!a)return{left:0,top:0};const{scale:c}=s,o=s.left+a.x*c,f=s.top+a.y*c,g=o+t.cardWidth*c,h=f+ne*c;if(g<=r.clientWidth&&h<=r.clientHeight)return{left:0,top:0};const l=a.member.parentId&&i.get(a.member.parentId)||a;let w=s.left+Math.min(l.x,a.x)*c-ie,u=s.top+Math.min(l.y,a.y)*c-ie;return g-w>r.clientWidth&&(w=o-ie),h-u>r.clientHeight&&(u=f-r.clientHeight/3),{left:Math.max(0,w),top:Math.max(0,u)}}function Ps({crew:t,collapsed:e,groups:s,filter:r,hereId:i,kinds:a,nameOf:c,memory:o,onOpen:f,onToggle:g,onShowAll:h}){const l=C.useRef(null),[w,u]=C.useState({width:0,height:0}),x=s&&w.width>=As,p=C.useMemo(()=>Is(t),[t]),m=w.width-2*ie,y=!s&&w.width>0&&Cs(p)*Os>m,k=y?Ye(m-p*$e-Fe,le,Es):le,b=C.useMemo(()=>ks(t,r,e,{group:x,...y&&{stacked:{cardWidth:k}}}),[t,r,e,x,y,k]),[M,N]=C.useState(()=>{var d;return((d=o==null?void 0:o.current)==null?void 0:d.frame)??{scale:1,left:ie,top:ie}}),[$,_]=C.useState(!1),O=C.useRef(null),E=C.useRef(null),j=C.useRef({left:0,top:0}),L=C.useRef(null),I=C.useRef(null),A=zs(b,M,w),{scale:S}=M;C.useLayoutEffect(()=>{const d=l.current;if(!d)return;const v=()=>u(X=>X.width===d.clientWidth&&X.height===d.clientHeight?X:{width:d.clientWidth,height:d.clientHeight});v();const T=new ResizeObserver(v);return T.observe(d),()=>T.disconnect()},[]);const R=C.useCallback(d=>{const v=l.current;o&&v&&(o.current={frame:d,left:v.scrollLeft,top:v.scrollTop})},[o]),F=C.useCallback((d,v)=>{O.current={frame:d,scroll:v},N(d)},[]),P=C.useCallback(d=>{const v=_e(d,Math.max(lt(d,w,{widthOnly:!0}),Rs),w);F(v,()=>{const T=l.current;return T?Fs(d,i,v,T):{left:0,top:0}})},[F,i,w]);C.useLayoutEffect(()=>{const d=l.current;if(w.width===0||!d)return;const v=L.current;if(v){if(v.filter!==r||v.layout.orientation!==b.orientation)P(b);else if(v.layout!==b){const T=Ds(j.current,v,b,M,E.current);T&&(d.scrollLeft=T.left,d.scrollTop=T.top,j.current={left:d.scrollLeft,top:d.scrollTop})}}else{const T=o==null?void 0:o.current;T?F(T.frame,()=>({left:T.left,top:T.top})):P(b)}E.current=null,L.current={layout:b,filter:r,frame:M}}),C.useLayoutEffect(()=>{const d=O.current,v=l.current;if(!d||!v||d.frame!==M)return;O.current=null;const{left:T,top:X}=d.scroll();v.scrollLeft=T,v.scrollTop=X,j.current={left:v.scrollLeft,top:v.scrollTop},R(M)});const H=C.useRef(i);C.useEffect(()=>{var d,v;H.current!==i&&(H.current=i,i&&((v=(d=l.current)==null?void 0:d.querySelector(`[data-crew-map-card="${CSS.escape(i)}"]`))==null||v.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})))},[i]);const D=C.useCallback((d,v)=>{var ce;const T=l.current,X=((ce=O.current)==null?void 0:ce.frame.scale)??S,ae=Ye(X*d,Pe,ot);if(!T||ae===X)return;const J=T.getBoundingClientRect(),Q=v?v.clientX-J.left:T.clientWidth/2,ee=v?v.clientY-J.top:T.clientHeight/2,se=(T.scrollLeft+Q-M.left)/S,re=(T.scrollTop+ee-M.top)/S,Z=_e(b,ae,w);F(Z,()=>({left:Z.left+se*Z.scale-Q,top:Z.top+re*Z.scale-ee}))},[F,M.left,M.top,b,S,w]),Y=C.useRef(D);C.useLayoutEffect(()=>{Y.current=D}),C.useEffect(()=>{const d=l.current;if(!d)return;const v=T=>{!T.ctrlKey&&!T.metaKey||(T.preventDefault(),Y.current(Math.exp(-T.deltaY*.01),T))};return d.addEventListener("wheel",v,{passive:!1}),()=>d.removeEventListener("wheel",v)},[]);const G=d=>{const v=l.current;!v||d.pointerType!=="mouse"||d.button!==0||d.target.closest("button")||(I.current={pointerId:d.pointerId,x:d.clientX,y:d.clientY,left:v.scrollLeft,top:v.scrollTop},v.setPointerCapture(d.pointerId),_(!0))},U=d=>{const v=I.current,T=l.current;!v||!T||v.pointerId!==d.pointerId||(T.scrollLeft=v.left-(d.clientX-v.x),T.scrollTop=v.top-(d.clientY-v.y))},z=d=>{var v,T;((v=I.current)==null?void 0:v.pointerId)===d.pointerId&&(I.current=null,(T=l.current)==null||T.releasePointerCapture(d.pointerId),_(!1))},q=C.useMemo(()=>$s(b,i),[b,i]),W=b.nodes.length===0,K=b.orientation==="stacked"?b.cardWidth+Fe/2:le+de/2;return n.jsxs("div",{className:"relative min-h-0 flex-1 border-t",children:[n.jsx("div",{ref:l,role:"region","aria-label":"Crew map","data-crew-map-layout":b.orientation,onScroll:d=>{j.current={left:d.currentTarget.scrollLeft,top:d.currentTarget.scrollTop},O.current||R(M)},onPointerDown:G,onPointerMove:U,onPointerUp:z,onPointerCancel:z,onKeyDown:d=>{d.target===d.currentTarget&&(d.key==="+"||d.key==="="?D(Se):d.key==="-"&&D(1/Se))},tabIndex:-1,className:oe("absolute inset-0 overflow-auto overscroll-contain outline-none [touch-action:pan-x_pan-y]","bg-muted/30 bg-local bg-[radial-gradient(circle,var(--border)_1px,transparent_1px)] bg-size-[18px_18px]",$?"cursor-grabbing select-none":"cursor-grab"),children:W?n.jsxs(rt,{className:"h-full",children:[n.jsxs(ct,{children:[n.jsx(dt,{children:"Nothing is active"}),n.jsx(ut,{className:"text-xs",children:"No session in this crew is working or waiting on you."})]}),n.jsx(te,{variant:"outline",size:"xs",onClick:h,children:"Show all sessions"})]}):n.jsx("div",{className:"relative",style:{width:A.width,height:A.height},children:n.jsxs("div",{className:"absolute origin-top-left",style:{left:M.left,top:M.top,width:b.width,height:b.height,transform:`scale(${S})`},children:[b.groups.map(d=>n.jsx("div",{"aria-hidden":"true",className:"absolute rounded-xl border border-dashed border-muted-foreground/25 bg-muted/25",style:{left:d.x,top:d.y,width:d.width,height:d.height}},d.parentId)),n.jsxs("svg",{"aria-hidden":"true",width:b.width,height:b.height,className:"pointer-events-none absolute inset-0 overflow-visible",fill:"none",children:[b.edges.map(d=>n.jsx("path",{d:d.path,className:"stroke-muted-foreground/35",strokeWidth:1.25},d.parentId)),q&&n.jsx("path",{d:q,className:"stroke-foreground/55",strokeWidth:1.5})]}),n.jsx("ul",{"aria-label":"Sessions",className:"absolute inset-0",children:b.nodes.map(d=>n.jsx(Hs,{node:d,width:b.cardWidth,toggleLeft:K,here:d.member.sessionId===i,kind:a.get(d.member.sessionId),name:c(d.member),onOpen:f,onToggle:v=>{E.current=v,g(v)}},d.member.sessionId))})]})})}),!W&&n.jsxs("div",{className:"absolute bottom-2.5 right-2.5 flex items-center gap-0.5 rounded-lg border bg-popover p-0.5 shadow-sm",children:[n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":"Zoom out",title:"Zoom out",disabled:S<=Pe,onClick:()=>D(1/Se),children:n.jsx(pt,{"data-icon":"inline-start"})}),n.jsxs(te,{variant:"ghost",size:"xs","aria-label":"Actual size",title:"Actual size",className:"min-w-11 px-1 tabular-nums text-muted-foreground",onClick:()=>D(1/S),children:[Math.round(S*100),"%"]}),n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":"Zoom in",title:"Zoom in",disabled:S>=ot,onClick:()=>D(Se),children:n.jsx(os,{"data-icon":"inline-start"})}),n.jsx("span",{className:"mx-0.5 h-4 w-px bg-border","aria-hidden":"true"}),n.jsx(te,{variant:"ghost",size:"xs",title:"Fit the whole crew on screen",className:"px-1.5 text-muted-foreground",onClick:()=>F(_e(b,lt(b,w),w),()=>({left:0,top:0})),children:"Fit"})]})]})}const Ys={"needs-you":"border-warning/60 bg-[color-mix(in_oklch,var(--warning)_7%,var(--card))]",failed:"border-destructive/45",unreachable:"border-dashed"},qs={"needs-you":"text-warning",failed:"text-destructive"};function Ws(t){var s,r;const e=(s=t.pullRequests)==null?void 0:s.at(-1);return[t.model&&qe(t.model),(r=t.device)==null?void 0:r.name,e&&`#${e.number}`,t.lastActivityAt&&We(t.lastActivityAt)].filter(Boolean).join(" · ")}function Hs(t){const e=ue.c(75),{node:s,width:r,toggleLeft:i,here:a,kind:c,name:o,onOpen:f,onToggle:g}=t,{member:h}=s;let l;e[0]!==h?(l=he(h),e[0]=h,e[1]=l):l=e[1];const w=l;let u;e[2]!==h?(u=Ie(h),e[2]=h,e[3]=u):u=e[3];const x=u;let p;e[4]!==c?(p=c?Ft(c):as,e[4]=c,e[5]=p):p=e[5];const m=p;let y;e[6]!==h?(y=Ws(h),e[6]=h,e[7]=y):y=e[7];const k=y,b=s.context&&"shown because a session it started is active";let M;e[8]!==x||e[9]!==o||e[10]!==b?(M=[o,x,b].filter(Boolean),e[8]=x,e[9]=o,e[10]=b,e[11]=M):M=e[11];const N=M.join(", ");let $;e[12]!==s.x||e[13]!==s.y||e[14]!==r?($={left:s.x,top:s.y,width:r,height:ne},e[12]=s.x,e[13]=s.y,e[14]=r,e[15]=$):$=e[15];const _=h.sessionId,O=a?"true":void 0;let E;e[16]!==h||e[17]!==f?(E=()=>f(h),e[16]=h,e[17]=f,e[18]=E):E=e[18];const j=Ys[w],L=a&&"outline-solid outline-[1.5px] outline-offset-2 outline-foreground/70",I=s.context&&"opacity-60 hover:opacity-100 focus-visible:opacity-100";let A;e[19]!==j||e[20]!==L||e[21]!==I?(A=oe("flex size-full cursor-pointer flex-col justify-center gap-1 rounded-lg border bg-card px-2.5 py-2 text-left shadow-xs outline-none","transition-[border-color,opacity,box-shadow] hover:border-foreground/25 hover:shadow-sm focus-visible:ring-2 focus-visible:ring-ring",j,L,I),e[19]=j,e[20]=L,e[21]=I,e[22]=A):A=e[22];let S;e[23]!==N||e[24]!==h.sessionId||e[25]!==w||e[26]!==E||e[27]!==A||e[28]!==O?(S=n.jsx("button",{type:"button","data-crew-map-card":_,"data-crew-map-state":w,"aria-current":O,"aria-label":N,onClick:E,className:A}),e[23]=N,e[24]=h.sessionId,e[25]=w,e[26]=E,e[27]=A,e[28]=O,e[29]=S):S=e[29];let R;e[30]!==m?(R=n.jsx(m,{"aria-hidden":"true",className:"mt-[3px] size-3.5 shrink-0 text-muted-foreground"}),e[30]=m,e[31]=R):R=e[31];let F;e[32]!==o?(F=n.jsx("span",{className:"line-clamp-2 min-w-0 flex-1 text-[13px]/[18px] font-medium",children:o}),e[32]=o,e[33]=F):F=e[33];let P;e[34]!==R||e[35]!==F?(P=n.jsxs("span",{className:"flex min-w-0 items-start gap-1.5",children:[R,F]}),e[34]=R,e[35]=F,e[36]=P):P=e[36];const H=fe[w];let D;e[37]!==H?(D=oe("size-1.5 shrink-0 rounded-full",H),e[37]=H,e[38]=D):D=e[38];let Y;e[39]!==D?(Y=n.jsx("span",{className:D,"aria-hidden":"true"}),e[39]=D,e[40]=Y):Y=e[40];let G;e[41]!==h||e[42]!==w?(G=Re(h)?"text-warning":qs[w],e[41]=h,e[42]=w,e[43]=G):G=e[43];let U;e[44]!==G?(U=oe("min-w-0 truncate text-muted-foreground",G),e[44]=G,e[45]=U):U=e[45];let z;e[46]!==x||e[47]!==U?(z=n.jsx("span",{className:U,children:x}),e[46]=x,e[47]=U,e[48]=z):z=e[48];let q;e[49]!==Y||e[50]!==z?(q=n.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-xs",children:[Y,z]}),e[49]=Y,e[50]=z,e[51]=q):q=e[51];let W;e[52]!==a||e[53]!==k?(W=(k||a)&&n.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-[11.5px] tabular-nums text-muted-foreground/75",children:[n.jsx("span",{className:"min-w-0 flex-1 truncate",children:k}),a&&n.jsx("span",{className:"shrink-0 font-medium text-foreground/70",children:"You are here"})]}),e[52]=a,e[53]=k,e[54]=W):W=e[54];let K;e[55]!==S||e[56]!==P||e[57]!==q||e[58]!==W?(K=n.jsxs(Pt,{delay:700,render:S,children:[P,q,W]}),e[55]=S,e[56]=P,e[57]=q,e[58]=W,e[59]=K):K=e[59];let d;e[60]!==h||e[61]!==o?(d=n.jsx(Yt,{side:"left",align:"start",className:"max-w-72",children:n.jsx(Bs,{member:h,name:o})}),e[60]=h,e[61]=o,e[62]=d):d=e[62];let v;e[63]!==K||e[64]!==d?(v=n.jsxs(qt,{children:[K,d]}),e[63]=K,e[64]=d,e[65]=v):v=e[65];let T;e[66]!==o||e[67]!==s||e[68]!==g||e[69]!==i?(T=s.childCount>0&&n.jsx(Us,{node:s,name:o,left:i,onToggle:g}),e[66]=o,e[67]=s,e[68]=g,e[69]=i,e[70]=T):T=e[70];let X;return e[71]!==v||e[72]!==T||e[73]!==$?(X=n.jsxs("li",{className:"group/node absolute",style:$,children:[v,T]}),e[71]=v,e[72]=T,e[73]=$,e[74]=X):X=e[74],X}function Us(t){const e=ue.c(25),{node:s,name:r,left:i,onToggle:a}=t,{collapsed:c,hidden:o}=s;let f=null;o.needsYou>0?f="needs-you":o.working>0&&(f="working");let g;e[0]!==c||e[1]!==o.count||e[2]!==o.needsYou||e[3]!==o.working||e[4]!==r?(g=c?[`Show the ${vt(o.count)} under ${r}`,o.needsYou>0&&`${o.needsYou} waiting on you`,o.working>0&&`${o.working} working`].filter(Boolean).join(", "):`Fold the sessions under ${r}`,e[0]=c,e[1]=o.count,e[2]=o.needsYou,e[3]=o.working,e[4]=r,e[5]=g):g=e[5];const h=g,l=!c,w=c?void 0:"Fold";let u;e[6]!==s.member.sessionId||e[7]!==a?(u=()=>a(s.member.sessionId),e[6]=s.member.sessionId,e[7]=a,e[8]=u):u=e[8];const x=!c&&"opacity-0 group-hover/node:opacity-100 focus-visible:opacity-100 [@media(hover:none)]:opacity-100";let p;e[9]!==x?(p=oe("absolute z-10 flex h-5 min-w-5 -translate-x-1/2 -translate-y-1/2 cursor-pointer items-center justify-center gap-1 rounded-full border bg-card px-1.5 text-[11px] font-medium tabular-nums text-muted-foreground shadow-xs outline-none","transition-opacity hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",x),e[9]=x,e[10]=p):p=e[10];let m;e[11]!==i?(m={left:i,top:ne/2},e[11]=i,e[12]=m):m=e[12];let y;e[13]!==f||e[14]!==c||e[15]!==o.count?(y=c?n.jsxs(n.Fragment,{children:[f&&n.jsx("span",{className:oe("size-1.5 rounded-full",fe[f]),"aria-hidden":"true"}),"+",o.count]}):n.jsx(pt,{"aria-hidden":"true",className:"size-3"}),e[13]=f,e[14]=c,e[15]=o.count,e[16]=y):y=e[16];let k;return e[17]!==h||e[18]!==l||e[19]!==w||e[20]!==u||e[21]!==p||e[22]!==m||e[23]!==y?(k=n.jsx("button",{type:"button","aria-expanded":l,"aria-label":h,title:w,onClick:u,className:p,style:m,children:y}),e[17]=h,e[18]=l,e[19]=w,e[20]=u,e[21]=p,e[22]=m,e[23]=y,e[24]=k):k=e[24],k}function Bs(t){var u,x;const e=ue.c(35),{member:s,name:r}=t;let i;e[0]!==s.firstUserMessage?(i=(u=s.firstUserMessage)==null?void 0:u.replace(/\s+/g," ").trim(),e[0]=s.firstUserMessage,e[1]=i):i=e[1];const a=i;let c;e[2]!==s.cwd?(c=(x=s.cwd)==null?void 0:x.split(/[\\/]/).filter(Boolean).at(-1),e[2]=s.cwd,e[3]=c):c=e[3];const o=c;let f;if(e[4]!==o||e[5]!==s.device||e[6]!==s.model||e[7]!==s.startedAt||e[8]!==s.turnCount){if(f=[],s.model){let p;e[10]!==s.model?(p=qe(s.model),e[10]=s.model,e[11]=p):p=e[11];let m;e[12]!==p?(m=["Model",p],e[12]=p,e[13]=m):m=e[13],f.push(m)}if(s.device){let p;e[14]!==s.device.name?(p=["Device",s.device.name],e[14]=s.device.name,e[15]=p):p=e[15],f.push(p)}if(o){let p;e[16]!==o?(p=["Folder",o],e[16]=o,e[17]=p):p=e[17],f.push(p)}if(s.startedAt){let p;e[18]!==s.startedAt?(p=mt(s.startedAt),e[18]=s.startedAt,e[19]=p):p=e[19];let m;e[20]!==p?(m=["Started",p],e[20]=p,e[21]=m):m=e[21],f.push(m)}if(s.turnCount){const p=String(s.turnCount);let m;e[22]!==p?(m=["Turns",p],e[22]=p,e[23]=m):m=e[23],f.push(m)}e[4]=o,e[5]=s.device,e[6]=s.model,e[7]=s.startedAt,e[8]=s.turnCount,e[9]=f}else f=e[9];let g;e[24]!==r?(g=n.jsx("p",{className:"font-medium",children:r}),e[24]=r,e[25]=g):g=e[25];let h;e[26]!==r||e[27]!==a?(h=a&&a!==r&&n.jsx("p",{className:"line-clamp-3 text-muted-foreground",children:a}),e[26]=r,e[27]=a,e[28]=h):h=e[28];let l;e[29]!==f?(l=f.length>0&&n.jsx("dl",{className:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-0.5",children:f.map(Gs)}),e[29]=f,e[30]=l):l=e[30];let w;return e[31]!==g||e[32]!==h||e[33]!==l?(w=n.jsxs("div",{className:"flex flex-col gap-1.5 py-0.5",children:[g,h,l]}),e[31]=g,e[32]=h,e[33]=l,e[34]=w):w=e[34],w}function Gs(t){const[e,s]=t;return n.jsxs("div",{className:"contents",children:[n.jsx("dt",{className:"text-muted-foreground",children:e}),n.jsx("dd",{className:"truncate tabular-nums",children:s})]},e)}const Vs=4e3;function Ks(t){var p;const[e,s]=C.useState(null),[r,i]=C.useState(null),[a,c]=C.useState(new Set),o=(p=Wt())==null?void 0:p.refresh,f=C.useRef(t),g=C.useRef(new Set);C.useLayoutEffect(()=>(f.current=t,()=>{f.current=null}),[t]);const h=C.useCallback(async m=>{if(t)try{const y=await ze(`/api/session-crew/${encodeURIComponent(t)}`);if(!m())return;if(!y.ok){i(y.status===404?"This session is no longer available.":"Couldn't load the crew.");return}const k=await y.json();if(!m())return;s(b=>JSON.stringify(b)===JSON.stringify(k)?b:k),i(null)}catch{m()&&i("Couldn't load the crew.")}},[t]);it(t?h:null,Vs),C.useEffect(()=>{s(m=>m!=null&&m.members.some(y=>y.sessionId===t)?m:null),i(null),c(new Set)},[t]);const l=C.useCallback(async(m,y,k)=>{const b=`${t}:${m}`;if(g.current.has(b))return;const M=()=>f.current===t;g.current.add(b),c(N=>new Set(N).add(m));try{const N=await y();if(!M())return;if(!N.ok&&N.status!==404){i(k);return}o==null||o(),await h(M)}catch{M()&&i(k)}finally{g.current.delete(b),M()&&c(N=>{const $=new Set(N);return $.delete(m),$})}},[h,o,t]),w=C.useCallback((m,y,k)=>l(y,()=>je("/api/session-respond",{sessionId:m,requestId:y,...k}),"Couldn't send the answer."),[l]),u=C.useCallback((m,y)=>l(y,()=>je("/api/delegated-tasks",{sessionId:m,taskId:y,action:"ack"}),"Couldn't mark the result read."),[l]),x=C.useCallback(m=>l(m.sessionId,()=>{var y;return((y=m.result)==null?void 0:y.state)==="running"&&m.parentId?je("/api/delegated-tasks",{sessionId:m.parentId,taskId:m.result.taskId,action:"cancel"}):je("/api/stop-session",{sessionId:m.sessionId,cancelQueued:!0})},"Couldn't stop the session."),[l]);return{crew:e,error:r,busy:a,respond:w,markRead:u,stop:x}}const Xs=[{id:"all",label:"All"},{id:"working",label:"Working"},{id:"needs-you",label:"Need you"},{id:"done",label:"Done"}],Zs={working:"bg-success shadow-[0_0_0_2px_color-mix(in_oklch,var(--success)_25%,transparent)]","needs-you":"bg-warning",done:"bg-muted-foreground/40",failed:"bg-destructive",unreachable:"border border-muted-foreground/50"};function un(t){var U;const e=ue.c(40),{context:s,closePanel:r}=t,i=((U=s.session)==null?void 0:U.sessionId)??null,{crew:a,error:c,busy:o,respond:f,markRead:g,stop:h}=Ks(i),{names:l}=Ht(),[w,u]=C.useState("overview");let x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x=new Set,e[0]=x):x=e[0];const[p,m]=C.useState(x),y=Ls((a==null?void 0:a.rootId)??"");let k;e[1]!==(a==null?void 0:a.members)?(k=new Map(((a==null?void 0:a.members)??[]).map(Qs)),e[1]=a==null?void 0:a.members,e[2]=k):k=e[2];const b=k;let M;e[3]!==(a==null?void 0:a.members)?(M=new Map(((a==null?void 0:a.members)??[]).flatMap(Js)),e[3]=a==null?void 0:a.members,e[4]=M):M=e[4];const N=M;let $;e[5]!==b||e[6]!==l?($=z=>gs(z,b,l),e[5]=b,e[6]=l,e[7]=$):$=e[7];const _=$;let O;e[8]!==s?(O=z=>{z.address&&z.device?Xt(Zt(z.address.dirName,z.address.fileName,z.device.id)):z.address&&s.openSession?s.openSession(z.address.dirName,z.address.fileName):Jt(z.sessionId)},e[8]=s,e[9]=O):O=e[9];const E=O;let j;e[10]===Symbol.for("react.memo_cache_sentinel")?(j=z=>m(q=>{const W=new Set(q);return W.delete(z)||W.add(z),W}),e[10]=j):j=e[10];const L=j;let I;e[11]!==b?(I=z=>{m(q=>{var v;const W=new Set(q),K=new Set;let d=z.parentId;for(;d&&!K.has(d);)K.add(d),W.delete(d),d=((v=b.get(d))==null?void 0:v.parentId)??null;return W}),requestAnimationFrame(()=>{var q;return(q=document.querySelector(`[data-crew-row="${z.sessionId}"]`))==null?void 0:q.scrollIntoView({block:"nearest",behavior:"smooth"})})},e[11]=b,e[12]=I):I=e[12];const A=I;let S,R,F;e[13]===Symbol.for("react.memo_cache_sentinel")?(R=n.jsx(ht,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),F=n.jsx("h2",{className:"text-sm font-medium",children:"Crew"}),S=n.jsx("div",{className:"flex-1"}),e[13]=S,e[14]=R,e[15]=F):(S=e[13],R=e[14],F=e[15]);let P;e[16]===Symbol.for("react.memo_cache_sentinel")?(P=n.jsx(cs,{"data-icon":"inline-start"}),e[16]=P):P=e[16];let H;e[17]!==r?(H=n.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-2 px-3",children:[R,F,S,n.jsx(te,{variant:"ghost",size:"icon-sm",onClick:r,"aria-label":"Close crew",children:P})]}),e[17]=r,e[18]=H):H=e[18];let D;e[19]!==c?(D=c&&n.jsx("p",{role:"alert",className:"px-3 pb-2 text-xs text-destructive",children:c}),e[19]=c,e[20]=D):D=e[20];let Y;e[21]!==o||e[22]!==p||e[23]!==a||e[24]!==c||e[25]!==N||e[26]!==y||e[27]!==g||e[28]!==_||e[29]!==E||e[30]!==f||e[31]!==A||e[32]!==i||e[33]!==h||e[34]!==w?(Y=a?n.jsxs(Ut,{value:w,onValueChange:u,className:"min-h-0 flex-1 grid-rows-[auto_minmax(0,1fr)]",children:[n.jsxs(Bt,{variant:"line",className:"mx-3 mb-1",children:[n.jsx(Ae,{value:"overview",children:"Overview"}),n.jsx(Ae,{value:"map",children:"Map"}),n.jsx(Ae,{value:"chat",children:"Chat"})]}),n.jsx(Oe,{value:"overview",className:"min-h-0",children:n.jsxs(ft,{className:"h-full min-h-0",children:[n.jsx(en,{crew:a,hereId:i,nameOf:_,onOpen:E,onReveal:A}),n.jsx(sn,{crew:a,busy:o,nameOf:_,onOpen:E,onRespond:f}),n.jsx(nn,{crew:a,hereId:i,busy:o,nameOf:_,onOpen:E,onMarkRead:g,onStop:h,collapsed:p,onToggle:L})]})}),n.jsx(Oe,{value:"map",className:"min-h-0",children:n.jsx(_s,{crew:a,hereId:i,controls:y,kinds:N,nameOf:_,onOpen:E})}),n.jsx(Oe,{value:"chat",keepMounted:!0,className:"min-h-0",children:n.jsx(hs,{rootId:a.rootId,kinds:N,active:w==="chat"},a.rootId)})]}):!c&&n.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Loading the crew…"}),e[21]=o,e[22]=p,e[23]=a,e[24]=c,e[25]=N,e[26]=y,e[27]=g,e[28]=_,e[29]=E,e[30]=f,e[31]=A,e[32]=i,e[33]=h,e[34]=w,e[35]=Y):Y=e[35];let G;return e[36]!==H||e[37]!==D||e[38]!==Y?(G=n.jsxs("aside",{"aria-label":"Crew",className:"flex size-full min-h-0 flex-col bg-canvas",children:[H,D,Y]}),e[36]=H,e[37]=D,e[38]=Y,e[39]=G):G=e[39],G}function Js(t){return t.address?[[t.sessionId,Gt(t.address.dirName)]]:[]}function Qs(t){return[t.sessionId,t]}function en(t){var M;const e=ue.c(46),{crew:s,hereId:r,nameOf:i,onOpen:a,onReveal:c}=t;let o,f,g,h,l;if(e[0]!==s||e[1]!==r||e[2]!==i||e[3]!==a||e[4]!==c){let N;e[10]!==s.rootId?(N=S=>S.sessionId===s.rootId,e[10]=s.rootId,e[11]=N):N=e[11];const $=s.members.find(N),_=s.members.filter(tn);let O;e[12]!==s?(O=bs(s),e[12]=s,e[13]=O):O=e[13],l=O;const E=(M=_[0])==null?void 0:M.startedAt;o="Crew summary",f="border-b px-3 pb-3 pt-1";const j=$&&n.jsx("button",{type:"button",onClick:()=>a($),"aria-current":$.sessionId===r?"true":void 0,className:"min-w-0 flex-1 truncate rounded-sm text-left text-sm font-medium outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring",children:i($)}),L=l.size===1?"session":"sessions",I=E?` · since ${mt(E)}`:"";let A;e[14]!==L||e[15]!==I||e[16]!==l.size?(A=n.jsxs("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:[l.size," ",L,I]}),e[14]=L,e[15]=I,e[16]=l.size,e[17]=A):A=e[17],e[18]!==A||e[19]!==j?(g=n.jsxs("div",{className:"flex items-baseline gap-2",children:[j,A]}),e[18]=A,e[19]=j,e[20]=g):g=e[20],h=_.length>0&&n.jsx("div",{"data-crew-strip":!0,className:"mt-2.5 grid grid-cols-[repeat(auto-fit,minmax(6px,1fr))] gap-[3px]",role:"list","aria-label":"One cell per session, in the order they were started",children:_.map(S=>{const R=he(S);return n.jsx("button",{type:"button",role:"listitem","data-crew-cell":R,title:`${i(S)}: ${Ie(S)}`,"aria-label":`${i(S)}: ${Ie(S)}`,onClick:()=>c(S),className:oe("h-2.5 rounded-[2px] outline-none focus-visible:ring-2 focus-visible:ring-ring",Zs[R],S.sessionId===r&&"outline outline-[1.5px] outline-offset-2 outline-foreground")},S.sessionId)})}),e[0]=s,e[1]=r,e[2]=i,e[3]=a,e[4]=c,e[5]=o,e[6]=f,e[7]=g,e[8]=h,e[9]=l}else o=e[5],f=e[6],g=e[7],h=e[8],l=e[9];let w;e[21]!==l.working?(w=l.working>0&&n.jsx(Ne,{dot:fe.working,value:l.working,label:"working"}),e[21]=l.working,e[22]=w):w=e[22];let u;e[23]!==l.needsYou?(u=l.needsYou>0&&n.jsx(Ne,{dot:fe["needs-you"],value:l.needsYou,label:l.needsYou===1?"needs you":"need you"}),e[23]=l.needsYou,e[24]=u):u=e[24];let x;e[25]!==l.done?(x=l.done>0&&n.jsx(Ne,{dot:fe.done,value:l.done,label:"done"}),e[25]=l.done,e[26]=x):x=e[26];let p;e[27]!==l.failed?(p=l.failed>0&&n.jsx(Ne,{dot:fe.failed,value:l.failed,label:"failed"}),e[27]=l.failed,e[28]=p):p=e[28];let m;e[29]!==l.unreachable?(m=l.unreachable>0&&n.jsx(Ne,{dot:fe.unreachable,value:l.unreachable,label:"away"}),e[29]=l.unreachable,e[30]=m):m=e[30];let y;e[31]!==l.unreadResults?(y=l.unreadResults>0&&n.jsxs("span",{className:"ml-auto text-warning",children:[n.jsx("span",{className:"font-medium tabular-nums",children:l.unreadResults})," ",l.unreadResults===1?"result":"results"," unread"]}),e[31]=l.unreadResults,e[32]=y):y=e[32];let k;e[33]!==y||e[34]!==w||e[35]!==u||e[36]!==x||e[37]!==p||e[38]!==m?(k=n.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-3.5 gap-y-1 text-xs text-muted-foreground",children:[w,u,x,p,m,y]}),e[33]=y,e[34]=w,e[35]=u,e[36]=x,e[37]=p,e[38]=m,e[39]=k):k=e[39];let b;return e[40]!==o||e[41]!==k||e[42]!==f||e[43]!==g||e[44]!==h?(b=n.jsxs("section",{"aria-label":o,className:f,children:[g,h,k]}),e[40]=o,e[41]=k,e[42]=f,e[43]=g,e[44]=h,e[45]=b):b=e[45],b}function tn(t){return t.parentId!==null}function Ne(t){const e=ue.c(10),{dot:s,value:r,label:i}=t;let a;e[0]!==s?(a=oe("size-1.5 rounded-full",s),e[0]=s,e[1]=a):a=e[1];let c;e[2]!==a?(c=n.jsx("span",{className:a,"aria-hidden":"true"}),e[2]=a,e[3]=c):c=e[3];let o;e[4]!==r?(o=n.jsx("span",{className:"font-medium tabular-nums text-foreground",children:r}),e[4]=r,e[5]=o):o=e[5];let f;return e[6]!==i||e[7]!==c||e[8]!==o?(f=n.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[c,o," ",i]}),e[6]=i,e[7]=c,e[8]=o,e[9]=f):f=e[9],f}function sn(t){const e=ue.c(6),{crew:s,busy:r,nameOf:i,onOpen:a,onRespond:c}=t,o=ws(s),[f,g]=C.useState(0);if(o.length===0)return null;const h=Math.min(f,o.length-1),{member:l,pending:w}=o[h],u=o[h+1];let x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x=n.jsx("h3",{className:"text-sm font-medium text-foreground",children:"Needs you"}),e[0]=x):x=e[0];let p;e[1]===Symbol.for("react.memo_cache_sentinel")?(p=n.jsx("span",{className:"flex-1"}),e[1]=p):p=e[1];let m;e[2]===Symbol.for("react.memo_cache_sentinel")?(m=n.jsx("span",{className:oe("size-1.5 shrink-0 rounded-full",fe["needs-you"]),"aria-hidden":"true"}),e[2]=m):m=e[2];const y=w.askedAt?`waiting ${We(new Date(w.askedAt).toISOString())}`:"waiting";let k;e[3]!==y?(k=n.jsx("span",{className:"ml-auto shrink-0 tabular-nums text-warning",children:y}),e[3]=y,e[4]=k):k=e[4];let b;return e[5]===Symbol.for("react.memo_cache_sentinel")?(b=n.jsx(De,{"data-icon":"inline-end"}),e[5]=b):b=e[5],n.jsxs("section",{"aria-label":"Needs you",className:"border-b px-3 py-2.5",children:[n.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs text-muted-foreground",children:[x,n.jsx("span",{className:"tabular-nums",children:o.length}),p,o.length>1&&n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"tabular-nums",children:[h+1," of ",o.length]}),n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":"Previous request",disabled:h===0,onClick:()=>g(h-1),children:n.jsx(ls,{"data-icon":"inline-start"})}),n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":"Next request",disabled:h===o.length-1,onClick:()=>g(h+1),children:n.jsx(De,{"data-icon":"inline-start"})})]})]}),n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsxs("div",{className:"flex items-center gap-2 px-0.5 text-xs",children:[m,n.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",children:i(l)}),l.device&&n.jsx(Vt,{variant:"outline",children:l.device.name}),k]}),n.jsx(Kt,{sessionId:l.sessionId,pending:w,queued:0,responding:r.has(w.requestId),onRespond:(M,N)=>void c(l.sessionId,M,N),onOpen:()=>a(l)},w.requestId),n.jsxs(te,{variant:"ghost",size:"xs",className:"self-end text-muted-foreground",onClick:()=>a(l),children:["Open session",b]})]}),u&&n.jsxs("p",{className:"mt-2 truncate text-xs text-muted-foreground",children:["Next: ",n.jsx("span",{className:"font-medium text-foreground",children:i(u.member)})," ",Ie(u.member).toLowerCase()]})]})}function nn({crew:t,hereId:e,busy:s,nameOf:r,onOpen:i,onMarkRead:a,onStop:c,collapsed:o,onToggle:f}){const[g,h]=C.useState("all");let l=null;const w=xs(t).filter(({member:u,depth:x})=>{if(g!=="all"){const p=he(u);return g==="done"?p!=="working"&&p!=="needs-you":p===g}return l!==null&&x>l?!1:(l=o.has(u.sessionId)?x:null,!0)});return n.jsxs("section",{"aria-label":"Sessions",className:"px-1.5 py-2.5",children:[n.jsxs("div",{className:"mb-1.5 flex items-center gap-2 px-1.5",children:[n.jsx("h3",{className:"text-sm font-medium",children:"Sessions"}),n.jsx("span",{className:"flex-1"}),n.jsx("div",{role:"radiogroup","aria-label":"Show sessions",className:"flex gap-0.5",children:Xs.map(({id:u,label:x})=>n.jsx("button",{type:"button",role:"radio","aria-checked":g===u,onClick:()=>h(u),className:oe("rounded-full px-2 py-0.5 text-[11px] text-muted-foreground outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",g===u&&"bg-accent text-foreground"),children:x},u))})]}),w.length===0?n.jsx("p",{className:"px-1.5 py-4 text-center text-xs text-muted-foreground",children:"No sessions here."}):n.jsx("ul",{className:"flex flex-col",children:w.map(u=>n.jsx(on,{row:u,here:u.member.sessionId===e,busy:s,name:r(u.member),onOpen:i,onMarkRead:a,onStop:c,collapsed:g==="all"?o.has(u.member.sessionId):void 0,onToggle:()=>f(u.member.sessionId)},u.member.sessionId))})]})}function on(t){var ce,pe;const e=ue.c(81),{row:s,here:r,busy:i,name:a,onOpen:c,onMarkRead:o,onStop:f,collapsed:g,onToggle:h}=t,{member:l,depth:w,children:u}=s;let x;e[0]!==l?(x=he(l),e[0]=l,e[1]=x):x=e[1];const p=x;let m;e[2]!==l?(m=Ie(l),e[2]=l,e[3]=m):m=e[3];const y=m;let k;e[4]!==l.pullRequests?(k=(ce=l.pullRequests)==null?void 0:ce.at(-1),e[4]=l.pullRequests,e[5]=k):k=e[5];const b=k;let M;e[6]!==l?(M=Re(l)&&l.result&&l.parentId,e[6]=l,e[7]=M):M=e[7];const N=M,$=(p==="working"||p==="needs-you")&&(!l.device||((pe=l.result)==null?void 0:pe.state)==="running"&&l.parentId!==null),_=l.sessionId,O=r?"bg-accent":"hover:bg-accent/60",E=w>0&&"border-l border-border/70";let j;e[8]!==O||e[9]!==E?(j=oe("group/crew relative flex items-start rounded-md",O,E),e[8]=O,e[9]=E,e[10]=j):j=e[10];const L=w>0?6+(w-1)*14:0;let I;e[11]!==L?(I={marginLeft:L},e[11]=L,e[12]=I):I=e[12];let A;e[13]!==u||e[14]!==g||e[15]!==a||e[16]!==h?(A=u>0&&g!==void 0&&n.jsx(te,{variant:"ghost",size:"icon-xs","aria-label":`${g?"Expand":"Collapse"} ${a}'s child sessions`,"aria-expanded":!g,onClick:h,children:n.jsx(De,{"data-icon":"inline-start",className:oe("transition-transform",!g&&"rotate-90")})}),e[13]=u,e[14]=g,e[15]=a,e[16]=h,e[17]=A):A=e[17];let S;e[18]!==A?(S=n.jsx("span",{className:"mt-1.5 flex w-6 shrink-0 justify-center",children:A}),e[18]=A,e[19]=S):S=e[19];let R;e[20]!==l||e[21]!==c?(R=()=>c(l),e[20]=l,e[21]=c,e[22]=R):R=e[22];const F=r?"true":void 0,P=`${a}, ${y}`,H=fe[p];let D;e[23]!==H?(D=oe("size-1.5 justify-self-center rounded-full",H),e[23]=H,e[24]=D):D=e[24];let Y;e[25]!==D?(Y=n.jsx("span",{className:D,"aria-hidden":"true"}),e[25]=D,e[26]=Y):Y=e[26];let G;e[27]!==a?(G=n.jsx("span",{className:"truncate",children:a}),e[27]=a,e[28]=G):G=e[28];let U;e[29]!==r?(U=r&&n.jsx("span",{className:"shrink-0 rounded-full border px-1.5 text-[10.5px] font-normal text-muted-foreground",children:"you are here"}),e[29]=r,e[30]=U):U=e[30];let z;e[31]!==G||e[32]!==U?(z=n.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-[12.5px] font-medium",children:[G,U]}),e[31]=G,e[32]=U,e[33]=z):z=e[33];let q;e[34]!==l.lastActivityAt?(q=l.lastActivityAt?We(l.lastActivityAt):"",e[34]=l.lastActivityAt,e[35]=q):q=e[35];let W;e[36]!==q?(W=n.jsx("span",{className:"text-[11px] tabular-nums text-muted-foreground/80",children:q}),e[36]=q,e[37]=W):W=e[37];const K=(p==="needs-you"||N)&&"text-warning",d=p==="failed"&&"text-destructive";let v;e[38]!==K||e[39]!==d?(v=oe("min-w-0 flex-1 truncate",K,d),e[38]=K,e[39]=d,e[40]=v):v=e[40];let T;e[41]!==y||e[42]!==v?(T=n.jsx("span",{className:v,children:y}),e[41]=y,e[42]=v,e[43]=T):T=e[43];let X;e[44]!==b?(X=b&&n.jsxs("span",{className:"shrink-0 rounded-full border px-1.5 text-[11px]",children:["#",b.number]}),e[44]=b,e[45]=X):X=e[45];let ae;e[46]!==l.device?(ae=l.device&&n.jsx("span",{className:"shrink-0",children:l.device.name}),e[46]=l.device,e[47]=ae):ae=e[47];let J;e[48]!==u?(J=u>0&&n.jsxs("span",{className:"shrink-0",children:[u," ",u===1?"session":"sessions"]}),e[48]=u,e[49]=J):J=e[49];let Q;e[50]!==l.model?(Q=l.model&&n.jsx("span",{className:"shrink-0 text-muted-foreground/70",children:qe(l.model)}),e[50]=l.model,e[51]=Q):Q=e[51];let ee;e[52]!==T||e[53]!==X||e[54]!==ae||e[55]!==J||e[56]!==Q?(ee=n.jsxs("span",{className:"col-start-2 col-end-4 flex min-w-0 items-center gap-2 text-[11.5px] text-muted-foreground",children:[T,X,ae,J,Q]}),e[52]=T,e[53]=X,e[54]=ae,e[55]=J,e[56]=Q,e[57]=ee):ee=e[57];let se;e[58]!==R||e[59]!==F||e[60]!==P||e[61]!==Y||e[62]!==z||e[63]!==W||e[64]!==ee?(se=n.jsxs("button",{type:"button",onClick:R,"aria-current":F,"aria-label":P,className:"grid min-w-0 flex-1 grid-cols-[14px_minmax(0,1fr)_auto] items-center gap-x-2 gap-y-0.5 rounded-md px-2 py-1.5 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[Y,z,W,ee]}),e[58]=R,e[59]=F,e[60]=P,e[61]=Y,e[62]=z,e[63]=W,e[64]=ee,e[65]=se):se=e[65];let re;e[66]!==i||e[67]!==$||e[68]!==l||e[69]!==a||e[70]!==o||e[71]!==f||e[72]!==N?(re=(N||$)&&n.jsxs("div",{className:"absolute right-1.5 top-1 hidden gap-1 group-focus-within/crew:flex group-hover/crew:flex",children:[N&&l.result&&l.parentId&&n.jsx(te,{variant:"outline",size:"icon-xs",className:"bg-popover","aria-label":`Mark ${a}'s result read`,title:"Mark the result read",disabled:i.has(l.result.taskId),onClick:()=>void o(l.parentId,l.result.taskId),children:n.jsx(is,{"data-icon":"inline-start"})}),$&&n.jsx(te,{variant:"outline",size:"icon-xs",className:"bg-popover text-destructive","aria-label":`Stop ${a}`,title:"Stop this session",disabled:i.has(l.sessionId),onClick:()=>void f(l),children:n.jsx(rs,{"data-icon":"inline-start"})})]}),e[66]=i,e[67]=$,e[68]=l,e[69]=a,e[70]=o,e[71]=f,e[72]=N,e[73]=re):re=e[73];let Z;return e[74]!==l.sessionId||e[75]!==I||e[76]!==S||e[77]!==se||e[78]!==re||e[79]!==j?(Z=n.jsxs("li",{"data-crew-row":_,className:j,style:I,children:[S,se,re]}),e[74]=l.sessionId,e[75]=I,e[76]=S,e[77]=se,e[78]=re,e[79]=j,e[80]=Z):Z=e[80],Z}export{un as CrewPanel};
@@ -1 +0,0 @@
1
- import{c as O,j as t,r as I}from"./vendor-react-gGw_S5I_.js";import{o as H,bB as $,bC as T,bD as Q,B as P,bE as Y,bF as _,n as q,l as J,D as M,j as U,S as V,ax as W,az as X,aw as Z,bG as ee,G as te,I as se,m as ae,bH as le,bI as ne,bJ as re}from"./index-BVmNox_3.js";import{bI as F,df as oe,ak as ce}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";const ie=new Set(["Alt","Control","Meta","Shift"]);function pe(e){const s=O.c(6),{open:f,onOpenChange:l}=e,x=f?"open":"closed";let a;s[0]!==x?(a=t.jsx(de,{},x),s[0]=x,s[1]=a):a=s[1];let r;return s[2]!==l||s[3]!==f||s[4]!==a?(r=t.jsx(H,{open:f,onOpenChange:l,children:a}),s[2]=l,s[3]=f,s[4]=a,s[5]=r):r=s[5],r}function de(){const e=O.c(45),[s,f]=I.useState(""),[l,x]=I.useState(null),[a,r]=I.useState(null),[A,B]=I.useState($);let E,k;e[0]!==l?(E=()=>{if(!l)return;const v=l,G=function(n){if(n.key==="Escape"){n.preventDefault(),n.stopPropagation(),x(null),r(null);return}if(ie.has(n.key))return;n.preventDefault(),n.stopPropagation();const c=le(n),p=ne(c,v);if(p){r(`Already assigned to “${p.label}”.`);return}re(v,c),B($()),x(null),r(null)};return window.addEventListener("keydown",G,!0),()=>window.removeEventListener("keydown",G,!0)},k=[l],e[0]=l,e[1]=E,e[2]=k):(E=e[1],k=e[2]),I.useEffect(E,k);let b,g,d,j,y,N,S,w,m,u,h;if(e[3]!==A||e[4]!==a||e[5]!==s||e[6]!==l){const v=s.trim().toLowerCase(),G=v?T.filter(i=>`${i.label} ${i.description} ${i.group}`.toLowerCase().includes(v)):T;g=q,S="max-w-2xl gap-0 overflow-hidden p-0",w=!1,e[18]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsxs(J,{className:"p-4 pb-3",children:[t.jsxs(M,{className:"flex items-center gap-2",children:[t.jsx(oe,{"data-icon":"inline-start","aria-hidden":"true",className:"size-4"}),"Keyboard shortcuts"]}),t.jsx(U,{children:"Click a shortcut, then press a new key combination. Changes are saved on this device."})]}),u=t.jsx(V,{}),e[18]=m,e[19]=u):(m=e[18],u=e[19]);let K;e[20]===Symbol.for("react.memo_cache_sentinel")?(K=t.jsx(W,{children:t.jsx(ce,{"data-icon":"inline-start","aria-hidden":"true"})}),e[20]=K):K=e[20];let n;e[21]===Symbol.for("react.memo_cache_sentinel")?(n=i=>f(i.target.value),e[21]=n):n=e[21];let c;e[22]!==s?(c=t.jsxs(X,{className:"flex-1",children:[K,t.jsx(Z,{"aria-label":"Search keyboard shortcuts",value:s,onChange:n,placeholder:"Search shortcuts…"})]}),e[22]=s,e[23]=c):c=e[23];let p;e[24]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsxs(P,{variant:"outline",size:"sm",onClick:()=>{ee(),B($()),r(null)},children:[t.jsx(F,{"data-icon":"inline-start"}),"Reset all"]}),e[24]=p):p=e[24],e[25]!==c?(h=t.jsxs("div",{className:"flex items-center gap-2 p-3",children:[c,p]}),e[25]=c,e[26]=h):h=e[26],e[27]!==a?(d=a&&t.jsx(te,{variant:"destructive",className:"mx-3 mb-2 w-auto",children:t.jsxs(se,{children:[a," Press another shortcut or Esc to cancel."]})}),e[27]=a,e[28]=d):d=e[28],b=ae,N="h-[min(28rem,60vh)]",j="flex flex-col gap-4 px-3 pb-4",y=Q.map(i=>{const L=G.filter(o=>o.group===i);return L.length===0?null:t.jsxs("section",{className:"flex flex-col gap-1",children:[t.jsx("h3",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:i}),L.map(o=>{const z=l===o.command;return t.jsxs("div",{className:"flex min-h-12 items-center gap-3 rounded-md px-2 py-1.5 hover:bg-accent",children:[t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("p",{className:"truncate text-sm",children:o.label}),t.jsx("p",{className:"truncate text-xs text-muted-foreground",children:o.description})]}),t.jsx(P,{variant:z?"secondary":"outline",size:"sm",className:"min-w-28 font-mono text-xs",onClick:()=>{r(null),x(z?null:o.command)},"aria-label":`Change shortcut for ${o.label}`,children:z?"Press keys…":Y(A[o.command])}),t.jsx(P,{variant:"ghost",size:"icon-sm",onClick:()=>{_(o.command),B($()),r(null)},"aria-label":`Reset shortcut for ${o.label}`,children:t.jsx(F,{"data-icon":"inline-start"})})]},o.command)})]},i)}),e[3]=A,e[4]=a,e[5]=s,e[6]=l,e[7]=b,e[8]=g,e[9]=d,e[10]=j,e[11]=y,e[12]=N,e[13]=S,e[14]=w,e[15]=m,e[16]=u,e[17]=h}else b=e[7],g=e[8],d=e[9],j=e[10],y=e[11],N=e[12],S=e[13],w=e[14],m=e[15],u=e[16],h=e[17];let C;e[29]!==j||e[30]!==y?(C=t.jsx("div",{className:j,children:y}),e[29]=j,e[30]=y,e[31]=C):C=e[31];let D;e[32]!==b||e[33]!==C||e[34]!==N?(D=t.jsx(b,{className:N,children:C}),e[32]=b,e[33]=C,e[34]=N,e[35]=D):D=e[35];let R;return e[36]!==g||e[37]!==d||e[38]!==D||e[39]!==S||e[40]!==w||e[41]!==m||e[42]!==u||e[43]!==h?(R=t.jsxs(g,{className:S,showCloseButton:w,children:[m,u,h,d,D]}),e[36]=g,e[37]=d,e[38]=D,e[39]=S,e[40]=w,e[41]=m,e[42]=u,e[43]=h,e[44]=R):R=e[44],R}export{pe as KeyboardShortcutsDialog};
@@ -1,2 +0,0 @@
1
- import{c as V,r as X,j as t}from"./vendor-react-gGw_S5I_.js";import{cd as Ee,c as Z,ce as Pe,al as ke,ag as _e,cf as qe,cg as ue,ad as Me,B as Q,ch as Re,ci as Oe,bK as ze,cj as Te,au as me,H as xe,G as ge,bA as $e,ck as ae,aA as Ke,aB as Be,cl as Fe,cm as Le,cn as Ue,co as He,cp as Qe,cq as fe,cr as Ve,cs as Ye,ct as Ge,ah as Xe,cu as We,V as ie,E as Je,f as Ze,i as es,cv as ss,k as ts,cw as re,cx as ns,cy as is,cz as ls,b8 as rs,cA as os}from"./index-BVmNox_3.js";import{bl as pe,aP as as,bM as cs,U as ds,b1 as us,b4 as fs,dv as ms,A as Se,bp as xs,ak as gs,X as ps,al as hs,C as ws}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";const bs=6;function js(u){const e=V.c(72),{recent:s,start:i}=u,[l,r]=X.useState(null),[n,g]=X.useState(""),a=l??s[0]??null;let c,p,d,f,o,x,m,w,h,b,v,j,N;if(e[0]!==l||e[1]!==a||e[2]!==s||e[3]!==i||e[4]!==n){p=(l&&!s.some(E=>we(E,l))?[l,...s]:[...s]).slice(0,bs);let z;e[18]!==n?(z=n.trim(),e[18]=n,e[19]=z):z=e[19];const F=z;c=!!(a&&F);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(E,Y)=>{r({dirName:E,cwd:Y,name:Y?qe(Y):E})},e[20]=C):C=e[20],d=C;let K;e[21]!==i.defaultAgentKind?(K=E=>d(ue(i.defaultAgentKind,E),E),e[21]=i.defaultAgentKind,e[22]=K):K=e[22],f=K;const G=a==null?void 0:a.cwd;let L;e[23]!==G||e[24]!==a?(L=a&&G?E=>r({...a,dirName:ue(E,G)}):void 0,e[23]=G,e[24]=a,e[25]=L):L=e[25],m=L;let W;e[26]!==F||e[27]!==a||e[28]!==i?(W=E=>{E==null||E.preventDefault(),!(!a||!F)&&(i.onStart(a.dirName,a.cwd,F),g(""))},e[26]=F,e[27]=a,e[28]=i,e[29]=W):W=e[29],x=W;let J;e[30]!==x?(J=E=>{E.key==="Enter"&&!E.shiftKey&&!E.nativeEvent.isComposing&&(E.preventDefault(),x())},e[30]=x,e[31]=J):J=e[31],o=J,j="Start a session",N="flex min-w-0 flex-col gap-3",w="flex flex-wrap items-center gap-1.5",h="group",b="Projects",v=p.map(E=>{const Y=a!==null&&we(E,a);return t.jsxs("button",{type:"button","aria-pressed":Y,title:E.cwd??E.name,onClick:()=>r(E),className:Z("flex max-w-48 items-center gap-1.5 rounded-full border py-1 pl-1.5 pr-3 text-xs outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring",Y?"border-foreground/80 bg-foreground text-background":"border-border/70 text-muted-foreground hover:border-foreground/40 hover:text-foreground"),children:[t.jsx(Ee,{projectPath:E.cwd??null,fallback:t.jsx(pe,{className:"size-3.5","aria-hidden":"true"}),className:"size-4"}),t.jsx("span",{className:"truncate",children:E.name})]},E.cwd??E.dirName)}),e[0]=l,e[1]=a,e[2]=s,e[3]=i,e[4]=n,e[5]=c,e[6]=p,e[7]=d,e[8]=f,e[9]=o,e[10]=x,e[11]=m,e[12]=w,e[13]=h,e[14]=b,e[15]=v,e[16]=j,e[17]=N}else c=e[5],p=e[6],d=e[7],f=e[8],o=e[9],x=e[10],m=e[11],w=e[12],h=e[13],b=e[14],v=e[15],j=e[16],N=e[17];const I=p.length>0;let y;e[32]!==d||e[33]!==f||e[34]!==i.defaultAgentKind||e[35]!==I?(y=t.jsx(Ns,{defaultAgentKind:i.defaultAgentKind,onChoose:d,onChooseFolder:f,anyListed:I}),e[32]=d,e[33]=f,e[34]=i.defaultAgentKind,e[35]=I,e[36]=y):y=e[36];let k;e[37]!==w||e[38]!==h||e[39]!==b||e[40]!==v||e[41]!==y?(k=t.jsxs("div",{className:w,role:h,"aria-label":b,children:[v,y]}),e[37]=w,e[38]=h,e[39]=b,e[40]=v,e[41]=y,e[42]=k):k=e[42];let A;e[43]!==l||e[44]!==a?(A=z=>{!l&&a&&r(a),g(z.target.value)},e[43]=l,e[44]=a,e[45]=A):A=e[45];const D=a?`Describe the task for ${a.name}`:"Pick a project, then describe the task";let q;e[46]!==o||e[47]!==A||e[48]!==D||e[49]!==n?(q=t.jsx(Me,{"aria-label":"First message",value:n,onChange:A,onKeyDown:o,placeholder:D,rows:1,className:"max-h-48 min-h-9 flex-1 resize-none rounded-none border-0 bg-transparent px-0 py-2 shadow-none focus-visible:border-transparent focus-visible:ring-0"}),e[46]=o,e[47]=A,e[48]=D,e[49]=n,e[50]=q):q=e[50];let S;e[51]!==a||e[52]!==i.model||e[53]!==m?(S=a&&t.jsx(Pe,{isNewSession:!0,agentKind:ke(a.dirName),onAgentKindChange:m,selectedModel:i.model.selectedModel,onModelChange:i.model.onModelChange,selectedEffort:i.model.selectedEffort,onEffortChange:i.model.onEffortChange}),e[51]=a,e[52]=i.model,e[53]=m,e[54]=S):S=e[54];const _=!c;let R;e[55]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx(as,{"data-icon":"icon"}),e[55]=R):R=e[55];let M;e[56]!==_?(M=t.jsx(Q,{type:"submit",size:"icon-xs",disabled:_,"aria-label":"Start session",title:"Start session (Enter)",children:R}),e[56]=_,e[57]=M):M=e[57];let P;e[58]!==S||e[59]!==M?(P=t.jsxs("div",{className:"flex shrink-0 items-center gap-1 pb-0.5",children:[S,M]}),e[58]=S,e[59]=M,e[60]=P):P=e[60];let O;e[61]!==q||e[62]!==P?(O=t.jsxs("div",{className:"flex items-end gap-2 rounded-xl border bg-popover py-2 pl-4 pr-2 shadow-lg shadow-black/5 transition-[border-color,box-shadow] duration-150 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",children:[q,P]}),e[61]=q,e[62]=P,e[63]=O):O=e[63];let T;e[64]!==x||e[65]!==O?(T=t.jsx("form",{onSubmit:x,className:"min-w-0",children:O}),e[64]=x,e[65]=O,e[66]=T):T=e[66];let $;return e[67]!==T||e[68]!==j||e[69]!==N||e[70]!==k?($=t.jsxs("section",{"aria-label":j,className:N,children:[k,T]}),e[67]=T,e[68]=j,e[69]=N,e[70]=k,e[71]=$):$=e[71],$}function we(u,e){return u.cwd&&e.cwd?u.cwd===e.cwd:u.dirName===e.dirName}function Ns(u){const e=V.c(19),{defaultAgentKind:s,onChoose:i,onChooseFolder:l,anyListed:r}=u,[n,g]=X.useState(!1),a=_e(n),c=r?"ghost":"outline";let p;e[0]!==c?(p=t.jsx(Q,{variant:c,size:"xs",className:"rounded-full text-muted-foreground"}),e[0]=c,e[1]=p):p=e[1];let d;e[2]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(pe,{"data-icon":"inline-start"}),e[2]=d):d=e[2];const f=r?"Other project":"Choose a project";let o;e[3]!==p||e[4]!==f?(o=t.jsxs(Re,{render:p,children:[d,f]}),e[3]=p,e[4]=f,e[5]=o):o=e[5];let x;e[6]!==i?(x=(b,v)=>{g(!1),i(b,v)},e[6]=i,e[7]=x):x=e[7];let m;e[8]!==l?(m=b=>{g(!1),l(b)},e[8]=l,e[9]=m):m=e[9];let w;e[10]!==s||e[11]!==a||e[12]!==x||e[13]!==m?(w=t.jsx(Oe,{align:"start",className:"w-96 max-w-[calc(100vw-2rem)] p-0",children:t.jsx(ze,{projects:a,defaultAgentKind:s,onNewSession:x,onNewFolder:m})}),e[10]=s,e[11]=a,e[12]=x,e[13]=m,e[14]=w):w=e[14];let h;return e[15]!==n||e[16]!==o||e[17]!==w?(h=t.jsxs(Te,{open:n,onOpenChange:g,children:[o,w]}),e[15]=n,e[16]=o,e[17]=w,e[18]=h):h=e[18],h}function ys(u){const e={};for(const s of u)s.type==="boolean"?e[s.name]=s.defaultValue===!0:s.defaultValue!==void 0?e[s.name]=String(s.defaultValue):e[s.name]="";return e}function vs(u,e){const s={};for(const i of u){const l=e[i.name];if(typeof l=="boolean"){s[i.name]=l;continue}l!==""&&(s[i.name]=i.type==="number"||i.type==="integer"?Number(l):l)}return s}function Is(u,e){return u.every(s=>{if(!s.required)return!0;const i=e[s.name];return typeof i=="boolean"?!0:i===""?!1:s.type==="number"||s.type==="integer"?Number.isFinite(Number(i)):!0})}function ks(u){const e=V.c(52),{request:s,responding:i,onAnswer:l}=u;let r;e[0]!==s.fields?(r=()=>ys(s.fields),e[0]=s.fields,e[1]=r):r=e[1];const[n,g]=X.useState(r);let a;e[2]!==s.fields||e[3]!==n?(a=Is(s.fields,n),e[2]=s.fields,e[3]=n,e[4]=a):a=e[4];const c=a,p=s.displayName||s.title||s.serverName;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=(j,N)=>{g(I=>({...I,[j]:N}))},e[5]=d):d=e[5];const f=d;let o;e[6]!==l||e[7]!==s.requestId?(o=()=>l==null?void 0:l(s.requestId,{action:"decline"}),e[6]=l,e[7]=s.requestId,e[8]=o):o=e[8];const x=o;if(s.mode==="url"&&s.url){const j=s.url;let N;e[9]!==s.message?(N=t.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:s.message}),e[9]=s.message,e[10]=N):N=e[10];let I;e[11]!==j?(I=t.jsx("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",title:j,children:j}),e[11]=j,e[12]=I):I=e[12];let y;e[13]!==x||e[14]!==l||e[15]!==s.requestId||e[16]!==i||e[17]!==j?(y=l&&t.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[t.jsxs(Q,{size:"sm",disabled:i,onClick:()=>{window.open(j,"_blank","noopener,noreferrer"),l(s.requestId,{action:"accept"})},children:["Open link",t.jsx(cs,{"data-icon":"inline-end"})]}),t.jsx(Q,{variant:"ghost",size:"sm",disabled:i,onClick:x,children:"Decline"})]}),e[13]=x,e[14]=l,e[15]=s.requestId,e[16]=i,e[17]=j,e[18]=y):y=e[18];let k;return e[19]!==p||e[20]!==N||e[21]!==I||e[22]!==y?(k=t.jsxs(be,{server:p,children:[N,I,y]}),e[19]=p,e[20]=N,e[21]=I,e[22]=y,e[23]=k):k=e[23],k}let m;e[24]!==s.message?(m=t.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:s.message}),e[24]=s.message,e[25]=m):m=e[25];let w;if(e[26]!==l||e[27]!==s.fields||e[28]!==s.requestId||e[29]!==i||e[30]!==n){let j;e[32]!==l||e[33]!==s.requestId||e[34]!==i||e[35]!==n?(j=N=>t.jsx(qs,{id:`elicit-${s.requestId}-${N.name}`,field:N,value:n[N.name],disabled:i||!l,onChange:I=>f(N.name,I)},N.name),e[32]=l,e[33]=s.requestId,e[34]=i,e[35]=n,e[36]=j):j=e[36],w=s.fields.map(j),e[26]=l,e[27]=s.fields,e[28]=s.requestId,e[29]=i,e[30]=n,e[31]=w}else w=e[31];let h;e[37]!==w?(h=t.jsx("div",{className:"mt-3 flex flex-col gap-3",children:w}),e[37]=w,e[38]=h):h=e[38];let b;e[39]!==c||e[40]!==x||e[41]!==l||e[42]!==s.fields||e[43]!==s.requestId||e[44]!==i||e[45]!==n?(b=l&&t.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[t.jsx(Q,{size:"sm",disabled:i||!c,onClick:()=>l(s.requestId,{action:"accept",content:vs(s.fields,n)}),children:"Send"}),t.jsx(Q,{variant:"ghost",size:"sm",disabled:i,onClick:x,children:"Decline"})]}),e[39]=c,e[40]=x,e[41]=l,e[42]=s.fields,e[43]=s.requestId,e[44]=i,e[45]=n,e[46]=b):b=e[46];let v;return e[47]!==p||e[48]!==m||e[49]!==h||e[50]!==b?(v=t.jsxs(be,{server:p,children:[m,h,b]}),e[47]=p,e[48]=m,e[49]=h,e[50]=b,e[51]=v):v=e[51],v}function qs(u){const e=V.c(55),{id:s,field:i,value:l,disabled:r,onChange:n}=u;if(i.type==="boolean"){const x=l===!0;let m;e[0]!==n?(m=v=>n(v===!0),e[0]=n,e[1]=m):m=e[1];let w;e[2]!==r||e[3]!==s||e[4]!==x||e[5]!==m?(w=t.jsx($e,{id:s,checked:x,disabled:r,onCheckedChange:m}),e[2]=r,e[3]=s,e[4]=x,e[5]=m,e[6]=w):w=e[6];let h;e[7]!==i?(h=t.jsx(ce,{field:i}),e[7]=i,e[8]=h):h=e[8];let b;return e[9]!==s||e[10]!==w||e[11]!==h?(b=t.jsxs(ae,{htmlFor:s,className:"items-start gap-2 font-normal",children:[w,h]}),e[9]=s,e[10]=w,e[11]=h,e[12]=b):b=e[12],b}if(i.type==="enum"){let x;e[13]!==i?(x=t.jsx(ce,{field:i}),e[13]=i,e[14]=x):x=e[14];let m;e[15]!==s||e[16]!==x?(m=t.jsx(ae,{htmlFor:s,children:x}),e[15]=s,e[16]=x,e[17]=m):m=e[17];let w;e[18]!==l?(w=typeof l=="string"&&l?[l]:[],e[18]=l,e[19]=w):w=e[19];let h;e[20]!==n?(h=y=>{y[0]&&n(y[0])},e[20]=n,e[21]=h):h=e[21];const b=i.label;let v;e[22]!==i.options?(v=i.options??[],e[22]=i.options,e[23]=v):v=e[23];let j;if(e[24]!==r||e[25]!==v){let y;e[27]!==r?(y=k=>t.jsx(Ke,{value:k.value,disabled:r,className:"w-full justify-start px-3",children:k.label},k.value),e[27]=r,e[28]=y):y=e[28],j=v.map(y),e[24]=r,e[25]=v,e[26]=j}else j=e[26];let N;e[29]!==i.label||e[30]!==s||e[31]!==w||e[32]!==h||e[33]!==j?(N=t.jsx(Be,{id:s,value:w,onValueChange:h,orientation:"vertical",variant:"outline",size:"sm",className:"w-full items-stretch","aria-label":b,children:j}),e[29]=i.label,e[30]=s,e[31]=w,e[32]=h,e[33]=j,e[34]=N):N=e[34];let I;return e[35]!==m||e[36]!==N?(I=t.jsxs("div",{className:"flex flex-col gap-1.5",children:[m,N]}),e[35]=m,e[36]=N,e[37]=I):I=e[37],I}let g;e[38]!==i?(g=t.jsx(ce,{field:i}),e[38]=i,e[39]=g):g=e[39];let a;e[40]!==s||e[41]!==g?(a=t.jsx(ae,{htmlFor:s,children:g}),e[40]=s,e[41]=g,e[42]=a):a=e[42];const c=i.type==="string"?"text":"number",p=typeof l=="string"?l:"";let d;e[43]!==n?(d=x=>n(x.target.value),e[43]=n,e[44]=d):d=e[44];let f;e[45]!==r||e[46]!==i.label||e[47]!==s||e[48]!==c||e[49]!==p||e[50]!==d?(f=t.jsx(me,{id:s,"aria-label":i.label,type:c,value:p,disabled:r,onChange:d}),e[45]=r,e[46]=i.label,e[47]=s,e[48]=c,e[49]=p,e[50]=d,e[51]=f):f=e[51];let o;return e[52]!==a||e[53]!==f?(o=t.jsxs("div",{className:"flex flex-col gap-1.5",children:[a,f]}),e[52]=a,e[53]=f,e[54]=o):o=e[54],o}function ce(u){const e=V.c(8),{field:s}=u;let i;e[0]!==s.required?(i=s.required&&t.jsx("span",{className:"ml-0.5 text-warning",children:"*"}),e[0]=s.required,e[1]=i):i=e[1];let l;e[2]!==s.description?(l=s.description&&t.jsx("span",{className:"block text-xs font-normal text-muted-foreground",children:s.description}),e[2]=s.description,e[3]=l):l=e[3];let r;return e[4]!==s.label||e[5]!==i||e[6]!==l?(r=t.jsxs("span",{className:"min-w-0",children:[s.label,i,l]}),e[4]=s.label,e[5]=i,e[6]=l,e[7]=r):r=e[7],r}function be(u){const e=V.c(8),{server:s,children:i}=u;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=t.jsx(ds,{className:"text-info"}),e[0]=l):l=e[0];let r;e[1]!==s?(r=t.jsxs(xe,{children:[s," needs input"]}),e[1]=s,e[2]=r):r=e[2];let n;e[3]!==i?(n=t.jsx("div",{className:"col-start-2 mt-1 min-w-0",children:i}),e[3]=i,e[4]=n):n=e[4];let g;return e[5]!==r||e[6]!==n?(g=t.jsxs(ge,{className:"border-info/40 bg-info/5",children:[l,r,n]}),e[5]=r,e[6]=n,e[7]=g):g=e[7],g}function Ss(u){const e=V.c(15),{request:s,responding:i,onChoose:l}=u;let r,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(us,{className:"text-warning"}),n=t.jsx(xe,{children:"The agent declined this request"}),e[0]=r,e[1]=n):(r=e[0],n=e[1]);let g;e[2]!==s.originalModel?(g=t.jsxs("p",{className:"text-sm leading-relaxed text-foreground",children:[s.originalModel," would not answer. Retrying on a fallback model may work."]}),e[2]=s.originalModel,e[3]=g):g=e[3];let a;e[4]!==s.guidanceText?(a=s.guidanceText&&t.jsx("p",{className:"mt-1 text-sm leading-relaxed text-muted-foreground",children:s.guidanceText}),e[4]=s.guidanceText,e[5]=a):a=e[5];let c;e[6]!==l||e[7]!==s.fallbackModel||e[8]!==s.requestId||e[9]!==i?(c=l&&t.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[t.jsxs(Q,{size:"sm",disabled:i,onClick:()=>l(s.requestId,"retry_fallback"),children:["Retry on ",s.fallbackModel]}),t.jsx(Q,{variant:"outline",size:"sm",disabled:i,onClick:()=>l(s.requestId,"edit_prompt"),children:"Edit prompt"}),t.jsx(Q,{variant:"ghost",size:"sm",disabled:i,className:"ml-auto text-muted-foreground",onClick:()=>l(s.requestId,"cancelled"),children:"Dismiss"})]}),e[6]=l,e[7]=s.fallbackModel,e[8]=s.requestId,e[9]=i,e[10]=c):c=e[10];let p;return e[11]!==g||e[12]!==a||e[13]!==c?(p=t.jsxs(ge,{className:"border-warning/40 bg-warning/5",children:[r,n,t.jsxs("div",{className:"col-start-2 mt-1 min-w-0",children:[g,a,c]})]}),e[11]=g,e[12]=a,e[13]=c,e[14]=p):p=e[14],p}function Cs(u){const e=V.c(64),{request:s,input:i,canAnswer:l,onOpen:r}=u;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=new Set,e[0]=n):n=e[0];const[g,a]=X.useState(n),{sessionId:c}=s;switch(s.kind){case"permission":{const p=s.request;let d;e[1]!==i.responding||e[2]!==s.request.requestId?(d=i.responding.has(s.request.requestId),e[1]=i.responding,e[2]=s.request.requestId,e[3]=d):d=e[3];let f;e[4]!==l||e[5]!==i||e[6]!==c?(f=l?(x,m)=>void i.respond(c,x,m):void 0,e[4]=l,e[5]=i,e[6]=c,e[7]=f):f=e[7];let o;return e[8]!==s.request||e[9]!==d||e[10]!==f?(o=t.jsx(Le,{request:p,queued:0,responding:d,onRespond:f}),e[8]=s.request,e[9]=d,e[10]=f,e[11]=o):o=e[11],o}case"question":{const p=s.request;let d;e[12]!==i.responding||e[13]!==s.request.toolUseId?(d=i.responding.has(s.request.toolUseId),e[12]=i.responding,e[13]=s.request.toolUseId,e[14]=d):d=e[14];let f;e[15]!==g||e[16]!==s.request.toolUseId?(f=g.has(s.request.toolUseId),e[15]=g,e[16]=s.request.toolUseId,e[17]=f):f=e[17];let o;e[18]!==l||e[19]!==i||e[20]!==c?(o=l?async(m,w)=>{(await i.answerQuestion(c,m,w)).gone&&a(b=>new Set(b).add(m))}:void 0,e[18]=l,e[19]=i,e[20]=c,e[21]=o):o=e[21];let x;return e[22]!==r||e[23]!==s.request||e[24]!==d||e[25]!==f||e[26]!==o?(x=t.jsx(Fe,{request:p,responding:d,gone:f,onAnswer:o,onOpenSession:r}),e[22]=r,e[23]=s.request,e[24]=d,e[25]=f,e[26]=o,e[27]=x):x=e[27],x}case"elicitation":{const p=s.request;let d;e[28]!==i.responding||e[29]!==s.request.requestId?(d=i.responding.has(s.request.requestId),e[28]=i.responding,e[29]=s.request.requestId,e[30]=d):d=e[30];let f;e[31]!==l||e[32]!==i||e[33]!==c?(f=l?(x,m)=>void i.answerElicitation(c,x,m):void 0,e[31]=l,e[32]=i,e[33]=c,e[34]=f):f=e[34];let o;return e[35]!==s.request||e[36]!==d||e[37]!==f?(o=t.jsx(ks,{request:p,responding:d,onAnswer:f}),e[35]=s.request,e[36]=d,e[37]=f,e[38]=o):o=e[38],o}case"dialog":{const p=s.request;let d;e[39]!==i.responding||e[40]!==s.request.requestId?(d=i.responding.has(s.request.requestId),e[39]=i.responding,e[40]=s.request.requestId,e[41]=d):d=e[41];let f;e[42]!==l||e[43]!==i||e[44]!==c?(f=l?(x,m)=>void i.answerDialog(c,x,m):void 0,e[42]=l,e[43]=i,e[44]=c,e[45]=f):f=e[45];let o;return e[46]!==s.request||e[47]!==d||e[48]!==f?(o=t.jsx(Ss,{request:p,responding:d,onChoose:f}),e[46]=s.request,e[47]=d,e[48]=f,e[49]=o):o=e[49],o}case"plan":case"deferred":{let p;e[50]!==s.kind?(p=s.kind==="plan"?t.jsx(fs,{className:"text-warning"}):t.jsx(ms,{className:"text-warning"}),e[50]=s.kind,e[51]=p):p=e[51];const d=s.kind==="plan"?"A plan is waiting for review":"A permission was deferred";let f;e[52]!==d?(f=t.jsx(xe,{children:d}),e[52]=d,e[53]=f):f=e[53];const o=s.kind==="plan"?"Review it in its session.":"Open the session and resume it to answer.";let x;e[54]!==o?(x=t.jsx("p",{className:"col-start-2 mt-1 text-sm text-muted-foreground",children:o}),e[54]=o,e[55]=x):x=e[55];let m;e[56]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsx(Se,{"data-icon":"inline-end"}),e[56]=m):m=e[56];let w;e[57]!==r?(w=t.jsx("div",{className:"col-start-2 mt-2",children:t.jsxs(Q,{size:"xs",onClick:r,children:["Open session",m]})}),e[57]=r,e[58]=w):w=e[58];let h;return e[59]!==p||e[60]!==f||e[61]!==x||e[62]!==w?(h=t.jsxs(ge,{className:"border-warning/40 bg-warning/5",children:[p,f,x,w]}),e[59]=p,e[60]=f,e[61]=x,e[62]=w,e[63]=h):h=e[63],h}}}function As(u,e,s=()=>!0){const i=new Map(e.map(n=>[n.sessionId,n])),l=n=>{const g=i.get(n);return g?fe(g):Date.now()},r=[];for(const[n,g]of u.permissionsBySession)for(const a of g)r.push({kind:"permission",sessionId:n,since:a.timestamp,request:a});for(const[n,g]of u.questionsBySession)for(const a of g)r.push({kind:"question",sessionId:n,since:a.askedAt,request:a});for(const[n,g]of u.elicitationsBySession)for(const a of g)r.push({kind:"elicitation",sessionId:n,since:a.askedAt,request:a});for(const[n,g]of u.dialogsBySession)for(const a of g)r.push({kind:"dialog",sessionId:n,since:a.askedAt,request:a});for(const n of u.awaitingPlan)r.push({kind:"plan",sessionId:n,since:l(n)});for(const n of e)n.agentStatus==="deferred"&&!n.archived&&r.push({kind:"deferred",sessionId:n.sessionId,since:l(n.sessionId)});return r.filter(n=>s(n.sessionId)).sort((n,g)=>n.since-g.since)}function je(u){switch(u.kind){case"permission":return u.request.requestId;case"question":return u.request.toolUseId;case"elicitation":case"dialog":return u.request.requestId;default:return`${u.kind}:${u.sessionId}`}}const Ds=7*864e5,Ne=3,Es=30,Ps=50,ye={"needs-you":0,working:1,done:2};function _s(u,e){const s=u.filter(r=>!r.archived&&!(r.teamName&&r.agentName)),{topLevel:i,crewOf:l}=Ue(s);return i.map(r=>{const n=l.get(r.sessionId)??[],g=n.length?He(r,n):r.lastActivityAt||r.lastModified,a=[r,...n].flatMap(c=>(c.pullRequests??[]).map(p=>({pullRequest:p,by:c}))).sort((c,p)=>Date.parse(p.pullRequest.timestamp)-Date.parse(c.pullRequest.timestamp))[0];return{session:r,state:e(r).state,crew:n.map(c=>({member:c,state:e(c).state})).sort((c,p)=>ye[c.state]-ye[p.state]||fe(p.member)-fe(c.member)),counts:n.length?Qe(n,e):null,activityAt:g,...a&&{landed:{number:a.pullRequest.number,title:a.pullRequest.title,url:a.pullRequest.url,by:a.by}}}}).sort((r,n)=>Date.parse(n.activityAt)-Date.parse(r.activityAt))}function Ms(u,e=Date.now()){const s=u.filter(i=>e-Date.parse(i.activityAt)<Ds);return(s.length>=Ne?s:u.slice(0,Ne)).slice(0,Es)}function Rs(u,e,s=6){const i=[],l=new Set;for(const r of u){const n=e(r.session);if(!(!n.cwd||l.has(n.cwd))&&(l.add(n.cwd),i.push(n),i.length===s))break}return i}function Os(u,e,s){const i=e.toLowerCase().split(/\s+/).filter(Boolean);return i.length===0?[]:u.filter(l=>{const r=s(l).filter(Boolean).join(`
2
- `).toLowerCase();return i.every(n=>r.includes(n))}).slice(0,Ps)}const ve={"needs-you":re.attention,working:re.working,done:"bg-muted-foreground/40"},zs={"needs-you":"needs you",working:"working",done:"done"},Ts=3;function $s(u,e){const s=u.cwd?os(u.cwd):null,i=(s==null?void 0:s.parentPath)??u.cwd,l=s?ue(ke(u.dirName),s.parentPath):u.dirName;return{dirName:l,cwd:i,name:e[l]??(i?qe(i):u.projectShortName)}}function Ks(u){const e=u.target instanceof HTMLElement&&u.target.closest("input,textarea,select,[contenteditable=true]");return!u.metaKey&&!u.ctrlKey&&!u.altKey&&!e}function st(u){const e=V.c(81),{onOpenSession:s,onBrowseProjects:i,start:l}=u,r=Ve(),n=Ye(),{names:g,rename:a}=Ge(),{names:c}=Xe(),p=We(),[d,f]=X.useState(""),o=X.useRef(null);let x;e[0]!==r.sessions?(x=r.sessions.filter(Ls),e[0]=r.sessions,e[1]=x):x=e[1];const m=x;let w;e[2]!==m?(w=new Map(m.map(Fs)),e[2]=m,e[3]=w):w=e[3];const h=w;let b;e[4]!==n.awaitingDialog||e[5]!==n.awaitingElicitation?(b=new Set([...n.awaitingElicitation,...n.awaitingDialog]),e[4]=n.awaitingDialog,e[5]=n.awaitingElicitation,e[6]=b):b=e[6];let v;e[7]!==n.awaitingPermission||e[8]!==n.awaitingPlan||e[9]!==n.awaitingQuestion||e[10]!==b?(v={awaitingPermission:n.awaitingPermission,awaitingQuestion:n.awaitingQuestion,awaitingPrompt:b,awaitingPlan:n.awaitingPlan},e[7]=n.awaitingPermission,e[8]=n.awaitingPlan,e[9]=n.awaitingQuestion,e[10]=b,e[11]=v):v=e[11];const j=v;let N;e[12]!==r.procBySession||e[13]!==j?(N=U=>ns(U,r.procBySession,j),e[12]=r.procBySession,e[13]=j,e[14]=N):N=e[14];const I=N;let y;e[15]!==h||e[16]!==p?(y=U=>{const B=h.get(U);return p(B==null?void 0:B.access).canInteract},e[15]=h,e[16]=p,e[17]=y):y=e[17];const k=y;let A;e[18]!==k||e[19]!==n||e[20]!==m?(A=As(n,m,k),e[18]=k,e[19]=n,e[20]=m,e[21]=A):A=e[21];const D=A;let q;e[22]!==h||e[23]!==g?(q=U=>is(U,h,g),e[22]=h,e[23]=g,e[24]=q):q=e[24];const S=q;let _;e[25]!==c?(_=U=>c[U.dirName]??ls(U),e[25]=c,e[26]=_):_=e[26];const R=_;let M,P,O;if(e[27]!==S||e[28]!==R||e[29]!==c||e[30]!==d||e[31]!==m||e[32]!==I){M=_s(m,I),O=d.trim().length>0?Os(M,d,H=>{var he;return[S(H.session.sessionId),R(H.session),H.session.gitBranch,H.session.cwd,H.session.lastUserMessage,H.session.firstUserMessage,(he=H.landed)==null?void 0:he.title,H.landed&&`#${H.landed.number}`,...H.crew.map(Ae=>{const{member:De}=Ae;return S(De.sessionId)})]}):Ms(M);let B;e[36]!==c?(B=H=>$s(H,c),e[36]=c,e[37]=B):B=e[37],P=Rs(M,B),e[27]=S,e[28]=R,e[29]=c,e[30]=d,e[31]=m,e[32]=I,e[33]=M,e[34]=P,e[35]=O}else M=e[33],P=e[34],O=e[35];const T=P;let $;e[38]!==h||e[39]!==s?($=U=>{const B=h.get(U);B?s(B.dirName,B.fileName):rs(U)},e[38]=h,e[39]=s,e[40]=$):$=e[40];const z=$;let F;e[41]!==r.processes?(F=r.processes.filter(Bs),e[41]=r.processes,e[42]=F):F=e[42];const C=F.length;let K,G;e[43]===Symbol.for("react.memo_cache_sentinel")?(K=()=>{const U=B=>{var H;B.key==="/"&&Ks(B)&&(B.preventDefault(),(H=o.current)==null||H.focus())};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)},G=[],e[43]=K,e[44]=G):(K=e[43],G=e[44]),X.useEffect(K,G);let L;e[45]===Symbol.for("react.memo_cache_sentinel")?(L=t.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Mission Control"}),e[45]=L):L=e[45];let W;e[46]!==C?(W=C>0&&t.jsxs("p",{className:"text-xs text-muted-foreground",children:[C," ",C===1?"agent":"agents"," running on this machine"]}),e[46]=C,e[47]=W):W=e[47];let J;e[48]!==W?(J=t.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-x-4 gap-y-1",children:[L,W]}),e[48]=W,e[49]=J):J=e[49];let E;e[50]!==T||e[51]!==l?(E=l&&t.jsx(js,{recent:T,start:l}),e[50]=T,e[51]=l,e[52]=E):E=e[52];let Y;e[53]!==J||e[54]!==E?(Y=t.jsxs("div",{className:"mx-auto flex w-full max-w-6xl shrink-0 flex-col gap-8 px-6 pt-16 lg:px-10",children:[J,E]}),e[53]=J,e[54]=E,e[55]=Y):Y=e[55];const oe=D.length>0&&"lg:grid lg:grid-cols-[minmax(0,380px)_minmax(0,1fr)] lg:grid-rows-[minmax(0,1fr)]";let ee;e[56]!==oe?(ee=Z("mx-auto flex w-full max-w-6xl flex-col gap-8 px-6 pb-10 pt-10 lg:h-full lg:px-10",oe),e[56]=oe,e[57]=ee):ee=e[57];let se;e[58]!==h||e[59]!==k||e[60]!==n||e[61]!==S||e[62]!==z||e[63]!==D?(se=D.length>0?t.jsx(Us,{queue:D,input:n,byId:h,nameOf:S,onOpen:z,canAnswer:k}):t.jsxs("p",{className:"flex shrink-0 items-center gap-2 text-xs text-muted-foreground",children:[t.jsx("span",{className:"size-1.5 rounded-full bg-success/40","aria-hidden":"true"}),"Nothing is waiting on you."]}),e[58]=h,e[59]=k,e[60]=n,e[61]=S,e[62]=z,e[63]=D,e[64]=se):se=e[64];let te;e[65]!==S||e[66]!==i||e[67]!==z||e[68]!==R||e[69]!==d||e[70]!==a||e[71]!==M.length||e[72]!==O?(te=t.jsx(Qs,{sessions:O,total:M.length,query:d,onQueryChange:f,searchRef:o,nameOf:S,projectLabel:R,onOpen:z,onRename:a,onBrowseProjects:i}),e[65]=S,e[66]=i,e[67]=z,e[68]=R,e[69]=d,e[70]=a,e[71]=M.length,e[72]=O,e[73]=te):te=e[73];let ne;e[74]!==ee||e[75]!==se||e[76]!==te?(ne=t.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto lg:overflow-hidden",children:t.jsxs("div",{className:ee,children:[se,te]})}),e[74]=ee,e[75]=se,e[76]=te,e[77]=ne):ne=e[77];let le;return e[78]!==Y||e[79]!==ne?(le=t.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[Y,ne]}),e[78]=Y,e[79]=ne,e[80]=le):le=e[80],le}function Bs(u){return u.sessionId}function Fs(u){return[u.sessionId,u]}function Ls(u){return!u.archived}function Ce(u){const e=V.c(9),{title:s,count:i,children:l}=u;let r;e[0]!==s?(r=t.jsx("h2",{className:"text-sm font-medium",children:s}),e[0]=s,e[1]=r):r=e[1];let n;e[2]!==i?(n=i!==void 0&&t.jsx("span",{className:"text-xs tabular-nums text-muted-foreground",children:i}),e[2]=i,e[3]=n):n=e[3];let g;e[4]===Symbol.for("react.memo_cache_sentinel")?(g=t.jsx("span",{className:"flex-1"}),e[4]=g):g=e[4];let a;return e[5]!==l||e[6]!==r||e[7]!==n?(a=t.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[r,n,g,l]}),e[5]=l,e[6]=r,e[7]=n,e[8]=a):a=e[8],a}function de(u,e){const s=u==null?void 0:u.crew;return s?e(s.rootId)??s.rootTitle??null:null}const Ie={permission:"asked a permission",question:"asked a question",elicitation:"asked for input",dialog:"needs a choice",plan:"has a plan to review",deferred:"has a deferred permission"};function Us(u){const e=V.c(71),{queue:s,input:i,byId:l,nameOf:r,onOpen:n,canAnswer:g}=u,[a,c]=X.useState(0);let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=new Set,e[0]=p):p=e[0];const d=X.useRef(p),f=Math.min(a,s.length-1),o=s[f];let x;if(e[1]!==l||e[2]!==r||e[3]!==o.sessionId){const C=l.get(o.sessionId);x=de(C,r),e[1]=l,e[2]=r,e[3]=o.sessionId,e[4]=x}else x=e[4];const m=x;let w;e[5]!==f||e[6]!==g||e[7]!==i||e[8]!==n||e[9]!==s.length||e[10]!==o.kind||e[11]!==o.request||e[12]!==o.sessionId?(w=C=>{const K=C.target;if(!(K.closest("input,textarea,select,[contenteditable=true]")||C.metaKey||C.ctrlKey||C.altKey)&&((C.key==="j"||C.key==="n"||C.key==="ArrowDown")&&(C.preventDefault(),c(Math.min(s.length-1,f+1))),(C.key==="k"||C.key==="ArrowUp")&&(C.preventDefault(),c(Math.max(0,f-1))),C.key==="o"&&(C.preventDefault(),n(o.sessionId)),(C.key==="Enter"||C.key==="d")&&K===C.currentTarget&&g(o.sessionId))){if(o.kind!=="permission")return;const G=C.key==="d"||o.request.defaultToNo?"deny":"allow",L=o.request.requestId;if(o.request.availableDecisions&&!o.request.availableDecisions.includes(G)||(C.preventDefault(),d.current.has(L)||i.responding.has(L)))return;d.current.add(L),i.respond(o.sessionId,L,G).finally(()=>d.current.delete(L))}},e[5]=f,e[6]=g,e[7]=i,e[8]=n,e[9]=s.length,e[10]=o.kind,e[11]=o.request,e[12]=o.sessionId,e[13]=w):w=e[13];const h=w;let b;e[14]!==f||e[15]!==s.length?(b=s.length>1&&t.jsxs("span",{className:"flex items-center gap-1 text-xs tabular-nums text-muted-foreground",children:[f+1," of ",s.length,t.jsx(Q,{variant:"ghost",size:"icon-xs","aria-label":"Previous request",disabled:f===0,onClick:()=>c(f-1),children:t.jsx(xs,{"data-icon":"inline-start"})}),t.jsx(Q,{variant:"ghost",size:"icon-xs","aria-label":"Next request",disabled:f===s.length-1,onClick:()=>c(f+1),children:t.jsx(Se,{"data-icon":"inline-start"})})]}),e[14]=f,e[15]=s.length,e[16]=b):b=e[16];let v;e[17]!==s.length||e[18]!==b?(v=t.jsx(Ce,{title:"Needs you",count:s.length,children:b}),e[17]=s.length,e[18]=b,e[19]=v):v=e[19];let j;e[20]===Symbol.for("react.memo_cache_sentinel")?(j=t.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-warning","aria-hidden":"true"}),e[20]=j):j=e[20];let N;e[21]!==n||e[22]!==o.sessionId?(N=()=>n(o.sessionId),e[21]=n,e[22]=o.sessionId,e[23]=N):N=e[23];let I;e[24]!==r||e[25]!==o.sessionId?(I=r(o.sessionId)??"A session",e[24]=r,e[25]=o.sessionId,e[26]=I):I=e[26];let y;e[27]!==N||e[28]!==I?(y=t.jsx("button",{type:"button",onClick:N,className:"min-w-0 truncate rounded-sm font-medium outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring",children:I}),e[27]=N,e[28]=I,e[29]=y):y=e[29];let k;e[30]!==m?(k=m&&t.jsxs("span",{className:"min-w-0 truncate text-muted-foreground",children:["· ",m]}),e[30]=m,e[31]=k):k=e[31];let A;e[32]!==o.since?(A=ie(new Date(o.since).toISOString()),e[32]=o.since,e[33]=A):A=e[33];let D;e[34]!==A?(D=t.jsxs("span",{className:"ml-auto shrink-0 text-xs tabular-nums text-warning",children:["waiting ",A]}),e[34]=A,e[35]=D):D=e[35];let q;e[36]!==k||e[37]!==D||e[38]!==y?(q=t.jsxs("div",{className:"flex items-center gap-2 px-0.5 text-[13px]",children:[j,y,k,D]}),e[36]=k,e[37]=D,e[38]=y,e[39]=q):q=e[39];const S=Ie[o.kind];let _;e[40]!==S?(_=t.jsx("p",{className:"px-0.5 text-xs text-muted-foreground",children:S}),e[40]=S,e[41]=_):_=e[41];let R;e[42]!==o?(R=je(o),e[42]=o,e[43]=R):R=e[43];let M;e[44]!==g||e[45]!==o.sessionId?(M=g(o.sessionId),e[44]=g,e[45]=o.sessionId,e[46]=M):M=e[46];let P;e[47]!==n||e[48]!==o.sessionId?(P=()=>n(o.sessionId),e[47]=n,e[48]=o.sessionId,e[49]=P):P=e[49];let O;e[50]!==i||e[51]!==o||e[52]!==R||e[53]!==M||e[54]!==P?(O=t.jsx(Cs,{request:o,input:i,canAnswer:M,onOpen:P},R),e[50]=i,e[51]=o,e[52]=R,e[53]=M,e[54]=P,e[55]=O):O=e[55];let T;e[56]!==q||e[57]!==_||e[58]!==O?(T=t.jsxs("div",{className:"flex flex-col gap-2",children:[q,_,O]}),e[56]=q,e[57]=_,e[58]=O,e[59]=T):T=e[59];let $;e[60]!==f||e[61]!==l||e[62]!==r||e[63]!==s?($=s.length>1&&t.jsx("ol",{className:"mt-3 flex flex-col","aria-label":"Also waiting",children:s.map((C,K)=>K===f?null:t.jsx("li",{children:t.jsxs("button",{type:"button",onClick:()=>c(K),className:"grid w-full grid-cols-[18px_minmax(0,1fr)_auto] items-center gap-2.5 rounded-lg px-2 py-2 text-left text-[12.5px] outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",children:[t.jsx("span",{className:"text-right text-[11px] tabular-nums text-muted-foreground/80",children:K+1}),t.jsxs("span",{className:"flex min-w-0 flex-col",children:[t.jsxs("span",{className:"truncate font-medium",children:[r(C.sessionId)??"A session",de(l.get(C.sessionId),r)&&t.jsxs("span",{className:"font-normal text-muted-foreground",children:[" · ",de(l.get(C.sessionId),r)]})]}),t.jsx("span",{className:"truncate text-[11.5px] text-muted-foreground",children:Ie[C.kind]})]}),t.jsx("span",{className:"text-[11px] tabular-nums text-warning",children:ie(new Date(C.since).toISOString())})]})},je(C)))}),e[60]=f,e[61]=l,e[62]=r,e[63]=s,e[64]=$):$=e[64];let z;e[65]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx("p",{className:"mt-2 px-0.5 text-[11px] text-muted-foreground/80",children:"J / K move · Enter answers · D denies · O opens"}),e[65]=z):z=e[65];let F;return e[66]!==h||e[67]!==T||e[68]!==$||e[69]!==v?(F=t.jsxs("section",{"aria-label":"Needs you",tabIndex:0,onKeyDown:h,className:"min-w-0 rounded-xl outline-none focus-visible:ring-2 focus-visible:ring-ring lg:min-h-0 lg:overflow-y-auto",children:[v,T,$,z]}),e[66]=h,e[67]=T,e[68]=$,e[69]=v,e[70]=F):F=e[70],F}function Hs(u){var e,s;return u.state==="needs-you"||(((e=u.counts)==null?void 0:e.needsYou)??0)>0?re.attention:u.state==="working"||(((s=u.counts)==null?void 0:s.working)??0)>0?re.working:null}function Qs(u){const e=V.c(39),{sessions:s,total:i,query:l,onQueryChange:r,searchRef:n,nameOf:g,projectLabel:a,onOpen:c,onRename:p,onBrowseProjects:d}=u;let f;e[0]!==l?(f=l.trim(),e[0]=l,e[1]=f):f=e[1];const o=f.length>0;let x;e[2]!==r||e[3]!==n?(x=()=>{var q;r(""),(q=n.current)==null||q.focus()},e[2]=r,e[3]=n,e[4]=x):x=e[4];const m=x,w=o?s.length:i;let h;e[5]===Symbol.for("react.memo_cache_sentinel")?(h=t.jsx(gs,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),e[5]=h):h=e[5];let b;e[6]!==r?(b=q=>r(q.target.value),e[6]=r,e[7]=b):b=e[7];let v;e[8]!==m||e[9]!==n?(v=q=>{var S;q.key==="Escape"&&(q.preventDefault(),m(),(S=n.current)==null||S.blur())},e[8]=m,e[9]=n,e[10]=v):v=e[10];let j;e[11]!==l||e[12]!==n||e[13]!==b||e[14]!==v?(j=t.jsx(me,{ref:n,type:"search","aria-label":"Search sessions",placeholder:"Search sessions",value:l,onChange:b,onKeyDown:v,className:"h-7 pl-8 pr-7 text-xs [&::-webkit-search-cancel-button]:hidden"}),e[11]=l,e[12]=n,e[13]=b,e[14]=v,e[15]=j):j=e[15];let N;e[16]!==m||e[17]!==o?(N=o?t.jsx("button",{type:"button","aria-label":"Clear search",onClick:m,className:"absolute right-1.5 top-1/2 flex size-4 -translate-y-1/2 items-center justify-center rounded-sm text-muted-foreground outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",children:t.jsx(ps,{className:"size-3"})}):t.jsx("kbd",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 font-mono text-[10px] text-muted-foreground/70","aria-hidden":"true",children:"/"}),e[16]=m,e[17]=o,e[18]=N):N=e[18];let I;e[19]!==j||e[20]!==N?(I=t.jsxs("div",{className:"relative w-full max-w-64",children:[h,j,N]}),e[19]=j,e[20]=N,e[21]=I):I=e[21];let y;e[22]!==d?(y=d&&t.jsxs(Q,{variant:"ghost",size:"xs",className:"text-muted-foreground",onClick:d,children:[t.jsx(pe,{"data-icon":"inline-start"}),"All projects"]}),e[22]=d,e[23]=y):y=e[23];let k;e[24]!==y||e[25]!==w||e[26]!==I?(k=t.jsxs(Ce,{title:"Your sessions",count:w,children:[I,y]}),e[24]=y,e[25]=w,e[26]=I,e[27]=k):k=e[27];let A;e[28]!==g||e[29]!==c||e[30]!==p||e[31]!==a||e[32]!==l||e[33]!==o||e[34]!==s?(A=s.length===0?t.jsx(Je,{children:t.jsx(Ze,{children:t.jsx(es,{children:o?`No session matches “${l.trim()}”.`:"Start a session and it shows up here, with every session it starts."})})}):t.jsx("ul",{className:"flex flex-col lg:min-h-0 lg:flex-1 lg:overflow-y-auto",children:s.map(q=>t.jsx(Vs,{entry:q,nameOf:g,projectLabel:a,onOpen:c,onRename:p},q.session.sessionId))}),e[28]=g,e[29]=c,e[30]=p,e[31]=a,e[32]=l,e[33]=o,e[34]=s,e[35]=A):A=e[35];let D;return e[36]!==k||e[37]!==A?(D=t.jsxs("section",{"aria-label":"Your sessions",className:"flex min-w-0 flex-col lg:min-h-0 lg:flex-1",children:[k,A]}),e[36]=k,e[37]=A,e[38]=D):D=e[38],D}function Vs(u){const e=V.c(60),{entry:s,nameOf:i,projectLabel:l,onOpen:r,onRename:n}=u,[g,a]=X.useState(null),{session:c}=s;let p;e[0]!==i||e[1]!==c.sessionId?(p=i(c.sessionId)??"Untitled session",e[0]=i,e[1]=c.sessionId,e[2]=p):p=e[2];const d=p;let f;e[3]!==c?(f=ss(c),e[3]=c,e[4]=f):f=e[4];const o=f;let x,m;if(e[5]!==g||e[6]!==s||e[7]!==i||e[8]!==r||e[9]!==n||e[10]!==o||e[11]!==l||e[12]!==c||e[13]!==d){const v=Hs(s);let j;e[16]!==g||e[17]!==n||e[18]!==o||e[19]!==c.sessionId||e[20]!==d?(j=()=>{if(g===null)return;const P=g.trim();a(null),P!==d&&n(c.sessionId,P===o?"":P)},e[16]=g,e[17]=n,e[18]=o,e[19]=c.sessionId,e[20]=d,e[21]=j):j=e[21];const N=j;let I;e[22]!==s.counts||e[23]!==c.isActive?(I=s.counts?t.jsxs(t.Fragment,{children:[s.counts.working>0&&t.jsxs("span",{children:[t.jsx("span",{className:"font-medium text-foreground tabular-nums",children:s.counts.working})," working"]}),s.counts.needsYou>0&&t.jsxs("span",{className:"text-warning",children:[t.jsx("span",{className:"font-medium tabular-nums",children:s.counts.needsYou})," need you"]}),t.jsxs("span",{children:[t.jsx("span",{className:"font-medium text-foreground tabular-nums",children:s.counts.size})," in crew"]})]}):c.isActive&&t.jsx("span",{children:"working"}),e[22]=s.counts,e[23]=c.isActive,e[24]=I):I=e[24];let y;e[25]!==I?(y=t.jsx("span",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:I}),e[25]=I,e[26]=y):y=e[26];let k;e[27]!==s.landed?(k=s.landed&&t.jsxs(ts,{variant:"outline",className:"shrink-0",children:["#",s.landed.number]}),e[27]=s.landed,e[28]=k):k=e[28];let A;e[29]!==s.landed||e[30]!==i||e[31]!==c.lastUserMessage?(A=s.landed?`${s.landed.title??"Pull request"} · ${i(s.landed.by.sessionId)??""}`:c.lastUserMessage??"",e[29]=s.landed,e[30]=i,e[31]=c.lastUserMessage,e[32]=A):A=e[32];let D;e[33]!==A?(D=t.jsx("span",{className:"truncate",children:A}),e[33]=A,e[34]=D):D=e[34];let q;e[35]!==D||e[36]!==k?(q=t.jsxs("span",{className:"flex min-w-0 items-center gap-2 text-xs text-muted-foreground",children:[k,D]}),e[35]=D,e[36]=k,e[37]=q):q=e[37];let S;e[38]!==s.activityAt||e[39]!==s.counts?(S=s.counts?`crew active ${ie(s.activityAt)}`:ie(s.activityAt),e[38]=s.activityAt,e[39]=s.counts,e[40]=S):S=e[40];let _;e[41]!==S?(_=t.jsx("span",{className:"text-[11px] tabular-nums text-muted-foreground/80",children:S}),e[41]=S,e[42]=_):_=e[42];let R;e[43]!==q||e[44]!==_||e[45]!==y?(R=t.jsxs(t.Fragment,{children:[y,q,_]}),e[43]=q,e[44]=_,e[45]=y,e[46]=R):R=e[46];const M=R;x="group/row relative border-t border-border/70 first:border-t-0",m=g===null?t.jsxs("button",{type:"button",onClick:()=>r(c.sessionId),className:Z("grid w-full grid-cols-1 items-center gap-x-4 gap-y-1 rounded-lg py-3 pl-3 pr-10 text-left xl:grid-cols-[minmax(0,1fr)_auto]","outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring"),children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[v&&t.jsx("span",{className:Z("size-1.5 shrink-0 rounded-full",v),"aria-hidden":"true"}),t.jsx("span",{className:"truncate text-[13.5px] font-medium",children:d}),t.jsx("span",{className:"hidden min-w-0 truncate text-xs text-muted-foreground sm:inline",children:l(c)})]}),M]}):t.jsxs("div",{className:"grid w-full grid-cols-1 items-center gap-x-4 gap-y-1 rounded-lg py-3 pl-3 pr-10 text-left xl:grid-cols-[minmax(0,1fr)_auto]",children:[t.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[v&&t.jsx("span",{className:Z("size-1.5 shrink-0 rounded-full",v),"aria-hidden":"true"}),t.jsx(me,{autoFocus:!0,"aria-label":"Session name",value:g,placeholder:o,onChange:P=>a(P.target.value),onFocus:Ys,onBlur:N,onKeyDown:P=>{P.key==="Enter"&&(P.preventDefault(),N()),P.key==="Escape"&&(P.preventDefault(),a(null))},className:"h-7 max-w-md text-[13.5px] font-medium"}),t.jsx("span",{className:"hidden min-w-0 truncate text-xs text-muted-foreground sm:inline",children:l(c)})]}),M]}),e[5]=g,e[6]=s,e[7]=i,e[8]=r,e[9]=n,e[10]=o,e[11]=l,e[12]=c,e[13]=d,e[14]=x,e[15]=m}else x=e[14],m=e[15];let w;e[47]!==s||e[48]!==i||e[49]!==r||e[50]!==d?(w=s.crew.length>0&&t.jsx(Gs,{entry:s,title:d,nameOf:i,onOpen:r}),e[47]=s,e[48]=i,e[49]=r,e[50]=d,e[51]=w):w=e[51];let h;e[52]!==g||e[53]!==d?(h=g===null&&t.jsx(Q,{variant:"ghost",size:"icon-xs","aria-label":`Rename ${d}`,title:"Rename",onClick:()=>a(d),className:"absolute right-2 top-2.5 text-muted-foreground opacity-0 transition-opacity group-hover/row:opacity-100 focus-visible:opacity-100",children:t.jsx(hs,{"data-icon":"icon"})}),e[52]=g,e[53]=d,e[54]=h):h=e[54];let b;return e[55]!==x||e[56]!==m||e[57]!==w||e[58]!==h?(b=t.jsxs("li",{className:x,children:[m,w,h]}),e[55]=x,e[56]=m,e[57]=w,e[58]=h,e[59]=b):b=e[59],b}function Ys(u){return u.target.select()}function Gs(u){const e=V.c(50),{entry:s,title:i,nameOf:l,onOpen:r}=u,[n,g]=X.useState(!1);let a,c,p,d,f,o,x,m;if(e[0]!==s.crew||e[1]!==s.session||e[2]!==n||e[3]!==l||e[4]!==r||e[5]!==i){a=s.crew.filter(Xs),c=a.slice(0,Ts);let D;e[14]!==s.session||e[15]!==l?(D=q=>{var _;const S=(_=q.crew)==null?void 0:_.parentId;return S&&S!==s.session.sessionId?l(S):void 0},e[14]=s.session,e[15]=l,e[16]=D):D=e[16],m=D,x="-mt-1.5 flex flex-col gap-1.5 px-3 pb-3",p="group",d=`${i} crew`,f="flex min-w-0 flex-wrap items-center gap-1.5",o=!n&&c.map(q=>{const{member:S,state:_}=q;return t.jsxs("button",{type:"button","aria-label":`Open ${l(S.sessionId)??"crew member"}`,onClick:()=>r(S.sessionId),className:"flex max-w-56 items-center gap-1.5 rounded-md border border-border/70 px-2 py-0.5 text-xs outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring",children:[t.jsx("span",{className:Z("size-1.5 shrink-0 rounded-full",ve[_]),"aria-hidden":"true"}),t.jsx("span",{className:"truncate",children:l(S.sessionId)??"Crew member"})]},S.sessionId)}),e[0]=s.crew,e[1]=s.session,e[2]=n,e[3]=l,e[4]=r,e[5]=i,e[6]=a,e[7]=c,e[8]=p,e[9]=d,e[10]=f,e[11]=o,e[12]=x,e[13]=m}else a=e[6],c=e[7],p=e[8],d=e[9],f=e[10],o=e[11],x=e[12],m=e[13];let w;e[17]!==n||e[18]!==a||e[19]!==c?(w=!n&&a.length>c.length&&t.jsxs("span",{className:"text-xs tabular-nums text-muted-foreground",children:["+",a.length-c.length," more"]}),e[17]=n,e[18]=a,e[19]=c,e[20]=w):w=e[20];let h;e[21]!==n?(h=()=>g(!n),e[21]=n,e[22]=h):h=e[22];const b=n&&"rotate-180";let v;e[23]!==b?(v=Z("transition-transform",b),e[23]=b,e[24]=v):v=e[24];let j;e[25]!==v?(j=t.jsx(ws,{"data-icon":"inline-start",className:v}),e[25]=v,e[26]=j):j=e[26];const N=n?"Hide crew":`Show crew (${s.crew.length})`;let I;e[27]!==n||e[28]!==j||e[29]!==N||e[30]!==h?(I=t.jsxs(Q,{variant:"ghost",size:"xs","aria-expanded":n,onClick:h,className:"text-muted-foreground",children:[j,N]}),e[27]=n,e[28]=j,e[29]=N,e[30]=h,e[31]=I):I=e[31];let y;e[32]!==p||e[33]!==I||e[34]!==d||e[35]!==f||e[36]!==o||e[37]!==w?(y=t.jsxs("div",{role:p,"aria-label":d,className:f,children:[o,w,I]}),e[32]=p,e[33]=I,e[34]=d,e[35]=f,e[36]=o,e[37]=w,e[38]=y):y=e[38];let k;e[39]!==s.crew||e[40]!==n||e[41]!==l||e[42]!==r||e[43]!==i||e[44]!==m?(k=n&&t.jsx("ul",{"aria-label":`${i} crew members`,className:"flex max-h-72 flex-col overflow-y-auto rounded-md border border-border/70",children:s.crew.map(D=>{const{member:q,state:S}=D;return t.jsx("li",{children:t.jsxs("button",{type:"button","aria-label":`Open ${l(q.sessionId)??"crew member"}`,onClick:()=>r(q.sessionId),className:"grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2.5 px-2.5 py-1.5 text-left text-xs outline-none hover:bg-accent focus-visible:bg-accent",children:[t.jsx("span",{className:Z("size-1.5 rounded-full",ve[S]),"aria-hidden":"true"}),t.jsxs("span",{className:"truncate",children:[l(q.sessionId)??"Crew member",m(q)&&t.jsxs("span",{className:"text-muted-foreground",children:[" · via ",m(q)]})]}),t.jsx("span",{className:Z("tabular-nums text-muted-foreground",S==="needs-you"&&"text-warning"),children:S==="done"?ie(q.lastActivityAt||q.lastModified):zs[S]})]})},q.sessionId)})}),e[39]=s.crew,e[40]=n,e[41]=l,e[42]=r,e[43]=i,e[44]=m,e[45]=k):k=e[45];let A;return e[46]!==y||e[47]!==k||e[48]!==x?(A=t.jsxs("div",{className:x,children:[y,k]}),e[46]=y,e[47]=k,e[48]=x,e[49]=A):A=e[49],A}function Xs(u){const{state:e}=u;return e!=="done"}export{st as MissionHome};
@@ -1 +0,0 @@
1
- import{r as x,j as e}from"./vendor-react-gGw_S5I_.js";import{b7 as Q,B as h,c as R,S as Y,E as _,f as ee,U as se,h as ne,i as ae,k as re,d2 as C,V as te,y as ie,z as oe,cZ as S,d3 as le,A as ce,aa as U,a9 as F,a5 as T,a2 as de,a3 as $,a4 as P,a7 as O,a6 as I,a8 as M,F as p,a1 as d}from"./index-BVmNox_3.js";import{a7 as b,a5 as he,V as me,X as xe,bM as ue,bu as pe,b0 as B,A as ge,b$ as je}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";function y(l){return l.commitsAhead>0&&(!l.branch||C(l.name,l.branch))}const fe={M:"text-warning",A:"text-success",D:"text-destructive",R:"text-info"};function Ce({worktrees:l,loading:g,dirName:t,onRefetch:j,onOpenSession:W,onClose:H}){const c=Q("hostFiles"),[J,N]=x.useState(null),[L,w]=x.useState(null),[G,u]=x.useState(!1),[a,m]=x.useState(null),[r,f]=x.useState(null),D=async s=>{if(!(!c||!t)){N(s.name);try{const n=await p(`/api/worktrees/${encodeURIComponent(t)}/${encodeURIComponent(s.name)}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({force:s.isDirty})});if(!n.ok){const{error:i}=await n.json().catch(()=>({error:void 0}));throw new Error(i??`HTTP ${n.status}`)}j()}catch(n){d.error(`Failed to delete worktree: ${n instanceof Error?n.message:"Unknown error"}`)}finally{N(null)}}},V=s=>{if(!(!c||!t)){if(s.isDirty){m({worktree:s,reason:"dirty"});return}if(y(s)){m({worktree:s,reason:"unpushed"});return}D(s)}},q=()=>{if(!a)return;const{worktree:s,reason:n}=a;if(n==="dirty"&&y(s)){m({worktree:s,reason:"unpushed"});return}m(null),D(s)},X=async s=>{if(!(!c||!t)){w(s.name);try{const n=await p(`/api/worktrees/${encodeURIComponent(t)}/create-pr`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeName:s.name,title:s.name.replace(/-/g," ")})});if(n.ok){const i=await n.json();i.url?window.open(i.url,"_blank","noopener,noreferrer"):d.warning("PR created but no URL was returned")}else{const i=await n.json().catch(()=>({error:"Unknown error"}));d.error(`Failed to create PR: ${i.error||"Unknown error"}`)}}catch(n){d.error(`Error creating PR: ${n instanceof Error?n.message:"Unknown error"}`)}finally{w(null)}}},Z=async()=>{if(!(!c||!t)){u(!0);try{const s=await p(`/api/worktrees/${encodeURIComponent(t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(s.ok){const{stale:n}=await s.json();n.length===0?d.info("No stale worktrees found"):f(n.map(i=>i.name))}}catch(s){d.error(`Cleanup failed: ${s instanceof Error?s.message:"Unknown error"}`)}finally{u(!1)}}},K=async()=>{if(!c||!t||!r)return;const s=r;f(null),u(!0);try{await p(`/api/worktrees/${encodeURIComponent(t)}/cleanup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirm:!0,names:s})}),j()}catch(n){d.error(`Cleanup failed: ${n instanceof Error?n.message:"Unknown error"}`)}finally{u(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{"aria-label":"Worktrees",className:"flex size-full min-h-0 flex-col bg-canvas",children:[e.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-2 px-3",children:[e.jsx(b,{"data-icon":"inline-start","aria-hidden":"true",className:"size-4 text-muted-foreground"}),e.jsx("h2",{className:"text-sm font-medium",children:"Worktrees"}),e.jsx("div",{className:"flex-1"}),c&&e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:Z,disabled:G,"aria-label":"Cleanup stale worktrees",children:e.jsx(he,{"data-icon":"inline-start"})}),e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:j,disabled:g,"aria-label":"Refresh worktrees",children:e.jsx(me,{"data-icon":"inline-start",className:R(g&&"animate-spin")})}),e.jsx(h,{variant:"ghost",size:"icon-sm",onClick:H,"aria-label":"Close worktrees",children:e.jsx(xe,{"data-icon":"inline-start"})})]}),e.jsx(Y,{}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto p-3",children:[!t&&e.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Select a project to view worktrees"}),t&&l.length===0&&!g&&e.jsx(_,{className:"border-0 py-16",children:e.jsxs(ee,{children:[e.jsx(se,{variant:"icon",children:e.jsx(b,{})}),e.jsx(ne,{children:"No worktrees"}),e.jsx(ae,{children:"Create a new session with “Isolate in worktree” enabled"})]})}),l.map(s=>{var A,z,E;const n=((A=s.changedFiles)==null?void 0:A.reduce((o,v)=>o+v.additions,0))??0,i=((z=s.changedFiles)==null?void 0:z.reduce((o,v)=>o+v.deletions,0))??0,k=((E=s.changedFiles)==null?void 0:E.length)??0;return e.jsxs("div",{className:"rounded-lg border bg-card p-3 transition-colors hover:bg-accent/40",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium text-foreground",children:s.name}),s.isDirty&&e.jsx("span",{className:"flex size-2 shrink-0 rounded-full bg-warning",title:"Uncommitted changes"}),s.commitsAhead>0&&e.jsxs(re,{variant:"outline",className:"h-5 shrink-0 px-1.5 text-xs",children:[s.commitsAhead," ahead"]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[s.linkedSessions.length>0&&e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>W(s.linkedSessions[0]),"aria-label":"Open session",children:e.jsx(ue,{"data-icon":"inline-start"})}),c&&e.jsxs(e.Fragment,{children:[e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>X(s),disabled:L===s.name||s.commitsAhead===0,"aria-label":"Create PR",children:e.jsx(pe,{"data-icon":"inline-start"})}),e.jsx(h,{variant:"ghost",size:"icon-xs",onClick:()=>V(s),disabled:J===s.name,className:"text-destructive hover:bg-destructive/10 hover:text-destructive","aria-label":"Delete worktree",children:e.jsx(B,{"data-icon":"inline-start"})})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"shrink-0 font-mono",children:s.head}),e.jsx("span",{className:"truncate",children:s.headMessage})]}),(s.createdAt||!C(s.name,s.branch))&&e.jsxs("div",{className:"mt-0.5 flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[!C(s.name,s.branch)&&e.jsxs("span",{className:"flex min-w-0 items-center gap-1",children:[e.jsx(b,{className:"size-3 shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:s.branch||"detached"})]}),s.createdAt&&e.jsx("span",{className:"shrink-0",children:te(s.createdAt)})]}),k>0&&e.jsxs(ie,{className:"mt-2",children:[e.jsxs("div",{className:"relative flex w-full items-center gap-1.5 text-xs text-muted-foreground transition-colors hover:text-foreground",children:[e.jsxs(oe,{className:"group flex items-center gap-1.5 after:absolute after:inset-0",children:[e.jsx(ge,{"data-icon":"inline-start",className:"size-3 transition-transform group-data-panel-open:rotate-90 motion-reduce:transition-none"}),e.jsx(je,{"data-icon":"inline-start",className:"size-3"}),e.jsxs("span",{children:[k," file",k!==1?"s":""," changed"]})]}),e.jsx(S,{add:n,del:i,breakdown:le(s.changedFiles),className:"relative ml-1"})]}),e.jsx(ce,{children:e.jsx("div",{className:"mt-1.5 flex flex-col gap-px rounded-md bg-muted/40 p-1.5",children:s.changedFiles.map(o=>e.jsxs("div",{className:"flex items-center gap-2 px-1 py-0.5 font-mono text-xs",children:[e.jsx("span",{className:R("shrink-0 w-3 text-center",fe[o.status]??"text-muted-foreground"),children:o.status}),e.jsx("span",{className:"truncate text-foreground/80",children:o.path}),e.jsx(S,{add:o.additions,del:o.deletions,className:"ml-auto text-muted-foreground"})]},o.path))})})]})]},s.name)})]})]}),e.jsx(U,{open:a!==null,onOpenChange:s=>{s||m(null)},children:e.jsxs(F,{size:"sm",children:[e.jsxs(T,{children:[e.jsx(de,{className:"bg-destructive/10 text-destructive",children:e.jsx(B,{})}),e.jsx($,{children:(a==null?void 0:a.reason)==="dirty"?"Delete worktree with uncommitted changes?":"Delete worktree with unpushed commits?"}),e.jsxs(P,{children:[(a==null?void 0:a.reason)==="dirty"?`"${a.worktree.name}" has uncommitted changes.`:`"${a==null?void 0:a.worktree.name}" has ${a==null?void 0:a.worktree.commitsAhead} unpushed commit(s).`," "," ","Deleting it cannot be undone."]})]}),e.jsxs(O,{children:[e.jsx(I,{size:"sm",children:"Cancel"}),e.jsx(M,{variant:"destructive",size:"sm",onClick:q,children:(a==null?void 0:a.reason)==="dirty"&&y(a.worktree)?"Continue":"Delete worktree"})]})]})}),e.jsx(U,{open:r!==null,onOpenChange:s=>{s||f(null)},children:e.jsxs(F,{children:[e.jsxs(T,{children:[e.jsx($,{children:"Remove stale worktrees?"}),e.jsxs(P,{children:[r==null?void 0:r.length," stale worktree",(r==null?void 0:r.length)===1?"":"s"," will be removed: ",r==null?void 0:r.join(", "),"."]})]}),e.jsxs(O,{children:[e.jsx(I,{size:"sm",children:"Cancel"}),e.jsx(M,{variant:"destructive",size:"sm",onClick:()=>void K(),children:"Remove worktrees"})]})]})})]})}export{Ce as WorktreePanel};
@@ -1 +0,0 @@
1
- import{r as a,c as Ce,j as n}from"./vendor-react-gGw_S5I_.js";import{F as et,dj as tt,Z as nt,_ as mt,dk as Qt,c as Ae,E as Ge,f as Xe,U as Ve,h as qe,i as ze,aT as Je,B as re,x as ct,bs as Bt,au as He,aw as en,ax as tn,ay as nn,az as sn,bP as Lt,bQ as Ft,bO as Pt,dl as ut,k as Ke,V as ln,cj as rn,ch as an,ci as on,S as xt,dm as cn,l as zt,D as $t,j as Ut,ac as gt,at as un,ae as pt,aC as dn,aD as Ht,aE as Kt,n as Wt,o as Yt,aa as fn,a9 as hn,a5 as mn,a2 as xn,a3 as gn,a4 as pn,a7 as wn,a6 as bn,a8 as yn,ad as jn,dn as wt,dp as vn,cU as bt,aZ as yt,dq as Sn}from"./index-BVmNox_3.js";import{bx as kn,T as dt,aB as Gt,u as ft,aT as Cn,a5 as ht,dB as Nn,X as Ze,cM as Xt,bv as En,bH as Tn,bM as Dn,dC as _n,cq as Vt,C as An,cp as Rn,bg as In,dD as On,b0 as jt,aC as Mn,dE as Bn}from"./vendor-ui-CKjyvB3_.js";import"./vendor-markdown-BEJ8yVzA.js";const Pe="/api/browser",Ln=5e3,Fn="all";function st(s,e=""){return`${Pe}/sessions/${encodeURIComponent(s)}${e}`}function lt(s){return{headers:{"content-type":"application/json"},body:JSON.stringify(s)}}function rt(s,e){return s instanceof Error&&s.message?s.message:e}function Pn(s){const[e,t]=a.useState(null),[l,r]=a.useState(null),i=a.useRef(!1),o=a.useRef(0),f=a.useRef(!1);a.useEffect(()=>(i.current=!0,()=>{i.current=!1}),[]);const c=a.useCallback(async()=>{const m=++o.current;f.current=!0;try{const d=await et(tt(Pe)),x=d.ok?await d.json():null;if(!i.current||m!==o.current)return;x?(t(h=>JSON.stringify(h)===JSON.stringify(x)?h:x),r(null)):r(await nt(d,`Could not read the browser list (${d.status})`))}catch(d){i.current&&m===o.current&&r(rt(d,"Could not read the browser list"))}finally{m===o.current&&(f.current=!1)}},[]);a.useEffect(()=>{if(!s)return;c();const m=setInterval(()=>{f.current||c()},Ln);return()=>clearInterval(m)},[s,c]);const g=a.useCallback(async(m,d,x)=>{let h;try{h=await et(tt(m),d)}catch(C){return{ok:!1,error:rt(C,x)}}if(!h.ok)return{ok:!1,error:await nt(h,x)};const p=await mt(h);return c(),{ok:!0,data:p}},[c]),w=a.useCallback(async(m,d,x)=>{const h=await g(m,d,x);return h.ok?{ok:!0}:h},[g]),v=a.useCallback(async(m,d)=>{const x=await g(`${Pe}/sessions`,{method:"POST",...lt({name:m,note:d})},`Could not create ${m}`);if(!x.ok)return x;const h=x.data;return(h==null?void 0:h.name)===m&&t(p=>p&&!p.sessions.some(C=>C.name===m)?{...p,sessions:[...p.sessions,h]}:p),{ok:!0}},[g]),b=a.useCallback(m=>w(st(m),{method:"DELETE"},`Could not delete ${m}`),[w]),j=a.useCallback(m=>w(st(m,"/stop"),{method:"POST"},`Could not stop ${m}`),[w]),y=a.useCallback((m,d)=>w(st(m),{method:"PATCH",...lt({archived:d})},`Could not ${d?"archive":"restore"} ${m}`),[w]),k=a.useCallback(async()=>{const m="Could not read where the browser skill is installed";let d;try{d=await et(tt(`${Pe}/skill`))}catch(h){return{ok:!1,error:rt(h,m)}}if(!d.ok)return{ok:!1,error:await nt(d,m)};const x=await mt(d);return Array.isArray(x==null?void 0:x.targets)?{ok:!0,targets:x.targets}:{ok:!1,error:m}},[]),O=a.useCallback(async m=>{const d="Could not install the browser skill",x=await g(`${Pe}/skill/install`,{method:"POST",...lt({target:m})},d);if(!x.ok)return x;const{paths:h}=x.data??{};return Array.isArray(h)&&h.every(p=>typeof p=="string")?{ok:!0,paths:h}:{ok:!1,error:d}},[g]);return{status:e,error:l,refresh:c,create:v,remove:b,stop:j,setArchived:y,readSkillTargets:k,installSkill:O}}const at=4;new TextEncoder;const zn=new TextDecoder;function $n(s){if(s.byteLength<at)throw new Error("Frame truncated before header length");const e=new DataView(s.buffer,s.byteOffset,s.byteLength).getUint32(0),t=at+e;if(s.byteLength<t)throw new Error("Frame truncated inside header");return{header:Un(zn.decode(s.subarray(at,t))),jpeg:s.subarray(t)}}function Un(s){let e;try{e=JSON.parse(s)}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:r,offsetTop:i,scrollOffsetX:o,scrollOffsetY:f,targetId:c,ts:g}=e;if(typeof t!="number"||typeof l!="number"||typeof r!="number"||typeof i!="number"||typeof o!="number"||typeof f!="number"||typeof c!="string"||typeof g!="number")throw new Error("Frame header is missing fields");return{deviceWidth:t,deviceHeight:l,pageScaleFactor:r,offsetTop:i,scrollOffsetX:o,scrollOffsetY:f,targetId:c,ts:g}}const vt=500,Hn=5e3,St=[];function Kn(s){const e=window.location.protocol==="https:"?"wss:":"ws:",t=Qt();return`${e}//${window.location.host}${t}/__browser?session=${encodeURIComponent(s)}`}function Wn(s){try{return JSON.parse(s)}catch{return null}}function Yn(s,e){return s.state===e.state&&s.session===e.session&&s.message===e.message}function kt(s,e){return s.targetId===e.targetId&&s.url===e.url&&s.title===e.title&&s.canGoBack===e.canGoBack&&s.canGoForward===e.canGoForward}function Gn(s,e){return s.length===e.length&&s.every((t,l)=>t.targetId===e[l].targetId&&t.url===e[l].url&&t.title===e[l].title)}function it(s){s&&s.bitmap.close()}function Xn(s,e){const t=Ce.c(18),[l,r]=a.useState("idle"),[i,o]=a.useState(null),[f,c]=a.useState(null),[g,w]=a.useState(St),[v,b]=a.useState(null),[j,y]=a.useState(null),[k,O]=a.useState(null),[m,d]=a.useState(0),[x,h]=a.useState(null);let p;t[0]===Symbol.for("react.memo_cache_sentinel")?(p={page:null,generation:0},t[0]=p):p=t[0];const C=a.useRef(p),T=a.useRef(null),X=a.useRef(null),S=a.useRef(null),J=a.useRef(e);let $,R;t[1]!==e?($=()=>{J.current=e},R=[e],t[1]=e,t[2]=$,t[3]=R):($=t[2],R=t[3]),a.useEffect($,R);let M,L;t[4]!==s?(M=()=>{if(o(null),c(null),C.current={page:null,generation:C.current.generation+1},d(C.current.generation),w(St),b(null),h(null),y(null),O(null),s===null){r("idle");return}const B=s,P={alive:!0,issued:0,applied:0};let U=vt;const ne=function(_,E){if(!P.alive||E<=P.applied){it(_);return}P.applied=E,X.current=_,y(_),O(Date.now())},V=function(_){let E,te;try{const se=$n(new Uint8Array(_));E=se.header,te=new Blob([se.jpeg],{type:"image/jpeg"})}catch{return}const K=P.issued=P.issued+1,{page:ae,generation:Z}=C.current;createImageBitmap(te).then(se=>ne({bitmap:se,header:E,page:ae,pageGeneration:Z},K),Vn)},Q=function(_){var te;const E=Wn(_);if(E)e:switch(E.type){case"status":{o(K=>K&&Yn(K,E)?K:E),h(null);break e}case"page":{const K=C.current.page,ae=!K||K.targetId!==E.targetId||K.url!==E.url;C.current={page:K&&kt(K,E)?K:E,generation:C.current.generation+(ae?1:0)},ae&&d(C.current.generation),c(Z=>Z&&kt(Z,E)?Z:E);break e}case"tabs":{w(K=>Gn(K,E.tabs)?K:E.tabs),b(E.followed);break e}case"error":{h(E.message);break e}case"clipboard":(te=J.current)==null||te.call(J,E.text)}};function H(){if(!P.alive)return;const q=T.current;if(q&&q.readyState!==WebSocket.CLOSED)return;r("connecting");const _=new WebSocket(Kn(B));_.binaryType="arraybuffer",T.current=_,_.onopen=()=>{if(!P.alive){_.close();return}U=vt,r("connected")},_.onmessage=E=>{P.alive&&(typeof E.data=="string"?Q(E.data):E.data instanceof ArrayBuffer&&V(E.data))},_.onclose=()=>{if(!P.alive)return;T.current=null,r("disconnected");const E=U;U=Math.min(U*2,Hn),S.current=setTimeout(H,E)}}return H(),()=>{P.alive=!1,S.current&&(clearTimeout(S.current),S.current=null);const q=T.current;T.current=null,q&&(q.onclose=null,q.close()),it(X.current),X.current=null}},L=[s],t[4]=s,t[5]=M,t[6]=L):(M=t[5],L=t[6]),a.useEffect(M,L);let N;t[7]===Symbol.for("react.memo_cache_sentinel")?(N=B=>{const P=T.current;P&&P.readyState===WebSocket.OPEN&&P.send(JSON.stringify(B))},t[7]=N):N=t[7];const F=N;let D;return t[8]!==x||t[9]!==v||t[10]!==j||t[11]!==k||t[12]!==f||t[13]!==m||t[14]!==i||t[15]!==l||t[16]!==g?(D={status:l,state:i,page:f,tabs:g,followed:v,frame:j,lastFrameAt:k,pageGeneration:m,error:x,send:F},t[8]=x,t[9]=v,t[10]=j,t[11]=k,t[12]=f,t[13]=m,t[14]=i,t[15]=l,t[16]=g,t[17]=D):D=t[17],D}function Vn(){}const qn=6e3;function Jn(s){const e=Ce.c(16),{activity:t}=s,[l,r]=a.useState(!0),i=t?`${t.toolCallId}:${t.done}`:null;let o,f;if(e[0]!==i?(o=()=>{if(i===null)return;r(!0);const O=setTimeout(()=>r(!1),qn);return()=>clearTimeout(O)},f=[i],e[0]=i,e[1]=o,e[2]=f):(o=e[1],f=e[2]),a.useEffect(o,f),!t)return null;const c=l?"opacity-100":"opacity-0";let g;e[3]!==c?(g=Ae("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",c),e[3]=c,e[4]=g):g=e[4];let w;e[5]===Symbol.for("react.memo_cache_sentinel")?(w=n.jsx(kn,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted-foreground"}),e[5]=w):w=e[5];let v;e[6]!==t.command?(v=n.jsx("code",{className:"min-w-0 truncate font-mono text-[11px]",children:t.command}),e[6]=t.command,e[7]=v):v=e[7];const b=t.done?"ran":"running";let j;e[8]!==b?(j=n.jsx("span",{className:"shrink-0 text-muted-foreground",children:b}),e[8]=b,e[9]=j):j=e[9];let y;e[10]!==v||e[11]!==j?(y=n.jsxs("div",{className:"flex min-w-0 items-center gap-2 rounded-full bg-popover px-3 py-1 text-xs shadow-xs",children:[w,v,j]}),e[10]=v,e[11]=j,e[12]=y):y=e[12];let k;return e[13]!==g||e[14]!==y?(k=n.jsx("div",{className:g,children:y}),e[13]=g,e[14]=y,e[15]=k):k=e[15],k}const Ct="npm i -g agent-browser && agent-browser install",Zn=1500;function Qn(s){const e=Ce.c(20),{onOpenSkill:t}=s,[l,r]=a.useState(!1),i=a.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]),a.useEffect(o,f);let c;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=async function(){await Bt(Ct)&&(r(!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>r(!1),Zn))},e[2]=c):c=e[2];const g=c;let w,v;e[3]===Symbol.for("react.memo_cache_sentinel")?(w=n.jsx(Ve,{variant:"icon",children:n.jsx(Gt,{})}),v=n.jsx(qe,{children:"Nothing to show yet"}),e[3]=w,e[4]=v):(w=e[3],v=e[4]);let b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=n.jsxs(Xe,{children:[w,v,n.jsxs(ze,{children:["This panel streams a real browser the agent drives. That takes the"," ",n.jsx("code",{className:"font-mono",children:"agent-browser"})," command, which is not on this machine yet."]})]}),e[5]=b):b=e[5];let j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=n.jsx("code",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:Ct}),e[6]=j):j=e[6];const y=l?"Copied":"Copy install command";let k;e[7]===Symbol.for("react.memo_cache_sentinel")?(k=()=>void g(),e[7]=k):k=e[7];let O;e[8]!==l?(O=l?n.jsx(ft,{"data-icon":"inline-start",className:"text-emerald-500"}):n.jsx(Cn,{"data-icon":"inline-start"}),e[8]=l,e[9]=O):O=e[9];let m;e[10]!==O||e[11]!==y?(m=n.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:[j,n.jsx(re,{variant:"ghost",size:"icon-xs","aria-label":y,onClick:k,children:O})]}),e[10]=O,e[11]=y,e[12]=m):m=e[12];let d;e[13]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx(ht,{"data-icon":"inline-start"}),e[13]=d):d=e[13];let x;e[14]!==t?(x=n.jsxs(re,{variant:"outline",size:"sm",onClick:t,children:[d,"Install the agent skill…"]}),e[14]=t,e[15]=x):x=e[15];let h;e[16]===Symbol.for("react.memo_cache_sentinel")?(h=n.jsx(ze,{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]=h):h=e[16];let p;return e[17]!==m||e[18]!==x?(p=n.jsxs(Ge,{className:"size-full",children:[b,n.jsxs(Je,{children:[m,x,h]})]}),e[17]=m,e[18]=x,e[19]=p):p=e[19],p}function es(s){const e=Ce.c(14),{name:t,lastUrl:l,onOpen:r}=s;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx(Ve,{variant:"icon",children:n.jsx(Nn,{})}),e[0]=i):i=e[0];let o;e[1]!==t?(o=n.jsxs(qe,{children:[t," isn’t running"]}),e[1]=t,e[2]=o):o=e[2];const f=r?"The agent opens it by itself the moment it browses. You can also open a page here and watch from the start.":"It shows up here as soon as the agent that uses it opens it again.";let c;e[3]!==f?(c=n.jsx(ze,{children:f}),e[3]=f,e[4]=c):c=e[4];let g;e[5]!==o||e[6]!==c?(g=n.jsxs(Xe,{children:[i,o,c]}),e[5]=o,e[6]=c,e[7]=g):g=e[7];let w;e[8]!==l||e[9]!==r?(w=r&&n.jsx(Je,{children:n.jsx(qt,{lastUrl:l,onOpen:r})}),e[8]=l,e[9]=r,e[10]=w):w=e[10];let v;return e[11]!==g||e[12]!==w?(v=n.jsxs(Ge,{className:"size-full",children:[g,w]}),e[11]=g,e[12]=w,e[13]=v):v=e[13],v}function Nt(s){const e=Ce.c(5),{onOpen:t}=s;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=n.jsxs(Xe,{children:[n.jsx(Ve,{variant:"icon",children:n.jsx(Gt,{})}),n.jsx(qe,{children:"Your agents’ browsers show up here"}),n.jsx(ze,{children:"When an agent in one of your sessions opens a web page, you can watch it here and take over. Other sessions you can access show their browsers too."})]}),e[0]=l):l=e[0];let r;e[1]!==t?(r=t&&n.jsx(Je,{children:n.jsx(qt,{lastUrl:null,onOpen:t})}),e[1]=t,e[2]=r):r=e[2];let i;return e[3]!==r?(i=n.jsxs(Ge,{className:"size-full",children:[l,r]}),e[3]=r,e[4]=i):i=e[4],i}function qt(s){const e=Ce.c(14),{lastUrl:t,onOpen:l}=s,[r,i]=a.useState(null),o=r??t??"";let f;e[0]!==l||e[1]!==o?(f=function(O){O.preventDefault();const m=o.trim();m&&l(m)},e[0]=l,e[1]=o,e[2]=f):f=e[2];const c=f;let g;e[3]===Symbol.for("react.memo_cache_sentinel")?(g=k=>i(k.target.value),e[3]=g):g=e[3];let w;e[4]!==o?(w=n.jsx(He,{"aria-label":"Page to open",className:"h-8 text-sm",placeholder:"example.com",spellCheck:!1,autoComplete:"off",value:o,onChange:g}),e[4]=o,e[5]=w):w=e[5];let v;e[6]!==o?(v=o.trim(),e[6]=o,e[7]=v):v=e[7];const b=!v;let j;e[8]!==b?(j=n.jsx(re,{type:"submit",size:"sm",disabled:b,children:"Open"}),e[8]=b,e[9]=j):j=e[9];let y;return e[10]!==c||e[11]!==w||e[12]!==j?(y=n.jsxs("form",{className:"flex w-full items-center gap-2",onSubmit:c,children:[w,j]}),e[10]=c,e[11]=w,e[12]=j,e[13]=y):y=e[13],y}function ts({message:s,onRetry:e}){const[t,l]=a.useState(!1);async function r(){l(!0);try{await e()}finally{l(!1)}}return n.jsxs(Ge,{className:"size-full",children:[n.jsxs(Xe,{children:[n.jsx(Ve,{variant:"icon",children:n.jsx(dt,{})}),n.jsx(qe,{children:"Could not load the browsers"}),n.jsx(ze,{children:s})]}),n.jsx(Je,{children:n.jsxs(re,{variant:"outline",size:"sm",disabled:t,onClick:()=>void r(),children:[t&&n.jsx(ct,{"data-icon":"inline-start"}),"Retry"]})})]})}function Et(s){if(s.url==="about:blank"&&(!s.title.trim()||s.title==="about:blank"))return"New tab";if(s.title.trim())return s.title.trim();try{return new URL(s.url).hostname||s.url}catch{return s.url}}const ns={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 ss(s){const e=Ce.c(17),{status:t}=s,l=ns[t];let r;e[0]!==l.tone?(r=Ae("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]=r):r=e[1];let i;e[2]!==r?(i=n.jsx("span",{className:r}),e[2]=r,e[3]=i):i=e[3];let o;e[4]!==l.dot?(o=Ae("size-1.5 rounded-full",l.dot),e[4]=l.dot,e[5]=o):o=e[5];let f;e[6]!==o?(f=n.jsx("span",{"aria-hidden":"true",className:o}),e[6]=o,e[7]=f):f=e[7];let c;e[8]!==l.label||e[9]!==i||e[10]!==f?(c=n.jsxs(Lt,{render:i,children:[f,l.label]}),e[8]=l.label,e[9]=i,e[10]=f,e[11]=c):c=e[11];let g;e[12]!==l.hint?(g=n.jsx(Ft,{children:l.hint}),e[12]=l.hint,e[13]=g):g=e[13];let w;return e[14]!==c||e[15]!==g?(w=n.jsxs(Pt,{children:[c,g]}),e[14]=c,e[15]=g,e[16]=w):w=e[16],w}const ls=a.memo(function(e){const t=Ce.c(56),{page:l,tabs:r,followed:i,status:o,readOnly:f,onNavigate:c,onBack:g,onForward:w,onReload:v,onAnnotate:b,onFollow:j,onCloseTab:y}=e,k=f===void 0?!1:f,[O,m]=a.useState(null),d=(l==null?void 0:l.url)??"";let x;t[0]!==O||t[1]!==d||t[2]!==c||t[3]!==k?(x=function(se){if(se.preventDefault(),k)return;const de=(O??d).trim();m(null),de&&c(de)},t[0]=O,t[1]=d,t[2]=c,t[3]=k,t[4]=x):x=t[4];const h=x;let p;t[5]===Symbol.for("react.memo_cache_sentinel")?(p=function(se){se.key==="Escape"&&(se.preventDefault(),m(null),se.currentTarget.blur())},t[5]=p):p=t[5];const C=p,T=k||!(l!=null&&l.canGoBack);let X;t[6]===Symbol.for("react.memo_cache_sentinel")?(X=n.jsx(Xt,{"data-icon":"inline-start"}),t[6]=X):X=t[6];let S;t[7]!==g||t[8]!==T?(S=n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":"Back",disabled:T,onClick:g,children:X}),t[7]=g,t[8]=T,t[9]=S):S=t[9];const J=k||!(l!=null&&l.canGoForward);let $;t[10]===Symbol.for("react.memo_cache_sentinel")?($=n.jsx(En,{"data-icon":"inline-start"}),t[10]=$):$=t[10];let R;t[11]!==w||t[12]!==J?(R=n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":"Forward",disabled:J,onClick:w,children:$}),t[11]=w,t[12]=J,t[13]=R):R=t[13];const M=k||!l;let L;t[14]===Symbol.for("react.memo_cache_sentinel")?(L=n.jsx(Tn,{"data-icon":"inline-start"}),t[14]=L):L=t[14];let N;t[15]!==v||t[16]!==M?(N=n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":"Reload",disabled:M,onClick:v,children:L}),t[15]=v,t[16]=M,t[17]=N):N=t[17];const F=O??d;let D;t[18]===Symbol.for("react.memo_cache_sentinel")?(D=Z=>m(Z.target.value),t[18]=D):D=t[18];let B;t[19]===Symbol.for("react.memo_cache_sentinel")?(B=()=>m(null),t[19]=B):B=t[19];let P;t[20]!==k||t[21]!==F?(P=n.jsx(en,{"aria-label":"Page URL",className:"text-xs",placeholder:"Enter a URL",spellCheck:!1,autoComplete:"off",readOnly:k,value:F,onChange:D,onFocus:rs,onBlur:B,onKeyDown:C}),t[20]=k,t[21]=F,t[22]=P):P=t[22];const U=!d;let ne;t[23]!==d?(ne=()=>window.open(d,"_blank","noopener,noreferrer"),t[23]=d,t[24]=ne):ne=t[24];let V;t[25]===Symbol.for("react.memo_cache_sentinel")?(V=n.jsx(Dn,{"data-icon":"inline-start"}),t[25]=V):V=t[25];let Q;t[26]!==U||t[27]!==ne?(Q=n.jsx(tn,{align:"inline-end",children:n.jsx(nn,{size:"icon-xs","aria-label":"Open in your browser",disabled:U,onClick:ne,children:V})}),t[26]=U,t[27]=ne,t[28]=Q):Q=t[28];let H;t[29]!==P||t[30]!==Q?(H=n.jsxs(sn,{className:"h-7",children:[P,Q]}),t[29]=P,t[30]=Q,t[31]=H):H=t[31];let q;t[32]!==h||t[33]!==H?(q=n.jsx("form",{className:"ml-1 min-w-0 flex-1",onSubmit:h,children:H}),t[32]=h,t[33]=H,t[34]=q):q=t[34];let _;t[35]!==b||t[36]!==l?(_=b&&n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":"Annotate this frame for the message",title:"Annotate for the message",disabled:!l,onClick:b,children:n.jsx(_n,{"data-icon":"inline-start"})}),t[35]=b,t[36]=l,t[37]=_):_=t[37];let E;t[38]!==o?(E=o&&n.jsx(ss,{status:o}),t[38]=o,t[39]=E):E=t[39];let te;t[40]!==N||t[41]!==q||t[42]!==_||t[43]!==E||t[44]!==S||t[45]!==R?(te=n.jsxs("div",{className:"flex items-center gap-0.5",children:[S,R,N,q,_,E]}),t[40]=N,t[41]=q,t[42]=_,t[43]=E,t[44]=S,t[45]=R,t[46]=te):te=t[46];let K;t[47]!==i||t[48]!==y||t[49]!==j||t[50]!==k||t[51]!==r?(K=r.length>0&&n.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-0.5",children:r.map(Z=>n.jsxs("div",{className:Ae("flex max-w-48 shrink-0 items-center rounded-md",Z.targetId===i&&"bg-secondary"),children:[n.jsx(re,{size:"xs",variant:"ghost",className:Ae("min-w-0 shrink",!k&&"rounded-r-none"),"aria-current":Z.targetId===i?"page":void 0,title:Z.title||Z.url,onClick:()=>j(Z.targetId),onMouseDown:as,onAuxClick:se=>{se.button!==1||k||(se.preventDefault(),y(Z.targetId))},children:n.jsx("span",{className:"truncate",children:Et(Z)})}),!k&&n.jsx(re,{size:"icon-xs",variant:"ghost",className:"rounded-l-none","aria-label":`Close tab: ${Et(Z)}`,title:"Close tab",onClick:()=>y(Z.targetId),children:n.jsx(Ze,{"data-icon":"inline-start"})})]},Z.targetId))}),t[47]=i,t[48]=y,t[49]=j,t[50]=k,t[51]=r,t[52]=K):K=t[52];let ae;return t[53]!==te||t[54]!==K?(ae=n.jsxs("div",{className:"flex shrink-0 flex-col gap-1 border-b px-2 py-1.5",children:[te,K]}),t[53]=te,t[54]=K,t[55]=ae):ae=t[55],ae});function rs(s){return s.target.select()}function as(s){s.button===1&&s.preventDefault()}function is(s){var e;return((e=s.find(t=>t.mine))==null?void 0:e.name)??ut}function We(s){return(s==null?void 0:s.control)??"own"}function os(s){return We(s)!=="watch"}function Ye(s,e){return s!=null&&s.mine?"Your browser":s!=null&&s.account?`${s.account}'s browser`:e}function cs(s,e,t){if(s!==ut||t===null)return s;const l=e.find(r=>(r.mine||r.account)&&r.driverSessionId===t);return(l==null?void 0:l.name)??s}function us(s){if(!s||!Number.isFinite(Date.parse(s)))return null;if(Date.now()-Date.parse(s)>=10080*60*1e3)return new Date(s).toLocaleDateString();const e=ln(s);return e==="now"?"just now":`${e} ago`}function Jt(s){const e=Ce.c(4),{running:t}=s,l=t?"bg-emerald-500":"ring-1 ring-muted-foreground/50 ring-inset";let r;e[0]!==l?(r=Ae("size-2 shrink-0 rounded-full",l),e[0]=l,e[1]=r):r=e[1];let i;return e[2]!==r?(i=n.jsx("span",{"aria-hidden":!0,className:r}),e[2]=r,e[3]=i):i=e[3],i}function ds(s){const e=Ce.c(89),{sessions:t,selected:l,home:r,currentSessionId:i,busy:o,onSelect:f,onSetArchived:c,children:g}=s,[w,v]=a.useState(!1),[b,j]=a.useState(""),[y,k]=a.useState(!1),O=a.useRef(null);let m,d,x,h,p,C,T,X,S,J,$,R,M,L,N,F,D;if(e[0]!==o||e[1]!==i||e[2]!==r||e[3]!==f||e[4]!==c||e[5]!==w||e[6]!==b||e[7]!==l||e[8]!==t||e[9]!==y){let E;e[27]!==l?(E=z=>z.name===l,e[27]=l,e[28]=E):E=e[28];const te=t.find(E),K=b.trim().toLowerCase();let ae;e[29]!==r||e[30]!==l?(ae=z=>!!z.archived&&!z.isDefault&&z.name!==r&&!z.running&&z.name!==l,e[29]=r,e[30]=l,e[31]=ae):ae=e[31];const Z=ae,se=z=>`${z.name} ${Ye(z,z.name)} ${z.note??""}`.toLowerCase().includes(K);let de;e[32]!==r?(de=(z,oe)=>+(oe.name===r)-+(z.name===r)||Number(oe.isDefault)-Number(z.isDefault)||Number(oe.running)-Number(z.running),e[32]=r,e[33]=de):de=e[33];const ve=t.filter(z=>!Z(z)&&se(z)).sort(de);x=t.filter(Z);const ge=x.filter(se);D=y&&!K?[]:ve,F=y||K?ge:[];let he;e[34]===Symbol.for("react.memo_cache_sentinel")?(he=function(){v(!1)},e[34]=he):he=e[34],h=he;const pe=async function(oe){oe.archived&&!(await c(oe.name,!1)).ok||(f(oe.name),h())},be=async function(oe){var ke;(await c(oe,!0)).ok&&((ke=O.current)==null||ke.focus())};d=rn,N=w,e[35]===Symbol.for("react.memo_cache_sentinel")?(C=z=>{v(z),z&&(j(""),k(!1))},e[35]=C):C=e[35];let fe;e[36]===Symbol.for("react.memo_cache_sentinel")?(fe=n.jsx(re,{variant:"ghost",size:"xs","aria-label":"Switch browser",className:"max-w-40"}),e[36]=fe):fe=e[36];const le=n.jsx(Jt,{running:(te==null?void 0:te.running)??!1}),W=Ye(te,l);let Y;e[37]!==W?(Y=n.jsx("span",{className:"truncate",children:W}),e[37]=W,e[38]=Y):Y=e[38];let ce;e[39]===Symbol.for("react.memo_cache_sentinel")?(ce=n.jsx(An,{"data-icon":"inline-end",className:"opacity-60"}),e[39]=ce):ce=e[39],e[40]!==le||e[41]!==Y?(T=n.jsxs(an,{render:fe,children:[le,Y,ce]}),e[40]=le,e[41]=Y,e[42]=T):T=e[42],m=on,J="Browsers",$=O,R="flex max-h-[min(32rem,var(--available-height))] w-80 max-w-[calc(100vw-1rem)] flex-col overflow-hidden";const Se=y&&!K?"Archived browsers":"Browsers";let we;e[43]!==Se?(we=n.jsx("span",{className:"text-sm font-medium",children:Se}),e[43]=Se,e[44]=we):we=e[44];let ye;e[45]===Symbol.for("react.memo_cache_sentinel")?(ye=n.jsx(re,{variant:"ghost",size:"icon-xs","aria-label":"Close browser picker",onClick:h,children:n.jsx(Ze,{"data-icon":"inline-start"})}),e[45]=ye):ye=e[45];let me;e[46]!==we?(me=n.jsxs("div",{className:"flex items-center justify-between pl-1",children:[we,ye]}),e[46]=we,e[47]=me):me=e[47];let je;e[48]===Symbol.for("react.memo_cache_sentinel")?(je=z=>j(z.target.value),e[48]=je):je=e[48];let ie;e[49]!==b?(ie=n.jsx(He,{ref:O,"aria-label":"Search browsers",placeholder:"Search browsers…",value:b,onChange:je}),e[49]=b,e[50]=ie):ie=e[50],e[51]!==me||e[52]!==ie?(M=n.jsxs("div",{className:"flex shrink-0 flex-col gap-2 p-2",children:[me,ie]}),e[51]=me,e[52]=ie,e[53]=M):M=e[53],e[54]===Symbol.for("react.memo_cache_sentinel")?(L=n.jsx(xt,{}),e[54]=L):L=e[54],p="min-h-0 max-h-72 overflow-y-auto overscroll-contain p-1",X="Browser list",S=[{label:"Recent browsers",sessions:D,archived:!1},{label:"Archived browsers",sessions:F,archived:!0}].filter(fs).map(z=>n.jsxs("div",{children:[z.archived&&!!K&&n.jsx("p",{className:"px-2 py-1 text-xs text-muted-foreground",children:"Archived"}),n.jsx("ul",{"aria-label":z.label,children:z.sessions.map(oe=>n.jsx(hs,{session:oe,archived:z.archived,home:r,selected:l,currentSessionId:i,busy:o,onPick:pe,onArchive:be},oe.name))})]},z.label)),e[0]=o,e[1]=i,e[2]=r,e[3]=f,e[4]=c,e[5]=w,e[6]=b,e[7]=l,e[8]=t,e[9]=y,e[10]=m,e[11]=d,e[12]=x,e[13]=h,e[14]=p,e[15]=C,e[16]=T,e[17]=X,e[18]=S,e[19]=J,e[20]=$,e[21]=R,e[22]=M,e[23]=L,e[24]=N,e[25]=F,e[26]=D}else m=e[10],d=e[11],x=e[12],h=e[13],p=e[14],C=e[15],T=e[16],X=e[17],S=e[18],J=e[19],$=e[20],R=e[21],M=e[22],L=e[23],N=e[24],F=e[25],D=e[26];let B;e[55]!==F||e[56]!==D.length?(B=D.length===0&&F.length===0&&n.jsx("p",{role:"status",className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"No browsers found."}),e[55]=F,e[56]=D.length,e[57]=B):B=e[57];let P;e[58]!==p||e[59]!==B||e[60]!==X||e[61]!==S?(P=n.jsxs("div",{className:p,"aria-label":X,children:[S,B]}),e[58]=p,e[59]=B,e[60]=X,e[61]=S,e[62]=P):P=e[62];let U;e[63]===Symbol.for("react.memo_cache_sentinel")?(U=n.jsx(xt,{}),e[63]=U):U=e[63];let ne;e[64]!==x.length||e[65]!==y?(ne=(x.length>0||y)&&n.jsxs(re,{variant:"ghost",size:"sm",className:"w-full justify-start","aria-expanded":y,onClick:()=>{k(!y),j("")},children:[y?n.jsx(Xt,{"data-icon":"inline-start"}):n.jsx(Vt,{"data-icon":"inline-start"}),y?"Back to recent":"Archived",!y&&n.jsx(Ke,{variant:"secondary",children:x.length})]}),e[64]=x.length,e[65]=y,e[66]=ne):ne=e[66];let V;e[67]===Symbol.for("react.memo_cache_sentinel")?(V=n.jsx("p",{className:"px-1 pb-1 text-xs text-muted-foreground",children:"Stopped browsers archive after 24h of inactivity. Saved logins are kept."}),e[67]=V):V=e[67];let Q;e[68]!==g||e[69]!==h?(Q=g(h),e[68]=g,e[69]=h,e[70]=Q):Q=e[70];let H;e[71]!==ne||e[72]!==Q?(H=n.jsxs("div",{className:"flex shrink-0 flex-col gap-1 p-2",children:[ne,V,Q]}),e[71]=ne,e[72]=Q,e[73]=H):H=e[73];let q;e[74]!==m||e[75]!==P||e[76]!==H||e[77]!==J||e[78]!==$||e[79]!==R||e[80]!==M||e[81]!==L?(q=n.jsxs(m,{"aria-label":J,initialFocus:$,className:R,children:[M,L,P,U,H]}),e[74]=m,e[75]=P,e[76]=H,e[77]=J,e[78]=$,e[79]=R,e[80]=M,e[81]=L,e[82]=q):q=e[82];let _;return e[83]!==d||e[84]!==C||e[85]!==T||e[86]!==q||e[87]!==N?(_=n.jsxs(d,{open:N,onOpenChange:C,children:[T,q]}),e[83]=d,e[84]=C,e[85]=T,e[86]=q,e[87]=N,e[88]=_):_=e[88],_}function fs(s){return s.sessions.length>0}function hs(s){const e=Ce.c(53),{session:t,archived:l,home:r,selected:i,currentSessionId:o,busy:f,onPick:c,onArchive:g}=s;let w;e[0]!==t.lastUsedAt?(w=us(t.lastUsedAt),e[0]=t.lastUsedAt,e[1]=w):w=e[1];const v=w;let b;e[2]!==t?(b=Ye(t,t.name),e[2]=t,e[3]=b):b=e[3];const j=b,y=t.running&&t.driverSessionId!==null&&t.driverSessionId!==o,k=t.isDefault?r===t.name?"Default":"Host default":null,O=`${l?"Restore and switch to":"Switch to"} ${j}`,m=t.name===i?"true":void 0;let d;e[4]!==c||e[5]!==t?(d=()=>void c(t),e[4]=c,e[5]=t,e[6]=d):d=e[6];let x;e[7]!==t.running?(x=n.jsx(Jt,{running:t.running}),e[7]=t.running,e[8]=x):x=e[8];let h;e[9]!==j?(h=n.jsx("span",{className:"truncate",children:j}),e[9]=j,e[10]=h):h=e[10];const p=t.running?"running":"stopped";let C;e[11]!==p?(C=n.jsx("span",{className:"sr-only",children:p}),e[11]=p,e[12]=C):C=e[12];let T;e[13]!==k?(T=k&&n.jsx(Ke,{variant:"secondary",children:k}),e[13]=k,e[14]=T):T=e[14];let X;e[15]!==t?(X=We(t)==="watch"&&n.jsx(Ke,{variant:"outline",children:"View only"}),e[15]=t,e[16]=X):X=e[16];let S;e[17]!==v?(S=v&&n.jsx("span",{className:"ml-auto shrink-0 text-xs font-normal text-muted-foreground",children:v}),e[17]=v,e[18]=S):S=e[18];let J;e[19]!==T||e[20]!==X||e[21]!==S||e[22]!==h||e[23]!==C?(J=n.jsxs("span",{className:"flex w-full min-w-0 items-center gap-1.5",children:[h,C,T,X,S]}),e[19]=T,e[20]=X,e[21]=S,e[22]=h,e[23]=C,e[24]=J):J=e[24];let $;e[25]!==y?($=y&&n.jsx("span",{className:"max-w-full truncate text-xs font-normal text-muted-foreground",children:"driven by another session"}),e[25]=y,e[26]=$):$=e[26];let R;e[27]!==J||e[28]!==$?(R=n.jsxs("span",{className:"flex min-w-0 flex-1 flex-col items-start gap-0.5",children:[J,$]}),e[27]=J,e[28]=$,e[29]=R):R=e[29];let M;e[30]!==i||e[31]!==t.name?(M=t.name===i&&n.jsx(ft,{"data-icon":"inline-end"}),e[30]=i,e[31]=t.name,e[32]=M):M=e[32];let L;e[33]!==l?(L=l&&n.jsx(Rn,{"data-icon":"inline-end"}),e[33]=l,e[34]=L):L=e[34];let N;e[35]!==f||e[36]!==R||e[37]!==M||e[38]!==L||e[39]!==O||e[40]!==m||e[41]!==d||e[42]!==x?(N=n.jsxs(re,{variant:"ghost",className:"h-auto min-h-10 min-w-0 flex-1 justify-start px-2 py-2","aria-label":O,"aria-current":m,disabled:f,onClick:d,children:[x,R,M,L]}),e[35]=f,e[36]=R,e[37]=M,e[38]=L,e[39]=O,e[40]=m,e[41]=d,e[42]=x,e[43]=N):N=e[43];let F;e[44]!==l||e[45]!==f||e[46]!==r||e[47]!==g||e[48]!==t?(F=!l&&!t.isDefault&&t.name!==r&&!t.running&&We(t)==="own"&&n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":`Archive ${t.name}`,title:`Archive ${t.name}`,disabled:f,onClick:()=>void g(t.name),children:n.jsx(Vt,{"data-icon":"inline-start"})}),e[44]=l,e[45]=f,e[46]=r,e[47]=g,e[48]=t,e[49]=F):F=e[49];let D;return e[50]!==N||e[51]!==F?(D=n.jsxs("li",{className:"group flex items-center gap-1 rounded-md",children:[N,F]}),e[50]=N,e[51]=F,e[52]=D):D=e[52],D}const ms=/^[a-z0-9][a-z0-9_-]{0,39}$/,xs="Lowercase letters, numbers, - and _, starting with a letter or number (40 max).",gs=a.memo(function(e){const t=Ce.c(112),{sessions:l,selected:r,home:i,currentSessionId:o,followAgent:f,busy:c,onSelect:g,onToggleFollow:w,onOpenSkill:v,onCreate:b,onRemove:j,onStop:y,onSetArchived:k,onShowDefault:O,onClose:m}=e,d=c===void 0?!1:c,x=a.useId(),h=a.useId(),[p,C]=a.useState(!1),[T,X]=a.useState(""),[S,J]=a.useState(""),[$,R]=a.useState(null),[M,L]=a.useState(!1),[N,F]=a.useState(null),D=r===i;let B,P;t[0]!==r||t[1]!==l?(B=l.find(xe=>xe.name===r)??null,P=We(B),t[0]=r,t[1]=l,t[2]=B,t[3]=P):(B=t[2],P=t[3]);const U=P;let ne;if(t[4]!==i||t[5]!==l){let xe;t[7]!==i?(xe=Fe=>Fe.mine&&Fe.name===i,t[7]=i,t[8]=xe):xe=t[8],ne=l.some(xe),t[4]=i,t[5]=l,t[6]=ne}else ne=t[6];const V=ne,Q=!D&&!(B!=null&&B.isDefault)&&U!=="watch",H=!D&&!(B!=null&&B.isDefault)&&U==="own";let q,_;t[9]!==T?(_=T.trim(),q=_.length>0&&!ms.test(_),t[9]=T,t[10]=q,t[11]=_):(q=t[10],_=t[11]);const E=q,te=E?xs:$,K=_.length>0&&!E&&!M;let ae;t[12]===Symbol.for("react.memo_cache_sentinel")?(ae=function(){X(""),J(""),R(null),L(!1),C(!0)},t[12]=ae):ae=t[12];const Z=ae;let se;t[13]!==K||t[14]!==S||t[15]!==b||t[16]!==g||t[17]!==_?(se=async function(){if(!K)return;L(!0);const Fe=await b(_,S.trim());if(L(!1),!Fe.ok){R(Fe.error);return}C(!1),g(_)},t[13]=K,t[14]=S,t[15]=b,t[16]=g,t[17]=_,t[18]=se):se=t[18];const de=se,ve=!D&&"border-amber-500/40 bg-amber-500/10";let ge;t[19]!==ve?(ge=Ae("@container/browser-bar flex h-10 shrink-0 items-center gap-2 border-b px-2",ve),t[19]=ve,t[20]=ge):ge=t[20];let he;t[21]!==d||t[22]!==H||t[23]!==Q||t[24]!==v||t[25]!==y||t[26]!==r||t[27]!==(B==null?void 0:B.running)?(he=xe=>n.jsxs(n.Fragment,{children:[n.jsxs(re,{variant:"outline",size:"sm",disabled:d,onClick:()=>{xe(),Z()},children:[n.jsx(In,{"data-icon":"inline-start"}),"New browser…"]}),n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsxs(re,{variant:"ghost",size:"xs",onClick:()=>{xe(),v()},children:[n.jsx(ht,{"data-icon":"inline-start"}),"Agent skill…"]}),Q&&n.jsxs(re,{variant:"ghost",size:"xs",disabled:d||!(B!=null&&B.running),onClick:()=>{xe(),y(r)},children:[n.jsx(On,{"data-icon":"inline-start"}),"Stop"]}),H&&n.jsxs(re,{variant:"ghost",size:"xs",disabled:d,onClick:()=>{xe(),F(r)},children:[n.jsx(jt,{"data-icon":"inline-start"}),"Delete…"]})]})]}),t[21]=d,t[22]=H,t[23]=Q,t[24]=v,t[25]=y,t[26]=r,t[27]=B==null?void 0:B.running,t[28]=he):he=t[28];let pe;t[29]!==d||t[30]!==o||t[31]!==i||t[32]!==g||t[33]!==k||t[34]!==r||t[35]!==l||t[36]!==he?(pe=n.jsx(ds,{sessions:l,selected:r,home:i,currentSessionId:o,busy:d,onSelect:g,onSetArchived:k,children:he}),t[29]=d,t[30]=o,t[31]=i,t[32]=g,t[33]=k,t[34]=r,t[35]=l,t[36]=he,t[37]=pe):pe=t[37];let be;t[38]===Symbol.for("react.memo_cache_sentinel")?(be=n.jsx("span",{className:"flex-1"}),t[38]=be):be=t[38];let fe;t[39]!==U?(fe=U==="watch"&&n.jsxs(Ke,{variant:"outline",title:"Only someone who can interact with the session driving it can use it",children:[n.jsx(Mn,{"data-icon":"inline-start"}),"View only"]}),t[39]=U,t[40]=fe):fe=t[40];let le;t[41]!==V||t[42]!==D||t[43]!==O?(le=!D&&n.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[n.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:[n.jsx(dt,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),n.jsx("span",{className:"sr-only @sm/browser-bar:not-sr-only @sm/browser-bar:whitespace-nowrap",children:V?"Not your browser":"Not the default browser"})]}),n.jsx(re,{variant:"outline",size:"xs",onClick:O,children:V?"Show yours":"Show default"})]}),t[41]=V,t[42]=D,t[43]=O,t[44]=le):le=t[44];let W;t[45]!==w?(W=xe=>w(xe),t[45]=w,t[46]=W):W=t[46];let Y;t[47]!==f||t[48]!==W?(Y=n.jsx(cn,{size:"sm","aria-label":"Follow agent",pressed:f,onPressedChange:W,className:"text-muted-foreground data-pressed:text-foreground"}),t[47]=f,t[48]=W,t[49]=Y):Y=t[49];let ce,Se;t[50]===Symbol.for("react.memo_cache_sentinel")?(ce=n.jsx(Bn,{"data-icon":"inline-start"}),Se=n.jsx("span",{className:"hidden @md/browser-bar:inline",children:"Follow"}),t[50]=ce,t[51]=Se):(ce=t[50],Se=t[51]);let we;t[52]!==Y?(we=n.jsxs(Lt,{render:Y,children:[ce,Se]}),t[52]=Y,t[53]=we):we=t[53];let ye;t[54]===Symbol.for("react.memo_cache_sentinel")?(ye=n.jsx(Ft,{children:"Switch to whichever browser this session’s agent uses"}),t[54]=ye):ye=t[54];let me;t[55]!==we?(me=n.jsxs(Pt,{children:[we,ye]}),t[55]=we,t[56]=me):me=t[56];let je;t[57]===Symbol.for("react.memo_cache_sentinel")?(je=n.jsx(Ze,{"data-icon":"inline-start"}),t[57]=je):je=t[57];let ie;t[58]!==m?(ie=n.jsx(re,{variant:"ghost",size:"icon-sm","aria-label":"Close browser panel",onClick:m,children:je}),t[58]=m,t[59]=ie):ie=t[59];let z;t[60]!==de?(z=xe=>{xe.preventDefault(),de()},t[60]=de,t[61]=z):z=t[61];let oe;t[62]===Symbol.for("react.memo_cache_sentinel")?(oe=n.jsxs(zt,{children:[n.jsx($t,{children:"New browser"}),n.jsx(Ut,{children:"A named browser keeps its own cookies and logins, and stays out of the default one."})]}),t[62]=oe):oe=t[62];const Ee=!!te;let ke;t[63]!==x?(ke=n.jsx(gt,{htmlFor:x,children:"Name"}),t[63]=x,t[64]=ke):ke=t[64];const Te=!!te;let G;t[65]===Symbol.for("react.memo_cache_sentinel")?(G=xe=>{X(xe.target.value),R(null)},t[65]=G):G=t[65];let u;t[66]!==x||t[67]!==T||t[68]!==Te?(u=n.jsx(He,{id:x,autoFocus:!0,autoComplete:"off",spellCheck:!1,placeholder:"shop","aria-invalid":Te,value:T,onChange:G}),t[66]=x,t[67]=T,t[68]=Te,t[69]=u):u=t[69];let A;t[70]!==te?(A=n.jsx(un,{children:te}),t[70]=te,t[71]=A):A=t[71];let ee;t[72]!==Ee||t[73]!==ke||t[74]!==u||t[75]!==A?(ee=n.jsxs(pt,{"data-invalid":Ee,children:[ke,u,A]}),t[72]=Ee,t[73]=ke,t[74]=u,t[75]=A,t[76]=ee):ee=t[76];let I;t[77]===Symbol.for("react.memo_cache_sentinel")?(I=n.jsx("span",{className:"text-muted-foreground/60",children:"(optional)"}),t[77]=I):I=t[77];let ue;t[78]!==h?(ue=n.jsxs(gt,{htmlFor:h,children:["Note ",I]}),t[78]=h,t[79]=ue):ue=t[79];let Ne;t[80]===Symbol.for("react.memo_cache_sentinel")?(Ne=xe=>J(xe.target.value),t[80]=Ne):Ne=t[80];let De;t[81]!==S||t[82]!==h?(De=n.jsx(He,{id:h,autoComplete:"off",placeholder:"What this browser is signed in to",value:S,onChange:Ne}),t[81]=S,t[82]=h,t[83]=De):De=t[83];let _e;t[84]!==ue||t[85]!==De?(_e=n.jsxs(pt,{children:[ue,De]}),t[84]=ue,t[85]=De,t[86]=_e):_e=t[86];let Ie;t[87]!==ee||t[88]!==_e?(Ie=n.jsxs(dn,{className:"gap-4",children:[ee,_e]}),t[87]=ee,t[88]=_e,t[89]=Ie):Ie=t[89];let $e;t[90]===Symbol.for("react.memo_cache_sentinel")?($e=n.jsx(Ht,{render:n.jsx(re,{type:"button",variant:"outline"}),children:"Cancel"}),t[90]=$e):$e=t[90];const Qe=!K;let Oe;t[91]!==Qe?(Oe=n.jsxs(Kt,{children:[$e,n.jsx(re,{type:"submit",disabled:Qe,children:"Create browser"})]}),t[91]=Qe,t[92]=Oe):Oe=t[92];let Me;t[93]!==z||t[94]!==Ie||t[95]!==Oe?(Me=n.jsx(Wt,{className:"sm:max-w-sm",children:n.jsxs("form",{className:"flex flex-col gap-4",onSubmit:z,children:[oe,Ie,Oe]})}),t[93]=z,t[94]=Ie,t[95]=Oe,t[96]=Me):Me=t[96];let Be;t[97]!==p||t[98]!==Me?(Be=n.jsx(Yt,{open:p,onOpenChange:C,children:Me}),t[97]=p,t[98]=Me,t[99]=Be):Be=t[99];let Le;t[100]!==N||t[101]!==j?(Le=N!==null&&n.jsx(fn,{open:!0,onOpenChange:xe=>{xe||F(null)},children:n.jsxs(hn,{size:"sm",children:[n.jsxs(mn,{children:[n.jsx(xn,{className:"bg-destructive/10 text-destructive",children:n.jsx(jt,{})}),n.jsxs(gn,{children:["Delete ",N,"?"]}),n.jsx(pn,{children:"Its profile goes with it, so everything signed in there is signed out. Other browsers are untouched."})]}),n.jsxs(wn,{children:[n.jsx(bn,{size:"sm",children:"Cancel"}),n.jsx(yn,{variant:"destructive",size:"sm",onClick:()=>{j(N),F(null)},children:"Delete browser"})]})]})}),t[100]=N,t[101]=j,t[102]=Le):Le=t[102];let Ue;return t[103]!==pe||t[104]!==fe||t[105]!==le||t[106]!==me||t[107]!==ie||t[108]!==Be||t[109]!==Le||t[110]!==ge?(Ue=n.jsxs("div",{className:ge,children:[pe,be,fe,le,me,ie,Be,Le]}),t[103]=pe,t[104]=fe,t[105]=le,t[106]=me,t[107]=ie,t[108]=Be,t[109]=Le,t[110]=ge,t[111]=Ue):Ue=t[111],Ue});function ps(s){const e=Ce.c(36),{open:t,onOpenChange:l,readTargets:r,install:i}=s,[o,f]=a.useState(null),[c,g]=a.useState(null),[w,v]=a.useState(null);let b;e[0]!==r?(b=async()=>{const F=await r();F.ok?(f(F.targets),g(null)):g(F.error)},e[0]=r,e[1]=b):b=e[1];const j=b;let y,k;e[2]!==j||e[3]!==t?(y=()=>{t&&(g(null),j())},k=[t,j],e[2]=j,e[3]=t,e[4]=y,e[5]=k):(y=e[4],k=e[5]),a.useEffect(y,k);let O;e[6]!==i||e[7]!==j?(O=async function(D){v(D);const B=await i(D);v(null),B.ok?await j():g(B.error)},e[6]=i,e[7]=j,e[8]=O):O=e[8];const m=O;let d;e[9]!==o?(d=(o==null?void 0:o.some(ws))??!1,e[9]=o,e[10]=d):d=e[10];const x=d;let h;e[11]===Symbol.for("react.memo_cache_sentinel")?(h=n.jsx($t,{children:"Agent skill"}),e[11]=h):h=e[11];let p;e[12]===Symbol.for("react.memo_cache_sentinel")?(p=n.jsxs(zt,{children:[h,n.jsxs(Ut,{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"," ",n.jsx("code",{className:"font-mono",children:"SKILL.md"})," into that CLI’s configuration directory in your home folder."]})]}),e[12]=p):p=e[12];let C;e[13]!==c?(C=c&&n.jsx("p",{role:"alert",className:"text-sm text-destructive",children:c}),e[13]=c,e[14]=C):C=e[14];let T;e[15]!==w||e[16]!==m||e[17]!==o?(T=o===null?n.jsxs("div",{role:"status",className:"flex items-center gap-2 py-4 text-sm text-muted-foreground",children:[n.jsx(ct,{}),"Reading where it is installed…"]}):n.jsx("ul",{className:"flex flex-col gap-2",children:o.map(F=>n.jsxs("li",{className:"flex items-center gap-3 rounded-md border p-2.5",children:[n.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[n.jsx("span",{className:"truncate text-sm font-medium",children:F.label}),n.jsx("span",{className:"truncate font-mono text-xs text-muted-foreground",children:F.configRoot}),F.automatic&&n.jsx("span",{className:"truncate text-xs text-muted-foreground",children:"Already automatic in the sessions Cogpit starts"})]}),F.installed?n.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[n.jsx(ft,{"aria-hidden":!0,className:"size-3.5 text-emerald-500"}),"Installed"]}):n.jsx(re,{size:"xs",variant:"outline","aria-label":`Install for ${F.label}`,disabled:w!==null,onClick:()=>void m(F.kind),children:"Install"})]},F.kind))}),e[15]=w,e[16]=m,e[17]=o,e[18]=T):T=e[18];const X=!x||w!==null;let S;e[19]!==m?(S=()=>void m(Fn),e[19]=m,e[20]=S):S=e[20];let J;e[21]===Symbol.for("react.memo_cache_sentinel")?(J=n.jsx(ht,{"data-icon":"inline-start"}),e[21]=J):J=e[21];let $;e[22]!==X||e[23]!==S?($=n.jsxs(re,{variant:"outline",disabled:X,onClick:S,children:[J,"Install for all"]}),e[22]=X,e[23]=S,e[24]=$):$=e[24];let R;e[25]===Symbol.for("react.memo_cache_sentinel")?(R=n.jsx(Ht,{render:n.jsx(re,{type:"button"}),children:"Done"}),e[25]=R):R=e[25];let M;e[26]!==$?(M=n.jsxs(Kt,{children:[$,R]}),e[26]=$,e[27]=M):M=e[27];let L;e[28]!==M||e[29]!==C||e[30]!==T?(L=n.jsxs(Wt,{className:"sm:max-w-md",children:[p,C,T,M]}),e[28]=M,e[29]=C,e[30]=T,e[31]=L):L=e[31];let N;return e[32]!==l||e[33]!==t||e[34]!==L?(N=n.jsx(Yt,{open:t,onOpenChange:l,children:L}),e[32]=l,e[33]=t,e[34]=L,e[35]=N):N=e[35],N}function ws(s){return!s.installed}const bs={x:0,y:0,width:0,height:0,scale:0};function Zt(s,e){if(s.width<=0||s.height<=0||e.width<=0||e.height<=0)return bs;const t=Math.min(1,s.width/e.width,s.height/e.height),l=e.width*t,r=e.height*t;return{x:Math.round((s.width-l)/2),y:Math.round((s.height-r)/2),width:l,height:r,scale:t}}function ot(s,e,t,l,r={}){if(l.scale<=0||l.width<=0||l.height<=0)return null;const i=s-t.left-l.x,o=e-t.top-l.y;return!(i>=0&&o>=0&&i<=l.width&&o<=l.height)&&!r.clamp?null:{x:Tt(i/l.scale,l.width/l.scale),y:Tt(o/l.scale,l.height/l.scale)}}function Tt(s,e){return Math.min(Math.max(s,0),e)}const ys=1,js=2,vs=4,Ss=8;function Re(s){return(s.altKey?ys:0)|(s.ctrlKey?js:0)|(s.metaKey?vs:0)|(s.shiftKey?Ss:0)}const ks=["left","middle","right"];function Dt(s){return ks[s]??"left"}const Cs=150,_t=2,Ns=500,At=5,Es=1,Ts=2,Ds=16,_s="Keyboard captured · Esc to release",As=new Set(["F5","F11","F12"]),Rs=new Set(["i","j","c"]);function Rt(s){return As.has(s.key)||s.metaKey?!0:s.ctrlKey&&s.shiftKey&&Rs.has(s.key.toLowerCase())}function Is(s){if(!(s.ctrlKey||s.metaKey))return s.key.length===1?s.key:s.key==="Enter"?"\r":void 0}function It(s,e,t){return e===Es?s*Ds:e===Ts?s*t:s}function Os(s,e,t){try{s.drawImage(e,t.x,t.y,t.width,t.height)}catch{}}function Ms(s){const e=Ce.c(82),{frame:t,send:l,onSizeChange:r,readOnly:i,className:o}=s,f=i===void 0?!1:i,c=a.useRef(null),g=a.useRef(null),w=a.useRef(null),v=a.useRef(null),b=a.useRef(!1);let j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j={count:0,at:0,x:0,y:0,button:-1},e[0]=j):j=e[0];const y=a.useRef(j);let k;e[1]===Symbol.for("react.memo_cache_sentinel")?(k=new Map,e[1]=k):k=e[1];const O=a.useRef(k);let m;e[2]===Symbol.for("react.memo_cache_sentinel")?(m={width:0,height:0,dpr:1},e[2]=m):m=e[2];const[d,x]=a.useState(m),[h,p]=a.useState(!1),C=t?t.header.deviceWidth:0,T=t?t.header.deviceHeight:0;let X;e[3]!==T||e[4]!==C||e[5]!==d?(X=Zt(d,{width:C,height:T}),e[3]=T,e[4]=C,e[5]=d,e[6]=X):X=e[6];const S=X,J=a.useRef(r);let $,R;e[7]!==r?($=()=>{J.current=r},R=[r],e[7]=r,e[8]=$,e[9]=R):($=e[8],R=e[9]),a.useEffect($,R);let M,L;e[10]===Symbol.for("react.memo_cache_sentinel")?(M=()=>{const G=c.current;if(!G)return;let u=null;const A=()=>{const I=G.getBoundingClientRect(),ue=Math.round(I.width),Ne=Math.round(I.height),De=window.devicePixelRatio||1;x(_e=>_e.width===ue&&_e.height===Ne&&_e.dpr===De?_e:{width:ue,height:Ne,dpr:De}),u&&clearTimeout(u),u=setTimeout(()=>{u=null,ue>0&&Ne>0&&J.current(ue,Ne,De)},Cs)};A();const ee=new ResizeObserver(A);return ee.observe(G),()=>{ee.disconnect(),u&&clearTimeout(u)}},L=[],e[10]=M,e[11]=L):(M=e[10],L=e[11]),a.useEffect(M,L);let N,F;e[12]!==S||e[13]!==t||e[14]!==d?(N=()=>{const G=g.current,u=G==null?void 0:G.getContext("2d");if(!G||!u)return;const A=Math.round(d.width*d.dpr),ee=Math.round(d.height*d.dpr);G.width!==A&&(G.width=A),G.height!==ee&&(G.height=ee),u.setTransform(d.dpr,0,0,d.dpr,0,0),u.clearRect(0,0,d.width,d.height),!(!t||S.width<=0||S.height<=0)&&Os(u,t.bitmap,S)},F=[t,S,d],e[12]=S,e[13]=t,e[14]=d,e[15]=N,e[16]=F):(N=e[15],F=e[16]),a.useEffect(N,F);let D,B;e[17]!==t?(D=()=>()=>it(t),B=[t],e[17]=t,e[18]=D,e[19]=B):(D=e[18],B=e[19]),a.useEffect(D,B);let P;e[20]!==S?(P=function(u,A,ee){const I=g.current;return I?ot(u,A,I.getBoundingClientRect(),S,{clamp:ee}):null},e[20]=S,e[21]=P):P=e[21];const U=P;let ne;e[22]!==l?(ne=function(u,A,ee,I,ue){l({type:"mouse",event:u,x:A.x,y:A.y,button:ee,clickCount:I,modifiers:ue})},e[22]=l,e[23]=ne):ne=e[23];const V=ne;let Q;e[24]===Symbol.for("react.memo_cache_sentinel")?(Q=function(u){const A=y.current,ee=Date.now(),I=u.button===A.button&&ee-A.at<Ns&&Math.abs(u.clientX-A.x)<=At&&Math.abs(u.clientY-A.y)<=At;return y.current={count:I?A.count+1:1,at:ee,x:u.clientX,y:u.clientY,button:u.button},y.current.count},e[24]=Q):Q=e[24];const H=Q;let q;e[25]!==U||e[26]!==V?(q=function(){const u=w.current;if(w.current=null,!u)return;const A=U(u.clientX,u.clientY,b.current);A&&V("move",A,"none",0,u.modifiers)},e[25]=U,e[26]=V,e[27]=q):q=e[27];const _=q;let E;e[28]!==_?(E=function(){v.current!==null&&(cancelAnimationFrame(v.current),v.current=null),_()},e[28]=_,e[29]=E):E=e[29];const te=E;let K;e[30]!==U||e[31]!==V?(K=function(u){if(u.currentTarget.focus(),u.button===_t)return;const A=U(u.clientX,u.clientY,!1);A&&(u.currentTarget.setPointerCapture(u.pointerId),b.current=!0,V("down",A,Dt(u.button),H(u),Re(u)))},e[30]=U,e[31]=V,e[32]=K):K=e[32];const ae=K;let Z;e[33]!==_?(Z=function(u){w.current={clientX:u.clientX,clientY:u.clientY,modifiers:Re(u)},v.current===null&&(v.current=requestAnimationFrame(()=>{v.current=null,_()}))},e[33]=_,e[34]=Z):Z=e[34];const se=Z;let de;e[35]!==te||e[36]!==U||e[37]!==V?(de=function(u){te();const A=b.current;if(b.current=!1,u.currentTarget.hasPointerCapture(u.pointerId)&&u.currentTarget.releasePointerCapture(u.pointerId),u.button===_t)return;const ee=U(u.clientX,u.clientY,A);ee&&V("up",ee,Dt(u.button),y.current.count,Re(u))},e[35]=te,e[36]=U,e[37]=V,e[38]=de):de=e[38];const ve=de;let ge;e[39]!==U||e[40]!==V?(ge=function(u){u.preventDefault();const A=U(u.clientX,u.clientY,!1);if(!A)return;const ee=Re(u);V("down",A,"right",1,ee),V("up",A,"right",1,ee)},e[39]=U,e[40]=V,e[41]=ge):ge=e[41];const he=ge;let pe;e[42]!==l?(pe=function(u){if(u.key==="Escape"){u.currentTarget.blur();return}Rt(u)||u.preventDefault();const A={type:"key",event:"down",key:u.key,code:u.code,modifiers:Re(u)},ee=Is(u);ee!==void 0&&(A.text=ee),O.current.set(u.code,u.key),l(A)},e[42]=l,e[43]=pe):pe=e[43];const be=pe;let fe;e[44]!==l?(fe=function(u){u.key!=="Escape"&&(Rt(u)||u.preventDefault(),O.current.delete(u.code),l({type:"key",event:"up",key:u.key,code:u.code,modifiers:Re(u)}))},e[44]=l,e[45]=fe):fe=e[45];const le=fe;let W,Y;e[46]!==T||e[47]!==C||e[48]!==S||e[49]!==f||e[50]!==l?(W=()=>{const G=g.current;if(!G||f)return;const u=A=>{A.preventDefault();const ee=ot(A.clientX,A.clientY,G.getBoundingClientRect(),S);ee&&l({type:"wheel",x:ee.x,y:ee.y,deltaX:It(A.deltaX,A.deltaMode,C),deltaY:It(A.deltaY,A.deltaMode,T),modifiers:Re(A)})};return G.addEventListener("wheel",u,{passive:!1}),()=>G.removeEventListener("wheel",u)},Y=[l,S,C,T,f],e[46]=T,e[47]=C,e[48]=S,e[49]=f,e[50]=l,e[51]=W,e[52]=Y):(W=e[51],Y=e[52]),a.useEffect(W,Y);let ce,Se;e[53]!==h||e[54]!==l?(ce=()=>{if(!h)return;const G=u=>{var ee;const A=(ee=u.clipboardData)==null?void 0:ee.getData("text/plain");A&&(u.preventDefault(),l({type:"paste",text:A}))};return document.addEventListener("paste",G),()=>document.removeEventListener("paste",G)},Se=[h,l],e[53]=h,e[54]=l,e[55]=ce,e[56]=Se):(ce=e[55],Se=e[56]),a.useEffect(ce,Se);let we,ye;e[57]===Symbol.for("react.memo_cache_sentinel")?(we=()=>()=>{v.current!==null&&cancelAnimationFrame(v.current)},ye=[],e[57]=we,e[58]=ye):(we=e[57],ye=e[58]),a.useEffect(we,ye);let me;e[59]!==l?(me=()=>{for(const[G,u]of O.current)l({type:"key",event:"up",key:u,code:G,modifiers:0});O.current.clear()},e[59]=l,e[60]=me):me=e[60];const je=me;let ie,z;e[61]!==je?(ie=()=>je,z=[je],e[61]=je,e[62]=ie,e[63]=z):(ie=e[62],z=e[63]),a.useEffect(ie,z);let oe;e[64]!==o?(oe=Ae("relative min-h-0 min-w-0 overflow-hidden bg-muted/30",o),e[64]=o,e[65]=oe):oe=e[65];let Ee;e[66]!==h||e[67]!==he||e[68]!==be||e[69]!==le||e[70]!==ae||e[71]!==se||e[72]!==ve||e[73]!==f||e[74]!==je?(Ee=f?n.jsx("canvas",{ref:g,role:"img","aria-label":"Browser viewport, view only",className:"block size-full cursor-default touch-none select-none"}):n.jsx("canvas",{ref:g,role:"application","aria-label":"Browser viewport",tabIndex:0,className:Ae("block size-full cursor-default touch-none select-none outline-none",h&&"ring-2 ring-ring ring-inset"),onFocus:()=>p(!0),onBlur:()=>{p(!1),je()},onPointerDown:ae,onPointerMove:se,onPointerUp:ve,onPointerCancel:ve,onContextMenu:he,onKeyDown:be,onKeyUp:le}),e[66]=h,e[67]=he,e[68]=be,e[69]=le,e[70]=ae,e[71]=se,e[72]=ve,e[73]=f,e[74]=je,e[75]=Ee):Ee=e[75];let ke;e[76]!==h?(ke=h&&n.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-2 flex justify-center",children:n.jsx("span",{className:"rounded-full bg-popover px-2 py-0.5 text-[10px] text-muted-foreground shadow-xs",children:_s})}),e[76]=h,e[77]=ke):ke=e[77];let Te;return e[78]!==oe||e[79]!==Ee||e[80]!==ke?(Te=n.jsxs("div",{ref:c,className:oe,children:[Ee,ke]}),e[78]=oe,e[79]=Ee,e[80]=ke,e[81]=Te):Te=e[81],Te}function Bs(s,e){try{const t=document.createElement("canvas");t.width=s.width,t.height=s.height;const l=t.getContext("2d");return!l||t.width===0?null:(l.drawImage(s,0,0),{...e,canvas:t})}catch{return null}}function Ls(s,e,t=1568){var f;const l=s.canvas.width/s.deviceWidth,r={x:e.x*l,y:e.y*l,width:Math.max(1,e.width*l),height:Math.max(1,e.height*l)},i=Math.min(1,t/Math.max(r.width,r.height)),o=document.createElement("canvas");return o.width=Math.max(1,Math.round(r.width*i)),o.height=Math.max(1,Math.round(r.height*i)),(f=o.getContext("2d"))==null||f.drawImage(s.canvas,r.x,r.y,r.width,r.height,0,0,o.width,o.height),{id:crypto.randomUUID(),mediaType:"image/jpeg",data:o.toDataURL("image/jpeg",.85).split(",")[1]??""}}function Ot(s,e){return{x:Math.round(Math.min(s.x,e.x)),y:Math.round(Math.min(s.y,e.y)),width:Math.round(Math.abs(s.x-e.x)),height:Math.round(Math.abs(s.y-e.y))}}function Fs(s){const e=Ce.c(85),{frame:t,onAdd:l,onCancel:r}=s,i=a.useRef(null),o=a.useRef(null);let f;e[0]===Symbol.for("react.memo_cache_sentinel")?(f={width:0,height:0},e[0]=f):f=e[0];const[c,g]=a.useState(f);let w;e[1]!==t.deviceHeight||e[2]!==t.deviceWidth?(w={x:0,y:0,width:t.deviceWidth,height:t.deviceHeight},e[1]=t.deviceHeight,e[2]=t.deviceWidth,e[3]=w):w=e[3];const v=w,[b,j]=a.useState(v),[y,k]=a.useState(null),[O,m]=a.useState(""),[d,x]=a.useState(null);let h;e[4]!==t.deviceHeight||e[5]!==t.deviceWidth||e[6]!==c?(h=Zt(c,{width:t.deviceWidth,height:t.deviceHeight}),e[4]=t.deviceHeight,e[5]=t.deviceWidth,e[6]=c,e[7]=h):h=e[7];const p=h;let C,T;e[8]===Symbol.for("react.memo_cache_sentinel")?(C=()=>{const W=i.current;if(!W)return;const Y=new ResizeObserver(ce=>{const[Se]=ce;Se&&g({width:Se.contentRect.width,height:Se.contentRect.height})});return Y.observe(W),()=>Y.disconnect()},T=[],e[8]=C,e[9]=T):(C=e[8],T=e[9]),a.useEffect(C,T);let X;e[10]!==p.height||e[11]!==p.width||e[12]!==p.x||e[13]!==p.y||e[14]!==t.canvas||e[15]!==c.height||e[16]!==c.width?(X=()=>{const W=o.current;if(!W||p.width<=0)return;const Y=window.devicePixelRatio||1;W.width=Math.round(c.width*Y),W.height=Math.round(c.height*Y);const ce=W.getContext("2d");ce&&(ce.setTransform(Y,0,0,Y,0,0),ce.clearRect(0,0,c.width,c.height),ce.drawImage(t.canvas,p.x,p.y,p.width,p.height))},e[10]=p.height,e[11]=p.width,e[12]=p.x,e[13]=p.y,e[14]=t.canvas,e[15]=c.height,e[16]=c.width,e[17]=X):X=e[17];let S;e[18]!==p||e[19]!==t||e[20]!==c?(S=[t,p,c],e[18]=p,e[19]=t,e[20]=c,e[21]=S):S=e[21],a.useEffect(X,S);let J;e[22]!==p?(J=W=>{const Y=o.current;return Y?ot(W.clientX,W.clientY,Y.getBoundingClientRect(),p,{clamp:!0}):null},e[22]=p,e[23]=J):J=e[23];const $=J;let R;e[24]!==t||e[25]!==O||e[26]!==l||e[27]!==r||e[28]!==b?(R=function(){if(b.width<4||b.height<4){x("Mark a larger region, or use the whole page");return}const Y={id:vn(),kind:"browser",note:O.trim().slice(0,wt.noteChars),url:t.url,title:t.title,viewport:{width:t.deviceWidth,height:t.deviceHeight},region:b,capturedAt:t.capturedAt,browser:t.browser,...t.tab?{tab:t.tab}:{},image:1},ce=l(Y,Ls(t,b));ce?x(ce):r()},e[24]=t,e[25]=O,e[26]=l,e[27]=r,e[28]=b,e[29]=R):R=e[29];const M=R,L=p.x+b.x*p.scale,N=p.y+b.y*p.scale,F=b.width*p.scale,D=b.height*p.scale;let B;e[30]!==L||e[31]!==N||e[32]!==F||e[33]!==D?(B={left:L,top:N,width:F,height:D},e[30]=L,e[31]=N,e[32]=F,e[33]=D,e[34]=B):B=e[34];const P=B,U=b.x===0&&b.y===0&&b.width===t.deviceWidth&&b.height===t.deviceHeight;let ne;e[35]!==r?(ne=W=>{W.key==="Escape"&&(W.preventDefault(),r())},e[35]=r,e[36]=ne):ne=e[36];const V=`Frozen frame of ${t.title||t.url}. Drag to mark a region; the page does not receive these clicks.`;let Q;e[37]!==c.height||e[38]!==c.width?(Q={width:c.width,height:c.height},e[37]=c.height,e[38]=c.width,e[39]=Q):Q=e[39];let H;e[40]!==$?(H=W=>{const Y=$(W);Y&&(W.currentTarget.setPointerCapture(W.pointerId),k(Y),j({x:Math.round(Y.x),y:Math.round(Y.y),width:0,height:0}))},e[40]=$,e[41]=H):H=e[41];let q,_;e[42]!==y||e[43]!==$?(q=W=>{const Y=y&&$(W);y&&Y&&j(Ot(y,Y))},_=W=>{const Y=y&&$(W);y&&Y&&j(Ot(y,Y)),k(null),W.currentTarget.hasPointerCapture(W.pointerId)&&W.currentTarget.releasePointerCapture(W.pointerId)},e[42]=y,e[43]=$,e[44]=q,e[45]=_):(q=e[44],_=e[45]);let E;e[46]!==V||e[47]!==Q||e[48]!==H||e[49]!==q||e[50]!==_?(E=n.jsx("canvas",{ref:o,role:"img","aria-label":V,className:"block size-full cursor-crosshair touch-none select-none",style:Q,onPointerDown:H,onPointerMove:q,onPointerUp:_}),e[46]=V,e[47]=Q,e[48]=H,e[49]=q,e[50]=_,e[51]=E):E=e[51];let te;e[52]!==P||e[53]!==U?(te=!U&&n.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute border-2 border-info bg-info/10",style:P}),e[52]=P,e[53]=U,e[54]=te):te=e[54];let K;e[55]!==E||e[56]!==te?(K=n.jsxs("div",{ref:i,className:"relative min-h-0 flex-1 overflow-hidden bg-muted/30",children:[E,te]}),e[55]=E,e[56]=te,e[57]=K):K=e[57];const ae=U?"Whole page selected. Drag on the frame to mark a region.":`Region ${b.width}×${b.height} at ${b.x},${b.y}`;let Z;e[58]!==ae?(Z=n.jsx("p",{className:"text-xs text-muted-foreground",role:"status",children:ae}),e[58]=ae,e[59]=Z):Z=e[59];let se;e[60]===Symbol.for("react.memo_cache_sentinel")?(se=W=>m(W.target.value),e[60]=se):se=e[60];let de;e[61]!==O?(de=n.jsx(jn,{value:O,onChange:se,placeholder:"What should the agent look at here?","aria-label":"Annotation note",rows:2,maxLength:wt.noteChars,className:"min-h-0 resize-none text-sm",autoFocus:!0}),e[61]=O,e[62]=de):de=e[62];let ve;e[63]!==d?(ve=d&&n.jsx("p",{role:"alert",className:"text-xs text-destructive",children:d}),e[63]=d,e[64]=ve):ve=e[64];let ge;e[65]!==U||e[66]!==v?(ge=!U&&n.jsx(re,{type:"button",variant:"ghost",size:"sm",onClick:()=>j(v),children:"Use whole page"}),e[65]=U,e[66]=v,e[67]=ge):ge=e[67];let he;e[68]!==r?(he=n.jsx(re,{type:"button",variant:"ghost",size:"sm",onClick:r,children:"Cancel"}),e[68]=r,e[69]=he):he=e[69];let pe;e[70]!==M?(pe=n.jsx(re,{type:"button",size:"sm",onClick:M,children:"Add to message"}),e[70]=M,e[71]=pe):pe=e[71];let be;e[72]!==ge||e[73]!==he||e[74]!==pe?(be=n.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[ge,he,pe]}),e[72]=ge,e[73]=he,e[74]=pe,e[75]=be):be=e[75];let fe;e[76]!==Z||e[77]!==de||e[78]!==ve||e[79]!==be?(fe=n.jsxs("div",{className:"flex shrink-0 flex-col gap-2 border-t p-2",children:[Z,de,ve,be]}),e[76]=Z,e[77]=de,e[78]=ve,e[79]=be,e[80]=fe):fe=e[80];let le;return e[81]!==ne||e[82]!==K||e[83]!==fe?(le=n.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",onKeyDown:ne,children:[K,fe]}),e[81]=ne,e[82]=K,e[83]=fe,e[84]=le):le=e[84],le}const Ps="browser-panel-session",zs="browser-panel-follow",$s=1e4,Mt=3e3,Us=[];function Js({context:s,active:e,closePanel:t,onAnnotate:l}){var A,ee;const[r,i]=a.useState(null),[o,f]=bt(yt(Ps),ut),[c,g]=bt(yt(zs),!0),[w,v]=a.useState(!1),[b,j]=a.useState(null),[y,k]=a.useState(null),[O,m]=a.useState(!1),d=a.useRef(0),{status:x,error:h,refresh:p,create:C,remove:T,stop:X,setArchived:S,readSkillTargets:J,installSkill:$}=Pn(e),R=(x==null?void 0:x.sessions)??Us,M=is(R),L=x!==null&&R.length>0,N=x===null||R.some(I=>I.name===o)?o:M,F=a.useCallback(I=>void Bt(I),[]),D=Xn(e&&L?N:null,F),B=((A=s.session)==null?void 0:A.sessionId)??null,P=a.useMemo(()=>Sn(s.session),[s.session]),U=cs((P==null?void 0:P.session)??null,R,B),ne=R.some(I=>I.name===U&&!I.archived);a.useEffect(()=>{!c||U===null||U===N||!ne||Date.now()-d.current<$s||f(U)},[c,U,ne,N,f]);const V=a.useCallback(I=>{d.current=Date.now(),f(I)},[f]),Q=a.useCallback(async I=>{v(!0);try{const ue=await I();return j(ue.ok?null:ue.error),ue}finally{v(!1)}},[]),{send:H}=D,q=a.useCallback((I,ue,Ne)=>{H({type:"viewport",width:I,height:ue,dpr:Ne})},[H]),_=a.useCallback(I=>{I&&(d.current=0),g(I)},[g]),E=a.useCallback(()=>V(M),[V,M]),te=a.useCallback(()=>m(!0),[]),K=a.useCallback(I=>{V(M),Q(()=>T(I))},[V,M,Q,T]),ae=a.useCallback(I=>void Q(()=>X(I)),[Q,X]),Z=a.useCallback(async(I,ue)=>{const Ne=await Q(()=>S(I,ue));return Ne.ok&&ue&&I===N&&V(M),Ne},[Q,S,N,V,M]),se=a.useCallback(I=>H({type:"navigate",url:I}),[H]),de=a.useCallback(()=>H({type:"back"}),[H]),ve=a.useCallback(()=>H({type:"forward"}),[H]),ge=a.useCallback(()=>H({type:"reload"}),[H]),he=a.useCallback(I=>H({type:"follow",targetId:I}),[H]),pe=a.useCallback(I=>H({type:"close-tab",targetId:I}),[H]),be=a.useCallback(I=>H({type:"launch",url:I}),[H]),fe=Hs(D.lastFrameAt),{frame:le,page:W,tabs:Y,pageGeneration:ce}=D,Se=a.useCallback(()=>{if(!W)return;const I=le==null?void 0:le.page;if(!le||!I||le.pageGeneration!==ce||le.header.targetId!==I.targetId){j("The page is still drawing; try again in a moment");return}const ue=Y.find(De=>De.targetId===le.header.targetId),Ne=Bs(le.bitmap,{deviceWidth:le.header.deviceWidth,deviceHeight:le.header.deviceHeight,url:I.url,title:I.title,browser:N,...ue?{tab:ue.title||ue.url}:{},capturedAt:new Date(le.header.ts).toISOString()});Ne?i(Ne):j("The page is still drawing; try again in a moment")},[le,W,Y,ce,N]),we=((ee=D.state)==null?void 0:ee.state)??null,ye=(x==null?void 0:x.installed)===!1||we==="not-installed",me=!ye&&we==="live",je=!ye&&we==="stopped",ie=R.find(I=>I.name===N)??null,z=Ye(ie,N),oe=os(ie),Ee=(ie==null?void 0:ie.mine)===!0&&!ie.running&&ie.lastUsedAt===null,ke=me&&(D.status==="disconnected"||D.status==="connecting"),Te=x===null&&h!==null,G=D.error??b??(Te?null:h),u=G!==null&&G!==y?G:null;return n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[n.jsx(gs,{sessions:R,selected:N,home:M,currentSessionId:B,followAgent:c,busy:w,onSelect:V,onToggleFollow:_,onOpenSkill:te,onCreate:C,onRemove:K,onStop:ae,onSetArchived:Z,onShowDefault:E,onClose:t}),me&&n.jsx(ls,{page:D.page,tabs:D.tabs,followed:D.followed,status:ke?"offline":fe,readOnly:!oe,onNavigate:se,onBack:de,onForward:ve,onReload:ge,onFollow:he,onCloseTab:pe,onAnnotate:l&&!r?Se:void 0}),u&&n.jsx(Ys,{message:u,onDismiss:()=>{j(null),k(G)}}),n.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[Te&&n.jsx(ts,{message:h,onRetry:p}),ye&&n.jsx(Qn,{onOpenSkill:te}),!ye&&x!==null&&!L&&n.jsx(Nt,{}),je&&(Ee?n.jsx(Nt,{onOpen:be}):n.jsx(es,{name:z,lastUrl:(ie==null?void 0:ie.lastUrl)??null,onOpen:oe?be:void 0})),me&&r&&l&&n.jsx(Fs,{frame:r,onAdd:l,onCancel:()=>i(null)}),me&&!r&&n.jsxs(n.Fragment,{children:[n.jsx(Ms,{className:"flex-1",frame:D.frame,send:H,onSizeChange:q,readOnly:!oe}),ke&&n.jsx(Ws,{}),n.jsx(Jn,{activity:P&&U===N?P:null})]}),!ye&&!Te&&(x===null||L)&&!je&&!me&&n.jsxs("div",{role:"status",className:"flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground",children:[n.jsx(ct,{}),"Connecting to ",z,"…"]})]}),n.jsx(ps,{open:O,onOpenChange:m,readTargets:J,install:$})]})}function Hs(s){const e=Ce.c(5),[,t]=a.useState(0);let l;e[0]!==t||e[1]!==s?(l=()=>{if(s===null)return;const i=s+Mt-Date.now();if(i<=0)return;const o=setTimeout(()=>t(Ks),i);return()=>clearTimeout(o)},e[0]=t,e[1]=s,e[2]=l):l=e[2];let r;return e[3]!==s?(r=[s],e[3]=s,e[4]=r):r=e[4],a.useEffect(l,r),s===null?"idle":Date.now()-s<Mt?"live":"idle"}function Ks(s){return s+1}function Ws(){const s=Ce.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=n.jsx("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex justify-center p-2",children:n.jsx("span",{role:"status",className:"rounded-full bg-popover px-2.5 py-0.5 text-[11px] text-muted-foreground shadow-xs",children:"Reconnecting…"})}),s[0]=e):e=s[0],e}function Ys(s){const e=Ce.c(9),{message:t,onDismiss:l}=s;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=n.jsx(dt,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),e[0]=r):r=e[0];let i;e[1]!==t?(i=n.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=n.jsx(Ze,{"data-icon":"inline-start"}),e[3]=o):o=e[3];let f;e[4]!==l?(f=n.jsx(re,{variant:"ghost",size:"icon-xs","aria-label":"Dismiss",onClick:l,children:o}),e[4]=l,e[5]=f):f=e[5];let c;return e[6]!==i||e[7]!==f?(c=n.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:[r,i,f]}),e[6]=i,e[7]=f,e[8]=c):c=e[8],c}export{Js as BrowserPanel};