@gbasin/agentboard-darwin-x64 0.4.25 → 0.4.26

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.
@@ -207,7 +207,7 @@ ${s.join(`
207
207
  pointer-events: none;
208
208
  max-width: 400px;
209
209
  word-break: break-all;
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`},M=()=>{m&&(m.style.display=`none`)},N=null,F=!1,L=null,ee={activate:(e,t)=>{if(!F&&(e.metaKey||e.ctrlKey)){let e=uH(t);if(!e)return;window.open(e,`_blank`,`noopener`)}},hover:(e,t)=>{N=uH(t)||null,k(e,t)},leave:()=>{N=null,M()}},R=e=>{N&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.stopPropagation(),F=!0,window.open(N,`_blank`,`noopener`),L&&clearTimeout(L),L=setTimeout(()=>{F=!1},100))};t.addEventListener(`mousedown`,R,!0),r.options.linkHandler=ee;let B=new yz((e,t)=>ee.activate(e,t),{urlRegex:oH,hover:(e,t)=>ee.hover(e,t),leave:()=>ee.leave()});r.loadAddon(B),S.current=B;let te=null,V=null,W=dH()?`metaKey`:`ctrlKey`,re=(e,t)=>{t&&H.current===e&&ne.current===e&&oe.current({type:`terminal-input`,sessionId:e,data:t})};r.attachCustomKeyEventHandler(e=>{if(e.type===`keydown`&&/^Digit[1-9]$/.test(e.code)&&Ye(e,Ke(U.getState().shortcutModifier)))return!1;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=ne.current;return e&&(j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:e}),Se(!1)),(async()=>{re(e,await vH(se.current,{}))})()),!e}if(e[W]&&e.key.toLowerCase()===`v`&&e.type===`keydown`){V!==null&&(clearTimeout(V),V=null),te=null;let e=new Promise(e=>{V=setTimeout(()=>{V=null,te=null,e(null)},100),te=t=>{V!==null&&(clearTimeout(V),V=null),e(t)}});return(async()=>{try{let t=ne.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){re(t,await vH(se.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){re(t,await vH(se.current,{path:n}));return}re(t,n);return}}}catch{}if(r&&!bH(r)){H.current===t&&ne.current===t&&(j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:t}),Se(!1)),oe.current({type:`terminal-paste`,sessionId:t,data:r}));return}dH()&&!h&&re(t,await vH(se.current,{}))}finally{te=null}})(),!1}if(e.ctrlKey&&e.key===`Backspace`&&e.type===`keydown`){let e=ne.current;return e&&oe.current({type:`terminal-input`,sessionId:e,data:``}),!1}return!0});let ie=e=>{if(!te)return;e.preventDefault(),e.stopPropagation();let t=e.clipboardData?.getData(`text/plain`)??``,n=SH(e.clipboardData),r=n!==null||xH(e.clipboardData),i=te;te=null,i({text:t,hasImage:r,imageBlob:n})};return t.addEventListener(`paste`,ie,{capture:!0}),r.onData(e=>{let t=ne.current;if(t){let n=/^\x1b\[(<[\d;]+[Mm]|[\d;]+M|M[\x20-\xff]{3})$/.test(e);if(j.current&&n)return;j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:t}),Se(!1)),oe.current({type:`terminal-input`,sessionId:t,data:e})}}),r.attachCustomWheelEventHandler(e=>{let t=ne.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),oe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${n};${a};${o}M`})}return s&&!P.current&&Se(!0),c&&!P.current&&Ce(),!1}),_.current=r,y.current=i,()=>{if(n=!0,L&&clearTimeout(L),N=null,t.removeEventListener(`mousedown`,R,!0),t.removeEventListener(`paste`,ie,!0),V!==null&&(clearTimeout(V),V=null),te=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),I.current!==null&&window.clearTimeout(I.current)}},[we]),(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=H.current;n&&oe.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=le.current;if(le.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.useLayoutEffect)(()=>{(ne.current!==e||!r||i!==`connected`||re.current>=0&&re.current!==a)&&(ne.current=null,e&&r&&i===`connected`&&he(!0))},[e,r,i,a]),(0,x.useEffect)(()=>{let n=_.current;if(!n)return;let o=H.current,s=W.current;if(!r){ne.current=null,k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(oe.current({type:`terminal-detach`,sessionId:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)),n.reset(),pe.current=!1,he(!1);return}if(i!==`connected`){ne.current=null,k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(QT(`terminal_detach_on_disconnect`,{connectionStatus:i,prevAttached:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)),aH(),pe.current=!1,he(!1);return}if(o&&o!==e){ne.current=null;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{}oe.current({type:`terminal-detach`,sessionId:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)}let c=re.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();ue.current=[],de.current!==null&&(window.clearTimeout(de.current),de.current=null),fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null),pe.current=!0,he(!0),o!==null&&(ne.current=null);let l=nH.get(e);l&&(n.reset(),n.write(l));let u=y.current;u&&u.fit();let d=performance.now();H.current=e,W.current=t??null,re.current=a,ie.current=e,ae.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(()=>{H.current===t&&(oe.current(f),oe.current({type:`tmux-check-copy-mode`,sessionId:e}))})}else k.current=window.setTimeout(()=>{k.current=null,oe.current(f),oe.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),H.current=null,W.current=null,re.current=-1,ie.current=null,ne.current=null),()=>{k.current!==null&&(QT(`attach_debounce_cancelled`,{sessionId:e,attachedSession:H.current},`info`),window.clearTimeout(k.current),k.current=null)}},[e,t,r,i,a,xe,Se]),(0,x.useEffect)(()=>{if(V.current!==null&&(globalThis.clearInterval(V.current),V.current=null),!(!e||!r||i!==`connected`))return V.current=globalThis.setInterval(()=>{H.current===e&&oe.current({type:`tmux-check-copy-mode`,sessionId:e})},750),()=>{V.current!==null&&(globalThis.clearInterval(V.current),V.current=null)}},[e,r,i]),(0,x.useEffect)(()=>{let e=()=>{de.current!==null&&(window.clearTimeout(de.current),de.current=null),fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null);let e=_.current,t=ue.current;if(!e||t.length===0)return;ue.current=[];let n=t.join(``);pe.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:H.current,writeMs:e,bytes:i}),h&&e>50&&QT(`ios_write_slow`,{sessionId:H.current,writeMs:e,bytes:i}),xe()})},t=()=>{de.current!==null&&window.clearTimeout(de.current),de.current=window.setTimeout(e,2),fe.current===null&&(fe.current=window.setTimeout(e,16))},n=s(n=>{let r=H.current;if(n.type===`terminal-output`&&(!r||n.sessionId!==r)&&QT(`terminal_output_dropped`,{messageSessionId:n.sessionId,attachedSession:r,bytes:n.data.length,hasSwitchStart:ae.current!==null},`info`),n.type===`terminal-output`&&r&&n.sessionId===r){let e=ae.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}),ae.current=null),ue.current.push(h?DH(n.data):n.data),t()}if(n.type===`terminal-ready`&&r&&n.sessionId===r){ne.current=n.sessionId,pe.current&&ue.current.length>0?e():pe.current&&=(_.current?.reset(),!1),he(!1);let t=ae.current;t&&(QT(`switch_ready`,{sessionId:n.sessionId,totalMs:Math.round(performance.now()-t)}),ae.current=null),ie.current===n.sessionId&&(_.current?.focus(),ie.current=null),h&&(e(),be(50,`terminal-ready`))}if(n.type===`terminal-error`&&r&&(!n.sessionId||n.sessionId===r)&&(ne.current=null,pe.current=!1,he(!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`),z(e,n.source)})}else z(e,n.source)}if(n.type===`tmux-copy-mode-status`&&r&&n.sessionId===r){let e=n.appMouse===!0&&!n.inCopyMode,t=P.current;P.current=e,F.current=n.altScreen===!0,!t&&e&&_.current?.write(mH),Se(n.inCopyMode)}});return()=>{n(),e(),ye()}},[s,xe,Se,z]),(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(()=>{we()},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:le.current,hasTerminal:!!_.current,bufferLines:_.current?.buffer.active.length??0,sessionId:H.current},`info`)};if(document.addEventListener(`visibilitychange`,e),!h)return()=>{document.removeEventListener(`visibilitychange`,e)};let t=e=>{let t=_.current;if(t&&b.current&&le.current){try{b.current.dispose()}catch{}b.current=null;try{let n=new pz;n.onContextLoss(()=>{QT(`webgl_context_loss`,{sessionId:H.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`),be(200,`visibilitychange`))},r=e=>{e.persisted&&(t(`pageshow`),be(200,`pageshow`))},i=()=>{t(`focus`),be(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),ye()}},[]),{containerRef:g,terminalRef:_,searchAddonRef:w,serializeAddonRef:T,progressAddonRef:E,inTmuxCopyModeRef:j,isTmuxCopyMode:M,appMouseRef:P,setTmuxCopyMode:Se,isSwitching:me,isInputReady:!!e&&r&&i===`connected`&&ne.current===e,pendingClipboardOffer:ee,copyPendingClipboardOffer:B,dismissPendingClipboardOffer:te}}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:`
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`},M=()=>{m&&(m.style.display=`none`)},N=null,F=!1,L=null,ee={activate:(e,t)=>{if(!F&&(e.metaKey||e.ctrlKey)){let e=uH(t);if(!e)return;window.open(e,`_blank`,`noopener`)}},hover:(e,t)=>{N=uH(t)||null,k(e,t)},leave:()=>{N=null,M()}},R=e=>{N&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.stopPropagation(),F=!0,window.open(N,`_blank`,`noopener`),L&&clearTimeout(L),L=setTimeout(()=>{F=!1},100))};t.addEventListener(`mousedown`,R,!0),r.options.linkHandler=ee;let B=new yz((e,t)=>ee.activate(e,t),{urlRegex:oH,hover:(e,t)=>ee.hover(e,t),leave:()=>ee.leave()});r.loadAddon(B),S.current=B;let te=null,V=null,W=dH()?`metaKey`:`ctrlKey`,re=(e,t)=>{t&&H.current===e&&ne.current===e&&oe.current({type:`terminal-input`,sessionId:e,data:t})};r.attachCustomKeyEventHandler(e=>{if(e.type===`keydown`&&/^Digit[1-9]$/.test(e.code)&&Ye(e,Ke(U.getState().shortcutModifier)))return!1;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=ne.current;return e&&(j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:e}),Se(!1)),(async()=>{re(e,await vH(se.current,{}))})()),!e}if(e[W]&&e.key.toLowerCase()===`v`&&e.type===`keydown`){V!==null&&(clearTimeout(V),V=null),te=null;let e=new Promise(e=>{V=setTimeout(()=>{V=null,te=null,e(null)},100),te=t=>{V!==null&&(clearTimeout(V),V=null),e(t)}});return(async()=>{try{let t=ne.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){re(t,await vH(se.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){re(t,await vH(se.current,{path:n}));return}re(t,n);return}}}catch{}if(r&&!bH(r)){H.current===t&&ne.current===t&&(j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:t}),Se(!1)),oe.current({type:`terminal-paste`,sessionId:t,data:r}));return}dH()&&!h&&re(t,await vH(se.current,{}))}finally{te=null}})(),!1}if(e.ctrlKey&&e.key===`Backspace`&&e.type===`keydown`){let e=ne.current;return e&&oe.current({type:`terminal-input`,sessionId:e,data:``}),!1}return!0});let ie=e=>{if(!te)return;e.preventDefault(),e.stopPropagation();let t=e.clipboardData?.getData(`text/plain`)??``,n=SH(e.clipboardData),r=n!==null||xH(e.clipboardData),i=te;te=null,i({text:t,hasImage:r,imageBlob:n})};return t.addEventListener(`paste`,ie,{capture:!0}),r.onData(e=>{let t=ne.current;if(t){let n=/^\x1b\[(<[\d;]+[Mm]|[\d;]+M|M[\x20-\xff]{3})$/.test(e);if(j.current&&n)return;j.current&&(oe.current({type:`tmux-cancel-copy-mode`,sessionId:t}),Se(!1)),oe.current({type:`terminal-input`,sessionId:t,data:e})}}),r.attachCustomWheelEventHandler(e=>{let t=ne.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),oe.current({type:`terminal-input`,sessionId:t,data:`\x1b[<${n};${a};${o}M`})}return s&&!P.current&&Se(!0),c&&!P.current&&Ce(),!1}),_.current=r,y.current=i,()=>{if(n=!0,L&&clearTimeout(L),N=null,t.removeEventListener(`mousedown`,R,!0),t.removeEventListener(`paste`,ie,!0),V!==null&&(clearTimeout(V),V=null),te=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),I.current!==null&&window.clearTimeout(I.current)}},[we]),(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=H.current;n&&oe.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=le.current;if(le.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.useLayoutEffect)(()=>{(ne.current!==e||!r||i!==`connected`||re.current>=0&&re.current!==a)&&(ne.current=null,e&&r&&i===`connected`&&he(!0))},[e,r,i,a]),(0,x.useEffect)(()=>{let n=_.current;if(!n)return;let o=H.current,s=W.current;if(!r){ne.current=null,k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(oe.current({type:`terminal-detach`,sessionId:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)),n.reset(),pe.current=!1,he(!1);return}if(i!==`connected`){ne.current=null,k.current!==null&&(window.clearTimeout(k.current),k.current=null),o&&(QT(`terminal_detach_on_disconnect`,{connectionStatus:i,prevAttached:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)),aH(),pe.current=!1,he(!1);return}if(o&&o!==e){ne.current=null;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{}oe.current({type:`terminal-detach`,sessionId:o}),H.current=null,W.current=null,re.current=-1,ie.current=null,Se(!1)}let c=re.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();ue.current=[],de.current!==null&&(window.clearTimeout(de.current),de.current=null),fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null),pe.current=!0,he(!0),o!==null&&(ne.current=null);let l=nH.get(e);l&&(n.reset(),n.write(l));let u=y.current;u&&u.fit();let d=performance.now();H.current=e,W.current=t??null,re.current=a,ie.current=e,ae.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(()=>{H.current===t&&(oe.current(f),oe.current({type:`tmux-check-copy-mode`,sessionId:e}))})}else k.current=window.setTimeout(()=>{k.current=null,oe.current(f),oe.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),H.current=null,W.current=null,re.current=-1,ie.current=null,ne.current=null),()=>{k.current!==null&&(QT(`attach_debounce_cancelled`,{sessionId:e,attachedSession:H.current},`info`),window.clearTimeout(k.current),k.current=null)}},[e,t,r,i,a,xe,Se]),(0,x.useEffect)(()=>{if(V.current!==null&&(globalThis.clearInterval(V.current),V.current=null),!(!e||!r||i!==`connected`))return V.current=globalThis.setInterval(()=>{H.current===e&&oe.current({type:`tmux-check-copy-mode`,sessionId:e})},750),()=>{V.current!==null&&(globalThis.clearInterval(V.current),V.current=null)}},[e,r,i]),(0,x.useEffect)(()=>{let e=()=>{de.current!==null&&(window.clearTimeout(de.current),de.current=null),fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null);let e=_.current,t=ue.current;if(!e||t.length===0)return;ue.current=[];let n=t.join(``);pe.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:H.current,writeMs:e,bytes:i}),h&&e>50&&QT(`ios_write_slow`,{sessionId:H.current,writeMs:e,bytes:i}),xe()})},t=()=>{de.current!==null&&window.clearTimeout(de.current),de.current=window.setTimeout(e,2),fe.current===null&&(fe.current=window.setTimeout(e,16))},n=s(n=>{let r=H.current;if(n.type===`terminal-output`&&(!r||n.sessionId!==r)&&QT(`terminal_output_dropped`,{messageSessionId:n.sessionId,attachedSession:r,bytes:n.data.length,hasSwitchStart:ae.current!==null},`info`),n.type===`terminal-output`&&r&&n.sessionId===r){let e=ae.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}),ae.current=null),ue.current.push(h?DH(n.data):n.data),t()}if(n.type===`terminal-ready`&&r&&n.sessionId===r){ne.current=n.sessionId,pe.current&&ue.current.length>0?e():pe.current&&=(_.current?.reset(),!1),he(!1);let t=ae.current;t&&(QT(`switch_ready`,{sessionId:n.sessionId,totalMs:Math.round(performance.now()-t)}),ae.current=null),ie.current===n.sessionId&&(_.current?.focus(),ie.current=null),h&&(e(),be(50,`terminal-ready`))}if(n.type===`terminal-error`&&r&&(!n.sessionId||n.sessionId===r)&&(ne.current=null,pe.current=!1,he(!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`),z(e,n.source)})}else z(e,n.source)}if(n.type===`tmux-copy-mode-status`&&r&&n.sessionId===r){let e=n.appMouse===!0&&!n.inCopyMode,t=P.current;P.current=e,F.current=n.altScreen===!0,!t&&e&&_.current?.write(mH),Se(n.inCopyMode)}});return()=>{n(),e(),ye()}},[s,xe,Se,z]),(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(()=>{we()},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:le.current,hasTerminal:!!_.current,bufferLines:_.current?.buffer.active.length??0,sessionId:H.current},`info`)};if(document.addEventListener(`visibilitychange`,e),!h)return()=>{document.removeEventListener(`visibilitychange`,e)};let t=e=>{let t=_.current;if(t&&b.current&&le.current){try{b.current.dispose()}catch{}b.current=null;try{let n=new pz;n.onContextLoss(()=>{QT(`webgl_context_loss`,{sessionId:H.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`),be(200,`visibilitychange`))},r=e=>{e.persisted&&(t(`pageshow`),be(200,`pageshow`))},i=()=>{t(`focus`),be(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),ye()}},[]),{containerRef:g,terminalRef:_,searchAddonRef:w,serializeAddonRef:T,progressAddonRef:E,inTmuxCopyModeRef:j,isTmuxCopyMode:M,appMouseRef:P,setTmuxCopyMode:Se,isSwitching:me,isInputReady:!!e&&r&&i===`connected`&&ne.current===e,pendingClipboardOffer:ee,copyPendingClipboardOffer:B,dismissPendingClipboardOffer:te}}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.useRef)({x:0,y:0}),y=(0,x.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null),p.current&&=(clearTimeout(p.current),null),m.current&&=(clearInterval(m.current),null)},[]),b=(0,x.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null),m.current&&=(clearInterval(m.current),null)},[]),S=(0,x.useCallback)(t=>{let n=QH(_.current);m.current=setTimeout(()=>{g.current&&(XH(5),e(t),S(t))},n)},[e]),C=(0,x.useCallback)((n,r)=>{if(!n||t)return;let i=UH[n];_.current=r,XH(8),e(i),b(),p.current=setTimeout(()=>{S(i)},GH)},[t,e,b,S]),w=(0,x.useCallback)((e,t)=>{let n=e-v.current.x,r=t-v.current.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:c,distance:l}=ZH(n,r);_.current=l,c!==g.current&&(g.current=c,s(c),b(),c&&C(c,l))},[b,C]),T=(0,x.useCallback)(()=>{a(!1),s(null),d({x:0,y:0}),b(),g.current=null,h.current&&n?.()},[b,n]),E=(0,x.useCallback)(e=>{if(t)return;e.preventDefault(),e.stopPropagation();let n=e.touches[0];h.current=r?.()??!1,v.current={x:n.clientX,y:n.clientY},f.current=setTimeout(()=>{XH(15),l({x:n.clientX,y:n.clientY-80}),d({x:0,y:0}),a(!0)},WH)},[t,r]),D=(0,x.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),!i)return;let t=e.touches[0];w(t.clientX,t.clientY)},[i,w]),O=(0,x.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f.current&&=(clearTimeout(f.current),null),i&&T()},[i,T]),k=(0,x.useCallback)(e=>{e.preventDefault(),y(),T()},[y,T]);return(0,x.useEffect)(()=>()=>{y()},[y]),(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
@@ -219,7 +219,7 @@ ${s.join(`
219
219
  text-secondary
220
220
  ${t?`opacity-50`:``}
221
221
  ${i?`bg-hover scale-95`:``}
222
- `,style:{touchAction:`none`,WebkitTouchCallout:`none`,WebkitUserSelect:`none`},onTouchStart:T,onTouchMove:E,onTouchEnd:D,onTouchCancel:O,disabled:t,children:(0,G.jsx)(Oe,{width:20,height:20})}),i&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50`,style:{touchAction:`none`},onTouchMove:E,onTouchEnd:D,onTouchCancel:O,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/20`}),(0,G.jsxs)(`div`,{className:`absolute`,style:{left:c.x,top:c.y,transform:`translate(-50%, -50%)`},children:[(0,G.jsxs)(`div`,{className:`relative rounded-full bg-black/40 backdrop-blur-md border-2 border-white/20`,style:{width:YH*2,height:YH*2},children:[[{dir:`up`,angle:-90,label:`↑`},{dir:`right`,angle:0,label:`→`},{dir:`down`,angle:90,label:`↓`},{dir:`left`,angle:180,label:`←`}].map(({dir:e,angle:t,label:n})=>(0,G.jsx)(`div`,{className:`
222
+ `,style:{touchAction:`none`,WebkitTouchCallout:`none`,WebkitUserSelect:`none`},onTouchStart:E,onTouchMove:D,onTouchEnd:O,onTouchCancel:k,disabled:t,children:(0,G.jsx)(Oe,{width:20,height:20})}),i&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50`,style:{touchAction:`none`},onTouchMove:D,onTouchEnd:O,onTouchCancel:k,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/20`}),(0,G.jsxs)(`div`,{className:`absolute`,style:{left:c.x,top:c.y,transform:`translate(-50%, -50%)`},children:[(0,G.jsxs)(`div`,{className:`relative rounded-full bg-black/40 backdrop-blur-md border-2 border-white/20`,style:{width:YH*2,height:YH*2},children:[[{dir:`up`,angle:-90,label:`↑`},{dir:`right`,angle:0,label:`→`},{dir:`down`,angle:90,label:`↓`},{dir:`left`,angle:180,label:`←`}].map(({dir:e,angle:t,label:n})=>(0,G.jsx)(`div`,{className:`
223
223
  absolute text-2xl font-bold
224
224
  transition-all duration-75
225
225
  ${o===e?`text-accent scale-125`:`text-white/60`}
@@ -8,7 +8,7 @@
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-DPz95O93.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-CTciRPGZ.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-DIHhOXLG.css">
13
13
  <link rel="manifest" href="/manifest.webmanifest"></head>
14
14
  <body>
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 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:"c55c3d714778b5d9f69765ee0cf428e3"},{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-DPz95O93.js",revision:null},{url:"assets/index-DIHhOXLG.css",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(?:\/|$)/]}))});
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 t={};const d=e=>i(e,r),f={module:{uri:r},exports:t,require:d};n[r]=Promise.all(o.map(e=>f[e]||d(e))).then(e=>(s(...e),t))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"index.html",revision:"3767b21b97888d51409394de20e9a290"},{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-DIHhOXLG.css",revision:null},{url:"assets/index-CTciRPGZ.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@gbasin/agentboard-darwin-x64",
3
- "version": "0.4.25",
3
+ "version": "0.4.26",
4
4
  "description": "agentboard binary for darwin-x64",
5
5
  "repository": {
6
6
  "type": "git",