@gbasin/agentboard-darwin-x64 0.4.9 → 0.4.10
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.
|
@@ -210,7 +210,7 @@ ${s.join(`
|
|
|
210
210
|
`,x=document.createElement(`div`),m.appendChild(x),D=document.createElement(`div`),D.style.color=`var(--text-muted)`,D.style.marginTop=`2px`,D.style.fontSize=`11px`,m.appendChild(D),C.current=m);let k=(e,t)=>{if(!r.element||!m||!x||!D)return;let n=uH(t);if(!n)return;let i=r.element.getBoundingClientRect(),a=n.length>60?n.slice(0,57)+`...`:n;x.textContent=a,D.textContent=`${dH()?`⌘`:`Ctrl`}+click to open`,m.style.left=`${e.clientX-i.left+10}px`,m.style.top=`${e.clientY-i.top+10}px`,m.style.display=`block`},N=()=>{m&&(m.style.display=`none`)},F=null,I=!1,L=null,R={activate:(e,t)=>{if(!I&&(e.metaKey||e.ctrlKey)){let e=uH(t);if(!e)return;window.open(e,`_blank`,`noopener`)}},hover:(e,t)=>{F=uH(t)||null,k(e,t)},leave:()=>{F=null,N()}},z=e=>{F&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.stopPropagation(),I=!0,window.open(F,`_blank`,`noopener`),L&&clearTimeout(L),L=setTimeout(()=>{I=!1},100))};t.addEventListener(`mousedown`,z,!0),r.options.linkHandler=R;let B=new yz((e,t)=>R.activate(e,t),{urlRegex:oH,hover:(e,t)=>R.hover(e,t),leave:()=>R.leave()});r.loadAddon(B),S.current=B;let H=null,te=null,U=dH()?`metaKey`:`ctrlKey`,ne=(e,t)=>{t&&V.current===e&&W.current({type:`terminal-input`,sessionId:e,data:t})};r.attachCustomKeyEventHandler(e=>{if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`c`&&r.hasSelection()){let e=r.getSelection();return e?.trim()&&navigator.clipboard&&navigator.clipboard.writeText(e),!1}if(dH()&&!h&&e.ctrlKey&&!e.metaKey&&e.key.toLowerCase()===`v`&&e.type===`keydown`){let e=V.current;return e&&(j.current&&(W.current({type:`tmux-cancel-copy-mode`,sessionId:e}),ve(!1)),(async()=>{ne(e,await vH(re.current,{}))})()),!e}if(e[U]&&e.key.toLowerCase()===`v`&&e.type===`keydown`){te!==null&&(clearTimeout(te),te=null),H=null;let e=new Promise(e=>{te=setTimeout(()=>{te=null,H=null,e(null)},100),H=t=>{te!==null&&(clearTimeout(te),te=null),e(t)}});return(async()=>{try{let t=V.current;if(!t)return;let n=await e,r=n?.text??null;if(r===null)try{r=await navigator.clipboard.readText()}catch{r=``}if(n?.hasImage&&dH()&&!h){ne(t,await vH(re.current,{blob:n.imageBlob}));return}if(!r&&dH()&&!h)try{let e=await fetch(`/api/clipboard-file-path`);if(e.ok){let{path:n,isImage:r}=await e.json();if(n){if(r){ne(t,await vH(re.current,{path:n}));return}ne(t,n);return}}}catch{}if(r&&!bH(r)){V.current===t&&(j.current&&(W.current({type:`tmux-cancel-copy-mode`,sessionId:t}),ve(!1)),W.current({type:`terminal-paste`,sessionId:t,data:r}));return}dH()&&!h&&ne(t,await vH(re.current,{}))}finally{H=null}})(),!1}if(e.ctrlKey&&e.key===`Backspace`&&e.type===`keydown`){let e=V.current;return e&&W.current({type:`terminal-input`,sessionId:e,data:``}),!1}return!0});let ie=e=>{if(!H)return;e.preventDefault(),e.stopPropagation();let t=e.clipboardData?.getData(`text/plain`)??``,n=SH(e.clipboardData),r=n!==null||xH(e.clipboardData),i=H;H=null,i({text:t,hasImage:r,imageBlob:n})};return t.addEventListener(`paste`,ie,{capture:!0}),r.onData(e=>{let t=V.current;if(t){let n=/^\x1b\[(<[\d;]+[Mm]|[\d;]+M|M[\x20-\xff]{3})$/.test(e);if(j.current&&n)return;j.current&&(W.current({type:`tmux-cancel-copy-mode`,sessionId:t}),ve(!1)),W.current({type:`terminal-input`,sessionId:t,data:e})}}),r.attachCustomWheelEventHandler(e=>{let t=V.current;if(!t||e.target?.closest(`input, textarea, [contenteditable="true"], .xterm-hover`)||r.hasSelection()||e.shiftKey)return!0;A.current+=e.deltaY;let n=r.cols,i=r.rows,a=Math.floor(n/2),o=Math.floor(i/2),s=!1,c=!1;for(;Math.abs(A.current)>=30;){c=!0;let e=A.current>0;A.current+=e?-30:30;let n=e?65:64;e||(s=!0),W.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${n};${a};${o}M`})}return s&&!M.current&&ve(!0),c&&!M.current&&ye(),!1}),_.current=r,y.current=i,()=>{if(n=!0,L&&clearTimeout(L),F=null,t.removeEventListener(`mousedown`,z,!0),t.removeEventListener(`paste`,ie,!0),te!==null&&(clearTimeout(te),te=null),H=null,C.current&&=(C.current.remove(),null),S.current){try{S.current.dispose()}catch{}S.current=null}if(b.current){try{b.current.dispose()}catch{}b.current=null}try{r.dispose()}catch{}t&&(t.innerHTML=``),_.current=null,y.current=null,w.current=null,T.current=null,E.current=null,O.current&&window.clearTimeout(O.current),P.current!==null&&window.clearTimeout(P.current)}},[be]),(0,x.useEffect)(()=>{_.current&&(_.current.options.theme=c)},[c]),(0,x.useEffect)(()=>{let e=_.current,t=y.current;if(e&&t){e.options.fontFamily=f,e.options.fontSize=l,e.options.lineHeight=Math.round(l*u)/l,e.options.letterSpacing=d,t.fit();let n=V.current;n&&W.current({type:`terminal-resize`,sessionId:n,cols:e.cols,rows:e.rows})}},[l,u,d,f]),(0,x.useEffect)(()=>{let e=_.current;if(!e)return;let t=ae.current;if(ae.current=p,t!==p){if(p){if(!b.current)try{let t=new pz;t.onContextLoss(()=>{try{t.dispose()}catch{}b.current=null}),e.loadAddon(t),b.current=t}catch{}}else if(b.current){try{b.current.dispose()}catch{}b.current=null}}},[p]),(0,x.useEffect)(()=>{let n=_.current;if(!n)return;let o=V.current,s=H.current;if(!r){k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(W.current({type:`terminal-detach`,sessionId:o}),V.current=null,H.current=null,te.current=-1,U.current=null,j.current=!1),n.reset(),le.current=!1,de(!1);return}if(i!==`connected`){k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(QT(`terminal_detach_on_disconnect`,{connectionStatus:i,prevAttached:o}),V.current=null,H.current=null,te.current=-1,U.current=null,j.current=!1),aH(),le.current=!1,de(!1);return}if(o&&o!==e){try{let e=T.current?.serialize();if(e&&(nH.set(o,e),nH.size>rH)){let e=nH.keys().next().value;e&&nH.delete(e)}}catch{}W.current({type:`terminal-detach`,sessionId:o}),V.current=null,H.current=null,te.current=-1,U.current=null,j.current=!1}let c=te.current,l=a!==c;if(e&&(e!==o||t!==s||l)){QT(`terminal_attach`,{sessionId:e,tmuxTarget:t,prevAttached:o,prevTarget:s,connectionStatus:i,connectionEpoch:a,attachedEpoch:c});let r=performance.now();oe.current=[],se.current!==null&&(window.clearTimeout(se.current),se.current=null),ce.current!==null&&(window.clearTimeout(ce.current),ce.current=null),le.current=!0,de(!0);let l=nH.get(e);l&&(n.reset(),n.write(l));let u=y.current;u&&u.fit();let d=performance.now();V.current=e,H.current=t??null,te.current=a,U.current=e,ne.current=r,k.current!==null&&(window.clearTimeout(k.current),k.current=null);let f={type:`terminal-attach`,sessionId:e,tmuxTarget:t??void 0,cols:n.cols,rows:n.rows},p=o!==null&&o!==e;if(p){let t=e;queueMicrotask(()=>{V.current===t&&(W.current(f),W.current({type:`tmux-check-copy-mode`,sessionId:e}))})}else k.current=window.setTimeout(()=>{k.current=null,W.current(f),W.current({type:`tmux-check-copy-mode`,sessionId:e})},50);QT(`switch_attach_sent`,{sessionId:e,fitMs:Math.round(d-r),totalMs:Math.round(performance.now()-r),from:o??null,immediate:p})}return e&&e===o&&t===s&&!l&&QT(`terminal_attach_skip`,{sessionId:e,prevAttached:o,connectionStatus:i,connectionEpoch:a,attachedEpoch:c}),!e&&o&&(k.current!==null&&(window.clearTimeout(k.current),k.current=null),V.current=null,H.current=null,te.current=-1,U.current=null),()=>{k.current!==null&&(QT(`attach_debounce_cancelled`,{sessionId:e,attachedSession:V.current},`info`),window.clearTimeout(k.current),k.current=null)}},[e,t,r,i,a,_e]),(0,x.useEffect)(()=>{if(B.current!==null&&(globalThis.clearInterval(B.current),B.current=null),!(!e||!r||i!==`connected`))return B.current=globalThis.setInterval(()=>{V.current===e&&W.current({type:`tmux-check-copy-mode`,sessionId:e})},750),()=>{B.current!==null&&(globalThis.clearInterval(B.current),B.current=null)}},[e,r,i]),(0,x.useEffect)(()=>{let e=()=>{se.current!==null&&(window.clearTimeout(se.current),se.current=null),ce.current!==null&&(window.clearTimeout(ce.current),ce.current=null);let e=_.current,t=oe.current;if(!e||t.length===0)return;oe.current=[];let n=t.join(``);le.current&&=(e.reset(),!1);let r=performance.now(),i=n.length;e.write(n,()=>{let e=Math.round(performance.now()-r);e>50&&QT(`switch_write_slow`,{sessionId:V.current,writeMs:e,bytes:i}),h&&e>50&&QT(`ios_write_slow`,{sessionId:V.current,writeMs:e,bytes:i}),_e()})},t=()=>{se.current!==null&&window.clearTimeout(se.current),se.current=window.setTimeout(e,2),ce.current===null&&(ce.current=window.setTimeout(e,16))},n=s(n=>{let r=V.current;if(n.type===`terminal-output`&&(!r||n.sessionId!==r)&&QT(`terminal_output_dropped`,{messageSessionId:n.sessionId,attachedSession:r,bytes:n.data.length,hasSwitchStart:ne.current!==null},`info`),n.type===`terminal-output`&&r&&n.sessionId===r){let e=ne.current;e&&(QT(`switch_first_output`,{sessionId:n.sessionId,serverRoundtripMs:Math.round(performance.now()-e),bytes:n.data.length,parseMs:n._parseMs??-1,rawLength:n._rawLength??-1}),ne.current=null),oe.current.push(h?DH(n.data):n.data),t()}if(n.type===`terminal-ready`&&r&&n.sessionId===r){le.current&&oe.current.length>0?e():le.current&&=(_.current?.reset(),!1),de(!1);let t=ne.current;t&&(QT(`switch_ready`,{sessionId:n.sessionId,totalMs:Math.round(performance.now()-t)}),ne.current=null),U.current===n.sessionId&&(_.current?.focus(),U.current=null),h&&(e(),ge(50,`terminal-ready`))}if(n.type===`terminal-error`&&r&&(!n.sessionId||n.sessionId===r)&&(le.current=!1,de(!1)),n.type===`clipboard-offer`&&r&&n.sessionId===r){let e=n.text;if(!e?.trim())return;if(!h&&navigator.clipboard?.writeText){let t=performance.now();navigator.clipboard.writeText(e).then(()=>{QT(`clipboard_write_success`,{source:n.source,chars:e.length,durationMs:Math.round(performance.now()-t)})}).catch(t=>{QT(`clipboard_write_failed`,{source:n.source,chars:e.length,error:t instanceof Error?t.message:String(t)},`warn`),ee(e,n.source)})}else ee(e,n.source)}if(n.type===`tmux-copy-mode-status`&&r&&n.sessionId===r){let e=n.appMouse===!0,t=M.current;M.current=e,N.current=n.altScreen===!0,!t&&e&&_.current?.write(mH),ve(e?!1:n.inCopyMode)}});return()=>{n(),e(),he()}},[s,_e,ve,ee]),(0,x.useEffect)(()=>{let e=g.current,t=_.current,n=y.current;if(!e||!t||!n)return;let r=()=>{D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{be()},150)},i=new ResizeObserver(r);return i.observe(e),r(),()=>{i.disconnect(),D.current&&window.clearTimeout(D.current)}},[]),(0,x.useEffect)(()=>{if(typeof document>`u`||typeof document.addEventListener!=`function`)return;let e=()=>{document.visibilityState!==`hidden`&&QT(`terminal_visibility_resume`,{isiOS:h,hasWebGL:!!b.current,useWebGL:ae.current,hasTerminal:!!_.current,bufferLines:_.current?.buffer.active.length??0,sessionId:V.current},`info`)};if(document.addEventListener(`visibilitychange`,e),!h)return()=>{document.removeEventListener(`visibilitychange`,e)};let t=e=>{let t=_.current;if(t&&b.current&&ae.current){try{b.current.dispose()}catch{}b.current=null;try{let n=new pz;n.onContextLoss(()=>{QT(`webgl_context_loss`,{sessionId:V.current},`info`);try{n.dispose()}catch{}b.current=null}),t.loadAddon(n),b.current=n,QT(`ios_webgl_recreated`,{trigger:e},`info`)}catch{QT(`ios_webgl_recreate_failed`,{trigger:e},`info`)}}},n=()=>{document.visibilityState!==`hidden`&&(t(`visibilitychange`),ge(200,`visibilitychange`))},r=e=>{e.persisted&&(t(`pageshow`),ge(200,`pageshow`))},i=()=>{t(`focus`),ge(200,`focus`)};return document.addEventListener(`visibilitychange`,n),window.addEventListener(`pageshow`,r),window.addEventListener(`focus`,i),()=>{document.removeEventListener(`visibilitychange`,e),document.removeEventListener(`visibilitychange`,n),window.removeEventListener(`pageshow`,r),window.removeEventListener(`focus`,i),he()}},[]),{containerRef:g,terminalRef:_,searchAddonRef:w,serializeAddonRef:T,progressAddonRef:E,inTmuxCopyModeRef:j,appMouseRef:M,setTmuxCopyMode:ve,isSwitching:ue,pendingClipboardOffer:I,copyPendingClipboardOffer:R,dismissPendingClipboardOffer:z}}function kH(e=`(max-width: 767px)`){let[t,n]=(0,x.useState)(()=>typeof window>`u`||!window.matchMedia?!1:window.matchMedia(e).matches);return(0,x.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let t=window.matchMedia(e),r=()=>n(t.matches);return r(),typeof t.addEventListener==`function`?(t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)):(t.addListener(r),()=>t.removeListener(r))},[e]),t}function AH(e,t,n){(0,x.useEffect)(()=>{if(!t)return;let r=t=>{e.current&&!e.current.contains(t.target)&&n()};return document.addEventListener(`mousedown`,r),document.addEventListener(`touchstart`,r),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`touchstart`,r)}},[e,t,n])}function jH(e,t){(0,x.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t])}function MH({enabled:e,isOpen:t,onOpen:n,edgeThresholdPx:r=30,swipeDistancePx:i=50,swipeRatio:a=1.5}){let o=(0,x.useRef)(!1);return(0,x.useEffect)(()=>{if(!e)return;let s=0,c=0,l=!1,u=e=>{if(t)return;let n=e.touches[0];n.clientX<=r?(s=n.clientX,c=n.clientY,l=!0,o.current=!0):l=!1},d=e=>{if(o.current=!1,!l||t)return;let r=e.changedTouches[0],u=r.clientX-s,d=Math.abs(r.clientY-c);u>=i&&u>d*a&&n(),l=!1};return document.addEventListener(`touchstart`,u,{passive:!0}),document.addEventListener(`touchend`,d,{passive:!0}),()=>{o.current=!1,document.removeEventListener(`touchstart`,u),document.removeEventListener(`touchend`,d)}},[e,t,n,r,i,a]),o}var NH=T()(k(e=>({theme:`dark`,setTheme:t=>e({theme:t}),toggleTheme:()=>e(e=>({theme:e.theme===`dark`?`light`:`dark`}))}),{name:`agentboard-theme`,storage:D(()=>M)})),PH={dark:{background:`#2d2d2d`,foreground:`#d4d4d4`,cursor:`#3b82f6`,cursorAccent:`#2d2d2d`,selectionBackground:`rgba(59, 130, 246, 0.35)`,selectionForeground:`#ffffff`,black:`#808080`,red:`#f87171`,green:`#4ade80`,yellow:`#fbbf24`,blue:`#60a5fa`,magenta:`#c084fc`,cyan:`#22d3ee`,white:`#d4d4d4`,brightBlack:`#a0a0a0`,brightRed:`#fca5a5`,brightGreen:`#86efac`,brightYellow:`#fde047`,brightBlue:`#93c5fd`,brightMagenta:`#d8b4fe`,brightCyan:`#67e8f9`,brightWhite:`#ffffff`},light:{background:`#fafafa`,foreground:`#171717`,cursor:`#2563eb`,cursorAccent:`#fafafa`,selectionBackground:`rgba(37, 99, 235, 0.2)`,selectionForeground:`#000000`,black:`#171717`,red:`#dc2626`,green:`#16a34a`,yellow:`#ca8a04`,blue:`#2563eb`,magenta:`#9333ea`,cyan:`#0891b2`,white:`#f5f5f5`,brightBlack:`#737373`,brightRed:`#ef4444`,brightGreen:`#22c55e`,brightYellow:`#eab308`,brightBlue:`#3b82f6`,brightMagenta:`#a855f7`,brightCyan:`#06b6d4`,brightWhite:`#ffffff`}},FH=new WeakSet;function IH(e,t){let n=Object.getOwnPropertyDescriptor(e,t);return!n?.get||!n.set?null:{get:n.get,set:n.set,enumerable:n.enumerable??!0,configurable:n.configurable??!0}}var LH=!1,RH=null,zH=null;function BH(){LH||(LH=!0,!(typeof Node>`u`||typeof HTMLElement>`u`)&&(RH=IH(Node.prototype,`textContent`),zH=IH(HTMLElement.prototype,`innerText`)))}function VH(e){if(FH.has(e))return;FH.add(e);let t=RH?.get;if(t)for(let[n,r]of[[`textContent`,RH],[`innerText`,zH]])r&&Object.defineProperty(e,n,{configurable:r.configurable,enumerable:r.enumerable,get(){return r.get.call(this)},set(e){t.call(this)!==e&&r.set.call(this,e)}})}function HH(e){BH();let t=()=>{for(let t of Array.from(e.children))t instanceof HTMLElement&&VH(t)};t();let n=new MutationObserver(t);return n.observe(e,{childList:!0}),()=>n.disconnect()}var UH={up:`\x1B[A`,down:`\x1B[B`,left:`\x1B[D`,right:`\x1B[C`},WH=150,GH=250,KH=400,qH=1500,JH=15,YH=70;function XH(e=10){`vibrate`in navigator&&navigator.vibrate(e)}function ZH(e,t){let n=Math.sqrt(e*e+t*t);if(n<JH)return{direction:null,distance:0};let r=180/Math.PI*Math.atan2(t,e),i;return i=r>=-45&&r<45?`right`:r>=45&&r<135?`down`:r>=-135&&r<-45?`up`:`left`,{direction:i,distance:n}}function QH(e){let t=YH-20;return qH-Math.min(e/t,1)*(qH-KH)}function $H({onSendKey:e,disabled:t=!1,onRefocus:n,isKeyboardVisible:r}){let[i,a]=(0,x.useState)(!1),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)({x:0,y:0}),[u,d]=(0,x.useState)({x:0,y:0}),f=(0,x.useRef)(null),p=(0,x.useRef)(null),m=(0,x.useRef)(null),h=(0,x.useRef)(!1),g=(0,x.useRef)(null),_=(0,x.useRef)(0),v=(0,x.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null),p.current&&=(clearTimeout(p.current),null),m.current&&=(clearInterval(m.current),null)},[]),y=(0,x.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null),m.current&&=(clearInterval(m.current),null)},[]),b=(0,x.useCallback)(t=>{let n=QH(_.current);m.current=setTimeout(()=>{g.current&&(XH(5),e(t),b(t))},n)},[e]),S=(0,x.useCallback)((n,r)=>{if(!n||t)return;let i=UH[n];_.current=r,XH(8),e(i),y(),p.current=setTimeout(()=>{b(i)},GH)},[t,e,y,b]),C=(0,x.useCallback)((e,t)=>{let n=e-c.x,r=t-c.y,i=Math.sqrt(n*n+r*r),a=Math.min(i,YH-20),o=i>0?a/i:0;d({x:n*o,y:r*o});let{direction:l,distance:u}=ZH(n,r);_.current=u,l!==g.current&&(g.current=l,s(l),y(),l&&S(l,u))},[c,y,S]),w=(0,x.useCallback)(()=>{a(!1),s(null),d({x:0,y:0}),y(),g.current=null,h.current&&n?.()},[y,n]),T=(0,x.useCallback)(e=>{if(t)return;e.preventDefault(),e.stopPropagation();let n=e.touches[0];h.current=r?.()??!1,f.current=setTimeout(()=>{XH(15),l({x:n.clientX,y:n.clientY-80}),d({x:0,y:0}),a(!0)},WH)},[t,r]),E=(0,x.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),!i)return;let t=e.touches[0];C(t.clientX,t.clientY)},[i,C]),D=(0,x.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f.current&&=(clearTimeout(f.current),null),i&&w()},[i,w]),O=(0,x.useCallback)(e=>{e.preventDefault(),v(),w()},[v,w]);return(0,x.useEffect)(()=>()=>{v()},[v]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,"aria-label":`Arrow keys`,className:`
|
|
211
211
|
terminal-key
|
|
212
212
|
flex items-center justify-center
|
|
213
|
-
|
|
213
|
+
size-[44px] p-0
|
|
214
214
|
text-sm font-medium
|
|
215
215
|
bg-surface border border-border rounded-md
|
|
216
216
|
active:bg-hover active:scale-95
|
|
@@ -236,7 +236,7 @@ ${s.join(`
|
|
|
236
236
|
`,style:{left:`50%`,top:`50%`,transform:`translate(calc(-50% + ${u.x}px), calc(-50% + ${u.y}px))`},children:(0,G.jsx)(`div`,{className:`absolute inset-2 rounded-full bg-white/50`})})]}),o&&(0,G.jsx)(`div`,{className:`absolute -bottom-8 left-1/2 -translate-x-1/2 text-white text-sm font-medium bg-black/50 px-3 py-1 rounded-full`,children:o.toUpperCase()})]})]})]})}var eU=150,tU=56,nU=48,rU=6,iU=8,aU=20+rU+2,oU=3*tU+2*rU+2*iU,sU=3*nU+2*rU+2*iU+aU;function cU(e=10){`vibrate`in navigator&&navigator.vibrate(e)}var lU=[[`7`,`8`,`9`],[`4`,`5`,`6`],[`1`,`2`,`3`]];function uU(e,t,n){let r=n.x-oU/2,i=n.y-sU/2,a=e-r-iU,o=t-i-iU,s=3*tU+2*rU,c=3*nU+2*rU;if(a<0||a>s||o<0||o>c)return null;let l=Math.floor(a/(tU+rU)),u=Math.floor(o/(nU+rU));if(l<0||l>2||u<0||u>2)return null;let d=l*(tU+rU),f=u*(nU+rU);return a>d+tU||o>f+nU?null:lU[u]?.[l]||null}function dU({onSendKey:e,disabled:t=!1,onRefocus:n,isKeyboardVisible:r}){let[i,a]=(0,x.useState)(!1),[o,s]=(0,x.useState)(null),[c,l]=(0,x.useState)({x:0,y:0}),u=(0,x.useRef)(null),d=(0,x.useRef)(!1),f=(0,x.useRef)(!1),p=(0,x.useCallback)(()=>{a(!1),s(null),f.current=!1,d.current&&n?.()},[n]),m=(0,x.useCallback)(e=>{if(t)return;e.preventDefault(),e.stopPropagation();let n=e.touches[0];d.current=r?.()??!1,f.current=!1,u.current=setTimeout(()=>{cU(15);let e=n.clientX,t=n.clientY-120;e=Math.max(10+oU/2,Math.min(window.innerWidth-10-oU/2,e)),t=Math.max(10+sU/2,t),l({x:e,y:t}),a(!0)},eU)},[t,r]),h=(0,x.useCallback)((e,t)=>uU(e,t,c),[c]),g=(0,x.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),!i)return;let t=e.touches[0],n=h(t.clientX,t.clientY);n!==o&&(s(n),n&&cU(5))},[i,o,h]),_=(0,x.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),u.current&&=(clearTimeout(u.current),null),i&&o&&!f.current&&(cU(10),e(o),f.current=!0),p()},[i,o,e,p]),v=(0,x.useCallback)(e=>{e.preventDefault(),u.current&&=(clearTimeout(u.current),null),p()},[p]);return(0,x.useEffect)(()=>()=>{u.current&&clearTimeout(u.current)},[]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,className:`
|
|
237
237
|
terminal-key
|
|
238
238
|
flex items-center justify-center
|
|
239
|
-
|
|
239
|
+
size-[44px] p-0
|
|
240
240
|
text-sm font-medium
|
|
241
241
|
bg-surface border border-border rounded-md
|
|
242
242
|
active:bg-hover active:scale-95
|
|
@@ -251,16 +251,16 @@ ${s.join(`
|
|
|
251
251
|
select-none
|
|
252
252
|
transition-all duration-75
|
|
253
253
|
${o===e?`bg-accent text-white scale-110`:`bg-white/90 text-gray-800`}
|
|
254
|
-
`,style:{width:tU,height:nU,WebkitUserSelect:`none`,userSelect:`none`},children:e},t):(0,G.jsx)(`div`,{style:{width:tU,height:nU}},t))}),(0,G.jsx)(`div`,{className:`text-center text-white text-sm font-medium select-none h-5`,style:{marginTop:rU+2},children:o?`Release to send "${o}"`:`\xA0`})]})})]})]})}var fU=(0,G.jsx)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,G.jsx)(`path`,{d:`M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7.07L2.4 12l4.66-7H22v14zm-11.59-2L14 13.41 17.59 17 19 15.59 15.41 12 19 8.41 17.59 7 14 10.59 10.41 7 9 8.41 12.59 12 9 15.59z`})}),pU=(0,G.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`}),(0,G.jsx)(`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,ry:`1`})]}),mU=(0,G.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,ry:`2`}),(0,G.jsx)(`line`,{x1:`6`,y1:`8`,x2:`6`,y2:`8`}),(0,G.jsx)(`line`,{x1:`10`,y1:`8`,x2:`10`,y2:`8`}),(0,G.jsx)(`line`,{x1:`14`,y1:`8`,x2:`14`,y2:`8`}),(0,G.jsx)(`line`,{x1:`18`,y1:`8`,x2:`18`,y2:`8`}),(0,G.jsx)(`line`,{x1:`6`,y1:`12`,x2:`6`,y2:`12`}),(0,G.jsx)(`line`,{x1:`10`,y1:`12`,x2:`10`,y2:`12`}),(0,G.jsx)(`line`,{x1:`14`,y1:`12`,x2:`14`,y2:`12`}),(0,G.jsx)(`line`,{x1:`18`,y1:`12`,x2:`18`,y2:`12`}),(0,G.jsx)(`line`,{x1:`7`,y1:`16`,x2:`17`,y2:`16`})]}),hU=[{label:`esc`,key:`\x1B`},{label:`tab`,key:` `}],gU=[{label:fU,key:``,ariaLabel:`Delete word`},{label:(0,G.jsx)(fe,{width:18,height:18}),key:`\r`,grow:!0,className:`bg-accent/20 text-accent border-accent/40`,ariaLabel:`Enter`}];function _U(){`vibrate`in navigator&&navigator.vibrate(10)}function vU(e,t){if(!t||e.length!==1)return{output:e,consumeCtrl:!1};let n=e.toUpperCase().charCodeAt(0);return n>=65&&n<=90?{output:String.fromCharCode(n-64),consumeCtrl:!0}:{output:e,consumeCtrl:!0}}var yU={working:`bg-working`,waiting:`bg-waiting`,permission:`bg-approval`,unknown:`bg-muted`};async function bU(e,t){try{let n=new FormData;n.append(`image`,e,t);let r=await fetch(`/api/paste-image`,{method:`POST`,body:n});if(r.ok){let{path:e}=await r.json();return{path:e}}let i=`Image upload failed`;try{let e=await r.json();typeof e.error==`string`&&(i=e.error)}catch{}return{error:i}}catch{return{error:`Image upload failed`}}}function xU({onSendKey:e,onPasteText:t,disabled:n=!1,sessions:r,currentSessionId:i,agentType:a,onSelectSession:o,hideSessionSwitcher:s=!1,onRefocus:c,isKeyboardVisible:l,onEnterTextMode:u}){let[d,f]=(0,x.useState)(!1),[p,m]=(0,x.useState)(``),[h,g]=(0,x.useState)(null),[_,v]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),S=(0,x.useRef)(null),C=(0,x.useRef)(null),w=(0,x.useRef)(0),T=(0,x.useRef)(null);(0,x.useEffect)(()=>{d&&S.current&&S.current.focus()},[d]),(0,x.useEffect)(()=>{let e=T.current;if(!e)return;let t=t=>{n||e.contains(t.target)&&l?.()&&t.preventDefault()};return e.addEventListener(`touchstart`,t,{passive:!1,capture:!0}),()=>{e.removeEventListener(`touchstart`,t,{capture:!0})}},[n,l]),(0,x.useEffect)(()=>{if(!y||n||typeof document>`u`)return;let t=t=>{let{output:n,consumeCtrl:r}=vU(t.key,!0);r&&(t.preventDefault(),t.stopPropagation(),_U(),e(n),b(!1))};return document.addEventListener(`keydown`,t,{capture:!0}),()=>{document.removeEventListener(`keydown`,t,{capture:!0})}},[y,n,e]),(0,x.useEffect)(()=>{if(!d)return;let t=C.current;if(!t)return;let n=async t=>{let n=t.clipboardData?.items;if(n){for(let r of n)if(r.type.startsWith(`image/`)){t.preventDefault();let n=r.getAsFile();if(!n)continue;v(!0),g(null);try{let t=await bU(n,`paste.${r.type.split(`/`)[1]||`png`}`);`path`in t?(e(tH(t.path,a)),f(!1),m(``),c?.()):g(t.error)}finally{v(!1)}return}}};return t.addEventListener(`paste`,n),()=>t.removeEventListener(`paste`,n)},[d,e,c,a]);let E=t=>{if(n)return;let r=l?.()??!1;_U();let{output:i,consumeCtrl:a}=vU(t,y);a&&b(!1),e(i),r&&c?.()},D=()=>{n||(_U(),b(!y))},O=t=>{let{output:n,consumeCtrl:r}=vU(t,y);r&&b(!1),e(n)},k=n=>{t?t(n):e(n)},A=async()=>{if(n)return;let t=l?.()??!1;_U(),g(null);try{let n=await navigator.clipboard.read();for(let r of n){let n=r.types.find(e=>e.startsWith(`image/`));if(n){let i=await bU(await r.getType(n),`paste.${n.split(`/`)[1]||`png`}`);if(`path`in i){e(tH(i.path,a)),t&&c?.();return}g(i.error),f(!0),m(``);return}if(r.types.includes(`text/plain`)){let e=await(await r.getType(`text/plain`)).text();if(e){k(e),t&&c?.();return}}}}catch{try{let e=await navigator.clipboard.readText();if(e){k(e),t&&c?.();return}}catch{}}f(!0),m(``)},j=()=>{p&&(_U(),k(p)),f(!1),m(``),g(null),c?.()},M=()=>{f(!1),m(``),g(null),c?.()},N=e=>{_U(),o(e)},P=()=>{n||(_U(),l?.()?document.activeElement instanceof HTMLElement&&document.activeElement.blur():u?.())},F=r.length>1&&!s,I=e=>t=>{n||(t.preventDefault(),t.stopPropagation(),w.current=Date.now(),e())},L=e=>()=>{n||Date.now()-w.current<700||e()};return(0,G.jsxs)(`div`,{ref:T,className:`terminal-controls flex flex-col gap-
|
|
254
|
+
`,style:{width:tU,height:nU,WebkitUserSelect:`none`,userSelect:`none`},children:e},t):(0,G.jsx)(`div`,{style:{width:tU,height:nU}},t))}),(0,G.jsx)(`div`,{className:`text-center text-white text-sm font-medium select-none h-5`,style:{marginTop:rU+2},children:o?`Release to send "${o}"`:`\xA0`})]})})]})]})}var fU=(0,G.jsx)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,G.jsx)(`path`,{d:`M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7.07L2.4 12l4.66-7H22v14zm-11.59-2L14 13.41 17.59 17 19 15.59 15.41 12 19 8.41 17.59 7 14 10.59 10.41 7 9 8.41 12.59 12 9 15.59z`})}),pU=(0,G.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`}),(0,G.jsx)(`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,ry:`1`})]}),mU=(0,G.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,ry:`2`}),(0,G.jsx)(`line`,{x1:`6`,y1:`8`,x2:`6`,y2:`8`}),(0,G.jsx)(`line`,{x1:`10`,y1:`8`,x2:`10`,y2:`8`}),(0,G.jsx)(`line`,{x1:`14`,y1:`8`,x2:`14`,y2:`8`}),(0,G.jsx)(`line`,{x1:`18`,y1:`8`,x2:`18`,y2:`8`}),(0,G.jsx)(`line`,{x1:`6`,y1:`12`,x2:`6`,y2:`12`}),(0,G.jsx)(`line`,{x1:`10`,y1:`12`,x2:`10`,y2:`12`}),(0,G.jsx)(`line`,{x1:`14`,y1:`12`,x2:`14`,y2:`12`}),(0,G.jsx)(`line`,{x1:`18`,y1:`12`,x2:`18`,y2:`12`}),(0,G.jsx)(`line`,{x1:`7`,y1:`16`,x2:`17`,y2:`16`})]}),hU=[{label:`esc`,key:`\x1B`},{label:`tab`,key:` `}],gU=[{label:fU,key:``,ariaLabel:`Delete word`},{label:(0,G.jsx)(fe,{width:18,height:18}),key:`\r`,grow:!0,className:`bg-accent/20 text-accent border-accent/40`,ariaLabel:`Enter`}];function _U(){`vibrate`in navigator&&navigator.vibrate(10)}function vU(e,t){if(!t||e.length!==1)return{output:e,consumeCtrl:!1};let n=e.toUpperCase().charCodeAt(0);return n>=65&&n<=90?{output:String.fromCharCode(n-64),consumeCtrl:!0}:{output:e,consumeCtrl:!0}}var yU={working:`bg-working`,waiting:`bg-waiting`,permission:`bg-approval`,unknown:`bg-muted`};async function bU(e,t){try{let n=new FormData;n.append(`image`,e,t);let r=await fetch(`/api/paste-image`,{method:`POST`,body:n});if(r.ok){let{path:e}=await r.json();return{path:e}}let i=`Image upload failed`;try{let e=await r.json();typeof e.error==`string`&&(i=e.error)}catch{}return{error:i}}catch{return{error:`Image upload failed`}}}function xU({onSendKey:e,onPasteText:t,disabled:n=!1,sessions:r,currentSessionId:i,agentType:a,onSelectSession:o,hideSessionSwitcher:s=!1,onRefocus:c,isKeyboardVisible:l,onEnterTextMode:u}){let[d,f]=(0,x.useState)(!1),[p,m]=(0,x.useState)(``),[h,g]=(0,x.useState)(null),[_,v]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),S=(0,x.useRef)(null),C=(0,x.useRef)(null),w=(0,x.useRef)(0),T=(0,x.useRef)(null);(0,x.useEffect)(()=>{d&&S.current&&S.current.focus()},[d]),(0,x.useEffect)(()=>{let e=T.current;if(!e)return;let t=t=>{n||e.contains(t.target)&&l?.()&&t.preventDefault()};return e.addEventListener(`touchstart`,t,{passive:!1,capture:!0}),()=>{e.removeEventListener(`touchstart`,t,{capture:!0})}},[n,l]),(0,x.useEffect)(()=>{if(!y||n||typeof document>`u`)return;let t=t=>{let{output:n,consumeCtrl:r}=vU(t.key,!0);r&&(t.preventDefault(),t.stopPropagation(),_U(),e(n),b(!1))};return document.addEventListener(`keydown`,t,{capture:!0}),()=>{document.removeEventListener(`keydown`,t,{capture:!0})}},[y,n,e]),(0,x.useEffect)(()=>{if(!d)return;let t=C.current;if(!t)return;let n=async t=>{let n=t.clipboardData?.items;if(n){for(let r of n)if(r.type.startsWith(`image/`)){t.preventDefault();let n=r.getAsFile();if(!n)continue;v(!0),g(null);try{let t=await bU(n,`paste.${r.type.split(`/`)[1]||`png`}`);`path`in t?(e(tH(t.path,a)),f(!1),m(``),c?.()):g(t.error)}finally{v(!1)}return}}};return t.addEventListener(`paste`,n),()=>t.removeEventListener(`paste`,n)},[d,e,c,a]);let E=t=>{if(n)return;let r=l?.()??!1;_U();let{output:i,consumeCtrl:a}=vU(t,y);a&&b(!1),e(i),r&&c?.()},D=()=>{n||(_U(),b(!y))},O=t=>{let{output:n,consumeCtrl:r}=vU(t,y);r&&b(!1),e(n)},k=n=>{t?t(n):e(n)},A=async()=>{if(n)return;let t=l?.()??!1;_U(),g(null);try{let n=await navigator.clipboard.read();for(let r of n){let n=r.types.find(e=>e.startsWith(`image/`));if(n){let i=await bU(await r.getType(n),`paste.${n.split(`/`)[1]||`png`}`);if(`path`in i){e(tH(i.path,a)),t&&c?.();return}g(i.error),f(!0),m(``);return}if(r.types.includes(`text/plain`)){let e=await(await r.getType(`text/plain`)).text();if(e){k(e),t&&c?.();return}}}}catch{try{let e=await navigator.clipboard.readText();if(e){k(e),t&&c?.();return}}catch{}}f(!0),m(``)},j=()=>{p&&(_U(),k(p)),f(!1),m(``),g(null),c?.()},M=()=>{f(!1),m(``),g(null),c?.()},N=e=>{_U(),o(e)},P=()=>{n||(_U(),l?.()?document.activeElement instanceof HTMLElement&&document.activeElement.blur():u?.())},F=r.length>1&&!s,I=e=>t=>{n||(t.preventDefault(),t.stopPropagation(),w.current=Date.now(),e())},L=e=>()=>{n||Date.now()-w.current<700||e()};return(0,G.jsxs)(`div`,{ref:T,className:`terminal-controls flex flex-col gap-[6px] border-t border-border bg-elevated p-[6px] ${Ue()?``:`md:hidden`}`,children:[F&&(0,G.jsxs)(`div`,{className:`relative -mx-[6px]`,children:[(0,G.jsx)(`div`,{className:`absolute left-0 top-0 bottom-0 w-3 bg-gradient-to-r from-elevated to-transparent z-10 pointer-events-none`}),(0,G.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-3 bg-gradient-to-l from-elevated to-transparent z-10 pointer-events-none`}),(0,G.jsx)(`div`,{className:`flex items-center gap-[6px] overflow-x-auto px-[6px] scrollbar-none scroll-smooth snap-x snap-mandatory`,style:{WebkitOverflowScrolling:`touch`},children:r.map((e,t)=>(0,G.jsxs)(`button`,{type:`button`,className:`
|
|
255
255
|
terminal-key flex items-center justify-center gap-1.5 shrink-0 snap-start
|
|
256
|
-
h-
|
|
256
|
+
h-[44px] min-w-[44px] px-2.5 text-xs font-medium rounded-md
|
|
257
257
|
active:scale-95 transition-transform duration-75
|
|
258
258
|
select-none touch-manipulation
|
|
259
259
|
${e.id===i?`bg-accent/20 text-accent border border-accent/40`:`bg-surface border border-border text-secondary`}
|
|
260
|
-
`,onClick:()=>N(e.id),children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0 ${yU[e.status]}`}),(0,G.jsx)(`span`,{className:`truncate`,children:t+1})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`
|
|
260
|
+
`,onClick:()=>N(e.id),children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0 ${yU[e.status]}`}),(0,G.jsx)(`span`,{className:`truncate`,children:t+1})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`grid grid-flow-col auto-cols-[44px] items-center gap-[4px] overflow-x-auto scrollbar-none`,children:[(0,G.jsx)(`button`,{type:`button`,className:`
|
|
261
261
|
terminal-key
|
|
262
262
|
flex items-center justify-center
|
|
263
|
-
|
|
263
|
+
size-[44px] p-0
|
|
264
264
|
text-sm font-medium
|
|
265
265
|
rounded-md
|
|
266
266
|
active:scale-95
|
|
@@ -271,7 +271,7 @@ ${s.join(`
|
|
|
271
271
|
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(D),onClick:L(D),disabled:n,children:`ctrl`}),hU.map((e,t)=>(0,G.jsx)(`button`,{type:`button`,className:`
|
|
272
272
|
terminal-key
|
|
273
273
|
flex items-center justify-center
|
|
274
|
-
|
|
274
|
+
size-[44px] p-0
|
|
275
275
|
text-sm font-medium
|
|
276
276
|
bg-surface border border-border rounded-md
|
|
277
277
|
active:bg-hover active:scale-95
|
|
@@ -283,7 +283,7 @@ ${s.join(`
|
|
|
283
283
|
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(()=>E(e.key)),onClick:L(()=>E(e.key)),disabled:n,children:e.label},`left-${t}`)),(0,G.jsx)(dU,{onSendKey:O,disabled:n,onRefocus:c,isKeyboardVisible:l}),(0,G.jsx)($H,{onSendKey:O,disabled:n,onRefocus:c,isKeyboardVisible:l}),gU.map((e,t)=>(0,G.jsx)(`button`,{type:`button`,"aria-label":e.ariaLabel,className:`
|
|
284
284
|
terminal-key
|
|
285
285
|
flex items-center justify-center
|
|
286
|
-
|
|
286
|
+
size-[44px] p-0
|
|
287
287
|
text-sm font-medium
|
|
288
288
|
bg-surface border border-border rounded-md
|
|
289
289
|
active:bg-hover active:scale-95
|
|
@@ -295,7 +295,7 @@ ${s.join(`
|
|
|
295
295
|
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(()=>E(e.key)),onClick:L(()=>E(e.key)),disabled:n,children:e.label},`right-${t}`)),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Paste`,className:`
|
|
296
296
|
terminal-key
|
|
297
297
|
flex items-center justify-center
|
|
298
|
-
|
|
298
|
+
size-[44px] p-0
|
|
299
299
|
text-sm font-medium
|
|
300
300
|
bg-surface border border-border rounded-md
|
|
301
301
|
active:bg-hover active:scale-95
|
|
@@ -306,7 +306,7 @@ ${s.join(`
|
|
|
306
306
|
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(()=>{A()}),onClick:L(()=>{A()}),disabled:n,children:pU}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Show keyboard`,className:`
|
|
307
307
|
terminal-key
|
|
308
308
|
flex items-center justify-center
|
|
309
|
-
|
|
309
|
+
size-[44px] p-0
|
|
310
310
|
text-sm font-medium
|
|
311
311
|
bg-surface border border-border rounded-md
|
|
312
312
|
active:bg-hover active:scale-95
|
|
@@ -314,9 +314,9 @@ ${s.join(`
|
|
|
314
314
|
select-none touch-manipulation
|
|
315
315
|
text-secondary
|
|
316
316
|
${n?`opacity-50`:``}
|
|
317
|
-
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(P),onClick:L(P),disabled:n,children:mU})]}),d&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,children:(0,G.jsxs)(`div`,{ref:C,className:`mx-4 w-full max-w-sm rounded-lg border border-border bg-elevated p-4 shadow-xl`,children:[(0,G.jsx)(`h3`,{className:`text-base font-medium text-primary mb-1 text-balance`,children:`Paste`}),(0,G.jsx)(`p`,{className:`text-xs text-muted mb-3 text-pretty`,children:`Text or image (long-press → Paste)`}),_?(0,G.jsx)(`div`,{className:`w-full h-11 flex items-center justify-center bg-surface border border-border rounded-md text-secondary`,children:`Uploading image...`}):(0,G.jsx)(`input`,{ref:S,type:`text`,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),j()):e.key===`Escape`&&(e.preventDefault(),M())},placeholder:`Paste here...`,className:`w-full h-11 px-3 text-[16px] bg-surface border border-border rounded-md text-primary placeholder:text-muted outline-none focus:border-accent`,style:{fontSize:`16px`}}),h&&(0,G.jsx)(`p`,{className:`mt-2 text-xs text-danger`,role:`alert`,children:h}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 mt-4`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:M,className:`px-4 py-2 text-sm font-medium text-secondary bg-surface border border-border rounded-md active:scale-95 transition-transform`,children:`Cancel`}),(0,G.jsx)(`button`,{type:`button`,onClick:j,disabled:_,className:`px-4 py-2 text-sm font-medium bg-accent text-white rounded-md active:scale-95 transition-transform disabled:opacity-50`,children:`Send`})]})]})})]})}function SU({isOpen:e,onClose:t,sessions:n,hibernatingSessions:r=[],historySessions:i=[],selectedSessionId:a,selectedHibernatingSessionId:o=null,onSelect:s,onSelectHibernating:c,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:p,loading:m,error:h}){let g=fd(),_=(0,x.useRef)(null),v=(0,x.useRef)(null);(0,x.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),(0,x.useEffect)(()=>{e?(v.current=document.activeElement,_.current?.focus()):v.current&&=(v.current.focus(),null)},[e]),(0,x.useEffect)(()=>{if(!e)return;let n=_.current;if(!n)return;let r=0,i=0,a=e=>{let t=e.touches[0];r=t.clientX,i=t.clientY},o=e=>{let n=e.changedTouches[0],a=r-n.clientX,o=Math.abs(n.clientY-i);a>=50&&a>o*1.5&&(`vibrate`in navigator&&navigator.vibrate(10),t())};return n.addEventListener(`touchstart`,a,{passive:!0}),n.addEventListener(`touchend`,o,{passive:!0}),()=>{n.removeEventListener(`touchstart`,a),n.removeEventListener(`touchend`,o)}},[e,t]);let y=e=>{s(e),t()},b=e=>{c?.(e),t()},S=g?{transition:`none`}:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`session-drawer-backdrop ${e?`open`:``}`,style:S,onClick:t,"aria-hidden":`true`}),(0,G.jsxs)(`div`,{ref:_,className:`session-drawer ${e?`open`:``}`,style:S,role:`dialog`,"aria-modal":`true`,"aria-label":`Session list`,tabIndex:-1,children:[(0,G.jsx)(KT,{sessions:n,hibernatingSessions:r,historySessions:i,selectedSessionId:a,selectedHibernatingSessionId:o,onSelect:y,onSelectHibernating:b,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:()=>{p()!==!1&&t()},loading:m,error:h}),(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border px-2 pt-2`,style:{paddingBottom:`max(0.5rem, env(safe-area-inset-bottom, 0.5rem))`},children:(0,G.jsx)(`button`,{onClick:()=>{p()!==!1&&t()},className:`btn btn-primary w-full py-2 text-sm`,children:`New Session`})})]})]})}var CU={working:`Working`,waiting:`Waiting`,permission:`Needs Input`,unknown:`Unknown`},wU={working:`text-working`,waiting:`text-waiting`,permission:`text-approval`,unknown:`text-muted`},TU={working:`bg-green-500/35 text-white`,waiting:`bg-blue-500/35 text-white`,permission:`bg-amber-500/35 text-white`,unknown:`bg-gray-500/35 text-white`},EU={working:`bg-working text-white`,waiting:`bg-waiting text-white`,permission:`bg-approval text-white`,unknown:`bg-muted text-white`};function DU(){`vibrate`in navigator&&navigator.vibrate(10)}function OU({session:e,sessions:t,hibernatingSession:n=null,hibernatingSessions:r=[],historySessions:i=[],connectionStatus:a,connectionEpoch:o=0,sendMessage:s,subscribe:c,onClose:l,onSelectSession:u,onSelectHibernatingSession:d,onNewSession:f,onKillSession:p,onRenameSession:m,onResumeSession:h,onHibernateSession:g,onMoveToHistory:_,onOpenSettings:v,loading:y=!1,error:b=null}){let S=PH[NH(e=>e.theme)],C=U(e=>e.useWebGL),w=U(e=>e.fontSize),T=U(e=>e.lineHeight),E=U(e=>e.letterSpacing),D=ee(U(e=>e.fontOption),U(e=>e.customFontFamily)),O=Je(Ke(U(e=>e.shortcutModifier))),k=Ue(),A=kH(),[j,M]=(0,x.useState)(!1),[N,P]=(0,x.useState)(!1),[F,I]=(0,x.useState)(!1),[L,R]=(0,x.useState)(!1),[z,B]=(0,x.useState)(!1),[V,H]=(0,x.useState)(!1),[te,ne]=(0,x.useState)(``),W=(0,x.useRef)(!1),re=(0,x.useRef)(null),ae=(0,x.useRef)(null),oe=(0,x.useRef)(null),se=(0,x.useRef)(null),ce=e?.remote===!0,le=Km(e=>e.remoteAllowControl),de=Km(e=>e.remoteAllowAttach),fe=Km(e=>e.preferWindowName),pe=ce&&!de,he=!ce||le&&e?.source===`managed`,_e=n?n.displayName||Fm(n.projectPath)||n.sessionId.slice(0,8):``,ve=n?Fm(n.projectPath):``,ye=n?Pm(n.lastActivityAt):``,be=!!e&&!!g&&e.source===`managed`&&!e.remote&&!!e.agentSessionId?.trim(),{containerRef:xe,terminalRef:Se,inTmuxCopyModeRef:Ce,appMouseRef:Te,setTmuxCopyMode:De,isSwitching:Oe,pendingClipboardOffer:ke,copyPendingClipboardOffer:Ae,dismissPendingClipboardOffer:je}=OH({sessionId:e?.id??null,tmuxTarget:e?.tmuxWindow??null,agentType:e?.agentType,allowAttach:!pe,connectionStatus:a,connectionEpoch:o,sendMessage:s,subscribe:c,theme:S,fontSize:w,lineHeight:T,letterSpacing:E,fontFamily:D,useWebGL:C,onScrollChange:e=>{M(!e)}}),Ne=(0,x.useCallback)(()=>{!e||pe||(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1),Se.current?.scrollToBottom())},[e,pe,s,De,Se]),Pe=(0,x.useCallback)(()=>{B(!0),DU()},[]),Fe=MH({enabled:A||k,isOpen:z,onOpen:Pe});(0,x.useEffect)(()=>{!A&&!k&&z&&B(!1)},[z,A,k]),AH(ae,L,(0,x.useCallback)(()=>R(!1),[])),(0,x.useEffect)(()=>{V&&oe.current&&(oe.current.focus(),oe.current.select())},[V]),(0,x.useEffect)(()=>{F&&se.current&&se.current.focus()},[F]),jH(F,(0,x.useCallback)(()=>I(!1),[]));let Le=()=>{e&&(p(e.id,`terminal_confirm_modal`),I(!1))},Re=()=>{!e||!be||(g?.(e.agentSessionId.trim()),R(!1))},ze=()=>{e&&(ne(e.agentSessionName||e.name),H(!0),R(!1))},Be=()=>{if(!e)return;let t=te.trim(),n=e.agentSessionName||e.name;t&&t!==n&&m(e.id,t),H(!1)},Ve=e=>{e.key===`Enter`?(e.preventDefault(),Be()):e.key===`Escape`&&(e.preventDefault(),H(!1))};(0,x.useEffect)(()=>{if(!k||!e){P(!1);return}let t=xe.current;if(!t)return;let n=e=>{let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},r=()=>{let e=t.querySelector(`.xterm-accessibility`),n=t.querySelector(`.xterm-accessibility-tree`);!e||!n||(e.style.setProperty(`opacity`,`0`),n.style.setProperty(`opacity`,`0`),e.style.setProperty(`-webkit-user-select`,`none`),e.style.setProperty(`user-select`,`none`),n.style.setProperty(`-webkit-user-select`,`none`),n.style.setProperty(`user-select`,`none`),e.offsetHeight,requestAnimationFrame(()=>{e.style.removeProperty(`opacity`),n.style.removeProperty(`opacity`),e.style.removeProperty(`-webkit-user-select`),e.style.removeProperty(`user-select`),n.style.removeProperty(`-webkit-user-select`),n.style.removeProperty(`user-select`)}))},i=()=>{W.current=!1;let e=window.getSelection();try{e?.removeAllRanges()}catch{}Se.current?.clearSelection(),r(),P(!1)};re.current=i;let a=()=>{let e=window.getSelection();if(!e||e.rangeCount===0||e.isCollapsed){W.current?i():P(e=>e&&!1);return}let t=n(e);if(!t&&W.current){i();return}W.current=t;let r=t;P(e=>e===r?e:r)},o=()=>{let e=window.getSelection();!e||e.isCollapsed||n(e)&&setTimeout(i,0)},s=null,c=!1,l=e=>{if(e.touches.length===1){let t=e.touches[0];s={x:t.clientX,y:t.clientY},c=!1}},u=e=>{if(c||!s||e.touches.length!==1)return;let t=e.touches[0],n=Math.abs(t.clientX-s.x),r=Math.abs(t.clientY-s.y);(n>10||r>10)&&(c=!0)},d=e=>{let r=c;s=null,c=!1;let a=window.getSelection();if(!a||a.rangeCount===0||a.isCollapsed){P(!1);return}let o=t.querySelector(`.xterm-accessibility-tree`);if(!o)return;if(!n(a)){P(!1);return}if(r)return;let l=e.target,u=l?o.contains(l):!1,d=!1;if(u&&l)try{d=a.containsNode(l,!0)}catch{d=!1}(!u||!d)&&setTimeout(i,0)};return document.addEventListener(`selectionchange`,a),document.addEventListener(`copy`,o),document.addEventListener(`touchstart`,l,{passive:!0}),document.addEventListener(`touchmove`,u,{passive:!0}),document.addEventListener(`touchend`,d,{passive:!0}),()=>{document.removeEventListener(`selectionchange`,a),document.removeEventListener(`copy`,o),document.removeEventListener(`touchstart`,l),document.removeEventListener(`touchmove`,u),document.removeEventListener(`touchend`,d),re.current=null,W.current=!1}},[xe,k,e?.id]),(0,x.useEffect)(()=>{if(!k)return;let t=xe.current;if(!t)return;let n=null,r=()=>{let e=Se.current,r=t.querySelector(`.xterm`);if(!e||!r)return;let i=r.querySelector(`.xterm-screen`),a=r.querySelector(`.xterm-accessibility`),o=r.querySelector(`.xterm-accessibility-tree`);if(!i||!a||!o)return;n||=HH(o);let s=r.getBoundingClientRect(),c=i.getBoundingClientRect(),l=c.left-s.left,u=c.top-s.top;Object.assign(a.style,{left:`${l}px`,top:`${u}px`,right:`auto`,bottom:`auto`,width:`${c.width}px`,height:`${c.height}px`});let d=c.width/e.cols,f=c.height/e.rows,p=document.createElement(`span`);p.textContent=`0`.repeat(200),p.style.cssText=`position:absolute;visibility:hidden;white-space:pre;pointer-events:none;letter-spacing:0px`,o.appendChild(p);let m=p.getBoundingClientRect().width/200;p.remove();let h=Math.max(-2,Math.min(2,d-m));t.style.setProperty(`--xterm-font-size`,`${e.options.fontSize}px`),t.style.setProperty(`--xterm-cell-height`,`${f}px`),t.style.setProperty(`--xterm-a11y-letter-spacing`,`${h}px`)},i=performance.now();r();let a=Math.round(performance.now()-i);a>10&&QT(`switch_a11y_overlay`,{sessionId:e?.id,a11yMs:a});let o=window.requestAnimationFrame(r),s=window.setTimeout(r,100),c=()=>window.requestAnimationFrame(r);return window.visualViewport?.addEventListener(`resize`,c),window.addEventListener(`orientationchange`,c),()=>{window.cancelAnimationFrame(o),window.clearTimeout(s),window.visualViewport?.removeEventListener(`resize`,c),window.removeEventListener(`orientationchange`,c),n?.()}},[xe,w,k,e?.id,Se]);let We=(0,x.useRef)(N);(0,x.useEffect)(()=>{We.current=N},[N]);let Ge=(0,x.useRef)(e?.id);(0,x.useEffect)(()=>{Ge.current=e?.id},[e?.id]);let qe=(0,x.useRef)(s);(0,x.useEffect)(()=>{qe.current=s},[s]);let Ye=(0,x.useRef)(!1);(0,x.useEffect)(()=>{let t=xe.current;if(!t||!e?.id||!A&&!k)return;let n={x:0,y:0},r=0,i=!1,a=null,o=0,s=0,c=0,l=Math.round(w*T),u=null,d=null,f=!1,p=null,m=()=>{let e=window.getComputedStyle(t).getPropertyValue(`--xterm-cell-height`).trim(),n=Number.parseFloat(e);return!Number.isNaN(n)&&n>0?n:Math.round(w*T)},h=()=>t.querySelector(`.xterm-helper-textarea`),g=e=>{let n=Se.current;if(!n)return null;let r=(t.querySelector(`.xterm`)?.querySelector(`.xterm-screen`))?.getBoundingClientRect();if(!r||r.width<=0||r.height<=0)return null;let i=r.width/n.cols,a=r.height/n.rows;return i<=0||a<=0?null:{col:Math.min(n.cols,Math.max(1,Math.floor((e.clientX-r.left)/i)+1)),row:Math.min(n.rows,Math.max(1,Math.floor((e.clientY-r.top)/a)+1))}},_=()=>{let e=h();e&&document.activeElement!==e&&(e.disabled=!0)},v=()=>{let e=h();e&&(e.disabled=!1)};_();let y=()=>{if(Ce.current)return;let e=h();e&&(e.disabled=!1,e.focus())},b=()=>{u!==null&&(cancelAnimationFrame(u),u=null),s=0},x=()=>{d!==null&&(clearTimeout(d),d=null)},S=(e,t,n)=>{let r=Ge.current;return r?(qe.current({type:`terminal-input`,sessionId:r,data:`\x1b[<${e};${t.col};${t.row}${n}`}),!0):!1},C=e=>{let t=Ge.current;if(!t||e===0)return!1;let n=Se.current,r=n?.cols??80,i=n?.rows??24,a=Math.floor(r/2),o=Math.floor(i/2),s=e>0?65:64,c=Math.abs(e),l=e<0;for(let e=0;e<c;e++)qe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${s};${a};${o}M`});return l&&!Te.current&&De(!0),l},E=e=>{let t=Ge.current,n=g(e);return!t||!n?!1:(qe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<0;${n.col};${n.row}M\x1b[<0;${n.col};${n.row}m`}),!0)},D=e=>{if(!k||!Te.current)return!1;let t=g(e);return t?(f=!0,p=t,_(),DU(),S(0,t,`M`)):!1},O=e=>{let t=g(e);return t?p&&p.col===t.col&&p.row===t.row?!0:(p=t,S(32,t,`M`)):!1},j=e=>{let t=e?g(e):p;return f=!1,p=null,t?S(0,t,`m`):!1},M=()=>{x(),f=!1,p=null,a=null,s=0,c=0},N=()=>{if(!k)return!1;let e=window.getSelection();if(!e||e.isCollapsed)return!1;let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},P=()=>{!k||!W.current||N()||re.current?.()},F=e=>{if(b(),P(),Fe.current||z){M();return}if(We.current){M();return}if(e.touches.length===1){let t=e.touches[0];if(n={x:t.clientX,y:t.clientY},r=performance.now(),i=!1,a=t.clientY,o=r,s=0,c=0,l=m(),v(),k&&Te.current){let e={clientX:t.clientX,clientY:t.clientY};d=setTimeout(()=>{d=null,!(i||Fe.current||z)&&(We.current||N()||D(e))},350)}}},I=e=>{if(e.touches.length!==1||a===null)return;if(P(),Fe.current||z){M();return}let t=performance.now(),r=e.touches[0],u=r.clientX,d=r.clientY;if(f){e.preventDefault(),e.stopPropagation(),O(r),a=d,o=t;return}if(We.current||N()){M();return}e.preventDefault(),e.stopPropagation();let p=Math.abs(u-n.x),m=Math.abs(d-n.y);!i&&(p>6||m>6)&&(i=!0,x(),_());let h=a-d,g=t-o;if(a=d,o=t,g>0){let e=h/g;s=s*.7+e*.3}c+=h;let v=Math.max(6,l*.6),y=Math.trunc(c/v);y!==0&&(C(y),c-=y*v)},L=e=>{let t=s,n=performance.now()-r;if(x(),f){j(e.changedTouches[0]),M(),e.preventDefault(),e.stopPropagation();return}if(M(),Fe.current||z)return;let a=N();if(We.current&&!a&&re.current?.(),We.current||a){Ce.current&&(Ye.current=!0);return}if(!i){if(k&&n>=350)return;if(Te.current){let t=e.changedTouches[0];if(t&&E(t)){y(),e.preventDefault(),e.stopPropagation();return}}if(Ce.current){e.preventDefault(),e.stopPropagation(),Ye.current=!0;return}y();return}if(Math.abs(t)>.12){let e=t,n=performance.now(),r=()=>{let t=performance.now(),i=t-n;n=t;let a=e*i;c+=a;let o=Math.max(6,l*.6),s=Math.trunc(c/o);s!==0&&(C(s),c-=s*o),e*=.95**(i/16.67),u=Math.abs(e)>.02?requestAnimationFrame(r):null};u=requestAnimationFrame(r)}},ee=e=>{Ye.current&&=(e.preventDefault(),e.stopPropagation(),!1)},R={passive:!0,capture:!0},B={passive:!1,capture:!0},V={passive:!1,capture:!0},H={capture:!0};return t.addEventListener(`touchstart`,F,R),t.addEventListener(`touchmove`,I,B),t.addEventListener(`touchend`,L,V),t.addEventListener(`mousedown`,ee,H),()=>{t.removeEventListener(`touchstart`,F,R),t.removeEventListener(`touchmove`,I,B),t.removeEventListener(`touchend`,L,V),t.removeEventListener(`mousedown`,ee,H),x();let e=h();e&&(e.disabled=!1)}},[e?.id,xe,Se,k,A,z,w,T]);let Xe=(0,x.useCallback)(t=>{!e||pe||s({type:`terminal-input`,sessionId:e.id,data:t})},[e,pe,s]),Ze=(0,x.useCallback)(t=>{!e||pe||(Ce.current&&(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1)),s({type:`terminal-paste`,sessionId:e.id,data:t}))},[e,pe,s,Ce,De]),Qe=(0,x.useCallback)(()=>{let e=xe.current;if(!e)return;let t=e.querySelector(`.xterm-helper-textarea`);t&&(t.removeAttribute(`disabled`),t.focus())},[xe]),$e=(0,x.useCallback)(()=>{if(!e||pe)return;Ce.current&&(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1));let t=xe.current;if(!t)return;let n=t.querySelector(`.xterm-helper-textarea`);n&&(n.removeAttribute(`disabled`),n.focus())},[e,pe,s,xe,Ce,De]),et=(0,x.useCallback)(()=>{if(typeof document>`u`)return!1;let e=xe.current;if(!e)return!1;let t=e.querySelector(`.xterm-helper-textarea`);if(t&&document.activeElement===t)return!0;let n=document.activeElement,r=typeof HTMLInputElement<`u`&&n instanceof HTMLInputElement,i=typeof HTMLTextAreaElement<`u`&&n instanceof HTMLTextAreaElement;return r||i||n&&n.isContentEditable?!1:!!document.documentElement?.classList?.contains(`keyboard-visible`)},[xe]);(0,x.useEffect)(()=>{if(!k)return;let e=xe.current;if(!e)return;let t=e.querySelector(`.xterm-accessibility`),n=e.querySelector(`.xterm-accessibility-tree`);if(!t||!n)return;let r=()=>{let r=e.querySelector(`.xterm-helper-textarea`);r&&document.activeElement===r&&!We.current?(t.style.pointerEvents=`none`,n.style.pointerEvents=`none`):(t.style.removeProperty(`pointer-events`),n.style.removeProperty(`pointer-events`))};return r(),document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,r),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,r)}},[xe,k,N]),(0,x.useEffect)(()=>{let e=xe.current;e&&(e.inert=!!n)},[xe,n]);let tt=(0,x.useMemo)(()=>{if(!fe||t.length===0)return!1;let e=t.map(e=>e.name.trim()).filter(Boolean);return e.length===t.length&&new Set(e).size===t.length},[fe,t]);return(0,G.jsxs)(`section`,{className:`flex flex-1 flex-col bg-base terminal-mobile-overlay md:relative md:inset-auto ${k?`ios-native-term-selection`:``}`,"data-testid":`terminal-panel`,children:[(0,G.jsxs)(`div`,{className:`flex h-10 shrink-0 items-center justify-between border-b border-border bg-elevated px-3 ${e||n?``:`md:hidden`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(`button`,{onClick:()=>B(!0),className:`flex h-7 w-7 items-center justify-center rounded bg-surface border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all md:hidden shrink-0`,"aria-label":`Open session menu`,children:(0,G.jsx)(we,{width:16,height:16})}),e&&he&&(0,G.jsx)(`button`,{onClick:()=>I(!0),className:`hidden md:flex h-7 w-7 items-center justify-center rounded bg-danger/10 border border-danger/30 text-danger hover:bg-danger/20 active:scale-95 transition-all shrink-0`,title:`Kill session (${O}X)`,"aria-label":`Kill session`,children:(0,G.jsx)(He,{width:16,height:16})}),be&&(0,G.jsx)(`button`,{onClick:Re,className:`hidden md:flex h-7 w-7 items-center justify-center rounded border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all shrink-0`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,G.jsx)(Ee,{width:16,height:16})}),e?(0,G.jsxs)(`div`,{className:`flex items-baseline gap-3 min-w-0`,children:[V?(0,G.jsx)(`input`,{ref:oe,type:`text`,value:te,onChange:e=>ne(e.target.value),onBlur:Be,onKeyDown:Ve,className:`w-full max-w-[200px] rounded border border-border bg-surface px-2 py-0.5 text-sm font-medium text-primary outline-none focus:border-accent`}):(0,G.jsx)(`span`,{className:`text-sm font-medium text-primary truncate`,children:e.agentSessionName||e.name}),(0,G.jsx)(`span`,{className:`text-xs shrink-0 ${wU[e.status]}`,children:CU[e.status]})]}):n?(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-primary truncate`,children:_e}),(0,G.jsx)(`span`,{className:`rounded-full bg-blue-500/15 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-blue-400`,children:`Hibernating`})]}):(0,G.jsx)(`span`,{className:`text-sm font-medium text-primary md:hidden`,children:`Sessions`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[a!==`connected`&&(0,G.jsx)(`span`,{className:`text-xs text-approval`,children:a}),(0,G.jsx)(`button`,{onClick:f,className:`flex h-7 w-7 items-center justify-center rounded bg-accent text-white hover:bg-accent/90 active:scale-95 transition-all md:hidden`,title:`New session (${O}N)`,"aria-label":`New session`,children:(0,G.jsx)(Me,{width:16,height:16})}),e&&he&&(0,G.jsx)(`button`,{onClick:()=>I(!0),className:`flex md:hidden h-7 w-7 items-center justify-center rounded bg-danger/10 border border-danger/30 text-danger hover:bg-danger/20 active:scale-95 transition-all`,title:`Kill session (${O}X)`,"aria-label":`Kill session`,children:(0,G.jsx)(He,{width:16,height:16})}),be&&(0,G.jsx)(`button`,{onClick:Re,className:`flex md:hidden h-7 w-7 items-center justify-center rounded border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,G.jsx)(Ee,{width:16,height:16})}),n&&(0,G.jsx)(`button`,{onClick:()=>h(n.sessionId),className:`btn btn-primary h-7 px-2 text-xs md:hidden`,children:`Wake`}),e&&(0,G.jsxs)(`div`,{className:`relative md:hidden`,ref:ae,children:[(0,G.jsx)(`button`,{onClick:()=>R(!L),className:`flex h-7 w-7 items-center justify-center rounded bg-surface border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all`,title:`More options`,"aria-label":`More options`,children:(0,G.jsx)(me,{width:16,height:16})}),L&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-elevated shadow-lg py-1`,children:[he&&(0,G.jsxs)(`button`,{onClick:ze,className:`w-full px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary flex items-center gap-2`,children:[(0,G.jsx)(ge,{width:14,height:14}),`Rename`]}),be&&(0,G.jsxs)(`button`,{onClick:Re,className:`w-full px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary flex items-center gap-2`,children:[(0,G.jsx)(Ee,{width:14,height:14}),`Hibernate`]}),(0,G.jsxs)(`button`,{onClick:()=>{v(),R(!1)},className:`w-full px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary flex items-center gap-2`,children:[(0,G.jsx)(Ie,{width:14,height:14}),`Settings`]})]})]})]})]}),e&&t.length>1&&(0,G.jsxs)(`div`,{className:`relative overflow-hidden bg-elevated border-b border-border md:hidden`,children:[(0,G.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-4 bg-gradient-to-l from-elevated to-transparent z-10 pointer-events-none`}),(0,G.jsx)(`div`,{className:`flex items-center gap-1.5 pl-5 pr-3 py-1.5 overflow-x-auto scrollbar-none scroll-smooth snap-x snap-mandatory`,style:{WebkitOverflowScrolling:`touch`},children:t.map((t,n)=>{let r=t.id===e.id,i=tt?t.name.trim():n+1;return(0,G.jsx)(`button`,{type:`button`,className:`
|
|
317
|
+
`,onMouseDown:e=>e.preventDefault(),onTouchStart:I(P),onClick:L(P),disabled:n,children:mU})]}),d&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,children:(0,G.jsxs)(`div`,{ref:C,className:`mx-4 w-full max-w-sm rounded-lg border border-border bg-elevated p-4 shadow-xl`,children:[(0,G.jsx)(`h3`,{className:`text-base font-medium text-primary mb-1 text-balance`,children:`Paste`}),(0,G.jsx)(`p`,{className:`text-xs text-muted mb-3 text-pretty`,children:`Text or image (long-press → Paste)`}),_?(0,G.jsx)(`div`,{className:`w-full h-11 flex items-center justify-center bg-surface border border-border rounded-md text-secondary`,children:`Uploading image...`}):(0,G.jsx)(`input`,{ref:S,type:`text`,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),j()):e.key===`Escape`&&(e.preventDefault(),M())},placeholder:`Paste here...`,className:`w-full h-11 px-3 text-[16px] bg-surface border border-border rounded-md text-primary placeholder:text-muted outline-none focus:border-accent`,style:{fontSize:`16px`}}),h&&(0,G.jsx)(`p`,{className:`mt-2 text-xs text-danger`,role:`alert`,children:h}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 mt-4`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:M,className:`px-4 py-2 text-sm font-medium text-secondary bg-surface border border-border rounded-md active:scale-95 transition-transform`,children:`Cancel`}),(0,G.jsx)(`button`,{type:`button`,onClick:j,disabled:_,className:`px-4 py-2 text-sm font-medium bg-accent text-white rounded-md active:scale-95 transition-transform disabled:opacity-50`,children:`Send`})]})]})})]})}function SU({isOpen:e,onClose:t,sessions:n,hibernatingSessions:r=[],historySessions:i=[],selectedSessionId:a,selectedHibernatingSessionId:o=null,onSelect:s,onSelectHibernating:c,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:p,loading:m,error:h}){let g=fd(),_=(0,x.useRef)(null),v=(0,x.useRef)(null);(0,x.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),(0,x.useEffect)(()=>{e?(v.current=document.activeElement,_.current?.focus()):v.current&&=(v.current.focus(),null)},[e]),(0,x.useEffect)(()=>{if(!e)return;let n=_.current;if(!n)return;let r=0,i=0,a=e=>{let t=e.touches[0];r=t.clientX,i=t.clientY},o=e=>{let n=e.changedTouches[0],a=r-n.clientX,o=Math.abs(n.clientY-i);a>=50&&a>o*1.5&&(`vibrate`in navigator&&navigator.vibrate(10),t())};return n.addEventListener(`touchstart`,a,{passive:!0}),n.addEventListener(`touchend`,o,{passive:!0}),()=>{n.removeEventListener(`touchstart`,a),n.removeEventListener(`touchend`,o)}},[e,t]);let y=e=>{s(e),t()},b=e=>{c?.(e),t()},S=g?{transition:`none`}:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`session-drawer-backdrop ${e?`open`:``}`,style:S,onClick:t,"aria-hidden":`true`}),(0,G.jsxs)(`div`,{ref:_,className:`session-drawer ${e?`open`:``}`,style:S,role:`dialog`,"aria-modal":`true`,"aria-label":`Session list`,tabIndex:-1,children:[(0,G.jsx)(KT,{sessions:n,hibernatingSessions:r,historySessions:i,selectedSessionId:a,selectedHibernatingSessionId:o,onSelect:y,onSelectHibernating:b,onRename:l,onResume:u,onHibernate:d,onMoveToHistory:f,onNewSession:()=>{p()!==!1&&t()},loading:m,error:h}),(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border px-2 pt-2`,style:{paddingBottom:`max(0.5rem, env(safe-area-inset-bottom, 0.5rem))`},children:(0,G.jsx)(`button`,{onClick:()=>{p()!==!1&&t()},className:`btn btn-primary w-full py-2 text-sm`,children:`New Session`})})]})]})}var CU={working:`Working`,waiting:`Waiting`,permission:`Needs Input`,unknown:`Unknown`},wU={working:`text-working`,waiting:`text-waiting`,permission:`text-approval`,unknown:`text-muted`},TU={working:`bg-green-500/35 text-white`,waiting:`bg-blue-500/35 text-white`,permission:`bg-amber-500/35 text-white`,unknown:`bg-gray-500/35 text-white`},EU={working:`bg-working text-white`,waiting:`bg-waiting text-white`,permission:`bg-approval text-white`,unknown:`bg-muted text-white`};function DU(){`vibrate`in navigator&&navigator.vibrate(10)}function OU({session:e,sessions:t,hibernatingSession:n=null,hibernatingSessions:r=[],historySessions:i=[],connectionStatus:a,connectionEpoch:o=0,sendMessage:s,subscribe:c,onClose:l,onSelectSession:u,onSelectHibernatingSession:d,onNewSession:f,onKillSession:p,onRenameSession:m,onResumeSession:h,onHibernateSession:g,onMoveToHistory:_,onOpenSettings:v,loading:y=!1,error:b=null}){let S=PH[NH(e=>e.theme)],C=U(e=>e.useWebGL),w=U(e=>e.fontSize),T=U(e=>e.lineHeight),E=U(e=>e.letterSpacing),D=ee(U(e=>e.fontOption),U(e=>e.customFontFamily)),O=Je(Ke(U(e=>e.shortcutModifier))),k=Ue(),A=kH(),[j,M]=(0,x.useState)(!1),[N,P]=(0,x.useState)(!1),[F,I]=(0,x.useState)(!1),[L,R]=(0,x.useState)(!1),[z,B]=(0,x.useState)(!1),[V,H]=(0,x.useState)(!1),[te,ne]=(0,x.useState)(``),W=(0,x.useRef)(!1),re=(0,x.useRef)(null),ae=(0,x.useRef)(null),oe=(0,x.useRef)(null),se=(0,x.useRef)(null),ce=e?.remote===!0,le=Km(e=>e.remoteAllowControl),de=Km(e=>e.remoteAllowAttach),fe=Km(e=>e.preferWindowName),pe=ce&&!de,he=!ce||le&&e?.source===`managed`,_e=n?n.displayName||Fm(n.projectPath)||n.sessionId.slice(0,8):``,ve=n?Fm(n.projectPath):``,ye=n?Pm(n.lastActivityAt):``,be=!!e&&!!g&&e.source===`managed`&&!e.remote&&!!e.agentSessionId?.trim(),{containerRef:xe,terminalRef:Se,inTmuxCopyModeRef:Ce,appMouseRef:Te,setTmuxCopyMode:De,isSwitching:Oe,pendingClipboardOffer:ke,copyPendingClipboardOffer:Ae,dismissPendingClipboardOffer:je}=OH({sessionId:e?.id??null,tmuxTarget:e?.tmuxWindow??null,agentType:e?.agentType,allowAttach:!pe,connectionStatus:a,connectionEpoch:o,sendMessage:s,subscribe:c,theme:S,fontSize:w,lineHeight:T,letterSpacing:E,fontFamily:D,useWebGL:C,onScrollChange:e=>{M(!e)}}),Ne=(0,x.useCallback)(()=>{!e||pe||(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1),Se.current?.scrollToBottom())},[e,pe,s,De,Se]),Pe=(0,x.useCallback)(()=>{B(!0),DU()},[]),Fe=MH({enabled:A||k,isOpen:z,onOpen:Pe});(0,x.useEffect)(()=>{!A&&!k&&z&&B(!1)},[z,A,k]),AH(ae,L,(0,x.useCallback)(()=>R(!1),[])),(0,x.useEffect)(()=>{V&&oe.current&&(oe.current.focus(),oe.current.select())},[V]),(0,x.useEffect)(()=>{F&&se.current&&se.current.focus()},[F]),jH(F,(0,x.useCallback)(()=>I(!1),[]));let Le=()=>{e&&(p(e.id,`terminal_confirm_modal`),I(!1))},Re=()=>{!e||!be||(g?.(e.agentSessionId.trim()),R(!1))},ze=()=>{e&&(ne(e.agentSessionName||e.name),H(!0),R(!1))},Be=()=>{if(!e)return;let t=te.trim(),n=e.agentSessionName||e.name;t&&t!==n&&m(e.id,t),H(!1)},Ve=e=>{e.key===`Enter`?(e.preventDefault(),Be()):e.key===`Escape`&&(e.preventDefault(),H(!1))};(0,x.useEffect)(()=>{if(!k||!e){P(!1);return}let t=xe.current;if(!t)return;let n=e=>{let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},r=()=>{let e=t.querySelector(`.xterm-accessibility`),n=t.querySelector(`.xterm-accessibility-tree`);!e||!n||(e.style.setProperty(`opacity`,`0`),n.style.setProperty(`opacity`,`0`),e.style.setProperty(`-webkit-user-select`,`none`),e.style.setProperty(`user-select`,`none`),n.style.setProperty(`-webkit-user-select`,`none`),n.style.setProperty(`user-select`,`none`),e.offsetHeight,requestAnimationFrame(()=>{e.style.removeProperty(`opacity`),n.style.removeProperty(`opacity`),e.style.removeProperty(`-webkit-user-select`),e.style.removeProperty(`user-select`),n.style.removeProperty(`-webkit-user-select`),n.style.removeProperty(`user-select`)}))},i=()=>{W.current=!1;let e=window.getSelection();try{e?.removeAllRanges()}catch{}Se.current?.clearSelection(),r(),P(!1)};re.current=i;let a=()=>{let e=window.getSelection();if(!e||e.rangeCount===0||e.isCollapsed){W.current?i():P(e=>e&&!1);return}let t=n(e);if(!t&&W.current){i();return}W.current=t;let r=t;P(e=>e===r?e:r)},o=()=>{let e=window.getSelection();!e||e.isCollapsed||n(e)&&setTimeout(i,0)},s=null,c=!1,l=e=>{if(e.touches.length===1){let t=e.touches[0];s={x:t.clientX,y:t.clientY},c=!1}},u=e=>{if(c||!s||e.touches.length!==1)return;let t=e.touches[0],n=Math.abs(t.clientX-s.x),r=Math.abs(t.clientY-s.y);(n>10||r>10)&&(c=!0)},d=e=>{let r=c;s=null,c=!1;let a=window.getSelection();if(!a||a.rangeCount===0||a.isCollapsed){P(!1);return}let o=t.querySelector(`.xterm-accessibility-tree`);if(!o)return;if(!n(a)){P(!1);return}if(r)return;let l=e.target,u=l?o.contains(l):!1,d=!1;if(u&&l)try{d=a.containsNode(l,!0)}catch{d=!1}(!u||!d)&&setTimeout(i,0)};return document.addEventListener(`selectionchange`,a),document.addEventListener(`copy`,o),document.addEventListener(`touchstart`,l,{passive:!0}),document.addEventListener(`touchmove`,u,{passive:!0}),document.addEventListener(`touchend`,d,{passive:!0}),()=>{document.removeEventListener(`selectionchange`,a),document.removeEventListener(`copy`,o),document.removeEventListener(`touchstart`,l),document.removeEventListener(`touchmove`,u),document.removeEventListener(`touchend`,d),re.current=null,W.current=!1}},[xe,k,e?.id]),(0,x.useEffect)(()=>{if(!k)return;let t=xe.current;if(!t)return;let n=null,r=()=>{let e=Se.current,r=t.querySelector(`.xterm`);if(!e||!r)return;let i=r.querySelector(`.xterm-screen`),a=r.querySelector(`.xterm-accessibility`),o=r.querySelector(`.xterm-accessibility-tree`);if(!i||!a||!o)return;n||=HH(o);let s=r.getBoundingClientRect(),c=i.getBoundingClientRect(),l=c.left-s.left,u=c.top-s.top;Object.assign(a.style,{left:`${l}px`,top:`${u}px`,right:`auto`,bottom:`auto`,width:`${c.width}px`,height:`${c.height}px`});let d=c.width/e.cols,f=c.height/e.rows,p=document.createElement(`span`);p.textContent=`0`.repeat(200),p.style.cssText=`position:absolute;visibility:hidden;white-space:pre;pointer-events:none;letter-spacing:0px`,o.appendChild(p);let m=p.getBoundingClientRect().width/200;p.remove();let h=Math.max(-2,Math.min(2,d-m));t.style.setProperty(`--xterm-font-size`,`${e.options.fontSize}px`),t.style.setProperty(`--xterm-cell-height`,`${f}px`),t.style.setProperty(`--xterm-a11y-letter-spacing`,`${h}px`)},i=performance.now();r();let a=Math.round(performance.now()-i);a>10&&QT(`switch_a11y_overlay`,{sessionId:e?.id,a11yMs:a});let o=window.requestAnimationFrame(r),s=window.setTimeout(r,100),c=()=>window.requestAnimationFrame(r);return window.visualViewport?.addEventListener(`resize`,c),window.addEventListener(`orientationchange`,c),()=>{window.cancelAnimationFrame(o),window.clearTimeout(s),window.visualViewport?.removeEventListener(`resize`,c),window.removeEventListener(`orientationchange`,c),n?.()}},[xe,w,k,e?.id,Se]);let We=(0,x.useRef)(N);(0,x.useEffect)(()=>{We.current=N},[N]);let Ge=(0,x.useRef)(e?.id);(0,x.useEffect)(()=>{Ge.current=e?.id},[e?.id]);let qe=(0,x.useRef)(s);(0,x.useEffect)(()=>{qe.current=s},[s]);let Ye=(0,x.useRef)(!1);(0,x.useEffect)(()=>{let t=xe.current;if(!t||!e?.id||!A&&!k)return;let n={x:0,y:0},r=0,i=!1,a=null,o=0,s=0,c=0,l=Math.round(w*T),u=null,d=null,f=!1,p=null,m=()=>{let e=window.getComputedStyle(t).getPropertyValue(`--xterm-cell-height`).trim(),n=Number.parseFloat(e);return!Number.isNaN(n)&&n>0?n:Math.round(w*T)},h=()=>t.querySelector(`.xterm-helper-textarea`),g=e=>{let n=Se.current;if(!n)return null;let r=(t.querySelector(`.xterm`)?.querySelector(`.xterm-screen`))?.getBoundingClientRect();if(!r||r.width<=0||r.height<=0)return null;let i=r.width/n.cols,a=r.height/n.rows;return i<=0||a<=0?null:{col:Math.min(n.cols,Math.max(1,Math.floor((e.clientX-r.left)/i)+1)),row:Math.min(n.rows,Math.max(1,Math.floor((e.clientY-r.top)/a)+1))}},_=()=>{let e=h();e&&document.activeElement!==e&&(e.disabled=!0)},v=()=>{let e=h();e&&(e.disabled=!1)};_();let y=()=>{if(Ce.current)return;let e=h();e&&(e.disabled=!1,e.focus())},b=()=>{u!==null&&(cancelAnimationFrame(u),u=null),s=0},x=()=>{d!==null&&(clearTimeout(d),d=null)},S=(e,t,n)=>{let r=Ge.current;return r?(qe.current({type:`terminal-input`,sessionId:r,data:`\x1b[<${e};${t.col};${t.row}${n}`}),!0):!1},C=e=>{let t=Ge.current;if(!t||e===0)return!1;let n=Se.current,r=n?.cols??80,i=n?.rows??24,a=Math.floor(r/2),o=Math.floor(i/2),s=e>0?65:64,c=Math.abs(e),l=e<0;for(let e=0;e<c;e++)qe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${s};${a};${o}M`});return l&&!Te.current&&De(!0),l},E=e=>{let t=Ge.current,n=g(e);return!t||!n?!1:(qe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<0;${n.col};${n.row}M\x1b[<0;${n.col};${n.row}m`}),!0)},D=e=>{if(!k||!Te.current)return!1;let t=g(e);return t?(f=!0,p=t,_(),DU(),S(0,t,`M`)):!1},O=e=>{let t=g(e);return t?p&&p.col===t.col&&p.row===t.row?!0:(p=t,S(32,t,`M`)):!1},j=e=>{let t=e?g(e):p;return f=!1,p=null,t?S(0,t,`m`):!1},M=()=>{x(),f=!1,p=null,a=null,s=0,c=0},N=()=>{if(!k)return!1;let e=window.getSelection();if(!e||e.isCollapsed)return!1;let n=t.querySelector(`.xterm-accessibility-tree`);if(!n)return!1;let r=e.anchorNode,i=e.focusNode;return!!r&&n.contains(r)||!!i&&n.contains(i)},P=()=>{!k||!W.current||N()||re.current?.()},F=e=>{if(b(),P(),Fe.current||z){M();return}if(We.current){M();return}if(e.touches.length===1){let t=e.touches[0];if(n={x:t.clientX,y:t.clientY},r=performance.now(),i=!1,a=t.clientY,o=r,s=0,c=0,l=m(),v(),k&&Te.current){let e={clientX:t.clientX,clientY:t.clientY};d=setTimeout(()=>{d=null,!(i||Fe.current||z)&&(We.current||N()||D(e))},350)}}},I=e=>{if(e.touches.length!==1||a===null)return;if(P(),Fe.current||z){M();return}let t=performance.now(),r=e.touches[0],u=r.clientX,d=r.clientY;if(f){e.preventDefault(),e.stopPropagation(),O(r),a=d,o=t;return}if(We.current||N()){M();return}e.preventDefault(),e.stopPropagation();let p=Math.abs(u-n.x),m=Math.abs(d-n.y);!i&&(p>6||m>6)&&(i=!0,x(),_());let h=a-d,g=t-o;if(a=d,o=t,g>0){let e=h/g;s=s*.7+e*.3}c+=h;let v=Math.max(6,l*.6),y=Math.trunc(c/v);y!==0&&(C(y),c-=y*v)},L=e=>{let t=s,n=performance.now()-r;if(x(),f){j(e.changedTouches[0]),M(),e.preventDefault(),e.stopPropagation();return}if(M(),Fe.current||z)return;let a=N();if(We.current&&!a&&re.current?.(),We.current||a){Ce.current&&(Ye.current=!0);return}if(!i){if(k&&n>=350)return;if(Te.current){let t=e.changedTouches[0];if(t&&E(t)){y(),e.preventDefault(),e.stopPropagation();return}}if(Ce.current){e.preventDefault(),e.stopPropagation(),Ye.current=!0;return}y();return}if(Math.abs(t)>.12){let e=t,n=performance.now(),r=()=>{let t=performance.now(),i=t-n;n=t;let a=e*i;c+=a;let o=Math.max(6,l*.6),s=Math.trunc(c/o);s!==0&&(C(s),c-=s*o),e*=.95**(i/16.67),u=Math.abs(e)>.02?requestAnimationFrame(r):null};u=requestAnimationFrame(r)}},ee=e=>{Ye.current&&=(e.preventDefault(),e.stopPropagation(),!1)},R={passive:!0,capture:!0},B={passive:!1,capture:!0},V={passive:!1,capture:!0},H={capture:!0};return t.addEventListener(`touchstart`,F,R),t.addEventListener(`touchmove`,I,B),t.addEventListener(`touchend`,L,V),t.addEventListener(`mousedown`,ee,H),()=>{t.removeEventListener(`touchstart`,F,R),t.removeEventListener(`touchmove`,I,B),t.removeEventListener(`touchend`,L,V),t.removeEventListener(`mousedown`,ee,H),x();let e=h();e&&(e.disabled=!1)}},[e?.id,xe,Se,k,A,z,w,T]);let Xe=(0,x.useCallback)(t=>{!e||pe||s({type:`terminal-input`,sessionId:e.id,data:t})},[e,pe,s]),Ze=(0,x.useCallback)(t=>{!e||pe||(Ce.current&&(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1)),s({type:`terminal-paste`,sessionId:e.id,data:t}))},[e,pe,s,Ce,De]),Qe=(0,x.useCallback)(()=>{let e=xe.current;if(!e)return;let t=e.querySelector(`.xterm-helper-textarea`);t&&(t.removeAttribute(`disabled`),t.focus())},[xe]),$e=(0,x.useCallback)(()=>{if(!e||pe)return;Ce.current&&(s({type:`tmux-cancel-copy-mode`,sessionId:e.id}),De(!1));let t=xe.current;if(!t)return;let n=t.querySelector(`.xterm-helper-textarea`);n&&(n.removeAttribute(`disabled`),n.focus())},[e,pe,s,xe,Ce,De]),et=(0,x.useCallback)(()=>{if(typeof document>`u`)return!1;let e=xe.current;if(!e)return!1;let t=e.querySelector(`.xterm-helper-textarea`);if(t&&document.activeElement===t)return!0;let n=document.activeElement,r=typeof HTMLInputElement<`u`&&n instanceof HTMLInputElement,i=typeof HTMLTextAreaElement<`u`&&n instanceof HTMLTextAreaElement;return r||i||n&&n.isContentEditable?!1:!!document.documentElement?.classList?.contains(`keyboard-visible`)},[xe]);(0,x.useEffect)(()=>{if(!k)return;let e=xe.current;if(!e)return;let t=e.querySelector(`.xterm-accessibility`),n=e.querySelector(`.xterm-accessibility-tree`);if(!t||!n)return;let r=()=>{let r=e.querySelector(`.xterm-helper-textarea`);r&&document.activeElement===r&&!We.current?(t.style.pointerEvents=`none`,n.style.pointerEvents=`none`):(t.style.removeProperty(`pointer-events`),n.style.removeProperty(`pointer-events`))};return r(),document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,r),()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,r)}},[xe,k,N]),(0,x.useEffect)(()=>{let e=xe.current;e&&(e.inert=!!n)},[xe,n]);let tt=(0,x.useMemo)(()=>{if(!fe||t.length===0)return!1;let e=t.map(e=>e.name.trim()).filter(Boolean);return e.length===t.length&&new Set(e).size===t.length},[fe,t]);return(0,G.jsxs)(`section`,{className:`flex flex-1 flex-col bg-base terminal-mobile-overlay md:relative md:inset-auto ${k?`ios-native-term-selection`:``}`,"data-testid":`terminal-panel`,children:[(0,G.jsxs)(`div`,{className:`flex min-h-[52px] shrink-0 items-center justify-between border-b border-border bg-elevated px-[6px] md:h-10 md:min-h-0 md:px-3 ${e||n?``:`md:hidden`}`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-[7px] md:gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>B(!0),className:`flex size-[44px] shrink-0 items-center justify-center rounded border border-border bg-surface text-secondary transition-all hover:bg-hover hover:text-primary active:scale-95 md:hidden`,"aria-label":`Open session menu`,children:(0,G.jsx)(we,{width:16,height:16})}),e&&he&&(0,G.jsx)(`button`,{onClick:()=>I(!0),className:`hidden md:flex h-7 w-7 items-center justify-center rounded bg-danger/10 border border-danger/30 text-danger hover:bg-danger/20 active:scale-95 transition-all shrink-0`,title:`Kill session (${O}X)`,"aria-label":`Kill session`,children:(0,G.jsx)(He,{width:16,height:16})}),be&&(0,G.jsx)(`button`,{onClick:Re,className:`hidden md:flex h-7 w-7 items-center justify-center rounded border border-border text-secondary hover:bg-hover hover:text-primary active:scale-95 transition-all shrink-0`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,G.jsx)(Ee,{width:16,height:16})}),e?(0,G.jsxs)(`div`,{className:`flex min-w-[72px] flex-col items-start gap-px leading-none md:min-w-0 md:flex-row md:items-baseline md:gap-3 md:leading-normal`,children:[V?(0,G.jsx)(`input`,{ref:oe,type:`text`,value:te,onChange:e=>ne(e.target.value),onBlur:Be,onKeyDown:Ve,className:`w-full max-w-[112px] rounded border border-border bg-surface px-2 py-0.5 text-sm font-medium text-primary outline-none focus:border-accent md:max-w-[200px]`}):(0,G.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary md:max-w-none`,children:e.agentSessionName||e.name}),(0,G.jsx)(`span`,{className:`shrink-0 text-[10px] md:hidden ${a===`connected`?wU[e.status]:`text-approval`}`,children:a===`connected`?CU[e.status]:a}),(0,G.jsx)(`span`,{className:`hidden shrink-0 text-xs md:inline ${wU[e.status]}`,children:CU[e.status]})]}):n?(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-px leading-none md:flex-row md:items-baseline md:gap-2 md:leading-normal`,children:[(0,G.jsx)(`span`,{className:`max-w-[112px] truncate text-sm font-medium text-primary md:max-w-none`,children:_e}),(0,G.jsx)(`span`,{className:`text-[10px] font-medium text-blue-400 md:rounded-full md:bg-blue-500/15 md:px-1.5 md:py-0.5 md:uppercase md:tracking-wide`,children:`Hibernating`})]}):(0,G.jsx)(`span`,{className:`text-sm font-medium text-primary md:hidden`,children:`Sessions`})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-[4px] md:gap-1.5`,children:[a!==`connected`&&(0,G.jsx)(`span`,{className:`hidden text-xs text-approval md:inline`,children:a}),(0,G.jsx)(`button`,{onClick:f,className:`flex size-[44px] items-center justify-center rounded bg-accent text-white transition-all hover:bg-accent/90 active:scale-95 md:hidden`,title:`New session (${O}N)`,"aria-label":`New session`,children:(0,G.jsx)(Me,{width:16,height:16})}),e&&he&&(0,G.jsx)(`button`,{onClick:()=>I(!0),className:`flex size-[44px] items-center justify-center rounded border border-danger/30 bg-danger/10 text-danger transition-all hover:bg-danger/20 active:scale-95 md:hidden`,title:`Kill session (${O}X)`,"aria-label":`Kill session`,children:(0,G.jsx)(He,{width:16,height:16})}),be&&(0,G.jsx)(`button`,{onClick:Re,className:`hidden size-[44px] items-center justify-center rounded border border-border text-secondary transition-all hover:bg-hover hover:text-primary active:scale-95 min-[360px]:flex md:hidden`,title:`Hibernate session`,"aria-label":`Hibernate session`,children:(0,G.jsx)(Ee,{width:16,height:16})}),n&&(0,G.jsx)(`button`,{onClick:()=>h(n.sessionId),className:`btn btn-primary h-[44px] px-3 text-xs md:hidden`,children:`Wake`}),e&&(0,G.jsxs)(`div`,{className:`relative md:hidden`,ref:ae,children:[(0,G.jsx)(`button`,{onClick:()=>R(!L),className:`flex size-[44px] items-center justify-center rounded border border-border bg-surface text-secondary transition-all hover:bg-hover hover:text-primary active:scale-95`,title:`More options`,"aria-label":`More options`,children:(0,G.jsx)(me,{width:16,height:16})}),L&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-elevated shadow-lg py-1`,children:[he&&(0,G.jsxs)(`button`,{onClick:ze,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,G.jsx)(ge,{width:14,height:14}),`Rename`]}),be&&(0,G.jsxs)(`button`,{onClick:Re,className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,G.jsx)(Ee,{width:14,height:14}),`Hibernate`]}),(0,G.jsxs)(`button`,{onClick:()=>{v(),R(!1)},className:`flex min-h-[44px] w-full items-center gap-2 px-3 py-2 text-left text-sm text-secondary hover:bg-hover hover:text-primary`,children:[(0,G.jsx)(Ie,{width:14,height:14}),`Settings`]})]})]})]})]}),e&&t.length>1&&(0,G.jsxs)(`div`,{className:`relative overflow-hidden bg-elevated border-b border-border md:hidden`,children:[(0,G.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-4 bg-gradient-to-l from-elevated to-transparent z-10 pointer-events-none`}),(0,G.jsx)(`div`,{className:`flex items-center gap-[6px] overflow-x-auto px-[8px] py-[5px] scrollbar-none scroll-smooth snap-x snap-mandatory`,style:{WebkitOverflowScrolling:`touch`},children:t.map((t,n)=>{let r=t.id===e.id,i=tt?t.name.trim():n+1;return(0,G.jsx)(`button`,{type:`button`,className:`
|
|
318
318
|
flex items-center justify-center shrink-0 snap-start
|
|
319
|
-
h-
|
|
319
|
+
h-[44px] ${tt?`min-w-[44px] px-2.5 max-w-[8rem] truncate`:`w-[44px]`}
|
|
320
320
|
text-sm font-extrabold rounded-lg
|
|
321
321
|
active:scale-95 transition-all duration-75
|
|
322
322
|
select-none touch-manipulation
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);justify-content:center;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text-primary)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.input{background:var(--bg-base);border:1px solid var(--border);width:100%;color:var(--text-primary);padding:.5rem .75rem;font-size:16px}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-2{inset:.5rem}.-bottom-8{bottom:-2rem}.-bottom-px{bottom:-1px}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.-top-px{top:-1px}.bottom-0{bottom:0}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.m-4{margin:1rem}.-mx-\[6px\]{margin-left:-6px;margin-right:-6px}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-4{width:1rem;height:1rem}.size-\[44px\]{width:44px;height:44px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[44px\]{height:44px}.h-full{height:100%}.h-px{height:1px}.max-h-28{max-height:7rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[44px\]{width:44px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[44px\]{min-width:44px}.min-w-\[72px\]{min-width:72px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[112px\]{max-width:112px}.max-w-\[11rem\]{max-width:11rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[8rem\]{max-width:8rem}.max-w-\[9rem\]{max-width:9rem}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[calc\(100vw-1\.5rem\)\]{max-width:calc(100vw - 1.5rem)}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[1px\]{--tw-translate-y:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.auto-cols-\[44px\]{grid-auto-columns:44px}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[5\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:5.75rem minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-\[7px\]{gap:7px}.gap-px{gap:1px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-accent{border-color:var(--accent)}.border-border{border-color:var(--border)}.border-white\/20{border-color:#fff3}.border-white\/40{border-color:#fff6}.bg-accent{background-color:var(--accent)}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/35{background-color:#f59e0b59}.bg-approval{background-color:var(--approval)}.bg-base{background-color:var(--bg-base)}.bg-black\/20{background-color:#0003}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/35{background-color:#3b82f659}.bg-blue-600\/90{background-color:#2563ebe6}.bg-border{background-color:var(--border)}.bg-danger{background-color:var(--danger)}.bg-elevated{background-color:var(--bg-elevated)}.bg-gray-500\/35{background-color:#6b728059}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/35{background-color:#22c55e59}.bg-hover{background-color:var(--bg-hover)}.bg-muted{background-color:var(--text-muted)}.bg-surface{background-color:var(--bg-surface)}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--waiting)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/90{background-color:#ffffffe6}.bg-working{background-color:var(--working)}.bg-zinc-500\/20{background-color:#71717a33}.bg-gradient-to-l{background-image:linear-gradient(to left, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-elevated{--tw-gradient-from:var(--bg-elevated) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[6px\]{padding:6px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[6px\]{padding-left:6px;padding-right:6px}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-0\.5{padding-left:.125rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-\[1\.375rem\]{padding-left:1.375rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono,SF Mono,Fira Code,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-normal{letter-spacing:0}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{color:var(--accent)}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-approval{color:var(--approval)}.text-base{color:var(--bg-base)}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-danger{color:var(--danger)}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-muted{color:var(--text-muted)}.text-primary{color:var(--text-primary)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary{color:var(--text-secondary)}.text-waiting{color:var(--waiting)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:#fff9}.text-white\/90{color:#ffffffe6}.text-working{color:var(--working)}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-accent{accent-color:var(--accent)}.accent-approval{accent-color:var(--approval)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-elevated{--tw-ring-color:var(--bg-elevated)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-75{transition-duration:75ms}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[agentboard\:settings\]{agentboard:settings}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#0a0a0a;--bg-elevated:#111;--bg-surface:#161616;--bg-hover:#1c1c1c;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--text-muted:#737373;--border:#262626;--border-subtle:#1a1a1a;--working:#22c55e;--approval:#f59e0b;--waiting:#3b82f6;--danger:#ef4444;--accent:#3b82f6}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#fafafa;--bg-elevated:#fff;--bg-surface:#f5f5f5;--bg-hover:#e5e5e5;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--border:#e5e5e5;--border-subtle:#f0f0f0;--working:#16a34a;--approval:#d97706;--waiting:#2563eb;--danger:#dc2626;--accent:#2563eb}*{box-sizing:border-box}html,body{height:100dvh;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;margin:0;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace;font-size:13px;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}@media (width<=767px){.ios #root{width:var(--visual-viewport-width,100vw);height:var(--visual-viewport-height,100dvh);transform:translate3d(var(--viewport-offset-left,0px), var(--viewport-offset-top,0px), 0);transform-origin:0 0;position:fixed;top:0;left:0}}:root{--keyboard-inset:0px;--viewport-offset-top:0px;--viewport-offset-left:0px;--visual-viewport-height:100dvh;--visual-viewport-width:100vw}::selection{background:#3b82f64d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.status-bar{width:6px;position:absolute;top:0;bottom:0;left:0}.status-bar-working{background:var(--working)}.status-bar-approval{background:var(--approval)}.status-bar-waiting{background:var(--waiting)}@keyframes pulse-approval{0%,to{opacity:1;box-shadow:0 0 8px var(--approval)}50%{opacity:.3;box-shadow:0 0 0px var(--approval)}}.pulse-approval{animation:1.5s ease-in-out infinite pulse-approval}@keyframes pulse-complete{0%,20%,40%,60%,80%,to{opacity:1;box-shadow:0 0 8px var(--waiting)}10%,30%,50%,70%,90%{opacity:.3;box-shadow:0 0 0px var(--waiting)}}.pulse-complete{animation:5s ease-out pulse-complete}.xterm{padding:8px;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace}.ios-native-term-selection .xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:inherit;font-size:var(--xterm-font-size,13px);line-height:var(--xterm-cell-height,18px);letter-spacing:var(--xterm-a11y-letter-spacing,0px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-variant-ligatures:none;font-kerning:none}.ios-native-term-selection .xterm .xterm-accessibility-tree>div{line-height:var(--xterm-cell-height,18px)}.ios-native-term-selection .xterm-helper-textarea{opacity:0;caret-color:#0000;pointer-events:none;-webkit-user-select:text;user-select:text;width:1px;height:1px;font-size:16px;line-height:16px;transform:translate(-50%,-50%);position:absolute!important;top:50%!important;left:50%!important}@media (hover:none) and (pointer:coarse){.ios-native-term-selection .xterm .xterm-accessibility:not(.debug),.ios-native-term-selection .xterm-helper-textarea{pointer-events:auto}}.xterm .xterm-viewport{scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background-color:#0000!important}.xterm .xterm-viewport::-webkit-scrollbar{width:8px}.xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.session-row{transition:background-color .1s;position:relative}.session-row:hover{background:var(--bg-hover)}.session-row.selected{background:var(--bg-hover);box-shadow:inset 0 1px var(--text-muted), inset 0 -1px var(--text-muted);border-top:0;border-bottom:0}.session-row.selected:hover{background:var(--bg-hover)}.shortcut-badge{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;gap:2px;min-width:18px;height:18px;padding:0 6px;font-size:10px;line-height:1;display:inline-flex}.shortcut-badge svg{opacity:.7}.shortcut-badge .shortcut-plus{opacity:.6}@media (width<=767px){.terminal-mobile-overlay{z-index:30;background:var(--bg-base);flex-direction:column;max-width:100vw;height:100%;transition:height .1s ease-out;display:flex;position:relative;overflow:hidden}}.session-drawer-backdrop,.session-drawer{display:none}@media (width<=767px){.session-drawer-backdrop{z-index:40;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s ease-out;display:block;position:fixed;inset:0}.session-drawer-backdrop.open{opacity:1;pointer-events:auto}.session-drawer{z-index:50;width:75vw;max-width:300px;padding-top:env(safe-area-inset-top,0px);background:var(--bg-elevated);border-right:1px solid var(--border);outline:none;flex-direction:column;transition:transform .2s ease-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}}.terminal-controls{z-index:40;flex-shrink:0;position:relative}.terminal-key{-webkit-tap-highlight-color:transparent}.terminal-key:active{background:var(--bg-hover)}.ios:not(.keyboard-visible) #root{padding-bottom:env(safe-area-inset-bottom,0px)}.ios .terminal-mobile-overlay{height:var(--visual-viewport-height,100dvh)}.ios-pwa .terminal-mobile-overlay{height:100%}.ios:not(.keyboard-visible) .terminal-mobile-overlay{padding-bottom:env(safe-area-inset-bottom,0px)}.project-badge{background-color:hsl(var(--badge-hue) 60% 50% / .2);color:hsl(var(--badge-hue) 30% 80%)}[data-theme=light] .project-badge{background-color:hsl(var(--badge-hue) 60% 50% / .15);color:hsl(var(--badge-hue) 50% 25%)}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.pulse-approval,.pulse-complete{animation:none}}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted::placeholder{color:var(--text-muted)}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-hover:hover{background-color:var(--bg-hover)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-muted:hover{color:var(--text-muted)}.hover\:text-primary:hover{color:var(--text-primary)}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color:var(--text-primary)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-hover:active{background-color:var(--bg-hover)}.active\:bg-white\/20:active{background-color:#fff3}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:pr-4{padding-right:1rem}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[ending-style\]\:translate-x-\[var\(--toast-swipe-end-x\)\][data-ending-style]{--tw-translate-x:var(--toast-swipe-end-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[starting-style\]\:translate-y-2[data-starting-style]{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--toast-swipe-move-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--accent)}.data-\[ending-style\]\:opacity-0[data-ending-style],.data-\[starting-style\]\:opacity-0[data-starting-style]{opacity:0}.group[data-checked] .group-data-\[checked\]\:translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (width>=360px){.min-\[360px\]\:flex{display:flex}}@media (width>=640px){.sm\:grid-cols-\[6\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:6.75rem minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (width>=768px){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:left-auto{left:auto}.md\:right-4{right:1rem}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-10{height:2.5rem}.md\:min-h-0{min-height:0}.md\:min-w-0{min-width:0}.md\:max-w-\[18rem\]{max-width:18rem}.md\:max-w-\[200px\]{max-width:200px}.md\:max-w-none{max-width:none}.md\:shrink-0{flex-shrink:0}.md\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-baseline{align-items:baseline}.md\:justify-between{justify-content:space-between}.md\:gap-1\.5{gap:.375rem}.md\:gap-2{gap:.5rem}.md\:gap-3{gap:.75rem}.md\:rounded-full{border-radius:9999px}.md\:bg-blue-500\/15{background-color:#3b82f626}.md\:p-6{padding:1.5rem}.md\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.md\:uppercase{text-transform:uppercase}.md\:leading-normal{line-height:1.5}.md\:tracking-wide{letter-spacing:.025em}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
|
package/dist/client/index.html
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<title>Agentboard</title>
|
|
9
9
|
<link rel="apple-touch-icon" href="/icons/pwa-192x192.png" />
|
|
10
10
|
<meta name="theme-color" content="#0f172a" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-BZ7ukrRn.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-KJCRuwcW.css">
|
|
13
13
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|
package/dist/client/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,n={};const i=(i,o)=>(i=new URL(i+".js",o).href,n[i]||new Promise(n=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=n,document.head.appendChild(e)}else e=i,importScripts(i),n()}).then(()=>{let e=n[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(o,s)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(n[r])return;let
|
|
1
|
+
if(!self.define){let e,n={};const i=(i,o)=>(i=new URL(i+".js",o).href,n[i]||new Promise(n=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=n,document.head.appendChild(e)}else e=i,importScripts(i),n()}).then(()=>{let e=n[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(o,s)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(n[r])return;let f={};const t=e=>i(e,r),d={module:{uri:r},exports:f,require:t};n[r]=Promise.all(o.map(e=>d[e]||t(e))).then(e=>(s(...e),f))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"index.html",revision:"b712b29baffe2090afb8e88428a2f37a"},{url:"favicon.svg",revision:"12048a608dedfc53518ddc59c07e41b6"},{url:"icons/pwa-512x512.png",revision:"eb82042b3e4ed505f3efe1b79622d998"},{url:"icons/pwa-192x192.png",revision:"affb57c15619ee7223d1adea372ad514"},{url:"fonts/jetbrains-mono-vietnamese-wght-normal.woff2",revision:"ddf99e6e35c6ee9f00a41d2567b0e77f"},{url:"fonts/jetbrains-mono-latin-wght-normal.woff2",revision:"b058178d7f309414f8f856b99fd80d9b"},{url:"fonts/jetbrains-mono-latin-ext-wght-normal.woff2",revision:"e36841ed93d5bfe6b1d487d18ad7e90b"},{url:"fonts/jetbrains-mono-greek-wght-normal.woff2",revision:"51671ed9eb64e29390d4791ab0023c8e"},{url:"fonts/jetbrains-mono-cyrillic-wght-normal.woff2",revision:"615bf869ebeb5998734d81fc8958116c"},{url:"fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2",revision:"742dd0628e0118d32dccf0437900670b"},{url:"assets/workbox-window.prod.es5-Bq4GJJid.js",revision:null},{url:"assets/index-KJCRuwcW.css",revision:null},{url:"assets/index-BZ7ukrRn.js",revision:null},{url:"icons/pwa-192x192.png",revision:"affb57c15619ee7223d1adea372ad514"},{url:"icons/pwa-512x512.png",revision:"eb82042b3e4ed505f3efe1b79622d998"},{url:"manifest.webmanifest",revision:"b6d4b3666a548fa0f0c6919d31ec2eee"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api(?:\/|$)/,/^\/ws(?:\/|$)/]}))});
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);justify-content:center;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;line-height:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text-primary)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.input{background:var(--bg-base);border:1px solid var(--border);width:100%;color:var(--text-primary);padding:.5rem .75rem;font-size:16px}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-2{inset:.5rem}.-bottom-8{bottom:-2rem}.-bottom-px{bottom:-1px}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.-top-px{top:-1px}.bottom-0{bottom:0}.bottom-20{bottom:5rem}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.right-0{right:0}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.m-4{margin:1rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-4{width:1rem;height:1rem}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.max-h-28{max-height:7rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[2\.75rem\]{min-width:2.75rem}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3rem\]{min-width:3rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[11rem\]{max-width:11rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[200px\]{max-width:200px}.max-w-\[8rem\]{max-width:8rem}.max-w-\[9rem\]{max-width:9rem}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[calc\(100vw-1\.5rem\)\]{max-width:calc(100vw - 1.5rem)}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[1px\]{--tw-translate-y:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[5\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:5.75rem minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-accent{border-color:var(--accent)}.border-border{border-color:var(--border)}.border-white\/20{border-color:#fff3}.border-white\/40{border-color:#fff6}.bg-accent{background-color:var(--accent)}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/35{background-color:#f59e0b59}.bg-approval{background-color:var(--approval)}.bg-base{background-color:var(--bg-base)}.bg-black\/20{background-color:#0003}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/35{background-color:#3b82f659}.bg-blue-600\/90{background-color:#2563ebe6}.bg-border{background-color:var(--border)}.bg-danger{background-color:var(--danger)}.bg-elevated{background-color:var(--bg-elevated)}.bg-gray-500\/35{background-color:#6b728059}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/35{background-color:#22c55e59}.bg-hover{background-color:var(--bg-hover)}.bg-muted{background-color:var(--text-muted)}.bg-surface{background-color:var(--bg-surface)}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--waiting)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/90{background-color:#ffffffe6}.bg-working{background-color:var(--working)}.bg-zinc-500\/20{background-color:#71717a33}.bg-gradient-to-l{background-image:linear-gradient(to left, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-elevated{--tw-gradient-from:var(--bg-elevated) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.p-0\.5{padding:.125rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-0\.5{padding-left:.125rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-\[1\.375rem\]{padding-left:1.375rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono,SF Mono,Fira Code,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-normal{letter-spacing:0}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent{color:var(--accent)}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-approval{color:var(--approval)}.text-base{color:var(--bg-base)}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-danger{color:var(--danger)}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-muted{color:var(--text-muted)}.text-primary{color:var(--text-primary)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary{color:var(--text-secondary)}.text-waiting{color:var(--waiting)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:#fff9}.text-white\/90{color:#ffffffe6}.text-working{color:var(--working)}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-accent{accent-color:var(--accent)}.accent-approval{accent-color:var(--approval)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-elevated{--tw-ring-color:var(--bg-elevated)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-75{transition-duration:75ms}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[agentboard\:settings\]{agentboard:settings}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-cyrillic-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-greek-wght-normal.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-vietnamese-wght-normal.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#0a0a0a;--bg-elevated:#111;--bg-surface:#161616;--bg-hover:#1c1c1c;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--text-muted:#737373;--border:#262626;--border-subtle:#1a1a1a;--working:#22c55e;--approval:#f59e0b;--waiting:#3b82f6;--danger:#ef4444;--accent:#3b82f6}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#fafafa;--bg-elevated:#fff;--bg-surface:#f5f5f5;--bg-hover:#e5e5e5;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--border:#e5e5e5;--border-subtle:#f0f0f0;--working:#16a34a;--approval:#d97706;--waiting:#2563eb;--danger:#dc2626;--accent:#2563eb}*{box-sizing:border-box}html,body{height:100dvh;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;margin:0;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace;font-size:13px;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}@media (width<=767px){.ios #root{width:var(--visual-viewport-width,100vw);height:var(--visual-viewport-height,100dvh);transform:translate3d(var(--viewport-offset-left,0px), var(--viewport-offset-top,0px), 0);transform-origin:0 0;position:fixed;top:0;left:0}}:root{--keyboard-inset:0px;--viewport-offset-top:0px;--viewport-offset-left:0px;--visual-viewport-height:100dvh;--visual-viewport-width:100vw}::selection{background:#3b82f64d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.status-bar{width:6px;position:absolute;top:0;bottom:0;left:0}.status-bar-working{background:var(--working)}.status-bar-approval{background:var(--approval)}.status-bar-waiting{background:var(--waiting)}@keyframes pulse-approval{0%,to{opacity:1;box-shadow:0 0 8px var(--approval)}50%{opacity:.3;box-shadow:0 0 0px var(--approval)}}.pulse-approval{animation:1.5s ease-in-out infinite pulse-approval}@keyframes pulse-complete{0%,20%,40%,60%,80%,to{opacity:1;box-shadow:0 0 8px var(--waiting)}10%,30%,50%,70%,90%{opacity:.3;box-shadow:0 0 0px var(--waiting)}}.pulse-complete{animation:5s ease-out pulse-complete}.xterm{padding:8px;font-family:JetBrains Mono Variable,JetBrains Mono,SF Mono,Fira Code,ui-monospace,monospace}.ios-native-term-selection .xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:inherit;font-size:var(--xterm-font-size,13px);line-height:var(--xterm-cell-height,18px);letter-spacing:var(--xterm-a11y-letter-spacing,0px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-variant-ligatures:none;font-kerning:none}.ios-native-term-selection .xterm .xterm-accessibility-tree>div{line-height:var(--xterm-cell-height,18px)}.ios-native-term-selection .xterm-helper-textarea{opacity:0;caret-color:#0000;pointer-events:none;-webkit-user-select:text;user-select:text;width:1px;height:1px;font-size:16px;line-height:16px;transform:translate(-50%,-50%);position:absolute!important;top:50%!important;left:50%!important}@media (hover:none) and (pointer:coarse){.ios-native-term-selection .xterm .xterm-accessibility:not(.debug),.ios-native-term-selection .xterm-helper-textarea{pointer-events:auto}}.xterm .xterm-viewport{scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background-color:#0000!important}.xterm .xterm-viewport::-webkit-scrollbar{width:8px}.xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.session-row{transition:background-color .1s;position:relative}.session-row:hover{background:var(--bg-hover)}.session-row.selected{background:var(--bg-hover);box-shadow:inset 0 1px var(--text-muted), inset 0 -1px var(--text-muted);border-top:0;border-bottom:0}.session-row.selected:hover{background:var(--bg-hover)}.shortcut-badge{background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;gap:2px;min-width:18px;height:18px;padding:0 6px;font-size:10px;line-height:1;display:inline-flex}.shortcut-badge svg{opacity:.7}.shortcut-badge .shortcut-plus{opacity:.6}@media (width<=767px){.terminal-mobile-overlay{z-index:30;background:var(--bg-base);flex-direction:column;max-width:100vw;height:100%;transition:height .1s ease-out;display:flex;position:relative;overflow:hidden}}.session-drawer-backdrop,.session-drawer{display:none}@media (width<=767px){.session-drawer-backdrop{z-index:40;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s ease-out;display:block;position:fixed;inset:0}.session-drawer-backdrop.open{opacity:1;pointer-events:auto}.session-drawer{z-index:50;width:75vw;max-width:300px;padding-top:env(safe-area-inset-top,0px);background:var(--bg-elevated);border-right:1px solid var(--border);outline:none;flex-direction:column;transition:transform .2s ease-out;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}}.terminal-controls{z-index:40;flex-shrink:0;position:relative}.terminal-key{-webkit-tap-highlight-color:transparent}.terminal-key:active{background:var(--bg-hover)}.ios:not(.keyboard-visible) #root{padding-bottom:env(safe-area-inset-bottom,0px)}.ios .terminal-mobile-overlay{height:var(--visual-viewport-height,100dvh)}.ios-pwa .terminal-mobile-overlay{height:100%}.ios:not(.keyboard-visible) .terminal-mobile-overlay{padding-bottom:env(safe-area-inset-bottom,0px)}.project-badge{background-color:hsl(var(--badge-hue) 60% 50% / .2);color:hsl(var(--badge-hue) 30% 80%)}[data-theme=light] .project-badge{background-color:hsl(var(--badge-hue) 60% 50% / .15);color:hsl(var(--badge-hue) 50% 25%)}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.pulse-approval,.pulse-complete{animation:none}}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted::placeholder{color:var(--text-muted)}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mb-0:last-child{margin-bottom:0}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-hover:hover{background-color:var(--bg-hover)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-muted:hover{color:var(--text-muted)}.hover\:text-primary:hover{color:var(--text-primary)}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color:var(--text-primary)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-accent:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-hover:active{background-color:var(--bg-hover)}.active\:bg-white\/20:active{background-color:#fff3}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:pr-4{padding-right:1rem}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[ending-style\]\:translate-x-\[var\(--toast-swipe-end-x\)\][data-ending-style]{--tw-translate-x:var(--toast-swipe-end-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[starting-style\]\:translate-y-2[data-starting-style]{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--toast-swipe-move-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--accent)}.data-\[ending-style\]\:opacity-0[data-ending-style],.data-\[starting-style\]\:opacity-0[data-starting-style]{opacity:0}.group[data-checked] .group-data-\[checked\]\:translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (width>=640px){.sm\:grid-cols-\[6\.75rem_minmax\(0\,1fr\)\]{grid-template-columns:6.75rem minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (width>=768px){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:left-auto{left:auto}.md\:right-4{right:1rem}.md\:block{display:block}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:max-w-\[18rem\]{max-width:18rem}.md\:shrink-0{flex-shrink:0}.md\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:p-6{padding:1.5rem}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
|