@sma1lboy/rove 0.9.280 → 0.9.281
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/chunk-01tghgf3.js +8 -0
- package/dist/cli/{chunk-jk4f0xsh.js → chunk-03fv92ya.js} +1 -1
- package/dist/cli/{chunk-7aaw17vr.js → chunk-08mb3qss.js} +1 -1
- package/dist/cli/{chunk-y7mjhjby.js → chunk-0gbg7bg8.js} +1 -1
- package/dist/cli/{chunk-zv0rrhck.js → chunk-0nkk13z9.js} +1 -1
- package/dist/cli/{chunk-zp0q931y.js → chunk-14tevt5v.js} +1 -1
- package/dist/cli/{chunk-1g6vhgfe.js → chunk-16e6jqq6.js} +1 -1
- package/dist/cli/{chunk-3hxm56h6.js → chunk-1a57ejnh.js} +1 -1
- package/dist/cli/{chunk-4z1a65bz.js → chunk-32y7f5dr.js} +1 -1
- package/dist/cli/{chunk-j54c5a0a.js → chunk-3m0ydze9.js} +1 -1
- package/dist/cli/{chunk-tqxbbg3k.js → chunk-3pgp6z3k.js} +1 -1
- package/dist/cli/{chunk-amq030gb.js → chunk-3qj9yw5c.js} +2 -2
- package/dist/cli/chunk-453qpfae.js +2 -0
- package/dist/cli/{chunk-gk8efsx0.js → chunk-46qs744w.js} +1 -1
- package/dist/cli/{chunk-am5cpb9n.js → chunk-4vkrv4eb.js} +1 -1
- package/dist/cli/{chunk-hfvzvj91.js → chunk-4yr1534j.js} +1 -1
- package/dist/cli/{chunk-byh32qnx.js → chunk-5swmvt20.js} +1 -1
- package/dist/cli/{chunk-j8d9sk5j.js → chunk-6wt08a28.js} +1 -1
- package/dist/cli/{chunk-f262ywvg.js → chunk-7911jkq6.js} +1 -1
- package/dist/cli/chunk-8ng1756g.js +3 -0
- package/dist/cli/{chunk-ebdp0z1d.js → chunk-95kk75wh.js} +1 -1
- package/dist/cli/{chunk-6mk6ceb6.js → chunk-9qpea48c.js} +2 -2
- package/dist/cli/chunk-9vwb9f7q.js +7 -0
- package/dist/cli/{chunk-nqwza8b0.js → chunk-a5xbsvx2.js} +1 -1
- package/dist/cli/{chunk-t7dyf50m.js → chunk-ap3fgbbt.js} +1 -1
- package/dist/cli/{chunk-5kgq379z.js → chunk-b5fdqynx.js} +1 -1
- package/dist/cli/{chunk-x85rcep5.js → chunk-bbq6wc47.js} +1 -1
- package/dist/cli/{chunk-np398f2a.js → chunk-bbt217yd.js} +1 -1
- package/dist/cli/{chunk-w2tcb3rn.js → chunk-bm6qhcck.js} +1 -1
- package/dist/cli/{chunk-txvjg1g9.js → chunk-btxfcc77.js} +3 -3
- package/dist/cli/chunk-c9ptxthj.js +2 -0
- package/dist/cli/{chunk-zkby63ej.js → chunk-cs410j8b.js} +1 -1
- package/dist/cli/{chunk-rvjnafyt.js → chunk-cx78tyg1.js} +1 -1
- package/dist/cli/{chunk-4drm07mp.js → chunk-cx8wnz54.js} +1 -1
- package/dist/cli/{chunk-t2p22ww7.js → chunk-ejfs22aq.js} +1 -1
- package/dist/cli/chunk-f23manyf.js +8 -0
- package/dist/cli/{chunk-7nnpp89t.js → chunk-ga82ras9.js} +1 -1
- package/dist/cli/{chunk-f7egph8g.js → chunk-gzkes5bw.js} +1 -1
- package/dist/cli/{chunk-xy5mrrqk.js → chunk-hmy01yg2.js} +16 -14
- package/dist/cli/{chunk-3a7x7jg7.js → chunk-hnxs5shy.js} +16 -17
- package/dist/cli/{chunk-bw2y7670.js → chunk-j2e7jgh8.js} +1 -1
- package/dist/cli/{chunk-qc9sj5wh.js → chunk-j5y7hhc2.js} +1 -1
- package/dist/cli/{chunk-qzhfs668.js → chunk-jar50zcp.js} +1 -1
- package/dist/cli/{chunk-r98h6b42.js → chunk-k2rmj0v3.js} +2 -2
- package/dist/cli/{chunk-bv050ssb.js → chunk-k3h4cpdy.js} +1 -1
- package/dist/cli/{chunk-wz307hf6.js → chunk-k9xabf0t.js} +1 -1
- package/dist/cli/{chunk-02x0ahxk.js → chunk-kp43j420.js} +1 -1
- package/dist/cli/{chunk-6cfs0nqe.js → chunk-kt5ngemc.js} +1 -1
- package/dist/cli/chunk-nkgn0bqq.js +2 -0
- package/dist/cli/{chunk-fkgemeww.js → chunk-q2nhmaq9.js} +2 -2
- package/dist/cli/{chunk-hd1szhba.js → chunk-q6cwy6v5.js} +1 -1
- package/dist/cli/{chunk-jkgp816v.js → chunk-q72w3dsx.js} +1 -1
- package/dist/cli/{chunk-hmsvt5nj.js → chunk-rqm2kn0c.js} +1 -1
- package/dist/cli/{chunk-q6tsx6zc.js → chunk-sm96b61g.js} +1 -1
- package/dist/cli/chunk-sqdmngys.js +2 -0
- package/dist/cli/{chunk-k2j0tg1h.js → chunk-tgv90744.js} +7 -3
- package/dist/cli/{chunk-vbvbwjad.js → chunk-twy9bfps.js} +1 -1
- package/dist/cli/{chunk-5g6v6tq5.js → chunk-v3ecphrz.js} +1 -1
- package/dist/cli/{chunk-mjzjah9d.js → chunk-vtay379p.js} +1 -1
- package/dist/cli/chunk-vx44yxra.js +3 -0
- package/dist/cli/{chunk-w003rpr2.js → chunk-w3kvkax7.js} +1 -1
- package/dist/cli/{chunk-s1xn6wav.js → chunk-w6ft4djp.js} +1 -1
- package/dist/cli/{chunk-8hernv9y.js → chunk-w8dmmnys.js} +1 -1
- package/dist/cli/{chunk-9f34p80j.js → chunk-ww0zctb7.js} +1 -1
- package/dist/cli/{chunk-qwwt4ch2.js → chunk-x119xqa6.js} +1 -1
- package/dist/cli/{chunk-nrx8pf9p.js → chunk-x35dfb1x.js} +1 -1
- package/dist/cli/{chunk-ggjmcqpt.js → chunk-x94e0rw4.js} +3 -3
- package/dist/cli/chunk-xaam0d8r.js +4 -0
- package/dist/cli/{chunk-azt0c2b5.js → chunk-xekk4k54.js} +1 -1
- package/dist/cli/{chunk-mqvkd2g1.js → chunk-xqvyzv62.js} +1 -1
- package/dist/cli/chunk-xxz3np4w.js +2 -0
- package/dist/cli/{chunk-p11emdb2.js → chunk-y07cp9mb.js} +1 -1
- package/dist/cli/{chunk-5dq0n3h7.js → chunk-y2v1x23z.js} +1 -1
- package/dist/cli/chunk-yn01fet6.js +3 -0
- package/dist/cli/{chunk-cakyme4s.js → chunk-z8rvxvx5.js} +1 -1
- package/dist/cli/chunk-zr058kbe.js +3 -0
- package/dist/cli/index.js +3 -3
- package/dist/cli/rove.js +3 -3
- package/dist/skills/rove/SKILL.md +4 -2
- package/dist/skills/rove/references/api-flags.md +7 -4
- package/dist/voice/asr_server.py +318 -0
- package/dist/voice/engine.py +174 -0
- package/dist/voice/fetch_model.py +30 -0
- package/dist/voice/learn.py +184 -0
- package/dist/voice/live.py +93 -0
- package/dist/voice/phonetic.py +87 -0
- package/dist/voice/polish.py +84 -0
- package/dist/voice/polish_prompt.md +50 -0
- package/dist/voice/pyproject.toml +28 -0
- package/dist/voice/uv.lock +815 -0
- package/dist/voice/vocab.py +193 -0
- package/dist/web/assets/index-Bo92_NP5.css +1 -0
- package/dist/web/assets/index-Ct8dDnCc.js +154 -0
- package/dist/web/dictation-worklet.js +31 -0
- package/dist/web/index.html +3 -3
- package/dist/web/relay/index.html +6 -6
- package/package.json +4 -3
- package/dist/cli/chunk-0g1h35mr.js +0 -2
- package/dist/cli/chunk-1wwqf6kx.js +0 -3
- package/dist/cli/chunk-26ydgwym.js +0 -2
- package/dist/cli/chunk-2pfh3zm0.js +0 -33
- package/dist/cli/chunk-2wrt80ft.js +0 -3
- package/dist/cli/chunk-7fya3y0n.js +0 -2
- package/dist/cli/chunk-d2wndk4q.js +0 -2
- package/dist/cli/chunk-mey3vksj.js +0 -2
- package/dist/cli/chunk-nv8eyjep.js +0 -3
- package/dist/cli/chunk-ve76p2mx.js +0 -3
- package/dist/cli/chunk-wfgrn8p2.js +0 -4
- package/dist/cli/chunk-xmjknfy2.js +0 -7
- package/dist/web/assets/index-CuglNDLi.css +0 -1
- package/dist/web/assets/index-DIN0Lz5C.js +0 -149
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
var e=Object.defineProperty,t=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),n=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var r=`rove.bridge.token`,i=new URLSearchParams(window.location.hash.slice(1)).get(`token`);i&&(localStorage.setItem(r,i),history.replaceState(null,``,window.location.pathname+window.location.search));function a(){return localStorage.getItem(r)}function o(e){localStorage.setItem(r,e)}function s(){localStorage.removeItem(r)}var c=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function ee(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(ee(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),l=t(((e,t)=>{t.exports=c()})),u=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=t(((e,t)=>{t.exports=u()})),f=t((e=>{var t=l();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),p=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=t((e=>{var t=d(),n=l(),r=p();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(o(e)!==e)throw Error(i(188))}function f(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return u(a),e;if(s===r)return u(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,l=a.child;l;){if(l===n){c=!0,n=a,r=s;break}if(l===r){c=!0,r=a,n=s;break}l=l.sibling}if(!c){for(l=s.child;l;){if(l===n){c=!0,n=s,r=a;break}if(l===r){c=!0,r=s,n=a;break}l=l.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function m(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=m(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function ee(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var M=Symbol.for(`react.client.reference`);function N(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===M?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?N(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return N(e(t))}catch{}}return null}var P=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te={pending:!1,data:null,method:null,action:null},ne=[],re=-1;function ie(e){return{current:e}}function L(e){0>re||(e.current=ne[re],ne[re]=null,re--)}function R(e,t){re++,ne[re]=e.current,e.current=t}var ae=ie(null),oe=ie(null),se=ie(null),ce=ie(null);function le(e,t){switch(R(se,t),R(oe,e),R(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Gd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Gd(t),e=Kd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}L(ae),R(ae,e)}function ue(){L(ae),L(oe),L(se)}function de(e){e.memoizedState!==null&&R(ce,e);var t=ae.current,n=Kd(t,e.type);t!==n&&(R(oe,e),R(ae,n))}function fe(e){oe.current===e&&(L(ae),L(oe)),ce.current===e&&(L(ce),tp._currentValue=te)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1<e.stack.indexOf(`
|
|
2
|
+
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
3
|
+
`+pe+e+me}var ge=!1;function _e(e,t){if(!e||ge)return``;ge=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
4
|
+
`),l=s.split(`
|
|
5
|
+
`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
|
|
6
|
+
`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
|
|
7
|
+
Error generating stack: `+e.message+`
|
|
8
|
+
`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,z=t.unstable_setDisableYieldValue,Ne=null,B=null;function Pe(e){if(typeof Me==`function`&&z(e),B&&typeof B.setStrictMode==`function`)try{B.setStrictMode(Ne,e)}catch{}}var Fe=Math.clz32?Math.clz32:Le,Ie=Math.log,V=Math.LN2;function Le(e){return e>>>=0,e===0?32:31-(Ie(e)/V|0)|0}var Re=256,ze=262144,H=4194304;function Be(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ve(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Be(n))):i=Be(o):i=Be(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Be(n))):i=Be(o)):i=Be(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function He(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ue(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function We(){var e=H;return H<<=1,!(H&62914560)&&(H=4194304),e}function Ge(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ke(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Fe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Je(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Je(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Fe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ye(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Fe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function Xe(e,t){var n=t&-t;return n=n&42?1:Ze(n),(n&(e.suspendedLanes|t))===0?n:0}function Ze(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Qe(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function $e(){var e=I.p;return e===0?(e=window.event,e===void 0?32:_p(e.type)):e}function et(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var tt=Math.random().toString(36).slice(2),nt=`__reactFiber$`+tt,rt=`__reactProps$`+tt,it=`__reactContainer$`+tt,at=`__reactEvents$`+tt,ot=`__reactListeners$`+tt,st=`__reactHandles$`+tt,ct=`__reactResources$`+tt,lt=`__reactMarker$`+tt;function ut(e){delete e[nt],delete e[rt],delete e[at],delete e[ot],delete e[st]}function dt(e){var t=e[nt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[it]||n[nt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=hf(e);e!==null;){if(n=e[nt])return n;e=hf(e)}return t}e=n,n=e.parentNode}return null}function ft(e){if(e=e[nt]||e[it]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function pt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function mt(e){var t=e[ct];return t||=e[ct]={hoistableStyles:new Map,hoistableScripts:new Map},t}function ht(e){e[lt]=!0}var gt=new Set,_t={};function vt(e,t){yt(e,t),yt(e+`Capture`,t)}function yt(e,t){for(_t[e]=t,e=0;e<t.length;e++)gt.add(t[e])}var bt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),xt={},St={};function Ct(e){return be.call(St,e)?!0:be.call(xt,e)?!1:bt.test(e)?St[e]=!0:(xt[e]=!0,!1)}function wt(e,t,n){if(Ct(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}}function Tt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function Et(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Dt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Ot(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function kt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function At(e){if(!e._valueTracker){var t=Ot(e)?`checked`:`value`;e._valueTracker=kt(e,t,``+e[t])}}function jt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Ot(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Mt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Nt=/[\n"\\]/g;function Pt(e){return e.replace(Nt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Ft(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Dt(t)):e.value!==``+Dt(t)&&(e.value=``+Dt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Lt(e,o,Dt(n)):Lt(e,o,Dt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Dt(s):e.removeAttribute(`name`)}function It(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){At(e);return}n=n==null?``:``+Dt(n),t=t==null?n:``+Dt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),At(e)}function Lt(e,t,n){t===`number`&&Mt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Rt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Dt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function zt(e,t,n){if(t!=null&&(t=``+Dt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Dt(n)}function Bt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(P(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Dt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),At(e)}function Vt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ht=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Ut(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Ht.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Wt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Ut(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Ut(e,o,t[o])}function Gt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Kt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),qt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Jt(e){return qt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Yt(){}var Xt=null;function Zt(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Qt=null,$t=null;function en(e){var t=ft(e);if(t&&(e=t.stateNode)){var n=e[rt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Ft(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Pt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[rt]||null;if(!a)throw Error(i(90));Ft(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&jt(r)}break a;case`textarea`:zt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Rt(e,!!n.multiple,t,!1)}}}var tn=!1;function nn(e,t,n){if(tn)return e(t,n);tn=!0;try{return e(t)}finally{if(tn=!1,(Qt!==null||$t!==null)&&(Cu(),Qt&&(t=Qt,e=$t,$t=Qt=null,en(t),e)))for(t=0;t<e.length;t++)en(e[t])}}function rn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[rt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var an=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),on=!1;if(an)try{var sn={};Object.defineProperty(sn,"passive",{get:function(){on=!0}}),window.addEventListener(`test`,sn,sn),window.removeEventListener(`test`,sn,sn)}catch{on=!1}var cn=null,ln=null,un=null;function dn(){if(un)return un;var e,t=ln,n=t.length,r,i=`value`in cn?cn.value:cn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return un=i.slice(e,1<r?1-r:void 0)}function fn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function U(){return!0}function pn(){return!1}function mn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?U:pn,this.isPropagationStopped=pn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=U)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=U)},persist:function(){},isPersistent:U}),t}var hn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},gn=mn(hn),_n=h({},hn,{view:0,detail:0}),vn=mn(_n),yn,bn,xn,Sn=h({},_n,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Mn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==xn&&(xn&&e.type===`mousemove`?(yn=e.screenX-xn.screenX,bn=e.screenY-xn.screenY):bn=yn=0,xn=e),yn)},movementY:function(e){return`movementY`in e?e.movementY:bn}}),Cn=mn(Sn),wn=mn(h({},Sn,{dataTransfer:0})),Tn=mn(h({},_n,{relatedTarget:0})),En=mn(h({},hn,{animationName:0,elapsedTime:0,pseudoElement:0})),W=mn(h({},hn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Dn=mn(h({},hn,{data:0})),On={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},kn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},An={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function jn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=An[e])?!!t[e]:!1}function Mn(){return jn}var Nn=mn(h({},_n,{key:function(e){if(e.key){var t=On[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=fn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?kn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Mn,charCode:function(e){return e.type===`keypress`?fn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?fn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Pn=mn(h({},Sn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Fn=mn(h({},_n,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Mn})),In=mn(h({},hn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=mn(h({},Sn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Rn=mn(h({},hn,{newState:0,oldState:0})),zn=[9,13,27,32],Bn=an&&`CompositionEvent`in window,Vn=null;an&&`documentMode`in document&&(Vn=document.documentMode);var Hn=an&&`TextEvent`in window&&!Vn,Un=an&&(!Bn||Vn&&8<Vn&&11>=Vn),Wn=` `,Gn=!1;function Kn(e,t){switch(e){case`keyup`:return zn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function qn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Jn=!1;function Yn(e,t){switch(e){case`compositionend`:return qn(t);case`keypress`:return t.which===32?(Gn=!0,Wn):null;case`textInput`:return e=t.data,e===Wn&&Gn?null:e;default:return null}}function Xn(e,t){if(Jn)return e===`compositionend`||!Bn&&Kn(e,t)?(e=dn(),un=ln=cn=null,Jn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Un&&t.locale!==`ko`?null:t.data;default:return null}}var Zn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!Zn[e.type]:t===`textarea`}function $n(e,t,n,r){Qt?$t?$t.push(r):$t=[r]:Qt=r,t=kd(t,`onChange`),0<t.length&&(n=new gn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var er=null,tr=null;function nr(e){Sd(e,0)}function rr(e){if(jt(pt(e)))return e}function ir(e,t){if(e===`change`)return t}var ar=!1;if(an){var or;if(an){var sr=`oninput`in document;if(!sr){var cr=document.createElement(`div`);cr.setAttribute(`oninput`,`return;`),sr=typeof cr.oninput==`function`}or=sr}else or=!1;ar=or&&(!document.documentMode||9<document.documentMode)}function lr(){er&&(er.detachEvent(`onpropertychange`,ur),tr=er=null)}function ur(e){if(e.propertyName===`value`&&rr(tr)){var t=[];$n(t,tr,e,Zt(e)),nn(nr,t)}}function dr(e,t,n){e===`focusin`?(lr(),er=t,tr=n,er.attachEvent(`onpropertychange`,ur)):e===`focusout`&&lr()}function fr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return rr(tr)}function pr(e,t){if(e===`click`)return rr(t)}function mr(e,t){if(e===`input`||e===`change`)return rr(t)}function hr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var gr=typeof Object.is==`function`?Object.is:hr;function _r(e,t){if(gr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!be.call(t,i)||!gr(e[i],t[i]))return!1}return!0}function G(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function vr(e,t){var n=G(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=G(n)}}function yr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?yr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function br(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Mt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mt(e.document)}return t}function xr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Sr=an&&`documentMode`in document&&11>=document.documentMode,Cr=null,wr=null,Tr=null,Er=!1;function Dr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Er||Cr==null||Cr!==Mt(r)||(r=Cr,`selectionStart`in r&&xr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Tr&&_r(Tr,r)||(Tr=r,r=kd(wr,`onSelect`),0<r.length&&(t=new gn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Cr)))}function Or(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var kr={animationend:Or(`Animation`,`AnimationEnd`),animationiteration:Or(`Animation`,`AnimationIteration`),animationstart:Or(`Animation`,`AnimationStart`),transitionrun:Or(`Transition`,`TransitionRun`),transitionstart:Or(`Transition`,`TransitionStart`),transitioncancel:Or(`Transition`,`TransitionCancel`),transitionend:Or(`Transition`,`TransitionEnd`)},Ar={},jr={};an&&(jr=document.createElement(`div`).style,`AnimationEvent`in window||(delete kr.animationend.animation,delete kr.animationiteration.animation,delete kr.animationstart.animation),`TransitionEvent`in window||delete kr.transitionend.transition);function Mr(e){if(Ar[e])return Ar[e];if(!kr[e])return e;var t=kr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jr)return Ar[e]=t[n];return e}var Nr=Mr(`animationend`),Pr=Mr(`animationiteration`),Fr=Mr(`animationstart`),Ir=Mr(`transitionrun`),Lr=Mr(`transitionstart`),Rr=Mr(`transitioncancel`),zr=Mr(`transitionend`),Br=new Map,Vr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Vr.push(`scrollEnd`);function Hr(e,t){Br.set(e,t),vt(t,[e])}var Ur=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Wr=[],Gr=0,Kr=0;function qr(){for(var e=Gr,t=Kr=Gr=0;t<e;){var n=Wr[t];Wr[t++]=null;var r=Wr[t];Wr[t++]=null;var i=Wr[t];Wr[t++]=null;var a=Wr[t];if(Wr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Zr(n,i,a)}}function Jr(e,t,n,r){Wr[Gr++]=e,Wr[Gr++]=t,Wr[Gr++]=n,Wr[Gr++]=r,Kr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Yr(e,t,n,r){return Jr(e,t,n,r),K(e)}function Xr(e,t){return Jr(e,null,null,t),K(e)}function Zr(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Fe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function K(e){if(50<mu)throw mu=0,hu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Qr={};function $r(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ei(e,t,n,r){return new $r(e,t,n,r)}function ti(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ni(e,t){var n=e.alternate;return n===null?(n=ei(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ri(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ii(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)ti(e)&&(s=1);else if(typeof e==`string`)s=Kf(e,n,ae.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=ei(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return ai(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=ei(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=ei(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=ei(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=ei(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function ai(e,t,n,r){return e=ei(7,e,r,t),e.lanes=n,e}function oi(e,t,n){return e=ei(6,e,null,t),e.lanes=n,e}function si(e){var t=ei(18,null,null,0);return t.stateNode=e,t}function ci(e,t,n){return t=ei(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var li=new WeakMap;function ui(e,t){if(typeof e==`object`&&e){var n=li.get(e);return n===void 0?(t={value:e,source:t,stack:ye(t)},li.set(e,t),t):n}return{value:e,source:t,stack:ye(t)}}var di=[],fi=0,pi=null,mi=0,hi=[],gi=0,_i=null,vi=1,yi=``;function bi(e,t){di[fi++]=mi,di[fi++]=pi,pi=e,mi=t}function xi(e,t,n){hi[gi++]=vi,hi[gi++]=yi,hi[gi++]=_i,_i=e;var r=vi;e=yi;var i=32-Fe(r)-1;r&=~(1<<i),n+=1;var a=32-Fe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,vi=1<<32-Fe(t)+i|n<<i|r,yi=a+e}else vi=1<<a|n<<i|r,yi=e}function Si(e){e.return!==null&&(bi(e,1),xi(e,1,0))}function Ci(e){for(;e===pi;)pi=di[--fi],di[fi]=null,mi=di[--fi],di[fi]=null;for(;e===_i;)_i=hi[--gi],hi[gi]=null,yi=hi[--gi],hi[gi]=null,vi=hi[--gi],hi[gi]=null}function wi(e,t){hi[gi++]=vi,hi[gi++]=yi,hi[gi++]=_i,vi=t.id,yi=t.overflow,_i=e}var Ti=null,Ei=null,Di=!1,Oi=null,ki=!1,Ai=Error(i(519));function ji(e){throw Li(ui(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Ai}function Mi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[nt]=e,t[rt]=r,n){case`dialog`:Y(`cancel`,t),Y(`close`,t);break;case`iframe`:case`object`:case`embed`:Y(`load`,t);break;case`video`:case`audio`:for(n=0;n<bd.length;n++)Y(bd[n],t);break;case`source`:Y(`error`,t);break;case`img`:case`image`:case`link`:Y(`error`,t),Y(`load`,t);break;case`details`:Y(`toggle`,t);break;case`input`:Y(`invalid`,t),It(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Y(`invalid`,t);break;case`textarea`:Y(`invalid`,t),Bt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Fd(t.textContent,n)?(r.popover!=null&&(Y(`beforetoggle`,t),Y(`toggle`,t)),r.onScroll!=null&&Y(`scroll`,t),r.onScrollEnd!=null&&Y(`scrollend`,t),r.onClick!=null&&(t.onclick=Yt),t=!0):t=!1,t||ji(e,!0)}function Ni(e){for(Ti=e.return;Ti;)switch(Ti.tag){case 5:case 31:case 13:ki=!1;return;case 27:case 3:ki=!0;return;default:Ti=Ti.return}}function Pi(e){if(e!==Ti)return!1;if(!Di)return Ni(e),Di=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||qd(e.type,e.memoizedProps)),n=!n),n&&Ei&&ji(e),Ni(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ei=mf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ei=mf(e)}else t===27?(t=Ei,tf(e.type)?(e=pf,pf=null,Ei=e):Ei=t):Ei=Ti?ff(e.stateNode.nextSibling):null;return!0}function Fi(){Ei=Ti=null,Di=!1}function Ii(){var e=Oi;return e!==null&&(eu===null?eu=e:eu.push.apply(eu,e),Oi=null),e}function Li(e){Oi===null?Oi=[e]:Oi.push(e)}var Ri=ie(null),zi=null,Bi=null;function Vi(e,t,n){R(Ri,t._currentValue),t._currentValue=n}function Hi(e){e._currentValue=Ri.current,L(Ri)}function Ui(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Wi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Ui(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Ui(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Gi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;gr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===ce.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[tp]:e.push(tp))}a=a.return}e!==null&&Wi(t,e,n,r),t.flags|=262144}function Ki(e){for(e=e.firstContext;e!==null;){if(!gr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function qi(e){zi=e,Bi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Ji(e){return Xi(zi,e)}function Yi(e,t){return zi===null&&qi(e),Xi(e,t)}function Xi(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bi===null){if(e===null)throw Error(i(308));Bi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bi=Bi.next=t;return n}var Zi=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Qi=t.unstable_scheduleCallback,$i=t.unstable_NormalPriority,ea={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ta(){return{controller:new Zi,data:new Map,refCount:0}}function na(e){e.refCount--,e.refCount===0&&Qi($i,function(){e.controller.abort()})}var ra=null,ia=0,aa=0,oa=null;function sa(e,t){if(ra===null){var n=ra=[];ia=0,aa=md(),oa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ia++,t.then(ca,ca),t}function ca(){if(--ia===0&&ra!==null){oa!==null&&(oa.status=`fulfilled`);var e=ra;ra=null,aa=0,oa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function la(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ua=F.S;F.S=function(e,t){ru=Te(),typeof t==`object`&&t&&typeof t.then==`function`&&sa(e,t),ua!==null&&ua(e,t)};var da=ie(null);function fa(){var e=da.current;return e===null?Rl.pooledCache:e}function pa(e,t){t===null?R(da,da.current):R(da,t.pool)}function ma(){var e=fa();return e===null?null:{parent:ea._currentValue,pool:e}}var ha=Error(i(460)),ga=Error(i(474)),_a=Error(i(542)),va={then:function(){}};function ya(e){return e=e.status,e===`fulfilled`||e===`rejected`}function ba(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Yt,Yt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,wa(e),e;default:if(typeof t.status==`string`)t.then(Yt,Yt);else{if(e=Rl,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,wa(e),e}throw Sa=t,ha}}function xa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Sa=e,ha):e}}var Sa=null;function Ca(){if(Sa===null)throw Error(i(459));var e=Sa;return Sa=null,e}function wa(e){if(e===ha||e===_a)throw Error(i(483))}var Ta=null,Ea=0;function Da(e){var t=Ea;return Ea+=1,Ta===null&&(Ta=[]),ba(Ta,e,t)}function Oa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function ka(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Aa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ni(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=oi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&xa(i)===t.type)?(t=a(t,n.props),Oa(t,n),t.return=e,t):(t=ii(n.type,n.key,n.props,null,e.mode,r),Oa(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=ci(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=ai(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=oi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ii(t.type,t.key,t.props,null,e.mode,n),Oa(n,t),n.return=e,n;case v:return t=ci(t,e.mode,n),t.return=e,t;case O:return t=xa(t),f(e,t,n)}if(P(t)||ee(t))return t=ai(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Da(t),n);if(t.$$typeof===C)return f(e,Yi(e,t),n);ka(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=xa(n),p(e,t,n,r)}if(P(n)||ee(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Da(n),r);if(n.$$typeof===C)return p(e,t,Yi(e,n),r);ka(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=xa(r),m(e,t,n,r,i)}if(P(r)||ee(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Da(r),i);if(r.$$typeof===C)return m(e,t,n,Yi(t,r),i);ka(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Di&&bi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return Di&&bi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),Di&&bi(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Di&&bi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Di&&bi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Di&&bi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&xa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Oa(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=ai(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ii(o.type,o.key,o.props,null,e.mode,c),Oa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=ci(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=xa(o),b(e,r,o,c)}if(P(o))return h(e,r,o,c);if(ee(o)){if(l=ee(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Da(o),c);if(o.$$typeof===C)return b(e,r,Yi(e,o),c);ka(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=oi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ea=0;var i=b(e,t,n,r);return Ta=null,i}catch(t){if(t===ha||t===_a)throw t;var a=ei(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ja=Aa(!0),Ma=Aa(!1),Na=!1;function Pa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ia(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function La(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Ll&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=K(e),Zr(e,null,n),t}return Jr(e,r,t,n),K(e)}function Ra(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}function za(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ba=!1;function Va(){if(Ba){var e=oa;if(e!==null)throw e}}function Ha(e,t,n,r){Ba=!1;var i=e.updateQueue;Na=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Bl&f)===f:(r&f)===f){f!==0&&f===aa&&(Ba=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Na=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Jl|=o,e.lanes=o,e.memoizedState=d}}function Ua(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Wa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Ua(n[e],t)}var Ga=ie(null),Ka=ie(0);function qa(e,t){e=Kl,R(Ka,e),R(Ga,t),Kl=e|t.baseLanes}function Ja(){R(Ka,Kl),R(Ga,Ga.current)}function Ya(){Kl=Ka.current,L(Ga),L(Ka)}var Xa=ie(null),Za=null;function Qa(e){var t=e.alternate;R(ro,ro.current&1),R(Xa,e),Za===null&&(t===null||Ga.current!==null||t.memoizedState!==null)&&(Za=e)}function $a(e){R(ro,ro.current),R(Xa,e),Za===null&&(Za=e)}function eo(e){e.tag===22?(R(ro,ro.current),R(Xa,e),Za===null&&(Za=e)):to(e)}function to(){R(ro,ro.current),R(Xa,Xa.current)}function no(e){L(Xa),Za===e&&(Za=null),L(ro)}var ro=ie(0);function io(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||lf(n)||uf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ao=0,oo=null,so=null,co=null,lo=!1,uo=!1,fo=!1,po=0,mo=0,ho=null,go=0;function _o(){throw Error(i(321))}function vo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!gr(e[n],t[n]))return!1;return!0}function yo(e,t,n,r,i,a){return ao=a,oo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,F.H=e===null||e.memoizedState===null?Is:Ls,fo=!1,a=n(r,i),fo=!1,uo&&(a=xo(t,n,r,i)),bo(e),a}function bo(e){F.H=Fs;var t=so!==null&&so.next!==null;if(ao=0,co=so=oo=null,lo=!1,mo=0,ho=null,t)throw Error(i(300));e===null||ec||(e=e.dependencies,e!==null&&Ki(e)&&(ec=!0))}function xo(e,t,n,r){oo=e;var a=0;do{if(uo&&(ho=null),mo=0,uo=!1,25<=a)throw Error(i(301));if(a+=1,co=so=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}F.H=Rs,o=t(n,r)}while(uo);return o}function So(){var e=F.H,t=e.useState()[0];return t=typeof t.then==`function`?ko(t):t,e=e.useState()[0],(so===null?null:so.memoizedState)!==e&&(oo.flags|=1024),t}function Co(){var e=po!==0;return po=0,e}function wo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function To(e){if(lo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}lo=!1}ao=0,co=so=oo=null,uo=!1,mo=po=0,ho=null}function Eo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return co===null?oo.memoizedState=co=e:co=co.next=e,co}function Do(){if(so===null){var e=oo.alternate;e=e===null?null:e.memoizedState}else e=so.next;var t=co===null?oo.memoizedState:co.next;if(t!==null)co=t,so=e;else{if(e===null)throw oo.alternate===null?Error(i(467)):Error(i(310));so=e,e={memoizedState:so.memoizedState,baseState:so.baseState,baseQueue:so.baseQueue,queue:so.queue,next:null},co===null?oo.memoizedState=co=e:co=co.next=e}return co}function Oo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ko(e){var t=mo;return mo+=1,ho===null&&(ho=[]),e=ba(ho,e,t),t=oo,(co===null?t.memoizedState:co.next)===null&&(t=t.alternate,F.H=t===null||t.memoizedState===null?Is:Ls),e}function Ao(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return ko(e);if(e.$$typeof===C)return Ji(e)}throw Error(i(438,String(e)))}function jo(e){var t=null,n=oo.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=oo.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Oo(),oo.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=A;return t.index++,n}function Mo(e,t){return typeof t==`function`?t(e):t}function No(e){return Po(Do(),so,e)}function Po(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(ao&f)===f:(Bl&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===aa&&(d=!0);else if((ao&p)===p){u=u.next,p===aa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,oo.lanes|=p,Jl|=p;f=u.action,fo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,oo.lanes|=f,Jl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!gr(o,e.memoizedState)&&(ec=!0,d&&(n=oa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Fo(e){var t=Do(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);gr(o,t.memoizedState)||(ec=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Io(e,t,n){var r=oo,a=Do(),o=Di;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!gr((so||a).memoizedState,n);if(s&&(a.memoizedState=n,ec=!0),a=a.queue,ss(zo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||co!==null&&co.memoizedState.tag&1){if(r.flags|=2048,ns(9,{destroy:void 0},Ro.bind(null,r,a,n,t),null),Rl===null)throw Error(i(349));o||ao&127||Lo(r,t,n)}return n}function Lo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=oo.updateQueue,t===null?(t=Oo(),oo.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ro(e,t,n,r){t.value=n,t.getSnapshot=r,Bo(t)&&Vo(e)}function zo(e,t,n){return n(function(){Bo(t)&&Vo(e)})}function Bo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!gr(e,n)}catch{return!0}}function Vo(e){var t=Xr(e,2);t!==null&&vu(t,e,2)}function Ho(e){var t=Eo();if(typeof e==`function`){var n=e;if(e=n(),fo){Pe(!0);try{n()}finally{Pe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:e},t}function Uo(e,t,n,r){return e.baseState=n,Po(e,so,typeof r==`function`?r:Mo)}function Wo(e,t,n,r,a){if(Ms(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};F.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Go(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Go(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=F.T,o={};F.T=o;try{var s=n(i,r),c=F.S;c!==null&&c(o,s),Ko(e,t,s)}catch(n){Jo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),F.T=a}}else try{a=n(i,r),Ko(e,t,a)}catch(n){Jo(e,t,n)}}function Ko(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){qo(e,t,n)},function(n){return Jo(e,t,n)}):qo(e,t,n)}function qo(e,t,n){t.status=`fulfilled`,t.value=n,Yo(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Go(e,n)))}function Jo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Yo(t),t=t.next;while(t!==r)}e.action=null}function Yo(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Xo(e,t){return t}function Zo(e,t){if(Di){var n=Rl.formState;if(n!==null){a:{var r=oo;if(Di){if(Ei){b:{for(var i=Ei,a=ki;i.nodeType!==8;){if(!a){i=null;break b}if(i=ff(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ei=ff(i.nextSibling),r=i.data===`F!`;break a}}ji(r)}r=!1}r&&(t=n[0])}}return n=Eo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:t},n.queue=r,n=ks.bind(null,oo,r),r.dispatch=n,r=Ho(!1),a=js.bind(null,oo,!1,r.queue),r=Eo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Wo.bind(null,oo,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Qo(e){return $o(Do(),so,e)}function $o(e,t,n){if(t=Po(e,t,Xo)[0],e=No(Mo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=ko(t)}catch(e){throw e===ha?_a:e}else r=t;t=Do();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(oo.flags|=2048,ns(9,{destroy:void 0},es.bind(null,i,n),null)),[r,a,e]}function es(e,t){e.action=t}function ts(e){var t=Do(),n=so;if(n!==null)return $o(t,n,e);Do(),t=t.memoizedState,n=Do();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ns(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=oo.updateQueue,t===null&&(t=Oo(),oo.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function rs(){return Do().memoizedState}function is(e,t,n,r){var i=Eo();oo.flags|=e,i.memoizedState=ns(1|t,{destroy:void 0},n,r===void 0?null:r)}function as(e,t,n,r){var i=Do();r=r===void 0?null:r;var a=i.memoizedState.inst;so!==null&&r!==null&&vo(r,so.memoizedState.deps)?i.memoizedState=ns(t,a,n,r):(oo.flags|=e,i.memoizedState=ns(1|t,a,n,r))}function os(e,t){is(8390656,8,e,t)}function ss(e,t){as(2048,8,e,t)}function cs(e){oo.flags|=4;var t=oo.updateQueue;if(t===null)t=Oo(),oo.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ls(e){var t=Do().memoizedState;return cs({ref:t,nextImpl:e}),function(){if(Ll&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function us(e,t){return as(4,2,e,t)}function ds(e,t){return as(4,4,e,t)}function fs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ps(e,t,n){n=n==null?null:n.concat([e]),as(4,4,fs.bind(null,t,e),n)}function ms(){}function hs(e,t){var n=Do();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&vo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function gs(e,t){var n=Do();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&vo(t,r[1]))return r[0];if(r=e(),fo){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r}function _s(e,t,n){return n===void 0||ao&1073741824&&!(Bl&261930)?e.memoizedState=t:(e.memoizedState=n,e=_u(),oo.lanes|=e,Jl|=e,n)}function vs(e,t,n,r){return gr(n,t)?n:Ga.current===null?!(ao&42)||ao&1073741824&&!(Bl&261930)?(ec=!0,e.memoizedState=n):(e=_u(),oo.lanes|=e,Jl|=e,t):(e=_s(e,n,r),gr(e,t)||(ec=!0),e)}function ys(e,t,n,r,i){var a=I.p;I.p=a!==0&&8>a?a:8;var o=F.T,s={};F.T=s,js(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?As(e,t,la(c,r),gu(e)):As(e,t,r,gu(e))}catch(n){As(e,t,{then:function(){},status:`rejected`,reason:n},gu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function bs(){}function xs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ss(e).queue;ys(e,a,t,te,n===null?bs:function(){return Cs(e),n(r)})}function Ss(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Cs(e){var t=Ss(e);t.next===null&&(t=e.alternate.memoizedState),As(e,t.next.queue,{},gu())}function ws(){return Ji(tp)}function Ts(){return Do().memoizedState}function Es(){return Do().memoizedState}function Ds(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=gu();e=Ia(n);var r=La(t,e,n);r!==null&&(vu(r,t,n),Ra(r,t,n)),t={cache:ta()},e.payload=t;return}t=t.return}}function Os(e,t,n){var r=gu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ms(e)?Ns(t,n):(n=Yr(e,t,n,r),n!==null&&(vu(n,e,r),Ps(n,t,r)))}function ks(e,t,n){As(e,t,n,gu())}function As(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ms(e))Ns(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,gr(s,o))return Jr(e,t,i,0),Rl===null&&qr(),!1}catch{}if(n=Yr(e,t,i,r),n!==null)return vu(n,e,r),Ps(n,t,r),!0}return!1}function js(e,t,n,r){if(r={lane:2,revertLane:md(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ms(e)){if(t)throw Error(i(479))}else t=Yr(e,n,r,2),t!==null&&vu(t,e,2)}function Ms(e){var t=e.alternate;return e===oo||t!==null&&t===oo}function Ns(e,t){uo=lo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ps(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}var Fs={readContext:Ji,use:Ao,useCallback:_o,useContext:_o,useEffect:_o,useImperativeHandle:_o,useLayoutEffect:_o,useInsertionEffect:_o,useMemo:_o,useReducer:_o,useRef:_o,useState:_o,useDebugValue:_o,useDeferredValue:_o,useTransition:_o,useSyncExternalStore:_o,useId:_o,useHostTransitionStatus:_o,useFormState:_o,useActionState:_o,useOptimistic:_o,useMemoCache:_o,useCacheRefresh:_o};Fs.useEffectEvent=_o;var Is={readContext:Ji,use:Ao,useCallback:function(e,t){return Eo().memoizedState=[e,t===void 0?null:t],e},useContext:Ji,useEffect:os,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),is(4194308,4,fs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return is(4194308,4,e,t)},useInsertionEffect:function(e,t){is(4,2,e,t)},useMemo:function(e,t){var n=Eo();t=t===void 0?null:t;var r=e();if(fo){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Eo();if(n!==void 0){var i=n(t);if(fo){Pe(!0);try{n(t)}finally{Pe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Os.bind(null,oo,e),[r.memoizedState,e]},useRef:function(e){var t=Eo();return e={current:e},t.memoizedState=e},useState:function(e){e=Ho(e);var t=e.queue,n=ks.bind(null,oo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ms,useDeferredValue:function(e,t){return _s(Eo(),e,t)},useTransition:function(){var e=Ho(!1);return e=ys.bind(null,oo,e.queue,!0,!1),Eo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oo,a=Eo();if(Di){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Rl===null)throw Error(i(349));Bl&127||Lo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,os(zo.bind(null,r,o,e),[e]),r.flags|=2048,ns(9,{destroy:void 0},Ro.bind(null,r,o,n,t),null),n},useId:function(){var e=Eo(),t=Rl.identifierPrefix;if(Di){var n=yi,r=vi;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=po++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=go++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:ws,useFormState:Zo,useActionState:Zo,useOptimistic:function(e){var t=Eo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=js.bind(null,oo,!0,n),n.dispatch=t,[e,t]},useMemoCache:jo,useCacheRefresh:function(){return Eo().memoizedState=Ds.bind(null,oo)},useEffectEvent:function(e){var t=Eo(),n={impl:e};return t.memoizedState=n,function(){if(Ll&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Ls={readContext:Ji,use:Ao,useCallback:hs,useContext:Ji,useEffect:ss,useImperativeHandle:ps,useInsertionEffect:us,useLayoutEffect:ds,useMemo:gs,useReducer:No,useRef:rs,useState:function(){return No(Mo)},useDebugValue:ms,useDeferredValue:function(e,t){return vs(Do(),so.memoizedState,e,t)},useTransition:function(){var e=No(Mo)[0],t=Do().memoizedState;return[typeof e==`boolean`?e:ko(e),t]},useSyncExternalStore:Io,useId:Ts,useHostTransitionStatus:ws,useFormState:Qo,useActionState:Qo,useOptimistic:function(e,t){return Uo(Do(),so,e,t)},useMemoCache:jo,useCacheRefresh:Es};Ls.useEffectEvent=ls;var Rs={readContext:Ji,use:Ao,useCallback:hs,useContext:Ji,useEffect:ss,useImperativeHandle:ps,useInsertionEffect:us,useLayoutEffect:ds,useMemo:gs,useReducer:Fo,useRef:rs,useState:function(){return Fo(Mo)},useDebugValue:ms,useDeferredValue:function(e,t){var n=Do();return so===null?_s(n,e,t):vs(n,so.memoizedState,e,t)},useTransition:function(){var e=Fo(Mo)[0],t=Do().memoizedState;return[typeof e==`boolean`?e:ko(e),t]},useSyncExternalStore:Io,useId:Ts,useHostTransitionStatus:ws,useFormState:ts,useActionState:ts,useOptimistic:function(e,t){var n=Do();return so===null?(n.baseState=e,[e,n.queue.dispatch]):Uo(n,so,e,t)},useMemoCache:jo,useCacheRefresh:Es};Rs.useEffectEvent=ls;function zs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Bs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ia(r);i.payload=t,n!=null&&(i.callback=n),t=La(e,i,r),t!==null&&(vu(t,e,r),Ra(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ia(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=La(e,i,r),t!==null&&(vu(t,e,r),Ra(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=gu(),r=Ia(n);r.tag=2,t!=null&&(r.callback=t),t=La(e,r,n),t!==null&&(vu(t,e,n),Ra(t,e,n))}};function Vs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!_r(n,r)||!_r(i,a):!0}function Hs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Bs.enqueueReplaceState(t,t.state,null)}function Us(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Ws(e){Ur(e)}function Gs(e){console.error(e)}function Ks(e){Ur(e)}function qs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Js(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ys(e,t,n){return n=Ia(n),n.tag=3,n.payload={element:null},n.callback=function(){qs(e,t)},n}function Xs(e){return e=Ia(e),e.tag=3,e}function Zs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Js(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Js(t,n,r),typeof i!=`function`&&(ou===null?ou=new Set([this]):ou.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Qs(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Gi(t,n,a,!0),n=Xa.current,n!==null){switch(n.tag){case 31:case 13:return Za===null?Au():n.alternate===null&&ql===0&&(ql=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===va?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Ju(e,r,a)),!1;case 22:return n.flags|=65536,r===va?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Ju(e,r,a)),!1}throw Error(i(435,n.tag))}return Ju(e,r,a),Au(),!1}if(Di)return t=Xa.current,t===null?(r!==Ai&&(t=Error(i(423),{cause:r}),Li(ui(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=ui(r,n),a=Ys(e.stateNode,r,a),za(e,a),ql!==4&&(ql=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Ai&&(e=Error(i(422),{cause:r}),Li(ui(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=ui(o,n),$l===null?$l=[o]:$l.push(o),ql!==4&&(ql=2),t===null)return!0;r=ui(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Ys(n.stateNode,r,e),za(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ou===null||!ou.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Xs(a),Zs(a,e,n,r),za(n,a),!1}n=n.return}while(n!==null);return!1}var $s=Error(i(461)),ec=!1;function tc(e,t,n,r){t.child=e===null?Ma(t,null,n,r):ja(t,e.child,n,r)}function nc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return qi(t),r=yo(e,t,n,o,a,i),s=Co(),e!==null&&!ec?(wo(e,t,i),Ec(e,t,i)):(Di&&s&&Si(t),t.flags|=1,tc(e,t,r,i),t.child)}function rc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ti(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,ic(e,t,a,r,i)):(e=ii(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Dc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?_r:n,n(o,r)&&e.ref===t.ref)return Ec(e,t,i)}return t.flags|=1,e=ni(a,r),e.ref=t.ref,e.return=t,t.child=e}function ic(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(_r(a,r)&&e.ref===t.ref){if(ec=!1,t.pendingProps=r=a,Dc(e,i))e.flags&131072&&(ec=!0);else return t.lanes=e.lanes,Ec(e,t,i)}}return fc(e,t,n,r,i)}function ac(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return sc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&pa(t,a===null?null:a.cachePool),a===null?Ja():qa(t,a),eo(t);else return r=t.lanes=536870912,sc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&pa(t,null),Ja(),to(t)):(pa(t,a.cachePool),qa(t,a),to(t),t.memoizedState=null);return tc(e,t,i,n),t.child}function oc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function sc(e,t,n,r,i){var a=fa();return a=a===null?null:{parent:ea._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&pa(t,null),Ja(),eo(t),e!==null&&Gi(e,t,r,!0),t.childLanes=i,null}function cc(e,t){return t=xc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function lc(e,t,n){return ja(t,e.child,null,n),e=cc(t,t.pendingProps),e.flags|=2,no(t),t.memoizedState=null,e}function uc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(Di){if(r.mode===`hidden`)return e=cc(t,r),t.lanes=536870912,oc(null,e);if($a(t),(e=Ei)?(e=cf(e,ki),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:_i===null?null:{id:vi,overflow:yi},retryLane:536870912,hydrationErrors:null},n=si(e),n.return=t,t.child=n,Ti=t,Ei=null)):e=null,e===null)throw ji(t);return t.lanes=536870912,null}return cc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if($a(t),a){if(t.flags&256)t.flags&=-257,t=lc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(ec||Gi(e,t,n,!1),a=(n&e.childLanes)!==0,ec||a){if(r=Rl,r!==null&&(s=Xe(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,Xr(e,s),vu(r,e,s),$s;Au(),t=lc(e,t,n)}else e=o.treeContext,Ei=ff(s.nextSibling),Ti=t,Di=!0,Oi=null,ki=!1,e!==null&&wi(t,e),t=cc(t,r),t.flags|=4096;return t}return e=ni(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function dc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function fc(e,t,n,r,i){return qi(t),n=yo(e,t,n,r,void 0,i),r=Co(),e!==null&&!ec?(wo(e,t,i),Ec(e,t,i)):(Di&&r&&Si(t),t.flags|=1,tc(e,t,n,i),t.child)}function pc(e,t,n,r,i,a){return qi(t),t.updateQueue=null,n=xo(t,r,n,i),bo(e),r=Co(),e!==null&&!ec?(wo(e,t,a),Ec(e,t,a)):(Di&&r&&Si(t),t.flags|=1,tc(e,t,n,a),t.child)}function mc(e,t,n,r,i){if(qi(t),t.stateNode===null){var a=Qr,o=n.contextType;typeof o==`object`&&o&&(a=Ji(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Bs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Pa(t),o=n.contextType,a.context=typeof o==`object`&&o?Ji(o):Qr,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(zs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Bs.enqueueReplaceState(a,a.state,null),Ha(t,r,a,i),Va(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Us(n,s);a.props=c;var l=a.context,u=n.contextType;o=Qr,typeof u==`object`&&u&&(o=Ji(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Hs(t,a,r,o),Na=!1;var f=t.memoizedState;a.state=f,Ha(t,r,a,i),Va(),l=t.memoizedState,s||f!==l||Na?(typeof d==`function`&&(zs(t,n,d,r),l=t.memoizedState),(c=Na||Vs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Fa(e,t),o=t.memoizedProps,u=Us(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Qr,typeof l==`object`&&l&&(c=Ji(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Hs(t,a,r,c),Na=!1,f=t.memoizedState,a.state=f,Ha(t,r,a,i),Va();var p=t.memoizedState;o!==d||f!==p||Na||e!==null&&e.dependencies!==null&&Ki(e.dependencies)?(typeof s==`function`&&(zs(t,n,s,r),p=t.memoizedState),(u=Na||Vs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Ki(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,dc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=ja(t,e.child,null,i),t.child=ja(t,null,n,i)):tc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Ec(e,t,i),e}function hc(e,t,n,r){return Fi(),t.flags|=256,tc(e,t,n,r),t.child}var gc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function _c(e){return{baseLanes:e,cachePool:ma()}}function vc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Zl),e}function yc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(ro.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(Di){if(a?Qa(t):to(t),(e=Ei)?(e=cf(e,ki),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:_i===null?null:{id:vi,overflow:yi},retryLane:536870912,hydrationErrors:null},n=si(e),n.return=t,t.child=n,Ti=t,Ei=null)):e=null,e===null)throw ji(t);return uf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(to(t),a=t.mode,c=xc({mode:`hidden`,children:c},a),r=ai(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=_c(n),r.childLanes=vc(e,s,n),t.memoizedState=gc,oc(null,r)):(Qa(t),bc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(Qa(t),t.flags&=-257,t=Sc(e,t,n)):t.memoizedState===null?(to(t),c=r.fallback,a=t.mode,r=xc({mode:`visible`,children:r.children},a),c=ai(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,ja(t,e.child,null,n),r=t.child,r.memoizedState=_c(n),r.childLanes=vc(e,s,n),t.memoizedState=gc,t=oc(null,r)):(to(t),t.child=e.child,t.flags|=128,t=null);else if(Qa(t),uf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Li({value:r,source:null,stack:null}),t=Sc(e,t,n)}else if(ec||Gi(e,t,n,!1),s=(n&e.childLanes)!==0,ec||s){if(s=Rl,s!==null&&(r=Xe(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,Xr(e,r),vu(s,e,r),$s;lf(c)||Au(),t=Sc(e,t,n)}else lf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ei=ff(c.nextSibling),Ti=t,Di=!0,Oi=null,ki=!1,e!==null&&wi(t,e),t=bc(t,r.children),t.flags|=4096);return t}return a?(to(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ni(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=ai(c,a,n,null),c.flags|=2):c=ni(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,oc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=_c(n):(a=c.cachePool,a===null?a=ma():(l=ea._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=vc(e,s,n),t.memoizedState=gc,oc(e.child,r)):(Qa(t),n=e.child,e=n.sibling,n=ni(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function bc(e,t){return t=xc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function xc(e,t){return e=ei(22,e,null,t),e.lanes=0,e}function Sc(e,t,n){return ja(t,e.child,null,n),e=bc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Cc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ui(e.return,t,n)}function wc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Tc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=ro.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,R(ro,o),tc(e,t,r,n),r=Di?mi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cc(e,n,t);else if(e.tag===19)Cc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&io(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),wc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&io(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}wc(t,!0,n,null,a,r);break;case`together`:wc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Ec(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Jl|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Gi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ni(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ni(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Dc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Ki(e)))}function Oc(e,t,n){switch(t.tag){case 3:le(t,t.stateNode.containerInfo),Vi(t,ea,e.memoizedState.cache),Fi();break;case 27:case 5:de(t);break;case 4:le(t,t.stateNode.containerInfo);break;case 10:Vi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,$a(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Qa(t),e=Ec(e,t,n),e===null?null:e.sibling):yc(e,t,n):(Qa(t),t.flags|=128,null);Qa(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(Gi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Tc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),R(ro,ro.current),r)break;return null;case 22:return t.lanes=0,ac(e,t,n,t.pendingProps);case 24:Vi(t,ea,e.memoizedState.cache)}return Ec(e,t,n)}function kc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)ec=!0;else{if(!Dc(e,n)&&!(t.flags&128))return ec=!1,Oc(e,t,n);ec=!!(e.flags&131072)}}else ec=!1,Di&&t.flags&1048576&&xi(t,mi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=xa(t.elementType),t.type=e,typeof e==`function`)ti(e)?(r=Us(e,r),t.tag=1,t=mc(null,t,e,r,n)):(t.tag=0,t=fc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=nc(null,t,e,r,n);break a}if(a===D){t.tag=14,t=rc(null,t,e,r,n);break a}}throw t=N(e)||e,Error(i(306,t,``))}}return t;case 0:return fc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Us(r,t.pendingProps),mc(e,t,r,a,n);case 3:a:{if(le(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Fa(e,t),Ha(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Vi(t,ea,r),r!==o.cache&&Wi(t,[ea],n,!0),Va(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=hc(e,t,r,n);break a}if(r!==a){a=ui(Error(i(424)),t),Li(a),t=hc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ei=ff(e.firstChild),Ti=t,Di=!0,Oi=null,ki=!0,n=Ma(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fi(),r===a){t=Ec(e,t,n);break a}tc(e,t,r,n)}t=t.child}return t;case 26:return dc(e,t),e===null?(n=Mf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Di||(n=t.type,e=t.pendingProps,r=Wd(se.current).createElement(n),r[nt]=t,r[rt]=e,Rd(r,n,e),ht(r),t.stateNode=r):t.memoizedState=Mf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return de(t),e===null&&Di&&(r=t.stateNode=gf(t.type,t.pendingProps,se.current),Ti=t,ki=!0,a=Ei,tf(t.type)?(pf=a,Ei=ff(r.firstChild)):Ei=a),tc(e,t,t.pendingProps.children,n),dc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Di&&((a=r=Ei)&&(r=of(r,t.type,t.pendingProps,ki),r===null?a=!1:(t.stateNode=r,Ti=t,Ei=ff(r.firstChild),ki=!1,a=!0)),a||ji(t)),de(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,qd(a,o)?r=null:s!==null&&qd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=yo(e,t,So,null,null,n),tp._currentValue=a),dc(e,t),tc(e,t,r,n),t.child;case 6:return e===null&&Di&&((e=n=Ei)&&(n=sf(n,t.pendingProps,ki),n===null?e=!1:(t.stateNode=n,Ti=t,Ei=null,e=!0)),e||ji(t)),null;case 13:return yc(e,t,n);case 4:return le(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ja(t,null,r,n):tc(e,t,r,n),t.child;case 11:return nc(e,t,t.type,t.pendingProps,n);case 7:return tc(e,t,t.pendingProps,n),t.child;case 8:return tc(e,t,t.pendingProps.children,n),t.child;case 12:return tc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Vi(t,t.type,r.value),tc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,qi(t),a=Ji(a),r=r(a),t.flags|=1,tc(e,t,r,n),t.child;case 14:return rc(e,t,t.type,t.pendingProps,n);case 15:return ic(e,t,t.type,t.pendingProps,n);case 19:return Tc(e,t,n);case 31:return uc(e,t,n);case 22:return ac(e,t,n,t.pendingProps);case 24:return qi(t),r=Ji(ea),e===null?(a=fa(),a===null&&(a=Rl,o=ta(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Pa(t),Vi(t,ea,a)):((e.lanes&n)!==0&&(Fa(e,t),Ha(t,null,null,n),Va()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Vi(t,ea,r),r!==a.cache&&Wi(t,[ea],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Vi(t,ea,r))),tc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Ac(e){e.flags|=4}function jc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Du())e.flags|=8192;else throw Sa=va,ga}}else e.flags&=-16777217}function Mc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!qf(t)){if(Du())e.flags|=8192;else throw Sa=va,ga}}function Nc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:We(),e.lanes|=t,Ql|=t)}function Pc(e,t){if(!Di)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Fc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ic(e,t,n){var r=t.pendingProps;switch(Ci(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Fc(t),null;case 1:return Fc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Hi(ea),ue(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Pi(t)?Ac(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ii())),Fc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Ac(t),o===null?(Fc(t),jc(t,a,null,r,n)):(Fc(t),Mc(t,o))):o?o===e.memoizedState?(Fc(t),t.flags&=-16777217):(Ac(t),Fc(t),Mc(t,o)):(e=e.memoizedProps,e!==r&&Ac(t),Fc(t),jc(t,a,e,r,n)),null;case 27:if(fe(t),n=se.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Fc(t),null}e=ae.current,Pi(t)?Mi(t,e):(e=gf(a,r,n),t.stateNode=e,Ac(t))}return Fc(t),null;case 5:if(fe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Fc(t),null}if(o=ae.current,Pi(t))Mi(t,o);else{var s=Wd(se.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[nt]=t,o[rt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Rd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ac(t)}}return Fc(t),jc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=se.current,Pi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ti,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[nt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Fd(e.nodeValue,n)),e||ji(t,!0)}else e=Wd(e).createTextNode(r),e[nt]=t,t.stateNode=e}return Fc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Pi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[nt]=t}else Fi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),e=!1}else n=Ii(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(no(t),t):(no(t),null);if(t.flags&128)throw Error(i(558))}return Fc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Pi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[nt]=t}else Fi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),a=!1}else a=Ii(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(no(t),t):(no(t),null)}return no(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Nc(t,t.updateQueue),Fc(t),null);case 4:return ue(),e===null&&Td(t.stateNode.containerInfo),Fc(t),null;case 10:return Hi(t.type),Fc(t),null;case 19:if(L(ro),r=t.memoizedState,r===null)return Fc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Pc(r,!1);else{if(ql!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=io(e),o!==null){for(t.flags|=128,Pc(r,!1),e=o.updateQueue,t.updateQueue=e,Nc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ri(n,e),n=n.sibling;return R(ro,ro.current&1|2),Di&&bi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>iu&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=io(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Nc(t,e),Pc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Di)return Fc(t),null}else 2*Te()-r.renderingStartTime>iu&&n!==536870912&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Fc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=ro.current,R(ro,a?n&1|2:n&1),Di&&bi(t,r.treeForkCount),e);case 22:case 23:return no(t),Ya(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Fc(t),t.subtreeFlags&6&&(t.flags|=8192)):Fc(t),n=t.updateQueue,n!==null&&Nc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&L(da),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Hi(ea),Fc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Lc(e,t){switch(Ci(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Hi(ea),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(no(t),t.alternate===null)throw Error(i(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(no(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return L(ro),null;case 4:return ue(),null;case 10:return Hi(t.type),null;case 22:case 23:return no(t),Ya(),e!==null&&L(da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Hi(ea),null;case 25:return null;default:return null}}function Rc(e,t){switch(Ci(t),t.tag){case 3:Hi(ea),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&no(t);break;case 13:no(t);break;case 19:L(ro);break;case 10:Hi(t.type);break;case 22:case 23:no(t),Ya(),e!==null&&L(da);break;case 24:Hi(ea)}}function zc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){qu(t,t.return,e)}}function Bc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){qu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){qu(t,t.return,e)}}function Vc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Wa(t,n)}catch(t){qu(e,e.return,t)}}}function Hc(e,t,n){n.props=Us(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){qu(e,t,n)}}function Uc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){qu(e,t,n)}}function Wc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){qu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){qu(e,t,n)}else n.current=null}}function Gc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){qu(e,e.return,t)}}function Kc(e,t,n){try{var r=e.stateNode;zd(r,e.type,n,t),r[rt]=t}catch(t){qu(e,e.return,t)}}function qc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&tf(e.type)||e.tag===4}function Jc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||qc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&tf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Yt));else if(r!==4&&(r===27&&tf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&tf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Rd(t,r,n),t[nt]=e,t[rt]=n}catch(t){qu(e,e.return,t)}}var Qc=!1,$c=!1,el=!1,tl=typeof WeakSet==`function`?WeakSet:Set,nl=null;function rl(e,t){if(e=e.containerInfo,Hd=up,e=br(e),xr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Ud={focusedElem:e,selectionRange:n},up=!1,nl=t;nl!==null;)if(t=nl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,nl=e;else for(;nl!==null;){switch(t=nl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Us(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){qu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)af(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:af(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,nl=e;break}nl=t.return}}function il(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:vl(e,n),r&4&&zc(5,n);break;case 1:if(vl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){qu(n,n.return,e)}else{var i=Us(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){qu(n,n.return,e)}}}r&64&&Vc(n),r&512&&Uc(n,n.return);break;case 3:if(vl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Wa(e,t)}catch(e){qu(n,n.return,e)}}break;case 27:t===null&&r&4&&Zc(n);case 26:case 5:vl(e,n),t===null&&r&4&&Gc(n),r&512&&Uc(n,n.return);break;case 12:vl(e,n);break;case 31:vl(e,n),r&4&&ll(e,n);break;case 13:vl(e,n),r&4&&ul(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Zu.bind(null,n),df(e,n))));break;case 22:if(r=n.memoizedState!==null||Qc,!r){t=t!==null&&t.memoizedState!==null||$c,i=Qc;var a=$c;Qc=r,($c=t)&&!a?bl(e,n,!!(n.subtreeFlags&8772)):vl(e,n),Qc=i,$c=a}break;case 30:break;default:vl(e,n)}}function al(e){var t=e.alternate;t!==null&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ut(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var q=null,ol=!1;function sl(e,t,n){for(n=n.child;n!==null;)cl(e,t,n),n=n.sibling}function cl(e,t,n){if(B&&typeof B.onCommitFiberUnmount==`function`)try{B.onCommitFiberUnmount(Ne,n)}catch{}switch(n.tag){case 26:$c||Wc(n,t),sl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:$c||Wc(n,t);var r=q,i=ol;tf(n.type)&&(q=n.stateNode,ol=!1),sl(e,t,n),X(n.stateNode),q=r,ol=i;break;case 5:$c||Wc(n,t);case 6:if(r=q,i=ol,q=null,sl(e,t,n),q=r,ol=i,q!==null){if(ol)try{(q.nodeType===9?q.body:q.nodeName===`HTML`?q.ownerDocument.body:q).removeChild(n.stateNode)}catch(e){qu(n,t,e)}else try{q.removeChild(n.stateNode)}catch(e){qu(n,t,e)}}break;case 18:q!==null&&(ol?(e=q,nf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Ip(e)):nf(q,n.stateNode));break;case 4:r=q,i=ol,q=n.stateNode.containerInfo,ol=!0,sl(e,t,n),q=r,ol=i;break;case 0:case 11:case 14:case 15:Bc(2,n,t),$c||Bc(4,n,t),sl(e,t,n);break;case 1:$c||(Wc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Hc(n,t,r)),sl(e,t,n);break;case 21:sl(e,t,n);break;case 22:$c=(r=$c)||n.memoizedState!==null,sl(e,t,n),$c=r;break;default:sl(e,t,n)}}function ll(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Ip(e)}catch(e){qu(t,t.return,e)}}}function ul(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Ip(e)}catch(e){qu(t,t.return,e)}}function dl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new tl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new tl),t;default:throw Error(i(435,e.tag))}}function fl(e,t){var n=dl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Qu.bind(null,e,t);t.then(r,r)}})}function pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(tf(c.type)){q=c.stateNode,ol=!1;break a}break;case 5:q=c.stateNode,ol=!1;break a;case 3:case 4:q=c.stateNode.containerInfo,ol=!0;break a}c=c.return}if(q===null)throw Error(i(160));cl(o,s,a),q=null,ol=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)hl(t,e),t=t.sibling}var ml=null;function hl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:pl(t,e),gl(e),r&4&&(Bc(3,e,e.return),zc(3,e),Bc(5,e,e.return));break;case 1:pl(t,e),gl(e),r&512&&($c||n===null||Wc(n,n.return)),r&64&&Qc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=ml;if(pl(t,e),gl(e),r&512&&($c||n===null||Wc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null){if(r===null){if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[lt]||o[nt]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Rd(o,r,n),o[nt]=e,ht(o),r=o;break a;case`link`:var s=Wf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Rd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Wf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Rd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[nt]=e,ht(o),r=o}e.stateNode=r}else Gf(a,e.type,e.stateNode)}else e.stateNode=zf(a,r,e.memoizedProps)}else o===r?r===null&&e.stateNode!==null&&Kc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Gf(a,e.type,e.stateNode):zf(a,r,e.memoizedProps))}break;case 27:pl(t,e),gl(e),r&512&&($c||n===null||Wc(n,n.return)),n!==null&&r&4&&Kc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(pl(t,e),gl(e),r&512&&($c||n===null||Wc(n,n.return)),e.flags&32){a=e.stateNode;try{Vt(a,``)}catch(t){qu(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Kc(e,a,n===null?a:n.memoizedProps)),r&1024&&(el=!0);break;case 6:if(pl(t,e),gl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){qu(e,e.return,t)}}break;case 3:if(Uf=null,a=ml,ml=yf(t.containerInfo),pl(t,e),ml=a,gl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ip(t.containerInfo)}catch(t){qu(e,e.return,t)}el&&(el=!1,_l(e));break;case 4:r=ml,ml=yf(e.stateNode.containerInfo),pl(t,e),gl(e),ml=r;break;case 12:pl(t,e),gl(e);break;case 31:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 13:pl(t,e),gl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(nu=Te()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Qc,d=$c;if(Qc=u||a,$c=d||l,pl(t,e),$c=d,Qc=u,gl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||Qc||$c||yl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){qu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){qu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?rf(m,!0):rf(l.stateNode,!1)}catch(e){qu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,fl(e,n))));break;case 19:pl(t,e),gl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,fl(e,r)));break;case 30:break;case 21:break;default:pl(t,e),gl(e)}}function gl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(qc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Xc(e,Jc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Vt(o,``),n.flags&=-33),Xc(e,Jc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Yc(e,Jc(e),s);break;default:throw Error(i(161))}}catch(t){qu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function _l(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;_l(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function vl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)il(e,t.alternate,t),t=t.sibling}function yl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Bc(4,t,t.return),yl(t);break;case 1:Wc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Hc(t,t.return,n),yl(t);break;case 27:X(t.stateNode);case 26:case 5:Wc(t,t.return),yl(t);break;case 22:t.memoizedState===null&&yl(t);break;case 30:yl(t);break;default:yl(t)}e=e.sibling}}function bl(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:bl(i,a,n),zc(4,a);break;case 1:if(bl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){qu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Ua(c[i],s)}catch(e){qu(r,r.return,e)}}n&&o&64&&Vc(a),Uc(a,a.return);break;case 27:Zc(a);case 26:case 5:bl(i,a,n),n&&r===null&&o&4&&Gc(a),Uc(a,a.return);break;case 12:bl(i,a,n);break;case 31:bl(i,a,n),n&&o&4&&ll(i,a);break;case 13:bl(i,a,n),n&&o&4&&ul(i,a);break;case 22:a.memoizedState===null&&bl(i,a,n),Uc(a,a.return);break;case 30:break;default:bl(i,a,n)}t=t.sibling}}function xl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&na(n))}function Sl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&na(e))}function Cl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)wl(e,t,n,r),t=t.sibling}function wl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Cl(e,t,n,r),i&2048&&zc(9,t);break;case 1:Cl(e,t,n,r);break;case 3:Cl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&na(e)));break;case 12:if(i&2048){Cl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){qu(t,t.return,e)}}else Cl(e,t,n,r);break;case 31:Cl(e,t,n,r);break;case 13:Cl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Cl(e,t,n,r):(a._visibility|=2,Tl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Cl(e,t,n,r):El(e,t),i&2048&&xl(o,t);break;case 24:Cl(e,t,n,r),i&2048&&Sl(t.alternate,t);break;default:Cl(e,t,n,r)}}function Tl(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Tl(a,o,s,c,i),zc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Tl(a,o,s,c,i)):u._visibility&2?Tl(a,o,s,c,i):El(a,o),i&&l&2048&&xl(o.alternate,o);break;case 24:Tl(a,o,s,c,i),i&&l&2048&&Sl(o.alternate,o);break;default:Tl(a,o,s,c,i)}t=t.sibling}}function El(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:El(n,r),i&2048&&xl(r.alternate,r);break;case 24:El(n,r),i&2048&&Sl(r.alternate,r);break;default:El(n,r)}t=t.sibling}}var Dl=8192;function Ol(e,t,n){if(e.subtreeFlags&Dl)for(e=e.child;e!==null;)kl(e,t,n),e=e.sibling}function kl(e,t,n){switch(e.tag){case 26:Ol(e,t,n),e.flags&Dl&&e.memoizedState!==null&&Jf(n,ml,e.memoizedState,e.memoizedProps);break;case 5:Ol(e,t,n);break;case 3:case 4:var r=ml;ml=yf(e.stateNode.containerInfo),Ol(e,t,n),ml=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Dl,Dl=16777216,Ol(e,t,n),Dl=r):Ol(e,t,n));break;default:Ol(e,t,n)}}function Al(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function jl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];nl=r,Pl(r,e)}Al(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ml(e),e=e.sibling}function Ml(e){switch(e.tag){case 0:case 11:case 15:jl(e),e.flags&2048&&Bc(9,e,e.return);break;case 3:jl(e);break;case 12:jl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Nl(e)):jl(e);break;default:jl(e)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];nl=r,Pl(r,e)}Al(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Bc(8,t,t.return),Nl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Nl(t));break;default:Nl(t)}e=e.sibling}}function Pl(e,t){for(;nl!==null;){var n=nl;switch(n.tag){case 0:case 11:case 15:Bc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:na(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,nl=r;else a:for(n=e;nl!==null;){r=nl;var i=r.sibling,a=r.return;if(al(r),r===n){nl=null;break a}if(i!==null){i.return=a,nl=i;break a}nl=a}}}var Fl={getCacheForType:function(e){var t=Ji(ea),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Ji(ea).controller.signal}},Il=typeof WeakMap==`function`?WeakMap:Map,Ll=0,Rl=null,zl=null,Bl=0,Vl=0,Hl=null,Ul=!1,Wl=!1,Gl=!1,Kl=0,ql=0,Jl=0,Yl=0,Xl=0,Zl=0,Ql=0,$l=null,eu=null,tu=!1,nu=0,ru=0,iu=1/0,au=null,ou=null,su=0,cu=null,lu=null,uu=0,du=0,fu=null,pu=null,mu=0,hu=null;function gu(){return Ll&2&&Bl!==0?Bl&-Bl:F.T===null?$e():md()}function _u(){if(Zl===0){if(!(Bl&536870912)||Di){var e=ze;ze<<=1,!(ze&3932160)&&(ze=262144),Zl=e}else Zl=536870912}return e=Xa.current,e!==null&&(e.flags|=32),Zl}function vu(e,t,n){(e===Rl&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)&&(Tu(e,0),Su(e,Bl,Zl,!1)),Ke(e,n),(!(Ll&2)||e!==Rl)&&(e===Rl&&(!(Ll&2)&&(Yl|=n),ql===4&&Su(e,Bl,Zl,!1)),od(e))}function yu(e,t,n){if(Ll&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||He(e,t),a=r?Nu(e,t):ju(e,t,!0),o=r;do{if(a===0){Wl&&!r&&Su(e,t,0,!1);break}if(n=e.current.alternate,o&&!xu(n)){a=ju(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=$l;var l=c.current.memoizedState.isDehydrated;if(l&&(Tu(c,s).flags|=256),s=ju(c,s,!1),s!==2){if(Gl&&!l){c.errorRecoveryDisabledLanes|=o,Yl|=o,a=4;break a}o=eu,eu=a,o!==null&&(eu===null?eu=o:eu.push.apply(eu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Tu(e,0),Su(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Su(r,t,Zl,!Ul);break a;case 2:eu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=nu+300-Te(),10<a)){if(Su(r,t,Zl,!Ul),Ve(r,0,!0)!==0)break a;uu=t,r.timeoutHandle=Xd(bu.bind(null,r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,`Throttled`,-0,0),a);break a}bu(r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,null,-0,0)}break}while(1);od(e)}function bu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Yt},kl(t,a,d);var m=(a&62914560)===a?nu-Te():(a&4194048)===a?ru-Te():0;if(m=Xf(d,m),m!==null){uu=a,e.cancelPendingCommit=m(zu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Su(e,a,o,!l);return}}zu(e,t,a,n,r,i,o,s,c)}function xu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!gr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Su(e,t,n,r){t&=~Xl,t&=~Yl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Fe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Je(e,n,t)}function Cu(){return Ll&6?!0:(sd(0,!1),!1)}function wu(){if(zl!==null){if(Vl===0)var e=zl.return;else e=zl,Bi=zi=null,To(e),Ta=null,Ea=0,e=zl;for(;e!==null;)Rc(e.alternate,e),e=e.return;zl=null}}function Tu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Zd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),uu=0,wu(),Rl=e,zl=n=ni(e.current,null),Bl=t,Vl=0,Hl=null,Ul=!1,Wl=He(e,t),Gl=!1,Ql=Zl=Xl=Yl=Jl=ql=0,eu=$l=null,tu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Fe(r),a=1<<i;t|=e[i],r&=~a}return Kl=t,qr(),n}function Eu(e,t){oo=null,F.H=Fs,t===ha||t===_a?(t=Ca(),Vl=3):t===ga?(t=Ca(),Vl=4):Vl=t===$s?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Hl=t,zl===null&&(ql=1,qs(e,ui(t,e.current)))}function Du(){var e=Xa.current;return e===null?!0:(Bl&4194048)===Bl?Za===null:(Bl&62914560)===Bl||Bl&536870912?e===Za:!1}function Ou(){var e=F.H;return F.H=Fs,e===null?Fs:e}function ku(){var e=F.A;return F.A=Fl,e}function Au(){ql=4,Ul||(Bl&4194048)!==Bl&&Xa.current!==null||(Wl=!0),!(Jl&134217727)&&!(Yl&134217727)||Rl===null||Su(Rl,Bl,Zl,!1)}function ju(e,t,n){var r=Ll;Ll|=2;var i=Ou(),a=ku();(Rl!==e||Bl!==t)&&(au=null,Tu(e,t)),t=!1;var o=ql;a:do try{if(Vl!==0&&zl!==null){var s=zl,c=Hl;switch(Vl){case 8:wu(),o=6;break a;case 3:case 2:case 9:case 6:Xa.current===null&&(t=!0);var l=Vl;if(Vl=0,Hl=null,Iu(e,s,c,l),n&&Wl){o=0;break a}break;default:l=Vl,Vl=0,Hl=null,Iu(e,s,c,l)}}Mu(),o=ql;break}catch(t){Eu(e,t)}while(1);return t&&e.shellSuspendCounter++,Bi=zi=null,Ll=r,F.H=i,F.A=a,zl===null&&(Rl=null,Bl=0,qr()),o}function Mu(){for(;zl!==null;)Fu(zl)}function Nu(e,t){var n=Ll;Ll|=2;var r=Ou(),a=ku();Rl!==e||Bl!==t?(au=null,iu=Te()+500,Tu(e,t)):Wl=He(e,t);a:do try{if(Vl!==0&&zl!==null){t=zl;var o=Hl;b:switch(Vl){case 1:Vl=0,Hl=null,Iu(e,t,o,1);break;case 2:case 9:if(ya(o)){Vl=0,Hl=null,J(t);break}t=function(){Vl!==2&&Vl!==9||Rl!==e||(Vl=7),od(e)},o.then(t,t);break a;case 3:Vl=7;break a;case 4:Vl=5;break a;case 7:ya(o)?(Vl=0,Hl=null,J(t)):(Vl=0,Hl=null,Iu(e,t,o,7));break;case 5:var s=null;switch(zl.tag){case 26:s=zl.memoizedState;case 5:case 27:var c=zl;if(s?qf(s):c.stateNode.complete){Vl=0,Hl=null;var l=c.sibling;if(l!==null)zl=l;else{var u=c.return;u===null?zl=null:(zl=u,Lu(u))}break b}}Vl=0,Hl=null,Iu(e,t,o,5);break;case 6:Vl=0,Hl=null,Iu(e,t,o,6);break;case 8:wu(),ql=6;break a;default:throw Error(i(462))}}Pu();break}catch(t){Eu(e,t)}while(1);return Bi=zi=null,F.H=r,F.A=a,Ll=n,zl===null?(Rl=null,Bl=0,qr(),ql):0}function Pu(){for(;zl!==null&&!Ce();)Fu(zl)}function Fu(e){var t=kc(e.alternate,e,Kl);e.memoizedProps=e.pendingProps,t===null?Lu(e):zl=t}function J(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=pc(n,t,t.pendingProps,t.type,void 0,Bl);break;case 11:t=pc(n,t,t.pendingProps,t.type.render,t.ref,Bl);break;case 5:To(t);default:Rc(n,t),t=zl=ri(t,Kl),t=kc(n,t,Kl)}e.memoizedProps=e.pendingProps,t===null?Lu(e):zl=t}function Iu(e,t,n,r){Bi=zi=null,To(t),Ta=null,Ea=0;var i=t.return;try{if(Qs(e,i,t,n,Bl)){ql=1,qs(e,ui(n,e.current)),zl=null;return}}catch(t){if(i!==null)throw zl=i,t;ql=1,qs(e,ui(n,e.current)),zl=null;return}t.flags&32768?(Di||r===1?e=!0:Wl||Bl&536870912?e=!1:(Ul=e=!0,(r===2||r===9||r===3||r===6)&&(r=Xa.current,r!==null&&r.tag===13&&(r.flags|=16384))),Ru(t,e)):Lu(t)}function Lu(e){var t=e;do{if(t.flags&32768){Ru(t,Ul);return}e=t.return;var n=Ic(t.alternate,t,Kl);if(n!==null){zl=n;return}if(t=t.sibling,t!==null){zl=t;return}zl=t=e}while(t!==null);ql===0&&(ql=5)}function Ru(e,t){do{var n=Lc(e.alternate,e);if(n!==null){n.flags&=32767,zl=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){zl=e;return}zl=e=n}while(e!==null);ql=6,zl=null}function zu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Wu();while(su!==0);if(Ll&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Kr,qe(e,n,o,s,c,l),e===Rl&&(zl=Rl=null,Bl=0),lu=t,cu=e,uu=n,du=o,fu=a,pu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,$u(ke,function(){return Gu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=F.T,F.T=null,a=I.p,I.p=2,s=Ll,Ll|=4;try{rl(e,t,n)}finally{Ll=s,I.p=a,F.T=r}}su=1,Bu(),Vu(),Hu()}}function Bu(){if(su===1){su=0;var e=cu,t=lu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Ll;Ll|=4;try{hl(t,e);var a=Ud,o=br(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&yr(s.ownerDocument.documentElement,s)){if(c!==null&&xr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=vr(s,h),v=vr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}up=!!Hd,Ud=Hd=null}finally{Ll=i,I.p=r,F.T=n}}e.current=t,su=2}}function Vu(){if(su===2){su=0;var e=cu,t=lu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=Ll;Ll|=4;try{il(e,t.alternate,t)}finally{Ll=i,I.p=r,F.T=n}}su=3}}function Hu(){if(su===4||su===3){su=0,we();var e=cu,t=lu,n=uu,r=pu;t.subtreeFlags&10256||t.flags&10256?su=5:(su=0,lu=cu=null,Uu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ou=null),Qe(n),t=t.stateNode,B&&typeof B.onCommitFiberRoot==`function`)try{B.onCommitFiberRoot(Ne,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=F.T,i=I.p,I.p=2,F.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{F.T=t,I.p=i}}uu&3&&Wu(),od(e),i=e.pendingLanes,n&261930&&i&42?e===hu?mu++:(mu=0,hu=e):mu=0,sd(0,!1)}}function Uu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,na(t)))}function Wu(){return Bu(),Vu(),Hu(),Gu()}function Gu(){if(su!==5)return!1;var e=cu,t=du;du=0;var n=Qe(uu),r=F.T,a=I.p;try{I.p=32>n?32:n,F.T=null,n=fu,fu=null;var o=cu,s=uu;if(su=0,lu=cu=null,uu=0,Ll&6)throw Error(i(331));var c=Ll;if(Ll|=4,Ml(o.current),wl(o,o.current,s,n),Ll=c,sd(0,!1),B&&typeof B.onPostCommitFiberRoot==`function`)try{B.onPostCommitFiberRoot(Ne,o)}catch{}return!0}finally{I.p=a,F.T=r,Uu(e,t)}}function Ku(e,t,n){t=ui(n,t),t=Ys(e.stateNode,t,2),e=La(e,t,2),e!==null&&(Ke(e,2),od(e))}function qu(e,t,n){if(e.tag===3)Ku(e,e,n);else for(;t!==null;){if(t.tag===3){Ku(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ou===null||!ou.has(r))){e=ui(n,e),n=Xs(2),r=La(t,n,2),r!==null&&(Zs(n,r,t,e),Ke(r,2),od(r));break}}t=t.return}}function Ju(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Il;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Gl=!0,i.add(n),e=Yu.bind(null,e,t,n),t.then(e,e))}function Yu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Rl===e&&(Bl&n)===n&&(ql===4||ql===3&&(Bl&62914560)===Bl&&300>Te()-nu?!(Ll&2)&&Tu(e,0):Xl|=n,Ql===Bl&&(Ql=0)),od(e)}function Xu(e,t){t===0&&(t=We()),e=Xr(e,t),e!==null&&(Ke(e,t),od(e))}function Zu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Xu(e,n)}function Qu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Xu(e,n)}function $u(e,t){return xe(e,t)}var ed=null,td=null,nd=!1,rd=!1,id=!1,ad=0;function od(e){e!==td&&e.next===null&&(td===null?ed=td=e:td=td.next=e),rd=!0,nd||(nd=!0,pd())}function sd(e,t){if(!id&&rd){id=!0;do for(var n=!1,r=ed;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Fe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,fd(r,a))}else a=Bl,a=Ve(r,r===Rl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||He(r,a)||(n=!0,fd(r,a))}r=r.next}while(n);id=!1}}function cd(){ld()}function ld(){rd=nd=!1;var e=0;ad!==0&&Yd()&&(e=ad);for(var t=Te(),n=null,r=ed;r!==null;){var i=r.next,a=ud(r,t);a===0?(r.next=null,n===null?ed=i:n.next=i,i===null&&(td=n)):(n=r,(e!==0||a&3)&&(rd=!0)),r=i}su!==0&&su!==5||sd(e,!1),ad!==0&&(ad=0)}function ud(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Fe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Ue(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Rl,n=Bl,n=Ve(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Se(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||He(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Se(r),Qe(n)){case 2:case 8:n=Oe;break;case 32:n=ke;break;case 268435456:n=je;break;default:n=ke}return r=dd.bind(null,e),n=xe(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Se(r),e.callbackPriority=2,e.callbackNode=null,2}function dd(e,t){if(su!==0&&su!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Wu()&&e.callbackNode!==n)return null;var r=Bl;return r=Ve(e,e===Rl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(yu(e,r,t),ud(e,Te()),e.callbackNode!=null&&e.callbackNode===n?dd.bind(null,e):null)}function fd(e,t){if(Wu())return null;yu(e,t,!0)}function pd(){$d(function(){Ll&6?xe(De,cd):ld()})}function md(){if(ad===0){var e=aa;e===0&&(e=Re,Re<<=1,!(Re&261888)&&(Re=256)),ad=e}return ad}function hd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Jt(``+e)}function gd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function _d(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=hd((i[rt]||null).action),o=r.submitter;o&&(t=(t=o[rt]||null)?hd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new gn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(ad!==0){var e=o?gd(i,o):new FormData(i);xs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?gd(i,o):new FormData(i),xs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var vd=0;vd<Vr.length;vd++){var yd=Vr[vd];Hr(yd.toLowerCase(),`on`+(yd[0].toUpperCase()+yd.slice(1)))}Hr(Nr,`onAnimationEnd`),Hr(Pr,`onAnimationIteration`),Hr(Fr,`onAnimationStart`),Hr(`dblclick`,`onDoubleClick`),Hr(`focusin`,`onFocus`),Hr(`focusout`,`onBlur`),Hr(Ir,`onTransitionRun`),Hr(Lr,`onTransitionStart`),Hr(Rr,`onTransitionCancel`),Hr(zr,`onTransitionEnd`),yt(`onMouseEnter`,[`mouseout`,`mouseover`]),yt(`onMouseLeave`,[`mouseout`,`mouseover`]),yt(`onPointerEnter`,[`pointerout`,`pointerover`]),yt(`onPointerLeave`,[`pointerout`,`pointerover`]),vt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),vt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),vt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),vt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),vt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),vt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var bd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),xd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(bd));function Sd(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Ur(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Ur(e)}i.currentTarget=null,a=c}}}}function Y(e,t){var n=t[at];n===void 0&&(n=t[at]=new Set);var r=e+`__bubble`;n.has(r)||(Ed(t,e,2,!1),n.add(r))}function Cd(e,t,n){var r=0;t&&(r|=4),Ed(n,e,r,t)}var wd=`_reactListening`+Math.random().toString(36).slice(2);function Td(e){if(!e[wd]){e[wd]=!0,gt.forEach(function(t){t!==`selectionchange`&&(xd.has(t)||Cd(t,!1,e),Cd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[wd]||(t[wd]=!0,Cd(`selectionchange`,!1,t))}}function Ed(e,t,n,r){switch(_p(t)){case 2:var i=dp;break;case 8:i=fp;break;default:i=pp}n=i.bind(null,t,n,e),i=void 0,!on||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Dd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=dt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}nn(function(){var r=a,i=Zt(n),s=[];a:{var c=Br.get(e);if(c!==void 0){var l=gn,u=e;switch(e){case`keypress`:if(fn(n)===0)break a;case`keydown`:case`keyup`:l=Nn;break;case`focusin`:u=`focus`,l=Tn;break;case`focusout`:u=`blur`,l=Tn;break;case`beforeblur`:case`afterblur`:l=Tn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Cn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=wn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Fn;break;case Nr:case Pr:case Fr:l=En;break;case zr:l=In;break;case`scroll`:case`scrollend`:l=vn;break;case`wheel`:l=Ln;break;case`copy`:case`cut`:case`paste`:l=W;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Pn;break;case`toggle`:case`beforetoggle`:l=Rn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=rn(m,p),g!=null&&d.push(Od(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Xt&&(u=n.relatedTarget||n.fromElement)&&(dt(u)||u[it]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?dt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Cn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Pn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:pt(l),h=u==null?c:pt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,dt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Ad,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&jd(s,c,l,d,!1),u!==null&&f!==null&&jd(s,f,u,d,!0)}}a:{if(c=r?pt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=ir;else if(Qn(c)){if(ar)v=mr;else{v=fr;var y=dr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Gt(r.elementType)&&(v=ir):v=pr;if(v&&=v(e,r)){$n(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Lt(c,`number`,c.value)}switch(y=r?pt(r):window,e){case`focusin`:(Qn(y)||y.contentEditable===`true`)&&(Cr=y,wr=r,Tr=null);break;case`focusout`:Tr=wr=Cr=null;break;case`mousedown`:Er=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Er=!1,Dr(s,n,i);break;case`selectionchange`:if(Sr)break;case`keydown`:case`keyup`:Dr(s,n,i)}var b;if(Bn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Jn?Kn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Un&&n.locale!==`ko`&&(Jn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Jn&&(b=dn()):(cn=i,ln=`value`in cn?cn.value:cn.textContent,Jn=!0)),y=kd(r,x),0<y.length&&(x=new Dn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=qn(n),b!==null&&(x.data=b)))),(b=Hn?Yn(e,n):Xn(e,n))&&(x=kd(r,`onBeforeInput`),0<x.length&&(y=new Dn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),_d(s,e,r,n,i)}Sd(s,t)})}function Od(e,t,n){return{instance:e,listener:t,currentTarget:n}}function kd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=rn(e,n),i!=null&&r.unshift(Od(e,i,a)),i=rn(e,t),i!=null&&r.push(Od(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Ad(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function jd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=rn(n,a),l!=null&&o.unshift(Od(n,l,c))):i||(l=rn(n,a),l!=null&&o.push(Od(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Md=/\r\n?/g,Nd=/\u0000|\uFFFD/g;function Pd(e){return(typeof e==`string`?e:``+e).replace(Md,`
|
|
9
|
+
`).replace(Nd,``)}function Fd(e,t){return t=Pd(t),Pd(e)===t}function Id(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Vt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Vt(e,``+r);break;case`className`:Tt(e,`class`,r);break;case`tabIndex`:Tt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Tt(e,n,r);break;case`style`:Wt(e,r,o);break;case`data`:if(t!==`object`){Tt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Jt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Id(e,t,`name`,a.name,a,null),Id(e,t,`formEncType`,a.formEncType,a,null),Id(e,t,`formMethod`,a.formMethod,a,null),Id(e,t,`formTarget`,a.formTarget,a,null)):(Id(e,t,`encType`,a.encType,a,null),Id(e,t,`method`,a.method,a,null),Id(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Jt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Yt);break;case`onScroll`:r!=null&&Y(`scroll`,e);break;case`onScrollEnd`:r!=null&&Y(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Jt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Y(`beforetoggle`,e),Y(`toggle`,e),wt(e,`popover`,r);break;case`xlinkActuate`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Et(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Et(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Et(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Et(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:wt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Kt.get(n)||n,wt(e,n,r))}}function Ld(e,t,n,r,a,o){switch(n){case`style`:Wt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Vt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Vt(e,``+r);break;case`onScroll`:r!=null&&Y(`scroll`,e);break;case`onScrollEnd`:r!=null&&Y(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Yt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!_t.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[rt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):wt(e,n,r)}}}function Rd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Y(`error`,e),Y(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Id(e,t,o,s,n,null)}}a&&Id(e,t,`srcSet`,n.srcSet,n,null),r&&Id(e,t,`src`,n.src,n,null);return;case`input`:Y(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Id(e,t,r,d,n,null)}}It(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Y(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Id(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Rt(e,!!r,n,!0):Rt(e,!!r,t,!1);return;case`textarea`:for(s in Y(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Id(e,t,s,c,n,null)}Bt(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Id(e,t,l,r,n,null)}return;case`dialog`:Y(`beforetoggle`,e),Y(`toggle`,e),Y(`cancel`,e),Y(`close`,e);break;case`iframe`:case`object`:Y(`load`,e);break;case`video`:case`audio`:for(r=0;r<bd.length;r++)Y(bd[r],e);break;case`image`:Y(`error`,e),Y(`load`,e);break;case`details`:Y(`toggle`,e);break;case`embed`:case`source`:case`link`:Y(`error`,e),Y(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Id(e,t,u,r,n,null)}return;default:if(Gt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Ld(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Id(e,t,c,r,n,null))}function zd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Id(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Id(e,t,p,m,r,f)}}Ft(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Id(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Id(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Rt(e,!!n,n?[]:``,!1):Rt(e,!!n,t,!0)):Rt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Id(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Id(e,t,s,a,r,o)}zt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Id(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Id(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Id(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Id(e,t,u,p,r,m)}return;default:if(Gt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Ld(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Ld(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Id(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Id(e,t,f,p,r,m)}function Bd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Vd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Bd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Bd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Hd=null,Ud=null;function Wd(e){return e.nodeType===9?e:e.ownerDocument}function Gd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Kd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function qd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Jd=null;function Yd(){var e=window.event;return e&&e.type===`popstate`?e!==Jd&&(Jd=e,!0):(Jd=null,!1)}var Xd=typeof setTimeout==`function`?setTimeout:void 0,Zd=typeof clearTimeout==`function`?clearTimeout:void 0,Qd=typeof Promise==`function`?Promise:void 0,$d=typeof queueMicrotask==`function`?queueMicrotask:Qd===void 0?Xd:function(e){return Qd.resolve(null).then(e).catch(ef)};function ef(e){setTimeout(function(){throw e})}function tf(e){return e===`head`}function nf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Ip(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)X(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,X(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[lt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&X(e.ownerDocument.body)}n=i}while(n);Ip(t)}function rf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function af(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:af(n),ut(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function of(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[lt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=ff(e.nextSibling),e===null)break}return null}function sf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=ff(e.nextSibling),e===null))return null;return e}function cf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=ff(e.nextSibling),e===null))return null;return e}function lf(e){return e.data===`$?`||e.data===`$~`}function uf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function df(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function ff(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var pf=null;function mf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return ff(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function hf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function gf(e,t,n){switch(t=Wd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function X(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ut(e)}var _f=new Map,vf=new Set;function yf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var bf=I.d;I.d={f:xf,r:Sf,D:Tf,C:Ef,L:Df,m:Of,X:Af,S:kf,M:jf};function xf(){var e=bf.f(),t=Cu();return e||t}function Sf(e){var t=ft(e);t!==null&&t.tag===5&&t.type===`form`?Cs(t):bf.r(e)}var Cf=typeof document>`u`?null:document;function wf(e,t,n){var r=Cf;if(r&&typeof t==`string`&&t){var i=Pt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),vf.has(i)||(vf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Rd(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Tf(e){bf.D(e),wf(`dns-prefetch`,e,null)}function Ef(e,t){bf.C(e,t),wf(`preconnect`,e,t)}function Df(e,t,n){bf.L(e,t,n);var r=Cf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Pt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Pt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Pt(n.imageSizes)+`"]`)):i+=`[href="`+Pt(e)+`"]`;var a=i;switch(t){case`style`:a=Nf(e);break;case`script`:a=Lf(e)}_f.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),_f.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Pf(a))||t===`script`&&r.querySelector(Rf(a))||(t=r.createElement(`link`),Rd(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Of(e,t){bf.m(e,t);var n=Cf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Pt(r)+`"][href="`+Pt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Lf(e)}if(!_f.has(a)&&(e=h({rel:`modulepreload`,href:e},t),_f.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Rf(a)))return}r=n.createElement(`link`),Rd(r,`link`,e),ht(r),n.head.appendChild(r)}}}function kf(e,t,n){bf.S(e,t,n);var r=Cf;if(r&&e){var i=mt(r).hoistableStyles,a=Nf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Pf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=_f.get(a))&&Vf(e,n);var c=o=r.createElement(`link`);ht(c),Rd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Bf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Af(e,t){bf.X(e,t);var n=Cf;if(n&&e){var r=mt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),ht(a),Rd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t){bf.M(e,t);var n=Cf;if(n&&e){var r=mt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=_f.get(i))&&Hf(e,t),a=n.createElement(`script`),ht(a),Rd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mf(e,t,n,r){var a=(a=se.current)?yf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Nf(n.href),n=mt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Nf(n.href);var o=mt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Pf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),_f.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},_f.set(e,n),o||If(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Lf(n),n=mt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Nf(e){return`href="`+Pt(e)+`"`}function Pf(e){return`link[rel="stylesheet"][`+e+`]`}function Ff(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function If(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Rd(t,`link`,n),ht(t),e.head.appendChild(t))}function Lf(e){return`[src="`+Pt(e)+`"]`}function Rf(e){return`script[async]`+e}function zf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Pt(n.href)+`"]`);if(r)return t.instance=r,ht(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),ht(r),Rd(r,`style`,a),Bf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Nf(n.href);var o=e.querySelector(Pf(a));if(o)return t.state.loading|=4,t.instance=o,ht(o),o;r=Ff(n),(a=_f.get(a))&&Vf(r,a),o=(e.ownerDocument||e).createElement(`link`),ht(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Rd(o,`link`,r),t.state.loading|=4,Bf(o,n.precedence,e),t.instance=o;case`script`:return o=Lf(n.src),(a=e.querySelector(Rf(o)))?(t.instance=a,ht(a),a):(r=n,(a=_f.get(o))&&(r=h({},n),Hf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),ht(a),Rd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Bf(r,n.precedence,e));return t.instance}function Bf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Vf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Hf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Uf=null;function Wf(e,t,n){if(Uf===null){var r=new Map,i=Uf=new Map;i.set(n,r)}else i=Uf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[lt]||a[nt]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Gf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Kf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function qf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Jf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Nf(r.href),a=t.querySelector(Pf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Zf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,ht(a);return}a=t.ownerDocument||t,r=Ff(r),(i=_f.get(i))&&Vf(r,i),a=a.createElement(`link`),ht(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Rd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Zf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Yf=0;function Xf(e,t){return e.stylesheets&&e.count===0&&$f(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Yf===0&&(Yf=62500*Vd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Yf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Zf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)$f(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qf=null;function $f(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qf=new Map,t.forEach(ep,e),Qf=null,Zf.call(e))}function ep(e,t){if(!(t.state.loading&4)){var n=Qf.get(e);if(n)var r=n.get(null);else{n=new Map,Qf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Zf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var tp={$$typeof:C,Provider:null,Consumer:null,_currentValue:te,_currentValue2:te,_threadCount:0};function np(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ge(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ge(0),this.hiddenUpdates=Ge(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function rp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new np(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=ei(3,null,null,t),e.current=a,a.stateNode=e,t=ta(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Pa(a),e}function ip(e){return e?(e=Qr,e):Qr}function ap(e,t,n,r,i,a){i=ip(i),r.context===null?r.context=i:r.pendingContext=i,r=Ia(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=La(e,r,t),n!==null&&(vu(n,e,t),Ra(n,e,t))}function op(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function sp(e,t){op(e,t),(e=e.alternate)&&op(e,t)}function cp(e){if(e.tag===13||e.tag===31){var t=Xr(e,67108864);t!==null&&vu(t,e,67108864),sp(e,67108864)}}function lp(e){if(e.tag===13||e.tag===31){var t=gu();t=Ze(t);var n=Xr(e,t);n!==null&&vu(n,e,t),sp(e,t)}}var up=!0;function dp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=2,pp(e,t,n,r)}finally{I.p=a,F.T=i}}function fp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=8,pp(e,t,n,r)}finally{I.p=a,F.T=i}}function pp(e,t,n,r){if(up){var i=mp(r);if(i===null)Dd(e,t,r,hp,n),Ep(e,r);else if(Op(i,e,t,n,r))r.stopPropagation();else if(Ep(e,r),t&4&&-1<Tp.indexOf(e)){for(;i!==null;){var a=ft(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Be(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Fe(o);s.entanglements[1]|=c,o&=~c}od(a),!(Ll&6)&&(iu=Te()+500,sd(0,!1))}}break;case 31:case 13:s=Xr(a,2),s!==null&&vu(s,a,2),Cu(),sp(a,2)}if(a=mp(r),a===null&&Dd(e,t,r,hp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Dd(e,t,r,null,n)}}function mp(e){return e=Zt(e),gp(e)}var hp=null;function gp(e){if(hp=null,e=dt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return hp=e,null}function _p(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ee()){case De:return 2;case Oe:return 8;case ke:case Ae:return 32;case je:return 268435456;default:return 32}default:return 32}}var vp=!1,yp=null,bp=null,xp=null,Sp=new Map,Cp=new Map,wp=[],Tp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Ep(e,t){switch(e){case`focusin`:case`focusout`:yp=null;break;case`dragenter`:case`dragleave`:bp=null;break;case`mouseover`:case`mouseout`:xp=null;break;case`pointerover`:case`pointerout`:Sp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Cp.delete(t.pointerId)}}function Dp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ft(t),t!==null&&cp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Op(e,t,n,r,i){switch(t){case`focusin`:return yp=Dp(yp,e,t,n,r,i),!0;case`dragenter`:return bp=Dp(bp,e,t,n,r,i),!0;case`mouseover`:return xp=Dp(xp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Sp.set(a,Dp(Sp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Cp.set(a,Dp(Cp.get(a)||null,e,t,n,r,i)),!0}return!1}function kp(e){var t=dt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,et(e.priority,function(){lp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,et(e.priority,function(){lp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ap(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=mp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Xt=r,n.target.dispatchEvent(r),Xt=null}else return t=ft(n),t!==null&&cp(t),e.blockedOn=n,!1;t.shift()}return!0}function jp(e,t,n){Ap(e)&&n.delete(t)}function Mp(){vp=!1,yp!==null&&Ap(yp)&&(yp=null),bp!==null&&Ap(bp)&&(bp=null),xp!==null&&Ap(xp)&&(xp=null),Sp.forEach(jp),Cp.forEach(jp)}function Np(e,n){e.blockedOn===n&&(e.blockedOn=null,vp||(vp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Mp)))}var Pp=null;function Fp(e){Pp!==e&&(Pp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Pp===e&&(Pp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(gp(r||n)===null)continue;break}var a=ft(n);a!==null&&(e.splice(t,3),t-=3,xs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Ip(e){function t(t){return Np(t,e)}yp!==null&&Np(yp,e),bp!==null&&Np(bp,e),xp!==null&&Np(xp,e),Sp.forEach(t),Cp.forEach(t);for(var n=0;n<wp.length;n++){var r=wp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<wp.length&&(n=wp[0],n.blockedOn===null);)kp(n),n.blockedOn===null&&wp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[rt]||null;if(typeof a==`function`)o||Fp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[rt]||null)s=o.formAction;else if(gp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Fp(n)}}}function Lp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Rp(e){this._internalRoot=e}zp.prototype.render=Rp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;ap(n,gu(),e,t,null,null)},zp.prototype.unmount=Rp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ap(e.current,2,null,e,null,null),Cu(),t[it]=null}};function zp(e){this._internalRoot=e}zp.prototype.unstable_scheduleHydration=function(e){if(e){var t=$e();e={blockedOn:null,target:e,priority:t};for(var n=0;n<wp.length&&t!==0&&t<wp[n].priority;n++);wp.splice(n,0,e),n===0&&kp(e)}};var Bp=n.version;if(Bp!==`19.2.8`)throw Error(i(527,Bp,`19.2.8`));I.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=f(t),e=e===null?null:m(e),e=e===null?null:e.stateNode,e};var Z={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:F,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Vp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Vp.isDisabled&&Vp.supportsFiber)try{Ne=Vp.inject(Z),B=Vp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Ws,s=Gs,c=Ks;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=rp(e,1,!1,null,null,n,r,null,o,s,c,Lp),e[it]=t.current,Td(e),new Rp(t)}})),h=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()}))(),g=l();function _(e){let t=e,n=new Set;return{get:()=>t,set(e){if(!Object.is(e,t)){t=e;for(let e of n)e()}},subscribe(e){return n.add(e),()=>n.delete(e)}}}function v(e){return(0,g.useSyncExternalStore)(e.subscribe,e.get)}var y=n({en:()=>b,zh:()=>x}),b={artifact:{preview:`preview`,source:`source`,open:`[ open ]`,loading:`Loading…`,tooLarge:`Too large to preview ({size}); the source view reads it as text.`,notPreviewable:`This file cannot be previewed.`,gone:`The file is gone.`,failed:`Could not read the file: {error}`}},x={artifact:{preview:`预览`,source:`源码`,open:`[ 打开 ]`,loading:`加载中…`,tooLarge:`文件太大,无法预览({size});可在源码视图中按文本查看。`,notPreviewable:`这个文件无法预览。`,gone:`文件已不存在。`,failed:`无法读取文件:{error}`}},S=n({en:()=>C,zh:()=>w}),C={compare:{title:`Compare attempts`,menu:`Compare attempts`,severalEngines:`[ compare engines ]`,oneEngine:`[ one engine ]`,needsPrompt:`Compare runs the prompt, so it needs one`,empty:`No attempts left in this round.`,noReply:`no reply yet`,noChanges:`no changes`,status:{working:`working`,waiting:`waiting for you`,error:`needs a look`,done:`done`,idle:`idle`},files:`files: {count}`,more:`+{count} more`,kept:`kept`,strip:`[ compare ]`,stackLabel:`Stacked tasks`,landBottom:`[ land bottom ]`,terminal:`[ terminal ]`,diff:`[ diff ]`,keep:`[ keep this one ]`,unkeep:`[ unkeep ]`,keptToast:`kept {title}`,unkeptToast:`no longer kept: {title}`,keepFailed:`could not mark it kept: {error}`,archiveTitle:`Archive the other attempts?`,archiveBody:`Hides the other {count} from the rail. Their worktrees and branches stay, and nothing running is stopped.`,archiveConfirm:`Archive`,archiveBusyTitle:`Some attempts are still working`,archiveBusyBody:`Archive them anyway? Their worktrees and branches stay, and nothing is stopped.`,archiveBusyConfirm:`Archive anyway`,archived:`archived {count} attempts`,archiveFailed:`could not archive: {error}`}},w={compare:{title:`对比方案`,menu:`对比方案`,severalEngines:`[ 多引擎对比 ]`,oneEngine:`[ 单引擎 ]`,needsPrompt:`对比要运行提示词,请先写一个`,empty:`这一轮没有剩下的方案。`,noReply:`还没有回复`,noChanges:`没有改动`,status:{working:`运行中`,waiting:`等你处理`,error:`需要看一眼`,done:`已完成`,idle:`空闲`},files:`文件:{count}`,more:`另有 {count} 个`,kept:`已保留`,strip:`[ 对比 ]`,stackLabel:`堆叠任务`,landBottom:`[ 合并底部 ]`,terminal:`[ 终端 ]`,diff:`[ diff ]`,keep:`[ 保留这个 ]`,unkeep:`[ 取消保留 ]`,keptToast:`已保留 {title}`,unkeptToast:`已取消保留:{title}`,keepFailed:`无法标记保留:{error}`,archiveTitle:`归档其他方案?`,archiveBody:`把其余 {count} 个从侧栏收起。它们的 worktree 和分支都保留,运行中的也不会被停掉。`,archiveConfirm:`归档`,archiveBusyTitle:`有方案还在运行`,archiveBusyBody:`仍要归档吗?它们的 worktree 和分支都保留,也不会停掉任何东西。`,archiveBusyConfirm:`仍然归档`,archived:`已归档 {count} 个方案`,archiveFailed:`无法归档:{error}`}},T=n({en:()=>E,zh:()=>D}),E={context:{title:`Context`,used:`{percent} used`,usedTokens:`{tokens} used`,loading:`Reading context…`,none:`No context reading for this conversation: its engine records none, or it has not answered yet.`,failed:`Couldn't read context: {error}`,approximate:`Approximate.`,part:{system:`System prompt & tools`,messages:`Messages`,used:`Used`,free:`Free space`}}},D={context:{title:`上下文`,used:`已用 {percent}`,usedTokens:`已用 {tokens}`,loading:`正在读取上下文…`,none:`这个会话没有上下文读数:它的引擎不记录,或者还没回复过。`,failed:`读取上下文失败:{error}`,approximate:`近似值。`,part:{system:`系统提示与工具`,messages:`消息`,used:`已用`,free:`剩余空间`}}},O=n({en:()=>k,zh:()=>A}),k={dialog:{cancel:`cancel`,save:`save`,close:`close`},whatsNew:{continue:`Continue`,openRelease:`Open release notes`,keys:`q / esc`},menu:{closeTab:`Close tab`,newChat:`New conversation`,newChatPick:`New conversation with…`,retryEdit:`Retry with edited prompt…`,retryNoPrompt:`This task has no stored prompt`,startNow:`Start now`,cancelStart:`Cancel scheduled start`,continueEngine:`Continue in another engine…`,newShell:`New shell`,newChatNoFolder:`New conversation (no folder)`,renameTab:`Rename tab`,splitRight:`Split right`,splitDown:`Split down`,renamePane:`Rename pane`,closePane:`Close pane`,newTask:`New task`,rename:`Rename`,pin:`Pin`,unpin:`Unpin`,setStatus:`Set status`,copy:`Copy`,copyWhat:{id:`Task ID`,branch:`Branch name`,path:`Worktree path`},renameBranch:`Rename branch`,changeEngine:`Change engine`,land:`Land into base branch`,delete:`Delete`,removeSession:`Remove session`,more:`More`,copied:`copied {text}`,copyFailed:`the browser refused the clipboard`,nothingToCopy:`this task has no {what} yet`,what:{id:`id`,branch:`branch`,path:`worktree path`}},confirm:{closeTabTitle:`Close "{tab}"?`,closeTabBody:`Stops the session in this tab. The task and its worktree stay.`,closePaneTitle:`Close "{pane}"?`,closePaneBody:`The engine session in this pane ends. The tab's other panes stay.`,delete:`delete`,forceDelete:`force delete`},newTask:{title:`new task`,repo:`project`,engine:`engine`,notReady:`not installed or not signed in`,taskTitle:`title`,titlePlaceholder:`optional; derived from the prompt otherwise`,prompt:`first message`,promptPlaceholder:`optional; ⌘↵ creates`,create:`create`,needRepo:`pick a project first`},newChat:{title:`new conversation`,prompt:`first message`,start:`start`,promptPlaceholder:`optional; empty opens the engine without a message`},newSession:{title:`New session`,tagline:`Pick a project and a model, then describe the task. The session starts with your first message.`,placeholder:`Describe a task or ask a question`,start:`Start session`,createOnly:`Create without starting`,later:`Later…`,laterConfirm:`Start later`,laterPlaceholder:`22:30 · tomorrow 9:00 · +30m`,laterBad:`That is not a time ahead. Try 22:30, tomorrow 9:00 or +2h.`,laterSet:`Starts at {time}`,retryArchiveTitle:`Archive "{title}"?`,retryArchiveBody:`The retry has started. Archive the original? Nothing is stopped or deleted.`,needRepo:`Pick a project first`,needPrompt:`Describe the task first`,repo:`Project`,repoSearch:`Search projects or type a path`,repoEmpty:`No matching project`,cloneRow:`Clone {source}`,cloning:`Cloning {source}…`,githubGroup:`Your GitHub repositories`,branch:`Branch`,branchSearch:`Search branches`,branches:`Branches`,branchName:`Branch name, shared by every repo`,branchNamePlaceholder:`derived from the prompt`,primary:`primary`,repoCount:`{count} repos: the first is the primary`,branchEmpty:`No matching branch`,model:`Model`,modelHeading:`Model for this session`,engine:`Engine`,effort:`Effort`,modelDefault:`Default`,effortDefault:`Default`,more:`More`,attach:`Attach`,attachHint:`Add images or PDFs to the first message; you can also paste or drop them on the prompt`,removeAttachment:`Remove {name}`,worktree:`Worktree`,worktreeOn:`Runs in its own worktree and branch. Click to run in the project's checkout instead`,worktreeOff:`Runs in the project's checkout as it is, on its current branch. Click for a worktree`,worktreeMulti:`A task across several repos always gets a worktree in each`,machine:`Machine`,thisMachine:`This machine`,cloneRowOn:`Clone {source} on {machine}`,cloningOn:`Cloning {source} on {machine}…`,startingOn:`Starting the task on {machine}…`,repoSearchRemote:`Search or type owner/repo`,cloneTag:`clone`,remoteOffline:`{machine} is offline`,remoteOutdated:`{machine} runs a Rove too old to list its projects`,remoteFailed:`Could not read {machine}'s projects: {message}`,remoteNone:`{machine} has no projects yet. Type owner/repo to clone one there`,remoteLoading:`Reading {machine}'s projects…`,branchTypeRef:`Type a branch or ref to start from`,branchRemoteDefault:`Its current branch`},search:{tasks:`Tasks`,commands:`Commands`,inConversations:`In conversations`,searching:`searching…`,none:`Nothing said matches “{query}”.`,you:`you`,agent:`agent`,truncated:`Stopped early to stay fast; add a word to narrow it.`,skipped:`{count} task(s) not searched: another machine's, or an engine Rove cannot read.`},taskops:{publishTitle:`publish to the remote`,publishBody:`{branch} lives on {host}. Push it from there and open a pull request?`,publishButton:`push & open PR`,publishedPr:`pushed {branch} — PR {url}`,publishedNoPr:`pushed {branch}, but no PR: {reason}`,set:`set`,retire:`delete`,close:`close`,moveHint:`j/k move · enter or esc done`,fixSent:`asked the agent to fix the failing checks`,forkNeedsMessage:`a message is required to fork a task`,forkLeftBehind:`Started from the last commit — uncommitted work stays in the original task ({reason})`,forkBranch:`fork from branch`,openedExternal:`opened in the Mac's app`}},A={dialog:{cancel:`取消`,save:`保存`,close:`关闭`},whatsNew:{continue:`继续`,openRelease:`打开发布说明`,keys:`q / esc`},menu:{closeTab:`关闭该标签页`,newChat:`新建会话`,newChatPick:`选择引擎新建会话…`,retryEdit:`改提示词后重试…`,retryNoPrompt:`这个任务没有保存的提示词`,startNow:`立即启动`,cancelStart:`取消定时启动`,continueEngine:`换个引擎继续…`,newShell:`新建终端`,newChatNoFolder:`新建会话(无文件夹)`,renameTab:`重命名标签页`,splitRight:`向右分屏`,splitDown:`向下分屏`,renamePane:`重命名分屏`,closePane:`关闭分屏`,newTask:`新建任务`,rename:`重命名`,pin:`置顶`,unpin:`取消置顶`,setStatus:`设置状态`,copy:`复制`,copyWhat:{id:`任务 ID`,branch:`分支名`,path:`worktree 路径`},renameBranch:`重命名分支`,changeEngine:`切换引擎`,land:`合入基础分支`,delete:`删除`,removeSession:`移除会话`,more:`更多`,copied:`已复制 {text}`,copyFailed:`浏览器拒绝了剪贴板访问`,nothingToCopy:`这个任务还没有{what}`,what:{id:`ID`,branch:`分支`,path:`worktree 路径`}},confirm:{closeTabTitle:`关闭「{tab}」?`,closeTabBody:`停止这个标签里的会话。任务和它的 worktree 会保留。`,closePaneTitle:`关闭「{pane}」?`,closePaneBody:`这个分屏里的引擎会话会结束。标签里的其他分屏会保留。`,delete:`删除`,forceDelete:`强制删除`},newTask:{title:`新建任务`,repo:`项目`,engine:`引擎`,notReady:`未安装或未登录`,taskTitle:`标题`,titlePlaceholder:`可选;不填就从第一条消息生成`,prompt:`第一条消息`,promptPlaceholder:`可选;⌘↵ 创建`,create:`创建`,needRepo:`先选一个项目`},newChat:{title:`新建会话`,prompt:`第一条消息`,start:`开始`,promptPlaceholder:`可选;留空则直接打开引擎,不发消息`},newSession:{title:`新会话`,tagline:`选好项目和模型,再描述任务。会话从你的第一条消息开始。`,placeholder:`描述一个任务,或提个问题`,start:`开始会话`,createOnly:`仅创建,不启动`,later:`稍后…`,laterConfirm:`稍后启动`,laterPlaceholder:`22:30 · 明天 9:00 · +30m`,laterBad:`这不是一个未来的时间。试试 22:30、明天 9:00 或 +2h。`,laterSet:`{time} 启动`,retryArchiveTitle:`归档「{title}」?`,retryArchiveBody:`重试已经开始。要把原来的会话归档吗?不会停止或删除任何东西。`,needRepo:`先选一个项目`,needPrompt:`先描述一下任务`,repo:`项目`,repoSearch:`搜索项目,或输入路径`,repoEmpty:`没有匹配的项目`,cloneRow:`克隆 {source}`,cloning:`正在克隆 {source}…`,githubGroup:`你的 GitHub 仓库`,branch:`分支`,branchSearch:`搜索分支`,branches:`分支`,branchName:`分支名,所有仓库共用`,branchNamePlaceholder:`不填就从提示词生成`,primary:`主仓库`,repoCount:`{count} 个仓库,第一个是主仓库`,branchEmpty:`没有匹配的分支`,model:`模型`,modelHeading:`本次会话的模型`,engine:`引擎`,effort:`强度`,modelDefault:`默认`,effortDefault:`默认`,more:`更多`,attach:`附件`,attachHint:`给第一条消息加图片或 PDF;也可以直接粘贴或拖到输入框里`,removeAttachment:`移除 {name}`,worktree:`Worktree`,worktreeOn:`在独立的 worktree 和分支里运行。点击改为直接在项目目录里运行`,worktreeOff:`直接在项目目录里运行,用它当前的分支。点击改为独立 worktree`,worktreeMulti:`跨多个仓库的任务每个仓库都会有 worktree`,machine:`机器`,thisMachine:`本机`,cloneRowOn:`在 {machine} 上克隆 {source}`,cloningOn:`正在 {machine} 上克隆 {source}…`,startingOn:`正在 {machine} 上启动任务…`,repoSearchRemote:`搜索,或输入 owner/repo`,cloneTag:`克隆`,remoteOffline:`{machine} 已离线`,remoteOutdated:`{machine} 上的 Rove 太旧,列不出它的项目`,remoteFailed:`读不到 {machine} 上的项目:{message}`,remoteNone:`{machine} 上还没有项目。输入 owner/repo 就能在那里克隆`,remoteLoading:`正在读取 {machine} 上的项目…`,branchTypeRef:`输入要基于的分支或 ref`,branchRemoteDefault:`它当前的分支`},search:{tasks:`任务`,commands:`命令`,inConversations:`在对话里`,searching:`搜索中…`,none:`没有说过「{query}」。`,you:`你`,agent:`agent`,truncated:`为了快提前停了;多加一个词缩小范围。`,skipped:`有 {count} 个任务没搜:在别的机器上,或 Rove 读不了它的引擎记录。`},taskops:{publishTitle:`推送到远端`,publishBody:`{branch} 在 {host} 上。要从那台机器推送它并开一个 PR 吗?`,publishButton:`推送并开 PR`,publishedPr:`已推送 {branch} — PR {url}`,publishedNoPr:`已推送 {branch},但没开成 PR:{reason}`,set:`设置`,retire:`删除`,close:`关闭`,moveHint:`j/k 移动 · enter 或 esc 完成`,fixSent:`已请 agent 修复失败的检查`,forkNeedsMessage:`fork 任务需要填写消息`,forkLeftBehind:`已从最近一次提交开始——未提交的改动留在原任务里({reason})`,forkBranch:`基于分支`,openedExternal:`已在 Mac 上用系统应用打开`}},j=n({en:()=>ee,zh:()=>M}),ee={machines:{title:`Machines`,open:`[ machines ]`,none:"No other machines registered. Add one with `rove machine add`.",newHere:`[ new task here ]`,tasks:`[ tasks ]`,repos:`[ repos ]`,hide:`[ hide ]`,noTasks:`no tasks`,noRepos:`no repos`,loading:`…`,reposFailed:`couldn't read its repos: {message}`,reason:{refused:`ssh was refused (nothing is listening or a firewall is in the way)`,timeout:`ssh timed out`,"host-key-changed":`its ssh host key changed; check it, then update known_hosts`,"host-key-unverified":`its ssh host key is not known yet; connect once by hand to trust it`,"auth-denied":`ssh refused the login (no key or password accepted)`,unresolved:`its hostname does not resolve`,"ssh-failed":`ssh failed`,"no-rove":`rove is not installed there`,"no-daemon":`its rove daemon is not running`,"bad-status":`it answered with something rove could not read`,handshake:`the link came up but the handshake failed`,"no-forwarding":`ssh forwarding is disabled there`,lost:`the link dropped; reconnecting`}}},M={machines:{title:`机器`,open:`[ 机器 ]`,none:"没有注册其他机器。用 `rove machine add` 添加。",newHere:`[ 在这台新建任务 ]`,tasks:`[ 任务 ]`,repos:`[ 仓库 ]`,hide:`[ 收起 ]`,noTasks:`没有任务`,noRepos:`没有仓库`,loading:`…`,reposFailed:`读不到它的仓库:{message}`,reason:{refused:`ssh 被拒绝(没有进程在监听,或被防火墙挡住)`,timeout:`ssh 超时`,"host-key-changed":`它的 ssh 主机密钥变了;确认无误后更新 known_hosts`,"host-key-unverified":`还不认识它的 ssh 主机密钥;先手动连一次以信任它`,"auth-denied":`ssh 拒绝了登录(没有被接受的密钥或密码)`,unresolved:`它的主机名解析不了`,"ssh-failed":`ssh 失败`,"no-rove":`那里没有安装 rove`,"no-daemon":`它的 rove 守护进程没在运行`,"bad-status":`它返回了 rove 读不懂的内容`,handshake:`链路通了但握手失败`,"no-forwarding":`那里禁用了 ssh 端口转发`,lost:`链路断了;正在重连`}}},N=n({en:()=>P,zh:()=>F}),P={files:{autoFix:{on:`[ auto-fix CI ]`,off:`[ turn off ]`,count:`auto-fix {n}/{max}`,stopped:`auto-fix stopped {n}/{max}`,hint:`When checks fail on a new push and the agent is idle, send it the failing logs. At most once per push, 3 times in all, then it stops and tells your Inbox.`},stripCreate:`[ create PR ]`,stripFixCi:`[ fix CI ]`,stripConflicts:`[ resolve conflicts ]`,stripComments:`[ address comments ]`,stripArchive:`[ archive ]`,stripFilled:`prompt is in the input; edit it and press Enter`,stripNoEngine:`No engine session open in this task — nowhere to put the prompt.`,stripUnavailable:`couldn't read the PR's checks: {detail}`,stripNothing:`nothing to ask the agent about right now`,run:{run:`[ run ]`,stop:`[ stop ]`,open:`[ open :{port} ]`},checks:{title:`checks`,summary:`{pass}/{total} passed`,failed:`{count} failed`,running:`{count} running`,none:`no checks`,refresh:`[ refresh ]`,loading:`…`,unavailable:`couldn't read the PR: {detail}`,log:`[ log ]`,hideLog:`[ hide ]`,noLog:`no log excerpt for this job`,logUnavailable:`couldn't read the log: {detail}`,more:`{count} more not shown`},merge:{draft:`draft`,conflicts:`conflicts`,behind:`behind base`,unstable:`checks not passing`,blocked:`blocked`,clean:`mergeable`,approved:`approved`,changes:`changes requested`,reviewRequired:`review required`},stripCommit:`[ commit ]`,prRequested:`asked the agent to create the PR`,remoteNoExternal:`this file is on {host}; open it there`,mentionNoEngine:`No engine session open in this task — nothing to mention into.`,landTodos:`{count} todo(s) on this task are still unchecked.`,emptyAll:`(empty worktree)`,state:{conflict:`conflict`,deleted:`deleted`,modified:`modified`,untracked:`untracked`,added:`added`,renamed:`renamed`}},preview:{loading:`loading…`,whole:`whole worktree`,unknown:`nothing to show`,binary:`binary file — not shown as text`,empty:`no changes`,noHunks:`no text changes ({kind})`,modeFile:`[ file ]`,modeDiff:`[ diff ]`,askInChat:`ask in chat`,askInChatHint:`Put the selected lines in the engine's prompt`,sent:`sent {count} notes to the engine`,notSent:`notes not sent: {reason}`},review:{comment:`comment`,range:`range`,count:`{count} comments`,countOne:`1 comment`,send:`send {count}`,sending:`sending…`,edit:`edit`,drop:`drop`,moved:`moved`,movedHint:`The code under this comment changed since it was written.`,show:`Show in the diff`,noteOn:`note on {location}`,noteEditOn:`edit note on {location}`,noteAdd:`[ add note ]`,noteSave:`[ save note ]`,noteCancel:`[ cancel ]`,fold:`Fold {path}`,unfold:`Unfold {path}`,foldAll:`fold all`,unfoldAll:`unfold all`,ignoreWs:`[ ws ]`,ignoreWsHint:`Hide whitespace-only changes (git diff -w)`,viewed:`[ viewed ]`,markViewed:`Mark {path} viewed`,viewedOn:`[x] viewed`,unmarkViewed:`Unmark {path} viewed`,totals:`{files} files · +{added} −{removed}`,viewedCount:`{done}/{files} viewed`,nextFile:`[ next file ]`,nextComment:`[ next comment ]`,scopeMenu:`{base} → {scope} ▾`,compareAgainst:`Compare against {base}…`,baseDefault:`task base`,baseBranch:`branch`,baseRemote:`remote`,baseTag:`tag`,basePlaceholder:`branch, tag or commit`,shape:{effort:`effort {n}/5`,lockfile:`{count} lockfile`,lockfiles:`{count} lockfiles`,generated:`{count} generated`,tests:`{count} tests`,config:`{count} config`,docs:`{count} docs`,source:`{count} source`},scopeWorking:`Uncommitted changes`,scopeBranch:`Committed changes`,scopeTask:`All changes`,lineClipped:`… {count} more characters`,notSupported:`This bridge is older than the page and can't do that; restart it.`},panel:{tabs:`Browser tabs`,files:`Files`,chat:`Chat`,diff:`Diff`,browser:`Browser`,quota:`Context`,resize:`Drag to resize the panel, double-click to reset`,new:`New tab`,close:`Close`,expand:`Expand the side panel`,restore:`Restore the side panel size`,closeOthers:`Close others`,resizeSplit:`Drag to resize, double-click to split evenly`},browser:{address:`Address`,placeholder:`https://… or localhost:3000`,back:`Back`,forward:`Forward`,reload:`Reload`,openTab:`Open in a new tab`,invalid:`That is not a web address; only http and https pages open here.`,empty:`Enter a web address, or a local dev server.`,noFrame:`Only https pages open here; this address uses plain http. Use ↗ to open it in a new tab.`,self:`That address is Rove itself, which can't be framed. Use ↗ to open it in a new tab.`,refuses:`{host} doesn't allow being shown inside another page.`,unreachable:`{host} can't be reached from here.`,remote:`{host} runs on the Rove machine, not on this one.`}},F={files:{autoFix:{on:`[ 自动修复 CI ]`,off:`[ 关闭 ]`,count:`自动修复 {n}/{max}`,stopped:`自动修复已停止 {n}/{max}`,hint:`检查在新提交上失败且代理空闲时,自动把失败日志发给它。每次提交最多一次、总共 3 次,之后停止并通知收件箱。`},stripCreate:`[ 创建 PR ]`,stripFixCi:`[ 修复 CI ]`,stripConflicts:`[ 解决冲突 ]`,stripComments:`[ 处理评论 ]`,stripArchive:`[ 归档 ]`,stripFilled:`提示词已放进输入框,修改后按 Enter 发送`,stripNoEngine:`这个任务没有打开的引擎会话,提示词无处可放。`,stripUnavailable:`读不到 PR 的检查结果:{detail}`,stripNothing:`现在没有需要让代理处理的事`,run:{run:`[ 运行 ]`,stop:`[ 停止 ]`,open:`[ 打开 :{port} ]`},checks:{title:`检查`,summary:`{pass}/{total} 通过`,failed:`{count} 个失败`,running:`{count} 个进行中`,none:`没有检查`,refresh:`[ 刷新 ]`,loading:`…`,unavailable:`读不到这个 PR:{detail}`,log:`[ 日志 ]`,hideLog:`[ 收起 ]`,noLog:`这个作业没有日志摘录`,logUnavailable:`读不到日志:{detail}`,more:`还有 {count} 个未显示`},merge:{draft:`草稿`,conflicts:`有冲突`,behind:`落后于基线`,unstable:`检查未通过`,blocked:`被阻塞`,clean:`可合并`,approved:`已批准`,changes:`要求修改`,reviewRequired:`需要评审`},stripCommit:`[ 提交 ]`,prRequested:`已让代理去创建 PR`,remoteNoExternal:`这个文件在 {host} 上,请到那台机器上打开`,mentionNoEngine:`这个任务没有打开的引擎会话——没有地方可以提及。`,landTodos:`此任务还有 {count} 条待办未完成。`,emptyAll:`(空工作区)`,state:{conflict:`有冲突`,deleted:`已删除`,modified:`已修改`,untracked:`未跟踪`,added:`已新增`,renamed:`已重命名`}},preview:{loading:`加载中…`,whole:`整个工作区`,unknown:`没有可显示的内容`,binary:`二进制文件——不以文本显示`,empty:`没有变更`,noHunks:`没有文本变更({kind})`,modeFile:`[ 文件 ]`,modeDiff:`[ 差异 ]`,askInChat:`在对话里问`,askInChatHint:`把选中的几行放进引擎的输入框`,sent:`已把 {count} 条批注发给引擎`,notSent:`批注没有发出:{reason}`},review:{comment:`批注`,range:`选范围`,count:`{count} 条批注`,countOne:`1 条批注`,send:`发送 {count} 条`,sending:`发送中…`,edit:`编辑`,drop:`删除`,moved:`已移位`,movedHint:`这条批注下面的代码在写下之后变了。`,show:`在差异里定位`,noteOn:`批注 {location}`,noteEditOn:`编辑批注 {location}`,noteAdd:`[ 添加批注 ]`,noteSave:`[ 保存批注 ]`,noteCancel:`[ 取消 ]`,fold:`折叠 {path}`,unfold:`展开 {path}`,foldAll:`全部折叠`,unfoldAll:`全部展开`,ignoreWs:`[ ws ]`,ignoreWsHint:`隐藏仅空白的改动 (git diff -w)`,viewed:`[ 已看 ]`,markViewed:`标记 {path} 为已看`,viewedOn:`[x] 已看`,unmarkViewed:`取消 {path} 的已看`,totals:`{files} 个文件 · +{added} −{removed}`,viewedCount:`已看 {done}/{files}`,nextFile:`[ 下个文件 ]`,nextComment:`[ 下条评论 ]`,scopeMenu:`{base} → {scope} ▾`,compareAgainst:`对比基准:{base}…`,baseDefault:`任务基准`,baseBranch:`分支`,baseRemote:`远程`,baseTag:`标签`,basePlaceholder:`分支、标签或提交`,shape:{effort:`评审量 {n}/5`,lockfile:`{count} 个锁文件`,lockfiles:`{count} 个锁文件`,generated:`{count} 个生成文件`,tests:`{count} 个测试`,config:`{count} 个配置`,docs:`{count} 个文档`,source:`{count} 个源码`},scopeWorking:`未提交的改动`,scopeBranch:`已提交的改动`,scopeTask:`全部改动`,lineClipped:`…还有 {count} 个字符`,notSupported:`这个 bridge 比页面旧,做不了这个;请重启它。`},panel:{tabs:`浏览器标签页`,files:`文件`,chat:`对话`,diff:`差异`,browser:`浏览器`,quota:`上下文`,resize:`拖动调整侧边栏宽度,双击复位`,new:`新建标签页`,close:`关闭`,expand:`展开侧边栏`,restore:`还原侧边栏大小`,closeOthers:`关闭其他`,resizeSplit:`拖动调整宽度,双击恢复均分`},browser:{address:`地址`,placeholder:`https://… 或 localhost:3000`,back:`后退`,forward:`前进`,reload:`刷新`,openTab:`在新标签页打开`,invalid:`这不是网页地址;这里只能打开 http 和 https 页面。`,empty:`输入网页地址,或本地开发服务器的地址。`,noFrame:`这里只能打开 https 页面;这个地址用的是 http。点 ↗ 在新标签页打开。`,self:`这个地址就是 Rove 本身,不能嵌入。点 ↗ 在新标签页打开。`,refuses:`{host} 不允许嵌入其他页面。`,unreachable:`从这里访问不到 {host}。`,remote:`{host} 运行在 Rove 所在的机器上,不在这台设备上。`}},I=n({en:()=>te,zh:()=>ne}),te={quote:{action:`[ quote ]`,title:`Put the selection in the prompt as a quote`,atMenu:`The agent is waiting on a choice. Answer it first, then quote.`,notReady:`The agent's prompt is not taking pasted text yet. Try again in a moment.`},snippets:{empty:`No snippets yet.`,name:`Name`,namePlaceholder:`review`,text:`Text`,textPlaceholder:`Review this change for bugs and missing tests.`,add:`[ add ]`,save:`[ save ]`,edit:`[ edit ]`,cancel:`[ cancel ]`,remove:`[ remove ]`,removed:`Removed @{name}`,badName:`A name is letters, digits, - or _, up to 32.`}},ne={quote:{action:`[ 引用 ]`,title:`把选中的内容作为引用放进提示词`,atMenu:`agent 正在等你做选择。先回答它,再引用。`,notReady:`agent 的输入框暂时还不接受粘贴。稍等一下再试。`},snippets:{empty:`还没有片段。`,name:`名称`,namePlaceholder:`review`,text:`内容`,textPlaceholder:`检查这次改动有没有 bug,有没有漏掉的测试。`,add:`[ 添加 ]`,save:`[ 保存 ]`,edit:`[ 编辑 ]`,cancel:`[ 取消 ]`,remove:`[ 删除 ]`,removed:`已删除 @{name}`,badName:`名称只能是字母、数字、- 或 _,最长 32 位。`}},re=n({en:()=>ie,zh:()=>L}),ie={rail:{inbox:`inbox {count}`,empty:`no tasks yet`,skillCue:`skill missing`,newTask:`New task`,settings:`Settings`,noProject:`Ungrouped`,state:{needs:`needs you`,working:`working`,ready:`ready`,idle:`idle`},extraRepos:`{count} more repos in this task`,todos:`{done} of {total} todos done`,startsAt:`Starts {time}`,pr:{state:{open:`open`,merged:`merged`,closed:`closed`},many:`{count} PRs in this task and its children`,checks:{conflict:`conflicts with its base`,failing:`checks failing`,passing:`checks passing`,pending:`checks running`}},searchPlaceholder:`fuzzy filter`,engineSwitched:`Engine → {engine} (applies on reopen)`,engineSwitchFailed:`could not switch engine: {error}`},inbox:{title:`inbox`,hints:`↑↓ move · enter open · d ack · esc close`,ackAll:`[ ack all ]`,attention:`attention`,recent:`recent`,empty:`no pending attention`,reply:`[ reply ]`,hide:`[ hide ]`,send:`[ send ]`,openTab:`[ open ]`,noOutput:`no output yet`,replyPlaceholder:`reply to this session`,gateKept:`Saved; the engine isn't running and will get it with its next message.`,state:{done:`done`,needsInput:`needs input`,error:`error`,rateLimited:`rate limited`,dead:`engine exited`,routineFailed:`routine needs you`,decision:`needs a decision`,reportMissing:`report missing`}}},L={rail:{inbox:`收件箱 {count}`,empty:`还没有任务`,skillCue:`缺少技能`,newTask:`新建任务`,settings:`设置`,noProject:`未分组`,state:{needs:`等你处理`,working:`进行中`,ready:`待收尾`,idle:`空闲`},extraRepos:`这个任务还含 {count} 个仓库`,todos:`{done}/{total} 条待办已完成`,startsAt:`{time} 启动`,pr:{state:{open:`进行中`,merged:`已合并`,closed:`已关闭`},many:`这个任务及子任务共 {count} 个 PR`,checks:{conflict:`与基础分支冲突`,failing:`检查未通过`,passing:`检查已通过`,pending:`检查进行中`}},searchPlaceholder:`模糊搜索`,engineSwitched:`引擎 → {engine}(重新打开后生效)`,engineSwitchFailed:`切换引擎失败:{error}`},inbox:{title:`收件箱`,hints:`↑↓ 移动 · enter 打开 · d 已阅 · esc 关闭`,ackAll:`[ 全部已阅 ]`,attention:`待处理`,recent:`最近使用`,empty:`暂无待处理`,reply:`[ 回复 ]`,hide:`[ 收起 ]`,send:`[ 发送 ]`,openTab:`[ 打开 ]`,noOutput:`还没有输出`,replyPlaceholder:`回复这个会话`,gateKept:`已记下;引擎没在运行,下次发消息时一并送达。`,state:{done:`完成`,needsInput:`需要输入`,error:`出错`,rateLimited:`限流`,dead:`引擎已退出`,routineFailed:`例行任务需要处理`,decision:`等你决定`,reportMissing:`未回报`}}},R=n({en:()=>ae,zh:()=>oe}),ae={reviewQueue:{sourceIssues:`[ issues ]`,sourceReviews:`[ PRs waiting on me ]`,palette:`Review queue`,title:`PRs waiting on me`,empty:`No open PR asks for your review in your projects.`,other:`{count} more in projects Rove doesn't know.`,draft:`draft`,fork:`fork`,checksPassing:`checks passing`,checksFailing:`checks failing`,checksPending:`checks running`,start:`[ review ]`,preparing:`Fetching #{number}…`,failed:`Could not start the review of #{number}: {error}`,gh:{missing:"The `gh` CLI is not installed or not on PATH.",unauthenticated:"`gh` is not signed in: run `gh auth login` on this Mac.",failed:`GitHub could not be read just now. Press r to retry.`},prompt:`Review pull request #{number} in {repo}: {title}
|
|
10
|
+
{url}
|
|
11
|
+
|
|
12
|
+
This worktree is at the PR's head ({head}, going into {base}). Read the change against {base} (git diff origin/{base}...HEAD), then tell me what you find: bugs, risks, missing tests, anything unclear. Do not push, comment on or approve the PR; report here.`}},oe={reviewQueue:{sourceIssues:`[ 议题 ]`,sourceReviews:`[ 等我评审的 PR ]`,palette:`评审队列`,title:`等我评审的 PR`,empty:`你的项目里没有等你评审的 PR。`,other:`另有 {count} 个在 Rove 不认识的项目里。`,draft:`草稿`,fork:`fork`,checksPassing:`检查通过`,checksFailing:`检查未通过`,checksPending:`检查进行中`,start:`[ 评审 ]`,preparing:`正在获取 #{number}…`,failed:`无法开始评审 #{number}:{error}`,gh:{missing:"没有安装 `gh` 命令行,或不在 PATH 中。",unauthenticated:"`gh` 未登录:请在这台 Mac 上运行 `gh auth login`。",failed:`暂时读不到 GitHub。按 r 重试。`},prompt:`评审 {repo} 的拉取请求 #{number}:{title}
|
|
13
|
+
{url}
|
|
14
|
+
|
|
15
|
+
这个 worktree 在该 PR 的头部({head},合入 {base})。对照 {base} 阅读改动(git diff origin/{base}...HEAD),然后告诉我你的发现:bug、风险、缺失的测试、不清楚的地方。不要推送、评论或批准这个 PR;在这里汇报。`}},se=n({en:()=>ce,zh:()=>le}),ce={runLog:{title:`Runs`,all:`all`,routine:`Routine`,allRoutines:`All routines`,outcome:{ok:`ok`,blocked:`blocked`,failed:`failed`,skipped:`skipped`},source:{schedule:`schedule`,manual:`manual`,webhook:`webhook`},blocked:{"task-missing":`task is gone`,"awaiting-owner":`waiting on a decision`,"report-missing":`last run never reported`,quota:`rate limited`,"engine-error":`engine error`,"engine-dead":`engine stopped`,"awaiting-permission":`waiting on a permission`,busy:`still working`},blockedRun:`blocked: {reason}`,empty:`No runs match.`,more:`+{count} more`}},le={runLog:{title:`运行记录`,all:`全部`,routine:`例行任务`,allRoutines:`全部例行任务`,outcome:{ok:`成功`,blocked:`受阻`,failed:`失败`,skipped:`跳过`},source:{schedule:`定时`,manual:`手动`,webhook:`Webhook`},blocked:{"task-missing":`任务已不存在`,"awaiting-owner":`等你做决定`,"report-missing":`上次运行没有汇报`,quota:`触发限流`,"engine-error":`引擎出错`,"engine-dead":`引擎已停止`,"awaiting-permission":`等你授权`,busy:`仍在运行`},blockedRun:`受阻:{reason}`,empty:`没有符合条件的运行。`,more:`另有 {count} 条`}},ue=n({en:()=>de,zh:()=>fe}),de={settings:{title:`Settings`,open:`settings`,sections:{connectors:`Connectors`,appearance:`Appearance`,notifications:`Notifications`,snippets:`Snippets`,about:`About`,voice:`Voice`},groups:{preferences:`Preferences`,agents:`Agents and tools`,more:`More`},pages:{general:`Language, layout, and where Rove opens files and creates worktrees.`,appearance:`Theme, colours, and how tasks and panes look.`,notifications:`When Rove tells you a task finished or needs you.`,keys:`Rebind chords in your own file, and how the prefix guide behaves.`,engines:`The coding agents Rove can start, and how it plugs into them.`,autoRouting:`What each depth tier starts, and who picks the tier.`,voice:`Dictation: the recognizer that turns what you say into prompts.`,connectors:`Accounts Rove uses, here and on your other machines.`,plugins:`Built-in pages and registered plugins.`,about:`Versions, updates, and this browser.`,feedback:`Send a note to the Rove team.`,dev:`Experimental switches, restarts and resets.`,snippets:`Prompt text you reuse. Type @name in a prompt to insert it.`},connectors:{githubDescription:`Clone, push and open PRs on every machine with one GitHub account`,connect:`Connect`,disconnect:`Disconnect`,disconnectBody:`Signs this machine's gh out of GitHub, for every tool that uses gh and not only Rove. Other machines keep their own sign-ins.`,machines:`Machines`,thisMachine:`This machine`,refresh:`Refresh`,useRove:`Use Rove's account`,loginThere:`Log in there`,codeHint:`Enter this code at GitHub (click the code to copy it)`,openGithub:`Open github.com/login/device`,codeCopied:`Code copied`,syncing:`Signed in. Bringing the other machines along…`,loginFailed:`Sign-in failed: {error}`,dismiss:`Dismiss`,loading:`checking…`,markSame:`✓ same account`,markDifferent:`⚠ @{login}`,markSignedOut:`✗ signed out`,markNoGh:`gh is not installed`,markOutdated:`Rove there is outdated`,markOffline:`offline`,markDenied:`refuses credential changes`,markFailed:`could not check`,detail:`{protocol}, ssh {ssh}`,synced:`{machine} now uses @{login}`},general:{groupInterface:`Interface`,groupFiles:`Files and worktrees`,groupTerminal:`Terminal`,editorNote:`Opens files from the file tree. auto follows $VISUAL / $EDITOR, else nvim / vim / emacs / nano.`,tabStrip:`Tab strip`,scrollback:`Scrollback`},appearance:{groupColours:`Colours`,groupTasks:`Tasks and panes`,groupTerminal:`Terminal app only`,taskColorsNote:`Gives each task its own hue on the working border and in the list.`,colorblindNote:`Shows added and removed lines in blue and red instead of green and red.`,workingBorderNote:`The pane's border while the selected task is working.`,railGroup:`Task list`,railGroupProject:`By project`,railGroupState:`By state`},notifications:{toastNote:`A popup in the corner of this page.`,volume:`Chime volume`},about:{groupRove:`Rove`,daemon:`Daemon`,daemonCurrent:`rove {version}, same build as this page`,daemonStale:"rove {version} is out of date; run `rove daemon restart`",updates:`Updates`,browser:`This browser`,browserHint:`Forget this browser's token. A login token is revoked on the host too.`,signOut:`Sign out`},engines:{enabled:`Offer {name} when picking an engine`,default:`Make {name} the default engine`,namePlaceholder:`Display name (blank = default)`,rename:`Rename`,reset:`Reset to defaults`,remove:`Remove engine`,save:`Save`,cancel:`Cancel`},plugins:{builtIn:`Built in`,builtInHint:`First-party pages. Turning one off removes its entry from the rail.`,registered:`Registered plugins`,empty:`No other plugins registered.`,linked:`linked`,unsupportedPlatform:`unsupported platform`,turnOn:`Install {name}`},feedback:{hint:"Files a public GitHub issue on the Rove repo, through `gh` on the machine running rove. Without a signed-in `gh` you get a prefilled link to open instead.",kindLabel:`Kind`,kindBug:`Bug`,kindIdea:`Idea`,kindQuestion:`Question`,titleLabel:`Title`,body:`What happened`,send:`File issue`,sent:`Filed issue #{number}`,notFiled:`Not filed yet. {hint}`,openLink:`Open the prefilled issue`,report:`Report a problem with an agent`,reportNote:`An agent asks what went wrong, drafts the issue with you and files it.`,reportFailed:`Could not start the conversation.`,reportPrompt:"You are helping the user report a problem with Rove itself (not their own project) as a GitHub issue. First ask what they were doing and what felt wrong: one to three short questions, one at a time. Then collect context: run `rove --version` and `rove daemon status`, and read the last ~50 lines of `${ROVE_HOME_DIR:-$HOME}/.rove/daemon.log` only if the problem could involve the daemon. Draft an issue title and body (what happened, what they expected, steps, relevant output) and show it to the user. Only after they say OK, file it with a heredoc: `rove feedback --kind bug|idea|question --title \"...\" --body-file - <<'EOF'` followed by the body and `EOF`. Then share the issue URL. If it prints a prefilled link instead (gh missing or signed out), give the user that link and tell them to run `gh auth login`."}},prefs:{terminalOnly:`Terminal only: the TUI changes, this page has nothing to draw.`,languageHint:`Display language, shared with the TUI.`,soundHint:`chime, plus a desktop notification while this tab is in the background`,soundVolumeHint:`Plays the new level when you pick it.`,push:`Notify when this page is closed`,pushHint:`This browser gets a notification when a task finishes, needs you or fails, even with no Rove page open. Follows the cross-task switch.`,pushUnsupported:`This browser can't receive push here: it needs https (or localhost), and on iPhone/iPad the page added to the home screen.`,pushBlocked:`Notifications are blocked for this site; allow them in the browser's site settings.`,pushFailed:`Couldn't turn it on: {error}`,zenHint:`Hide the Files pane. The zen chip and ctrl+a z toggle it and write this same setting.`,editInTui:`Edit it in the TUI.`,tierModel:`model`,tierEdit:`Edit`,tierEffort:`Reasoning effort`,classifierConnection:`Classifier connection`,unset:`(none)`,modeAuto:`Auto (follow the browser)`,themePreviewHint:`Point at a theme to see this page in it; click to keep it. The TUI follows.`,themeUser:`yours`,themeInstalled:`Installed`,themeMoreHint:`Not installed yet: point to preview, click to install and switch.`,themeBrowse:`Browse {count} more from rove.run`,themeHide:`Hide themes from rove.run`,themeGet:`get`,themeInstalling:`installing…`,themeInstallFailed:`failed, retry`,themeAgent:`Make one with an agent`,themeAgentHint:`opens a Scratch session; reopen Settings to see what it wrote.`,themeAgentFailed:`couldn't open the session; try again.`,themeAgentPrompt:"Make me a new Rove color theme. Ask me first what look I want, unless I already said. Save it as one JSON file in {dir} (for example {dir}/my-theme.json); the file name is the theme's name. The format is in https://github.com/sma1lboy/rove/blob/main/docs/themes.md and the JSON schema is https://raw.githubusercontent.com/sma1lboy/rove/main/packages/rove/src/tui/context/theme/theme.schema.json. Start from https://raw.githubusercontent.com/sma1lboy/rove/main/packages/rove/src/tui/context/theme/claude.json, give each color slot a { dark, light } pair, and keep text readable on every background. When it's saved, run `rove theme list` to check it loads, then tell me the name: it appears in Settings → Appearance.",resetButton:`Reset`,resetHint:`Clears this Mac's saved settings and task list, restarts the Rove daemon, then reloads this page. Worktrees on disk and engine session history are not touched.`,resetBody:`Wipes ~/.config/rove/state.json and ~/.rove/tasks.json and restarts the daemon, then reloads this page with an empty task list. Worktrees on disk and engine session history are NOT touched.`,restartButton:`Restart`,restartHint:`Stops the Rove daemon and starts a fresh one; this page reconnects on its own. Running engine sessions live in the PTY host and survive it.`,restartBody:`Stops the Rove daemon and starts a fresh one, picking up daemon edits. This page reconnects in a few seconds. Running engine sessions survive.`,keysYaml:`The file is read on the Mac; changes apply when you come back to this page.`},keys:{createFile:`Create keybindings.yaml`,exists:`keybindings.yaml already exists; nothing was changed.`,pluginNoTask:`Select a task before using a plugin chord.`,pluginChords:`Plugin chords`,agent:`Change them with an agent`,agentHint:`opens a Scratch session; reopen Settings to see what it changed.`,agentFailed:`couldn't open the session; try again.`,agentPrompt:"Change my Rove keybindings. Ask me first what I want changed, unless I already said. Edit {path} (create it if it is missing; keep existing entries and comments you were not asked to change). The format, every binding id and its default chord are in https://github.com/sma1lboy/rove/blob/main/docs/KEYBINDINGS.md (see Customizing). Only use binding ids listed there; a direct override replaces that binding's whole chord list, and null unbinds. The file must stay valid YAML: check it parses (for example with `ruby -ryaml -e 'YAML.load_file(ARGV[0])' {path}` or any YAML parser you have). Rove reloads it live, and unknown ids or invalid chords are ignored with a warning, so when you are done tell me what you changed and ask me to reopen Settings → Keybindings: it lists every applied override and every warning."},pages:{attachTooLarge:`{name} is larger than 5 MB`,new:`[ new ]`,routinePause:`[ pause ]`,routineEnable:`[ enable ]`,delete:`[ delete ]`,routinesNeedYou:`NEEDS YOU`,routinesActive:`ACTIVE`,routinesPaused:`PAUSED`,routineSchedule:`Schedule`,routineNext:`Next run`,routineProject:`Project`,routineDelivers:`Delivers to`,routinePrompt:`PROMPT`,routineScript:`SCRIPT`,cronDown:`Decrease {field}`,cronUp:`Increase {field}`,storySave:`save`,storySaveStart:`save & start`,storyStart:`start`,attachHintTouch:`paste a path / a screenshot → inserts an image placeholder`}},fe={settings:{title:`设置`,open:`设置`,sections:{connectors:`连接器`,appearance:`外观`,notifications:`通知`,snippets:`片段`,about:`关于`,voice:`语音`},groups:{preferences:`偏好`,agents:`智能体与工具`,more:`更多`},pages:{general:`语言、布局,以及 Rove 在哪里打开文件、创建 worktree。`,appearance:`主题、颜色,以及任务和面板的外观。`,notifications:`任务完成或需要你时,Rove 怎么提醒。`,keys:`在你自己的文件里重绑快捷键,以及前缀引导的行为。`,engines:`Rove 能启动的编码智能体,以及它如何接入它们。`,autoRouting:`每个深度档位启动什么,以及由谁选择档位。`,voice:`口述:把你说的话变成提示词的识别器。`,connectors:`Rove 使用的账号,本机和你的其他机器。`,plugins:`内置页面和已注册的插件。`,about:`版本、更新,以及此浏览器。`,feedback:`给 Rove 团队留一条意见。`,dev:`实验开关、重启和重置。`,snippets:`常用的提示词文本。在提示词里输入 @名称 即可插入。`},connectors:{githubDescription:`用同一个 GitHub 账号在每台机器上克隆、推送和开 PR`,connect:`连接`,disconnect:`断开`,disconnectBody:`把这台机器的 gh 从 GitHub 退出登录,所有用 gh 的工具都会受影响,不只是 Rove。其他机器保持各自的登录。`,machines:`机器`,thisMachine:`本机`,refresh:`刷新`,useRove:`使用 Rove 的账号`,loginThere:`在那里登录`,codeHint:`到 GitHub 输入这个验证码(点击验证码可复制)`,openGithub:`打开 github.com/login/device`,codeCopied:`验证码已复制`,syncing:`已登录,正在同步其他机器…`,loginFailed:`登录失败:{error}`,dismiss:`关闭`,loading:`检查中…`,markSame:`✓ 同一账号`,markDifferent:`⚠ @{login}`,markSignedOut:`✗ 未登录`,markNoGh:`未安装 gh`,markOutdated:`那边的 Rove 版本过旧`,markOffline:`离线`,markDenied:`拒绝修改凭据`,markFailed:`无法检查`,detail:`{protocol}, ssh {ssh}`,synced:`{machine} 现在使用 @{login}`},general:{groupInterface:`界面`,groupFiles:`文件与 worktree`,groupTerminal:`终端`,editorNote:`从文件树打开文件时用它。auto 跟随 $VISUAL / $EDITOR,否则依次尝试 nvim / vim / emacs / nano。`,tabStrip:`标签栏`,scrollback:`回滚行数`},appearance:{groupColours:`颜色`,groupTasks:`任务与面板`,groupTerminal:`仅终端应用`,taskColorsNote:`让每个任务在工作边框和列表里有自己的色调。`,colorblindNote:`新增和删除的行用蓝色和红色,而不是绿色和红色。`,workingBorderNote:`所选任务工作时,面板边框的样子。`,railGroup:`任务列表`,railGroupProject:`按项目`,railGroupState:`按状态`},notifications:{toastNote:`本页角落里的弹出提示。`,volume:`提示音音量`},about:{groupRove:`Rove`,daemon:`守护进程`,daemonCurrent:`rove {version},与本页同一版本`,daemonStale:"rove {version} 版本过旧;运行 `rove daemon restart`",updates:`更新`,browser:`此浏览器`,browserHint:`忘掉此浏览器的令牌。登录得到的令牌也会在主机上吊销。`,signOut:`退出登录`},engines:{enabled:`选引擎时列出 {name}`,default:`把 {name} 设为默认引擎`,namePlaceholder:`显示名称(留空 = 默认)`,rename:`重命名`,reset:`恢复默认`,remove:`移除引擎`,save:`保存`,cancel:`取消`},plugins:{builtIn:`内置`,builtInHint:`官方页面。关掉后,它在侧栏的入口会消失。`,registered:`已注册的插件`,empty:`没有其他已注册的插件。`,linked:`已链接`,unsupportedPlatform:`平台不支持`,turnOn:`安装 {name}`},feedback:{hint:"通过运行 rove 那台机器上的 `gh`,在 Rove 仓库提一个公开的 GitHub issue。没有登录 `gh` 时会给你一条预填好的链接。",kindLabel:`类型`,kindBug:`缺陷`,kindIdea:`想法`,kindQuestion:`问题`,titleLabel:`标题`,body:`发生了什么`,send:`提交 issue`,sent:`已提交 issue #{number}`,notFiled:`还没提交。{hint}`,openLink:`打开预填好的 issue`,report:`让 agent 帮我报告问题`,reportNote:`由 agent 问清哪里不对,和你一起起草 issue 并提交。`,reportFailed:`没能开始对话。`,reportPrompt:"你在帮用户把 Rove 本身的问题(不是他们自己项目的问题)提成一个 GitHub issue。先问清楚他们当时在做什么、哪里不对劲:一到三个简短的问题,一次问一个。然后收集上下文:运行 `rove --version` 和 `rove daemon status`,只有问题可能和 daemon 有关时才读 `${ROVE_HOME_DIR:-$HOME}/.rove/daemon.log` 的最后约 50 行。起草 issue 的标题和正文(发生了什么、期望什么、复现步骤、相关输出)并展示给用户。用户确认之后才提交,用 heredoc:`rove feedback --kind bug|idea|question --title \"...\" --body-file - <<'EOF'`,接正文,最后一行 `EOF`。然后把 issue 链接发给用户。如果输出的是预填链接(没装 gh 或没登录),把链接给用户,并告诉他运行 `gh auth login`。"}},prefs:{terminalOnly:`仅终端:TUI 会变化,网页没有可画的东西。`,languageHint:`显示语言,与 TUI 共用同一设置。`,soundHint:`提示音;本页在后台时另发桌面通知`,soundVolumeHint:`选中后会播放新音量。`,push:`页面关闭时也通知`,pushHint:`任务完成、需要你或出错时,即使没有打开任何 Rove 页面,这个浏览器也会收到通知。跟随「跨任务通知」开关。`,pushUnsupported:`这个浏览器在这里收不到推送:需要 https(或 localhost),iPhone/iPad 上还要先把页面添加到主屏幕。`,pushBlocked:`这个网站的通知被浏览器屏蔽了,去浏览器的网站设置里允许。`,pushFailed:`没能开启:{error}`,zenHint:`收起文件栏。zen 按钮和 ctrl+a z 切换时会写入同一个设置。`,editInTui:`请在 TUI 中编辑`,tierModel:`模型`,tierEdit:`编辑`,tierEffort:`推理强度`,classifierConnection:`分类器连接`,unset:`(无)`,modeAuto:`自动(跟随浏览器)`,themePreviewHint:`鼠标指向一个主题,整页就换成它看看;点一下就定下来。TUI 也会跟着换。`,themeUser:`自装`,themeInstalled:`已安装`,themeMoreHint:`尚未安装:指向即预览,点一下安装并切换。`,themeBrowse:`浏览 rove.run 上的另外 {count} 个主题`,themeHide:`收起 rove.run 的主题`,themeGet:`安装`,themeInstalling:`安装中…`,themeInstallFailed:`失败,重试`,themeAgent:`让 agent 做一个`,themeAgentHint:`会开一个 Scratch 会话;做好后重新打开设置就能看到。`,themeAgentFailed:`会话没打开,再试一次。`,themeAgentPrompt:"帮我做一个新的 Rove 配色主题。先问我想要什么风格,除非我已经说过。把它存成 {dir} 下的一个 JSON 文件(比如 {dir}/my-theme.json),文件名就是主题名。格式说明见 https://github.com/sma1lboy/rove/blob/main/docs/themes.md,JSON schema 是 https://raw.githubusercontent.com/sma1lboy/rove/main/packages/rove/src/tui/context/theme/theme.schema.json。以 https://raw.githubusercontent.com/sma1lboy/rove/main/packages/rove/src/tui/context/theme/claude.json 为起点,每个颜色槽都给 { dark, light } 两个值,并保证文字在每种背景上都看得清。存好后运行 `rove theme list` 确认能加载,然后告诉我主题名:它会出现在 设置 → 外观 里。",resetButton:`重置`,resetHint:`清空这台 Mac 上保存的设置和任务列表,重启 Rove 守护进程,然后刷新本页。磁盘上的工作树和引擎会话历史不受影响。`,resetBody:`清空 ~/.config/rove/state.json 和 ~/.rove/tasks.json 并重启守护进程,然后刷新本页,任务列表为空。磁盘上的工作树和引擎会话历史不会被动。`,restartButton:`重启`,restartHint:`停止 Rove 守护进程并启动新的进程,本页会自动重连。运行中的引擎会话在 PTY 宿主里,不受影响。`,restartBody:`停止 Rove 守护进程并启动新的进程,载入守护进程的改动。本页几秒后自动重连,运行中的引擎会话不受影响。`,keysYaml:`该文件在 Mac 上读取,改动会在你回到本页时生效。`},keys:{createFile:`创建 keybindings.yaml`,exists:`keybindings.yaml 已存在,未做任何改动。`,pluginNoTask:`使用插件快捷键前请先选中一个任务。`,pluginChords:`插件快捷键`,agent:`让 agent 来改`,agentHint:`会开一个 Scratch 会话;改好后重新打开设置就能看到。`,agentFailed:`会话没打开,再试一次。`,agentPrompt:"帮我改 Rove 的快捷键。先问我想改什么,除非我已经说过。编辑 {path}(不存在就新建;没让你改的条目和注释都保留)。格式、每个 binding id 及其默认按键见 https://github.com/sma1lboy/rove/blob/main/docs/KEYBINDINGS.md(Customizing 一节)。只用那里列出的 binding id;直接覆盖会替换该 binding 的整个按键列表,null 表示解绑。文件必须保持合法 YAML:确认它能解析(比如 `ruby -ryaml -e 'YAML.load_file(ARGV[0])' {path}`,或任何你有的 YAML 解析器)。Rove 会实时重新加载它,未知 id 或无效按键会被忽略并给出警告,所以改完后告诉我改了什么,并请我重新打开 设置 → 快捷键:那里会列出所有生效的覆盖和所有警告。"},pages:{attachTooLarge:`{name} 超过 5 MB`,new:`[ 新建 ]`,routinePause:`[ 暂停 ]`,routineEnable:`[ 启用 ]`,delete:`[ 删除 ]`,routinesNeedYou:`需要处理`,routinesActive:`运行中`,routinesPaused:`已暂停`,routineSchedule:`调度`,routineNext:`下次执行`,routineProject:`项目`,routineDelivers:`投递到`,routinePrompt:`提示词`,routineScript:`脚本`,cronDown:`减小{field}`,cronUp:`增大{field}`,storySave:`保存`,storySaveStart:`保存并启动`,storyStart:`启动`,attachHintTouch:`粘贴路径 / 截图 → 插入图片占位行`}},pe=n({en:()=>me,zh:()=>he}),me={transcript:{you:`You`,agent:`Agent`,system:`System`,copy:`[ copy ]`,copied:`Copied`,export:`[ export .md ]`,findPlaceholder:`Find in this conversation`,findCount:`{at} / {total}`,findNone:`no match`,prev:`[ prev ]`,next:`[ next ]`,older:`[ load earlier ]`,loading:`Reading the conversation…`,empty:`Nothing said yet.`,failed:`failed`,error:`Could not read the conversation: {error}`,retry:`[ retry ]`,noHistory:`This engine keeps no history Rove can read. Showing its terminal tail.`,tail:`Terminal tail`}},he={transcript:{you:`你`,agent:`智能体`,system:`系统`,copy:`[ 复制 ]`,copied:`已复制`,export:`[ 导出 .md ]`,findPlaceholder:`在这段对话中查找`,findCount:`{at} / {total}`,findNone:`没有匹配`,prev:`[ 上一个 ]`,next:`[ 下一个 ]`,older:`[ 加载更早 ]`,loading:`正在读取对话…`,empty:`还没有对话内容。`,failed:`失败`,error:`读不到这段对话:{error}`,retry:`[ 重试 ]`,noHistory:`这个引擎没有 Rove 能读取的历史记录,显示的是它的终端末尾。`,tail:`终端末尾`}},ge=n({en:()=>_e,zh:()=>ve}),_e={usage:{title:`Usage`,open:`Open usage`,range:`last {days} days · tokens are input + output`,perDay:`Per day`,byModel:`By engine and model`,topTasks:`Top tasks`,quota:`Quota`,turns:`{count} turns`,loading:`Loading…`,empty:`No turns recorded in this window.`,failed:`Could not read usage: {error}`,cutoff:`The daemon returns at most {count} turns: {day} and earlier are partial.`,noReader:`{engines}: no turn reader, so their work is not counted here.`,removedTask:`(removed task)`,full:`{engine} {label} {percent}% · at this pace full around {time}, before it resets`,lasts:`{engine} {label} {percent}% · at this pace it lasts until the reset`,window:`{engine} {label} {percent}%`}},ve={usage:{title:`用量`,open:`打开用量`,range:`最近 {days} 天 · token 为输入加输出`,perDay:`按天`,byModel:`按引擎和模型`,topTasks:`用量最高的任务`,quota:`额度`,turns:`{count} 轮`,loading:`加载中…`,empty:`这段时间没有记录到任何一轮。`,failed:`无法读取用量:{error}`,cutoff:`守护进程最多返回 {count} 轮:{day} 及更早的数据不完整。`,noReader:`{engines}:没有轮次读取器,这里不统计它们的工作。`,removedTask:`(已删除的任务)`,full:`{engine} {label} {percent}% · 按当前速度约 {time} 用完,早于重置时间`,lasts:`{engine} {label} {percent}% · 按当前速度可撑到重置`,window:`{engine} {label} {percent}%`}},ye=n({en:()=>be,zh:()=>xe}),be={voice:{say:`Say`,stop:`Stop {time}`,release:`Release {time}`,working:`Hearing…`,hint:`Dictate: tap to start and stop, or hold to talk and let go`,slideToSend:`Slide up to send`,tipSend:`Let go to send`,hold:`Hold to talk`,type:`Type instead`,learned:`Learned {pairs}`,learnedPair:`{spoken} → {term}`,undo:`undo`,unlearned:`Forgotten`,unlearnFailed:`Couldn't undo: the voice sidecar isn't answering`,setup:{recognizer:`Recognizer`,ready:`{model} · ready`,starting:`{model} · starting`,off:`Not set up: the mic stays hidden until one below is`,localTitle:`Local model`,localHint:`Whisper large-v3 on this Mac's GPU, about 3.5 GB to download. Audio never leaves the Mac.`,install:`Install`,installing:`Installing…`,installed:`Installed`,failed:`Install failed: {line}`,use:`Use`,inUse:`In use`,cloudTitle:`Cloud endpoint`,cloudHint:`Any OpenAI-compatible /audio/transcriptions service. The audio and your terms go there; the key stays on the Mac.`,baseURL:`Base URL`,model:`Model`,apiKey:`API key`,keySaved:`Saved; leave empty to keep it`,save:`Save and use`}}},xe={voice:{say:`说`,stop:`停 {time}`,release:`松手 {time}`,working:`在听…`,hint:`口述:点一下开始、再点一下结束,或按住说话、松手结束`,slideToSend:`上滑发送`,tipSend:`松手发送`,hold:`按住说话`,type:`打字`,learned:`记住了 {pairs}`,learnedPair:`{spoken} → {term}`,undo:`撤销`,unlearned:`已撤销`,unlearnFailed:`没能撤销:语音服务没有响应`,setup:{recognizer:`识别器`,ready:`{model} · 就绪`,starting:`{model} · 启动中`,off:`未设置:设置好下面任意一种之前,不显示麦克风`,localTitle:`本地模型`,localHint:`在这台 Mac 的 GPU 上运行 Whisper large-v3,约需下载 3.5 GB。音频不离开这台 Mac。`,install:`安装`,installing:`安装中…`,installed:`已安装`,failed:`安装失败:{line}`,use:`使用`,inUse:`使用中`,cloudTitle:`云端服务`,cloudHint:`任何兼容 OpenAI /audio/transcriptions 的服务。音频和你的术语会发到那里;密钥只存在这台 Mac 上。`,baseURL:`Base URL`,model:`模型`,apiKey:`API 密钥`,keySaved:`已保存;留空则保留原密钥`,save:`保存并使用`}}},Se=n({en:()=>Ce,zh:()=>we}),Ce={workspace:{pickTask:`pick a task on the left`,noTabs:`no open sessions in this task`,startEngine:`Start {engine}`,startSession:`Start session`,tabNotLive:`this tab has no running session`,restored:`restored session, read-only until reopened`,exited:`session ended (exit {code})`,attachFailed:`could not open this session: {message}`,reopen:`Reopen session`,reopening:`Reopening…`,reopenFailed:`could not reopen this session: {message}`,engineExited:`engine exited (code {code})`,retry:`Retry`,engineSettings:`Settings → Engines`,usageLimit:`usage limit reached`,dismiss:`Dismiss`},tab:{shell:`shell`,engine:`engine`},firstRun:{title:`Run several agents side by side`,body:`Every task gets its own worktree and branch, so sessions never step on each other.`,start:`Start your first task`},status:{connecting:`connecting`,retrying:`reconnecting, attempt {count}`,retry:`retry now`,backlog:`Backlog`,inProgress:`In progress`,inReview:`In review`,done:`Done`,canceled:`Canceled`,error:`Error`},connect:{title:`open the link rove printed`,body:"Run `rove --web` and open the link it prints, or paste it here.",placeholder:`http://127.0.0.1:7878/#token=…`,submit:`connect`,invalid:"that is not a `rove --web` link",failing:"can't reach rove. Is `rove --web` still running? After `--rotate-token`, open the new link.",forget:`forget this link`},relay:{unpaired:"open the relay link that `rove --web --preset relay` printed on your computer",connecting:`connecting to your computer through the relay…`,loading:`loading rove…`,offline:"your computer is not answering on this relay. Is `rove --web --preset relay` still running? After `--rotate-relay`, open the new link. Reload to retry.",failed:`can't reach your computer through the relay ({error}). Reload to retry.`},login:{title:`sign in`,body:"Enter the password set with `rove --web --set-password`.",field:`password`,submit:`sign in`,checking:`checking…`,wrong:`that did not work`,locked:`too many tries from here; try again in {minutes} min`,lockedHost:"password login is locked; run `rove --web --unlock` on the host",unreachable:"can't reach rove. Is `rove --web` still running?"},layout:{splitTooSmall:`Not enough room to split here`,railFold:`Fold the task list`,navBack:`Back`,navForward:`Forward`,railUnfold:`Unfold the task list`,dropUnsupported:`Only images and PDFs can be dropped into a terminal`,pasteNoImage:`No image on this browser's clipboard`,pasteNoAccess:`Can't read this browser's clipboard: {error}`,pasteNeedsHttps:`the page needs https or localhost`,refreshTimeout:"The daemon did not come back on the new build in time; check `rove daemon status`",railResize:`Drag to resize the task list, double-click to reset`,composerPlaceholder:`Message the agent`,composerSend:`Send`,composerAttach:`Attach an image or PDF`,composerNotSent:`Not sent: {reason}`,composerOldBridge:`This Mac's rove --web is older than this page; restart it to send from here.`,composerAtMenu:`The agent is waiting on a choice. Answer it with the 1–4 and ⏎ keys below; your message is kept.`,termKeys:`Terminal keys`,termKeyUp:`Up arrow`,termKeyDown:`Down arrow`,termKeyLeft:`Left arrow`,termKeyRight:`Right arrow`,termKeyInterrupt:`Ctrl+C, interrupt`,termKeyEnter:`Enter`,narrowTerminal:`Terminal`}},we={workspace:{pickTask:`从左边选一个任务`,noTabs:`这个任务没有打开的会话`,startEngine:`启动 {engine}`,startSession:`启动会话`,tabNotLive:`这个标签没有在运行的会话`,restored:`已恢复的会话,重新打开前只读`,exited:`会话已结束(退出码 {code})`,attachFailed:`打不开这个会话:{message}`,reopen:`重新打开会话`,reopening:`正在重新打开…`,reopenFailed:`重新打开失败:{message}`,engineExited:`引擎已退出(退出码 {code})`,retry:`重试`,engineSettings:`设置 → 引擎`,usageLimit:`已达到用量上限`,dismiss:`忽略`},tab:{shell:`终端`,engine:`引擎`},firstRun:{title:`让多个智能体并排工作`,body:`每个任务有独立的 worktree 和分支,会话之间互不干扰。`,start:`开始第一个任务`},status:{connecting:`连接中`,retrying:`重连中,第 {count} 次`,retry:`立即重试`,backlog:`待办`,inProgress:`进行中`,inReview:`待评审`,done:`已完成`,canceled:`已取消`,error:`出错`},connect:{title:`打开 rove 打印的链接`,body:"运行 `rove --web`,打开它打印的链接,或者把链接粘贴到这里。",placeholder:`http://127.0.0.1:7878/#token=…`,submit:`连接`,invalid:"这不是 `rove --web` 打印的链接",failing:"连不上 rove。`rove --web` 还在运行吗?用过 `--rotate-token` 的话,请打开新的链接。",forget:`忘掉这个链接`},relay:{unpaired:"打开电脑上 `rove --web --preset relay` 打印的 relay 链接",connecting:`正在通过 relay 连接你的电脑…`,loading:`正在加载 rove…`,offline:"你的电脑没有在这个 relay 上应答。`rove --web --preset relay` 还在运行吗?用过 `--rotate-relay` 的话,请打开新的链接。刷新重试。",failed:`无法通过 relay 连到你的电脑({error})。刷新重试。`},login:{title:`登录`,body:"输入用 `rove --web --set-password` 设置的密码。",field:`密码`,submit:`登录`,checking:`验证中…`,wrong:`登录失败`,locked:`这里尝试次数过多;{minutes} 分钟后再试`,lockedHost:"密码登录已锁定;在主机上运行 `rove --web --unlock`",unreachable:"连不上 rove。`rove --web` 还在运行吗?"},layout:{splitTooSmall:`这里放不下分屏了`,railFold:`折叠任务列表`,navBack:`后退`,navForward:`前进`,railUnfold:`展开任务列表`,dropUnsupported:`终端里只能拖入图片和 PDF`,pasteNoImage:`浏览器剪贴板里没有图片`,pasteNoAccess:`读不到浏览器剪贴板:{error}`,pasteNeedsHttps:`页面要走 https 或 localhost`,refreshTimeout:"守护进程没能及时以新版本重新上线,请检查 `rove daemon status`",railResize:`拖动调整任务列表宽度,双击还原`,composerPlaceholder:`给 agent 发消息`,composerSend:`发送`,composerAttach:`附加图片或 PDF`,composerNotSent:`没发出去:{reason}`,composerOldBridge:`这台 Mac 上的 rove --web 比页面旧,重启它之后才能从这里发送。`,composerAtMenu:`agent 正在等你选择。用下方的 1–4 和 ⏎ 键回答;你的消息已保留。`,termKeys:`终端按键`,termKeyUp:`上方向键`,termKeyDown:`下方向键`,termKeyLeft:`左方向键`,termKeyRight:`右方向键`,termKeyInterrupt:`Ctrl+C 中断`,termKeyEnter:`回车`,narrowTerminal:`终端`}},Te=[re,Se,O,N,ue,S,I,se,ge,pe,j,y,R,T,ye],Ee=Object.assign({},...Te.map(e=>e.en)),De={en:Ee,zh:Object.assign({},...Te.map(e=>e.zh))};function Oe(){try{let e=JSON.parse(localStorage.getItem(`rove.prefs`)??`null`);if(e&&typeof e==`object`&&`prefs`in e){let t=e.prefs;if(t&&typeof t==`object`&&`locale`in t&&(t.locale===`en`||t.locale===`zh`))return t.locale}}catch{}return globalThis.navigator?.language?.toLowerCase().startsWith(`zh`)?`zh`:`en`}var ke=_(Oe());function Ae(){let e=typeof document>`u`?void 0:document.documentElement;e&&(e.lang=ke.get()===`zh`?`zh-CN`:`en`)}Ae(),ke.subscribe(Ae);function je(e,t){let n=e;for(let e of t.split(`.`)){if(!n||typeof n!=`object`||!(e in n))return;n=Reflect.get(n,e)}return typeof n==`string`?n:void 0}function Me(e,t){return t?e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??e)):e}function z(e,t){return Me(je(De[ke.get()],e)??je(Ee,e)??e,t)}function Ne(e,t,n){return Me(je(e[ke.get()],t)??je(e.en,t)??t,n)}function B(){return v(ke)}function Pe(e){let t=e.trim(),n=t.indexOf(`#`),r=n>=0?new URLSearchParams(t.slice(n+1)).get(`token`):t;return r&&/^[A-Za-z0-9_-]{43}$/.test(r)?r:null}var Fe=(...e)=>e.filter(Boolean).join(` `),Ie=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),V=t(((e,t)=>{t.exports=Ie()}))(),Le=({danger:e=!1}={})=>`rounded-sm font-sans text-meta not-italic normal-nums text-paper active:scale-97 motion-reduce:active:scale-none disabled:cursor-default disabled:opacity-50 touch:min-h-10 ${e?`bg-error`:`bg-accent`} px-3.5 py-1.5 font-semibold`,Re={link:`text-accent hover:underline`,filled:Le(),danger:Le({danger:!0}),action:`rounded-sm border-hairline border-line px-3 py-1.25 font-sans text-meta text-ink hover:border-line-active hover:bg-hover active:scale-97 motion-reduce:active:scale-none disabled:cursor-default disabled:opacity-50 touch:min-h-10 focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-focus`,floating:`whitespace-nowrap rounded-sm border-hairline border-line-active bg-surface px-2 py-0.5 font-mono text-meta text-ink shadow-popover`,row:``,pill:`inline-flex flex-none items-center gap-1.5 whitespace-nowrap font-mono text-meta text-muted hover:text-ink aria-[current=true]:text-accent`,card:`flex min-w-0 flex-col gap-1.5 rounded-sm border-hairline p-1.5 text-left focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-focus`},ze={roomy:`relative touch:after:absolute touch:after:content-[''] touch:after:-inset-x-1.5 touch:after:-inset-y-3`,tight:`relative touch:after:absolute touch:after:content-[''] touch:after:-inset-x-0.75 touch:after:-inset-y-0.5`,none:``};function H({variant:e=`link`,hit:t=e===`link`?`roomy`:`none`,className:n,type:r=`button`,...i}){return(0,V.jsx)(`button`,{type:r,className:Fe(Re[e],ze[t],n),...i})}var Be=`text-meta leading-[inherit]`,Ve=`font-normal normal-nums`,He=`touch:relative touch:after:absolute touch:after:content-['']`,Ue=`flex h-full flex-col`,We=e=>[`app relative grid min-h-0 flex-1 grid-rows-[1fr_auto] transition-[grid-template-columns] duration-220 ease-snap motion-reduce:transition-none`,e.surface?`is-narrow narrow-${e.surface} grid-cols-[minmax(0,1fr)]`:e.zen?`grid-cols-[var(--rail-w,minmax(220px,280px))_1fr]`:`grid-cols-[var(--rail-w,minmax(220px,280px))_1fr_var(--panel-w,clamp(300px,28vw,440px))]`,e.zen?`is-zen`:``,e.expanded?`is-panel-expanded`:``,e.folded?`is-rail-folded`:``,e.peek?`is-rail-peek`:``,e.dragging?`is-dragging transition-none`:``].join(` `),Ge=[`relative narrow-content:hidden touch:select-none touch:touch-callout-none`,`wide:overflow-x-clip wide:pt-8.5 wide:[&>:not([data-grip])]:min-w-(--rail-open-w)`,`rail-folded:absolute rail-folded:inset-y-1.5 rail-folded:left-1.5 rail-folded:z-6 rail-folded:col-1 rail-folded:row-1 rail-folded:box-border rail-folded:w-(--rail-open-w) rail-folded:-translate-x-[calc(100%+12px)] rail-folded:rounded-md rail-folded:border-hairline rail-folded:border-line rail-folded:bg-surface rail-folded:shadow-none rail-folded:transition-[translate] rail-folded:duration-200 rail-folded:ease-snap rail-folded:motion-reduce:transition-none rail-folded:[&>:not([data-grip])]:min-w-0`,`rail-peek:translate-none rail-peek:shadow-dialog`].join(` `),Ke=`rail-folded:col-2 panel-expanded:invisible panel-expanded:col-2 narrow-sidebar:hidden`,qe=`rail-folded:col-3 panel-expanded:z-2 panel-expanded:col-[2/-1] panel-expanded:bg-paper panel-expanded:pl-2`,Je=`${He} touch:after:-inset-x-1.5 touch:after:-inset-y-3`,Ye=`flex items-center gap-2`,Xe=`px-1.5 py-0.5 text-meta font-bold ${He} touch:after:-inset-2.5 touch:after:-bottom-1`,Ze=`flex items-center rounded-sm px-2.5 py-1.5 text-muted aria-selected:bg-inset aria-selected:text-ink [&_svg]:size-4 ${He} touch:after:-inset-x-px touch:after:-top-2 touch:after:-bottom-1.5`,Qe=`keys-only m-0 overflow-hidden px-3.5 py-1 text-meta text-ellipsis whitespace-nowrap`,$e=e=>`shortcut-badge absolute top-1/2 z-8 -translate-y-1/2 cursor-pointer rounded-sm border-hairline border-accent bg-surface px-1.25 py-px text-meta text-accent ${e?`right-full mr-1.5`:`right-1`}`,et=`relative min-w-0 flex-1`,tt={left:[`[border-left:var(--hairline)_solid_var(--line)]`,`[border-left:var(--hairline)_solid_var(--accent)]`],top:[`[border-top:var(--hairline)_solid_var(--line)]`,`[border-top:var(--hairline)_solid_var(--accent)]`]},nt=(e,t)=>tt[e][+!!t],rt=(e,t)=>{let n=`split-leaf absolute box-border flex min-h-0 min-w-0 ${t.active?`is-active`:``}`,r=t.active?`border-accent`:``;return e===`box`?`${n} rounded-[calc(var(--radius)-1px)] border-hairline ${t.active?`border-accent`:`border-line`}`:e===`line`?`${n} ${t.left?nt(`left`,t.active):``} ${t.top?nt(`top`,t.active):``} ${t.left||t.top?r:``}`:e===`rail`?`${n} ${nt(`left`,t.active)} ${r} ${t.top?`[--mt:6px]`:``}`:e===`rule`?`${n} ${nt(`top`,t.active)} ${r} ${t.left?`[--ml:8px]`:``}`:n},it=(e,t)=>`absolute right-2 z-3 bg-paper px-1 font-mono text-meta ${Ve} ${e?`-top-2`:`top-0.5`} ${t?`text-accent`:`text-subtle`}`,at=`hidden gap-1 overflow-x-auto scrollbar-none [border-top:var(--hairline)_solid_var(--line)] bg-surface px-1.5 py-1 touch:flex`,ot=e=>`h-8 min-w-max touch-manipulation [flex:1_1_0] rounded-sm border-hairline bg-inset px-0.5 py-0 font-mono text-meta ${Ve} ${e?`border-accent text-accent`:`border-line text-ink`}`,st=`prefix-guide fixed bottom-19 left-3 z-40 max-h-[60vh] w-[min(560px,calc(100vw-24px))] overflow-y-auto rounded-sm border-hairline border-line bg-surface px-3 py-2 text-meta shadow-popover motion-safe:animate-rise-in [&.is-leaving]:pointer-events-none [&.is-leaving]:animate-sink-out`,ct=`min-w-[3ch] text-accent`,lt=`mb-1.5 flex justify-between gap-4`,ut=`columns-[2_220px] gap-x-5`,dt=`mb-2 break-inside-avoid`,ft=`flex w-full gap-2.5 px-0 py-px text-left text-ink enabled:hover:bg-hover disabled:cursor-default touch:py-2.5`,pt=`mx-0 my-2 overflow-x-hidden overflow-y-auto scrollbar-none`,mt=e=>`flex w-full min-w-0 justify-between gap-4 rounded-sm px-1.5 py-0.75 text-left font-mono text-meta ${Ve} whitespace-pre text-ink touch:py-2.5 ${e?`is-selected bg-hover`:``}`,ht=`min-w-0 overflow-hidden text-ellipsis`,gt=`w-full rounded-none border-0 [border-bottom:var(--hairline)_solid_var(--line)] bg-transparent px-1.5 py-2 font-mono text-meta font-normal normal-nums text-ink focus-visible:outline-none`,_t=`flex justify-between gap-4`,vt=`flex flex-col items-end ${Be}`,yt=`mt-2 max-h-[52vh] overflow-y-auto`,bt=`mb-2.5`,xt=`m-0 mb-1 font-sans text-meta font-bold normal-nums text-accent`,St=`flex gap-3 py-px ${Be}`,Ct=`min-w-[14ch] text-ink`,wt=`flex flex-wrap items-baseline gap-3 [border-bottom:var(--hairline)_solid_var(--warning)] bg-inset px-3.5 py-1 text-meta text-warning [&_span]:text-muted`,Tt=`keys-only fixed bottom-[34px] left-3 z-40 min-w-55 rounded-sm border-hairline border-line bg-surface px-3 py-2 font-mono text-meta ${Ve} text-ink shadow-popover`,Et=e=>`mb-0.5 ${e?`motion-safe:[animation:sink-out_140ms_ease-in_var(--hud-out,3860ms)_forwards]`:`motion-safe:[animation:rise-in_140ms_ease-out,sink-out_140ms_ease-in_var(--hud-out,3860ms)_forwards]`}`,Dt=`m-auto font-mono text-meta ${Ve} text-subtle`,Ot=`${Dt} flex flex-col items-center gap-3 [&_p]:m-0`,kt=`workspace row-1 flex min-h-0 min-w-0 flex-col gap-1.5 px-1 pt-2 pb-1`,At=`flex min-h-0 flex-1 overflow-hidden rounded-md border-hairline border-line bg-paper focus-within:border-focus`,jt=`working-flow:border-transparent working-flow:[background:linear-gradient(var(--paper),var(--paper))_0_0/100%_100%_padding-box,linear-gradient(90deg,var(--line),var(--task-ink,var(--focus)),var(--line),var(--task-ink,var(--focus)),var(--line))_0_0/300%_100%_border-box] working-flow:motion-safe:animate-flow-border`,Mt=`relative flex min-w-0 flex-1 flex-col`,Nt=`relative flex min-h-0 min-w-0 flex-1 flex-col`,Pt=`term-host relative min-h-0 min-w-0 flex-1 touch-none overflow-hidden`,Ft=`pointer-events-none absolute inset-0 z-5 h-full w-full`,It=`relative h-full [&.is-leaving]:pointer-events-none [&.is-leaving]:absolute [&.is-leaving]:inset-0 [&.is-leaving]:z-6`,Lt=`pointer-events-none absolute inset-0 z-1 overflow-hidden [&_pre]:m-0 [&_pre>div>div]:overflow-hidden [&_pre>div>div]:[height:var(--row-h,1.15em)] [&_pre>div>div]:[line-height:var(--row-h,1.15em)]`,Rt=e=>`absolute right-2.5 bottom-2.5 z-5 flex items-center gap-3 rounded-sm border-hairline border-line bg-inset px-2.5 py-1.25 font-mono text-meta ${Ve} ${e?`text-error`:`text-muted`} [&_.link:disabled]:pointer-events-none [&_.link:disabled]:opacity-60`,zt=`col-span-full touch:[&_.link]:after:inset-[-2px_-6px_-4px] flex min-w-0 items-center gap-2 [border-top:var(--hairline)_solid_var(--line)] bg-surface px-3 py-1 font-mono text-meta ${Ve} whitespace-nowrap text-muted`,Bt=e=>`size-1.5 rounded-full ${e?`bg-warning`:`bg-subtle`}`,Vt=`grid min-w-0 grid-cols-[auto_minmax(2rem,1fr)_auto] gap-x-2.5 gap-y-1 pt-2 pb-1 font-sans whitespace-nowrap text-meta text-subtle normal-nums`,Ht=`col-span-3 grid cursor-pointer grid-cols-subgrid items-center text-left hover:text-ink`,Ut={ok:`text-muted`,warn:`text-warning`,crit:`text-error`},Wt={ok:`text-success`,warn:`text-warning`,crit:`text-error`},Gt=e=>`relative h-0.75 overflow-hidden rounded-full bg-[color-mix(in_srgb,currentColor_18%,transparent)] after:absolute after:inset-y-0 after:left-0 after:w-(--fill) after:rounded-full after:bg-current after:content-[''] ${Wt[e]??Wt.ok}`,Kt=`font-mono text-title font-bold normal-nums tracking-[0.02em] whitespace-nowrap`,qt=`text-accent`,Jt=`grid h-full place-items-center p-6`,Yt=`flex w-[min(460px,100%)] flex-col gap-3 rounded-md border-hairline border-line bg-surface p-6 [&_p]:m-0`,Xt=`flex flex-col gap-2 p-3.5 text-left font-sans text-meta ${Ve} leading-[1.5]`,Zt=`mx-2.5 my-3 font-mono text-meta text-subtle`,Qt=`font-sans text-meta text-subtle`,$t=`m-0 max-h-[38vh] overflow-auto rounded-sm border-hairline border-line bg-paper px-3 py-2.5 font-mono text-meta leading-[1.5] whitespace-pre-wrap wrap-anywhere`,en=e=>`flex w-full flex-col gap-0.5 rounded-sm px-2.5 py-1.5 text-left focus-visible:bg-accent-soft focus-visible:outline-none ${e?`bg-accent-soft`:``}`,tn=`mx-0 mt-1 mb-0 max-h-47 list-none overflow-y-auto rounded-sm border-hairline border-line bg-inset p-0.5 font-mono text-meta`,nn=e=>`block w-full cursor-pointer overflow-hidden rounded-[calc(var(--radius-sm)-2px)] px-2 py-0.75 text-left text-ellipsis whitespace-nowrap [font:inherit] touch:py-2.5 ${e.cursor?`bg-hover`:``} ${e.accent?`text-accent`:e.cursor?`text-ink`:`text-muted`}`,rn=`m-0 font-sans text-meta font-medium normal-nums`,an=`link text-accent [&:hover]:underline touch-hit`,on=`rounded-sm border-hairline border-line bg-paper font-mono text-meta font-normal normal-nums text-ink focus-visible:border-line-active focus-visible:outline-none`,sn=`${on} w-full px-2.5 py-2`,cn=`actions flex items-center justify-end gap-3.5`;function ln({failing:e=!1}){B();let[t,n]=(0,g.useState)(``),[r,i]=(0,g.useState)(!1);return(0,V.jsx)(`div`,{className:Jt,children:(0,V.jsxs)(`form`,{className:Yt,onSubmit:e=>{e.preventDefault();let n=Pe(t);if(!n){i(!0);return}o(n),window.location.reload()},children:[(0,V.jsxs)(`span`,{className:Kt,children:[(0,V.jsx)(`span`,{className:qt,children:`[`}),` rove `,(0,V.jsx)(`span`,{className:qt,children:`]`})]}),(0,V.jsx)(`h1`,{className:`${rn} text-muted`,children:z(`connect.title`)}),(0,V.jsx)(`p`,{className:e?`text-error`:`text-muted`,children:z(e?`connect.failing`:`connect.body`)}),(0,V.jsx)(`input`,{className:sn,autoFocus:!0,spellCheck:!1,placeholder:z(`connect.placeholder`),value:t,onChange:e=>{n(e.target.value),i(!1)}}),r&&(0,V.jsx)(`p`,{className:`text-error`,children:z(`connect.invalid`)}),(0,V.jsxs)(`div`,{className:cn,children:[e&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>{s(),window.location.reload()},children:z(`connect.forget`)}),(0,V.jsx)(`button`,{type:`submit`,className:Le(),children:z(`connect.submit`)})]})]})})}function un(e,t){let n=e.filter(e=>e.rare&&!e.children);if(n.length===0)return[...e];let r=e.filter(e=>!n.includes(e)),i={label:t,section:`more`,children:n.map(({section:e,...t})=>t)},a=r.findIndex(e=>e.section===`danger`);return a<0?[...r,i]:[...r.slice(0,a),i,...r.slice(a)]}function dn(e,t){for(let n of e){if(n.binding===t)return n;let e=n.children&&dn(n.children,t);if(e)return e}}var fn=_(null),U=_(null),pn=null;U.subscribe(()=>{let e=document.activeElement;if(U.get()!==null){!pn&&e instanceof HTMLElement&&!e.closest(`.dialog`)&&(pn=e);return}let t=pn;pn=null,window.setTimeout(()=>{t?.isConnected&&(!document.activeElement||document.activeElement===document.body)&&t.focus()},0)});var mn=_([]),hn=_(null),gn=_(null),_n=_(null),vn=_(null),yn=_(!0),bn=_(null);function xn(e,t,n,r,i){Sn({...e?{repo:e}:{},...t?{baseBranch:t}:{},...n?{machine:n}:{},...r?{prompt:r}:{},...i?{ungrouped:!0}:{}})}function Sn(e){hn.set(null),U.set(null),bn.set(e)}function Cn(){let e=new URLSearchParams(window.location.search),t=e.get(`prompt`);if(t===null)return;let n=e.get(`repo`)??void 0;e.delete(`prompt`),e.delete(`repo`);let r=e.toString();history.replaceState(null,``,`${window.location.pathname}${r?`?${r}`:``}${window.location.hash}`),xn(n,void 0,void 0,t)}var wn=1,Tn=4e3,En=8e3;function W(e,t=`info`,n){let r=wn++;mn.set([...mn.get(),{id:r,text:e,tone:t,...n?{action:n}:{}}].slice(-3)),window.setTimeout(()=>On(r),n?En:Tn)}function Dn(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}function On(e){if(!mn.get().some(t=>t.id===e&&!t.leaving))return;let t=()=>mn.set(mn.get().filter(t=>t.id!==e));if(Dn()){t();return}mn.set(mn.get().map(t=>t.id===e?{...t,leaving:!0}:t)),window.setTimeout(t,140)}function kn(){U.set(null)}var An=_(null),jn=null;function Mn(){An.get()!==`drag`&&(jn!==null&&window.clearTimeout(jn),An.set(`slide`),jn=window.setTimeout(()=>An.set(null),240))}function Nn(e){jn!==null&&window.clearTimeout(jn),jn=null,An.set(e?`drag`:null)}var Pn=`flex flex-col gap-1.5`,Fn=`min-h-18 max-h-[50vh] leading-[1.45]`,In=`flex flex-wrap gap-1.5`,Ln=(e=!1,t=!1)=>`rounded-sm border-hairline px-2.5 py-1 font-mono text-meta font-normal not-italic normal-nums ${e?`border-accent bg-accent-soft text-ink`:`border-line hover:bg-hover ${t?`text-subtle`:`text-muted`}`}`,Rn=`m-0 list-none p-0`,zn=`overlay fixed inset-0 z-20 grid justify-items-center [align-items:start] bg-(--scrim) pt-[12vh] motion-safe:animate-fade-in [&.is-leaving]:pointer-events-none [&.is-leaving]:animate-fade-out short:pt-3`,Bn=(e=!1)=>`dialog static m-0 flex max-h-[76vh] ${e?`w-[min(620px,calc(100vw-32px))]`:`w-[min(440px,calc(100vw-32px))]`} flex-col gap-3 rounded-md border-hairline border-line bg-surface px-5 py-4.5 text-inherit shadow-dialog focus:outline-none motion-safe:animate-rise-in [.is-leaving_&]:animate-sink-out short:max-h-[calc(100dvh-24px)] short:px-4 short:py-3`,Vn=`flex items-center justify-between gap-3`,Hn=`m-0 min-w-0 font-sans text-title leading-[1.4] font-semibold normal-nums text-ink wrap-anywhere`,Un=`grid size-6 place-items-center -my-1 mr-[-6px] ml-0 rounded-sm text-display leading-none text-muted hover:bg-inset hover:text-ink focus-visible:bg-inset focus-visible:text-ink touch:relative touch:after:absolute touch:after:-inset-2.5 touch:after:content-['']`,Wn=`dialog-body -m-0.5 flex min-h-0 flex-col gap-3 overflow-y-auto p-0.5 [&_p]:m-0 [&>.actions]:sticky [&>.actions]:-bottom-0.5 [&>.actions]:bg-surface [.dialog-body+div>&]:mt-3.5`,Gn=(e=!1)=>`menu fixed z-30 flex max-h-[calc(100vh-16px)] ${e?`min-w-40`:`min-w-50`} origin-top-left flex-col overflow-y-auto rounded-md border-hairline border-line bg-surface p-1 shadow-popover motion-safe:animate-menu-in [&.is-leaving]:pointer-events-none [&.is-leaving]:animate-sink-out`,Kn=e=>`flex items-baseline justify-between gap-6 rounded-[calc(var(--radius)-4px)] px-2.5 py-1.25 text-left text-body leading-[inherit] touch:py-2.5 ${e.danger&&e.selected?`bg-error text-paper`:e.selected||e.open?`bg-hover`:``} ${e.danger&&!e.selected?`text-error`:``} ${e.selected?`forced-colors:outline-2 forced-colors:-outline-offset-2 forced-colors:outline-[Highlight] forced-colors:outline-solid`:``}`,qn=`font-mono text-meta normal-nums`,Jn=e=>`${qn} ${e.danger&&e.selected?`text-inherit`:e.selected?`text-muted`:`text-subtle`} touch:hidden!`,Yn=e=>`${qn} ${e?`text-ink`:`text-subtle`}`,Xn=`${qn} text-accent`,Zn=`fixed right-3.5 bottom-8.5 z-40 flex flex-col gap-1.5 narrow:pointer-events-none narrow:top-12 narrow:bottom-auto narrow:left-3.5 narrow:items-end narrow:*:pointer-events-auto`,Qn=`flex cursor-default flex-wrap items-baseline justify-between gap-x-3`,$n=e=>`toast max-w-105 cursor-pointer rounded-sm border-hairline border-line bg-inset px-3 py-1.5 text-left font-sans text-meta normal-nums wrap-anywhere ${e?`text-error`:`text-ink`} motion-safe:animate-rise-in [&.is-leaving]:pointer-events-none [&.is-leaving]:animate-sink-out`,er=`text-subtle`,tr=`flex items-baseline justify-between gap-3`,nr=`mt-1`,rr=`m-0 flex list-none flex-col gap-0.5 p-0`,ir=`flex min-w-0 items-baseline gap-2.5`,ar=`flex-none font-mono text-meta font-normal normal-nums min-w-[3ch] text-right text-subtle`,or=`flex items-baseline gap-1`,sr=`min-w-0 flex-1`,cr=`flex-none min-w-[calc(9ch+0.5rem)] whitespace-nowrap pr-2 text-right font-mono text-meta`,lr=`font-mono [&:hover]:text-accent`,ur={row:`min-h-6.5 touch:min-h-10`,file:`min-h-6 font-mono text-meta touch:min-h-10`,"file-narrow":`min-h-9 font-mono text-meta`,pane:`min-h-5.5 touch:min-h-10`};function dr(e){let t=e.stack?`flex-col items-stretch gap-0.5 px-2.5 py-1.5`:`items-center gap-2 px-2 py-0.75`,n=e.moving?`bg-accent-soft`:e.selected?`bg-menu`:`hover:bg-hover data-menu-open:bg-hover`;return`relative flex w-full rounded-sm text-left active:scale-97 motion-reduce:active:scale-none ${t} ${ur[e.size??`row`]} ${n}`}var fr=`row-title min-w-0 flex-1 truncate`,pr=`row-title min-w-0 flex-auto truncate text-(length:--fs-title)`,mr=`running-shimmer:bg-[linear-gradient(90deg,var(--ink)_0%,var(--ink)_35%,var(--accent)_50%,var(--ink)_65%,var(--ink)_100%)] running-shimmer:bg-size-[300%_100%] running-shimmer:bg-clip-text running-shimmer:text-transparent running-shimmer:animate-shimmer`,hr=`w-[1ch] flex-none text-center font-mono`,gr=`grid w-[2ch] flex-none place-items-center font-mono text-subtle`,_r=`flex flex-none gap-1.5 font-mono text-meta`;function G(e){return e instanceof Error?e.message:String(e)}function vr(e){B();let t=(0,g.useRef)(null);return(0,g.useEffect)(()=>{t.current&&!t.current.contains(document.activeElement)&&t.current.focus();let e=e=>{e.key===`Escape`&&(e.preventDefault(),kn())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,V.jsx)(`div`,{className:zn,onMouseDown:e=>e.target===e.currentTarget&&kn(),children:(0,V.jsxs)(`dialog`,{ref:t,tabIndex:-1,open:!0,className:Bn(e.wide),"aria-label":e.title,children:[(0,V.jsxs)(`div`,{className:Vn,children:[(0,V.jsx)(`h1`,{className:Hn,children:e.title}),(0,V.jsx)(`button`,{type:`button`,className:Un,"aria-label":z(`dialog.close`),title:z(`dialog.close`),onClick:kn,children:`×`})]}),e.children]})})}function yr(){let[e,t]=(0,g.useState)(!1),[n,r]=(0,g.useState)(null);return{busy:e,error:n,setError:r,submit:async e=>{t(!0),r(null);try{await e(),kn()}catch(e){r(G(e))}finally{t(!1)}}}}function br(e){let[t,n]=(0,g.useState)(e.initial??``),{busy:r,error:i,submit:a}=yr();return(0,V.jsx)(vr,{title:e.title,children:(0,V.jsxs)(`form`,{className:Wn,onSubmit:n=>{n.preventDefault(),(t.trim()||e.allowEmpty)&&a(()=>e.onSubmit(t.trim()))},children:[e.multiline?(0,V.jsx)(`textarea`,{className:`${sn} ${Fn}`,"aria-label":e.title,autoFocus:!0,rows:4,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())},onFocus:e=>e.currentTarget.setSelectionRange(t.length,t.length)}):(0,V.jsx)(`input`,{className:sn,"aria-label":e.title,autoFocus:!0,spellCheck:!1,value:t,onChange:e=>n(e.target.value),onFocus:e=>e.currentTarget.select()}),i&&(0,V.jsx)(`p`,{className:`text-error`,children:i}),(0,V.jsx)(Cr,{busy:r,submitLabel:e.submitLabel})]})})}function xr(e){let{busy:t,error:n,setError:r,submit:i}=yr(),[a,o]=(0,g.useState)(!1),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(!1),d=(0,g.useRef)(null);(0,g.useEffect)(()=>d.current?.focus(),[]);let f=t=>void i(async()=>{try{a&&e.escalate?await e.escalate.run(l):await(t&&e.secondary?e.secondary.onConfirm():e.onConfirm())}catch(n){throw!a&&e.escalate?.when(n)&&(o(!0),c(n),u(t),r(G(n))),n}});return(0,V.jsx)(vr,{title:a&&e.escalate?.title||e.title,children:(0,V.jsxs)(`div`,{className:Wn,children:[(0,V.jsx)(`p`,{className:`whitespace-pre-line text-muted`,children:a&&e.escalate?.body?e.escalate.body(s):e.body}),n&&!(a&&e.escalate?.body)&&(0,V.jsx)(`p`,{className:`text-error`,children:n}),(0,V.jsxs)(`div`,{className:cn,children:[(0,V.jsx)(`button`,{type:`button`,className:an,onClick:kn,children:z(`dialog.cancel`)}),e.secondary&&!a&&(0,V.jsx)(`button`,{type:`button`,className:Le({danger:!0}),disabled:t,onClick:()=>f(!0),children:e.secondary.label}),(0,V.jsx)(`button`,{ref:d,type:`button`,className:Le({danger:!0}),disabled:t,onClick:()=>f(!1),children:a&&e.escalate?e.escalate.label:e.confirmLabel})]})]})})}function Sr(e){let t=Math.max(0,e.choices.findIndex(t=>t.value===e.current)),[n,r]=(0,g.useState)(t),{busy:i,error:a,submit:o}=yr(),s=t=>void o(()=>e.onPick(t));return(0,g.useEffect)(()=>{let t=t=>{if(t.key===`ArrowDown`||t.key===`j`)r(t=>Math.min(e.choices.length-1,t+1));else if(t.key===`ArrowUp`||t.key===`k`)r(e=>Math.max(0,e-1));else if(t.key===`Enter`){let t=e.choices[n];t&&s(t.value)}else return;t.preventDefault()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)}),(0,V.jsx)(vr,{title:e.title,children:(0,V.jsxs)(`div`,{className:Wn,children:[(0,V.jsx)(`ul`,{className:Rn,children:e.choices.map((t,a)=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":t.value===e.current,disabled:i,className:dr({selected:a===n}),onMouseEnter:()=>r(a),onClick:()=>s(t.value),children:[(0,V.jsx)(`span`,{className:`${hr} text-accent`,children:t.value===e.current?`●`:` `}),(0,V.jsx)(`span`,{className:fr,children:t.label})]})},t.value))}),a&&(0,V.jsx)(`p`,{className:`text-error`,children:a})]})})}function Cr({busy:e,submitLabel:t}){return(0,V.jsxs)(`div`,{className:cn,children:[(0,V.jsx)(`button`,{type:`button`,className:an,onClick:kn,children:z(`dialog.cancel`)}),(0,V.jsx)(`button`,{type:`submit`,className:Le(),disabled:e,children:t})]})}var wr={cancel:`Cancel`,failureHint:"Run `{command}` for diagnosis and next steps.",toastFailureHint:`Next: run rove doctor`,loading:`Loading…`,create:`create`,confirm:`Confirm`,paneCrash:{title:`This pane crashed`,hint:`The error was logged to client.log. Retry, or restart Rove if it keeps happening.`,regionTitle:`The {region} hit an error`,regionHint:"The rest of Rove keeps working. Retry below; if it persists, inspect client.log and run `rove doctor`.",retry:`[ retry ]`,region:{sidebar:`task list`,workspace:`workspace`,files:`file tree`,page:`page`}},rename:{defaultTitle:`Rename task`,defaultFieldLabel:`TITLE`,footerHint:`enter {submitLabel} · esc cancel`,defaultSubmitLabel:`rename`},prompt:{fieldLabel:`input`,submitLabel:`submit`}},Tr={cancel:`取消`,failureHint:"运行 `{command}` 查看诊断和后续步骤。",toastFailureHint:`下一步:运行 rove doctor`,loading:`加载中…`,create:`创建`,confirm:`确认`,paneCrash:{title:`此面板已崩溃`,hint:`错误已记录到 client.log。可重试;若反复出现请重启 Rove。`,regionTitle:`{region}出错了`,regionHint:"Rove 的其余部分仍可正常使用。请在下方重试;若问题持续,请查看 client.log 并运行 `rove doctor`。",retry:`[ 重试 ]`,region:{sidebar:`任务列表`,workspace:`工作区`,files:`文件树`,page:`页面`}},rename:{defaultTitle:`重命名任务`,defaultFieldLabel:`名称`,footerHint:`enter {submitLabel} · esc 取消`,defaultSubmitLabel:`重命名`},prompt:{fieldLabel:`输入`,submitLabel:`提交`}},Er={fix:{hint:"{count} finding(s) above have a known fix — run `{command}` to review them one by one",none:`fix: nothing to fix — no known remediation applies to this report`,header:`fixes — each one asks before running:`,willRun:`will run: {command}`,confirmPrompt:`apply this fix? [y/N] `,done:`✓ done`,failed:`✗ exited with code {code}; inspect the command output above, then rerun rove doctor`,skipped:`· skipped`,nonInteractive:`no interactive terminal — nothing was executed; run the commands above yourself`,manualHeader:`manual steps — doctor prints these but never runs them:`,daemonRestartWhy:`safe to run: engine sessions live in the separate PTY host and survive a daemon restart`,daemonStale:`restart the daemon — it is running an older build than this CLI`,daemonDown:`start the daemon — it is not running`,hooksDown:`restart the daemon to re-establish the engine hook channel`,inspectStale:`restart the daemon — it predates the hook-channel check`,skillInstallWhy:`safe to run: installs skill files only; re-running is idempotent`,skillMissing:`install the Rove agent skill`,skillStale:`update the Rove agent skill to the version this build expects`,spawnHelper:`restore the exec bit on node-pty's spawn-helper — every node-pty PTY spawn fails without it`,spawnHelperWhy:"safe to run: chmod on two prebuilt binaries; idempotent, and `bun install` does the same",resetWhy:`stops the daemon, the PTY host, and every live session — not undoable, so doctor only prints it`,resetDaemonWedged:`the daemon process is alive but unreachable (wedged)`,resetPty:`the PTY host process is alive but its socket is unreachable (wedged)`,resetPtyStale:`the PTY host is still running an older build than the one you launched`,resetLegacy:`pre-v0.8 tmux sessions are still holding processes and memory`,orphans:`{count} process(es) outlived the PTY session that spawned them and are still running`,orphansWhy:`kills processes, which is not undoable — and a task you backgrounded on purpose looks the same; read the list, then run it yourself`,engineTabs:`engine tabs may hold a stale daemon socket path`,engineTabsAction:`close and reopen the affected engine tabs in the TUI`,engineTabsWhy:`kills that tab's live engine session — your call, not doctor's`,staleInstall:`the install this Rove runs from no longer exists on disk`,staleInstallAction:`npm install -g @sma1lboy/rove, then relaunch Rove`,staleInstallWhy:`doctor cannot reinstall Rove over the running process — a human has to, then relaunch`,humanOnlyWhy:`doctor does not install software or log in to accounts for you`,git:`git is not on PATH`,gitAction:`install git with your OS package manager`,noEngine:`no usable engine — no engine CLI is both installed and logged in`,noEngineAction:`install an engine CLI (claude, codex, copilot, or kimi) and log in`,noEngineLogin:`no usable engine — an engine CLI is installed but not signed in`,noEngineLoginAction:`run one of the installed engine CLIs ({list}) in a shell and complete its login`,windowsNode:`Node.js is missing — the Windows PTY host cannot start`,windowsNodeAction:`install Node.js from https://nodejs.org`,staleBun:`the Bun running Rove is older than this build supports — terminals will not paint`,staleBunAction:"upgrade Bun (`bun upgrade`, `brew upgrade bun`, or `npm install -g bun@latest`), then relaunch Rove"}},Dr={fix:{hint:"上面有 {count} 项发现存在已知修法 — 运行 `{command}` 逐条查看",none:`fix: 无可修项 — 本次报告没有匹配到已知修法`,header:`修复项 — 每一条都会先询问再执行:`,willRun:`将执行: {command}`,confirmPrompt:`执行这条修复吗? [y/N] `,done:`✓ 完成`,failed:`✗ 退出码 {code};请检查上方命令输出,再运行 rove doctor`,skipped:`· 已跳过`,nonInteractive:`没有交互终端 — 未执行任何命令; 请自行运行上面的命令`,manualHeader:`人工步骤 — doctor 只打印, 永远不会替你执行:`,daemonRestartWhy:`可安全执行: 引擎会话在独立的 PTY host 里, daemon 重启后仍然存活`,daemonStale:`重启 daemon — 它运行的构建比当前 CLI 旧`,daemonDown:`启动 daemon — 它当前没有在运行`,hooksDown:`重启 daemon 以重建引擎 hook 通道`,inspectStale:`重启 daemon — 它的版本早于 hook 通道检查`,skillInstallWhy:`可安全执行: 只写入 skill 文件; 重复运行是幂等的`,skillMissing:`安装 Rove agent skill`,skillStale:`把 Rove agent skill 更新到当前构建期望的版本`,spawnHelper:`恢复 node-pty spawn-helper 的可执行位 — 缺了它 node-pty 的每次 PTY 启动都会失败`,spawnHelperWhy:"可安全执行: 只对两个预编译二进制做 chmod; 幂等, `bun install` 也会做同样的事",resetWhy:`会停掉 daemon、PTY host 和所有活动会话 — 不可撤销, 所以 doctor 只打印`,resetDaemonWedged:`daemon 进程存活但无法连接 (卡死)`,resetPty:`PTY host 进程存活但 socket 无法连接 (卡死)`,resetPtyStale:`PTY host 仍在跑比你启动的版本更旧的构建`,resetLegacy:`v0.8 之前的 tmux 会话仍占用进程和内存`,orphans:`有 {count} 个进程比启动它们的 PTY 会话活得更久, 现在还在运行`,orphansWhy:`会杀进程, 不可撤销 — 而且你故意放后台的任务看起来一模一样; 先看清单, 再自己执行`,engineTabs:`引擎 tab 可能持有过期的 daemon socket 路径`,engineTabsAction:`在 TUI 里关闭并重开受影响的引擎 tab`,engineTabsWhy:`会杀掉该 tab 的活动引擎会话 — 由你决定, doctor 不代劳`,staleInstall:`当前 Rove 所在的安装已从磁盘删除`,staleInstallAction:`npm install -g @sma1lboy/rove, 然后重新启动 Rove`,staleInstallWhy:`doctor 无法在运行中的进程上重装 Rove — 需要人工重装后重新启动`,humanOnlyWhy:`doctor 不会替你安装软件或登录账号`,git:`PATH 上找不到 git`,gitAction:`用你的系统包管理器安装 git`,noEngine:`没有可用引擎 — 没有任何引擎 CLI 同时满足已安装且已登录`,noEngineAction:`安装任一引擎 CLI(claude、codex、copilot 或 kimi)并登录`,noEngineLogin:`没有可用引擎 — 引擎 CLI 已安装, 但没有登录`,noEngineLoginAction:`在 shell 里运行已安装的引擎 CLI({list})之一并完成登录`,windowsNode:`缺少 Node.js — Windows PTY host 无法启动`,windowsNodeAction:`从 https://nodejs.org 安装 Node.js`,staleBun:`运行 Rove 的 Bun 版本低于本构建的要求 — 终端不会有任何输出`,staleBunAction:"升级 Bun (`bun upgrade` / `brew upgrade bun` / `npm install -g bun@latest`), 然后重新启动 Rove"}},Or={mentionNoEngine:`No engine session in this task — nothing to mention into. Open one with ctrl+t.`,tabs:{all:`All`,changes:`Changes`},actions:{zen:`Zen`,createPR:`Ask agent to create PR`,diffAll:`[D] diff everything`},legend:{changes:`M modified · A added · D deleted · ? untracked`},scope:{working:`scope: working tree`,branch:`scope: vs {base}`,toggleHint:`b to toggle`,noBase:`no base ref for branch scope (no origin/HEAD, main or master)`},empty:{noTask:`(no task — press n to create)`,noFiles:`(empty worktree)`,noChanges:`(no changes — clean worktree)`},error:{retryHint:`press r to retry`,notGitRepo:"not a git repository — run `git init` here, or open a task in a repo",pathMissing:`the worktree directory is gone — reopen the task to re-create it`,permissionDenied:`permission denied reading the worktree — check the directory's owner and mode`,gitNotInstalled:`git is not on PATH — install it with your OS package manager`,gitFailed:"git command failed; run `git status` in this worktree to diagnose"},toast:{prOnTargetBranch:`Already on the target branch ({branch}) — ask the agent to create the PR from a task branch`,noPausedOperation:`Nothing to resolve — no merge, rebase or cherry-pick is paused here`,conflictReadFailed:`Git could not read the conflicted files. Run git status in this worktree, then retry.`,conflictSendFailed:`Could not send the conflict prompt. Open an engine tab in this task, then retry.`,ciNoFailingChecks:`No failing check logs to read — the run may have expired, or the checks are no longer red`,ciChecksUnavailable:"gh could not read this PR's checks: {detail}. Run `gh auth status`, then retry."}},kr={mentionNoEngine:`这个任务没有引擎会话——没有地方可以提及。用 ctrl+t 开一个。`,tabs:{all:`全部`,changes:`改动`},actions:{zen:`专注模式`,createPR:`让 agent 创建 PR`,diffAll:`[D] 查看全部改动`},legend:{changes:`M 已修改 · A 已添加 · D 已删除 · ? 未跟踪`},scope:{working:`范围:工作区改动`,branch:`范围:对比 {base}`,toggleHint:`按 b 切换`,noBase:`分支范围没有基准 ref(没有 origin/HEAD、main 或 master)`},empty:{noTask:`(暂无任务 — 按 n 创建)`,noFiles:`(worktree 为空)`,noChanges:`(无改动 — worktree 干净)`},error:{retryHint:`按 r 重试`,notGitRepo:"不是 git 仓库——在这里执行 `git init`,或改为打开仓库里的任务",pathMissing:`worktree 目录已不存在——重新打开该任务会重建它`,permissionDenied:`读取 worktree 时权限不足——请检查该目录的属主和权限`,gitNotInstalled:`PATH 上找不到 git——请用系统包管理器安装`,gitFailed:"git 命令失败;请在此 worktree 运行 `git status` 诊断"},toast:{prOnTargetBranch:`当前就在目标分支({branch})— 请在任务分支上让 agent 创建 PR`,noPausedOperation:`没有要解决的冲突——这里没有暂停中的合并、变基或拣选`,conflictReadFailed:`Git 无法读取冲突文件。请在此 worktree 运行 git status,然后重试。`,conflictSendFailed:`无法发送冲突提示。请在此任务中打开一个引擎标签页,然后重试。`,ciNoFailingChecks:`没有可读的失败检查日志——运行记录可能已过期,或检查已不再是红的`,ciChecksUnavailable:"gh 读不到这个 PR 的检查状态:{detail}。请运行 `gh auth status`,然后重试。"}},Ar={retryHint:`Correct the field above, then choose Create again.`,title:`New task`,legend:`{enter} · tab complete/fields · ctrl+[ ] mode · ctrl+e engine · esc cancel`,enterCreate:`enter create`,enterNext:`enter next field`,tabs:{existing:`For Existing`,clone:`For New Repo`,adopt:`Adopt Worktree`},field:{mode:`MODE`,tier:`DEPTH`,engine:`ENGINE`,effort:`EFFORT`,repo:`REPO`,fromBranch:`FROM BRANCH`,prompt:`FIRST MESSAGE`,extras:`ALSO INCLUDE`,gitUrl:`GIT URL`,parentDir:`PARENT DIR`,folderName:`FOLDER NAME`,baseBranch:`BASE BRANCH`,adoptFilter:`FILTER (PATH GLOB)`,opens:`OPENS`},intent:{task:`a new task worktree`,project:`the project itself`},placeholder:{folderName:`auto from url`,adoptFilter:`* — type e.g. feature-* to narrow`,prompt:`Describe a task or ask a question (optional)`},hint:{modeCycle:`ctrl+[ ]`,engineCycle:`ctrl+e`,remembered:`(remembered — next clone defaults to this dir)`,currentDir:`(current dir)`,noBranchesFound:`(no local branches found — typed text will be used as ref)`,noMatchBranch:`(no match — typed text will be used as ref)`,scanningWorktrees:`scanning worktrees…`,extrasNone:`(none — enter picks a repo; the first is the primary)`,extrasPicked:`{count} more repo(s) in this task`},picker:{moreAbove:`↑ {count} more`,moreBelow:`↓ {count} more`},scroll:{moreAbove:`↑ {count} more rows`,moreBelow:`↓ {count} more rows`},open:{failed:`Couldn't open the project: {error}`},adopt:{repoLine:`repo: {path}`,repoNone:`(none)`,noUnlinked:`no unlinked worktrees — every git worktree here is already a task`,noMatch:`no worktrees match the filter`,hintSelected:`{count} selected · enter toggles · ctrl+a all · Create imports`,hintDefault:`enter toggles · ctrl+a all · Create imports the highlighted row`,summaryAll:`Adopted {count} worktree(s)`,summaryPartial:`Adopted {done}/{total} worktrees — the rest failed (see log)`,summaryNone:`Couldn't adopt any worktree: {error}`},clone:{progressFallback:`Cloning…`,progressInto:`Cloning into {target}…`},button:{create:`Create`,cloning:`Cloning…`},error:{gitUrlRequired:`git URL is required`,gitUrlInvalid:`does not look like a git URL: {url}`,folderRequired:`folder name is required`,folderHasSeparator:`folder name cannot contain path separators`,parentRequired:`parent directory is required`,parentNotFound:`parent directory does not exist: {path}`,parentNotDir:`not a directory: {path}`,targetExists:`target already exists: {path}`,cloneFailed:`git clone failed: {error}`,noAdoptable:`no adoptable worktrees to import`,repoAmbiguous:`more than one saved repo is named {name} — pick the one you mean from the list`,tierUnavailable:`{tier} points at engine {engine}, which is not available here — retarget it in Settings → Auto routing`}},jr={retryHint:`请修正上方字段,然后再次选择创建。`,title:`新建任务`,legend:`{enter} · tab 补全/切字段 · ctrl+[ ] 切模式 · ctrl+e 引擎 · esc 取消`,enterCreate:`enter 创建`,enterNext:`enter 下一个字段`,tabs:{existing:`已有仓库`,clone:`克隆新仓库`,adopt:`接管 Worktree`},field:{mode:`模式`,tier:`深度`,engine:`引擎`,effort:`推理强度`,repo:`仓库`,fromBranch:`基准分支`,prompt:`第一条消息`,extras:`同时包含`,gitUrl:`git 地址`,parentDir:`父目录`,folderName:`文件夹名`,baseBranch:`基准分支`,adoptFilter:`过滤(路径 glob)`,opens:`打开`},intent:{task:`新建任务 worktree`,project:`项目本身`},placeholder:{folderName:`自动从地址推导`,adoptFilter:`* — 输入如 feature-* 来缩小范围`,prompt:`描述一个任务,或提个问题(可选)`},hint:{modeCycle:`ctrl+[ ]`,engineCycle:`ctrl+e`,remembered:`(已记住 — 下次克隆默认使用此目录)`,currentDir:`(当前目录)`,noBranchesFound:`(未找到本地分支 — 将直接使用输入文本作为 ref)`,noMatchBranch:`(无匹配 — 将直接使用输入文本作为 ref)`,scanningWorktrees:`正在扫描 worktree…`,extrasNone:`(未选 — 回车选一个仓库,第一个是主仓库)`,extrasPicked:`任务里另含 {count} 个仓库`},picker:{moreAbove:`↑ 还有 {count} 项`,moreBelow:`↓ 还有 {count} 项`},scroll:{moreAbove:`↑ 上方还有 {count} 行`,moreBelow:`↓ 下方还有 {count} 行`},open:{failed:`无法打开项目:{error}`},adopt:{repoLine:`仓库:{path}`,repoNone:`(无)`,noUnlinked:`没有未关联的 worktree — 此仓库所有 git worktree 均已是任务`,noMatch:`没有 worktree 匹配此过滤条件`,hintSelected:`已选 {count} 项 · enter 切换选中 · ctrl+a 全选 · 创建 导入`,hintDefault:`enter 切换选中 · ctrl+a 全选 · 创建 将导入高亮行`,summaryAll:`已接管 {count} 个 worktree`,summaryPartial:`已接管 {done}/{total} 个 worktree — 其余失败(详见日志)`,summaryNone:`没有 worktree 接管成功:{error}`},clone:{progressFallback:`克隆中…`,progressInto:`正在克隆到 {target}…`},button:{create:`创建`,cloning:`克隆中…`},error:{gitUrlRequired:`git 地址不能为空`,gitUrlInvalid:`不像是有效的 git 地址:{url}`,folderRequired:`文件夹名不能为空`,folderHasSeparator:`文件夹名不能包含路径分隔符`,parentRequired:`父目录不能为空`,parentNotFound:`父目录不存在:{path}`,parentNotDir:`不是目录:{path}`,targetExists:`目标路径已存在:{path}`,cloneFailed:`git clone 失败:{error}`,noAdoptable:`没有可接管的 worktree`,repoAmbiguous:`有多个已保存仓库都叫 {name} — 请从列表中选择你要的那个`,tierUnavailable:`{tier} 指向的引擎 {engine} 在这台机器上不可用——去 设置 → 自动路由 重新指定`}},Mr={engineTitle:`Engine and account`,engineChecking:`Checking installed engines and accounts…`,engineReady:`✓ Ready to start a task`,engineMissing:`No usable engine yet`,engineUsable:`✓ {engine}: ready`,engineSignedOut:`! {engine}: installed, not signed in`,engineSetup:"Install an engine using docs.rove.run/rove/engines, then run its CLI and sign in. Run `rove doctor --fix` to check setup; Settings → Engines lists integrations.",engineContinue:`❯ Continue to optional setup`,engineLegend:`enter continue · esc skip optional setup`,quickStart:`Start a task with a prompt`,quickIntent:`Creates an isolated worktree and branch. Use {key} for the full task dialog.`,tabShared:`New conversations share this task’s files`,tabIsolated:`{key}: new task, isolated worktree`,title:`Welcome to Rove`,subtitle:`Managed tasks get isolated worktrees and branches. Directory and project tasks reuse existing files.`,completionsLabel:`Shell completions for {shell}`,completionsExplain:`Tab-completes rove subcommands. One line is added to your shell config.`,skillLabel:`Rove agent skill`,skillExplain:`Lets the coding agents on this machine drive Rove themselves: start tasks, read other sessions, message them.`,optionYes:`Install`,recommended:`recommended`,stepCounter:`{n} / {total}`,optionNo:`Not now`,queued:`Queued — installs when you quit Rove`,skillInstalled:`Installed for {engines}`,skillFailed:`Install failed: {reason}`,skillNoEngines:`No coding agent here takes the skill`,skipped:`Skipped`,installFailed:`! {item} failed: {reason}. Retry: {command} (or quit Rove again).`,legend:`↑↓ select · enter confirm · esc close`,keysTitle:`Keyboard basics`,keysBare:`Bare keys act in the focused pane — {nav} moves, {open} opens.`,keysOnePress:`A few one-press chords are Rove's own — {newTab} new tab, {focusNext} next pane.`,keysPrefix:`{prefix} opens the command map — hold it a beat and a guide appears.`,keysHelp:`{help} shows the full live reference anytime.`,keysNext:`Next: Settings → Engines lists every engine and installs its activity hooks.`,keysLegend:`enter finish`,appliedCompletions:`✓ completions hooked into {path} (takes effect in new shells)`,keptCompletions:`· {path} already has a completions block — left untouched`},Nr={engineTitle:`引擎与账户`,engineChecking:`正在检查引擎与账户…`,engineReady:`✓ 可以开始任务`,engineMissing:`还没有可用的引擎`,engineUsable:`✓ {engine}:可用`,engineSignedOut:`! {engine}:已安装,未登录`,engineSetup:"从 docs.rove.run/rove/engines 安装引擎,然后运行其 CLI 并登录。运行 `rove doctor --fix` 检查配置;设置 → 引擎 可查看集成。",engineContinue:`❯ 继续可选设置`,engineLegend:`enter 继续 · esc 跳过可选设置`,quickStart:`输入提示词开始任务`,quickIntent:`创建独立 worktree 和分支。按 {key} 打开完整任务对话框。`,tabShared:`新对话共享当前任务的文件`,tabIsolated:`{key}:新建任务,使用独立 worktree`,title:`欢迎使用 Rove`,subtitle:`托管任务使用独立的 worktree 和分支;目录与项目任务复用现有文件。`,completionsLabel:`{shell} 的 shell 补全`,completionsExplain:`让 rove 子命令支持 Tab 补全,会在你的 shell 配置里加一行。`,skillLabel:`Rove agent skill`,skillExplain:`让本机的编码 agent 自己操作 Rove:开任务、读其他会话、给它们发消息。`,optionYes:`安装`,recommended:`推荐`,stepCounter:`{n} / {total}`,optionNo:`跳过`,queued:`已排队 — 退出 Rove 后安装`,skillInstalled:`已为 {engines} 安装`,skillFailed:`安装失败:{reason}`,skillNoEngines:`这台机器上没有能装 skill 的编码 agent`,skipped:`已跳过`,installFailed:`! {item} 安装失败:{reason}。重试:{command}(或再次退出 Rove)。`,legend:`↑↓ 选择 · enter 确认 · esc 关闭`,keysTitle:`键盘基础`,keysBare:`裸键作用于当前聚焦面板 — {nav} 移动,{open} 打开。`,keysOnePress:`少量单次快捷键属于 Rove 自己 — {newTab} 新标签页,{focusNext} 切换面板。`,keysPrefix:`{prefix} 打开命令层 — 按住稍等会出现命令指南。`,keysHelp:`随时按 {help} 查看完整的实时键位表。`,keysNext:`接下来:设置 → 引擎 里列出每个引擎,并可在那里安装它们的活动钩子。`,keysLegend:`enter 完成`,appliedCompletions:`✓ 补全已写入 {path}(新开的 shell 生效)`,keptCompletions:`· {path} 里已有补全配置 — 未改动`},Pr={title:`Quick task · {repoLabel}`,promptLabel:`PROMPT`,promptPlaceholder:`what should this task do?`,attemptsLabel:`ATTEMPTS`,engineLabel:`ENGINE`,branchLabel:`BRANCH`,legend:`enter create · tab fields · ctrl+e engine · ctrl+v attach · esc cancel`,startedRound:`Started {count} attempts`,roundPartial:`Started {ok}/{count} attempts — {failed} failed`},Fr={title:`快速任务 · {repoLabel}`,promptLabel:`提示词`,promptPlaceholder:`这个任务要做什么?`,attemptsLabel:`尝试次数`,engineLabel:`引擎`,branchLabel:`分支`,legend:`enter 创建 · tab 切换字段 · ctrl+e 引擎 · ctrl+v 附件 · esc 取消`,startedRound:`已启动 {count} 个尝试`,roundPartial:`已启动 {ok}/{count} 个尝试 —— {failed} 个失败`},Ir={cancel:`cancel`,forgetProjectTitle:`Remove project "{title}"?`,forgetProjectBody:"Forgets it from the projects list. The repo, its branches, worktrees, and any tasks under it stay on disk — re-add it with `rove add`.",forgetProjectConfirm:`remove`,deleteTitle:`Remove session "{title}"?`,deleteTitleDir:`Remove session "{title}"?`,deleteBodyDir:`Ends this session and closes all its tabs. Nothing on disk changes: the folder and its files stay.`,deleteBodyMain:`Ends this session and closes all its tabs. The project stays in your list and nothing on disk changes: the repo, its branches and worktrees stay.`,deleteBodyTask:`Ends this session, closes all its tabs and removes its worktree folder. The git branch stays.`,deleteBodyTaskBranch:`Ends this session, closes all its tabs and removes its worktree folder, and its git branch if it is merged. An unmerged branch stays.`,deleteConfirm:`remove`,childrenTitle:`"{title}" has {count} child tasks`,childrenBody:`Promote moves them up one level and keeps their worktrees and sessions. Remove with children removes them too.`,childrenPromote:`promote children`,childrenCascade:`remove with children`,childrenBodyMain:`Ends this session and closes its tabs; nothing on disk changes. Its child tasks keep running unless you delete them too.`,childrenKeepMain:`remove session`,childrenCascadeMain:`remove with children`,forceDeleteTitle:`"{title}" has uncommitted changes`,forceDeleteConfirm:`force remove`},Lr={cancel:`取消`,forgetProjectTitle:`从列表中移除项目「{title}」?`,forgetProjectBody:"只是把它从项目列表里忘掉。仓库、分支、worktree 以及它下面的任务都会留在磁盘上——之后可以用 `rove add` 重新加回来。",forgetProjectConfirm:`移除`,deleteTitle:`移除会话「{title}」?`,deleteTitleDir:`移除会话「{title}」?`,deleteBodyDir:`结束这个会话,关闭它的所有标签页。磁盘上什么都不动:文件夹和里面的文件都会保留。`,deleteBodyMain:`结束这个会话,关闭它的所有标签页。项目仍留在列表里,磁盘上什么都不动:仓库、分支和 worktree 都会保留。`,deleteBodyTask:`结束这个会话,关闭它的所有标签页,并删除它的 worktree 文件夹。git 分支会保留。`,deleteBodyTaskBranch:`结束这个会话,关闭它的所有标签页,删除它的 worktree 文件夹,以及已合并的 git 分支。未合并的分支会保留。`,deleteConfirm:`移除`,childrenTitle:`「{title}」有 {count} 个子任务`,childrenBody:`提升会把它们上移一级,并保留它们的 worktree 和会话。连同子任务移除会把它们一并移除。`,childrenPromote:`提升子任务`,childrenCascade:`连同子任务移除`,childrenBodyMain:`结束这个会话并关闭它的标签页,磁盘上什么都不动。它的子任务会继续运行,除非你也选择把它们一并删除。`,childrenKeepMain:`移除会话`,childrenCascadeMain:`连同子任务移除`,forceDeleteTitle:`「{title}」有未提交的改动`,forceDeleteConfirm:`强制移除`},Rr={noDaemonWorktree:"No daemon running — can't create the worktree. Start it with `rove daemon restart`.",noEditor:`No editor found — set ROVE_OPEN_EDITOR (e.g. 'code', 'cursor', 'nvim')`,openWorktreeFailed:`Couldn't open worktree with {label}`,worktreeErrorDeleting:`This task is being deleted — it can't be opened`,worktreeErrorNotGit:"This project isn't a git repo yet — a task needs a git branch. Run `git init` (+ a first commit) in the project, then open the task. Non-git support is coming.",worktreeErrorGeneric:`Couldn't create the worktree: {message}`,scratchAdopted:`Adopted into {repo} — save it as a project from New Task if you want it in the picker`,scratchOpenFailed:`Couldn't open a scratch shell: {message}`,scratchCloseFailed:`Couldn't close the scratch task: {message}`,worktreeGoneTitle:`Worktree for "{title}" is gone`,worktreeGoneBody:`Closed {count} tab(s). The branch {branch} is still there — reopen the task to re-create its worktree.`,checksPassingTitle:`Checks passed for "{title}"`,checksFailingTitle:`Checks failed for "{title}"`,checksResolvedBody:`PR {pr} on {branch}`,copiedId:`Copied task ID {text}`,copiedTab:`Copied tab address {text}`,copiedBranch:`Copied branch {text}`,copiedPath:`Copied path {text}`,copyFailed:`Couldn't reach a clipboard — no clipboard command on PATH, and this terminal refused OSC 52.`,forgetProjectFailed:`Couldn't remove the project — it stays in the projects list: {error}`,deleteFailed:`Couldn't delete "{title}" — the task and its worktree are untouched: {error}`,createFailed:`Couldn't create the task — nothing was created: {error}`,forkFailed:`Couldn't fork the task — the original is untouched: {error}`,forkLeftBehind:`Started from the last commit — uncommitted work stays in the original task ({reason})`,childFailed:`Couldn't start the new conversation — the current one is untouched: {error}`,renameFailed:`Couldn't rename the task — it keeps its old title: {error}`,renameBranchFailed:`Couldn't rename the branch — it stays "{branch}": {error}`,switchEngineFailed:`Couldn't switch the engine — the task keeps the one it had: {error}`,setStatusFailed:`Couldn't set the status — it stays {status}: {error}`,pinFailed:`Couldn't change the pin — the task keeps its current place: {error}`,moveFailed:`Couldn't move the task — it keeps its current place: {error}`,moveToProjectFailed:`Couldn't move the task to that project — it stays where it was: {error}`,movedToProject:`Moved to {project} — the session and its checkout stay where they are`,issueChatFailed:`Couldn't start the issue chat — the issue is unchanged: {error}`,inboxMarkReadFailed:`Couldn't mark it read — it stays in the inbox: {error}`,inboxDismissFailed:`Couldn't dismiss it — it stays in the inbox: {error}`,engineSwitched:`Engine → {engine} (applies on reopen)`,statusSet:`Status → {status}`},zr={noDaemonWorktree:"守护进程未运行——无法创建 worktree。请运行 `rove daemon restart` 启动它。",noEditor:`未找到编辑器——请设置 ROVE_OPEN_EDITOR(如 'code'、'cursor'、'nvim')`,openWorktreeFailed:`无法用 {label} 打开 worktree`,worktreeErrorDeleting:`该任务正在删除中——无法打开`,worktreeErrorNotGit:"该项目尚非 git 仓库——任务需要 git 分支。请在项目中执行 `git init`(+ 首次提交)后再打开任务。非 git 项目的支持即将推出。",worktreeErrorGeneric:`无法创建 worktree:{message}`,scratchAdopted:`已归入 {repo}——若要出现在项目选择器里,可在新建任务中保存为项目`,scratchOpenFailed:`无法打开临时 Shell:{message}`,scratchCloseFailed:`无法关闭临时任务:{message}`,worktreeGoneTitle:`"{title}" 的 worktree 已消失`,worktreeGoneBody:`已关闭 {count} 个标签页。分支 {branch} 仍在——重新打开该任务会重建 worktree。`,checksPassingTitle:`「{title}」的 PR 检查已通过`,checksFailingTitle:`「{title}」的 PR 检查失败了`,checksResolvedBody:`PR {pr},分支 {branch}`,copiedId:`已复制任务 ID {text}`,copiedTab:`已复制标签页地址 {text}`,copiedBranch:`已复制分支 {text}`,copiedPath:`已复制路径 {text}`,copyFailed:`无法访问剪贴板——PATH 上没有剪贴板命令,这个终端也拒绝了 OSC 52。`,forgetProjectFailed:`移除项目失败——它仍在项目列表里:{error}`,deleteFailed:`删除「{title}」失败——任务和它的 worktree 都没有被改动:{error}`,createFailed:`创建任务失败——什么都没有被创建:{error}`,forkFailed:`fork 任务失败——原任务没有被改动:{error}`,forkLeftBehind:`已从最近一次提交开始——未提交的改动留在原任务里({reason})`,childFailed:`无法开始新对话——当前对话没有被改动:{error}`,renameFailed:`重命名任务失败——它仍用原来的标题:{error}`,renameBranchFailed:`重命名分支失败——它仍是「{branch}」:{error}`,switchEngineFailed:`切换引擎失败——任务仍使用原来的引擎:{error}`,setStatusFailed:`设置状态失败——它仍是 {status}:{error}`,pinFailed:`修改置顶状态失败——任务仍在原来的位置:{error}`,moveFailed:`移动任务失败——它仍在原来的位置:{error}`,moveToProjectFailed:`移到该项目失败——任务仍在原来的项目:{error}`,movedToProject:`已移到 {project}——会话和它的工作目录都没有动`,issueChatFailed:`启动议题会话失败——议题没有被改动:{error}`,inboxMarkReadFailed:`标记为已读失败——它仍留在收件箱里:{error}`,inboxDismissFailed:`忽略失败——它仍留在收件箱里:{error}`,engineSwitched:`引擎 → {engine}(重新打开后生效)`,statusSet:`状态 → {status}`},Br={nav:{kanban:`Kanban`,automations:`Routines`,issues:`Issues`,mods:`Mods`},header:{scratch:`Ungrouped`},search:{placeholder:`fuzzy filter`},sort:{label:`sort: {mode}`,hint:`Change the order (manual → newest → attention → name)`,reorderSwitched:`Reorder needs manual order — switched`,modes:{default:`manual`,recent:`newest`,attention:`attention`,name:`name`}},menu:{open:`Open`,collapseChildren:`Collapse children`,expandChildren:`Expand children`,newChat:`New conversation`,newShell:`New shell`,continueEngine:`Continue in another engine…`,newScratchChat:`New conversation (no folder)`,newTask:`New task`,forgetProject:`Remove project`,fieldNotes:`Field notes`,rename:`Rename`,pin:`Pin`,unpin:`Unpin`,reorder:`Reorder row`,moveToTop:`Move to top`,reorderProject:`Reorder project`,runAgain:`Run again`,setStatus:`Set status`,moveToProject:`Move to project…`,copyId:`Copy task ID`,copyBranch:`Copy branch name`,copyPath:`Copy path`,openEditor:`Open in editor`,renameBranch:`Rename branch`,changeEngine:`Change engine`,fixChecks:`Fix failing checks`,rerunChecks:`Re-run failed checks`,syncBase:`Sync with base`,resolveConflicts:`Resolve conflicts`,land:`Land into base branch`,archive:`Archive`,unarchive:`Unarchive`,delete:`Remove session`},status:{backlog:`Backlog`,inProgress:`In progress`,inReview:`In review`,done:`Done`,canceled:`Canceled`,error:`Error`},setStatus:{title:`Set status`,current:`current`,footer:`↑↓ choose · enter set · esc cancel`},moveToProject:{title:`Move to project`,empty:"No other project yet — add one first, or run `rove api update --project PATH`",footer:`↑↓ choose · enter move · esc cancel`},sync:{done:`Merged {base} into this worktree`,alreadyCurrent:`Already up to date with {base}`,conflict:`Merge conflict — resolve then commit: {files}`,dirty:`Commit the worktree's changes first, then sync: {files}`,failed:`Sync failed: {error}`},archive:{done:`Archived {title}. Its worktree, branch and sessions are untouched`,restored:`Restored {title}`,busyTitle:`Archive while it's working?`,busyBody:`An engine in {title} is still working or waiting on you. Archiving hides the row without stopping it.`,busyConfirm:`Archive anyway`,failed:`Couldn't archive: {error}`,restoreFailed:`Couldn't restore: {error}`},rerun:{started:`Re-running failed checks`,none:`No failed checks to re-run`,external:`These checks didn't run on GitHub Actions; re-run them where they ran`,refused:`Re-run refused: {detail}`},changeEngine:{title:`Change engine`,current:`current`,effortLabel:`EFFORT`,noEffort:`engine default`,footer:{engine:`↑↓ engine`,effort:`←→ effort`,model:`tab model`,set:`enter set`,cancel:`esc cancel`}},engineModel:{label:`MODEL`,placeholder:`engine default`,loading:`listing models…`},tier:{swift:`swift`,standard:`standard`,deep:`deep`,manual:`manual`},tierDesc:{swift:`small, well-specified edits — the fastest, cheapest setting`,standard:`everyday feature work and bug fixes`,deep:`hard problems: unclear root causes, large refactors, design decisions`},runAgain:{title:`Run again`,source:`Brief from “{title}”`,hint:`Runs this brief again in a new task, on its own branch and worktree.`,confirm:`Run again`,footer:`↑↓ scroll · ←→ choose · enter run · esc cancel`},fieldNotes:{title:`Field notes`,empty:"No field notes for this repo yet — agents file one with `rove api note`.",loading:`Loading…`,footer:`↑↓ scroll · esc close`,footerDeletable:`↑↓ select · d delete · esc close`,confirmDelete:{title:`Delete this field note?`,body:`“{text}” stops being injected into new sessions on this repo. Nothing else changes.`}},confirm:Ir,renameBranch:{title:`Rename branch`,fieldLabel:`branch`},moveChip:` move`,recentJump:`Recent: {title}`,routinesRow:`{count} routine sessions`,routinesRowOne:`1 routine session`,archivedRow:`Archived · {count}`,machine:{connecting:`connecting…`,offline:`offline`,unsupported:`unsupported`,mismatch:`protocol mismatch`,filesElsewhere:`on {host}`,filesHint:`{host} is unreachable right now; its files show here again when it reconnects.`,terminalElsewhere:`This task runs on {host}, which is unreachable right now.`,runsOn:`on {host}`,noTabs:`No tabs on {host} yet — prefix t opens one there.`},empty:{noMatchSearch:`No matching tasks — esc to clear.`,noActiveProject:`No active tasks for this project.`,noActive:`No active tasks — create one above.`},activity:{working:`working`,rateLimited:`rate limited`,permissionNeeded:`needs permission`,error:`error`,dead:`engine exited`},group:{waitingOnYou:`needs you`,landing:`ready to land`,readyForReview:`needs review`,working:`working`},subtitle:{noTracking:`no activity tracking`,materializing:`materializing`,deleting:`deleting`,deleteFailed:`delete failed`},reBranch:{title:`Set branch`,fieldLabel:`branch`,hintNoBranches:`(no local branches — type a new name)`,hintNoMatch:`(no match — enter renames to this branch)`,footer:`↑↓ pick · enter set · esc cancel`},toast:Rr},Vr={nav:{kanban:`看板`,automations:`例行任务`,issues:`议题`,mods:`Mods`},header:{scratch:`未分组`},search:{placeholder:`模糊搜索`},sort:{label:`排序:{mode}`,hint:`切换排序(手动 → 最新 → 关注 → 名称)`,reorderSwitched:`调整顺序需手动排序,已切换`,modes:{default:`手动`,recent:`最新`,attention:`关注`,name:`名称`}},menu:{open:`打开`,collapseChildren:`折叠子任务`,expandChildren:`展开子任务`,newChat:`新建会话`,newShell:`新建终端`,continueEngine:`换个引擎继续…`,newScratchChat:`新建会话(无文件夹)`,newTask:`新建任务`,forgetProject:`移除项目`,fieldNotes:`现场笔记`,rename:`重命名`,pin:`置顶`,unpin:`取消置顶`,reorder:`重新排序`,moveToTop:`移到顶部`,reorderProject:`调整项目顺序`,runAgain:`重新运行`,setStatus:`设置状态`,moveToProject:`移到其他项目…`,copyId:`复制任务 ID`,copyBranch:`复制分支名`,copyPath:`复制路径`,openEditor:`在编辑器中打开`,renameBranch:`重命名分支`,changeEngine:`切换引擎`,fixChecks:`修复失败的检查`,rerunChecks:`重新运行失败的检查`,syncBase:`同步基础分支`,resolveConflicts:`让 agent 解决冲突`,land:`合入基础分支`,archive:`归档`,unarchive:`取消归档`,delete:`移除会话`},status:{backlog:`待办`,inProgress:`进行中`,inReview:`待评审`,done:`已完成`,canceled:`已取消`,error:`出错`},setStatus:{title:`设置状态`,current:`当前`,footer:`↑↓ 选择 · enter 设置 · esc 取消`},moveToProject:{title:`移到其他项目`,empty:"还没有其他项目——先添加一个,或运行 `rove api update --project PATH`",footer:`↑↓ 选择 · enter 移动 · esc 取消`},sync:{done:`已把 {base} 合并进该工作树`,alreadyCurrent:`已经和 {base} 同步`,conflict:`合并冲突——解决后提交:{files}`,dirty:`请先提交工作树里的改动,再同步:{files}`,failed:`同步失败:{error}`},archive:{done:`已归档 {title}。工作树、分支和会话都保持原样`,restored:`已恢复 {title}`,busyTitle:`它还在工作,仍要归档?`,busyBody:`{title} 里有引擎仍在工作或在等你。归档只隐藏这一行,不会停止它。`,busyConfirm:`仍要归档`,failed:`归档失败:{error}`,restoreFailed:`恢复失败:{error}`},rerun:{started:`正在重新运行失败的检查`,none:`没有可重新运行的失败检查`,external:`这些检查不是在 GitHub Actions 上运行的,请到它们运行的地方重新运行`,refused:`无法重新运行:{detail}`},changeEngine:{title:`切换引擎`,current:`当前`,effortLabel:`推理强度`,noEffort:`引擎默认`,footer:{engine:`↑↓ 引擎`,effort:`←→ 强度`,model:`tab 模型`,set:`enter 设置`,cancel:`esc 取消`}},engineModel:{label:`模型`,placeholder:`引擎默认`,loading:`正在列出模型…`},tier:{swift:`轻快`,standard:`标准`,deep:`深入`,manual:`手动`},tierDesc:{swift:`小而明确的改动——最快、最省的一档`,standard:`日常的功能开发和修 bug`,deep:`难题:根因不明、大重构、设计决策`},runAgain:{title:`重新运行`,source:`来自任务「{title}」的指令`,hint:`在新任务里重新执行这段指令,新任务有自己的分支和工作树。`,confirm:`重新运行`,footer:`↑↓ 滚动 · ←→ 选择 · enter 运行 · esc 取消`},confirm:Lr,renameBranch:{title:`重命名分支`,fieldLabel:`分支`},fieldNotes:{title:`现场笔记`,empty:"该仓库暂无现场笔记——agent 可用 `rove api note` 记录。",loading:`加载中…`,footer:`↑↓ 滚动 · esc 关闭`,footerDeletable:`↑↓ 选择 · d 删除 · esc 关闭`,confirmDelete:{title:`删除这条现场笔记?`,body:`「{text}」将不再注入该仓库的新会话。其他内容不受影响。`}},moveChip:` 移动`,recentJump:`最近:{title}`,routinesRow:`{count} 个 routine 会话`,routinesRowOne:`1 个 routine 会话`,archivedRow:`已归档 · {count}`,machine:{connecting:`连接中…`,offline:`离线`,unsupported:`不支持`,mismatch:`协议不兼容`,filesElsewhere:`在 {host} 上`,filesHint:`{host} 暂时连不上;重新连上后这里会再显示它的文件。`,terminalElsewhere:`这个任务跑在 {host} 上,暂时连不上。`,runsOn:`在 {host} 上`,noTabs:`{host} 上还没有 tab——按 prefix t 在那里新开一个。`},empty:{noMatchSearch:`无匹配任务——按 esc 清除。`,noActiveProject:`该项目暂无活跃任务。`,noActive:`暂无活跃任务——在上方新建。`},activity:{working:`运行中`,rateLimited:`请求受限`,permissionNeeded:`等待授权`,error:`错误`,dead:`引擎已退出`},group:{waitingOnYou:`等你处理`,landing:`可以合了`,readyForReview:`待你验收`,working:`运行中`},subtitle:{noTracking:`不跟踪活动`,materializing:`正在创建 worktree`,deleting:`正在删除`,deleteFailed:`删除失败`},reBranch:{title:`设置分支`,fieldLabel:`分支`,hintNoBranches:`(没有本地分支——输入新名称)`,hintNoMatch:`(无匹配——回车将分支重命名为此名)`,footer:`↑↓ 选择 · enter 设置 · esc 取消`},toast:zr},Hr={noTask:`(no task — press n to create)`,exited:`process exited — F5 restarts it`,engineExit:{title:`Engine exited`,titleCode:`Engine exited (code {code})`,retry:`Retry`,settings:`Settings → Engines`,another:`Another engine`,continueIn:`Continue in another engine`},usageLimit:{title:`Usage limit reached`,dismiss:`Dismiss`},restoring:`restoring session…`,recovery:{live:`Live process reattached`,relaunched:`Command relaunched in a new process. Any restored output is historical; check the engine to resume or continue your conversation.`,restored:`Historical screen restored; previous process ended. Restart and check the engine before continuing.`},tab:{groupTitle:`group {n}`,renameTitle:`Rename tab`,renameField:`TAB TITLE`,renameSubmit:`rename`,chooseEngineHint:`←/→ or h/l choose, enter confirm, esc cancel`,newChat:{title:`New conversation`,engine:`ENGINE`,destLabel:`DESTINATION`,destTab:`child task, same directory`,destFork:`fork a child task (new worktree)`,destScratch:`new scratch task ($HOME)`,ctxLabel:`CONTEXT`,ctxFresh:`fresh conversation`,ctxContinue:`continue this conversation`},cannotCloseLast:`Cannot close the only tab`,tabGone:`That tab is no longer there`,closeOthersTitle:`Close the other tabs?`,closeOthersBody:`Closing {count} · their sessions end, this tab stays open.`,closeOthersConfirm:`close tabs`,closeOthersCancel:`cancel`,menu:{rename:`Rename tab`,copyAddress:`Copy tab address`,continueEngine:`Continue in another engine…`,closeOthers:`Close other tabs`,close:`Close tab`},nothingToFork:`No conversation in this tab to fork yet`,noTranscriptToHandOff:`{engine} keeps no readable transcript to hand over`},split:{renameTitle:`Rename split`,renameField:`SPLIT NAME`},scrolledBack:`↑ scrolled {lines}L`,scrollFirst:`[first]`,scrollLatest:`[latest]`,unavailable:{shellMissing:`terminal unavailable — the shell named by $SHELL isn't on this machine. Point $SHELL at one that exists, or unset it to fall back to the system default.`,spawnFailed:`terminal unavailable — the shell exited immediately. Its error is in ~/.rove/pty.log.`,retry:`F5 tries again`},reset:{title:`Reset terminal?`,body:`The running shell will be killed and a fresh one will spawn at the worktree. Any in-flight processes (vim, htop, paused jobs) end immediately.`}},Ur={recovery:{live:`已重新连接仍在运行的进程`,relaunched:`命令已在新进程中重启。如有恢复的输出,它属于历史记录;请在引擎内确认会话恢复或继续操作。`,restored:`已恢复历史画面;原进程已结束。请重启并确认引擎状态后继续。`},noTask:`(无任务 —— 按 n 创建)`,exited:`进程已退出 —— 按 F5 重启`,engineExit:{title:`引擎已退出`,titleCode:`引擎已退出(退出码 {code})`,retry:`重试`,settings:`设置 → 引擎`,another:`换个引擎`,continueIn:`换个引擎继续`},usageLimit:{title:`已达到用量上限`,dismiss:`忽略`},restoring:`正在恢复会话…`,tab:{groupTitle:`group {n}`,renameTitle:`重命名标签页`,renameField:`标签页名称`,renameSubmit:`重命名`,chooseEngineHint:`←/→ 或 h/l 选择,enter 确认,esc 取消`,newChat:{title:`新建对话`,engine:`引擎`,destLabel:`落点`,destTab:`子任务,同一目录`,destFork:`fork 子任务(新 worktree)`,destScratch:`新临时任务($HOME)`,ctxLabel:`上下文`,ctxFresh:`全新对话`,ctxContinue:`接着当前对话`},cannotCloseLast:`无法关闭唯一的标签页`,tabGone:`这个标签页已经不在了`,closeOthersTitle:`关闭其他标签页?`,closeOthersBody:`将关闭 {count} 个,它们的会话会结束,只保留这个标签页。`,closeOthersConfirm:`关闭标签页`,closeOthersCancel:`取消`,menu:{rename:`重命名标签页`,copyAddress:`复制标签页地址`,continueEngine:`换个引擎继续…`,closeOthers:`关闭其他标签页`,close:`关闭标签页`},nothingToFork:`这个标签页还没有可派生的对话`,noTranscriptToHandOff:`{engine} 没有可读的对话记录,无法交接`},split:{renameTitle:`重命名分屏`,renameField:`分屏名称`},scrolledBack:`↑ 已回滚 {lines} 行`,scrollFirst:`[最早]`,scrollLatest:`[最新]`,unavailable:{shellMissing:`终端不可用 —— $SHELL 指向的 shell 在这台机器上不存在。请把 $SHELL 指向一个真实存在的 shell,或取消设置以回退到系统默认。`,spawnFailed:`终端不可用 —— shell 启动后立即退出。具体错误见 ~/.rove/pty.log。`,retry:`按 F5 重试`},reset:{title:`重置终端?`,body:`正在运行的 shell 会被杀掉并在 worktree 重新启动,进行中的进程(vim、htop、暂停的任务)会立即结束。`}},Wr={pageTitle:`ROVE UPDATE`,closeHint:`q / esc close`,chip:`↑ {version}`,current:`current`,available:`v{version} available`,latest:`latest`,latestUnknown:`unknown — could not reach the registry`,registryRetry:`Check your connection, then close and reopen Update to retry.`,upToDate:`No newer release — nothing to install.`,releaseUrlUnavailable:`release URL unavailable; visit github.com/Sma1lboy/rove/releases`,statusReleaseOpened:`Opened release page in your browser.`,statusReleaseError:`Could not open release URL. Visit github.com/Sma1lboy/rove/releases in your browser.`,statusRunningUpdater:`Closing the TUI and running the updater in this terminal...`,loadingNotes:`Loading release notes...`,notesUnavailable:`Release notes are unavailable. Use Open release to view the GitHub release page.`,changesSectionHeader:`── changes from v{from} to v{to} ──`,updateComplete:`Rove update complete. Relaunch Rove to use the new version.`,updateFailed:"Rove update failed with exit code {code}. Check the output above, then run `rove update` to retry.",pressAnyKey:`Press any key to close this update window.`,actions:{updateNow:`Update now`,openRelease:`Open release`,close:`Close`,closeDetail:`return to the workspace`},whatsNew:{title:`WHAT'S NEW`,closeHint:`q / esc continue`,upgraded:`You're now on Rove v{to}, up from v{from}. Here's what changed.`,notesUnavailable:`Could not load the release notes — check your connection, or read them on GitHub.`,sourceHint:`release notes: {url}`},skew:{title:`⚠ DAEMON OUT OF DATE`,olderBuild:`an older build`,hint:`daemon is {daemon} — you launched v{clientVersion}. Press {keys} to refresh Rove onto the installed build`,hintNoKey:"daemon is {daemon} — you launched v{clientVersion}. Run `rove daemon restart`, then relaunch Rove"},refresh:{confirmTitle:`Refresh Rove?`,confirmBody:`Rove restarts the daemon and relaunches itself on the installed build. Running engine sessions live in the PTY host and keep going; open tabs come back.`,confirmLabel:`Refresh`,relaunching:`rove: restarting on the installed build...`,alreadyCurrent:`Rove and the daemon already run the same build — nothing to refresh.`,installGone:"This Rove was installed from a directory that no longer exists, so it cannot relaunch itself. Reinstall with `npm install -g @sma1lboy/rove`."},staleInstall:{title:`✕ ROVE INSTALL IS GONE`,hint:"this Rove is running from an install that no longer exists on disk, so it cannot start a daemon. Reinstall (`npm install -g @sma1lboy/rove`) and relaunch Rove"},versions:{pageTitle:`ROVE VERSIONS`,loading:`Loading releases...`,unavailable:`Could not fetch releases. Check your connection or wait for the rate limit, then reopen this page.`,tagCurrent:`current`,tagLatest:`latest`,tagBreaking:`breaking`,breakingWarning:"⚠ installing this crosses breaking version(s) {versions}. Rove will refuse to start until you run `rove reset`, which stops the daemon, the PTY host, and every live session. Tasks and worktrees are kept.",footerHint:`j/k select · enter install · q close`,closeHint:`q / esc close`}},Gr={pageTitle:`ROVE 更新`,closeHint:`q / esc 关闭`,chip:`↑ {version}`,current:`当前`,available:`有新版本 v{version}`,latest:`最新`,latestUnknown:`未知 —— 无法连接到 registry`,registryRetry:`请检查网络,然后关闭并重新打开更新页重试。`,upToDate:`没有更新的版本 —— 无需安装。`,releaseUrlUnavailable:`发布链接不可用;请访问 github.com/Sma1lboy/rove/releases`,statusReleaseOpened:`已在浏览器中打开发布说明页面。`,statusReleaseError:`无法打开发布链接。请在浏览器访问 github.com/Sma1lboy/rove/releases。`,statusRunningUpdater:`正在关闭 TUI,并在当前终端中运行更新程序……`,loadingNotes:`正在加载发布说明……`,notesUnavailable:`发布说明不可用。请使用「打开发布页」查看 GitHub 发布页面。`,changesSectionHeader:`── v{from} 至 v{to} 的变更 ──`,updateComplete:`Rove 更新完成。请重新启动 Rove 以使用新版本。`,updateFailed:"Rove 更新失败,退出码为 {code}。请检查上方输出,再运行 `rove update` 重试。",pressAnyKey:`按任意键关闭此更新窗口。`,actions:{updateNow:`立即更新`,openRelease:`打开发布页`,close:`关闭`,closeDetail:`返回工作区`},whatsNew:{title:`更新内容`,closeHint:`q / esc 继续`,upgraded:`Rove 已从 v{from} 更新到 v{to},本次变更如下。`,notesUnavailable:`无法加载发布说明 —— 请检查网络连接,或到 GitHub 上查看。`,sourceHint:`发布说明:{url}`},skew:{title:`⚠ DAEMON 版本不一致`,olderBuild:`旧版本构建`,hint:`daemon 运行的是 {daemon},而你启动的是 v{clientVersion}。按 {keys} 可让 Rove 刷新到已安装的版本`,hintNoKey:"daemon 运行的是 {daemon},而你启动的是 v{clientVersion}。请运行 `rove daemon restart`,然后重新启动 Rove"},refresh:{confirmTitle:`刷新 Rove?`,confirmBody:`Rove 会重启 daemon,并以已安装的版本重新启动自身。正在运行的引擎会话由 PTY host 托管,不会中断;已打开的标签页会恢复。`,confirmLabel:`刷新`,relaunching:`rove:正在以已安装的版本重新启动……`,alreadyCurrent:`Rove 与 daemon 已经是同一个版本 —— 无需刷新。`,installGone:"当前 Rove 的安装目录已不存在,无法重新启动自身。请运行 `npm install -g @sma1lboy/rove` 重新安装。"},staleInstall:{title:`✕ ROVE 安装已不存在`,hint:"当前 Rove 运行自一份已从磁盘删除的安装,因此无法启动 daemon。请重新安装(`npm install -g @sma1lboy/rove`)并重新启动 Rove"},versions:{pageTitle:`ROVE 版本列表`,loading:`正在加载发布列表……`,unavailable:`无法获取发布列表。请检查网络或等待限流解除,然后重新打开本页。`,tagCurrent:`当前`,tagLatest:`最新`,tagBreaking:`breaking`,breakingWarning:"⚠ 安装该版本会跨过 breaking 版本 {versions}。更新后 Rove 会拒绝启动,直到你运行 `rove reset`——它会停掉 daemon、PTY host 和所有活动会话。任务和 worktree 会保留。",footerHint:`j/k 选择 · enter 安装 · q 关闭`,closeHint:`q / esc 关闭`}},Kr={quit:{confirmTitle:`Quit Rove?`,confirmBody:`The daemon and task sessions keep running. This closes only the native workspace.`,confirmLabel:`Quit`},narrowBack:`Tasks`,empty:{selectTask:`Select a task with a worktree`,noSessions:`No sessions here — press ⏎ to start {engine}, or ctrl+e to pick another`,noSessionsShell:`No sessions here — press ⏎ to start a shell, or ctrl+e to pick another`,remoteUnsupported:`Hosted engine launch over SSH is not implemented — this task's worktree is on {host}`},welcome:{title:`Welcome to Rove`,tagline:`Run several AI coding sessions side by side — use managed tasks for isolated worktrees.`,worktreeExplain:`Managed tasks create isolated worktrees and branches. Directory and project tasks reuse existing files; tabs within a task share its directory.`,stepNew:`creates your first task — pick a repo, a base branch, an engine`,stepHelp:`shows every shortcut reachable from the current focus`,stepPrefix:`opens the command menu`,enginesFound:`✓ engines: {list}`,enginesSignedOut:`✗ installed but not signed in: {list} — run one of them in a shell and log in`,enginesMissing:`✗ no engine CLI found — install claude, codex, copilot, or kimi, then restart Rove`,gitMissing:`✗ git not found on PATH — Rove needs git to create worktrees`,doctorHint:"run `rove doctor` in a shell for the full diagnosis",docsHint:`docs: https://docs.rove.run`},attention:{none:`No available Inbox items`},inbox:{title:`INBOX`,empty:`No pending attention`,openHint:`enter open`,clearHint:`d ack`,clearAllHint:`D ack all`,more:`+{count} more`,section:{attention:`ATTENTION`,recent:`RECENT`},state:{done:`done`,needsInput:`needs input`,error:`error`,rateLimited:`rate limited`,running:`running`,dead:`engine exited`,routineFailed:`routine needs you`,reportMissing:`report missing`,decisionNeeded:`decision needed`,gateAnswered:`answered · engine not running`},resumesAt:`resumes {time}`}},qr={quit:{confirmTitle:`退出 Rove?`,confirmBody:`守护进程和任务会话会继续运行,这里只关闭原生工作区。`,confirmLabel:`退出`},narrowBack:`任务`,empty:{selectTask:`请选择一个带 worktree 的任务`,noSessions:`这里没有会话——按 ⏎ 启动 {engine},或按 ctrl+e 另选一个`,noSessionsShell:`这里没有会话——按 ⏎ 启动 shell,或按 ctrl+e 另选一个`,remoteUnsupported:`尚未实现通过 SSH 启动托管引擎——该任务的 worktree 在 {host} 上`},welcome:{title:`欢迎使用 Rove`,tagline:`并行运行多个 AI 编码会话——使用托管任务获得独立的 worktree。`,worktreeExplain:`托管任务创建独立的 worktree 和分支。目录与项目任务复用现有文件;同一任务内的标签页共享目录。`,stepNew:`创建你的第一个任务——选仓库、基础分支和引擎`,stepHelp:`查看当前焦点下的全部快捷键`,stepPrefix:`打开命令菜单`,enginesFound:`✓ 已检测到引擎:{list}`,enginesSignedOut:`✗ 已安装但未登录:{list}——请在 shell 里运行其中之一并完成登录`,enginesMissing:`✗ 未找到引擎 CLI——请安装 claude、codex、copilot 或 kimi 后重启 Rove`,gitMissing:`✗ PATH 上没有 git——Rove 需要 git 来创建 worktree`,doctorHint:"在 shell 里运行 `rove doctor` 查看完整诊断",docsHint:`文档:https://docs.rove.run`},attention:{none:`收件箱中没有可打开的项目`},inbox:{title:`收件箱`,empty:`暂无待处理`,openHint:`enter 打开`,clearHint:`d 已阅`,clearAllHint:`D 全部已阅`,more:`还有 {count} 条`,section:{attention:`待处理`,recent:`最近使用`},state:{done:`完成`,needsInput:`需要输入`,error:`出错`,rateLimited:`限流`,running:`进行中`,dead:`引擎已退出`,routineFailed:`例行任务需要处理`,reportMissing:`未回报`,decisionNeeded:`等你决定`,gateAnswered:`已回答 · 引擎未运行`},resumesAt:`{time} 恢复`}},Jr={title:`Worktrees`,loading:`Loading worktrees…`,noProjects:`No local projects known to Rove yet.`,noWorktrees:`No worktrees.`,badge:{roveManaged:`rove`,dirty:`dirty`,dirtyUnknown:`dirty?`,remoteOn:`on remote`,remoteOff:`not pushed`,remoteUnknown:`remote unknown`},verdict:{prOpen:`PR open`,prMerged:`merged (PR)`,inMain:`in main`,prClosed:`PR closed`,idle:`stale`},row:{detached:`(detached)`,created:`created {age} ago`},delete:{button:`Delete`,confirmTitle:`Delete worktree?`,confirmBody:`Delete the worktree for "{branch}"? This removes the working directory; the branch itself is kept.`,forceTitle:`Force delete worktree?`,forceBody:'"{branch}" has uncommitted, untracked, or gitignored work. Force delete removes the worktree, but the work is snapshotted first to a salvage ref — list them with `git for-each-ref refs/rove/salvage`. Force delete anyway?',forceReason:`Refused because: {reason}`,failed:`Failed to delete worktree: {error}`,residue:`Git deregistered the worktree, but couldn't delete {path} ({reason}). Rove is done with it — retrying won't help; delete the directory by hand if you want the space.`},land:{button:`Land`,confirmTitle:`Land branch?`,confirmBody:`Merge "{branch}" into {landedOn} ({commits} commits), then remove this worktree? The branch is kept. Conflicts abort with a file list.`,confirmBodyOne:`Merge "{branch}" into {landedOn} (1 commit), then remove this worktree? The branch is kept. Conflicts abort with a file list.`,noTask:`This worktree isn't tracked as a Rove task — nothing to land.`,conflict:`Land hit conflicts (merge aborted). Resolve by hand: {files}`,dirtyBase:"The base checkout has uncommitted changes — commit them, then land. Never `git stash` here: the stash stack lives in the repo's common dir and is shared by every linked worktree, so a stash can entangle other tasks' work.",failed:`Land failed: {error}`,done:`Landed "{branch}" onto {landedOn} ({commit}).`,worktreeKept:`Landed, but the worktree was kept: {reason}`,worktreePathStale:`Landed and removed the worktree, but the task still points at it: {reason}`,worktreeResidue:`Landed. Git deregistered the worktree, but couldn't delete {path} ({reason}) — delete the directory by hand if you want the space.`},hint:{}},Yr={title:`工作树`,loading:`正在加载 worktree…`,noProjects:`Rove 还没有已知的本地项目。`,noWorktrees:`没有 worktree。`,badge:{roveManaged:`rove`,dirty:`有改动`,dirtyUnknown:`改动未知`,remoteOn:`已推送`,remoteOff:`未推送`,remoteUnknown:`远端未知`},verdict:{prOpen:`PR 评审中`,prMerged:`已合入 (PR)`,inMain:`已在主分支`,prClosed:`PR 已关闭`,idle:`陈旧`},row:{detached:`(游离状态)`,created:`{age}前创建`},delete:{button:`删除`,confirmTitle:`删除 worktree?`,confirmBody:`确定删除 "{branch}" 对应的 worktree?工作目录会被移除,分支本身会保留。`,forceTitle:`强制删除 worktree?`,forceBody:'"{branch}" 存在未提交、未跟踪或被 gitignore 的改动。强制删除会移除 worktree,但这些改动会先被快照到一个 salvage ref——用 `git for-each-ref refs/rove/salvage` 可以列出它们。仍要强制删除吗?',forceReason:`拒绝原因:{reason}`,failed:`删除 worktree 失败:{error}`,residue:`Git 已注销该 worktree,但没能删掉 {path}({reason})。Rove 这边已经处理完了——重试没有用;想要回磁盘空间请手动删除该目录。`},land:{button:`合入`,confirmTitle:`合入分支?`,confirmBody:`把 "{branch}" 合入 {landedOn}({commits} 个提交),然后移除这个 worktree?分支会保留。冲突会中止并给出文件清单。`,confirmBodyOne:`把 "{branch}" 合入 {landedOn}(1 个提交),然后移除这个 worktree?分支会保留。冲突会中止并给出文件清单。`,noTask:`该 worktree 未作为 Rove 任务被跟踪——没有可合入的对象。`,conflict:`合入遇到冲突(已中止)。请手动解决:{files}`,dirtyBase:"基础检出有未提交改动——请先提交再合入。绝不要在这里 `git stash`:stash 栈存放在仓库的 common dir 中,该仓库所有 linked worktree 共享,一次 stash 可能纠缠其他任务的工作。",failed:`合入失败:{error}`,done:`已把 "{branch}" 合入 {landedOn}({commit})。`,worktreeKept:`已合入,但 worktree 保留了:{reason}`,worktreePathStale:`已合入并移除 worktree,但任务仍指向它:{reason}`,worktreeResidue:`已合入。Git 已注销该 worktree,但没能删掉 {path}({reason})——想要回磁盘空间请手动删除该目录。`},hint:{}},Xr={common:{en:wr,zh:Tr},doctor:{en:Er,zh:Dr},files:{en:Or,zh:kr},newTask:{en:Ar,zh:jr},onboarding:{en:Mr,zh:Nr},quickTask:{en:Pr,zh:Fr},tasks:{en:Br,zh:Vr},terminal:{en:Hr,zh:Ur},update:{en:Wr,zh:Gr},workspace:{en:Kr,zh:qr},worktrees:{en:Jr,zh:Yr}};function Zr(e,t){let n=e;for(let e of t.split(`.`)){if(!n||typeof n!=`object`||!(e in n))return;n=Reflect.get(n,e)}return typeof n==`string`?n:void 0}function K(e,t,n){let r=Xr[e],i=Zr(r[ke.get()],t)??Zr(r.en,t)??t;return n?i.replace(/\{(\w+)\}/g,(e,t)=>String(n[t]??e)):i}var Qr=[{id:`chat.tab.new`,scope:`workspace`,keys:[`ctrl+t`],category:`Workspace`,description:`New chat tab`,hint:{keys:`ctrl+t`},presentation:`onePress`},{id:`chat.tab.chooseEngine`,scope:`workspace`,keys:[`ctrl+e`],category:`Workspace`,description:`New conversation — engine/shell picker with destination + context toggles`,hint:{keys:`ctrl+e`},presentation:`onePress`},{id:`chat.tab.fork`,scope:`workspace`,keys:[],prefixKeys:[`c`],category:`Workspace`,description:`Fork this chat into a new tab (same Task directory, keeps the conversation)`,hint:{keys:`ctrl+a c`}},{id:`chat.fork.new`,scope:`workspace`,keys:[],prefixKeys:[`f`],category:`Workspace`,description:`Quick-fork: create child task seeded with current repo/branch/model`,hint:{keys:`ctrl+a f`}},{id:`chat.tab.close`,scope:`workspace`,keys:[`ctrl+w`],prefixKeys:[`w`],category:`Workspace`,description:`Close chat tab`,hint:{keys:`ctrl+w`},presentation:`onePress`},{id:`workspace.reopenSession`,scope:`workspace`,keys:[`return`],category:`Workspace`,description:`Reopen a session in a task whose tabs are all closed`,hint:{keys:`enter`},presentation:`onePress`},{id:`chat.tab.rename`,scope:`workspace`,keys:[`f2`],category:`Workspace`,description:`Rename active chat tab`,hint:{keys:`f2`},presentation:`onePress`},{id:`chat.tab.cycle-next`,scope:`workspace`,keys:[`ctrl+]`],category:`Workspace`,description:`Next chat tab`,hint:{keys:`ctrl+]`},presentation:`onePress`},{id:`chat.tab.cycle-prev`,scope:`workspace`,keys:[`ctrl+[`],category:`Workspace`,description:`Previous chat tab`,hint:{keys:`ctrl+[`},presentation:`onePress`},{id:`chat.tab.goto`,scope:`workspace`,keys:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`].map(e=>`ctrl+${e}`),category:`Workspace`,description:`Go to chat tab N`,hint:{keys:`ctrl+1-9`},presentation:`onePress`},{id:`workspace.split.right`,scope:`workspace`,keys:[`ctrl+\\`],category:`Workspace`,description:`Split right`,hint:{keys:`ctrl+\\`},presentation:`onePress`},{id:`workspace.split.down`,scope:`workspace`,keys:[`ctrl+=`],category:`Workspace`,description:`Split down`,hint:{keys:`ctrl+=`},presentation:`onePress`},{id:`workspace.split.focus-next`,scope:`workspace`,keys:[`f3`],category:`Workspace`,description:`Focus next split`,hint:{keys:`f3`},presentation:`onePress`},{id:`workspace.split.close`,scope:`workspace`,keys:[`ctrl+w`],prefixKeys:[`w`],category:`Workspace`,description:`Close active split (tab when unsplit)`,hint:{keys:`ctrl+w`},presentation:`onePress`},{id:`workspace.split.rename`,scope:`workspace`,keys:[`f2`],category:`Workspace`,description:`Rename active split (tab when unsplit)`,hint:{keys:`f2`},presentation:`onePress`}],$r=[{id:`files.nav`,scope:`files`,keys:[`j`,`k`,`down`,`up`],category:`Files`,description:`Move cursor up/down`,hint:{keys:`j/k`}},{id:`files.hierarchy`,scope:`files`,keys:[`h`,`l`,`left`,`right`],category:`Files`,description:`Collapse / expand tree level`,hint:{keys:`h/l`}},{id:`files.open`,scope:`files`,keys:[`return`],category:`Files`,description:`Open file in configured editor (diff when supported)`,hint:{keys:`enter`}},{id:`files.tab`,scope:`files`,keys:[`[`,`]`],category:`Files`,description:`Switch tab (cycle All / Changes)`,hint:{keys:`[/]`}},{id:`files.refresh`,scope:`files`,keys:[`r`],category:`Files`,description:`Refresh`,hint:{keys:`r`}},{id:`files.scope`,scope:`files`,keys:[`b`],category:`Files`,description:`Toggle Changes scope (working ↔ branch vs base)`,hint:{keys:`b`}},{id:`files.diff`,scope:`files`,keys:[`d`],category:`Files`,description:`Open read-only diff in a workspace tab`,hint:{keys:`d`}},{id:`files.diffAll`,scope:`files`,keys:[`shift+d`],category:`Files`,description:`Open the whole worktree's diff in one workspace tab`,hint:{keys:`D`}},{id:`files.openExternal`,scope:`files`,keys:[`o`],category:`Files`,description:`Open file in system default app (audio / video / pdf preview)`,hint:{keys:`o`}},{id:`files.mention`,scope:`files`,keys:[`a`],category:`Files`,description:`Inject @<path> mention into the engine pane`,hint:{keys:`a`}},{id:`files.createPR`,scope:`global`,keys:[],prefixKeys:[`p`,`shift+p`],category:`Files`,description:`Ask the agent to create a PR from the current task`},{id:`files.fixChecks`,scope:`global`,keys:[],prefixKeys:[`k`],category:`Files`,description:`Ask the agent to fix the failing PR checks`},{id:`files.syncBase`,scope:`global`,keys:[],prefixKeys:[`u`],category:`Files`,description:`Merge the base branch into this task's worktree`},{id:`diff.review.cursor`,scope:`workspace`,keys:[],category:`Diff review`,description:`Move the line cursor over the diff`,hint:{keys:`j/k`}},{id:`diff.review.range`,scope:`workspace`,keys:[],category:`Diff review`,description:`Toggle range anchor at the cursor`,hint:{keys:`v`}},{id:`diff.review.note`,scope:`workspace`,keys:[],category:`Diff review`,description:`Add a review note at the cursor`,hint:{keys:`c`}},{id:`diff.review.send`,scope:`workspace`,keys:[],category:`Diff review`,description:`Send all unsent review notes to the engine`,hint:{keys:`s`}},{id:`diff.review.drop`,scope:`workspace`,keys:[],category:`Diff review`,description:`Drop the review note the cursor sits inside`,hint:{keys:`x`}},{id:`diff.review.reload`,scope:`workspace`,keys:[],category:`Diff review`,description:`Reload the previewed file from disk`,hint:{keys:`r`}}],ei=[{id:`inbox.show`,scope:`global`,keys:[],prefixKeys:[`i`],category:`Global`,description:`Open Inbox`},{id:`inbox.nav`,scope:`inbox`,keys:[`j`,`k`,`down`,`up`],category:`Inbox`,description:`Move cursor up/down`,hint:{keys:`j/k`}},{id:`inbox.open`,scope:`inbox`,keys:[`return`],category:`Inbox`,description:`Open the selected Task and Terminal Tab`,hint:{keys:`enter`}},{id:`inbox.delete`,scope:`inbox`,keys:[`d`],category:`Inbox`,description:`Ack the selected Inbox item`,hint:{keys:`d`}},{id:`inbox.deleteAll`,scope:`inbox`,keys:[`shift+d`],category:`Inbox`,description:`Ack every ATTENTION item`,hint:{keys:`D`}}],ti=[{id:`palette.open`,scope:`global`,keys:[],prefixKeys:[`/`],category:`Global`,description:`Search commands`},{id:`help.open`,scope:`global`,keys:[`f1`],category:`Global`,description:`Show keybindings help`,hint:{keys:`F1`},presentation:`onePress`},{id:`task.new`,scope:`sidebar`,keys:[`n`],category:`Sidebar`,description:`New task`,hint:{keys:`n`}},{id:`task.new.global`,scope:`global`,keys:[],prefixKeys:[`n`],category:`Global`,description:`New task`},{id:`task.openEditor`,scope:`global`,keys:[],prefixKeys:[`o`],category:`Global`,description:`Open active Task directory in editor`},{id:`task.moveMode`,scope:`global`,keys:[],prefixKeys:[`m`],category:`Global`,description:`Reorder sidebar rows (then j/k)`},{id:`settings.open`,scope:`global`,keys:[],prefixKeys:[`,`],category:`Global`,description:`Open settings`},{id:`app.refresh`,scope:`global`,keys:[],prefixKeys:[`r`],category:`Global`,description:`Refresh Rove onto the installed build (after an update)`},{id:`settings.open.sidebar`,scope:`sidebar`,keys:[`s`],category:`Sidebar`,description:`Open settings`,hint:{keys:`s`}},{id:`worktrees.open.sidebar`,scope:`sidebar`,keys:[`x`],category:`Sidebar`,description:`Open worktrees`,hint:{keys:`x`}},{id:`kanban.open`,scope:`global`,keys:[],prefixKeys:[`1`],category:`Global`,description:`Open kanban (issues board)`},{id:`automations.open`,scope:`global`,keys:[],prefixKeys:[`2`],category:`Global`,description:`Open routines (scheduled tasks)`},{id:`workItems.open`,scope:`global`,keys:[],prefixKeys:[`3`],category:`Global`,description:`Open GitHub issues (external tracker)`},{id:`app.quit`,scope:`sidebar`,keys:[`q`,`ctrl+q`],category:`Sidebar`,description:`Quit (with confirm)`,hint:{keys:`q`}},{id:`focus.sidebar`,scope:`workspace`,keys:[`ctrl+q`],category:`Workspace`,description:`Back to sidebar (tasks)`,hint:{keys:`ctrl+q`},presentation:`onePress`},{id:`focus.previous`,scope:`global`,keys:[],prefixKeys:[`h`],category:`Navigation`,description:`Focus previous pane (files → workspace → sidebar)`},{id:`focus.next`,scope:`global`,keys:[`f4`],prefixKeys:[`l`],category:`Navigation`,description:`Focus next pane (sidebar → workspace → files)`,hint:{keys:`f4`},presentation:`onePress`},{id:`attention.next`,scope:`global`,keys:[`f7`],category:`Navigation`,description:`Jump to the next available Inbox item`,hint:{keys:`f7`},presentation:`onePress`},{id:`workspace.zenToggle`,scope:`global`,keys:[],prefixKeys:[`z`],category:`Navigation`,description:`Toggle zen mode (hide the files column)`},{id:`view.redraw`,scope:`global`,keys:[],prefixKeys:[`r`],category:`Global`,description:`Redraw the screen`},{id:`sidebar.nav`,scope:`sidebar`,keys:[`j`,`k`,`down`,`up`],category:`Sidebar`,description:`Move cursor up/down`,hint:{keys:`j/k`}},{id:`sidebar.select`,scope:`sidebar`,keys:[`return`],category:`Sidebar`,description:`Open the selected task`,hint:{keys:`enter`}},{id:`sidebar.tree.open`,scope:`sidebar`,keys:[`l`,`space`],category:`Sidebar`,description:`Open the row under the cursor (a tab row enters its chat)`,hint:{keys:`l`}},{id:`sidebar.goto`,scope:`sidebar`,keys:[`g`,`shift+g`],category:`Sidebar`,description:`Top / bottom of list (gg or shift-G)`},{id:`sidebar.rename`,scope:`sidebar`,keys:[`r`],category:`Sidebar`,description:`Rename task`,hint:{keys:`r`}},{id:`sidebar.localMerge`,scope:`sidebar`,keys:[`shift+m`],category:`Sidebar`,description:`Reorder row (Shift+M, then j/k)`,hint:{keys:`M`}},{id:`sidebar.pin`,scope:`sidebar`,keys:[`shift+p`],category:`Sidebar`,description:`Pin / unpin task at top (Shift+P)`,hint:{keys:`P`}},{id:`sidebar.sort`,scope:`sidebar`,keys:[`t`],category:`Sidebar`,description:`Cycle task sort (default → recent → attention → name)`,hint:{keys:`t`}},{id:`sidebar.delete`,scope:`sidebar`,keys:[`d`],category:`Sidebar`,description:`Remove session (with confirm)`,hint:{keys:`d`}},{id:`sidebar.search.enter`,scope:`sidebar`,keys:[`/`],category:`Sidebar`,description:`Search tasks (fuzzy filter)`,hint:{keys:`/`}},{id:`sidebar.search.nav`,scope:`sidebar`,keys:[`down`,`up`],category:`Sidebar`,description:`Move highlight in search results`},{id:`sidebar.search.submit`,scope:`sidebar`,keys:[`return`],category:`Sidebar`,description:`Select search match and exit search`},{id:`sidebar.search.cancel`,scope:`sidebar`,keys:[`escape`],category:`Sidebar`,description:`Cancel search (restore prior selection)`},{id:`tasks.openWorktree`,scope:`sidebar`,keys:[`o`],category:`Tasks pane`,description:`Open selected Task directory in your editor`,hint:{keys:`o`}},{id:`tasks.renameBranch`,scope:`sidebar`,keys:[`b`],category:`Tasks pane`,description:`Rename the selected task's git branch`,hint:{keys:`b`}},{id:`tasks.cycleEngine`,scope:`sidebar`,keys:[`v`],category:`Tasks pane`,description:`Cycle engine vendor — applies on reopen`,hint:{keys:`v`}},{id:`tasks.update`,scope:`sidebar`,keys:[`u`],category:`Tasks pane`,description:`Open the update page — version check + release notes`,hint:{keys:`u`}},{id:`tasks.focusEngine`,scope:`sidebar`,keys:[`right`],category:`Tasks pane`,description:`Focus the engine pane of the current window`,hint:{keys:`→`}},...Qr,...$r,...ei,{id:`terminal.scroll-up`,scope:`terminal`,keys:[`ctrl+pageup`],category:`Terminal`,description:`Scroll scrollback up`,hint:{keys:`ctrl+pgup`}},{id:`terminal.scroll-down`,scope:`terminal`,keys:[`ctrl+pagedown`],category:`Terminal`,description:`Scroll scrollback down`},{id:`terminal.reset`,scope:`terminal`,keys:[`f5`],category:`Terminal`,description:`Reset terminal — kill the current shell and respawn`,hint:{keys:`f5`},presentation:`onePress`}],ni={ctrl:`⌃`,control:`⌃`,alt:`⌥`,opt:`⌥`,option:`⌥`,shift:`⇧`,cmd:`⌘`,command:`⌘`,meta:`⌘`,super:`⌘`},ri={enter:`⏎`,return:`⏎`,esc:`⎋`,escape:`⎋`,space:`␣`,up:`↑`,down:`↓`,left:`←`,right:`→`,backspace:`⌫`,delete:`⌦`,del:`⌦`,pgup:`⇞`,pageup:`⇞`,pgdn:`⇟`,pagedown:`⇟`,home:`↖`,end:`↘`};function ii(e,t){if(e.includes(`/`))return e.split(`/`).map(e=>ii(e,t)).join(`/`);let n=e.toLowerCase();return n===`tab`?`tab`:ri[n]||(/^f\d{1,2}$/.test(n)?n.toUpperCase():t?/^[a-z]$/.test(n)?e.toUpperCase():e.replace(/[a-z]+/gi,e=>e.toUpperCase()):e)}function ai(e,t=`⌃A`){let n=e.trim();if(!n)return n;let r=/^prefix\s+(.+)$/i.exec(n);if(r){let e=r[1]??``;return`${t} ${e.includes(`+`)?ai(e,t):ii(e,!0)}`}let i=n.split(`+`);if(i.length===1)return ii(i[0]??``,!1);let a=i[i.length-1]??``;return`${i.slice(0,-1).map(e=>ni[e.toLowerCase().trim()]??e).join(``)} ${ii(a,!0)}`}var oi=_({path:``,exists:!1,rows:[],prefix:{key:`ctrl+a`,firstStrokes:[`ctrl+a`],timeoutMs:5e3},plugins:[],applied:[],warnings:[]}),si=new Map(ti.map(e=>[e.id,{keys:[...e.keys],prefixKeys:e.prefixKeys&&[...e.prefixKeys],hint:e.hint&&{...e.hint}}]));function ci(e){for(let e of ti){let t=si.get(e.id);if(!t)continue;let n=e;n.keys=[...t.keys],n.prefixKeys=t.prefixKeys&&[...t.prefixKeys],n.hint=t.hint&&{...t.hint}}for(let t of e.rows){let e=ti.find(e=>e.id===t.id);e&&(e.keys=[...t.keys],e.prefixKeys=t.prefixKeys&&[...t.prefixKeys],e.hint=t.hint&&{...t.hint})}oi.set(e)}async function li(e){try{ci(await e.request(`keybindings.get`))}catch{}}function ui(e){let t=v(e.conn).hello;(0,g.useEffect)(()=>{if(!t)return;let n=()=>void li(e);return n(),window.addEventListener(`focus`,n),()=>window.removeEventListener(`focus`,n)},[t,e])}var di=()=>oi.get().prefix.key,fi=()=>{let e=di();return e===null?``:ai(e)};function pi(e,t=`direct`){let n=ti.find(t=>t.id===e),r=t===`prefix`?n?.prefixKeys?.[0]:n?.keys[0];return r===void 0?void 0:ai(r)}var mi=e=>ti.find(t=>t.id===e)?.keys??[];function hi(e){let t=fi(),n=pi(e,`prefix`);return t&&n?`${t} ${n}`:``}var gi=e=>si.get(e)?.prefixKeys??[];function _i(e,t){let n=oi.get().rows.find(t=>t.id===e),r=si.get(e),i=t===`prefix`?n?.prefixKeys:n?.keys,a=t===`prefix`?r?.prefixKeys:r?.keys;return i&&JSON.stringify(i)!==JSON.stringify(a??[])?i:void 0}function vi(e,t){for(let n of t){let t=e.find(e=>e.chord===n);if(t)return t}}function yi(e){return!e.dialog&&e.page!==`worktrees`&&e.page!==`update`}var bi=_({stale:!1,daemonVersion:null,bridgeVersion:null}),xi=2e4;async function Si(e){try{let t=await e.request(`daemon.info`);return bi.set({stale:t.stale,daemonVersion:t.daemonVersion,bridgeVersion:t.bridgeVersion}),t.stale}catch{return bi.get().stale}}function Ci(e){(0,g.useEffect)(()=>{let t=e.onOpen(()=>void Si(e)),n=window.setInterval(()=>void Si(e),xi);return()=>{t(),window.clearInterval(n)}},[e])}function wi(e){if(!bi.get().stale){W(K(`update`,`refresh.alreadyCurrent`),`error`);return}U.set((0,V.jsx)(xr,{title:K(`update`,`refresh.confirmTitle`),body:K(`update`,`refresh.confirmBody`),confirmLabel:K(`update`,`refresh.confirmLabel`),onConfirm:async()=>{await e.request(`daemon.restart`),W(K(`update`,`refresh.relaunching`));for(let t=0;t<20;t++)if(await new Promise(e=>window.setTimeout(e,1e3)),!await Si(e))return;throw Error(z(`layout.refreshTimeout`))}}))}function Ti({onRefresh:e}){B();let{stale:t,daemonVersion:n,bridgeVersion:r}=v(bi);if(v(oi),!t)return null;let i=K(`update`,`skew.hint`,{daemon:n?`v${n}`:K(`update`,`skew.olderBuild`),clientVersion:r??``,keys:hi(`app.refresh`)});return(0,V.jsxs)(`div`,{className:`mono ${wt}`,role:`alert`,children:[(0,V.jsx)(`b`,{children:K(`update`,`skew.title`)}),(0,V.jsx)(`span`,{children:i}),(0,V.jsx)(`button`,{type:`button`,className:an,onClick:e,children:K(`update`,`refresh.confirmLabel`)})]})}var Ei=[`info`,`success`,`warning`,`error`,`muted`],Di=4e3,Oi=4e3,ki=/^[A-Za-z0-9._:-]{1,64}$/,Ai={box:new Set([`type`,`direction`,`gap`,`padding`,`border`,`children`]),text:new Set([`type`,`text`,`tone`,`bold`]),button:new Set([`type`,`key`,`label`,`tone`]),input:new Set([`type`,`key`,`placeholder`,`value`])};function ji(e){return typeof e==`string`&&Ei.includes(e)}function Mi(e){return e===0||e===1||e===2||e===3}var Ni=class extends Error{};function Pi(e){let t=0,n=new Set,r=(e,i,a)=>{if(a>12)throw new Ni(`${i}: deeper than 12`);if(++t>400)throw new Ni(`more than 400 elements`);if(!e||typeof e!=`object`||Array.isArray(e))throw new Ni(`${i}: not an element`);let o=e,s=o.type;if(s!==`box`&&s!==`text`&&s!==`button`&&s!==`input`)throw new Ni(`${i}: unknown element ${JSON.stringify(s)}`);for(let e of Object.keys(o))if(!Ai[s].has(e))throw new Ni(`${i}: ${s} has no prop "${e}"`);if(o.tone!==void 0&&!ji(o.tone))throw new Ni(`${i}: tone must be one of ${Ei.join(`, `)}`);if(s===`text`){if(typeof o.text!=`string`||o.text.length>4e3)throw new Ni(`${i}: text must be a string of at most ${Di} chars`);if(o.bold!==void 0&&typeof o.bold!=`boolean`)throw new Ni(`${i}: bold must be boolean`);return{type:s,text:o.text,...o.tone===void 0?{}:{tone:o.tone},...o.bold?{bold:!0}:{}}}if(s===`button`||s===`input`){if(typeof o.key!=`string`||!ki.test(o.key))throw new Ni(`${i}: bad ${s} key`);if(n.has(o.key))throw new Ni(`${i}: duplicate key "${o.key}"`);n.add(o.key)}if(s===`input`){for(let e of[`placeholder`,`value`]){let t=o[e];if(t!==void 0&&(typeof t!=`string`||t.length>4e3))throw new Ni(`${i}: ${e} must be a string of at most ${Oi} chars`)}return{type:s,key:o.key,...o.placeholder===void 0?{}:{placeholder:o.placeholder},...o.value===void 0?{}:{value:o.value}}}if(s===`button`){if(typeof o.label!=`string`||o.label.length===0||o.label.length>40)throw new Ni(`${i}: label must be 1-40 chars`);return{type:s,key:o.key,label:o.label,...o.tone===void 0?{}:{tone:o.tone}}}if(o.direction!==void 0&&o.direction!==`row`&&o.direction!==`column`)throw new Ni(`${i}: direction must be "row" or "column"`);for(let e of[`gap`,`padding`])if(o[e]!==void 0&&!Mi(o[e]))throw new Ni(`${i}: ${e} must be 0-3`);if(o.border!==void 0&&typeof o.border!=`boolean`)throw new Ni(`${i}: border must be boolean`);if(!Array.isArray(o.children))throw new Ni(`${i}: box needs children`);return{type:s,...o.direction===void 0?{}:{direction:o.direction},...o.gap===void 0?{}:{gap:o.gap},...o.padding===void 0?{}:{padding:o.padding},...o.border?{border:!0}:{},children:o.children.map((e,t)=>r(e,`${i}.children[${t}]`,a+1))}};try{return{ok:!0,tree:r(e,`tree`,1)}}catch(e){if(e instanceof Ni)return{ok:!1,error:e.message};throw e}}function Fi(e){let t=e?.panes;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.plugin!=`string`||typeof t.id!=`string`||typeof t.title!=`string`)continue;let r=Pi(t.tree);r.ok&&n.push({plugin:t.plugin,id:t.id,title:t.title,tree:r.tree})}return n}function Ii(e){let t=[],n=(e,r,i)=>{if(e.type===`button`||e.type===`input`)t.push({kind:e.type,plugin:r,pane:i,key:e.key});else if(e.type===`box`)for(let t of e.children)n(t,r,i)};for(let t of e)n(t.tree,t.plugin,t.id);return t}function Li(e,t){return e!==null&&t!==null&&e.plugin===t.plugin&&e.pane===t.pane&&e.key===t.key}function Ri(e,t){return e.find(e=>Li(e,t))??e[0]??null}function zi(e,t,n){if(e.length===0)return null;let r=e.findIndex(e=>Li(e,t));return r<0?e[0]??null:e[(r+n+e.length)%e.length]??null}var Bi=`rove.web.selection`,Vi=`null`,Hi=300;function Ui(){try{let e=JSON.parse(localStorage.getItem(Bi)??`null`);if(e&&typeof e==`object`&&`taskId`in e&&typeof e.taskId==`string`)return{taskId:e.taskId,tabId:`tabId`in e&&typeof e.tabId==`string`?e.tabId:null}}catch{}return{taskId:null,tabId:null}}function Wi(e){return!!e&&typeof e==`object`&&`tasks`in e&&Array.isArray(e.tasks)}var Gi=`rove.web.visits`,Ki=20;function qi(){try{let e=JSON.parse(localStorage.getItem(Gi)??`[]`);return Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&typeof e.taskId==`string`):[]}catch{return[]}}function Ji(e,t){if(t)return e?.tasks.find(e=>e.id===t)??e?.archived?.find(e=>e.id===t)}function Yi(e,t,n,r){let i=(e,t)=>e.some(e=>e.id===t&&!e.deleting),a=n.taskId;if(a===null||!i(e,a)||i(t,a))return null;let o=r.find(e=>e.taskId!==a&&i(t,e.taskId));return o?{taskId:o.taskId,tabId:o.tabId}:{taskId:null,tabId:null}}var Xi=class{client;tasks=_(null);remote=_([]);tabs=_({});tabsSettled=_(!1);mods=_([]);installedMods=_(new Set);selection=_(Ui());visits=_(qi());tabTimer=null;tabsLoaded=!1;tabSweep=0;pendingSelect=null;selectIntent=0;provisioning=new Map;viewingSent=Vi;taskShown=!0;viewingExtras=()=>({});constructor(e){this.client=e,e.onOpen(()=>{e.request(`tasks.subscribe`).then(e=>this.acceptTasks(e)),this.viewingSent=Vi,this.reportViewing(),this.refreshMods()}),typeof document<`u`&&typeof document.addEventListener==`function`&&document.addEventListener(`visibilitychange`,()=>{this.reportViewing(),document.visibilityState===`visible`&&this.refreshMods()}),typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`pagehide`,()=>this.reportViewing(!0)),e.on(`tasks`,e=>{Wi(e)&&this.acceptTasks(e)}),e.on(`tabs`,()=>this.scheduleTabRefresh()),e.on(`mods`,e=>this.mods.set(Fi(e)??[]))}async refreshMods(){try{let{mods:e}=await this.client.request(`builtinMods.list`);this.installedMods.set(new Set(e.filter(e=>e.installed).map(e=>e.id)))}catch{}}onSelect=()=>{};setTaskShown(e){this.taskShown!==e&&(this.taskShown=e,this.reportViewing())}select(e,t=null){this.onSelect();let n=++this.selectIntent;if(this.tasks.get()?.tasks.find(t=>t.id===e)?.noWorktree){this.provisioning.has(e)?this.provisioning.set(e,{intent:n,tabId:t}):this.provisionThenSelect(e,{intent:n,tabId:t});return}this.commitSelection(e,t)}commitSelection(e,t){let n=this.tabs.get()[e]??[],r={taskId:e,tabId:t??Zi(n)?.id??null};this.selection.set(r),localStorage.setItem(Bi,JSON.stringify(r));let i=[{...r,at:Date.now()},...this.visits.get().filter(e=>e.taskId!==r.taskId||e.tabId!==r.tabId)].slice(0,Ki);this.visits.set(i),localStorage.setItem(Gi,JSON.stringify(i)),this.reportViewing(),e in this.tabs.get()||this.scheduleTabRefresh()}reportViewing(e=!1){let{taskId:t,tabId:n}=this.selection.get(),r=e||typeof document<`u`&&document.visibilityState===`hidden`||!t||!this.taskShown?null:{taskId:t,...n?{tabId:n}:{},...this.viewingExtras()},i=JSON.stringify(r);i!==this.viewingSent&&(this.viewingSent=i,this.client.request(`ui.viewing`,r??{taskId:null}).catch(()=>{this.viewingSent===i&&(this.viewingSent=Vi)}))}async provisionThenSelect(e,t){this.provisioning.set(e,t);let n=!0;try{await this.client.request(`task.ensureWorktree`,{taskId:e})}catch(e){n=!1,W(e instanceof Error?e.message:String(e),`error`)}let r=this.provisioning.get(e)??t;this.provisioning.delete(e),n&&(this.markProvisioned(e),(this.tasks.get()?.tasks.some(t=>t.id===e)??!1)&&r.intent===this.selectIntent&&this.commitSelection(e,r.tabId))}markProvisioned(e){let t=this.tasks.get();if(!t)return;let n=t.tasks.map(t=>t.id===e?{...t,noWorktree:void 0}:t);this.tasks.set({...t,tasks:n})}selectWhenListed(e){this.tasks.get()?.tasks.some(t=>t.id===e)?this.select(e):this.pendingSelect=e}engineTarget(e){let{taskId:t,tabId:n}=this.selection.get(),r=t===e?this.tabs.get()[e]?.find(e=>e.id===n):void 0;return r?.kind===`engine`?{taskId:e,tabId:r.id}:{taskId:e}}async refreshTabsNow(){await this.refreshTabs(this.tabbedTasks())}tabbedTasks(){let e=this.tasks.get(),t=e?.archived?.find(e=>e.id===this.selection.get().taskId);return[...e?.tasks??[],...t?[t]:[],...this.remote.get().filter(e=>!e.machine?.stale)]}acceptTasks(e){let t=[...this.tasks.get()?.tasks??[],...this.remote.get()];this.remote.set(e.tasks.filter(e=>e.machine)),this.tasks.set({...e,tasks:e.tasks.filter(e=>!e.machine)});let n=Yi(t,e.tasks,this.selection.get(),this.visits.get());n?.taskId?this.commitSelection(n.taskId,n.tabId):n&&(this.selection.set(n),localStorage.setItem(Bi,JSON.stringify(n)),this.reportViewing()),this.pendingSelect&&e.tasks.some(e=>e.id===this.pendingSelect)&&(this.select(this.pendingSelect),this.pendingSelect=null),this.scheduleTabRefresh()}scheduleTabRefresh(){if(this.tabTimer!==null)return;let e=this.tabsLoaded?Hi:0;this.tabsLoaded=!0,this.tabTimer=window.setTimeout(()=>{this.tabTimer=null,this.refreshTabs(this.tabbedTasks())},e)}async refreshTabs(e){let t=++this.tabSweep,n=e.filter(e=>!e.deleting);if(await Promise.all(n.map(async e=>{let n;try{n=(await this.client.request(`task.tabs`,{taskId:e.id})).tabs}catch{return}t===this.tabSweep&&(this.tabs.set({...this.tabs.get(),[e.id]:n}),this.reselectIfClosed(e.id))})),t!==this.tabSweep)return;this.tabsSettled.get()||this.tabsSettled.set(!0);let r=new Set(n.map(e=>e.id));this.tabs.set(Object.fromEntries(Object.entries(this.tabs.get()).filter(([e])=>r.has(e))))}reselectIfClosed(e){let t=this.selection.get();t.taskId===e&&((this.tabs.get()[e]??[]).some(e=>e.id===t.tabId)||this.commitSelection(e,null))}};function Zi(e){return e.find(e=>e.alive!==!1)??e[0]}function Qi({model:e}){let t=v(e.selection),n=v(e.tasks),r=v(e.remote),i=Ji(n,t.taskId)??r.find(e=>e.id===t.taskId),a=n?.attention.filter(e=>e.unread).length??0,o=`${a>0?`(${a}) `:``}${i?`${i.label} - `:``}rove`;return(0,g.useEffect)(()=>{document.title=o},[o]),null}var $i=[`sidebar`,`workspace`,`files`];function ea(e,t,n){let r=$i.filter(e=>e!==`files`||n.filesVisible),i=r.indexOf(e);if(i<0)return(t>0?r[r.length-1]:r[0])??null;let a=Math.min(Math.max(i+t,0),r.length-1);return a===i?null:r[a]??null}var ta=`.split-leaf.is-active textarea.xterm-helper-textarea`,na={sidebar:[`.rail`,`.rail`],workspace:[`.workspace`,ta],files:[`.side-panel`,`.side-view:not([hidden]) :is([tabindex='0'], input)`]};function ra(){for(let e of document.querySelectorAll(ta))if(e.closest(`[data-stream]`)?.getClientRects().length)return e;return null}function ia(){let e=ra();return e?.focus(),e!==null}function aa(e){let t=ea(Object.keys(na).find(e=>document.activeElement?.closest(na[e][0]))??`sidebar`,e,{filesVisible:document.querySelector(na.files[0])!==null});t&&document.querySelector(na[t][1])?.focus()}var oa=[];function sa(e){oa.push(e)}var ca={workspace:`workspace`,sidebar:`sidebar`,files:`files`,terminal:`terminal`};function la(){let e=oa.flatMap(e=>e()),t=new Set(e.filter(e=>!e.prefix).map(e=>e.id)),n=e.map(e=>{let t=_i(e.id,e.prefix?`prefix`:`direct`);return t?{...e,chords:t}:e});for(let r of e){let e=r.prefix?_i(r.id,`direct`):void 0;if(!e||e.length===0||t.has(r.id))continue;t.add(r.id);let i=ti.find(e=>e.id===r.id)?.scope??`global`;n.push({...r,prefix:!1,chords:e,...ca[i]?{surface:ca[i]}:{}})}return n}function ua(e,t){return!e.surface||e.surface===t||t===`terminal`&&e.surface===`workspace`}function da(e,t){return e.surface===t?0:e.surface?1:2}function fa(){let e=document.activeElement;return e instanceof Element?e.closest(`.xterm`)?`terminal`:e.closest(`.rail`)?`sidebar`:e.closest(`.files`)?`files`:e.closest(`.workspace, .side-panel`)?`workspace`:null:null}function pa(e,t){let n=new Set,r=new Set;for(let i of la())!ua(i,t)||i.live?.(e)===!1||(i.prefix?r:n).add(i.id);return{direct:n,prefix:r,inputPassthrough:t===`terminal`}}function ma(){let e=new Set(la().map(e=>e.id));return ti.filter(t=>e.has(t.id))}var ha=new Map,ga=_(null);function _a(e){return ha.set(e.stream,e),()=>{ha.get(e.stream)===e&&ha.delete(e.stream),ga.get()===e&&ga.set(null)}}function va(e){return ha.get(e)}sa(()=>[{id:`terminal.scroll-up`,chords:[`ctrl+pageup`],prefix:!1,surface:`terminal`,run:()=>ga.get()?.scrollPages(-1)},{id:`terminal.scroll-down`,chords:[`ctrl+pagedown`],prefix:!1,surface:`terminal`,run:()=>ga.get()?.scrollPages(1)},{id:`terminal.reset`,chords:[`f5`],prefix:!1,surface:`terminal`,run:()=>ga.get()?.reset()}]);var ya={INPUT:!0,TEXTAREA:!0,SELECT:!0},ba=`.rail, .side-panel, dialog, [role=dialog], [role=menu], [role=listbox]`;function xa(e){return!e||e.tagName===`BODY`||e.tagName===`HTML`?`none`:e.closest(`.xterm`)?`terminal`:ya[e.tagName]===!0||e.isContentEditable?`field`:e.closest(ba)?`pane`:`loose`}function Sa(e,t,n){return e.key!==`Escape`||e.defaultPrevented||e.isComposing||e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||n.overlay||!n.terminal?!1:t===`none`||t===`loose`}function Ca(){(0,g.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;let t=ra(),n=document.activeElement;if(!Sa(e,xa(n instanceof HTMLElement?n:null),{overlay:U.get()!==null||fn.get()!==null||hn.get()!==null||bn.get()!==null,terminal:t!==null}))return;let r=t?.closest(`[data-stream]`)?.dataset.stream,i=r?va(r):void 0;!t||!i||(e.preventDefault(),t.focus(),i.input(`\x1B`))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[])}function wa(e){return e.focusedPane===`sidebar`?`sidebar`:e.hasSelection||e.hasOpenPage?`content`:`sidebar`}var Ta=`(max-width: 559px)`,Ea=_(`sidebar`),Da=()=>Ea.set(`workspace`),Oa=()=>Ea.set(`sidebar`);function ka(e){hn.set(e),Da()}function Aa(e){_n.set(e),ka(`compare`)}var ja,Ma=()=>(ja??=window.matchMedia(Ta),ja),Na=()=>Ma().matches,Pa=e=>{let t=Ma();return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)};function Fa(){return(0,g.useSyncExternalStore)(e=>{let t=Ma();return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},()=>Ma().matches)}function Ia(e,t,n){return wa({focusedPane:e,hasSelection:t,hasOpenPage:n})}var La=Reflect.get(globalThis,`__roveRelay`);function Ra(e,t){return La?La.fetch(e,t):fetch(e,t)}function za(e,t){return La?new La.WebSocket(e,t):new WebSocket(e,t)}function Ba(e,t){let n=t&&typeof t==`object`?t:{};if(e===200&&typeof n.token==`string`&&/^[A-Za-z0-9_-]{43}$/.test(n.token))return{kind:`ok`,token:n.token};if(e===429){if(n.locked===`global`)return{kind:`lockedHost`};let e=typeof n.retryAfterSeconds==`number`?n.retryAfterSeconds:900;return{kind:`locked`,minutes:Math.max(1,Math.ceil(e/60))}}return e===401?{kind:`wrong`}:{kind:`unreachable`}}async function Va(e=Ra){try{let t=await e(`/login`,{headers:{Accept:`application/json`},cache:`no-store`});return!t.ok||!(t.headers.get(`content-type`)??``).includes(`application/json`)?!1:(await t.json()).password===!0}catch{return!1}}async function Ha(e,t=Ra){try{let n=await t(`/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:e}),credentials:`omit`}),r=Ba(n.status,await n.json().catch(()=>null));return r.kind===`ok`&&o(r.token),r}catch{return{kind:`unreachable`}}}async function Ua(e=Ra){let t=a();s(),t&&await e(`/logout`,{method:`POST`,headers:{Authorization:`Bearer ${t}`}}).catch(()=>{})}function Wa(e){if(!e)return null;switch(e.kind){case`ok`:return null;case`wrong`:return z(`login.wrong`);case`locked`:return z(`login.locked`,{minutes:e.minutes});case`lockedHost`:return z(`login.lockedHost`);case`unreachable`:return z(`login.unreachable`)}}function Ga(){B();let[e,t]=(0,g.useState)(``),[n,r]=(0,g.useState)(!1),[i,a]=(0,g.useState)(null),o=Wa(i);return(0,V.jsx)(`div`,{className:Jt,children:(0,V.jsxs)(`form`,{className:Yt,onSubmit:async i=>{if(i.preventDefault(),n||!e)return;r(!0);let o=await Ha(e);if(o.kind===`ok`){window.location.reload();return}t(``),a(o),r(!1)},children:[(0,V.jsxs)(`span`,{className:Kt,children:[(0,V.jsx)(`span`,{className:qt,children:`[`}),` rove `,(0,V.jsx)(`span`,{className:qt,children:`]`})]}),(0,V.jsx)(`h1`,{className:`${rn} text-muted`,children:z(`login.title`)}),(0,V.jsx)(`p`,{className:`text-muted`,children:z(`login.body`)}),(0,V.jsx)(`input`,{className:sn,type:`password`,autoComplete:`current-password`,"aria-label":z(`login.field`),placeholder:z(`login.field`),autoFocus:!0,value:e,disabled:n,onChange:e=>{t(e.target.value),a(null)}}),o&&(0,V.jsx)(`p`,{className:`text-error`,role:`alert`,children:o}),(0,V.jsx)(`div`,{className:cn,children:(0,V.jsx)(`button`,{type:`submit`,className:Le(),disabled:n||!e,children:z(n?`login.checking`:`login.submit`)})})]})})}function Ka(e){return(0,V.jsx)(`svg`,{className:`block size-2.5 flex-none transition-[rotate,opacity] duration-120 ease-[ease] motion-reduce:transition-none ${e.right?`-rotate-90 is-right`:``} ${e.className??``}`,viewBox:`0 0 10 10`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M2.5 3.75 5 6.25l2.5-2.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`,strokeLinecap:`round`,strokeLinejoin:`round`})})}var qa=120;function Ja(e,t,n,r=e-t){return e+t+8<=n?e:Math.max(8,Math.min(r,n-t-8))}function Ya(e){let{item:t}=e;return(0,V.jsxs)(`button`,{ref:e.rowRef,type:`button`,role:t.checked===void 0?`menuitem`:`menuitemradio`,"aria-checked":t.checked,"aria-haspopup":t.children?`menu`:void 0,"aria-expanded":t.children?!!e.open:void 0,className:Kn({selected:e.selected,open:e.open,danger:t.danger}),onMouseEnter:e.onEnter,onMouseLeave:e.onLeave,onClick:e.onPick,children:[(0,V.jsx)(`span`,{children:t.label}),t.children?(0,V.jsx)(Ka,{right:!0,className:Yn(!!(e.selected||e.open))}):t.checked?(0,V.jsx)(`span`,{className:Xn,"aria-hidden":!0,children:`✓`}):t.key&&(0,V.jsx)(`span`,{className:Jn({selected:e.selected,danger:t.danger}),children:t.key})]})}function Xa(){let e=v(fn),[t,n]=(0,g.useState)(0),[r,i]=(0,g.useState)(null),[a,o]=(0,g.useState)(-1),[s,c]=(0,g.useState)(!1),l=(0,g.useRef)(null),u=(0,g.useRef)(null),d=(0,g.useRef)([]),f=(0,g.useRef)(void 0),[p,m]=(0,g.useState)({x:0,y:0}),[h,_]=(0,g.useState)({x:0,y:0});if((0,g.useLayoutEffect)(()=>{if(!e||!l.current)return;n(e.fromKeyboard?0:-1),i(null),c(!1);let{width:t,height:r}=l.current.getBoundingClientRect();m({x:Ja(e.x,t,window.innerWidth),y:Ja(e.y,r,window.innerHeight)});let a=e.target;return a?.setAttribute(`data-menu-open`,``),()=>a?.removeAttribute(`data-menu-open`)},[e]),(0,g.useLayoutEffect)(()=>{let e=r===null?null:d.current[r];if(!e||!l.current||!u.current)return;let t=l.current.getBoundingClientRect(),n=e.getBoundingClientRect(),{width:i,height:a}=u.current.getBoundingClientRect();_({x:Ja(t.right+2,i,window.innerWidth,t.left-i-2),y:Ja(n.top-5,a,window.innerHeight,n.bottom+5-a)})},[r]),(0,g.useEffect)(()=>()=>window.clearTimeout(f.current),[]),(0,g.useEffect)(()=>{if(!e)return;let d=e.items,f=r===null?[]:d[r]?.children??[],p=()=>fn.set(null),m=e=>{e?.run&&(p(),e.run())},h=(e,t,n)=>e(e=>n===1?e>=t?0:e+1:e<=0?t:e-1),g=e=>{let l=e.key;if(s&&r!==null){let t=f.length-1;if(l===`Escape`||l===`ArrowLeft`||l===`h`)i(null),c(!1);else if(l===`ArrowDown`||l===`j`)h(o,t,1);else if(l===`ArrowUp`||l===`k`)h(o,t,-1);else if(l===`Home`)o(0);else if(l===`End`)o(t);else if(l===`Enter`)m(f[a]);else return;e.preventDefault(),e.stopPropagation();return}let u=d.length-1,g=d[t],_=()=>{i(t),c(!0),o(0)};if(l===`Escape`)p();else if(l===`ArrowDown`||l===`j`)h(n,u,1);else if(l===`ArrowUp`||l===`k`)h(n,u,-1);else if(l===`Home`)n(0);else if(l===`End`)n(u);else if((l===`ArrowRight`||l===`l`)&&g?.children)_();else if(l===`Enter`)g?.children?_():m(g);else return;e.preventDefault(),e.stopPropagation()},_=e=>{e.target instanceof Node&&(l.current?.contains(e.target)||u.current?.contains(e.target))||p()};return window.addEventListener(`keydown`,g,!0),window.addEventListener(`mousedown`,_),()=>{window.removeEventListener(`keydown`,g,!0),window.removeEventListener(`mousedown`,_)}},[e,t,r,a,s]),!e)return null;let y=r===null?null:e.items[r]?.children,b=e=>{e.run&&(fn.set(null),e.run())},x=e=>{window.clearTimeout(f.current),i(e),c(!1),o(-1)};return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{ref:l,className:Gn(),role:`menu`,style:{left:p.x,top:p.y},children:e.items.map((a,o)=>(0,V.jsxs)(g.Fragment,{children:[o>0&&a.section!==e.items[o-1]?.section&&(0,V.jsx)(`hr`,{className:`-mx-1 my-1 h-px flex-none border-none bg-line`}),(0,V.jsx)(Ya,{item:a,rowRef:e=>{d.current[o]=e},selected:o===t,open:o===r,onEnter:()=>{n(o),window.clearTimeout(f.current),a.children?f.current=window.setTimeout(()=>x(o),qa):i(null)},onLeave:()=>{window.clearTimeout(f.current),o!==r&&n(-1)},onPick:()=>a.children?x(o):b(a)})]},a.label))}),y&&(0,V.jsx)(`div`,{ref:u,className:Gn(!0),role:`menu`,style:{left:h.x,top:h.y},children:y.map((e,t)=>(0,V.jsx)(Ya,{item:e,selected:t===a,onEnter:()=>{o(t),c(!0)},onLeave:()=>o(-1),onPick:()=>b(e)},e.label))})]})}function Za(){let e=v(U),t=v(mn);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(Xa,{}),e,(0,V.jsx)(`div`,{className:Zn,"aria-live":`polite`,children:t.map(e=>{let t=`${$n(e.tone===`error`)} ${e.leaving?`is-leaving`:``}`,n=e.action;return n?(0,V.jsxs)(`div`,{className:`${t} ${Qn}`,children:[(0,V.jsx)(`span`,{children:e.text}),(0,V.jsx)(H,{onClick:()=>{On(e.id),n.run()},children:`[ ${n.label} ]`})]},e.id):(0,V.jsx)(`button`,{type:`button`,className:t,onClick:()=>On(e.id),children:e.text},e.id)})})]})}function Qa(e){return e.urls[e.at]??``}function $a(e){try{return new URL(e).host.replace(/^www\./,``)}catch{return e}}function eo(){return{kind:`browser`,tabs:[{id:`t1`,urls:[],at:-1}],active:`t1`,recent:[`t1`],next:2}}function to(e,t){return!e.tabs.some(e=>e.id===t)||e.active===t&&e.recent.at(-1)===t?e:{...e,active:t,recent:[...e.recent.filter(e=>e!==t),t]}}function no(e){let t=e;for(;t.tabs.length>12;){let e=t.tabs.filter(e=>e.id!==t.active).sort((e,n)=>t.recent.indexOf(e.id)-t.recent.indexOf(n.id))[0];if(!e)break;t=lo(t,e.id)??t}return t}function ro(e,t){let n=`t${e.next}`,r={id:n,urls:t,at:t.length-1};return no(to({...e,tabs:[...e.tabs,r],next:e.next+1},n))}function io(e){return ro(e,[])}function ao(e,t){return{...e,tabs:e.tabs.map(e=>e.id===t.id?t:e)}}function oo(e,t,n){let r=e.tabs.find(e=>e.id===t);if(!r||Qa(r)===n)return e;let i=[...r.urls.slice(0,r.at+1),n].slice(-30);return ao(e,{...r,urls:i,at:i.length-1})}function so(e,t,n){let r=e.tabs.find(e=>e.id===t);return!r||n===r.at||n<0||n>=r.urls.length?e:ao(e,{...r,at:n})}function co(e,t){let n=e.tabs.find(e=>Qa(e)===t);if(n)return to(e,n.id);let r=e.tabs.find(e=>Qa(e)===``);return r?oo(to(e,r.id),r.id,t):ro(e,[t])}function lo(e,t){let n=e.tabs.filter(e=>e.id!==t);if(n.length===0)return null;let r=e.recent.filter(e=>e!==t);if(e.active!==t)return{...e,tabs:n,recent:r};let i=[...r].reverse().find(e=>n.some(t=>t.id===e))??n[0].id;return{...e,tabs:n,active:i,recent:[...r.filter(e=>e!==i),i]}}function uo(e,t){return e.tabs.some(e=>e.id===t)?lo(e,t):e}function fo(e,t){let n=e.tabs.find(e=>e.id===t);return n?{...e,tabs:[n],active:t,recent:[t]}:e}function po(e,t,n){let r=new Set(n.map(e=>e.id)),i=[...e.filter(e=>r.has(e)&&e!==t),...r.has(t)?[t]:[]];return i.slice(Math.max(0,i.length-3))}function mo(e,t,n,r){if(!Array.isArray(e))return null;let i=[];for(let t of e){if(!t||typeof t!=`object`)continue;let e=t;if(typeof e.id!=`string`||!/^t\d+$/.test(e.id)||i.some(t=>t.id===e.id))continue;let n=Array.isArray(e.urls)?e.urls.filter(e=>typeof e==`string`&&e!==``).slice(-30):[],r=typeof e.at==`number`&&Number.isInteger(e.at)?e.at:n.length-1;i.push({id:e.id,urls:n,at:n.length===0?-1:Math.min(n.length-1,Math.max(0,r))})}let a=i[0];if(!a)return null;let o=new Set(i.map(e=>e.id)),s=Array.isArray(n)?n.filter(e=>typeof e==`string`&&o.has(e)):[],c=typeof t==`string`&&o.has(t)?t:s.at(-1)??a.id,l=Math.max(...i.map(e=>Number(e.id.slice(1))));return{kind:`browser`,tabs:i,active:c,recent:[...s.filter(e=>e!==c),c],next:Math.max(l+1,typeof r==`number`&&Number.isInteger(r)?r:0)}}var ho=[`quota`,`files`,`file`,`diff`,`chat`,`browser`],go=1e3;function _o(){return{columns:[{kind:`files`}],weights:{}}}function vo(e,t){return e.columns.find(e=>e.kind===t)}function yo(e){return e.slice(e.lastIndexOf(`/`)+1)}function bo(e,t){return{...e,columns:e.columns.map(e=>e.kind===t.kind?t:e)}}function xo(e){return[...e].sort((e,t)=>ho.indexOf(e.kind)-ho.indexOf(t.kind))}function So(e,t){return{...e,columns:xo([...e.columns,t])}}function Co(e,t){return vo(e,t)||t===`file`?e:So(e,t===`diff`?{kind:t,path:`.`,scope:`working`}:t===`browser`?eo():{kind:t})}function wo(e,t){let n=vo(e,`file`);return n?n.kind===`file`&&n.path===t?e:bo(e,{kind:`file`,path:t}):So(e,{kind:`file`,path:t})}function To(e,t,n){let r={kind:`diff`,path:t,scope:n},i=vo(e,`diff`);return i?i.kind===`diff`&&i.path===t&&i.scope===n?e:bo(e,r):So(e,r)}function Eo(e,t){let n=vo(e,`browser`);return n?.kind===`browser`?bo(e,co(n,t)):So(e,co(eo(),t))}function Do(e,t){if(!vo(e,t))return e;let{[t]:n,...r}=e.weights;return{columns:e.columns.filter(e=>e.kind!==t),weights:r}}function Oo(e,t){let n=vo(e,`browser`);if(n?.kind!==`browser`)return e;let r=t(n);return r===n?e:r?bo(e,r):Do(e,`browser`)}function ko(e,t,n){if(t&&vo(e,n)){let t=Do(e,n);return{panel:t,open:t.columns.length>0}}return{panel:Co(e,n),open:!0}}function Ao(e){let t=e.columns.flatMap(t=>{let n=e.weights[t.kind];return n!==void 0&&n>0?[n]:[]}),n=t.length>0?t.reduce((e,t)=>e+t,0)/t.length:1,r=e.columns.map(t=>e.weights[t.kind]||n),i=r.reduce((e,t)=>e+t,0);return r.map(e=>e/i*go)}function jo(e,t){let n=t.reduce((e,t)=>e+t,0);if(t.length!==e.columns.length||!(n>0))return e;let r=Object.fromEntries(e.columns.map((e,r)=>[e.kind,Math.round(t[r]/n*1e3)/1e3]));return e.columns.every(t=>Math.abs((e.weights[t.kind]??0)-(r[t.kind]??0))<.001)?e:{...e,weights:r}}function Mo(e){return Object.keys(e.weights).length===0?e:{...e,weights:{}}}function No(e,t,n,r){let i=e[t],a=e[t+1];if(i===void 0||a===void 0)return[...e];let o=i+a,s=Math.min(r,o/2),c=Math.max(s,Math.min(o-s,i+n));return e.map((e,n)=>n===t?c:n===t+1?o-c:e)}var Po=ho.filter(e=>e!==`chat`&&e!==`file`),Fo=_(`terminal`),Io=`rove.web.panelWidth`,Lo=`rove.web.panelOpen`,Ro=_((()=>{let e=Number(localStorage.getItem(Io));return Number.isFinite(e)&&e>0?e:null})());Ro.subscribe(()=>{let e=Ro.get();e===null?localStorage.removeItem(Io):localStorage.setItem(Io,String(Math.round(e)))}),Ro.subscribe(Mn);var zo=_(localStorage.getItem(Lo)===`1`);zo.subscribe(()=>localStorage.setItem(Lo,zo.get()?`1`:`0`));var Bo=_(!1);zo.subscribe(()=>{zo.get()||Bo.set(!1)});function Vo(e,t,n=window.innerWidth){let r=Math.max(280,n-t-320);return Math.max(280,Math.min(r,Math.round(e)))}function Ho(e,t,n=window.innerWidth){return e<2?null:Vo(Math.max(300,Math.min(440,n*.28))*e,t,n)}var Uo=[`files`,`diff`,`browser`];function Wo(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.taskId==`string`&&t.taskId!==``&&Uo.includes(t.view)&&typeof t.at==`number`&&(t.url===void 0||typeof t.url==`string`)&&(t.path===void 0||typeof t.path==`string`)}function Go(e){return e.narrow?{panel:!1,panelOpen:!1,narrow:!0}:{panel:!0,panelOpen:e.panelOpen&&!e.zen,narrow:!1}}function Ko(e,t){return{tab:e.path?e.view===`files`?`file`:`diff`:e.view,...e.view===`browser`&&e.url?{url:e.url}:{},...e.view!==`browser`&&e.path?{path:e.path}:{},show:t.taskId===e.taskId&&!t.narrow}}function qo(e,t){return t.url?Eo(e,t.url):t.path?t.tab===`file`?wo(e,t.path):To(e,t.path,`working`):Co(e,t.tab)}var Jo=[`files`,`chat`,`diff`,`browser`,`quota`],Yo=e=>e===`branch`||e===`task`?e:`working`;function Xo(e){if(!e||typeof e!=`object`)return null;let t=e;return t.kind===`files`||t.kind===`chat`||t.kind===`quota`?{kind:t.kind}:t.kind===`file`&&typeof t.path==`string`&&t.path!==``&&t.path!==`.`?{kind:`file`,path:t.path}:t.kind===`diff`&&typeof t.path==`string`&&t.path!==``?{kind:`diff`,path:t.path,scope:Yo(t.scope)}:t.kind===`browser`?mo(t.tabs,t.active,t.recent,t.next):null}function Zo(e,t){if(!e||typeof e!=`object`)return{};let n=e,r=t.flatMap(({kind:e})=>{let t=n[e];return typeof t==`number`&&Number.isFinite(t)&&t>0?[[e,t]]:[]});return Object.fromEntries(r)}function Qo(e){let t=[e.top,e.bottom].map(e=>e&&typeof e==`object`&&`tabs`in e&&Array.isArray(e.tabs)?e.tabs:null);return t[0]?{tabs:t.flatMap(e=>e??[]).filter(e=>!!e&&typeof e==`object`&&/^t\d+$/.test(String(e.id))),recent:Array.isArray(e.recent)?e.recent.filter(e=>typeof e==`string`):[]}:null}function $o(e){let t=Qo(e);if(!t)return null;let n=[...new Set(t.tabs.map(e=>e.kind))],r=[];for(let i of n){if((i===`files`||i===`chat`||i===`quota`)&&r.push({kind:i}),i===`diff`){let e=t.tabs.filter(e=>e.kind===`diff`&&typeof e.path==`string`&&e.path!==``),n=[...t.recent].reverse().map(t=>e.find(e=>e.id===t)).find(e=>e)??e[0];n&&r.push({kind:`diff`,path:n.path,scope:Yo(n.scope)})}if(i===`browser`){let n=mo(t.tabs.filter(e=>e.kind===`browser`),void 0,t.recent,e.next);n&&r.push(n)}}return{columns:xo(r),weights:{}}}function es(e){if(!e||typeof e!=`object`)return null;let t=e;if(!Array.isArray(t.columns))return $o(t);let n=[];for(let e of t.columns){let t=Xo(e);t&&!n.some(e=>e.kind===t.kind)&&n.push(t)}return{columns:xo(n),weights:Zo(t.weights,n)}}function ts(e,t){let n=_o(),r=typeof t==`string`&&t!==``?t:``;return e!==`browser`&&!r?n:{...n,columns:[...n.columns,r?co(eo(),r):eo()]}}function ns(e){try{let t=JSON.parse(e??`{}`);return t&&typeof t==`object`&&!Array.isArray(t)?Object.entries(t):[]}catch{return[]}}function rs(e,t,n){let r=Object.fromEntries(Object.entries(e).filter(([e])=>e!==t));r[t]=n;for(let e of Object.keys(r).slice(0,-50))delete r[e];return r}function is(e,t){let n={};for(let[t,r]of ns(e)){let e=es(r);e&&(n[t]=e)}let r=new Map(ns(t.tab).filter(([,e])=>Jo.includes(e))),i=new Map(ns(t.url)),a=[...new Set([...r.keys(),...i.keys()])].filter(e=>!(e in n));n={...Object.fromEntries(a.map(e=>[e,ts(r.get(e),i.get(e))])),...n};for(let e of Object.keys(n).slice(0,-50))delete n[e];return n}var as=`rove.web.panels`,os=`rove.web.panelTab`,ss=`rove.web.panelUrl`;function cs(){let e={tab:localStorage.getItem(os),url:localStorage.getItem(ss)},t=is(localStorage.getItem(as),e);return(e.tab!==null||e.url!==null)&&(localStorage.setItem(as,JSON.stringify(t)),localStorage.removeItem(os),localStorage.removeItem(ss)),t}var ls=_(cs()),us=_o();function ds(e){return v(ls)[e]??us}function fs(e){let t=ds(e??``);return v(zo)&&(e===null||t.columns.length>0)}function ps(e,t){let n=ls.get()[e]??us,r=t(n);if(r===n)return;let i=rs(ls.get(),e,r);ls.set(i),localStorage.setItem(as,JSON.stringify(i))}function ms(e,t){ps(e,e=>Co(e,t)),zo.set(!0),Na()&&Fo.set(t)}function hs(e,t){let n=ko(ls.get()[e]??us,zo.get()&&!yn.get(),t);ps(e,()=>n.panel),zo.set(n.open),n.open&&yn.get()&&yn.set(!1)}function gs(e){ps(e.taskId,t=>To(t,e.path,e.scope)),zo.set(!0),yn.get()&&yn.set(!1),Na()&&Fo.set(`diff`)}function _s(e,t){ps(e,e=>wo(e,t)),zo.set(!0),yn.get()&&yn.set(!1),Na()&&Fo.set(`file`)}function vs(e,t){ps(e,e=>Eo(e,t)),zo.set(!0),yn.get()&&yn.set(!1),Na()&&Fo.set(`browser`)}function ys(e,t){let n=ls.get()[e]??us;!Na()&&n.columns.length===0&&zo.set(!1),Na()&&Fo.get()===t&&!vo(n,t)&&ms(e,`files`)}function bs(e,t){ps(e,e=>Do(e,t)),ys(e,t)}function xs(e,t){ps(e,e=>Oo(e,t)),ys(e,`browser`)}function Ss(e,t){xs(e,e=>uo(e,t))}function Cs(e,t){let n=Ko(e,{taskId:t,narrow:Na()});ps(e.taskId,e=>qo(e,n)),n.show&&(zo.set(!0),yn.get()&&yn.set(!1))}var ws={Enter:`return`," ":`space`,Escape:`escape`,ArrowUp:`up`,ArrowDown:`down`,ArrowLeft:`left`,ArrowRight:`right`,PageUp:`pageup`,PageDown:`pagedown`};function Ts(e){if(e.altKey&&e.code){let t=/^Key([A-Z])$/.exec(e.code);if(t?.[1])return t[1].toLowerCase();let n=/^Digit(\d)$/.exec(e.code);if(n?.[1])return n[1]}return ws[e.key]??e.key.toLowerCase()}function Es(e){let t=Ts(e),n=t===`return`?[`return`,`enter`]:[t],r=[];e.ctrlKey&&r.push(`ctrl`),e.metaKey&&r.push(`cmd`),e.altKey&&r.push(`alt`);let i=t.length===1;return e.shiftKey&&!i&&r.push(`shift`),r.length===0?e.shiftKey&&i?[...n.map(e=>`shift+${e}`),...n]:n:e.shiftKey&&i?[]:n.map(e=>`${r.join(`+`)}+${e}`)}function Ds(e){return e.startsWith(`shift+`)&&e.length===7?e.slice(6).toUpperCase():e}new Map(ti.map(e=>[e.id,{keys:[...e.keys],prefixKeys:e.prefixKeys&&[...e.prefixKeys],hint:e.hint?{...e.hint}:void 0}]));var Os=new Map(ti.map(e=>[e.id,e]));function ks(e){return Os.get(e)}function As(e,t){if(!e)return!0;let n=e.toLowerCase(),r=t.toLowerCase(),i=0;for(let e=0;e<r.length&&i<n.length;e++)r.charCodeAt(e)===n.charCodeAt(i)&&i++;return i===n.length}function js(e){return e.hint?.keys??e.keys[0]}function Ms(e){let t=ks(e);if(!t)return null;let n=js(t);return n&&n.length>0?n:null}function Ns(e){return e.keys.length>0?e.hint?.keys??e.keys[0]??null:e.prefixKeys?.length?null:e.hint?.keys??null}function Ps(e,t){return e.scope===`global`?!0:t===null?!1:e.scope===t||t===`terminal`&&e.scope===`workspace`}function Fs(e,t,n,r){let i=[],a=[],o=[],s=new Map;for(let c of e){let e=Ns(c),l=Ps(c,t),u=r?r.direct.has(c.id):l,d=r?r.prefix.has(c.id):l;if(e){let t={binding:c,primary:e,aliases:c.keys.filter(t=>t!==e)};if(u&&(l||c.presentation===`onePress`))c.presentation===`onePress`?a.push(t):i.push(t);else if(!l&&c.scope!==`global`){let e=s.get(c.scope);e?e.push(t):s.set(c.scope,[t])}}n&&d&&c.prefixKeys?.length&&o.push({binding:c,primary:`${n} + ${c.prefixKeys[0]}`,aliases:c.prefixKeys.slice(1).map(e=>`${n} + ${e}`)})}let c=[];i.length&&c.push({kind:`here`,scope:t??void 0,rows:i}),a.length&&c.push({kind:`direct`,rows:a}),o.length&&c.push({kind:`prefix`,rows:o});for(let[e,t]of s)c.push({kind:`other`,scope:e,rows:t});return c}var Is={global:`Global`,sidebar:`Sidebar`,workspace:`Workspace`,files:`Files`,inbox:`Inbox`,terminal:`Terminal`};function Ls(e){return e?Is[e]:`Global`}function Rs(e){return[`kanban.open`,`automations.open`,`workItems.open`].includes(e)?`Views`:e.startsWith(`focus.`)?`Navigation`:e.startsWith(`inbox.`)||e.startsWith(`attention.`)?`Attention`:e.startsWith(`chat.tab.`)||e.startsWith(`chat.session.`)?`Sessions`:e.startsWith(`chat.fork.`)||e.startsWith(`task.`)?`Tasks`:e.startsWith(`settings.`)||e===`workspace.zenToggle`?`Tools`:ks(e)?.category??`Global`}function zs(e,t,n){let r=e.trim();return As(r,t)||As(r,n)}var Bs={title:`Rove — keybindings`,palette:`Search commands`,search:`Type an action name or chord…`,filter:`/ filter actions`,noResults:`No matching actions. Try another name or clear the filter.`,run:`↑↓ select · enter run · esc cancel`,reportProblem:`Report a problem`,reportPrompt:"You are helping the user report a problem with Rove itself (not their own project) as a GitHub issue. First ask what they were doing and what felt wrong: one to three short questions, one at a time. Then collect context: run `rove --version` and `rove daemon status`, and read the last ~50 lines of {logPath} only if the problem could involve the daemon. Draft an issue title and body (what happened, what they expected, steps, relevant output) and show it to the user. Only after they say OK, file it with a heredoc: `rove feedback --kind bug|idea|question --title \"...\" --body-file - <<'EOF'` followed by the body and `EOF`. Then share the issue URL. If it prints a prefilled link instead (gh missing or signed out), give the user that link and tell them to run `gh auth login`.",unavailable:`This action is no longer available. Close and reopen the palette.`,esc:`esc`,scrollKeys:`↑↓ ⇞⇟ scroll`,commandLayer:`{prefix} — more Rove commands`,escCancel:`esc cancel`,directLayer:`Hold ctrl — Rove shortcuts`,releaseCtrl:`release ctrl to close`,overflow:`… F1 for all shortcuts`,moreCommandsPrefix:`More commands (prefix)`,focused:`Focused: {surface}`,allBindings:`All keybinding contexts`,grammar:`Use keys here · one-press Rove shortcuts · {prefix} for more commands · right-click a row for its menu`,disabled:`prefix disabled`,here:`HERE — only in {surface}`,direct:`ONE PRESS — Rove shortcuts`,afterPrefix:`AFTER PREFIX — more Rove commands`,otherPane:`OTHER PANE — {surface}`,marks:{rows:`MARKS — task and tab rows`,inbox:`MARKS — tab strip and Inbox`,pr:`MARKS — pull request chip`},mark:{spinner:`working: an engine turn or a task job is running`,needsInput:`waiting on your answer: a permission prompt or a question`,attention:`needs you: an error, a rate limit, an exited engine or a failed deletion`,unseen:`a turn finished and you have not looked yet`,idle:`quiet`,subagent:`running subagents, in front of the branch`,remote:`the task lives on another machine`,done:`the turn finished`,rateLimited:`rate limited; it resumes on its own`,dead:`the engine process exited`,routineFailed:`a routine run failed`,conflict:`merge conflicts`,checksFailing:`checks failing`,checksPassing:`checks passing`}},Vs={title:`Rove — 快捷键`,palette:`搜索命令`,search:`输入操作名称或快捷键…`,filter:`/ 筛选操作`,noResults:`没有匹配的操作。请换个名称或清空筛选。`,run:`↑↓ 选择 · enter 执行 · esc 取消`,reportProblem:`报告问题`,reportPrompt:"你在帮用户把 Rove 本身的问题(不是他们自己项目的问题)提成一个 GitHub issue。先问清楚他们当时在做什么、哪里不对劲:一到三个简短的问题,一次问一个。然后收集上下文:运行 `rove --version` 和 `rove daemon status`,只有问题可能和 daemon 有关时才读 {logPath} 的最后约 50 行。起草 issue 的标题和正文(发生了什么、期望什么、复现步骤、相关输出)并展示给用户。用户确认之后才提交,用 heredoc:`rove feedback --kind bug|idea|question --title \"...\" --body-file - <<'EOF'`,接正文,最后一行 `EOF`。然后把 issue 链接发给用户。如果输出的是预填链接(没装 gh 或没登录),把链接给用户,并告诉他运行 `gh auth login`。",unavailable:`此操作已不可用。请关闭并重新打开命令面板。`,esc:`esc`,scrollKeys:`↑↓ ⇞⇟ 滚动`,commandLayer:`{prefix} — 更多 Rove 命令`,escCancel:`esc 取消`,directLayer:`按住 ctrl — Rove 快捷键`,releaseCtrl:`松开 ctrl 关闭`,overflow:`… 按 F1 查看全部快捷键`,moreCommandsPrefix:`更多命令(prefix)`,focused:`当前焦点:{surface}`,allBindings:`所有快捷键上下文`,grammar:`当前区域直接按 · Rove 单次快捷键 · {prefix} 打开更多命令 · 右键任务行打开菜单`,disabled:`Prefix 已禁用`,here:`当前区域 — 仅在{surface}`,direct:`一次按下 — Rove 快捷键`,afterPrefix:`按下 Prefix 后 — 更多 Rove 命令`,otherPane:`其他区域 — {surface}`,marks:{rows:`标记 — 任务行和标签行`,inbox:`标记 — 标签栏和收件箱`,pr:`标记 — PR 标记`},mark:{spinner:`运行中:引擎正在执行一轮,或任务作业正在运行`,needsInput:`等你回答:权限确认或提问`,attention:`需要你处理:出错、限流、引擎已退出或删除失败`,unseen:`一轮已结束,你还没看过`,idle:`空闲`,subagent:`正在运行的子代理,显示在分支名前`,remote:`任务在另一台机器上`,done:`这一轮已结束`,rateLimited:`被限流,会自动恢复`,dead:`引擎进程已退出`,routineFailed:`例行任务运行失败`,conflict:`存在合并冲突`,checksFailing:`检查未通过`,checksPassing:`检查已通过`}},Hs={status:{commands:`{key} commands`,help:`{key} help`,sidebar:`{key} sidebar`,settings:`settings`},pane:{move:`move`,open:`open`,collapse:`collapse`,diff:`diff`}},Us={status:{commands:`{key} 命令`,help:`{key} 帮助`,sidebar:`{key} 侧栏`,settings:`设置`},pane:{move:`移动`,open:`打开`,collapse:`折叠`,diff:`差异`}},Ws={category:{Global:`Global`,Sidebar:`Sidebar`,Workspace:`Workspace`,Navigation:`Navigation`,"Tasks pane":`Tasks pane`,Files:`Files`,Terminal:`Terminal`,Views:`Views`,Tasks:`Tasks`,Sessions:`Sessions`,Attention:`Attention`,Tools:`Tools`,"Diff review":`Diff review`,Inbox:`Inbox`},desc:{"palette.open":`Search commands`,"help.open":`Show keybindings help`,"task.new":`New task`,"task.new.global":`New task`,"task.openEditor":`Open active Task directory in editor`,"task.moveMode":`Reorder sidebar rows (then j/k — tab, task, or project)`,"settings.open":`Open settings`,"app.refresh":`Refresh Rove onto the installed build (after an update)`,"settings.open.sidebar":`Open settings`,"inbox.show":`Open Inbox`,"worktrees.open.sidebar":`Open worktrees`,"kanban.open":`Open kanban (issues board)`,"automations.open":`Open routines (scheduled tasks)`,"workItems.open":`Open GitHub issues (external tracker)`,"app.quit":`Quit (with confirm)`,"focus.sidebar":`Back to sidebar (tasks)`,"focus.previous":`Focus previous pane (files → workspace → sidebar)`,"focus.next":`Focus next pane (sidebar → workspace → files)`,"workspace.zenToggle":`Toggle zen mode`,"view.redraw":`Redraw the screen`,"attention.next":`Jump to the next Inbox item`,"sidebar.nav":`Move cursor up/down`,"sidebar.select":`Open the selected task`,"sidebar.tree.open":`Open the row under the cursor`,"sidebar.goto":`Top / bottom of list (gg or shift-G)`,"sidebar.rename":`Rename task`,"sidebar.localMerge":`Reorder row (Shift+M, then j/k — tab, task, or project)`,"sidebar.pin":`Pin / unpin task at top (Shift+P)`,"sidebar.sort":`Cycle task sort (default → recent → attention → name)`,"sidebar.delete":`Remove session (with confirm)`,"sidebar.search.enter":`Search tasks (fuzzy filter)`,"sidebar.search.nav":`Move highlight in search results`,"sidebar.search.submit":`Select search match and exit search`,"sidebar.search.cancel":`Cancel search (restore prior selection)`,"tasks.openWorktree":`Open selected Task directory in your editor`,"tasks.renameBranch":`Rename the selected task's git branch`,"tasks.cycleEngine":`Cycle engine vendor — applies on reopen`,"tasks.update":`Open the update page (when a new version is available)`,"tasks.focusEngine":`Focus the engine pane of the current window`,"chat.tab.new":`New conversation here (a child task sharing this directory)`,"chat.tab.chooseEngine":`New conversation — engine/shell picker with destination + context toggles`,"chat.tab.fork":`Continue this chat in a new child task (same directory, keeps the conversation)`,"chat.fork.new":`Quick-fork: create child task seeded with current repo/branch/model`,"chat.tab.close":`Close chat tab`,"chat.tab.rename":`Rename active chat tab`,"chat.tab.cycle-next":`Next chat tab`,"chat.tab.cycle-prev":`Previous chat tab`,"chat.tab.goto":`Go to chat tab N`,"workspace.split.right":`Split right`,"workspace.split.down":`Split down`,"workspace.split.focus-next":`Focus next split`,"workspace.split.close":`Close active split (tab when unsplit)`,"workspace.split.rename":`Rename active split (tab when unsplit)`,"workspace.reopenSession":`Reopen a session in a task whose tabs are all closed`,"files.nav":`Move cursor up/down`,"files.hierarchy":`Collapse / expand tree level`,"files.open":`Open file in configured editor (diff when supported)`,"files.tab":`Switch tab (cycle All / Changes)`,"files.refresh":`Refresh`,"files.scope":`Toggle Changes scope (working ↔ branch vs base)`,"files.diff":`Open a read-only diff in a workspace tab`,"files.diffAll":`Open the whole worktree's diff in one workspace tab`,"files.openExternal":`Open file in system default app (audio / video / pdf preview)`,"files.mention":`Inject @<path> mention into the engine pane`,"files.createPR":`Ask the agent to create a PR from the current task`,"files.fixChecks":`Ask the agent to fix the failing PR checks`,"files.syncBase":`Merge the base branch into this task's worktree`,"diff.review.cursor":`Move the line cursor over the diff`,"diff.review.range":`Toggle range anchor at the cursor`,"diff.review.note":`Add a review note at the cursor`,"diff.review.send":`Send all unsent review notes to the engine`,"diff.review.drop":`Drop the review note the cursor sits inside`,"diff.review.reload":`Reload the previewed file from disk`,"inbox.nav":`Move through Inbox items`,"inbox.open":`Open the selected Inbox item`,"inbox.delete":`Ack the selected Inbox item`,"inbox.deleteAll":`Ack every ATTENTION item`,"terminal.scroll-up":`Scroll scrollback up`,"terminal.scroll-down":`Scroll scrollback down`,"terminal.reset":`Reset terminal — kill the current shell and respawn`}},Gs={category:{Global:`全局`,Sidebar:`侧边栏`,Workspace:`工作区`,Navigation:`导航`,"Tasks pane":`任务面板`,Files:`文件`,Terminal:`终端`,Views:`视图`,Tasks:`任务`,Sessions:`会话`,Attention:`提醒`,Tools:`工具`,"Diff review":`差异审阅`,Inbox:`收件箱`},desc:{"palette.open":`搜索命令`,"help.open":`显示快捷键帮助`,"task.new":`新建任务`,"task.new.global":`新建任务`,"task.openEditor":`在编辑器中打开当前 Task 的目录`,"task.moveMode":`调整侧边栏行顺序(然后 j/k——tab / 任务 / 项目)`,"settings.open":`打开设置`,"app.refresh":`让 Rove 刷新到已安装的版本(更新之后)`,"settings.open.sidebar":`打开设置`,"inbox.show":`打开收件箱`,"worktrees.open.sidebar":`打开 worktrees`,"kanban.open":`打开看板(issues)`,"automations.open":`打开例行任务(定时任务)`,"workItems.open":`打开 GitHub issues(外部跟踪器)`,"app.quit":`退出(需确认)`,"focus.sidebar":`返回侧边栏(任务列表)`,"focus.previous":`聚焦上一个面板(文件 → 工作区 → 侧边栏)`,"focus.next":`聚焦下一个面板(侧边栏 → 工作区 → 文件)`,"workspace.zenToggle":`切换禅模式`,"view.redraw":`重绘屏幕`,"attention.next":`跳到下一个收件箱条目`,"sidebar.nav":`上下移动光标`,"sidebar.select":`打开选中的任务`,"sidebar.tree.open":`打开光标所在行`,"sidebar.goto":`跳到列表顶部 / 底部(gg 或 shift-G)`,"sidebar.rename":`重命名任务`,"sidebar.localMerge":`调整当前行顺序(Shift+M,然后 j/k——tab / 任务 / 项目)`,"sidebar.pin":`置顶 / 取消置顶任务(Shift+P)`,"sidebar.sort":`切换任务排序方式(默认 → 最近 → 关注 → 名称)`,"sidebar.delete":`移除会话(需确认)`,"sidebar.search.enter":`搜索任务(模糊过滤)`,"sidebar.search.nav":`在搜索结果中移动高亮`,"sidebar.search.submit":`选中搜索匹配项并退出搜索`,"sidebar.search.cancel":`取消搜索(恢复之前的选中项)`,"tasks.openWorktree":`在编辑器中打开选中 Task 的目录`,"tasks.renameBranch":`重命名选中任务的 git 分支`,"tasks.cycleEngine":`循环切换引擎厂商——重新打开后生效`,"tasks.update":`打开更新页面(有新版本时)`,"tasks.focusEngine":`聚焦当前窗口的引擎面板`,"chat.tab.new":`在此新建对话(共享当前目录的子任务)`,"chat.tab.chooseEngine":`新建对话 —— 选择引擎或 shell,可切换落点与上下文`,"chat.tab.fork":`把当前对话接到新子任务(同一目录,带上已有对话)`,"chat.fork.new":`快速派生:以当前仓库/分支/模型创建子任务`,"chat.tab.close":`关闭聊天标签页`,"chat.tab.rename":`重命名当前聊天标签页`,"chat.tab.cycle-next":`下一个聊天标签页`,"chat.tab.cycle-prev":`上一个聊天标签页`,"chat.tab.goto":`跳到第 N 个聊天标签页`,"workspace.split.right":`向右分屏`,"workspace.split.down":`向下分屏`,"workspace.split.focus-next":`聚焦下一个分屏`,"workspace.split.close":`关闭当前分屏(未分屏时关闭标签页)`,"workspace.split.rename":`重命名当前分屏(未分屏时重命名标签页)`,"workspace.reopenSession":`在标签页全部关闭的任务中重新打开会话`,"files.nav":`上下移动光标`,"files.hierarchy":`折叠 / 展开树层级`,"files.open":`在已配置的编辑器中打开文件(支持时显示 diff)`,"files.tab":`切换标签页(循环 全部 / 变更)`,"files.refresh":`刷新`,"files.scope":`切换变更范围(工作区 ↔ 分支对比 base)`,"files.diff":`在工作区标签页中打开只读 diff`,"files.diffAll":`把整个 worktree 的 diff 打开在一个工作区标签页里`,"files.openExternal":`在系统默认应用中打开文件(音频 / 视频 / pdf 预览)`,"files.mention":`将 @<path> 提及注入引擎面板`,"files.createPR":`让 agent 从当前任务创建 PR`,"files.fixChecks":`让 agent 修复失败的 PR 检查`,"files.syncBase":`把基础分支合并进该任务的工作树`,"diff.review.cursor":`在 diff 中移动行光标`,"diff.review.range":`在光标处切换范围锚点`,"diff.review.note":`在光标处添加审阅备注`,"diff.review.send":`将所有未发送的审阅备注发给引擎`,"diff.review.drop":`删除光标所在的评审备注`,"diff.review.reload":`从磁盘重新加载当前预览的文件`,"inbox.nav":`在收件箱条目之间移动`,"inbox.open":`打开选中的收件箱条目`,"inbox.delete":`将选中的收件箱条目标为已阅`,"inbox.deleteAll":`将所有待处理条目标为已阅`,"terminal.scroll-up":`向上滚动回滚`,"terminal.scroll-down":`向下滚动回滚`,"terminal.reset":`重置终端——关闭当前 shell 并重新启动`}};function Ks(e,t){let n=e;for(let e of t.split(`.`)){if(!n||typeof n!=`object`||!(e in n))return;n=Reflect.get(n,e)}return typeof n==`string`?n:void 0}function qs(e,t){return ke.get()===`zh`?t:e}function Js(e,t){return t?e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??e)):e}var Ys=(e,t)=>Js(Ks(qs(Bs,Vs),e)??Ks(Bs,e)??e,t),Xs=(e,t)=>Js(Ks(qs(Hs,Us),e)??Ks(Hs,e)??e,t),Zs=(e,t)=>Js(Ks(qs(Hr,Ur),e)??Ks(Hr,e)??e,t);function Qs(e){return qs(Ws,Gs).desc[e]??Ws.desc[e]??e}function $s(e){let t=Qs(e),n=t.search(/\s—\s|——/);return n>0?t.slice(0,n):t}function ec(e){return qs(Ws,Gs).category[e]??e}var tc=(e,t)=>Js(Ks(qs(Kr,qr),e)??Ks(Kr,e)??e,t),nc=(e,t)=>Js(Ks(qs(Br,Vr),e)??Ks(Br,e)??e,t),rc=e=>e.split(` + `).map(e=>ai(e)).join(` + `);function ic(e){let t=ec(Ls(e.scope));return e.kind===`here`?Ys(`here`,{surface:t}):e.kind===`direct`?Ys(`direct`):e.kind===`prefix`?Ys(`afterPrefix`):Ys(`otherPane`,{surface:t})}function ac(e){let t=document.activeElement instanceof HTMLElement?document.activeElement:null;U.set((0,V.jsx)(oc,{model:e,surface:fa(),origin:t}))}function oc({model:e,surface:t,origin:n}){B();let r=v(oi),[i,a]=(0,g.useState)(!1),[o,s]=(0,g.useState)(``),c=(0,g.useRef)(null),l=(0,g.useMemo)(()=>pa(e,t),[e,t]),u=(0,g.useMemo)(()=>Fs(ma(),t===`terminal`?`terminal`:t,di(),l),[l,t,r]).map(e=>({...e,rows:e.rows.filter(e=>zs(o,Qs(e.binding.id),e.primary))})).filter(e=>e.rows.length>0);return(0,g.useEffect)(()=>()=>n?.focus(),[n]),(0,g.useEffect)(()=>{let e=c.current,t=t=>{if(!e||t.ctrlKey||t.metaKey||t.altKey)return;let n=e.clientHeight;if(t.key===`ArrowUp`)e.scrollBy({top:-24});else if(t.key===`ArrowDown`)e.scrollBy({top:24});else if(t.key===`PageUp`)e.scrollBy({top:-n});else if(t.key===`PageDown`)e.scrollBy({top:n});else if(t.key===`Home`)e.scrollTo({top:0});else if(t.key===`End`)e.scrollTo({top:e.scrollHeight});else if(!i&&t.key===`?`)kn();else if(!i&&t.key===`/`)a(!0);else return;t.preventDefault()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[i]),(0,V.jsx)(vr,{title:Ys(`title`),wide:!0,children:(0,V.jsxs)(`div`,{className:`${Wn} help`,children:[(0,V.jsxs)(`div`,{className:_t,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`text-muted`,children:t?Ys(`focused`,{surface:ec(Ls(t))}):Ys(`allBindings`)}),(0,V.jsx)(`p`,{className:`text-muted`,children:Ys(`grammar`,{prefix:fi()})})]}),(0,V.jsxs)(`div`,{className:vt,children:[(0,V.jsx)(`span`,{className:`subtle`,children:Ys(`scrollKeys`)}),(0,V.jsx)(`button`,{type:`button`,className:an,onClick:kn,children:Ys(`esc`)})]})]}),i?(0,V.jsx)(`input`,{className:sn,autoFocus:!0,spellCheck:!1,value:o,placeholder:Ys(`search`),onChange:e=>{s(e.target.value),c.current?.scrollTo({top:0})}}):(0,V.jsx)(`p`,{className:`text-muted`,children:Ys(`filter`)}),u.length===0&&(0,V.jsx)(`p`,{className:`text-muted`,children:Ys(`noResults`)}),(0,V.jsx)(`div`,{className:yt,ref:c,children:u.map((e,t)=>(0,V.jsxs)(`section`,{className:bt,children:[(0,V.jsx)(`h2`,{className:xt,children:ic(e)}),e.rows.map(t=>(0,V.jsxs)(`div`,{className:St,children:[(0,V.jsx)(`span`,{className:`mono ${Ct}`,children:rc(t.primary)}),(0,V.jsx)(`span`,{className:`flex-1`,children:Qs(t.binding.id)}),t.aliases.length>0&&(0,V.jsx)(`span`,{className:`text-muted`,children:`(${t.aliases.map(rc).join(`, `)})`})]},`${e.kind}-${t.binding.id}`))]},`${e.kind}-${e.scope??t}`))})]})})}function sc(e){switch(e){case`permission_needed`:return{glyph:`?`,tone:`warning`,stateKey:`inbox.state.needsInput`};case`turn_complete`:return{glyph:`✓`,tone:`success`,stateKey:`inbox.state.done`};case`rate_limited`:return{glyph:`◷`,tone:`warning`,stateKey:`inbox.state.rateLimited`};case`dead`:return{glyph:`†`,tone:`attention`,stateKey:`inbox.state.dead`};case`decision_needed`:return{glyph:`?`,tone:`warning`,stateKey:`inbox.state.decision`};case`routine_failed`:return{glyph:`↻`,tone:`attention`,stateKey:`inbox.state.routineFailed`};case`report_missing`:return{glyph:`!`,tone:`warning`,stateKey:`inbox.state.reportMissing`};default:return{glyph:`!`,tone:`attention`,stateKey:`inbox.state.error`}}}function cc(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.round(t/60);if(n<60)return`${n}m`;let r=Math.round(n/60);return r<48?`${r}h`:`${Math.round(r/24)}d`}var lc=e=>e===`routine_failed`,uc=e=>`${e.taskId??``}:${e.tabId??``}`;function dc(e,t){let n=new Map(t.map((e,t)=>[e,t])),r=e=>+(e.state===`turn_complete`),i=e=>n.get(e.taskId??``)??2**53-1;return[...e].sort((e,t)=>r(e)-r(t)||e.at-t.at||i(e)-i(t)||uc(e).localeCompare(uc(t)))}function fc(e,t,n){let r=new Set(t),i=dc(e,t).filter(e=>e.taskId===null||r.has(e.taskId));if(i.length===0)return null;let a=n.taskId===null?-1:i.findIndex(e=>uc(e)===uc(n));return a<0||i.length===1?i[0]??null:i[(a+1)%i.length]??null}function pc(e){let t=(e.terminal?.tail??[]).map(e=>e.trimEnd()),n=t.length;for(;n>0&&t[n-1]===``;)n--;let r=0;for(;r<n&&t[r]===``;)r++;return t.slice(Math.max(r,n-12),n)}async function mc(e,t,n=!1){let r=`attention.dismiss`,i;if(lc(t.state)){if(!t.automationId)return;r=`attention.dismissRoutine`,i={automationId:t.automationId}}else{if(t.gateId||t.state===`decision_needed`||t.state===`report_missing`&&!n||t.taskId===null)return;i={taskId:t.taskId,...t.tabId?{tabId:t.tabId}:{},...t.deliveryId?{deliveryId:t.deliveryId}:{}}}await e.client.request(r,i).catch(e=>W(String(e),`error`))}function hc(e,t){mc(e,t),kn(),gn.set(t.automationId??null),hn.set(`routines`)}function gc(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e/1024,r=0;for(;n>=1023.5&&r<t.length-1;)n/=1024,r++;let i=n.toFixed(1);return`${Number(i)>=100?Math.round(n):i} ${t[r]}`}var _c=`size-14 rounded-sm border-hairline border-line object-cover`;function vc({file:e}){let[t,n]=(0,g.useState)(null),r=e.type.startsWith(`image/`);if((0,g.useEffect)(()=>{if(!r)return;let t=URL.createObjectURL(e);return n(t),()=>URL.revokeObjectURL(t)},[e,r]),r)return t&&(0,V.jsx)(`img`,{src:t,alt:``,draggable:!1,className:_c});let i=e.name.includes(`.`)?e.name.split(`.`).pop()??``:``;return(0,V.jsx)(`span`,{className:`${_c} flex items-center justify-center font-mono text-meta uppercase text-muted`,children:i.slice(0,4)||`file`})}function yc({items:e,onRemove:t}){return e.length===0?null:(0,V.jsx)(`ul`,{className:`m-0 flex min-w-0 list-none flex-wrap gap-1.5 p-0`,"data-field":`attachments`,children:e.map(({id:e,file:n})=>{let r=`${n.name} · ${gc(n.size)}`;return(0,V.jsxs)(`li`,{className:`group relative size-14 shrink-0`,title:r,children:[(0,V.jsx)(vc,{file:n}),(0,V.jsx)(`button`,{type:`button`,"aria-label":z(`newSession.removeAttachment`,{name:n.name}),className:`absolute top-0.5 right-0.5 flex size-5 cursor-pointer items-center justify-center rounded-full border-hairline border-line bg-paper p-0 text-meta leading-none text-ink opacity-0 group-focus-within:opacity-100 group-hover:opacity-100 touch:size-7 touch:opacity-100 touch:after:absolute touch:after:-inset-2 touch:after:content-['']`,onClick:()=>t(e),children:`×`})]},e)})})}var bc=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`application/pdf`];function xc(e){return{drop:{onDragOver:e=>e.dataTransfer.types.includes(`Files`)&&e.preventDefault(),onDrop:t=>{t.dataTransfer.files.length!==0&&(t.preventDefault(),e(Array.from(t.dataTransfer.files)))}},onPaste:t=>{let n=Array.from(t.clipboardData.files);n.length!==0&&(t.preventDefault(),e(n))}}}function Sc(e){return(0,V.jsxs)(`label`,{className:e.className,title:e.title,children:[e.children,(0,V.jsx)(`input`,{type:`file`,accept:bc.join(`,`),multiple:!0,className:`sr-only`,disabled:e.disabled,onChange:t=>{let n=Array.from(t.target.files??[]);t.target.value=``,n.length>0&&e.onFiles(n)}})]})}function Cc(e,t){return t.length===0?e:`${e}\n\n${t.map((e,t)=>`${e.kind===`pdf`?`pdf`:`images`}[${t}]: ${e.path}`).join(`
|
|
16
|
+
`)}`}async function wc(e){let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(n)}function Tc(e,t){let[n,r]=(0,g.useState)([]);return{attachments:n,attach:async n=>{for(let i of n)if(bc.includes(i.type))try{let t=await e.client.request(`attachment.put`,{mime:i.type,data:await wc(i)});r(e=>[...e,{path:t.path,kind:t.kind,file:i}])}catch(e){t(e instanceof Error?e.message:String(e))}},remove:e=>r(t=>t.filter(t=>t.path!==e)),clear:()=>r([])}}function Ec(e){return(0,V.jsx)(yc,{items:e.attachments.map(e=>({id:e.path,file:e.file})),onRemove:e.onRemove})}function Dc(e){let t=(0,g.useRef)(null),n=(0,g.useRef)(e.value);n.current=e.value;let r=(r,i)=>{r.preventDefault();let a=e.choices.findIndex(e=>e.id===n.current),o=e.choices[(a+i+e.choices.length)%e.choices.length];o&&(n.current=o.id,e.onChange(o.id),requestAnimationFrame(()=>t.current?.querySelector(`[aria-pressed=true]`)?.focus()))};return(0,V.jsx)(`div`,{ref:t,className:In,"aria-label":e.label,"data-field":e.field,onKeyDown:t=>{t.ctrlKey||t.metaKey||t.altKey||e.choices.length===0||(t.key===`ArrowRight`||t.key===`l`?r(t,1):(t.key===`ArrowLeft`||t.key===`h`)&&r(t,-1))},children:e.choices.map(t=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":t.id===e.value,tabIndex:t.id===e.value||!e.choices.some(t=>t.id===e.value)?0:-1,className:Ln(t.id===e.value,t.dim),title:t.title,onClick:()=>e.onChange(t.id),children:t.label},t.id))})}function Oc(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: none) and (pointer: coarse)`).matches}var kc=/^(?:enter|return|tab|esc|space|shift|ctrl\+\S+|cmd\+\S+|alt\+\S+|[↑↓←→]+(?:\/[↑↓←→]+)?|[b-hj-z](?:\/[b-hj-z])?)(?:\/\S+)?(?:\s|$)/i;function Ac(e){return e.split(`·`).map(e=>e.trim()).filter(e=>e&&!kc.test(e)).join(` · `)}function jc(e){return Oc()?Ac(e):e}function Mc(e){if(typeof e!=`string`)return``;let t=e.replace(/\s+/g,` `).trim();if(t.length===0)return``;let n=[...t];return n.length<=40?t:`${n.slice(0,40).join(``)}…`}function Nc(e){let t=e.lastIndexOf(`/`);return t<0||t===e.length-1?{base:e,dir:``}:{base:e.slice(t+1),dir:e.slice(0,t+1)}}function Pc(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.toLowerCase().includes(n)):e}function Fc(e){return e.startsWith(`~`)||e.includes(`/`)}function Ic(e,t){return t?e===`~`?t:e.startsWith(`~/`)?t+e.slice(1):e:e}function Lc(e){return e.length>1?e.replace(/\/+$/,``):e}var Rc=/^(?:(?:https?|ssh|git):\/\/[A-Za-z0-9[]\S*|[A-Za-z0-9._-]+@[A-Za-z0-9][A-Za-z0-9.-]*:\S+)$/i,zc=/^[A-Za-z0-9][A-Za-z0-9-]{0,38}\/(?![.]+(?:git)?$)[A-Za-z0-9._-]{1,100}$/i;function Bc(e){let t=e.trim();return Rc.test(t)||zc.test(t)?t:null}function Vc(e,t){return e.filter(e=>e.enabled!==!1||e.id===t)}function Hc(e,t){let n=e.filter(e=>e.ready!==!1);return(n.find(e=>e.id===t)??n[0]??e[0])?.id??``}function Uc(e,t){return!e||e.acceptsModel===!1?[]:[{id:``,label:t},...(e.models??[]).map(e=>({id:e.id,label:e.label??e.id}))]}function Wc(e,t){let n=e?.effortLevels??[];return n.length===0?[]:[{id:``,label:t},...n.map(e=>({id:e,label:e}))]}function Gc(e,t,n,r){let i=t?e.find(e=>e.id===t)?.label??t:r;return n?`${i} ${n}`:i}function Kc(e,t){return e.includes(t)?e.length>1?e.filter(e=>e!==t):e:[...e,t]}function qc(e){let[t,n,...r]=e;return!t||!n?t??``:r.length>0?`${t} + ${n} +${r.length}`:`${t} + ${n}`}function Jc(e){if(!(e instanceof Error)||!(`code`in e)||e.code!==`PARTIAL_FANOUT`)return;let t=`detail`in e&&e.detail&&typeof e.detail==`object`?e.detail:void 0;return t&&`groupId`in t&&typeof t.groupId==`string`&&t.groupId?t.groupId:void 0}function Yc(e){let[t,...n]=e;if(!t)return``;let r=Nc(t).base;return n.length>0?`${r} +${n.length}`:r}function Xc(e,t){return e.includes(t)?e.filter(e=>e!==t):e.length>=8?e:[...e,t]}function Zc(e,t){if(!/^[1-9]$/.test(e))return null;let n=Number(e)-1;return n<t?n:null}function Qc(e){let[t,...n]=e.repos;if(!t)throw Error(`no repo`);let r=e.begin?``:Mc(e.prompt),i=(e.engines?.length??0)>1;return{repo:t.repo,...t.baseRef?{baseBranch:t.baseRef}:{},...n.length>0?{extraRepos:n.map(e=>({repo:e.repo,...e.baseRef?{baseRef:e.baseRef}:{}}))}:{},...!i&&n.length>0&&e.branch?{branch:e.branch}:{},...e.begin&&e.prompt?{prompt:e.prompt}:{},...r?{title:r}:{},...i?{agents:(e.engines??[]).map(e=>`${e}:1`).join(`,`)}:{},...!i&&e.engine?{engine:e.engine}:{},...!i&&e.engine&&e.commandFrom?{commandFrom:e.commandFrom}:{},...!i&&e.model?{model:e.model}:{},...!i&&e.effort?{effort:e.effort}:{}}}async function $c(e,t,n,r){let i=t?{engine:t}:{},{taskId:a}=await e(`task.openScratch`,i);return r?await e(`tab.new`,{taskId:a,kind:`engine`,...i,prompt:n.trim()}):n.trim()&&await e(`task.rename`,{taskId:a,title:Mc(n)}),a}async function el(e,t,n,r,i,a=r.trim()){let o=n?{engine:n}:{},s=r.trim()?Mc(r):``,{taskId:c}=await e(`task.openCheckout`,{repo:t,...o,...s?{title:s}:{}});return i&&await e(`tab.new`,{taskId:c,kind:`engine`,...o,prompt:a}),c}function tl(e,t){let n=e.querySelector(`[data-field="${t}"]`);(n?.matches(`input, textarea`)?n:n?.querySelector(`[tabindex='0']`))?.focus()}function nl(e,t,n){let r=document.activeElement?.closest(`[data-field]`)?.getAttribute(`data-field`),i=t.findIndex(e=>e===r),a=t[i<0?0:(i+n+t.length)%t.length];a&&tl(e,a)}var rl=new WeakMap,il=e=>`client`in e?e.client:e,al=(e,t)=>t?`${e} ${JSON.stringify(t)}`:e;function q(e,t,n){return rl.get(il(e))?.get(al(t,n))}function ol(e,t,n,r){let i=il(e),a=rl.get(i)??new Map;return rl.set(i,a.set(al(t,n),r)),r}function sl(e,t,n){return il(e).request(t,n).then(r=>ol(e,t,n,r))}var cl=0,ll=0,ul=0,dl=0,fl;(e=>{function t(e,t,n,r){return r===void 0?`#${_l(e)}${_l(t)}${_l(n)}`:`#${_l(e)}${_l(t)}${_l(n)}${_l(r)}`}e.toCss=t;function n(e,t,n,r=255){return(e<<24|t<<16|n<<8|r)>>>0}e.toRgba=n;function r(t,n,r,i){return{css:e.toCss(t,n,r,i),rgba:e.toRgba(t,n,r,i)}}e.toColor=r})(fl||={});var pl;(e=>{function t(e,t){if(dl=(t.rgba&255)/255,dl===1)return{css:t.css,rgba:t.rgba};let n=t.rgba>>24&255,r=t.rgba>>16&255,i=t.rgba>>8&255,a=e.rgba>>24&255,o=e.rgba>>16&255,s=e.rgba>>8&255;return cl=a+Math.round((n-a)*dl),ll=o+Math.round((r-o)*dl),ul=s+Math.round((i-s)*dl),{css:fl.toCss(cl,ll,ul),rgba:fl.toRgba(cl,ll,ul)}}e.blend=t;function n(e){return(e.rgba&255)==255}e.isOpaque=n;function r(e,t,n){let r=gl.ensureContrastRatio(e.rgba,t.rgba,n);if(r)return fl.toColor(r>>24&255,r>>16&255,r>>8&255)}e.ensureContrastRatio=r;function i(e){let t=(e.rgba|255)>>>0;return[cl,ll,ul]=gl.toChannels(t),{css:fl.toCss(cl,ll,ul),rgba:t}}e.opaque=i;function a(e,t){return dl=Math.round(t*255),[cl,ll,ul]=gl.toChannels(e.rgba),{css:fl.toCss(cl,ll,ul,dl),rgba:fl.toRgba(cl,ll,ul,dl)}}e.opacity=a;function o(e,t){return dl=e.rgba&255,a(e,dl*t/255)}e.multiplyOpacity=o;function s(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}e.toColorRGB=s})(pl||={});var ml;(e=>{let t,n;try{let e=document.createElement(`canvas`);e.width=1,e.height=1;let r=e.getContext(`2d`,{willReadFrequently:!0});r&&(t=r,t.globalCompositeOperation=`copy`,n=t.createLinearGradient(0,0,1,1))}catch{}function r(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return cl=parseInt(e.slice(1,2).repeat(2),16),ll=parseInt(e.slice(2,3).repeat(2),16),ul=parseInt(e.slice(3,4).repeat(2),16),fl.toColor(cl,ll,ul);case 5:return cl=parseInt(e.slice(1,2).repeat(2),16),ll=parseInt(e.slice(2,3).repeat(2),16),ul=parseInt(e.slice(3,4).repeat(2),16),dl=parseInt(e.slice(4,5).repeat(2),16),fl.toColor(cl,ll,ul,dl);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}let r=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(r)return cl=parseInt(r[1]),ll=parseInt(r[2]),ul=parseInt(r[3]),dl=Math.round((r[5]===void 0?1:parseFloat(r[5]))*255),fl.toColor(cl,ll,ul,dl);if(!t||!n||(t.fillStyle=n,t.fillStyle=e,typeof t.fillStyle!=`string`)||(t.fillRect(0,0,1,1),[cl,ll,ul,dl]=t.getImageData(0,0,1,1).data,dl!==255))throw Error(`css.toColor: Unsupported css format`);return{rgba:fl.toRgba(cl,ll,ul,dl),css:e}}e.toColor=r})(ml||={});var hl;(e=>{function t(e){return n(e>>16&255,e>>8&255,e&255)}e.relativeLuminance=t;function n(e,t,n){let r=e/255,i=t/255,a=n/255,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4,s=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,c=a<=.03928?a/12.92:((a+.055)/1.055)**2.4;return o*.2126+s*.7152+c*.0722}e.relativeLuminance2=n})(hl||={});var gl;(e=>{function t(e,t){if(dl=(t&255)/255,dl===1)return t;let n=t>>24&255,r=t>>16&255,i=t>>8&255,a=e>>24&255,o=e>>16&255,s=e>>8&255;return cl=a+Math.round((n-a)*dl),ll=o+Math.round((r-o)*dl),ul=s+Math.round((i-s)*dl),fl.toRgba(cl,ll,ul)}e.blend=t;function n(e,t,n){let a=hl.relativeLuminance(e>>8),o=hl.relativeLuminance(t>>8);if(vl(a,o)<n){if(o<a){let o=r(e,t,n),s=vl(a,hl.relativeLuminance(o>>8));if(s<n){let r=i(e,t,n);return s>vl(a,hl.relativeLuminance(r>>8))?o:r}return o}let s=i(e,t,n),c=vl(a,hl.relativeLuminance(s>>8));if(c<n){let i=r(e,t,n);return c>vl(a,hl.relativeLuminance(i>>8))?s:i}return s}}e.ensureContrastRatio=n;function r(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=vl(hl.relativeLuminance2(o,s,c),hl.relativeLuminance2(r,i,a));for(;l<n&&(o>0||s>0||c>0);)o-=Math.max(0,Math.ceil(o*.1)),s-=Math.max(0,Math.ceil(s*.1)),c-=Math.max(0,Math.ceil(c*.1)),l=vl(hl.relativeLuminance2(o,s,c),hl.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.reduceLuminance=r;function i(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=vl(hl.relativeLuminance2(o,s,c),hl.relativeLuminance2(r,i,a));for(;l<n&&(o<255||s<255||c<255);)o=Math.min(255,o+Math.ceil((255-o)*.1)),s=Math.min(255,s+Math.ceil((255-s)*.1)),c=Math.min(255,c+Math.ceil((255-c)*.1)),l=vl(hl.relativeLuminance2(o,s,c),hl.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.increaseLuminance=i;function a(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}e.toChannels=a})(gl||={});function _l(e){let t=e.toString(16);return t.length<2?`0`+t:t}function vl(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}var yl=Object.freeze((()=>{let e=[ml.toColor(`#2e3436`),ml.toColor(`#cc0000`),ml.toColor(`#4e9a06`),ml.toColor(`#c4a000`),ml.toColor(`#3465a4`),ml.toColor(`#75507b`),ml.toColor(`#06989a`),ml.toColor(`#d3d7cf`),ml.toColor(`#555753`),ml.toColor(`#ef2929`),ml.toColor(`#8ae234`),ml.toColor(`#fce94f`),ml.toColor(`#729fcf`),ml.toColor(`#ad7fa8`),ml.toColor(`#34e2e2`),ml.toColor(`#eeeeec`)],t=[0,95,135,175,215,255];for(let n=0;n<216;n++){let r=t[n/36%6|0],i=t[n/6%6|0],a=t[n%6];e.push({css:fl.toCss(r,i,a),rgba:fl.toRgba(r,i,a)})}for(let t=0;t<24;t++){let n=8+t*10;e.push({css:fl.toCss(n,n,n),rgba:fl.toRgba(n,n,n)})}return e})());function bl(e,t,n){return Math.max(t,Math.min(e,n))}function xl(e){switch(e){case`&`:return`&`;case`<`:return`<`}return e}var Sl=class{constructor(e){this._buffer=e}serialize(e,t){let n=this._buffer.getNullCell(),r=this._buffer.getNullCell(),i=n,a=e.start.y,o=e.end.y,s=e.start.x,c=e.end.x;this._beforeSerialize(o-a,a,o);for(let t=a;t<=o;t++){let a=this._buffer.getLine(t);if(a){let o=t===e.start.y?s:0,l=t===e.end.y?c:a.length;for(let e=o;e<l;e++){let o=a.getCell(e,i===n?r:n);if(!o){console.warn(`Can't get cell at row=${t}, col=${e}`);continue}this._nextCell(o,i,t,e),i=o}}this._rowEnd(t,t===o)}return this._afterSerialize(),this._serializeString(t)}_nextCell(e,t,n,r){}_rowEnd(e,t){}_beforeSerialize(e,t,n){}_afterSerialize(){}_serializeString(e){return``}};function Cl(e,t){return e.getFgColorMode()===t.getFgColorMode()&&e.getFgColor()===t.getFgColor()}function wl(e,t){return e.getBgColorMode()===t.getBgColorMode()&&e.getBgColor()===t.getBgColor()}function Tl(e,t){return e.isInverse()===t.isInverse()&&e.isBold()===t.isBold()&&e.isUnderline()===t.isUnderline()&&e.isOverline()===t.isOverline()&&e.isBlink()===t.isBlink()&&e.isInvisible()===t.isInvisible()&&e.isItalic()===t.isItalic()&&e.isDim()===t.isDim()&&e.isStrikethrough()===t.isStrikethrough()}var El=class extends Sl{constructor(e,t){super(e),this._terminal=t,this._rowIndex=0,this._allRows=[],this._allRowSeparators=[],this._currentRow=``,this._nullCellCount=0,this._cursorStyle=this._buffer.getNullCell(),this._cursorStyleRow=0,this._cursorStyleCol=0,this._backgroundCell=this._buffer.getNullCell(),this._firstRow=0,this._lastCursorRow=0,this._lastCursorCol=0,this._lastContentCursorRow=0,this._lastContentCursorCol=0,this._thisRowLastChar=this._buffer.getNullCell(),this._thisRowLastSecondChar=this._buffer.getNullCell(),this._nextRowFirstChar=this._buffer.getNullCell()}_beforeSerialize(e,t,n){this._allRows=Array(e),this._lastContentCursorRow=t,this._lastCursorRow=t,this._firstRow=t}_rowEnd(e,t){this._nullCellCount>0&&!wl(this._cursorStyle,this._backgroundCell)&&(this._currentRow+=`\x1B[${this._nullCellCount}X`);let n=``;if(!t){e-this._firstRow>=this._terminal.rows&&this._buffer.getLine(this._cursorStyleRow)?.getCell(this._cursorStyleCol,this._backgroundCell);let t=this._buffer.getLine(e),r=this._buffer.getLine(e+1);if(!r.isWrapped)n=`\r
|
|
17
|
+
`,this._lastCursorRow=e+1,this._lastCursorCol=0;else{n=``;let i=t.getCell(t.length-1,this._thisRowLastChar),a=t.getCell(t.length-2,this._thisRowLastSecondChar),o=r.getCell(0,this._nextRowFirstChar),s=o.getWidth()>1,c=!1;(o.getChars()&&s?this._nullCellCount<=1:this._nullCellCount<=0)&&((i.getChars()||i.getWidth()===0)&&wl(i,o)&&(c=!0),s&&(a.getChars()||a.getWidth()===0)&&wl(i,o)&&wl(a,o)&&(c=!0)),c||(n=`-`.repeat(this._nullCellCount+1),n+=`\x1B[1D\x1B[1X`,this._nullCellCount>0&&(n+=`\x1B[A`,n+=`\x1B[${t.length-this._nullCellCount}C`,n+=`\x1B[${this._nullCellCount}X`,n+=`\x1B[${t.length-this._nullCellCount}D`,n+=`\x1B[B`),this._lastContentCursorRow=e+1,this._lastContentCursorCol=0,this._lastCursorRow=e+1,this._lastCursorCol=0)}}this._allRows[this._rowIndex]=this._currentRow,this._allRowSeparators[this._rowIndex++]=n,this._currentRow=``,this._nullCellCount=0}_diffStyle(e,t){let n=[],r=!Cl(e,t),i=!wl(e,t),a=!Tl(e,t);if(r||i||a){if(e.isAttributeDefault())t.isAttributeDefault()||n.push(0);else{if(r){let t=e.getFgColor();e.isFgRGB()?n.push(38,2,t>>>16&255,t>>>8&255,t&255):e.isFgPalette()?t>=16?n.push(38,5,t):n.push(t&8?90+(t&7):30+(t&7)):n.push(39)}if(i){let t=e.getBgColor();e.isBgRGB()?n.push(48,2,t>>>16&255,t>>>8&255,t&255):e.isBgPalette()?t>=16?n.push(48,5,t):n.push(t&8?100+(t&7):40+(t&7)):n.push(49)}a&&(e.isInverse()!==t.isInverse()&&n.push(e.isInverse()?7:27),e.isBold()!==t.isBold()&&n.push(e.isBold()?1:22),e.isUnderline()!==t.isUnderline()&&n.push(e.isUnderline()?4:24),e.isOverline()!==t.isOverline()&&n.push(e.isOverline()?53:55),e.isBlink()!==t.isBlink()&&n.push(e.isBlink()?5:25),e.isInvisible()!==t.isInvisible()&&n.push(e.isInvisible()?8:28),e.isItalic()!==t.isItalic()&&n.push(e.isItalic()?3:23),e.isDim()!==t.isDim()&&n.push(e.isDim()?2:22),e.isStrikethrough()!==t.isStrikethrough()&&n.push(e.isStrikethrough()?9:29))}}return n}_nextCell(e,t,n,r){if(e.getWidth()===0)return;let i=e.getChars()===``,a=this._diffStyle(e,this._cursorStyle);if(i?!wl(this._cursorStyle,e):a.length>0){this._nullCellCount>0&&(wl(this._cursorStyle,this._backgroundCell)||(this._currentRow+=`\x1B[${this._nullCellCount}X`),this._currentRow+=`\x1B[${this._nullCellCount}C`,this._nullCellCount=0),this._lastContentCursorRow=this._lastCursorRow=n,this._lastContentCursorCol=this._lastCursorCol=r,this._currentRow+=`\x1B[${a.join(`;`)}m`;let e=this._buffer.getLine(n);e!==void 0&&(e.getCell(r,this._cursorStyle),this._cursorStyleRow=n,this._cursorStyleCol=r)}i?this._nullCellCount+=e.getWidth():(this._nullCellCount>0&&(wl(this._cursorStyle,this._backgroundCell)||(this._currentRow+=`\x1B[${this._nullCellCount}X`),this._currentRow+=`\x1B[${this._nullCellCount}C`,this._nullCellCount=0),this._currentRow+=e.getChars(),this._lastContentCursorRow=this._lastCursorRow=n,this._lastContentCursorCol=this._lastCursorCol=r+e.getWidth())}_serializeString(e){let t=this._allRows.length;this._buffer.length-this._firstRow<=this._terminal.rows&&(t=this._lastContentCursorRow+1-this._firstRow,this._lastCursorCol=this._lastContentCursorCol,this._lastCursorRow=this._lastContentCursorRow);let n=``;for(let e=0;e<t;e++)n+=this._allRows[e],e+1<t&&(n+=this._allRowSeparators[e]);if(!e){let e=this._buffer.baseY+this._buffer.cursorY,t=this._buffer.cursorX;(e!==this._lastCursorRow||t!==this._lastCursorCol)&&((e=>{e>0?n+=`\x1B[${e}B`:e<0&&(n+=`\x1B[${-e}A`)})(e-this._lastCursorRow),(e=>{e>0?n+=`\x1B[${e}C`:e<0&&(n+=`\x1B[${-e}D`)})(t-this._lastCursorCol))}let r=this._terminal._core._inputHandler._curAttrData,i=this._diffStyle(r,this._cursorStyle);return i.length>0&&(n+=`\x1B[${i.join(`;`)}m`),n}},Dl=class{activate(e){this._terminal=e}_serializeBufferByScrollback(e,t,n){let r=t.length,i=n===void 0?r:bl(n+e.rows,0,r);return this._serializeBufferByRange(e,t,{start:r-i,end:r-1},!1)}_serializeBufferByRange(e,t,n,r){return new El(t,e).serialize({start:{x:0,y:typeof n.start==`number`?n.start:n.start.line},end:{x:e.cols,y:typeof n.end==`number`?n.end:n.end.line}},r)}_serializeBufferAsHTML(e,t){let n=e.buffer.active,r=new Ol(n,e,t),i=t.onlySelection??!1,a=t.range;if(a)return r.serialize({start:{x:a.startCol,y:(a.startLine,a.startLine)},end:{x:e.cols,y:(a.endLine,a.endLine)}});if(!i){let i=n.length,a=t.scrollback,o=a===void 0?i:bl(a+e.rows,0,i);return r.serialize({start:{x:0,y:i-o},end:{x:e.cols,y:i-1}})}let o=this._terminal?.getSelectionPosition();return o===void 0?``:r.serialize({start:{x:o.start.x,y:o.start.y},end:{x:o.end.x,y:o.end.y}})}_serializeModes(e){let t=``,n=e.modes;if(n.applicationCursorKeysMode&&(t+=`\x1B[?1h`),n.applicationKeypadMode&&(t+=`\x1B[?66h`),n.bracketedPasteMode&&(t+=`\x1B[?2004h`),n.insertMode&&(t+=`\x1B[4h`),n.originMode&&(t+=`\x1B[?6h`),n.reverseWraparoundMode&&(t+=`\x1B[?45h`),n.sendFocusMode&&(t+=`\x1B[?1004h`),n.wraparoundMode===!1&&(t+=`\x1B[?7l`),n.mouseTrackingMode!==`none`)switch(n.mouseTrackingMode){case`x10`:t+=`\x1B[?9h`;break;case`vt200`:t+=`\x1B[?1000h`;break;case`drag`:t+=`\x1B[?1002h`;break;case`any`:t+=`\x1B[?1003h`}return t}serialize(e){if(!this._terminal)throw Error(`Cannot use addon until it has been loaded`);let t=e?.range?this._serializeBufferByRange(this._terminal,this._terminal.buffer.normal,e.range,!0):this._serializeBufferByScrollback(this._terminal,this._terminal.buffer.normal,e?.scrollback);if(!e?.excludeAltBuffer&&this._terminal.buffer.active.type===`alternate`){let e=this._serializeBufferByScrollback(this._terminal,this._terminal.buffer.alternate,void 0);t+=`\x1B[?1049h\x1B[H${e}`}return e?.excludeModes||(t+=this._serializeModes(this._terminal)),t}serializeAsHTML(e){if(!this._terminal)throw Error(`Cannot use addon until it has been loaded`);return this._serializeBufferAsHTML(this._terminal,e||{})}dispose(){}},Ol=class extends Sl{constructor(e,t,n){super(e),this._terminal=t,this._options=n,this._currentRow=``,this._htmlContent=``,this._ansiColors=t._core._themeService?t._core._themeService.colors.ansi:yl}_padStart(e,t,n){return t>>=0,n??=` `,e.length>t?e:(t-=e.length,t>n.length&&(n+=n.repeat(t/n.length)),n.slice(0,t)+e)}_beforeSerialize(e,t,n){this._htmlContent+=`<html><body><!--StartFragment--><pre>`;let r=`#000000`,i=`#ffffff`;(this._options.includeGlobalBackground??!1)&&(r=this._terminal.options.theme?.foreground??`#ffffff`,i=this._terminal.options.theme?.background??`#000000`);let a=[];a.push(`color: `+r+`;`),a.push(`background-color: `+i+`;`),a.push(`font-family: `+this._terminal.options.fontFamily+`;`),a.push(`font-size: `+this._terminal.options.fontSize+`px;`),this._htmlContent+=`<div style='`+a.join(` `)+`'>`}_afterSerialize(){this._htmlContent+=`</div>`,this._htmlContent+=`</pre><!--EndFragment--></body></html>`}_rowEnd(e,t){this._htmlContent+=`<div><span>`+this._currentRow+`</span></div>`,this._currentRow=``}_getHexColor(e,t){let n=t?e.getFgColor():e.getBgColor();if(t?e.isFgRGB():e.isBgRGB())return`#`+[n>>16&255,n>>8&255,n&255].map(e=>this._padStart(e.toString(16),2,`0`)).join(``);if(t?e.isFgPalette():e.isBgPalette())return this._ansiColors[n].css}_diffStyle(e,t){let n=[],r=!Cl(e,t),i=!wl(e,t),a=!Tl(e,t);if(r||i||a){let t=this._getHexColor(e,!0);t&&n.push(`color: `+t+`;`);let r=this._getHexColor(e,!1);return r&&n.push(`background-color: `+r+`;`),e.isInverse()&&n.push(`color: #000000; background-color: #BFBFBF;`),e.isBold()&&n.push(`font-weight: bold;`),e.isUnderline()&&e.isOverline()?n.push(`text-decoration: overline underline;`):e.isUnderline()?n.push(`text-decoration: underline;`):e.isOverline()&&n.push(`text-decoration: overline;`),e.isBlink()&&n.push(`text-decoration: blink;`),e.isInvisible()&&n.push(`visibility: hidden;`),e.isItalic()&&n.push(`font-style: italic;`),e.isDim()&&n.push(`opacity: 0.5;`),e.isStrikethrough()&&n.push(`text-decoration: line-through;`),n}}_nextCell(e,t,n,r){if(e.getWidth()===0)return;let i=e.getChars()===``,a=this._diffStyle(e,t);a&&(this._currentRow+=a.length===0?`</span><span>`:`</span><span style='`+a.join(` `)+`'>`),i?this._currentRow+=` `:this._currentRow+=xl(e.getChars())}_serializeString(){return this._htmlContent}},kl=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],Al=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],jl;function Ml(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}var Nl=class{constructor(){if(this.version=`6`,!jl){jl=new Uint8Array(65536),jl.fill(1),jl[0]=0,jl.fill(0,1,32),jl.fill(0,127,160),jl.fill(2,4352,4448),jl[9001]=2,jl[9002]=2,jl.fill(2,11904,42192),jl[12351]=1,jl.fill(2,44032,55204),jl.fill(2,63744,64256),jl.fill(2,65040,65050),jl.fill(2,65072,65136),jl.fill(2,65280,65377),jl.fill(2,65504,65511);for(let e=0;e<kl.length;++e)jl.fill(0,kl[e][0],kl[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?jl[e]:Ml(e,Al)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=_u.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return _u.createPropertyValue(0,n,r)}},Pl=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?zl.isErrorNoTelemetry(e)?new zl(e.message+`
|
|
18
|
+
|
|
19
|
+
`+e.stack):Error(e.message+`
|
|
20
|
+
|
|
21
|
+
`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function Fl(e){Ll(e)||Pl.onUnexpectedError(e)}var Il=`Canceled`;function Ll(e){return e instanceof Rl||e instanceof Error&&e.name===Il&&e.message===Il}var Rl=class extends Error{constructor(){super(Il),this.name=this.message}},zl=class e extends Error{constructor(e){super(e),this.name=`CodeExpectedError`}static fromError(t){if(t instanceof e)return t;let n=new e;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(e){return e.name===`CodeExpectedError`}};function Bl(e,t){let n=this,r=!1,i;return function(){if(r)return i;if(r=!0,t)try{i=e.apply(n,arguments)}finally{t()}else i=e.apply(n,arguments);return i}}var Vl;(e=>{function t(e){return e<0}e.isLessThan=t;function n(e){return e<=0}e.isLessThanOrEqual=n;function r(e){return e>0}e.isGreaterThan=r;function i(e){return e===0}e.isNeitherLessOrGreaterThan=i,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Vl||={});var Hl=class e{constructor(e){this.iterate=e}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(t){return new e(e=>this.iterate(n=>!t(n)||e(n)))}map(t){return new e(e=>this.iterate(n=>e(t(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>!e(n)||(t=n,!1)),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Vl.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};Hl.empty=new Hl(e=>{});var Ul;(e=>{function t(e){return e&&typeof e==`object`&&typeof e[Symbol.iterator]==`function`}e.is=t;let n=Object.freeze([]);function r(){return n}e.empty=r;function*i(e){yield e}e.single=i;function a(e){return t(e)?e:i(e)}e.wrap=a;function o(e){return e||n}e.from=o;function*s(e){for(let t=e.length-1;t>=0;t--)yield e[t]}e.reverse=s;function c(e){return!e||e[Symbol.iterator]().next().done===!0}e.isEmpty=c;function l(e){return e[Symbol.iterator]().next().value}e.first=l;function u(e,t){let n=0;for(let r of e)if(t(r,n++))return!0;return!1}e.some=u;function d(e,t){for(let n of e)if(t(n))return n}e.find=d;function*f(e,t){for(let n of e)t(n)&&(yield n)}e.filter=f;function*p(e,t){let n=0;for(let r of e)yield t(r,n++)}e.map=p;function*m(e,t){let n=0;for(let r of e)yield*t(r,n++)}e.flatMap=m;function*h(...e){for(let t of e)yield*t}e.concat=h;function g(e,t,n){let r=n;for(let n of e)r=t(r,n);return r}e.reduce=g;function*_(e,t,n=e.length){for(t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);t<n;t++)yield e[t]}e.slice=_;function v(t,n=1/0){let r=[];if(n===0)return[r,t];let i=t[Symbol.iterator]();for(let t=0;t<n;t++){let t=i.next();if(t.done)return[r,e.empty()];r.push(t.value)}return[r,{[Symbol.iterator](){return i}}]}e.consume=v;async function y(e){let t=[];for await(let n of e)t.push(n);return Promise.resolve(t)}e.asyncToArray=y})(Ul||={});var Wl=null;function Gl(e){return Wl?.trackDisposable(e),e}function Kl(e){Wl?.markAsDisposed(e)}function ql(e,t){Wl?.setParent(e,t)}function Jl(e){if(Ul.is(e)){let t=[];for(let n of e)if(n)try{n.dispose()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Encountered errors while disposing of store`);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function Yl(...e){return Xl(()=>Jl(e))}function Xl(e){let t=Gl({dispose:Bl(()=>{Kl(t),e()})});return t}var Zl=class e{constructor(){this._toDispose=new Set,this._isDisposed=!1,Gl(this)}dispose(){this._isDisposed||(Kl(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Jl(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw Error(`Cannot register a disposable on itself!`);return ql(t,this),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(t),t}delete(e){if(e){if(e===this)throw Error(`Cannot dispose a disposable on itself!`);this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),ql(e,null))}};Zl.DISABLE_DISPOSED_WARNING=!1;var Ql=Zl,$l=class{constructor(){this._store=new Ql,Gl(this),ql(this._store,this)}dispose(){Kl(this),this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}};$l.None=Object.freeze({dispose(){}});var eu=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};eu.Undefined=new eu(void 0);var tu=globalThis.performance&&typeof globalThis.performance.now==`function`,nu=class e{static create(t){return new e(t)}constructor(e){this._now=tu&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime===-1?this._now()-this._startTime:this._stopTime-this._startTime}},ru;(e=>{e.None=()=>$l.None;function t(e,t){return d(e,()=>{},0,void 0,!0,void 0,t)}e.defer=t;function n(e){return(t,n=null,r)=>{let i=!1,a;return a=e(e=>{if(!i)return a?a.dispose():i=!0,t.call(n,e)},null,r),i&&a.dispose(),a}}e.once=n;function r(e,t,n){return l((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i),n)}e.map=r;function i(e,t,n){return l((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i),n)}e.forEach=i;function a(e,t,n){return l((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i),n)}e.filter=a;function o(e){return e}e.signal=o;function s(...e){return(t,n=null,r)=>u(Yl(...e.map(e=>e(e=>t.call(n,e)))),r)}e.any=s;function c(e,t,n,i){let a=n;return r(e,e=>(a=t(a,e),a),i)}e.reduce=c;function l(e,t){let n,r=new hu({onWillAddFirstListener(){n=e(r.fire,r)},onDidRemoveLastListener(){n?.dispose()}});return t?.add(r),r.event}function u(e,t){return t instanceof Array?t.push(e):t&&t.add(e),e}function d(e,t,n=100,r=!1,i=!1,a,o){let s,c,l,u=0,d,f=new hu({leakWarningThreshold:a,onWillAddFirstListener(){s=e(e=>{u++,c=t(c,e),r&&!l&&(f.fire(c),c=void 0),d=()=>{let e=c;c=void 0,l=void 0,(!r||u>1)&&f.fire(e),u=0},typeof n==`number`?(clearTimeout(l),l=setTimeout(d,n)):l===void 0&&(l=0,queueMicrotask(d))})},onWillRemoveListener(){i&&u>0&&d?.()},onDidRemoveLastListener(){d=void 0,s.dispose()}});return o?.add(f),f.event}e.debounce=d;function f(t,n=0,r){return e.debounce(t,(e,t)=>e?(e.push(t),e):[t],n,void 0,!0,void 0,r)}e.accumulate=f;function p(e,t=(e,t)=>e===t,n){let r=!0,i;return a(e,e=>{let n=r||!t(e,i);return r=!1,i=e,n},n)}e.latch=p;function m(t,n,r){return[e.filter(t,n,r),e.filter(t,e=>!n(e),r)]}e.split=m;function h(e,t=!1,n=[],r){let i=n.slice(),a=e(e=>{i?i.push(e):s.fire(e)});r&&r.add(a);let o=()=>{i?.forEach(e=>s.fire(e)),i=null},s=new hu({onWillAddFirstListener(){a||(a=e(e=>s.fire(e)),r&&r.add(a))},onDidAddFirstListener(){i&&(t?setTimeout(o):o())},onDidRemoveLastListener(){a&&a.dispose(),a=null}});return r&&r.add(s),s.event}e.buffer=h;function g(e,t){return(n,r,i)=>{let a=t(new v);return e(function(e){let t=a.evaluate(e);t!==_&&n.call(r,t)},void 0,i)}}e.chain=g;let _=Symbol(`HaltChainable`);class v{constructor(){this.steps=[]}map(e){return this.steps.push(e),this}forEach(e){return this.steps.push(t=>(e(t),t)),this}filter(e){return this.steps.push(t=>e(t)?t:_),this}reduce(e,t){let n=t;return this.steps.push(t=>(n=e(n,t),n)),this}latch(e=(e,t)=>e===t){let t=!0,n;return this.steps.push(r=>{let i=t||!e(r,n);return t=!1,n=r,i?r:_}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===_)break;return e}}function y(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new hu({onWillAddFirstListener:()=>e.on(t,r),onDidRemoveLastListener:()=>e.removeListener(t,r)});return i.event}e.fromNodeEventEmitter=y;function b(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new hu({onWillAddFirstListener:()=>e.addEventListener(t,r),onDidRemoveLastListener:()=>e.removeEventListener(t,r)});return i.event}e.fromDOMEventEmitter=b;function x(e){return new Promise(t=>n(e)(t))}e.toPromise=x;function S(e){let t=new hu;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=S;function C(e,t){return e(e=>t.fire(e))}e.forward=C;function w(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=w;class T{constructor(e,t){this._observable=e,this._counter=0,this._hasChanged=!1;let n={onWillAddFirstListener:()=>{e.addObserver(this)},onDidRemoveLastListener:()=>{e.removeObserver(this)}};this.emitter=new hu(n),t&&t.add(this.emitter)}beginUpdate(e){this._counter++}handlePossibleChange(e){}handleChange(e,t){this._hasChanged=!0}endUpdate(e){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function E(e,t){return new T(e,t).emitter.event}e.fromObservable=E;function D(e){return(t,n,r)=>{let i=0,a=!1,o={beginUpdate(){i++},endUpdate(){i--,i===0&&(e.reportChanges(),a&&(a=!1,t.call(n)))},handlePossibleChange(){},handleChange(){a=!0}};e.addObserver(o),e.reportChanges();let s={dispose(){e.removeObserver(o)}};return r instanceof Ql?r.add(s):Array.isArray(r)&&r.push(s),s}}e.fromObservableLight=D})(ru||={});var iu=class e{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${e._idPool++}`,e.all.add(this)}start(e){this._stopWatch=new nu,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}};iu.all=new Set,iu._idPool=0;var au=iu,ou=-1,su=class e{constructor(t,n,r=(e._idPool++).toString(16).padStart(3,`0`)){this._errorHandler=t,this.threshold=n,this.name=r,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t<n)return;this._stacks||=new Map;let r=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,r+1),--this._warnCountdown,this._warnCountdown<=0){this._warnCountdown=n*.5;let[e,r]=this.getMostFrequentStack(),i=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${r}):`;console.warn(i),console.warn(e);let a=new uu(i,e);this._errorHandler(a)}return()=>{let t=this._stacks.get(e.value)||0;this._stacks.set(e.value,t-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t<r)&&(e=[n,r],t=r);return e}};su._idPool=1;var cu=su,lu=class e{constructor(e){this.value=e}static create(){return new e(Error().stack??``)}print(){console.warn(this.value.split(`
|
|
22
|
+
`).slice(2).join(`
|
|
23
|
+
`))}},uu=class extends Error{constructor(e,t){super(e),this.name=`ListenerLeakError`,this.stack=t}},du=class extends Error{constructor(e,t){super(e),this.name=`ListenerRefusalError`,this.stack=t}},fu=0,pu=class{constructor(e){this.value=e,this.id=fu++}},mu=2,hu=class{constructor(e){this._size=0,this._options=e,this._leakageMon=ou>0||this._options?.leakWarningThreshold?new cu(e?.onListenerError??Fl,this._options?.leakWarningThreshold??ou):void 0,this._perfMon=this._options?._profName?new au(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let e=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(e);let t=this._leakageMon.getMostFrequentStack()??[`UNKNOWN stack`,-1],n=new du(`${e}. HINT: Stack shows most frequent listener (${t[1]}-times)`,t[0]);return(this._options?.onListenerError||Fl)(n),$l.None}if(this._disposed)return $l.None;t&&(e=e.bind(t));let r=new pu(e),i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=lu.create(),i=this._leakageMon.check(r.stack,this._size+1)),this._listeners?this._listeners instanceof pu?(this._deliveryQueue??=new gu,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._size++;let a=Xl(()=>{i?.(),this._removeListener(r)});return n instanceof Ql?n.add(a):Array.isArray(n)&&n.push(a),a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log(`disposed?`,this._disposed),console.log(`size?`,this._size),console.log(`arr?`,JSON.stringify(this._listeners)),Error(`Attempted to dispose unknown listener`);this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*mu<=t.length){let e=0;for(let n=0;n<t.length;n++)t[n]?t[e++]=t[n]:r&&(this._deliveryQueue.end--,e<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=e}}_deliver(e,t){if(!e)return;let n=this._options?.onListenerError||Fl;if(!n){e.value(t);return}try{e.value(t)}catch(e){n(e)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners){if(this._listeners instanceof pu)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}}this._perfMon?.stop()}hasListeners(){return this._size>0}},gu=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},_u=class e{constructor(){this._providers=Object.create(null),this._active=``,this._onChange=new hu,this.onChange=this._onChange.event;let e=new Nl;this.register(e),this._active=e.version,this._activeProvider=e}static extractShouldJoin(e){return!!(e&1)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,n=!1){return(e&16777215)<<3|(t&3)<<1|!!n}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(t){let n=0,r=0,i=t.length;for(let a=0;a<i;++a){let o=t.charCodeAt(a);if(55296<=o&&o<=56319){if(++a>=i)return n+this.wcwidth(o);let e=t.charCodeAt(a);56320<=e&&e<=57343?o=(o-55296)*1024+e-56320+65536:n+=this.wcwidth(e)}let s=this.charProperties(o,r),c=e.extractWidth(s);e.extractShouldJoin(s)&&(c-=e.extractWidth(r)),n+=c,r=s}return n}charProperties(e,t){return this._activeProvider.charProperties(e,t)}},vu=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],yu=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],bu=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],xu=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]],Su;function Cu(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}var wu=class{constructor(){if(this.version=`11`,!Su){Su=new Uint8Array(65536),Su.fill(1),Su[0]=0,Su.fill(0,1,32),Su.fill(0,127,160);for(let e=0;e<vu.length;++e)Su.fill(0,vu[e][0],vu[e][1]+1);for(let e=0;e<bu.length;++e)Su.fill(2,bu[e][0],bu[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?Su[e]:Cu(e,yu)?0:Cu(e,xu)?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=_u.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return _u.createPropertyValue(0,n,r)}},Tu=class{activate(e){e.unicode.register(new wu)}dispose(){}},Eu=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=Ou.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function Du(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var Ou=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!Du(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}},ku=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function Au(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var ju=class{constructor(e=Au,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||ku;this._linkProvider=this._terminal.registerLinkProvider(new Eu(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},Mu=Object.defineProperty,Nu=Object.getOwnPropertyDescriptor,Pu=(e,t)=>{for(var n in t)Mu(e,n,{get:t[n],enumerable:!0})},Fu=(e,t,n,r)=>{for(var i=r>1?void 0:r?Nu(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&Mu(t,n,i),i},J=(e,t)=>(n,r)=>t(n,r,e),Iu=`Terminal input`,Lu={get:()=>Iu,set:e=>Iu=e},Ru=`Too much output to announce, navigate to rows manually to read`,zu={get:()=>Ru,set:e=>Ru=e};function Bu(e){return e.replace(/\r?\n/g,`\r`)}function Vu(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Hu(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function Uu(e,t,n,r){e.stopPropagation(),e.clipboardData&&Wu(e.clipboardData.getData(`text/plain`),t,n,r)}function Wu(e,t,n,r){e=Bu(e),e=Vu(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Gu(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function Ku(e,t,n,r,i){Gu(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function qu(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Ju(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var Yu=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},Xu=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},Zu=``,Qu=` `,$u=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ed}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ed=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},td=class e extends $u{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ed,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?qu(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},nd=`di$target`,rd=`di$dependencies`,id=new Map;function ad(e){return e[rd]||[]}function od(e){if(id.has(e))return id.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);sd(t,e,r)};return t._id=e,id.set(e,t),t}function sd(e,t,n){t[nd]===t?t[rd].push({id:e,index:n}):(t[rd]=[{id:e,index:n}],t[nd]=t)}var cd=od(`BufferService`),ld=od(`CoreMouseService`),ud=od(`CoreService`),dd=od(`CharsetService`),fd=od(`InstantiationService`),pd=od(`LogService`),md=od(`OptionsService`),hd=od(`OscLinkService`),gd=od(`UnicodeService`),_d=od(`DecorationService`),vd=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new td,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):yd(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};vd=Fu([J(0,cd),J(1,md),J(2,hd)],vd);function yd(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
24
|
+
|
|
25
|
+
WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var bd=od(`CharSizeService`),xd=od(`CoreBrowserService`),Sd=od(`MouseService`),Y=od(`RenderService`),Cd=od(`SelectionService`),wd=od(`CharacterJoinerService`),Td=od(`ThemeService`),Ed=od(`LinkProviderService`),Dd=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Nd.isErrorNoTelemetry(e)?new Nd(e.message+`
|
|
26
|
+
|
|
27
|
+
`+e.stack):Error(e.message+`
|
|
28
|
+
|
|
29
|
+
`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function Od(e){Ad(e)||Dd.onUnexpectedError(e)}var kd=`Canceled`;function Ad(e){return e instanceof jd||e instanceof Error&&e.name===kd&&e.message===kd}var jd=class extends Error{constructor(){super(kd),this.name=this.message}};function Md(e){return Error(e?`Illegal argument: ${e}`:`Illegal argument`)}var Nd=class e extends Error{constructor(e){super(e),this.name=`CodeExpectedError`}static fromError(t){if(t instanceof e)return t;let n=new e;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(e){return e.name===`CodeExpectedError`}},Pd=class e extends Error{constructor(t){super(t||`An unexpected bug occurred.`),Object.setPrototypeOf(this,e.prototype)}};function Fd(e,t=0){return e[e.length-(1+t)]}var Id;(e=>{function t(e){return e<0}e.isLessThan=t;function n(e){return e<=0}e.isLessThanOrEqual=n;function r(e){return e>0}e.isGreaterThan=r;function i(e){return e===0}e.isNeitherLessOrGreaterThan=i,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Id||={});var Ld=class e{constructor(e){this.iterate=e}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(t){return new e(e=>this.iterate(n=>!t(n)||e(n)))}map(t){return new e(e=>this.iterate(n=>e(t(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>!e(n)||(t=n,!1)),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Id.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};Ld.empty=new Ld(e=>{});function Rd(e,t){let n=this,r=!1,i;return function(){if(r)return i;if(r=!0,t)try{i=e.apply(n,arguments)}finally{t()}else i=e.apply(n,arguments);return i}}var zd;(e=>{function t(e){return e&&typeof e==`object`&&typeof e[Symbol.iterator]==`function`}e.is=t;let n=Object.freeze([]);function r(){return n}e.empty=r;function*i(e){yield e}e.single=i;function a(e){return t(e)?e:i(e)}e.wrap=a;function o(e){return e||n}e.from=o;function*s(e){for(let t=e.length-1;t>=0;t--)yield e[t]}e.reverse=s;function c(e){return!e||e[Symbol.iterator]().next().done===!0}e.isEmpty=c;function l(e){return e[Symbol.iterator]().next().value}e.first=l;function u(e,t){let n=0;for(let r of e)if(t(r,n++))return!0;return!1}e.some=u;function d(e,t){for(let n of e)if(t(n))return n}e.find=d;function*f(e,t){for(let n of e)t(n)&&(yield n)}e.filter=f;function*p(e,t){let n=0;for(let r of e)yield t(r,n++)}e.map=p;function*m(e,t){let n=0;for(let r of e)yield*t(r,n++)}e.flatMap=m;function*h(...e){for(let t of e)yield*t}e.concat=h;function g(e,t,n){let r=n;for(let n of e)r=t(r,n);return r}e.reduce=g;function*_(e,t,n=e.length){for(t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);t<n;t++)yield e[t]}e.slice=_;function v(t,n=1/0){let r=[];if(n===0)return[r,t];let i=t[Symbol.iterator]();for(let t=0;t<n;t++){let t=i.next();if(t.done)return[r,e.empty()];r.push(t.value)}return[r,{[Symbol.iterator](){return i}}]}e.consume=v;async function y(e){let t=[];for await(let n of e)t.push(n);return Promise.resolve(t)}e.asyncToArray=y})(zd||={});var Bd=null;function Vd(e){return Bd?.trackDisposable(e),e}function Hd(e){Bd?.markAsDisposed(e)}function Ud(e,t){Bd?.setParent(e,t)}function Wd(e){return Bd?.markAsSingleton(e),e}function Gd(e){if(zd.is(e)){let t=[];for(let n of e)if(n)try{n.dispose()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Encountered errors while disposing of store`);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function Kd(...e){return qd(()=>Gd(e))}function qd(e){let t=Vd({dispose:Rd(()=>{Hd(t),e()})});return t}var Jd=class e{constructor(){this._toDispose=new Set,this._isDisposed=!1,Vd(this)}dispose(){this._isDisposed||(Hd(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Gd(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw Error(`Cannot register a disposable on itself!`);return Ud(t,this),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(t),t}delete(e){if(e){if(e===this)throw Error(`Cannot dispose a disposable on itself!`);this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),Ud(e,null))}};Jd.DISABLE_DISPOSED_WARNING=!1;var Yd=Jd,Xd=class{constructor(){this._store=new Yd,Vd(this),Ud(this._store,this)}dispose(){Hd(this),this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}};Xd.None=Object.freeze({dispose(){}});var Zd=class{constructor(){this._isDisposed=!1,Vd(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&Ud(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Hd(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&Ud(e,null),e}},Qd=typeof window==`object`?window:globalThis,$d=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};$d.Undefined=new $d(void 0);var ef=$d,tf=class{constructor(){this._first=ef.Undefined,this._last=ef.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===ef.Undefined}clear(){let e=this._first;for(;e!==ef.Undefined;){let t=e.next;e.prev=ef.Undefined,e.next=ef.Undefined,e=t}this._first=ef.Undefined,this._last=ef.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){let n=new ef(e);if(this._first===ef.Undefined)this._first=n,this._last=n;else if(t){let e=this._last;this._last=n,n.prev=e,e.next=n}else{let e=this._first;this._first=n,n.next=e,e.prev=n}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(n))}}shift(){if(this._first!==ef.Undefined){let e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==ef.Undefined){let e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==ef.Undefined&&e.next!==ef.Undefined){let t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===ef.Undefined&&e.next===ef.Undefined?(this._first=ef.Undefined,this._last=ef.Undefined):e.next===ef.Undefined?(this._last=this._last.prev,this._last.next=ef.Undefined):e.prev===ef.Undefined&&(this._first=this._first.next,this._first.prev=ef.Undefined);--this._size}*[Symbol.iterator](){let e=this._first;for(;e!==ef.Undefined;)yield e.element,e=e.next}},nf=globalThis.performance&&typeof globalThis.performance.now==`function`,rf=class e{static create(t){return new e(t)}constructor(e){this._now=nf&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime===-1?this._now()-this._startTime:this._stopTime-this._startTime}},af;(e=>{e.None=()=>Xd.None;function t(e,t){return d(e,()=>{},0,void 0,!0,void 0,t)}e.defer=t;function n(e){return(t,n=null,r)=>{let i=!1,a;return a=e(e=>{if(!i)return a?a.dispose():i=!0,t.call(n,e)},null,r),i&&a.dispose(),a}}e.once=n;function r(e,t,n){return l((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i),n)}e.map=r;function i(e,t,n){return l((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i),n)}e.forEach=i;function a(e,t,n){return l((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i),n)}e.filter=a;function o(e){return e}e.signal=o;function s(...e){return(t,n=null,r)=>u(Kd(...e.map(e=>e(e=>t.call(n,e)))),r)}e.any=s;function c(e,t,n,i){let a=n;return r(e,e=>(a=t(a,e),a),i)}e.reduce=c;function l(e,t){let n,r=new X({onWillAddFirstListener(){n=e(r.fire,r)},onDidRemoveLastListener(){n?.dispose()}});return t?.add(r),r.event}function u(e,t){return t instanceof Array?t.push(e):t&&t.add(e),e}function d(e,t,n=100,r=!1,i=!1,a,o){let s,c,l,u=0,d,f=new X({leakWarningThreshold:a,onWillAddFirstListener(){s=e(e=>{u++,c=t(c,e),r&&!l&&(f.fire(c),c=void 0),d=()=>{let e=c;c=void 0,l=void 0,(!r||u>1)&&f.fire(e),u=0},typeof n==`number`?(clearTimeout(l),l=setTimeout(d,n)):l===void 0&&(l=0,queueMicrotask(d))})},onWillRemoveListener(){i&&u>0&&d?.()},onDidRemoveLastListener(){d=void 0,s.dispose()}});return o?.add(f),f.event}e.debounce=d;function f(t,n=0,r){return e.debounce(t,(e,t)=>e?(e.push(t),e):[t],n,void 0,!0,void 0,r)}e.accumulate=f;function p(e,t=(e,t)=>e===t,n){let r=!0,i;return a(e,e=>{let n=r||!t(e,i);return r=!1,i=e,n},n)}e.latch=p;function m(t,n,r){return[e.filter(t,n,r),e.filter(t,e=>!n(e),r)]}e.split=m;function h(e,t=!1,n=[],r){let i=n.slice(),a=e(e=>{i?i.push(e):s.fire(e)});r&&r.add(a);let o=()=>{i?.forEach(e=>s.fire(e)),i=null},s=new X({onWillAddFirstListener(){a||(a=e(e=>s.fire(e)),r&&r.add(a))},onDidAddFirstListener(){i&&(t?setTimeout(o):o())},onDidRemoveLastListener(){a&&a.dispose(),a=null}});return r&&r.add(s),s.event}e.buffer=h;function g(e,t){return(n,r,i)=>{let a=t(new v);return e(function(e){let t=a.evaluate(e);t!==_&&n.call(r,t)},void 0,i)}}e.chain=g;let _=Symbol(`HaltChainable`);class v{constructor(){this.steps=[]}map(e){return this.steps.push(e),this}forEach(e){return this.steps.push(t=>(e(t),t)),this}filter(e){return this.steps.push(t=>e(t)?t:_),this}reduce(e,t){let n=t;return this.steps.push(t=>(n=e(n,t),n)),this}latch(e=(e,t)=>e===t){let t=!0,n;return this.steps.push(r=>{let i=t||!e(r,n);return t=!1,n=r,i?r:_}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===_)break;return e}}function y(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new X({onWillAddFirstListener:()=>e.on(t,r),onDidRemoveLastListener:()=>e.removeListener(t,r)});return i.event}e.fromNodeEventEmitter=y;function b(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new X({onWillAddFirstListener:()=>e.addEventListener(t,r),onDidRemoveLastListener:()=>e.removeEventListener(t,r)});return i.event}e.fromDOMEventEmitter=b;function x(e){return new Promise(t=>n(e)(t))}e.toPromise=x;function S(e){let t=new X;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=S;function C(e,t){return e(e=>t.fire(e))}e.forward=C;function w(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=w;class T{constructor(e,t){this._observable=e,this._counter=0,this._hasChanged=!1;let n={onWillAddFirstListener:()=>{e.addObserver(this)},onDidRemoveLastListener:()=>{e.removeObserver(this)}};this.emitter=new X(n),t&&t.add(this.emitter)}beginUpdate(e){this._counter++}handlePossibleChange(e){}handleChange(e,t){this._hasChanged=!0}endUpdate(e){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function E(e,t){return new T(e,t).emitter.event}e.fromObservable=E;function D(e){return(t,n,r)=>{let i=0,a=!1,o={beginUpdate(){i++},endUpdate(){i--,i===0&&(e.reportChanges(),a&&(a=!1,t.call(n)))},handlePossibleChange(){},handleChange(){a=!0}};e.addObserver(o),e.reportChanges();let s={dispose(){e.removeObserver(o)}};return r instanceof Yd?r.add(s):Array.isArray(r)&&r.push(s),s}}e.fromObservableLight=D})(af||={});var of=class e{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${e._idPool++}`,e.all.add(this)}start(e){this._stopWatch=new rf,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}};of.all=new Set,of._idPool=0;var sf=of,cf=-1,lf=class e{constructor(t,n,r=(e._idPool++).toString(16).padStart(3,`0`)){this._errorHandler=t,this.threshold=n,this.name=r,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t<n)return;this._stacks||=new Map;let r=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,r+1),--this._warnCountdown,this._warnCountdown<=0){this._warnCountdown=n*.5;let[e,r]=this.getMostFrequentStack(),i=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${r}):`;console.warn(i),console.warn(e);let a=new ff(i,e);this._errorHandler(a)}return()=>{let t=this._stacks.get(e.value)||0;this._stacks.set(e.value,t-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t<r)&&(e=[n,r],t=r);return e}};lf._idPool=1;var uf=lf,df=class e{constructor(e){this.value=e}static create(){return new e(Error().stack??``)}print(){console.warn(this.value.split(`
|
|
30
|
+
`).slice(2).join(`
|
|
31
|
+
`))}},ff=class extends Error{constructor(e,t){super(e),this.name=`ListenerLeakError`,this.stack=t}},pf=class extends Error{constructor(e,t){super(e),this.name=`ListenerRefusalError`,this.stack=t}},mf=0,hf=class{constructor(e){this.value=e,this.id=mf++}},gf=2,X=class{constructor(e){this._size=0,this._options=e,this._leakageMon=cf>0||this._options?.leakWarningThreshold?new uf(e?.onListenerError??Od,this._options?.leakWarningThreshold??cf):void 0,this._perfMon=this._options?._profName?new sf(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let e=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(e);let t=this._leakageMon.getMostFrequentStack()??[`UNKNOWN stack`,-1],n=new pf(`${e}. HINT: Stack shows most frequent listener (${t[1]}-times)`,t[0]);return(this._options?.onListenerError||Od)(n),Xd.None}if(this._disposed)return Xd.None;t&&(e=e.bind(t));let r=new hf(e),i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=df.create(),i=this._leakageMon.check(r.stack,this._size+1)),this._listeners?this._listeners instanceof hf?(this._deliveryQueue??=new _f,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._size++;let a=qd(()=>{i?.(),this._removeListener(r)});return n instanceof Yd?n.add(a):Array.isArray(n)&&n.push(a),a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log(`disposed?`,this._disposed),console.log(`size?`,this._size),console.log(`arr?`,JSON.stringify(this._listeners)),Error(`Attempted to dispose unknown listener`);this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*gf<=t.length){let e=0;for(let n=0;n<t.length;n++)t[n]?t[e++]=t[n]:r&&(this._deliveryQueue.end--,e<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=e}}_deliver(e,t){if(!e)return;let n=this._options?.onListenerError||Od;if(!n){e.value(t);return}try{e.value(t)}catch(e){n(e)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners){if(this._listeners instanceof hf)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}}this._perfMon?.stop()}hasListeners(){return this._size>0}},_f=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},vf=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new X,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new X,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(e){return this.mapWindowIdToZoomLevel.get(this.getWindowId(e))??0}setZoomLevel(e,t){if(this.getZoomLevel(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToZoomLevel.set(n,e),this._onDidChangeZoomLevel.fire(n)}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}setZoomFactor(e,t){this.mapWindowIdToZoomFactor.set(this.getWindowId(t),e)}setFullscreen(e,t){if(this.isFullscreen(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToFullScreen.set(n,e),this._onDidChangeFullscreen.fire(n)}isFullscreen(e){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(e))}getWindowId(e){return e.vscodeWindowId}};vf.INSTANCE=new vf;var yf=vf;function bf(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}yf.INSTANCE.onDidChangeZoomLevel;function xf(e){return yf.INSTANCE.getZoomFactor(e)}yf.INSTANCE.onDidChangeFullscreen;var Sf=typeof navigator==`object`?navigator.userAgent:``,Cf=Sf.indexOf(`Firefox`)>=0,wf=Sf.indexOf(`AppleWebKit`)>=0,Tf=Sf.indexOf(`Chrome`)>=0,Ef=!Tf&&Sf.indexOf(`Safari`)>=0;Sf.indexOf(`Electron/`),Sf.indexOf(`Android`);var Df=!1;if(typeof Qd.matchMedia==`function`){let e=Qd.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=Qd.matchMedia(`(display-mode: fullscreen)`);Df=e.matches,bf(Qd,e,({matches:e})=>{Df&&t.matches||(Df=e)})}function Of(){return Df}var kf=`en`,Af=!1,jf=!1,Mf=!1,Nf=!1,Pf=!1,Ff=kf,If,Lf=globalThis,Rf;typeof Lf.vscode<`u`&&typeof Lf.vscode.process<`u`?Rf=Lf.vscode.process:typeof process<`u`&&typeof process?.versions?.node==`string`&&(Rf=process);var zf=typeof Rf?.versions?.electron==`string`&&Rf?.type===`renderer`;if(typeof Rf==`object`){Af=Rf.platform===`win32`,jf=Rf.platform===`darwin`,Mf=Rf.platform===`linux`,Mf&&Rf.env.SNAP&&Rf.env.SNAP_REVISION,Rf.env.CI||Rf.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Ff=kf;let e=Rf.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.userLocale,t.osLocale,Ff=t.resolvedLanguage||kf,t.languagePack?.translationsConfigFile}catch{}Nf=!0}else typeof navigator==`object`&&!zf?(If=navigator.userAgent,Af=If.indexOf(`Windows`)>=0,jf=If.indexOf(`Macintosh`)>=0,(If.indexOf(`Macintosh`)>=0||If.indexOf(`iPad`)>=0||If.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,Mf=If.indexOf(`Linux`)>=0,If?.indexOf(`Mobi`),Pf=!0,Ff=globalThis._VSCODE_NLS_LANGUAGE||kf,navigator.language.toLowerCase()):console.error(`Unable to resolve platform.`);var Bf=Af,Vf=jf,Hf=Mf,Uf=Nf;Pf&&typeof Lf.importScripts==`function`&&Lf.origin;var Wf=If,Gf=Ff,Kf;(e=>{function t(){return Gf}e.value=t;function n(){return Gf.length===2?Gf===`en`:Gf.length>=3&&Gf[0]===`e`&&Gf[1]===`n`&&Gf[2]===`-`}e.isDefaultVariant=n;function r(){return Gf===`en`}e.isDefault=r})(Kf||={});var qf=typeof Lf.postMessage==`function`&&!Lf.importScripts;(()=>{if(qf){let e=[];Lf.addEventListener(`message`,t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let n=0,r=e.length;n<r;n++){let r=e[n];if(r.id===t.data.vscodeScheduleAsyncWork){e.splice(n,1),r.callback();return}}});let t=0;return n=>{let r=++t;e.push({id:r,callback:n}),Lf.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var Jf=!!(Wf&&Wf.indexOf(`Chrome`)>=0);Wf&&Wf.indexOf(`Firefox`),!Jf&&Wf&&Wf.indexOf(`Safari`),Wf&&Wf.indexOf(`Edg/`),Wf&&Wf.indexOf(`Android`);var Yf=typeof navigator==`object`?navigator:{};Uf||document.queryCommandSupported&&document.queryCommandSupported(`copy`)||Yf&&Yf.clipboard&&Yf.clipboard.writeText,Uf||Yf&&Yf.clipboard&&Yf.clipboard.readText,Uf||Of()||Yf.keyboard,`ontouchstart`in Qd||Yf.maxTouchPoints,Qd.PointerEvent&&(`ontouchstart`in Qd||navigator.maxTouchPoints);var Xf=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},Zf=new Xf,Qf=new Xf,$f=new Xf,ep=Array(230),tp;(e=>{function t(e){return Zf.keyCodeToStr(e)}e.toString=t;function n(e){return Zf.strToKeyCode(e)}e.fromString=n;function r(e){return Qf.keyCodeToStr(e)}e.toUserSettingsUS=r;function i(e){return $f.keyCodeToStr(e)}e.toUserSettingsGeneral=i;function a(e){return Qf.strToKeyCode(e)||$f.strToKeyCode(e)}e.fromUserSettings=a;function o(e){if(e>=98&&e<=113)return null;switch(e){case 16:return`Up`;case 18:return`Down`;case 15:return`Left`;case 17:return`Right`}return Zf.keyCodeToStr(e)}e.toElectronAccelerator=o})(tp||={});var np=class e{constructor(e,t,n,r,i){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}equals(t){return t instanceof e&&this.ctrlKey===t.ctrlKey&&this.shiftKey===t.shiftKey&&this.altKey===t.altKey&&this.metaKey===t.metaKey&&this.keyCode===t.keyCode}getHashCode(){return`K${this.ctrlKey?`1`:`0`}${this.shiftKey?`1`:`0`}${this.altKey?`1`:`0`}${this.metaKey?`1`:`0`}${this.keyCode}`}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toKeybinding(){return new rp([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}},rp=class{constructor(e){if(e.length===0)throw Md(`chords`);this.chords=e}getHashCode(){let e=``;for(let t=0,n=this.chords.length;t<n;t++)t!==0&&(e+=`;`),e+=this.chords[t].getHashCode();return e}equals(e){if(e===null||this.chords.length!==e.chords.length)return!1;for(let t=0;t<this.chords.length;t++)if(!this.chords[t].equals(e.chords[t]))return!1;return!0}};function ip(e){if(e.charCode){let t=String.fromCharCode(e.charCode).toUpperCase();return tp.fromString(t)}let t=e.keyCode;if(t===3)return 7;if(Cf)switch(t){case 59:return 85;case 60:if(Hf)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Vf)return 57}else if(wf&&(Vf&&t===93||!Vf&&t===92))return 57;return ep[t]||0}var ap=Vf?256:2048,op=512,sp=1024,cp=Vf?2048:256,lp=class{constructor(e){this._standardKeyboardEventBrand=!0;let t=e;this.browserEvent=t,this.target=t.target,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,this.altGraphKey=t.getModifierState?.(`AltGraph`),this.keyCode=ip(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=ap),this.altKey&&(t|=op),this.shiftKey&&(t|=sp),this.metaKey&&(t|=cp),t|=e,t}_computeKeyCodeChord(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new np(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}},up=new WeakMap;function dp(e){if(!e.parent||e.parent===e)return null;try{let t=e.location,n=e.parent.location;if(t.origin!==`null`&&n.origin!==`null`&&t.origin!==n.origin)return null}catch{return null}return e.parent}var fp=class{static getSameOriginWindowChain(e){let t=up.get(e);if(!t){t=[],up.set(e,t);let n=e,r;do r=dp(n),r?t.push({window:new WeakRef(n),iframeElement:n.frameElement||null}):t.push({window:new WeakRef(n),iframeElement:null}),n=r;while(n)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let n=0,r=0,i=this.getSameOriginWindowChain(e);for(let e of i){let i=e.window.deref();if(n+=i?.scrollY??0,r+=i?.scrollX??0,i===t||!e.iframeElement)break;let a=e.iframeElement.getBoundingClientRect();n+=a.top,r+=a.left}return{top:n,left:r}}},pp=class{constructor(e,t){this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=t.button===0,this.middleButton=t.button===1,this.rightButton=t.button===2,this.buttons=t.buttons,this.target=t.target,this.detail=t.detail||1,t.type===`dblclick`&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,typeof t.pageX==`number`?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);let n=fp.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=n.left,this.posy-=n.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}},mp=class{constructor(e,t=0,n=0){this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=n,this.deltaX=t;let r=!1;if(Tf){let e=navigator.userAgent.match(/Chrome\/(\d+)/);r=(e?parseInt(e[1]):123)<=122}if(e){let t=e,n=e,i=e.view?.devicePixelRatio||1;if(typeof t.wheelDeltaY<`u`)this.deltaY=r?t.wheelDeltaY/(120*i):t.wheelDeltaY/120;else if(typeof n.VERTICAL_AXIS<`u`&&n.axis===n.VERTICAL_AXIS)this.deltaY=-n.detail/3;else if(e.type===`wheel`){let t=e;this.deltaY=t.deltaMode===t.DOM_DELTA_LINE?Cf&&!Vf?-e.deltaY/3:-e.deltaY:-e.deltaY/40}if(typeof t.wheelDeltaX<`u`)this.deltaX=Ef&&Bf?-(t.wheelDeltaX/120):r?t.wheelDeltaX/(120*i):t.wheelDeltaX/120;else if(typeof n.HORIZONTAL_AXIS<`u`&&n.axis===n.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type===`wheel`){let t=e;this.deltaX=t.deltaMode===t.DOM_DELTA_LINE?Cf&&!Vf?-e.deltaX/3:-e.deltaX:-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(this.deltaY=r?e.wheelDelta/(120*i):e.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}},hp=Object.freeze(function(e,t){let n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}}),gp;(e=>{function t(t){return t===e.None||t===e.Cancelled||t instanceof _p?!0:!t||typeof t!=`object`?!1:typeof t.isCancellationRequested==`boolean`&&typeof t.onCancellationRequested==`function`}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:af.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:hp})})(gp||={});var _p=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?hp:(this._emitter||=new X,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),null)}},vp=class{constructor(e,t){this._isDisposed=!1,this._token=-1,typeof e==`function`&&typeof t==`number`&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){if(this._isDisposed)throw new Pd(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new Pd(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}},yp=class{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(e,t,n=globalThis){if(this.isDisposed)throw new Pd(`Calling 'cancelAndSet' on a disposed IntervalTimer`);this.cancel();let r=n.setInterval(()=>{e()},t);this.disposable=qd(()=>{n.clearInterval(r),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}};(function(){typeof globalThis.requestIdleCallback!=`function`||globalThis.cancelIdleCallback})();var bp;(e=>{async function t(e){let t,n=await Promise.all(e.map(e=>e.then(e=>e,e=>{t||=e})));if(typeof t<`u`)throw t;return n}e.settled=t;function n(e){return new Promise(async(t,n)=>{try{await e(t,n)}catch(e){n(e)}})}e.withAsyncBody=n})(bp||={});var xp=class e{static fromArray(t){return new e(e=>{e.emitMany(t)})}static fromPromise(t){return new e(async e=>{e.emitMany(await t)})}static fromPromises(t){return new e(async e=>{await Promise.all(t.map(async t=>e.emitOne(await t)))})}static merge(t){return new e(async e=>{await Promise.all(t.map(async t=>{for await(let n of t)e.emitOne(n)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new X,queueMicrotask(async()=>{let t={emitOne:e=>this.emitOne(e),emitMany:e=>this.emitMany(e),reject:e=>this.reject(e)};try{await Promise.resolve(e(t)),this.resolve()}catch(e){this.reject(e)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(this._state===1)return{done:!0,value:void 0};await af.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,n){return new e(async e=>{for await(let r of t)e.emitOne(n(r))})}map(t){return e.map(this,t)}static filter(t,n){return new e(async e=>{for await(let r of t)n(r)&&e.emitOne(r)})}filter(t){return e.filter(this,t)}static coalesce(t){return e.filter(t,e=>!!e)}coalesce(){return e.coalesce(this)}static async toPromise(e){let t=[];for await(let n of e)t.push(n);return t}toPromise(){return e.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}};xp.EMPTY=xp.fromArray([]);function Sp(e){return Cp(e,0)}function Cp(e,t){switch(typeof e){case`object`:return e===null?wp(349,t):Array.isArray(e)?Dp(e,t):Op(e,t);case`string`:return Ep(e,t);case`boolean`:return Tp(e,t);case`number`:return wp(e,t);case`undefined`:return wp(937,t);default:return wp(617,t)}}function wp(e,t){return(t<<5)-t+e|0}function Tp(e,t){return wp(e?433:863,t)}function Ep(e,t){t=wp(149417,t);for(let n=0,r=e.length;n<r;n++)t=wp(e.charCodeAt(n),t);return t}function Dp(e,t){return t=wp(104579,t),e.reduce((e,t)=>Cp(t,e),t)}function Op(e,t){return t=wp(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=Ep(n,t),Cp(e[n],t)),t)}var{registerWindow:kp,getWindow:Ap,getDocument:jp,getWindows:Mp,getWindowsCount:Np,getWindowId:Pp,getWindowById:Fp,hasWindow:Ip,onDidRegisterWindow:Lp,onWillUnregisterWindow:Rp,onDidUnregisterWindow:zp}=function(){let e=new Map,t={window:Qd,disposables:new Yd};e.set(Qd.vscodeWindowId,t);let n=new X,r=new X,i=new X;function a(n,r){return(typeof n==`number`?e.get(n):void 0)??(r?t:void 0)}return{onDidRegisterWindow:n.event,onWillUnregisterWindow:i.event,onDidUnregisterWindow:r.event,registerWindow(t){if(e.has(t.vscodeWindowId))return Xd.None;let a=new Yd,o={window:t,disposables:a.add(new Yd)};return e.set(t.vscodeWindowId,o),a.add(qd(()=>{e.delete(t.vscodeWindowId),r.fire(t)})),a.add(Z(t,Yp.BEFORE_UNLOAD,()=>{i.fire(t)})),n.fire(o),a},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(e){return e.vscodeWindowId},hasWindow(t){return e.has(t)},getWindowById:a,getWindow(e){let t=e;if(t?.ownerDocument?.defaultView)return t.ownerDocument.defaultView.window;let n=e;return n?.view?n.view.window:Qd},getDocument(e){return Ap(e).document}}}(),Bp=class{constructor(e,t,n,r){this._node=e,this._type=t,this._handler=n,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&=(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,null)}};function Z(e,t,n,r){return new Bp(e,t,n,r)}function Vp(e,t){return function(n){return t(new pp(e,n))}}function Hp(e){return function(t){return e(new lp(t))}}var Up=function(e,t,n,r){let i=n;return t===`click`||t===`mousedown`||t===`contextmenu`?i=Vp(Ap(e),n):(t===`keydown`||t===`keypress`||t===`keyup`)&&(i=Hp(n)),Z(e,t,i,r)},Wp,Gp=class extends yp{constructor(e){super(),this.defaultTarget=e&&Ap(e)}cancelAndSet(e,t,n){return super.cancelAndSet(e,t,n??this.defaultTarget)}},Kp=class{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Od(e)}}static sort(e,t){return t.priority-e.priority}};(function(){let e=new Map,t=new Map,n=new Map,r=new Map,i=i=>{n.set(i,!1);let a=e.get(i)??[];for(t.set(i,a),e.set(i,[]),r.set(i,!0);a.length>0;)a.sort(Kp.sort),a.shift().execute();r.set(i,!1)};Wp=(t,r,a=0)=>{let o=Pp(t),s=new Kp(r,a),c=e.get(o);return c||(c=[],e.set(o,c)),c.push(s),n.get(o)||(n.set(o,!0),t.requestAnimationFrame(()=>i(o))),s}})();var qp=class e{constructor(e,t){this.width=e,this.height=t}with(t=this.width,n=this.height){return t!==this.width||n!==this.height?new e(t,n):this}static is(e){return typeof e==`object`&&typeof e.height==`number`&&typeof e.width==`number`}static lift(t){return t instanceof e?t:new e(t.width,t.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};qp.None=new qp(0,0);function Jp(e){let t=e.getBoundingClientRect(),n=Ap(e);return{left:t.left+n.scrollX,top:t.top+n.scrollY,width:t.width,height:t.height}}new class{constructor(){this.mutationObservers=new Map}observe(e,t,n){let r=this.mutationObservers.get(e);r||(r=new Map,this.mutationObservers.set(e,r));let i=Sp(n),a=r.get(i);if(a)a.users+=1;else{let o=new X,s=new MutationObserver(e=>o.fire(e));s.observe(e,n);let c=a={users:1,observer:s,onDidMutate:o.event};t.add(qd(()=>{--c.users,c.users===0&&(o.dispose(),s.disconnect(),r?.delete(i),r?.size===0&&this.mutationObservers.delete(e))})),r.set(i,a)}return a.onDidMutate}};var Yp={CLICK:`click`,AUXCLICK:`auxclick`,DBLCLICK:`dblclick`,MOUSE_UP:`mouseup`,MOUSE_DOWN:`mousedown`,MOUSE_OVER:`mouseover`,MOUSE_MOVE:`mousemove`,MOUSE_OUT:`mouseout`,MOUSE_ENTER:`mouseenter`,MOUSE_LEAVE:`mouseleave`,MOUSE_WHEEL:`wheel`,POINTER_UP:`pointerup`,POINTER_DOWN:`pointerdown`,POINTER_MOVE:`pointermove`,POINTER_LEAVE:`pointerleave`,CONTEXT_MENU:`contextmenu`,WHEEL:`wheel`,KEY_DOWN:`keydown`,KEY_PRESS:`keypress`,KEY_UP:`keyup`,LOAD:`load`,BEFORE_UNLOAD:`beforeunload`,UNLOAD:`unload`,PAGE_SHOW:`pageshow`,PAGE_HIDE:`pagehide`,PASTE:`paste`,ABORT:`abort`,ERROR:`error`,RESIZE:`resize`,SCROLL:`scroll`,FULLSCREEN_CHANGE:`fullscreenchange`,WK_FULLSCREEN_CHANGE:`webkitfullscreenchange`,SELECT:`select`,CHANGE:`change`,SUBMIT:`submit`,RESET:`reset`,FOCUS:`focus`,FOCUS_IN:`focusin`,FOCUS_OUT:`focusout`,BLUR:`blur`,INPUT:`input`,STORAGE:`storage`,DRAG_START:`dragstart`,DRAG:`drag`,DRAG_ENTER:`dragenter`,DRAG_LEAVE:`dragleave`,DRAG_OVER:`dragover`,DROP:`drop`,DRAG_END:`dragend`,ANIMATION_START:wf?`webkitAnimationStart`:`animationstart`,ANIMATION_END:wf?`webkitAnimationEnd`:`animationend`,ANIMATION_ITERATION:wf?`webkitAnimationIteration`:`animationiteration`},Xp=class{constructor(e){this.domNode=e,this._maxWidth=``,this._width=``,this._height=``,this._top=``,this._left=``,this._bottom=``,this._right=``,this._paddingTop=``,this._paddingLeft=``,this._paddingBottom=``,this._paddingRight=``,this._fontFamily=``,this._fontWeight=``,this._fontSize=``,this._fontStyle=``,this._fontFeatureSettings=``,this._fontVariationSettings=``,this._textDecoration=``,this._lineHeight=``,this._letterSpacing=``,this._className=``,this._display=``,this._position=``,this._visibility=``,this._color=``,this._backgroundColor=``,this._layerHint=!1,this._contain=`none`,this._boxShadow=``}setMaxWidth(e){let t=Zp(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){let t=Zp(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){let t=Zp(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){let t=Zp(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){let t=Zp(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){let t=Zp(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){let t=Zp(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingTop(e){let t=Zp(e);this._paddingTop!==t&&(this._paddingTop=t,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(e){let t=Zp(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(e){let t=Zp(e);this._paddingBottom!==t&&(this._paddingBottom=t,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(e){let t=Zp(e);this._paddingRight!==t&&(this._paddingRight=t,this.domNode.style.paddingRight=this._paddingRight)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){let t=Zp(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){let t=Zp(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){let t=Zp(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?`translate3d(0px, 0px, 0px)`:``)}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}};function Zp(e){return typeof e==`number`?`${e}px`:e}function Qp(e){return new Xp(e)}var $p=class{constructor(){this._hooks=new Yd,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;let n=this._onStopCallback;this._onStopCallback=null,e&&n&&n(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,n,r,i){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=r,this._onStopCallback=i;let a=e;try{e.setPointerCapture(t),this._hooks.add(qd(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{a=Ap(e)}this._hooks.add(Z(a,Yp.POINTER_MOVE,e=>{if(e.buttons!==n){this.stopMonitoring(!0);return}e.preventDefault(),this._pointerMoveCallback(e)})),this._hooks.add(Z(a,Yp.POINTER_UP,e=>this.stopMonitoring(!0)))}};function em(e,t,n){let r=null,i=null;if(typeof n.value==`function`?(r=`value`,i=n.value,i.length!==0&&console.warn(`Memoize should only be used in functions with zero parameters`)):typeof n.get==`function`&&(r=`get`,i=n.get),!i)throw Error(`not supported`);let a=`$memoize$${t}`;n[r]=function(...e){return this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!1,enumerable:!1,writable:!1,value:i.apply(this,e)}),this[a]}}var tm;(e=>(e.Tap=`-xterm-gesturetap`,e.Change=`-xterm-gesturechange`,e.Start=`-xterm-gesturestart`,e.End=`-xterm-gesturesend`,e.Contextmenu=`-xterm-gesturecontextmenu`))(tm||={});var nm=class e extends Xd{constructor(){super(),this.dispatched=!1,this.targets=new tf,this.ignoreTargets=new tf,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(af.runAndSubscribe(Lp,({window:e,disposables:t})=>{t.add(Z(e.document,`touchstart`,e=>this.onTouchStart(e),{passive:!1})),t.add(Z(e.document,`touchend`,t=>this.onTouchEnd(e,t))),t.add(Z(e.document,`touchmove`,e=>this.onTouchMove(e),{passive:!1}))},{window:Qd,disposables:this._store}))}static addTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Wd(new e),qd(e.INSTANCE.targets.push(t))):Xd.None}static ignoreTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Wd(new e),qd(e.INSTANCE.ignoreTargets.push(t))):Xd.None}static isTouchDevice(){return`ontouchstart`in Qd||navigator.maxTouchPoints>0}dispose(){this.handle&&=(this.handle.dispose(),null),super.dispose()}onTouchStart(e){let t=Date.now();this.handle&&=(this.handle.dispose(),null);for(let n=0,r=e.targetTouches.length;n<r;n++){let r=e.targetTouches.item(n);this.activeTouches[r.identifier]={id:r.identifier,initialTarget:r.target,initialTimeStamp:t,initialPageX:r.pageX,initialPageY:r.pageY,rollingTimestamps:[t],rollingPageX:[r.pageX],rollingPageY:[r.pageY]};let i=this.newGestureEvent(tm.Start,r.target);i.pageX=r.pageX,i.pageY=r.pageY,this.dispatchEvent(i)}this.dispatched&&=(e.preventDefault(),e.stopPropagation(),!1)}onTouchEnd(t,n){let r=Date.now(),i=Object.keys(this.activeTouches).length;for(let a=0,o=n.changedTouches.length;a<o;a++){let o=n.changedTouches.item(a);if(!this.activeTouches.hasOwnProperty(String(o.identifier))){console.warn(`move of an UNKNOWN touch`,o);continue}let s=this.activeTouches[o.identifier],c=Date.now()-s.initialTimeStamp;if(c<e.HOLD_DELAY&&Math.abs(s.initialPageX-Fd(s.rollingPageX))<30&&Math.abs(s.initialPageY-Fd(s.rollingPageY))<30){let e=this.newGestureEvent(tm.Tap,s.initialTarget);e.pageX=Fd(s.rollingPageX),e.pageY=Fd(s.rollingPageY),this.dispatchEvent(e)}else if(c>=e.HOLD_DELAY&&Math.abs(s.initialPageX-Fd(s.rollingPageX))<30&&Math.abs(s.initialPageY-Fd(s.rollingPageY))<30){let e=this.newGestureEvent(tm.Contextmenu,s.initialTarget);e.pageX=Fd(s.rollingPageX),e.pageY=Fd(s.rollingPageY),this.dispatchEvent(e)}else if(i===1){let e=Fd(s.rollingPageX),n=Fd(s.rollingPageY),i=Fd(s.rollingTimestamps)-s.rollingTimestamps[0],a=e-s.rollingPageX[0],o=n-s.rollingPageY[0],c=[...this.targets].filter(e=>s.initialTarget instanceof Node&&e.contains(s.initialTarget));this.inertia(t,c,r,Math.abs(a)/i,a>0?1:-1,e,Math.abs(o)/i,o>0?1:-1,n)}this.dispatchEvent(this.newGestureEvent(tm.End,s.initialTarget)),delete this.activeTouches[o.identifier]}this.dispatched&&=(n.preventDefault(),n.stopPropagation(),!1)}newGestureEvent(e,t){let n=document.createEvent(`CustomEvent`);return n.initEvent(e,!1,!0),n.initialTarget=t,n.tapCount=0,n}dispatchEvent(t){if(t.type===tm.Tap){let n=new Date().getTime(),r=0;r=n-this._lastSetTapCountTime>e.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=n,t.tapCount=r}else(t.type===tm.Change||t.type===tm.Contextmenu)&&(this._lastSetTapCountTime=0);if(t.initialTarget instanceof Node){for(let e of this.ignoreTargets)if(e.contains(t.initialTarget))return;let e=[];for(let n of this.targets)if(n.contains(t.initialTarget)){let r=0,i=t.initialTarget;for(;i&&i!==n;)r++,i=i.parentElement;e.push([r,n])}e.sort((e,t)=>e[0]-t[0]);for(let[n,r]of e)r.dispatchEvent(t),this.dispatched=!0}}inertia(t,n,r,i,a,o,s,c,l){this.handle=Wp(t,()=>{let u=Date.now(),d=u-r,f=0,p=0,m=!0;i+=e.SCROLL_FRICTION*d,s+=e.SCROLL_FRICTION*d,i>0&&(m=!1,f=a*i*d),s>0&&(m=!1,p=c*s*d);let h=this.newGestureEvent(tm.Change);h.translationX=f,h.translationY=p,n.forEach(e=>e.dispatchEvent(h)),m||this.inertia(t,n,u,i,a,o+f,s,c,l+p)})}onTouchMove(e){let t=Date.now();for(let n=0,r=e.changedTouches.length;n<r;n++){let r=e.changedTouches.item(n);if(!this.activeTouches.hasOwnProperty(String(r.identifier))){console.warn(`end of an UNKNOWN touch`,r);continue}let i=this.activeTouches[r.identifier],a=this.newGestureEvent(tm.Change,i.initialTarget);a.translationX=r.pageX-Fd(i.rollingPageX),a.translationY=r.pageY-Fd(i.rollingPageY),a.pageX=r.pageX,a.pageY=r.pageY,this.dispatchEvent(a),i.rollingPageX.length>3&&(i.rollingPageX.shift(),i.rollingPageY.shift(),i.rollingTimestamps.shift()),i.rollingPageX.push(r.pageX),i.rollingPageY.push(r.pageY),i.rollingTimestamps.push(t)}this.dispatched&&=(e.preventDefault(),e.stopPropagation(),!1)}};nm.SCROLL_FRICTION=-.005,nm.HOLD_DELAY=700,nm.CLEAR_TAP_COUNT_TIME=400,Fu([em],nm,`isTouchDevice`,1);var rm=nm,im=class extends Xd{onclick(e,t){this._register(Z(e,Yp.CLICK,n=>t(new pp(Ap(e),n))))}onmousedown(e,t){this._register(Z(e,Yp.MOUSE_DOWN,n=>t(new pp(Ap(e),n))))}onmouseover(e,t){this._register(Z(e,Yp.MOUSE_OVER,n=>t(new pp(Ap(e),n))))}onmouseleave(e,t){this._register(Z(e,Yp.MOUSE_LEAVE,n=>t(new pp(Ap(e),n))))}onkeydown(e,t){this._register(Z(e,Yp.KEY_DOWN,e=>t(new lp(e))))}onkeyup(e,t){this._register(Z(e,Yp.KEY_UP,e=>t(new lp(e))))}oninput(e,t){this._register(Z(e,Yp.INPUT,t))}onblur(e,t){this._register(Z(e,Yp.BLUR,t))}onfocus(e,t){this._register(Z(e,Yp.FOCUS,t))}onchange(e,t){this._register(Z(e,Yp.CHANGE,t))}ignoreGesture(e){return rm.ignoreTarget(e)}},am=11,om=class extends im{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement(`div`),this.bgDomNode.className=`arrow-background`,this.bgDomNode.style.position=`absolute`,this.bgDomNode.style.width=e.bgWidth+`px`,this.bgDomNode.style.height=e.bgHeight+`px`,typeof e.top<`u`&&(this.bgDomNode.style.top=`0px`),typeof e.left<`u`&&(this.bgDomNode.style.left=`0px`),typeof e.bottom<`u`&&(this.bgDomNode.style.bottom=`0px`),typeof e.right<`u`&&(this.bgDomNode.style.right=`0px`),this.domNode=document.createElement(`div`),this.domNode.className=e.className,this.domNode.style.position=`absolute`,this.domNode.style.width=am+`px`,this.domNode.style.height=am+`px`,typeof e.top<`u`&&(this.domNode.style.top=e.top+`px`),typeof e.left<`u`&&(this.domNode.style.left=e.left+`px`),typeof e.bottom<`u`&&(this.domNode.style.bottom=e.bottom+`px`),typeof e.right<`u`&&(this.domNode.style.right=e.right+`px`),this._pointerMoveMonitor=this._register(new $p),this._register(Up(this.bgDomNode,Yp.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._register(Up(this.domNode,Yp.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._pointerdownRepeatTimer=this._register(new Gp),this._pointerdownScheduleRepeatTimer=this._register(new vp)}_arrowPointerDown(e){!e.target||!(e.target instanceof Element)||(this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,Ap(e))},200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault())}},sm=class e{constructor(e,t,n,r,i,a,o){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t|=0,n|=0,r|=0,i|=0,a|=0,o|=0),this.rawScrollLeft=r,this.rawScrollTop=o,t<0&&(t=0),r+t>n&&(r=n-t),r<0&&(r=0),i<0&&(i=0),o+i>a&&(o=a-i),o<0&&(o=0),this.width=t,this.scrollWidth=n,this.scrollLeft=r,this.height=i,this.scrollHeight=a,this.scrollTop=o}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(t,n){return new e(this._forceIntegerValues,typeof t.width<`u`?t.width:this.width,typeof t.scrollWidth<`u`?t.scrollWidth:this.scrollWidth,n?this.rawScrollLeft:this.scrollLeft,typeof t.height<`u`?t.height:this.height,typeof t.scrollHeight<`u`?t.scrollHeight:this.scrollHeight,n?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new e(this._forceIntegerValues,this.width,this.scrollWidth,typeof t.scrollLeft<`u`?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof t.scrollTop<`u`?t.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){let n=this.width!==e.width,r=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,a=this.height!==e.height,o=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:n,scrollWidthChanged:r,scrollLeftChanged:i,heightChanged:a,scrollHeightChanged:o,scrollTopChanged:s}}},cm=class extends Xd{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new sm(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&=(this._smoothScrolling.dispose(),null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){let n=this._state.withScrollDimensions(e,t);this._setState(n,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){let t=this._state.withScrollPosition(e);this._smoothScrolling&&=(this._smoothScrolling.dispose(),null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>`u`?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>`u`?this._smoothScrolling.to.scrollTop:e.scrollTop};let n=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===n.scrollLeft&&this._smoothScrolling.to.scrollTop===n.scrollTop)return;let r;r=t?new fm(this._smoothScrolling.from,n,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,n,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=r}else{let t=this._state.withScrollPosition(e);this._smoothScrolling=fm.start(this._state,t,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;let e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){let n=this._state;n.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(n,t)))}},lm=class{constructor(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n}};function um(e,t){let n=t-e;return function(t){return e+n*mm(t)}}function dm(e,t,n){return function(r){return r<n?e(r/n):t((r-n)/(1-n))}}var fm=class e{constructor(e,t,n,r){this.from=e,this.to=t,this.duration=r,this.startTime=n,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(e,t,n){if(Math.abs(e-t)>2.5*n){let r,i;return e<t?(r=e+.75*n,i=t-.75*n):(r=e-.75*n,i=t+.75*n),dm(um(e,r),um(i,t),.33)}return um(e,t)}dispose(){this.animationFrameDisposable!==null&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(e){let t=(e-this.startTime)/this.duration;return t<1?new lm(this.scrollLeft(t),this.scrollTop(t),!1):new lm(this.to.scrollLeft,this.to.scrollTop,!0)}combine(t,n,r){return e.start(t,n,r)}static start(t,n,r){r+=10;let i=Date.now()-10;return new e(t,n,i,r)}};function pm(e){return e**3}function mm(e){return 1-pm(1-e)}var hm=class extends Xd{constructor(e,t,n){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=n,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new vp)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3||this._rawShouldBeVisible}_updateShouldBeVisible(){let e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(e){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(e?` fade`:``)))}},gm=140,_m=class extends im{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new hm(e.visibility,`visible scrollbar `+e.extraScrollbarClassName,`invisible scrollbar `+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new $p),this._shouldRender=!0,this.domNode=Qp(document.createElement(`div`)),this.domNode.setAttribute(`role`,`presentation`),this.domNode.setAttribute(`aria-hidden`,`true`),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition(`absolute`),this._register(Z(this.domNode.domNode,Yp.POINTER_DOWN,e=>this._domNodePointerDown(e)))}_createArrow(e){let t=this._register(new om(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,n,r){this.slider=Qp(document.createElement(`div`)),this.slider.setClassName(`slider`),this.slider.setPosition(`absolute`),this.slider.setTop(e),this.slider.setLeft(t),typeof n==`number`&&this.slider.setWidth(n),typeof r==`number`&&this.slider.setHeight(r),this.slider.setLayerHinting(!0),this.slider.setContain(`strict`),this.domNode.domNode.appendChild(this.slider.domNode),this._register(Z(this.slider.domNode,Yp.POINTER_DOWN,e=>{e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))})),this.onclick(this.slider.domNode,e=>{e.leftButton&&e.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){let t=this.domNode.domNode.getClientRects()[0].top,n=t+this._scrollbarState.getSliderPosition(),r=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),i=this._sliderPointerPosition(e);n<=i&&i<=r?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,n;if(e.target===this.domNode.domNode&&typeof e.offsetX==`number`&&typeof e.offsetY==`number`)t=e.offsetX,n=e.offsetY;else{let r=Jp(this.domNode.domNode);t=e.pageX-r.left,n=e.pageY-r.top}let r=this._pointerDownRelativePosition(t,n);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;let t=this._sliderPointerPosition(e),n=this._sliderOrthogonalPointerPosition(e),r=this._scrollbarState.clone();this.slider.toggleClassName(`active`,!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>{let i=this._sliderOrthogonalPointerPosition(e),a=Math.abs(i-n);if(Bf&&a>gm){this._setDesiredScrollPositionNow(r.getScrollPosition());return}let o=this._sliderPointerPosition(e)-t;this._setDesiredScrollPositionNow(r.getDesiredScrollPositionFromDelta(o))},()=>{this.slider.toggleClassName(`active`,!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){let t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}},vm=class e{constructor(e,t,n,r,i,a){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(n),this._arrowSize=Math.round(e),this._visibleSize=r,this._scrollSize=i,this._scrollPosition=a,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){let t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)}setScrollSize(e){let t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)}setScrollPosition(e){let t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,n,r,i){let a=Math.max(0,n-e),o=Math.max(0,a-2*t),s=r>0&&r>n;if(!s)return{computedAvailableSize:Math.round(a),computedIsNeeded:s,computedSliderSize:Math.round(o),computedSliderRatio:0,computedSliderPosition:0};let c=Math.round(Math.max(20,Math.floor(n*o/r))),l=(o-c)/(r-n),u=i*l;return{computedAvailableSize:Math.round(a),computedIsNeeded:s,computedSliderSize:Math.round(c),computedSliderRatio:l,computedSliderPosition:Math.round(u)}}_refreshComputedValues(){let t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;let t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;let t=e-this._arrowSize,n=this._scrollPosition;return t<this._computedSliderPosition?n-=this._visibleSize:n+=this._visibleSize,n}getDesiredScrollPositionFromDelta(e){if(!this._computedIsNeeded)return 0;let t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}},ym=class extends _m{constructor(e,t,n){let r=e.getScrollDimensions(),i=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:n,scrollbarState:new vm(t.horizontalHasArrows?t.arrowSize:0,t.horizontal===2?0:t.horizontalScrollbarSize,t.vertical===2?0:t.verticalScrollbarSize,r.width,r.scrollWidth,i.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:`horizontal`,scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows)throw Error(`horizontalHasArrows is not supported in xterm.js`);this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}},bm=class extends _m{constructor(e,t,n){let r=e.getScrollDimensions(),i=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:n,scrollbarState:new vm(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,r.height,r.scrollHeight,i.scrollTop),visibility:t.vertical,extraScrollbarClassName:`vertical`,scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows)throw Error(`horizontalHasArrows is not supported in xterm.js`);this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}},xm=500,Sm=50,Cm=!0,wm=class{constructor(e,t,n){this.timestamp=e,this.deltaX=t,this.deltaY=n,this.score=0}},Tm=class{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let e=1,t=0,n=1,r=this._rear;do{let i=r===this._front?e:2**-n;if(e-=i,t+=this._memory[r].score*i,r===this._front)break;r=(this._capacity+r-1)%this._capacity,n++}while(!0);return t<=.5}acceptStandardWheelEvent(e){if(Tf){let t=xf(Ap(e.browserEvent));this.accept(Date.now(),e.deltaX*t,e.deltaY*t)}else this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,n){let r=null,i=new wm(e,t,n);this._front===-1&&this._rear===-1?(this._memory[0]=i,this._front=0,this._rear=0):(r=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i),i.score=this._computeScore(i,r)}_computeScore(e,t){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let n=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(n+=.25),t){let r=Math.abs(e.deltaX),i=Math.abs(e.deltaY),a=Math.abs(t.deltaX),o=Math.abs(t.deltaY),s=Math.max(Math.min(r,a),1),c=Math.max(Math.min(i,o),1),l=Math.max(r,a),u=Math.max(i,o);l%s===0&&u%c===0&&(n-=.5)}return Math.min(Math.max(n,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}};Tm.INSTANCE=new Tm;var Em=Tm,Dm=class extends im{constructor(e,t,n){super(),this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new X),this.onWillScroll=this._onWillScroll.event,this._options=km(t),this._scrollable=n,this._register(this._scrollable.onScroll(e=>{this._onWillScroll.fire(e),this._onDidScroll(e),this._onScroll.fire(e)}));let r={onMouseWheel:e=>this._onMouseWheel(e),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new bm(this._scrollable,this._options,r)),this._horizontalScrollbar=this._register(new ym(this._scrollable,this._options,r)),this._domNode=document.createElement(`div`),this._domNode.className=`xterm-scrollable-element `+this._options.className,this._domNode.setAttribute(`role`,`presentation`),this._domNode.style.position=`relative`,this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=Qp(document.createElement(`div`)),this._leftShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=Qp(document.createElement(`div`)),this._topShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=Qp(document.createElement(`div`)),this._topLeftShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,e=>this._onMouseOver(e)),this.onmouseleave(this._listenOnDomNode,e=>this._onMouseLeave(e)),this._hideTimeout=this._register(new vp),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=Gd(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,Vf&&(this._options.className+=` mac`),this._domNode.className=`xterm-scrollable-element `+this._options.className}updateOptions(e){typeof e.handleMouseWheel<`u`&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<`u`&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<`u`&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<`u`&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<`u`&&(this._options.horizontal=e.horizontal),typeof e.vertical<`u`&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<`u`&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<`u`&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<`u`&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}setRevealOnScroll(e){this._revealOnScroll=e}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new mp(e))}_setListeningToMouseWheel(e){this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Gd(this._mouseWheelToDispose),e)&&this._mouseWheelToDispose.push(Z(this._listenOnDomNode,Yp.MOUSE_WHEEL,e=>{this._onMouseWheel(new mp(e))},{passive:!1}))}_onMouseWheel(e){if(e.browserEvent?.defaultPrevented)return;let t=Em.INSTANCE;Cm&&t.acceptStandardWheelEvent(e);let n=!1;if(e.deltaY||e.deltaX){let r=e.deltaY*this._options.mouseWheelScrollSensitivity,i=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&i+r===0?i=r=0:Math.abs(r)>=Math.abs(i)?i=0:r=0),this._options.flipAxes&&([r,i]=[i,r]);let a=!Vf&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||a)&&!i&&(i=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(i*=this._options.fastScrollSensitivity,r*=this._options.fastScrollSensitivity);let o=this._scrollable.getFutureScrollPosition(),s={};if(r){let e=Sm*r,t=o.scrollTop-(e<0?Math.floor(e):Math.ceil(e));this._verticalScrollbar.writeScrollPosition(s,t)}if(i){let e=Sm*i,t=o.scrollLeft-(e<0?Math.floor(e):Math.ceil(e));this._horizontalScrollbar.writeScrollPosition(s,t)}s=this._scrollable.validateScrollPosition(s),(o.scrollLeft!==s.scrollLeft||o.scrollTop!==s.scrollTop)&&(Cm&&this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(s):this._scrollable.setScrollPositionNow(s),n=!0)}let r=n;!r&&this._options.alwaysConsumeMouseWheel&&(r=!0),!r&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(r=!0),r&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){let e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0,r=n?` left`:``,i=t?` top`:``,a=n||t?` top-left-corner`:``;this._leftShadowDomNode.setClassName(`shadow${r}`),this._topShadowDomNode.setClassName(`shadow${i}`),this._topLeftShadowDomNode.setClassName(`shadow${a}${i}${r}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),xm)}},Om=class extends Dm{constructor(e,t,n){super(e,t,n)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}};function km(e){let t={lazyRender:typeof e.lazyRender<`u`&&e.lazyRender,className:typeof e.className<`u`?e.className:``,useShadows:typeof e.useShadows<`u`?e.useShadows:!0,handleMouseWheel:typeof e.handleMouseWheel<`u`?e.handleMouseWheel:!0,flipAxes:typeof e.flipAxes<`u`&&e.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:typeof e.consumeMouseWheelIfScrollbarIsNeeded<`u`&&e.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:typeof e.alwaysConsumeMouseWheel<`u`&&e.alwaysConsumeMouseWheel,scrollYToX:typeof e.scrollYToX<`u`&&e.scrollYToX,mouseWheelScrollSensitivity:typeof e.mouseWheelScrollSensitivity<`u`?e.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof e.fastScrollSensitivity<`u`?e.fastScrollSensitivity:5,scrollPredominantAxis:typeof e.scrollPredominantAxis<`u`?e.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof e.mouseWheelSmoothScroll<`u`?e.mouseWheelSmoothScroll:!0,arrowSize:typeof e.arrowSize<`u`?e.arrowSize:11,listenOnDomNode:typeof e.listenOnDomNode<`u`?e.listenOnDomNode:null,horizontal:typeof e.horizontal<`u`?e.horizontal:1,horizontalScrollbarSize:typeof e.horizontalScrollbarSize<`u`?e.horizontalScrollbarSize:10,horizontalSliderSize:typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:0,horizontalHasArrows:typeof e.horizontalHasArrows<`u`&&e.horizontalHasArrows,vertical:typeof e.vertical<`u`?e.vertical:1,verticalScrollbarSize:typeof e.verticalScrollbarSize<`u`?e.verticalScrollbarSize:10,verticalHasArrows:typeof e.verticalHasArrows<`u`&&e.verticalHasArrows,verticalSliderSize:typeof e.verticalSliderSize<`u`?e.verticalSliderSize:0,scrollByPage:typeof e.scrollByPage<`u`&&e.scrollByPage};return t.horizontalSliderSize=typeof e.horizontalSliderSize<`u`?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=typeof e.verticalSliderSize<`u`?e.verticalSliderSize:t.verticalScrollbarSize,Vf&&(t.className+=` mac`),t}var Am=class extends Xd{constructor(e,t,n,r,i,a,o,s){super(),this._bufferService=n,this._optionsService=o,this._renderService=s,this._onRequestScrollLines=this._register(new X),this.onRequestScrollLines=this._onRequestScrollLines.event,this._isSyncing=!1,this._isHandlingScroll=!1,this._suppressOnScrollHandler=!1;let c=this._register(new cm({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:e=>Wp(r.window,e)}));this._register(this._optionsService.onSpecificOptionChange(`smoothScrollDuration`,()=>{c.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)})),this._scrollableElement=this._register(new Om(t,{vertical:1,horizontal:2,useShadows:!1,mouseWheelSmoothScroll:!0,...this._getChangeOptions()},c)),this._register(this._optionsService.onMultipleOptionChange([`scrollSensitivity`,`fastScrollSensitivity`,`overviewRuler`],()=>this._scrollableElement.updateOptions(this._getChangeOptions()))),this._register(i.onProtocolChange(e=>{this._scrollableElement.updateOptions({handleMouseWheel:!(e&16)})})),this._scrollableElement.setScrollDimensions({height:0,scrollHeight:0}),this._register(af.runAndSubscribe(a.onChangeColors,()=>{this._scrollableElement.getDomNode().style.backgroundColor=a.colors.background.css})),e.appendChild(this._scrollableElement.getDomNode()),this._register(qd(()=>this._scrollableElement.getDomNode().remove())),this._styleElement=r.mainDocument.createElement(`style`),t.appendChild(this._styleElement),this._register(qd(()=>this._styleElement.remove())),this._register(af.runAndSubscribe(a.onChangeColors,()=>{this._styleElement.textContent=[`.xterm .xterm-scrollable-element > .scrollbar > .slider {`,` background: ${a.colors.scrollbarSliderBackground.css};`,`}`,`.xterm .xterm-scrollable-element > .scrollbar > .slider:hover {`,` background: ${a.colors.scrollbarSliderHoverBackground.css};`,`}`,`.xterm .xterm-scrollable-element > .scrollbar > .slider.active {`,` background: ${a.colors.scrollbarSliderActiveBackground.css};`,`}`].join(`
|
|
32
|
+
`)})),this._register(this._bufferService.onResize(()=>this.queueSync())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._latestYDisp=void 0,this.queueSync()})),this._register(this._bufferService.onScroll(()=>this._sync())),this._register(this._scrollableElement.onScroll(e=>this._handleScroll(e)))}scrollLines(e){let t=this._scrollableElement.getScrollPosition();this._scrollableElement.setScrollPosition({reuseAnimation:!0,scrollTop:t.scrollTop+e*this._renderService.dimensions.css.cell.height})}scrollToLine(e,t){t&&(this._latestYDisp=e),this._scrollableElement.setScrollPosition({reuseAnimation:!t,scrollTop:e*this._renderService.dimensions.css.cell.height})}_getChangeOptions(){return{mouseWheelScrollSensitivity:this._optionsService.rawOptions.scrollSensitivity,fastScrollSensitivity:this._optionsService.rawOptions.fastScrollSensitivity,verticalScrollbarSize:this._optionsService.rawOptions.overviewRuler?.width||14}}queueSync(e){e!==void 0&&(this._latestYDisp=e),this._queuedAnimationFrame===void 0&&(this._queuedAnimationFrame=this._renderService.addRefreshCallback(()=>{this._queuedAnimationFrame=void 0,this._sync(this._latestYDisp)}))}_sync(e=this._bufferService.buffer.ydisp){!this._renderService||this._isSyncing||(this._isSyncing=!0,this._suppressOnScrollHandler=!0,this._scrollableElement.setScrollDimensions({height:this._renderService.dimensions.css.canvas.height,scrollHeight:this._renderService.dimensions.css.cell.height*this._bufferService.buffer.lines.length}),this._suppressOnScrollHandler=!1,e!==this._latestYDisp&&this._scrollableElement.setScrollPosition({scrollTop:e*this._renderService.dimensions.css.cell.height}),this._isSyncing=!1)}_handleScroll(e){if(!this._renderService||this._isHandlingScroll||this._suppressOnScrollHandler)return;this._isHandlingScroll=!0;let t=Math.round(e.scrollTop/this._renderService.dimensions.css.cell.height),n=t-this._bufferService.buffer.ydisp;n!==0&&(this._latestYDisp=t,this._onRequestScrollLines.fire(n)),this._isHandlingScroll=!1}};Am=Fu([J(2,cd),J(3,xd),J(4,ld),J(5,Td),J(6,md),J(7,Y)],Am);var jm=class extends Xd{constructor(e,t,n,r,i){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=n,this._decorationService=r,this._renderService=i,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(`div`),this._container.classList.add(`xterm-decoration-container`),this._screenElement.appendChild(this._container),this._register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this._register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this._register(this._decorationService.onDecorationRemoved(e=>this._removeDecoration(e))),this._register(qd(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){let t=this._coreBrowserService.mainDocument.createElement(`div`);t.classList.add(`xterm-decoration`),t.classList.toggle(`xterm-decoration-top-layer`,e?.options?.layer===`top`),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,t.style.top=`${(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height}px`,t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let n=e.options.x??0;return n&&n>this._bufferService.cols&&(t.style.display=`none`),this._refreshXPosition(e,t),t}_refreshStyle(e){let t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=`none`,e.onRenderEmitter.fire(e.element));else{let n=this._decorationElements.get(e);n||(n=this._createElement(e),e.element=n,this._decorationElements.set(e,n),this._container.appendChild(n),e.onDispose(()=>{this._decorationElements.delete(e),n.remove()})),n.style.display=this._altBufferIsActive?`none`:`block`,this._altBufferIsActive||(n.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,n.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,n.style.top=`${t*this._renderService.dimensions.css.cell.height}px`,n.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`),e.onRenderEmitter.fire(n)}}_refreshXPosition(e,t=e.element){if(!t)return;let n=e.options.x??0;(e.options.anchor||`left`)===`right`?t.style.right=n?`${n*this._renderService.dimensions.css.cell.width}px`:``:t.style.left=n?`${n*this._renderService.dimensions.css.cell.width}px`:``}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};jm=Fu([J(1,cd),J(2,xd),J(3,_d),J(4,Y)],jm);var Mm=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(let t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position)){this._addLineToZone(t,e.marker.line);return}}if(this._zonePoolIndex<this._zonePool.length){this._zonePool[this._zonePoolIndex].color=e.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=e.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=e.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=e.marker.line,this._zones.push(this._zonePool[this._zonePoolIndex++]);return}this._zones.push({color:e.options.overviewRulerOptions.color,position:e.options.overviewRulerOptions.position,startBufferLine:e.marker.line,endBufferLine:e.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(e){this._linePadding=e}_lineIntersectsZone(e,t){return t>=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,n){return t>=e.startBufferLine-this._linePadding[n||`full`]&&t<=e.endBufferLine+this._linePadding[n||`full`]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}},Nm={full:0,left:0,center:0,right:0},Pm={full:0,left:0,center:0,right:0},Fm={full:0,left:0,center:0,right:0},Im=class extends Xd{constructor(e,t,n,r,i,a,o,s){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=n,this._decorationService=r,this._renderService=i,this._optionsService=a,this._themeService=o,this._coreBrowserService=s,this._colorZoneStore=new Mm,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement(`canvas`),this._canvas.classList.add(`xterm-decoration-overview-ruler`),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement),this._register(qd(()=>this._canvas?.remove()));let c=this._canvas.getContext(`2d`);if(c)this._ctx=c;else throw Error(`Ctx cannot be null`);this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this._register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0))),this._register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?`none`:`block`})),this._register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})),this._register(this._renderService.onRender(()=>{(!this._containerHeight||this._containerHeight!==this._screenElement.clientHeight)&&(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh(!0))),this._register(this._optionsService.onSpecificOptionChange(`overviewRuler`,()=>this._queueRefresh(!0))),this._register(this._themeService.onChangeColors(()=>this._queueRefresh())),this._queueRefresh(!0)}get _width(){return this._optionsService.options.overviewRuler?.width||0}_refreshDrawConstants(){let e=Math.floor((this._canvas.width-1)/3),t=Math.ceil((this._canvas.width-1)/3);Pm.full=this._canvas.width,Pm.left=e,Pm.center=t,Pm.right=e,this._refreshDrawHeightConstants(),Fm.full=1,Fm.left=1,Fm.center=1+Pm.left,Fm.right=1+Pm.left+Pm.center}_refreshDrawHeightConstants(){Nm.full=Math.round(2*this._coreBrowserService.dpr);let e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);Nm.left=t,Nm.center=t,Nm.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Nm.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Nm.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Nm.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Nm.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1,this._renderRulerOutline();let e=this._colorZoneStore.zones;for(let t of e)t.position!==`full`&&this._renderColorZone(t);for(let t of e)t.position===`full`&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderRulerOutline(){this._ctx.fillStyle=this._themeService.colors.overviewRulerBorder.css,this._ctx.fillRect(0,0,1,this._canvas.height),this._optionsService.rawOptions.overviewRuler.showTopBorder&&this._ctx.fillRect(1,0,this._canvas.width-1,1),this._optionsService.rawOptions.overviewRuler.showBottomBorder&&this._ctx.fillRect(1,this._canvas.height-1,this._canvas.width-1,this._canvas.height)}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(Fm[e.position||`full`],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-Nm[e.position||`full`]/2),Pm[e.position||`full`],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+Nm[e.position||`full`]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};Im=Fu([J(2,cd),J(3,_d),J(4,Y),J(5,md),J(6,Td),J(7,xd)],Im);var Q;(e=>(e.NUL=`\0`,e.SOH=``,e.STX=``,e.ETX=``,e.EOT=``,e.ENQ=``,e.ACK=``,e.BEL=`\x07`,e.BS=`\b`,e.HT=` `,e.LF=`
|
|
33
|
+
`,e.VT=`\v`,e.FF=`\f`,e.CR=`\r`,e.SO=``,e.SI=``,e.DLE=``,e.DC1=``,e.DC2=``,e.DC3=``,e.DC4=``,e.NAK=``,e.SYN=``,e.ETB=``,e.CAN=``,e.EM=``,e.SUB=``,e.ESC=`\x1B`,e.FS=``,e.GS=``,e.RS=``,e.US=``,e.SP=` `,e.DEL=``))(Q||={});var Lm;(e=>(e.PAD=``,e.HOP=``,e.BPH=``,e.NBH=``,e.IND=``,e.NEL=`
`,e.SSA=``,e.ESA=``,e.HTS=``,e.HTJ=``,e.VTS=``,e.PLD=``,e.PLU=``,e.RI=``,e.SS2=``,e.SS3=``,e.DCS=``,e.PU1=``,e.PU2=``,e.STS=``,e.CCH=``,e.MW=``,e.SPA=``,e.EPA=``,e.SOS=``,e.SGCI=``,e.SCI=``,e.CSI=``,e.ST=``,e.OSC=``,e.PM=``,e.APC=``))(Lm||={});var Rm;(e=>e.ST=`${Q.ESC}\\`)(Rm||={});var zm=class{constructor(e,t,n,r,i,a){this._textarea=e,this._compositionView=t,this._bufferService=n,this._optionsService=r,this._coreService=i,this._renderService=a,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=``}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=``,this._dataAlreadySent=``,this._compositionView.classList.add(`active`)}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(e.keyCode===20||e.keyCode===229||e.keyCode===16||e.keyCode===17||e.keyCode===18)return!1;this._finalizeComposition(!1)}return e.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove(`active`),this._isComposing=!1,e){let e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){this._isSendingComposition=!1;let t;e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,this._compositionPosition.start):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}},0)}else{this._isSendingComposition=!1;let e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){let e=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let t=this._textarea.value,n=t.replace(e,``);this._dataAlreadySent=n,t.length>e.length?this._coreService.triggerDataEvent(n,!0):t.length<e.length?this._coreService.triggerDataEvent(`${Q.DEL}`,!0):t.length===e.length&&t!==e&&this._coreService.triggerDataEvent(t,!0)}},0)}updateCompositionElements(e){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){let e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),t=this._renderService.dimensions.css.cell.height,n=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,r=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=r+`px`,this._compositionView.style.top=n+`px`,this._compositionView.style.height=t+`px`,this._compositionView.style.lineHeight=t+`px`,this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+`px`;let i=this._compositionView.getBoundingClientRect();this._textarea.style.left=r+`px`,this._textarea.style.top=n+`px`,this._textarea.style.width=Math.max(i.width,1)+`px`,this._textarea.style.height=Math.max(i.height,1)+`px`,this._textarea.style.lineHeight=i.height+`px`}e||setTimeout(()=>this.updateCompositionElements(!0),0)}}};zm=Fu([J(2,cd),J(3,md),J(4,ud),J(5,Y)],zm);var Bm=0,Vm=0,Hm=0,Um=0,Wm={css:`#00000000`,rgba:0},Gm;(e=>{function t(e,t,n,r){return r===void 0?`#${Xm(e)}${Xm(t)}${Xm(n)}`:`#${Xm(e)}${Xm(t)}${Xm(n)}${Xm(r)}`}e.toCss=t;function n(e,t,n,r=255){return(e<<24|t<<16|n<<8|r)>>>0}e.toRgba=n;function r(t,n,r,i){return{css:e.toCss(t,n,r,i),rgba:e.toRgba(t,n,r,i)}}e.toColor=r})(Gm||={});var Km;(e=>{function t(e,t){if(Um=(t.rgba&255)/255,Um===1)return{css:t.css,rgba:t.rgba};let n=t.rgba>>24&255,r=t.rgba>>16&255,i=t.rgba>>8&255,a=e.rgba>>24&255,o=e.rgba>>16&255,s=e.rgba>>8&255;return Bm=a+Math.round((n-a)*Um),Vm=o+Math.round((r-o)*Um),Hm=s+Math.round((i-s)*Um),{css:Gm.toCss(Bm,Vm,Hm),rgba:Gm.toRgba(Bm,Vm,Hm)}}e.blend=t;function n(e){return(e.rgba&255)==255}e.isOpaque=n;function r(e,t,n){let r=Ym.ensureContrastRatio(e.rgba,t.rgba,n);if(r)return Gm.toColor(r>>24&255,r>>16&255,r>>8&255)}e.ensureContrastRatio=r;function i(e){let t=(e.rgba|255)>>>0;return[Bm,Vm,Hm]=Ym.toChannels(t),{css:Gm.toCss(Bm,Vm,Hm),rgba:t}}e.opaque=i;function a(e,t){return Um=Math.round(t*255),[Bm,Vm,Hm]=Ym.toChannels(e.rgba),{css:Gm.toCss(Bm,Vm,Hm,Um),rgba:Gm.toRgba(Bm,Vm,Hm,Um)}}e.opacity=a;function o(e,t){return Um=e.rgba&255,a(e,Um*t/255)}e.multiplyOpacity=o;function s(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}e.toColorRGB=s})(Km||={});var qm;(e=>{let t,n;try{let e=document.createElement(`canvas`);e.width=1,e.height=1;let r=e.getContext(`2d`,{willReadFrequently:!0});r&&(t=r,t.globalCompositeOperation=`copy`,n=t.createLinearGradient(0,0,1,1))}catch{}function r(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return Bm=parseInt(e.slice(1,2).repeat(2),16),Vm=parseInt(e.slice(2,3).repeat(2),16),Hm=parseInt(e.slice(3,4).repeat(2),16),Gm.toColor(Bm,Vm,Hm);case 5:return Bm=parseInt(e.slice(1,2).repeat(2),16),Vm=parseInt(e.slice(2,3).repeat(2),16),Hm=parseInt(e.slice(3,4).repeat(2),16),Um=parseInt(e.slice(4,5).repeat(2),16),Gm.toColor(Bm,Vm,Hm,Um);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}let r=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(r)return Bm=parseInt(r[1]),Vm=parseInt(r[2]),Hm=parseInt(r[3]),Um=Math.round((r[5]===void 0?1:parseFloat(r[5]))*255),Gm.toColor(Bm,Vm,Hm,Um);if(!t||!n||(t.fillStyle=n,t.fillStyle=e,typeof t.fillStyle!=`string`)||(t.fillRect(0,0,1,1),[Bm,Vm,Hm,Um]=t.getImageData(0,0,1,1).data,Um!==255))throw Error(`css.toColor: Unsupported css format`);return{rgba:Gm.toRgba(Bm,Vm,Hm,Um),css:e}}e.toColor=r})(qm||={});var Jm;(e=>{function t(e){return n(e>>16&255,e>>8&255,e&255)}e.relativeLuminance=t;function n(e,t,n){let r=e/255,i=t/255,a=n/255,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4,s=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,c=a<=.03928?a/12.92:((a+.055)/1.055)**2.4;return o*.2126+s*.7152+c*.0722}e.relativeLuminance2=n})(Jm||={});var Ym;(e=>{function t(e,t){if(Um=(t&255)/255,Um===1)return t;let n=t>>24&255,r=t>>16&255,i=t>>8&255,a=e>>24&255,o=e>>16&255,s=e>>8&255;return Bm=a+Math.round((n-a)*Um),Vm=o+Math.round((r-o)*Um),Hm=s+Math.round((i-s)*Um),Gm.toRgba(Bm,Vm,Hm)}e.blend=t;function n(e,t,n){let a=Jm.relativeLuminance(e>>8),o=Jm.relativeLuminance(t>>8);if(Zm(a,o)<n){if(o<a){let o=r(e,t,n),s=Zm(a,Jm.relativeLuminance(o>>8));if(s<n){let r=i(e,t,n);return s>Zm(a,Jm.relativeLuminance(r>>8))?o:r}return o}let s=i(e,t,n),c=Zm(a,Jm.relativeLuminance(s>>8));if(c<n){let i=r(e,t,n);return c>Zm(a,Jm.relativeLuminance(i>>8))?s:i}return s}}e.ensureContrastRatio=n;function r(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=Zm(Jm.relativeLuminance2(o,s,c),Jm.relativeLuminance2(r,i,a));for(;l<n&&(o>0||s>0||c>0);)o-=Math.max(0,Math.ceil(o*.1)),s-=Math.max(0,Math.ceil(s*.1)),c-=Math.max(0,Math.ceil(c*.1)),l=Zm(Jm.relativeLuminance2(o,s,c),Jm.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.reduceLuminance=r;function i(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=Zm(Jm.relativeLuminance2(o,s,c),Jm.relativeLuminance2(r,i,a));for(;l<n&&(o<255||s<255||c<255);)o=Math.min(255,o+Math.ceil((255-o)*.1)),s=Math.min(255,s+Math.ceil((255-s)*.1)),c=Math.min(255,c+Math.ceil((255-c)*.1)),l=Zm(Jm.relativeLuminance2(o,s,c),Jm.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.increaseLuminance=i;function a(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}e.toChannels=a})(Ym||={});function Xm(e){let t=e.toString(16);return t.length<2?`0`+t:t}function Zm(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}var Qm=class extends $u{constructor(e,t,n){super(),this.content=0,this.combinedData=``,this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=n}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw Error(`not implemented`)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},$m=class{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new td}register(e){let t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1}getJoinedCharacters(e){if(this._characterJoiners.length===0)return[];let t=this._bufferService.buffer.lines.get(e);if(!t||t.length===0)return[];let n=[],r=t.translateToString(!0),i=0,a=0,o=0,s=t.getFg(0),c=t.getBg(0);for(let e=0;e<t.getTrimmedLength();e++)if(t.loadCell(e,this._workCell),this._workCell.getWidth()!==0){if(this._workCell.fg!==s||this._workCell.bg!==c){if(e-i>1){let e=this._getJoinedRanges(r,o,a,t,i);for(let t=0;t<e.length;t++)n.push(e[t])}i=e,o=a,s=this._workCell.fg,c=this._workCell.bg}a+=this._workCell.getChars().length||Qu.length}if(this._bufferService.cols-i>1){let e=this._getJoinedRanges(r,o,a,t,i);for(let t=0;t<e.length;t++)n.push(e[t])}return n}_getJoinedRanges(e,t,n,r,i){let a=e.substring(t,n),o=[];try{o=this._characterJoiners[0].handler(a)}catch(e){console.error(e)}for(let e=1;e<this._characterJoiners.length;e++)try{let t=this._characterJoiners[e].handler(a);for(let e=0;e<t.length;e++)$m._mergeRanges(o,t[e])}catch(e){console.error(e)}return this._stringRangesToCellRanges(o,r,i),o}_stringRangesToCellRanges(e,t,n){let r=0,i=!1,a=0,o=e[r];if(o){for(let s=n;s<this._bufferService.cols;s++){let n=t.getWidth(s),c=t.getString(s).length||Qu.length;if(n!==0){if(!i&&o[0]<=a&&(o[0]=s,i=!0),o[1]<=a){if(o[1]=s,o=e[++r],!o)break;o[0]<=a?(o[0]=s,i=!0):i=!1}a+=c}}o&&(o[1]=this._bufferService.cols)}}static _mergeRanges(e,t){let n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(t[1]<=i[0])return e[r-1][1]=t[1],e;if(t[1]<=i[1])return e[r-1][1]=Math.max(t[1],i[1]),e.splice(r,1),e;e.splice(r,1),r--}else{if(t[1]<=i[0])return e.splice(r,0,t),e;if(t[1]<=i[1])return i[0]=Math.min(t[0],i[0]),e;t[0]<i[1]&&(i[0]=Math.min(t[0],i[0]),n=!0);continue}}return n?e[e.length-1][1]=t[1]:e.push(t),e}};$m=Fu([J(0,cd)],$m);function eh(e){return 57508<=e&&e<=57558}function th(e){return 9472<=e&&e<=9631}function nh(e){return eh(e)||th(e)}function rh(){return{css:{canvas:ih(),cell:ih()},device:{canvas:ih(),cell:ih(),char:{width:0,height:0,left:0,top:0}}}}function ih(){return{width:0,height:0}}var ah=class{constructor(e,t,n,r,i,a,o){this._document=e,this._characterJoinerService=t,this._optionsService=n,this._coreBrowserService=r,this._coreService=i,this._decorationService=a,this._themeService=o,this._workCell=new td,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,n){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=n}createRow(e,t,n,r,i,a,o,s,c,l,u){let d=[],f=this._characterJoinerService.getJoinedCharacters(t),p=this._themeService.colors,m=e.getNoBgTrimmedLength();n&&m<a+1&&(m=a+1);let h,g=0,_=``,v=0,y=0,b=0,x=0,S=!1,C=0,w=!1,T=0,E=0,D=[],O=l!==-1&&u!==-1;for(let k=0;k<m;k++){e.loadCell(k,this._workCell);let m=this._workCell.getWidth();if(m===0)continue;let A=!1,j=k>=E,ee=k,M=this._workCell;if(f.length>0&&k===f[0][0]&&j){let r=f.shift(),i=this._isCellInSelection(r[0],t);for(v=r[0]+1;v<r[1];v++)j&&=i===this._isCellInSelection(v,t);j&&=!n||a<r[0]||a>=r[1],j?(A=!0,M=new Qm(this._workCell,e.translateToString(!0,r[0],r[1]),r[1]-r[0]),ee=r[1]-1,m=M.getWidth()):E=r[1]}let N=this._isCellInSelection(k,t),P=n&&k===a,F=O&&k>=l&&k<=u,I=!1;this._decorationService.forEachDecorationAtCell(k,t,void 0,e=>{I=!0});let te=M.getChars()||Qu;if(te===` `&&(M.isUnderline()||M.isOverline())&&(te=`\xA0`),T=m*s-c.get(te,M.isBold(),M.isItalic()),!h)h=this._document.createElement(`span`);else if(g&&(N&&w||!N&&!w&&M.bg===y)&&(N&&w&&p.selectionForeground||M.fg===b)&&M.extended.ext===x&&F===S&&T===C&&!P&&!A&&!I&&j){M.isInvisible()?_+=Qu:_+=te,g++;continue}else g&&(h.textContent=_),h=this._document.createElement(`span`),g=0,_=``;if(y=M.bg,b=M.fg,x=M.extended.ext,S=F,C=T,w=N,A&&a>=k&&a<=ee&&(a=k),!this._coreService.isCursorHidden&&P&&this._coreService.isCursorInitialized){if(D.push(`xterm-cursor`),this._coreBrowserService.isFocused)o&&D.push(`xterm-cursor-blink`),D.push(r===`bar`?`xterm-cursor-bar`:r===`underline`?`xterm-cursor-underline`:`xterm-cursor-block`);else if(i)switch(i){case`outline`:D.push(`xterm-cursor-outline`);break;case`block`:D.push(`xterm-cursor-block`);break;case`bar`:D.push(`xterm-cursor-bar`);break;case`underline`:D.push(`xterm-cursor-underline`)}}if(M.isBold()&&D.push(`xterm-bold`),M.isItalic()&&D.push(`xterm-italic`),M.isDim()&&D.push(`xterm-dim`),_=M.isInvisible()?Qu:M.getChars()||Qu,M.isUnderline()&&(D.push(`xterm-underline-${M.extended.underlineStyle}`),_===` `&&(_=`\xA0`),!M.isUnderlineColorDefault())){if(M.isUnderlineColorRGB())h.style.textDecorationColor=`rgb(${$u.toColorRGB(M.getUnderlineColor()).join(`,`)})`;else{let e=M.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&M.isBold()&&e<8&&(e+=8),h.style.textDecorationColor=p.ansi[e].css}}M.isOverline()&&(D.push(`xterm-overline`),_===` `&&(_=`\xA0`)),M.isStrikethrough()&&D.push(`xterm-strikethrough`),F&&(h.style.textDecoration=`underline`);let ne=M.getFgColor(),re=M.getFgColorMode(),ie=M.getBgColor(),L=M.getBgColorMode(),R=!!M.isInverse();if(R){let e=ne;ne=ie,ie=e;let t=re;re=L,L=t}let ae,oe,se=!1;this._decorationService.forEachDecorationAtCell(k,t,void 0,e=>{e.options.layer!==`top`&&se||(e.backgroundColorRGB&&(L=50331648,ie=e.backgroundColorRGB.rgba>>8&16777215,ae=e.backgroundColorRGB),e.foregroundColorRGB&&(re=50331648,ne=e.foregroundColorRGB.rgba>>8&16777215,oe=e.foregroundColorRGB),se=e.options.layer===`top`)}),!se&&N&&(ae=this._coreBrowserService.isFocused?p.selectionBackgroundOpaque:p.selectionInactiveBackgroundOpaque,ie=ae.rgba>>8&16777215,L=50331648,se=!0,p.selectionForeground&&(re=50331648,ne=p.selectionForeground.rgba>>8&16777215,oe=p.selectionForeground)),se&&D.push(`xterm-decoration-top`);let ce;switch(L){case 16777216:case 33554432:ce=p.ansi[ie],D.push(`xterm-bg-${ie}`);break;case 50331648:ce=Gm.toColor(ie>>16,ie>>8&255,ie&255),this._addStyle(h,`background-color:#${oh((ie>>>0).toString(16),`0`,6)}`);break;default:R?(ce=p.foreground,D.push(`xterm-bg-257`)):ce=p.background}switch(ae||M.isDim()&&(ae=Km.multiplyOpacity(ce,.5)),re){case 16777216:case 33554432:M.isBold()&&ne<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(ne+=8),this._applyMinimumContrast(h,ce,p.ansi[ne],M,ae,void 0)||D.push(`xterm-fg-${ne}`);break;case 50331648:let e=Gm.toColor(ne>>16&255,ne>>8&255,ne&255);this._applyMinimumContrast(h,ce,e,M,ae,oe)||this._addStyle(h,`color:#${oh(ne.toString(16),`0`,6)}`);break;default:this._applyMinimumContrast(h,ce,p.foreground,M,ae,oe)||R&&D.push(`xterm-fg-257`)}D.length&&=(h.className=D.join(` `),0),!P&&!A&&!I&&j?g++:h.textContent=_,T!==this.defaultSpacing&&(h.style.letterSpacing=`${T}px`),d.push(h),k=ee}return h&&g&&(h.textContent=_),d}_applyMinimumContrast(e,t,n,r,i,a){if(this._optionsService.rawOptions.minimumContrastRatio===1||nh(r.getCode()))return!1;let o=this._getContrastCache(r),s;if(!i&&!a&&(s=o.getColor(t.rgba,n.rgba)),s===void 0){let e=this._optionsService.rawOptions.minimumContrastRatio/(r.isDim()?2:1);s=Km.ensureContrastRatio(i||t,a||n,e),o.setColor((i||t).rgba,(a||n).rgba,s??null)}return s?(this._addStyle(e,`color:${s.css}`),!0):!1}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute(`style`,`${e.getAttribute(`style`)||``}${t};`)}_isCellInSelection(e,t){let n=this._selectionStart,r=this._selectionEnd;return!n||!r?!1:this._columnSelectMode?n[0]<=r[0]?e>=n[0]&&t>=n[1]&&e<r[0]&&t<=r[1]:e<n[0]&&t>=n[1]&&e>=r[0]&&t<=r[1]:t>n[1]&&t<r[1]||n[1]===r[1]&&t===n[1]&&e>=n[0]&&e<r[0]||n[1]<r[1]&&t===r[1]&&e<r[0]||n[1]<r[1]&&t===n[1]&&e>=n[0]}};ah=Fu([J(1,wd),J(2,md),J(3,xd),J(4,ud),J(5,_d),J(6,Td)],ah);function oh(e,t,n){for(;e.length<n;)e=t+e;return e}var sh=class{constructor(e,t){this._flat=new Float32Array(256),this._font=``,this._fontSize=0,this._weight=`normal`,this._weightBold=`bold`,this._measureElements=[],this._container=e.createElement(`div`),this._container.classList.add(`xterm-width-cache-measure-container`),this._container.setAttribute(`aria-hidden`,`true`),this._container.style.whiteSpace=`pre`,this._container.style.fontKerning=`none`;let n=e.createElement(`span`);n.classList.add(`xterm-char-measure-element`);let r=e.createElement(`span`);r.classList.add(`xterm-char-measure-element`),r.style.fontWeight=`bold`;let i=e.createElement(`span`);i.classList.add(`xterm-char-measure-element`),i.style.fontStyle=`italic`;let a=e.createElement(`span`);a.classList.add(`xterm-char-measure-element`),a.style.fontWeight=`bold`,a.style.fontStyle=`italic`,this._measureElements=[n,r,i,a],this._container.appendChild(n),this._container.appendChild(r),this._container.appendChild(i),this._container.appendChild(a),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,n,r){e===this._font&&t===this._fontSize&&n===this._weight&&r===this._weightBold||(this._font=e,this._fontSize=t,this._weight=n,this._weightBold=r,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${n}`,this._measureElements[1].style.fontWeight=`${r}`,this._measureElements[2].style.fontWeight=`${n}`,this._measureElements[3].style.fontWeight=`${r}`,this.clear())}get(e,t,n){let r=0;if(!t&&!n&&e.length===1&&(r=e.charCodeAt(0))<256){if(this._flat[r]!==-9999)return this._flat[r];let t=this._measure(e,0);return t>0&&(this._flat[r]=t),t}let i=e;t&&(i+=`B`),n&&(i+=`I`);let a=this._holey.get(i);if(a===void 0){let r=0;t&&(r|=1),n&&(r|=2),a=this._measure(e,r),a>0&&this._holey.set(i,a)}return a}_measure(e,t){let n=this._measureElements[t];return n.textContent=e.repeat(32),n.offsetWidth/32}},ch=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,n,r=!1){if(this.selectionStart=t,this.selectionEnd=n,!t||!n||t[0]===n[0]&&t[1]===n[1]){this.clear();return}let i=e.buffers.active.ydisp,a=t[1]-i,o=n[1]-i,s=Math.max(a,0),c=Math.min(o,e.rows-1);if(s>=e.rows||c<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=r,this.viewportStartRow=a,this.viewportEndRow=o,this.viewportCappedStartRow=s,this.viewportCappedEndRow=c,this.startCol=t[0],this.endCol=n[0]}isCellSelected(e,t,n){return this.hasSelection?(n-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&n>=this.viewportCappedStartRow&&t<this.endCol&&n<=this.viewportCappedEndRow:t<this.startCol&&n>=this.viewportCappedStartRow&&t>=this.endCol&&n<=this.viewportCappedEndRow:n>this.viewportStartRow&&n<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&n===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&n===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&n===this.viewportStartRow&&t>=this.startCol):!1}};function lh(){return new ch}var uh=`xterm-dom-renderer-owner-`,dh=`xterm-rows`,fh=`xterm-fg-`,ph=`xterm-bg-`,mh=`xterm-focus`,hh=`xterm-selection`,gh=1,_h=class extends Xd{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._terminal=e,this._document=t,this._element=n,this._screenElement=r,this._viewportElement=i,this._helperContainer=a,this._linkifier2=o,this._charSizeService=c,this._optionsService=l,this._bufferService=u,this._coreService=d,this._coreBrowserService=f,this._themeService=p,this._terminalClass=gh++,this._rowElements=[],this._selectionRenderModel=lh(),this.onRequestRedraw=this._register(new X).event,this._rowContainer=this._document.createElement(`div`),this._rowContainer.classList.add(dh),this._rowContainer.style.lineHeight=`normal`,this._rowContainer.setAttribute(`aria-hidden`,`true`),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(`div`),this._selectionContainer.classList.add(hh),this._selectionContainer.setAttribute(`aria-hidden`,`true`),this.dimensions=rh(),this._updateDimensions(),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._themeService.onChangeColors(e=>this._injectCss(e))),this._injectCss(this._themeService.colors),this._rowFactory=s.createInstance(ah,document),this._element.classList.add(uh+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this._register(this._linkifier2.onShowLinkUnderline(e=>this._handleLinkHover(e))),this._register(this._linkifier2.onHideLinkUnderline(e=>this._handleLinkLeave(e))),this._register(qd(()=>{this._element.classList.remove(uh+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new sh(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=`hidden`;this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(`style`),this._screenElement.appendChild(this._dimensionsStyleElement));let t=`${this._terminalSelector} .${dh} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(`style`),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${dh} { pointer-events: none; color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${dh} .xterm-dim { color: ${Km.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let n=`blink_underline_${this._terminalClass}`,r=`blink_bar_${this._terminalClass}`,i=`blink_block_${this._terminalClass}`;t+=`@keyframes ${n} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${r} { 50% { box-shadow: none; }}`,t+=`@keyframes ${i} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${dh}.${mh} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${n} 1s step-end infinite;}${this._terminalSelector} .${dh}.${mh} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${dh}.${mh} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${dh} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${dh} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${dh} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${dh} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${dh} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${hh} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${hh} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${hh} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(let[n,r]of e.ansi.entries())t+=`${this._terminalSelector} .${fh}${n} { color: ${r.css}; }${this._terminalSelector} .${fh}${n}.xterm-dim { color: ${Km.multiplyOpacity(r,.5).css}; }${this._terminalSelector} .${ph}${n} { background-color: ${r.css}; }`;t+=`${this._terminalSelector} .${fh}257 { color: ${Km.opaque(e.background).css}; }${this._terminalSelector} .${fh}257.xterm-dim { color: ${Km.multiplyOpacity(Km.opaque(e.background),.5).css}; }${this._terminalSelector} .${ph}257 { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){let e=this.dimensions.css.cell.width-this._widthCache.get(`W`,!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){let e=this._document.createElement(`div`);this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(mh),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(mh),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,n){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,n),this.renderRows(0,this._bufferService.rows-1),!e||!t||(this._selectionRenderModel.update(this._terminal,e,t,n),!this._selectionRenderModel.hasSelection))return;let r=this._selectionRenderModel.viewportStartRow,i=this._selectionRenderModel.viewportEndRow,a=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow,s=this._document.createDocumentFragment();if(n){let n=e[0]>t[0];s.appendChild(this._createSelectionElement(a,n?t[0]:e[0],n?e[0]:t[0],o-a+1))}else{let n=r===a?e[0]:0,c=a===i?t[0]:this._bufferService.cols;s.appendChild(this._createSelectionElement(a,n,c));let l=o-a-1;if(s.appendChild(this._createSelectionElement(a+1,0,this._bufferService.cols,l)),a!==o){let e=i===o?t[0]:this._bufferService.cols;s.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(s)}_createSelectionElement(e,t,n,r=1){let i=this._document.createElement(`div`),a=t*this.dimensions.css.cell.width,o=this.dimensions.css.cell.width*(n-t);return a+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-a),i.style.height=`${r*this.dimensions.css.cell.height}px`,i.style.top=`${e*this.dimensions.css.cell.height}px`,i.style.left=`${a}px`,i.style.width=`${o}px`,i}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let e of this._rowElements)e.replaceChildren()}renderRows(e,t){let n=this._bufferService.buffer,r=n.ybase+n.y,i=Math.min(n.x,this._bufferService.cols-1),a=this._coreService.decPrivateModes.cursorBlink??this._optionsService.rawOptions.cursorBlink,o=this._coreService.decPrivateModes.cursorStyle??this._optionsService.rawOptions.cursorStyle,s=this._optionsService.rawOptions.cursorInactiveStyle;for(let c=e;c<=t;c++){let e=c+n.ydisp,t=this._rowElements[c],l=n.lines.get(e);if(!t||!l)break;t.replaceChildren(...this._rowFactory.createRow(l,e,e===r,o,s,i,a,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${uh}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,n,r,i,a){n<0&&(e=0),r<0&&(t=0);let o=this._bufferService.rows-1;n=Math.max(Math.min(n,o),0),r=Math.max(Math.min(r,o),0),i=Math.min(i,this._bufferService.cols);let s=this._bufferService.buffer,c=s.ybase+s.y,l=Math.min(s.x,i-1),u=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,f=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=n;o<=r;++o){let p=o+s.ydisp,m=this._rowElements[o],h=s.lines.get(p);if(!m||!h)break;m.replaceChildren(...this._rowFactory.createRow(h,p,p===c,d,f,l,u,this.dimensions.css.cell.width,this._widthCache,a?o===n?e:0:-1,a?(o===r?t:i)-1:-1))}}};_h=Fu([J(7,fd),J(8,bd),J(9,md),J(10,cd),J(11,ud),J(12,xd),J(13,Td)],_h);var vh=class extends Xd{constructor(e,t,n){super(),this._optionsService=n,this.width=0,this.height=0,this._onCharSizeChange=this._register(new X),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this._register(new xh(this._optionsService))}catch{this._measureStrategy=this._register(new bh(e,t,this._optionsService))}this._register(this._optionsService.onMultipleOptionChange([`fontFamily`,`fontSize`],()=>this.measure()))}get hasValidSize(){return this.width>0&&this.height>0}measure(){let e=this._measureStrategy.measure();(e.width!==this.width||e.height!==this.height)&&(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};vh=Fu([J(2,md)],vh);var yh=class extends Xd{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){e!==void 0&&e>0&&t!==void 0&&t>0&&(this._result.width=e,this._result.height=t)}},bh=class extends yh{constructor(e,t,n){super(),this._document=e,this._parentElement=t,this._optionsService=n,this._measureElement=this._document.createElement(`span`),this._measureElement.classList.add(`xterm-char-measure-element`),this._measureElement.textContent=`W`.repeat(32),this._measureElement.setAttribute(`aria-hidden`,`true`),this._measureElement.style.whiteSpace=`pre`,this._measureElement.style.fontKerning=`none`,this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}},xh=class extends yh{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(`2d`);let t=this._ctx.measureText(`W`);if(!(`width`in t&&`fontBoundingBoxAscent`in t&&`fontBoundingBoxDescent`in t))throw Error(`Required font metrics not supported`)}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let e=this._ctx.measureText(`W`);return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}},Sh=class extends Xd{constructor(e,t,n){super(),this._textarea=e,this._window=t,this.mainDocument=n,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=this._register(new Ch(this._window)),this._onDprChange=this._register(new X),this.onDprChange=this._onDprChange.event,this._onWindowChange=this._register(new X),this.onWindowChange=this._onWindowChange.event,this._register(this.onWindowChange(e=>this._screenDprMonitor.setWindow(e))),this._register(af.forward(this._screenDprMonitor.onDprChange,this._onDprChange)),this._register(Z(this._textarea,`focus`,()=>this._isFocused=!0)),this._register(Z(this._textarea,`blur`,()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}},Ch=class extends Xd{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this._register(new Zd),this._onDprChange=this._register(new X),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this._register(qd(()=>this.clearListener()))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=Z(this._parentWindow,`resize`,()=>this._setDprAndFireIfDiffers())}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){!this._resolutionMediaMatchList||!this._outerListener||(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}},wh=class extends Xd{constructor(){super(),this.linkProviders=[],this._register(qd(()=>this.linkProviders.length=0))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{let t=this.linkProviders.indexOf(e);t!==-1&&this.linkProviders.splice(t,1)}}}};function Th(e,t,n){let r=n.getBoundingClientRect(),i=e.getComputedStyle(n),a=parseInt(i.getPropertyValue(`padding-left`)),o=parseInt(i.getPropertyValue(`padding-top`));return[t.clientX-r.left-a,t.clientY-r.top-o]}function Eh(e,t,n,r,i,a,o,s,c){if(!a)return;let l=Th(e,t,n);if(l)return l[0]=Math.ceil((l[0]+(c?o/2:0))/o),l[1]=Math.ceil(l[1]/s),l[0]=Math.min(Math.max(l[0],1),r+ +!!c),l[1]=Math.min(Math.max(l[1],1),i),l}var Dh=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,n,r,i){return Eh(window,e,t,n,r,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,i)}getMouseReportCoords(e,t){let n=Th(window,e,t);if(this._charSizeService.hasValidSize)return n[0]=Math.min(Math.max(n[0],0),this._renderService.dimensions.css.canvas.width-1),n[1]=Math.min(Math.max(n[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(n[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(n[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(n[0]),y:Math.floor(n[1])}}};Dh=Fu([J(0,Y),J(1,bd)],Dh);var Oh=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&=(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()),this._animationFrame}refresh(e,t,n){this._rowCount=n,e=e===void 0?0:e,t=t===void 0?this._rowCount-1:t,this._rowStart=this._rowStart===void 0?e:Math.min(this._rowStart,e),this._rowEnd=this._rowEnd===void 0?t:Math.max(this._rowEnd,t),!this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0){this._runRefreshCallbacks();return}let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}},kh={};Pu(kh,{getSafariVersion:()=>Ih,isChromeOS:()=>Hh,isFirefox:()=>Nh,isIpad:()=>Rh,isIphone:()=>zh,isLegacyEdge:()=>Ph,isLinux:()=>Vh,isMac:()=>Lh,isNode:()=>Ah,isSafari:()=>Fh,isWindows:()=>Bh});var Ah=typeof process<`u`&&`title`in process,jh=Ah?`node`:navigator.userAgent,Mh=Ah?`node`:navigator.platform,Nh=jh.includes(`Firefox`),Ph=jh.includes(`Edge`),Fh=/^((?!chrome|android).)*safari/i.test(jh);function Ih(){if(!Fh)return 0;let e=jh.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}var Lh=[`Macintosh`,`MacIntel`,`MacPPC`,`Mac68K`].includes(Mh),Rh=Mh===`iPad`,zh=Mh===`iPhone`,Bh=[`Windows`,`Win16`,`Win32`,`WinCE`].includes(Mh),Vh=Mh.indexOf(`Linux`)>=0,Hh=/\bCrOS\b/.test(jh),Uh=class{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&=(this._cancelCallback(this._idleCallback),void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||=this._requestCallback(this._process.bind(this))}_process(e){this._idleCallback=void 0;let t=0,n=0,r=e.timeRemaining(),i=0;for(;this._i<this._tasks.length;){if(t=performance.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,performance.now()-t),n=Math.max(t,n),i=e.timeRemaining(),n*1.5>i){r-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),this._start();return}r=i}this.clear()}},Wh=class extends Uh{_requestCallback(e){return setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){let t=performance.now()+e;return{timeRemaining:()=>Math.max(0,t-performance.now())}}},Gh=class extends Uh{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},Kh=!Ah&&`requestIdleCallback`in window?Gh:Wh,qh=class{constructor(){this._queue=new Kh}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}},Jh=class extends Xd{constructor(e,t,n,r,i,a,o,s,c){super(),this._rowCount=e,this._optionsService=n,this._charSizeService=r,this._coreService=i,this._coreBrowserService=s,this._renderer=this._register(new Zd),this._pausedResizeTask=new qh,this._observerDisposable=this._register(new Zd),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this._register(new X),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this._register(new X),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this._register(new X),this.onRender=this._onRender.event,this._onRefreshRequest=this._register(new X),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new Oh((e,t)=>this._renderRows(e,t),this._coreBrowserService),this._register(this._renderDebouncer),this._syncOutputHandler=new Yh(this._coreBrowserService,this._coreService,()=>this._fullRefresh()),this._register(qd(()=>this._syncOutputHandler.dispose())),this._register(this._coreBrowserService.onDprChange(()=>this.handleDevicePixelRatioChange())),this._register(o.onResize(()=>this._fullRefresh())),this._register(o.buffers.onBufferActivate(()=>this._renderer.value?.clear())),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this._register(a.onDecorationRegistered(()=>this._fullRefresh())),this._register(a.onDecorationRemoved(()=>this._fullRefresh())),this._register(this._optionsService.onMultipleOptionChange([`customGlyphs`,`drawBoldTextInBrightColors`,`letterSpacing`,`lineHeight`,`fontFamily`,`fontSize`,`fontWeight`,`fontWeightBold`,`minimumContrastRatio`,`rescaleOverlappingGlyphs`],()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()})),this._register(this._optionsService.onMultipleOptionChange([`cursorBlink`,`cursorStyle`],()=>this.refreshRows(o.buffer.y,o.buffer.y,!0))),this._register(c.onChangeColors(()=>this._fullRefresh())),this._registerIntersectionObserver(this._coreBrowserService.window,t),this._register(this._coreBrowserService.onWindowChange(e=>this._registerIntersectionObserver(e,t)))}get dimensions(){return this._renderer.value.dimensions}_registerIntersectionObserver(e,t){if(`IntersectionObserver`in e){let n=new e.IntersectionObserver(e=>this._handleIntersectionChange(e[e.length-1]),{threshold:0});n.observe(t),this._observerDisposable.value=qd(()=>n.disconnect())}}_handleIntersectionChange(e){this._isPaused=e.isIntersecting===void 0?e.intersectionRatio===0:!e.isIntersecting,!this._isPaused&&!this._charSizeService.hasValidSize&&this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,n=!1){if(this._isPaused){this._needsFullRefresh=!0;return}if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,t);return}let r=this._syncOutputHandler.flush();r&&(e=Math.min(e,r.start),t=Math.max(t,r.end)),n||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount)}_renderRows(e,t){if(this._renderer.value){if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,t);return}e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&=(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0}}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw(e=>this.refreshRows(e.start,e.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value?.handleResize(e,t)):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,n){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=n,this._renderer.value?.handleSelectionChanged(e,t,n)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};Jh=Fu([J(2,md),J(3,bd),J(4,ud),J(5,_d),J(6,cd),J(7,xd),J(8,Td)],Jh);var Yh=class{constructor(e,t,n){this._coreBrowserService=e,this._coreService=t,this._onTimeout=n,this._start=0,this._end=0,this._isBuffering=!1}bufferRows(e,t){this._isBuffering?(this._start=Math.min(this._start,e),this._end=Math.max(this._end,t)):(this._start=e,this._end=t,this._isBuffering=!0),this._timeout===void 0&&(this._timeout=this._coreBrowserService.window.setTimeout(()=>{this._timeout=void 0,this._coreService.decPrivateModes.synchronizedOutput=!1,this._onTimeout()},1e3))}flush(){if(this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0),!this._isBuffering)return;let e={start:this._start,end:this._end};return this._isBuffering=!1,e}dispose(){this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0)}};function Xh(e,t,n,r){let i=n.buffer.x,a=n.buffer.y;if(!n.buffer.hasScrollback)return $h(i,a,e,t,n,r)+eg(a,t,n,r)+tg(i,a,e,t,n,r);let o;if(a===t)return o=i>e?`D`:`C`,cg(Math.abs(i-e),sg(o,r));o=a>t?`D`:`C`;let s=Math.abs(a-t);return cg(Qh(a>t?e:i,n)+(s-1)*n.cols+1+Zh(a>t?i:e,n),sg(o,r))}function Zh(e,t){return e-1}function Qh(e,t){return t.cols-e}function $h(e,t,n,r,i,a){return eg(t,r,i,a).length===0?``:cg(og(e,t,e,t-rg(t,i),!1,i).length,sg(`D`,a))}function eg(e,t,n,r){let i=e-rg(e,n),a=t-rg(t,n);return cg(Math.abs(i-a)-ng(e,t,n),sg(ag(e,t),r))}function tg(e,t,n,r,i,a){let o;o=eg(t,r,i,a).length>0?r-rg(r,i):t;let s=r,c=ig(e,t,n,r,i,a);return cg(og(e,o,n,s,c===`C`,i).length,sg(c,a))}function ng(e,t,n){let r=0,i=e-rg(e,n),a=t-rg(t,n);for(let o=0;o<Math.abs(i-a);o++){let a=ag(e,t)===`A`?-1:1;n.buffer.lines.get(i+a*o)?.isWrapped&&r++}return r}function rg(e,t){let n=0,r=t.buffer.lines.get(e),i=r?.isWrapped;for(;i&&e>=0&&e<t.rows;)n++,r=t.buffer.lines.get(--e),i=r?.isWrapped;return n}function ig(e,t,n,r,i,a){let o;return o=eg(n,r,i,a).length>0?r-rg(r,i):t,e<n&&o<=r||e>=n&&o<r?`C`:`D`}function ag(e,t){return e>t?`A`:`B`}function og(e,t,n,r,i,a){let o=e,s=t,c=``;for(;(o!==n||s!==r)&&s>=0&&s<a.buffer.lines.length;)o+=i?1:-1,i&&o>a.cols-1?(c+=a.buffer.translateBufferLineToString(s,!1,e,o),o=0,e=0,s++):!i&&o<0&&(c+=a.buffer.translateBufferLineToString(s,!1,0,e+1),o=a.cols-1,e=o,s--);return c+a.buffer.translateBufferLineToString(s,!1,e,o)}function sg(e,t){let n=t?`O`:`[`;return Q.ESC+n+e}function cg(e,t){e=Math.floor(e);let n=``;for(let r=0;r<e;r++)n+=t;return n}var lg=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:!this.selectionEnd||!this.selectionStart?this.selectionStart:this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols===0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let e=this.selectionStart,t=this.selectionEnd;return!e||!t?!1:e[1]>t[1]||e[1]===t[1]&&e[0]>t[0]}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}};function ug(e,t){if(e.start.y>e.end.y)throw Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}var dg=50,fg=15,pg=50,mg=500,hg=RegExp(`\xA0`,`g`),gg=class extends Xd{constructor(e,t,n,r,i,a,o,s,c){super(),this._element=e,this._screenElement=t,this._linkifier=n,this._bufferService=r,this._coreService=i,this._mouseService=a,this._optionsService=o,this._renderService=s,this._coreBrowserService=c,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new td,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this._register(new X),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this._register(new X),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this._register(new X),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this._register(new X),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(e=>this._handleTrim(e)),this._register(this._bufferService.buffers.onBufferActivate(e=>this._handleBufferActivate(e))),this.enable(),this._model=new lg(this._bufferService),this._activeSelectionMode=0,this._register(qd(()=>{this._removeMouseDownListeners()})),this._register(this._bufferService.onResize(e=>{e.rowsChanged&&this.clearSelection()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!e||!t?!1:e[0]!==t[0]||e[1]!==t[1]}get selectionText(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return``;let n=this._bufferService.buffer,r=[];if(this._activeSelectionMode===3){if(e[0]===t[0])return``;let i=e[0]<t[0]?e[0]:t[0],a=e[0]<t[0]?t[0]:e[0];for(let o=e[1];o<=t[1];o++){let e=n.translateBufferLineToString(o,!0,i,a);r.push(e)}}else{let i=e[1]===t[1]?t[0]:void 0;r.push(n.translateBufferLineToString(e[1],!0,e[0],i));for(let i=e[1]+1;i<=t[1]-1;i++){let e=n.lines.get(i),t=n.translateBufferLineToString(i,!0);e?.isWrapped?r[r.length-1]+=t:r.push(t)}if(e[1]!==t[1]){let e=n.lines.get(t[1]),i=n.translateBufferLineToString(t[1],!0,0,t[0]);e&&e.isWrapped?r[r.length-1]+=i:r.push(i)}}return r.map(e=>e.replace(hg,` `)).join(Bh?`\r
|
|
34
|
+
`:`
|
|
35
|
+
`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh()),Vh&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(e){let t=this._getMouseBufferCoords(e),n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r||!t?!1:this._areCoordsInSelection(t,n,r)}isCellInSelection(e,t){let n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r?!1:this._areCoordsInSelection([e,t],n,r)}_areCoordsInSelection(e,t,n){return e[1]>t[1]&&e[1]<n[1]||t[1]===n[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<n[0]||t[1]<n[1]&&e[1]===n[1]&&e[0]<n[0]||t[1]<n[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){let n=this._linkifier.currentLink?.link?.range;if(n)return this._model.selectionStart=[n.start.x-1,n.start.y-1],this._model.selectionStartLength=ug(n,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let r=this._getMouseBufferCoords(e);return r?(this._selectWordAt(r,t),this._model.selectionEnd=void 0,!0):!1}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=Th(this._coreBrowserService.window,e,this._screenElement)[1],n=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=n?0:(t>n&&(t-=n),t=Math.min(Math.max(t,-dg),dg),t/=dg,t/Math.abs(t)+Math.round(t*(fg-1)))}shouldForceSelection(e){return Lh?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(e.button===2&&this.hasSelection)&&e.button===0){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):e.detail===1?this._handleSingleClick(e):e.detail===2?this._handleDoubleClick(e):e.detail===3&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(`mouseup`,this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),pg)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(`mouseup`,this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&t.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(Lh&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd){this.refresh(!0);return}this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let n=this._bufferService.buffer;if(this._model.selectionEnd[1]<n.lines.length){let e=n.lines.get(this._model.selectionEnd[1]);e&&e.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}(!t||t[0]!==this._model.selectionEnd[0]||t[1]!==this._model.selectionEnd[1])&&this.refresh(!0)}_dragScroll(){if(!(!this._model.selectionEnd||!this._model.selectionStart)&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let e=this._bufferService.buffer;this._dragScrollAmount>0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<mg&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&t[0]!==void 0&&t[1]!==void 0){let e=Xh(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,n=!!e&&!!t&&(e[0]!==t[0]||e[1]!==t[1]);if(!n){this._oldHasSelection&&this._fireOnSelectionChange(e,t,n);return}!e||!t||(!this._oldSelectionStart||!this._oldSelectionEnd||e[0]!==this._oldSelectionStart[0]||e[1]!==this._oldSelectionStart[1]||t[0]!==this._oldSelectionEnd[0]||t[1]!==this._oldSelectionEnd[1])&&this._fireOnSelectionChange(e,t,n)}_fireOnSelectionChange(e,t,n){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=n,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(e=>this._handleTrim(e))}_convertViewportColToCharacterIndex(e,t){let n=t;for(let r=0;t>=r;r++){let i=e.loadCell(r,this._workCell).getChars().length;this._workCell.getWidth()===0?n--:i>1&&t!==r&&(n+=i-1)}return n}setSelection(e,t,n){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=n,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,n=!0,r=!0){if(e[0]>=this._bufferService.cols)return;let i=this._bufferService.buffer,a=i.lines.get(e[1]);if(!a)return;let o=i.translateBufferLineToString(e[1],!1),s=this._convertViewportColToCharacterIndex(a,e[0]),c=s,l=e[0]-s,u=0,d=0,f=0,p=0;if(o.charAt(s)===` `){for(;s>0&&o.charAt(s-1)===` `;)s--;for(;c<o.length&&o.charAt(c+1)===` `;)c++}else{let t=e[0],n=e[0];a.getWidth(t)===0&&(u++,t--),a.getWidth(n)===2&&(d++,n++);let r=a.getString(n).length;for(r>1&&(p+=r-1,c+=r-1);t>0&&s>0&&!this._isCharWordSeparator(a.loadCell(t-1,this._workCell));){a.loadCell(t-1,this._workCell);let e=this._workCell.getChars().length;this._workCell.getWidth()===0?(u++,t--):e>1&&(f+=e-1,s-=e-1),s--,t--}for(;n<a.length&&c+1<o.length&&!this._isCharWordSeparator(a.loadCell(n+1,this._workCell));){a.loadCell(n+1,this._workCell);let e=this._workCell.getChars().length;this._workCell.getWidth()===2?(d++,n++):e>1&&(p+=e-1,c+=e-1),c++,n++}}c++;let m=s+l-u+f,h=Math.min(this._bufferService.cols,c-s+u+d-f-p);if(!(!t&&o.slice(s,c).trim()===``)){if(n&&m===0&&a.getCodePoint(0)!==32){let t=i.lines.get(e[1]-1);if(t&&a.isWrapped&&t.getCodePoint(this._bufferService.cols-1)!==32){let t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){let e=this._bufferService.cols-t.start;m-=e,h+=e}}}if(r&&m+h===this._bufferService.cols&&a.getCodePoint(this._bufferService.cols-1)!==32){let t=i.lines.get(e[1]+1);if(t?.isWrapped&&t.getCodePoint(0)!==32){let t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(h+=t.length)}}return{start:m,length:h}}}_selectWordAt(e,t){let n=this._getWordAt(e,t);if(n){for(;n.start<0;)n.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[n.start,e[1]],this._model.selectionStartLength=n.length}}_selectToWordAt(e){let t=this._getWordAt(e,!0);if(t){let n=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,n--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,n++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,n]}}_isCharWordSeparator(e){return e.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let t=this._bufferService.buffer.getWrappedRangeForLine(e),n={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=ug(n,this._bufferService.cols)}};gg=Fu([J(3,cd),J(4,ud),J(5,Sd),J(6,md),J(7,Y),J(8,xd)],gg);var _g=class{constructor(){this._data={}}set(e,t,n){this._data[e]||(this._data[e]={}),this._data[e][t]=n}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},vg=class{constructor(){this._color=new _g,this._css=new _g}setCss(e,t,n){this._css.set(e,t,n)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,n){this._color.set(e,t,n)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}},yg=Object.freeze((()=>{let e=[qm.toColor(`#2e3436`),qm.toColor(`#cc0000`),qm.toColor(`#4e9a06`),qm.toColor(`#c4a000`),qm.toColor(`#3465a4`),qm.toColor(`#75507b`),qm.toColor(`#06989a`),qm.toColor(`#d3d7cf`),qm.toColor(`#555753`),qm.toColor(`#ef2929`),qm.toColor(`#8ae234`),qm.toColor(`#fce94f`),qm.toColor(`#729fcf`),qm.toColor(`#ad7fa8`),qm.toColor(`#34e2e2`),qm.toColor(`#eeeeec`)],t=[0,95,135,175,215,255];for(let n=0;n<216;n++){let r=t[n/36%6|0],i=t[n/6%6|0],a=t[n%6];e.push({css:Gm.toCss(r,i,a),rgba:Gm.toRgba(r,i,a)})}for(let t=0;t<24;t++){let n=8+t*10;e.push({css:Gm.toCss(n,n,n),rgba:Gm.toRgba(n,n,n)})}return e})()),bg=qm.toColor(`#ffffff`),xg=qm.toColor(`#000000`),Sg=qm.toColor(`#ffffff`),Cg=xg,wg={css:`rgba(255, 255, 255, 0.3)`,rgba:4294967117},Tg=bg,Eg=class extends Xd{constructor(e){super(),this._optionsService=e,this._contrastCache=new vg,this._halfContrastCache=new vg,this._onChangeColors=this._register(new X),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:bg,background:xg,cursor:Sg,cursorAccent:Cg,selectionForeground:void 0,selectionBackgroundTransparent:wg,selectionBackgroundOpaque:Km.blend(xg,wg),selectionInactiveBackgroundTransparent:wg,selectionInactiveBackgroundOpaque:Km.blend(xg,wg),scrollbarSliderBackground:Km.opacity(bg,.2),scrollbarSliderHoverBackground:Km.opacity(bg,.4),scrollbarSliderActiveBackground:Km.opacity(bg,.5),overviewRulerBorder:bg,ansi:yg.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange(`minimumContrastRatio`,()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange(`theme`,()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(e={}){let t=this._colors;if(t.foreground=Dg(e.foreground,bg),t.background=Dg(e.background,xg),t.cursor=Km.blend(t.background,Dg(e.cursor,Sg)),t.cursorAccent=Km.blend(t.background,Dg(e.cursorAccent,Cg)),t.selectionBackgroundTransparent=Dg(e.selectionBackground,wg),t.selectionBackgroundOpaque=Km.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=Dg(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=Km.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?Dg(e.selectionForeground,Wm):void 0,t.selectionForeground===Wm&&(t.selectionForeground=void 0),Km.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=Km.opacity(t.selectionBackgroundTransparent,.3)),Km.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=Km.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=Dg(e.scrollbarSliderBackground,Km.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=Dg(e.scrollbarSliderHoverBackground,Km.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=Dg(e.scrollbarSliderActiveBackground,Km.opacity(t.foreground,.5)),t.overviewRulerBorder=Dg(e.overviewRulerBorder,Tg),t.ansi=yg.slice(),t.ansi[0]=Dg(e.black,yg[0]),t.ansi[1]=Dg(e.red,yg[1]),t.ansi[2]=Dg(e.green,yg[2]),t.ansi[3]=Dg(e.yellow,yg[3]),t.ansi[4]=Dg(e.blue,yg[4]),t.ansi[5]=Dg(e.magenta,yg[5]),t.ansi[6]=Dg(e.cyan,yg[6]),t.ansi[7]=Dg(e.white,yg[7]),t.ansi[8]=Dg(e.brightBlack,yg[8]),t.ansi[9]=Dg(e.brightRed,yg[9]),t.ansi[10]=Dg(e.brightGreen,yg[10]),t.ansi[11]=Dg(e.brightYellow,yg[11]),t.ansi[12]=Dg(e.brightBlue,yg[12]),t.ansi[13]=Dg(e.brightMagenta,yg[13]),t.ansi[14]=Dg(e.brightCyan,yg[14]),t.ansi[15]=Dg(e.brightWhite,yg[15]),e.extendedAnsi){let n=Math.min(t.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<n;r++)t.ansi[r+16]=Dg(e.extendedAnsi[r],yg[r+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(e===void 0){for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e];return}switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};Eg=Fu([J(0,md)],Eg);function Dg(e,t){if(e!==void 0)try{return qm.toColor(e)}catch{}return t}var Og=class{constructor(...e){this._entries=new Map;for(let[t,n]of e)this.set(t,n)}set(e,t){let n=this._entries.get(e);return this._entries.set(e,t),n}forEach(e){for(let[t,n]of this._entries.entries())e(t,n)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}},kg=class{constructor(){this._services=new Og,this._services.set(fd,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){let n=ad(e).sort((e,t)=>e.index-t.index),r=[];for(let t of n){let n=this._services.get(t.id);if(!n)throw Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id._id}.`);r.push(n)}let i=n.length>0?n[0].index:t.length;if(t.length!==i)throw Error(`[createInstance] First service dependency of ${e.name} at position ${i+1} conflicts with ${t.length} static arguments`);return new e(...t,...r)}},Ag={trace:0,debug:1,info:2,warn:3,error:4,off:5},jg=`xterm.js: `,Mg=class extends Xd{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(`logLevel`,()=>this._updateLogLevel())),Ng=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=Ag[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]==`function`&&(e[t]=e[t]())}_log(e,t,n){this._evalLazyOptionalParams(n),e.call(console,(this._optionsService.options.logger?``:jg)+t,...n)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};Mg=Fu([J(0,md)],Mg);var Ng,Pg=class extends Xd{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new X),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new X),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new X),this.onTrim=this.onTrimEmitter.event,this._array=Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;let t=Array(e);for(let n=0;n<Math.min(e,this.length);n++)t[n]=this._array[this._getCyclicIndex(n)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw Error(`Can only recycle when the buffer is full`);return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...n){if(t){for(let n=e;n<this._length-t;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let t=this._length-1;t>=e;t--)this._array[this._getCyclicIndex(t+n.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;t<n.length;t++)this._array[this._getCyclicIndex(e+t)]=n[t];if(n.length&&this.onInsertEmitter.fire({index:e,amount:n.length}),this._length+n.length>this._maxLength){let e=this._length+n.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=n.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,n){if(!(t<=0)){if(e<0||e>=this._length)throw Error(`start argument out of range`);if(e+n<0)throw Error(`Cannot shift elements in list beyond index 0`);if(n>0){for(let r=t-1;r>=0;r--)this.set(e+r+n,this.get(e+r));let r=e+t+n-this._length;if(r>0)for(this._length+=r;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let r=0;r<t;r++)this.set(e+r+n,this.get(e+r))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}},Fg=3,Ig=Object.freeze(new $u),Lg=0,Rg=2,zg=class e{constructor(e,t,n=!1){this.isWrapped=n,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(e*Fg);let r=t||td.fromCharData([0,Zu,1,0]);for(let t=0;t<e;++t)this.setCell(t,r);this.length=e}get(e){let t=this._data[e*Fg+0],n=t&2097151;return[this._data[e*Fg+1],t&2097152?this._combined[e]:n?qu(n):``,t>>22,t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):n]}set(e,t){this._data[e*Fg+1]=t[0],t[1].length>1?(this._combined[e]=t[1],this._data[e*Fg+0]=e|2097152|t[2]<<22):this._data[e*Fg+0]=t[1].charCodeAt(0)|t[2]<<22}getWidth(e){return this._data[e*Fg+0]>>22}hasWidth(e){return this._data[e*Fg+0]&12582912}getFg(e){return this._data[e*Fg+1]}getBg(e){return this._data[e*Fg+2]}hasContent(e){return this._data[e*Fg+0]&4194303}getCodePoint(e){let t=this._data[e*Fg+0];return t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):t&2097151}isCombined(e){return this._data[e*Fg+0]&2097152}getString(e){let t=this._data[e*Fg+0];return t&2097152?this._combined[e]:t&2097151?qu(t&2097151):``}isProtected(e){return this._data[e*Fg+2]&536870912}loadCell(e,t){return Lg=e*Fg,t.content=this._data[Lg+0],t.fg=this._data[Lg+1],t.bg=this._data[Lg+2],t.content&2097152&&(t.combinedData=this._combined[e]),t.bg&268435456&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){t.content&2097152&&(this._combined[e]=t.combinedData),t.bg&268435456&&(this._extendedAttrs[e]=t.extended),this._data[e*Fg+0]=t.content,this._data[e*Fg+1]=t.fg,this._data[e*Fg+2]=t.bg}setCellFromCodepoint(e,t,n,r){r.bg&268435456&&(this._extendedAttrs[e]=r.extended),this._data[e*Fg+0]=t|n<<22,this._data[e*Fg+1]=r.fg,this._data[e*Fg+2]=r.bg}addCodepointToCell(e,t,n){let r=this._data[e*Fg+0];r&2097152?this._combined[e]+=qu(t):r&2097151?(this._combined[e]=qu(r&2097151)+qu(t),r&=-2097152,r|=2097152):r=t|1<<22,n&&(r&=-12582913,r|=n<<22),this._data[e*Fg+0]=r}insertCells(e,t,n){if(e%=this.length,e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length-e){let r=new td;for(let n=this.length-e-t-1;n>=0;--n)this.setCell(e+t+n,this.loadCell(e+n,r));for(let r=0;r<t;++r)this.setCell(e+r,n)}else for(let t=e;t<this.length;++t)this.setCell(t,n);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,n)}deleteCells(e,t,n){if(e%=this.length,t<this.length-e){let r=new td;for(let n=0;n<this.length-e-t;++n)this.setCell(e+n,this.loadCell(e+t+n,r));for(let e=this.length-t;e<this.length;++e)this.setCell(e,n)}else for(let t=e;t<this.length;++t)this.setCell(t,n);e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),this.getWidth(e)===0&&!this.hasContent(e)&&this.setCellFromCodepoint(e,0,1,n)}replaceCells(e,t,n,r=!1){if(r){for(e&&this.getWidth(e-1)===2&&!this.isProtected(e-1)&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length&&this.getWidth(t-1)===2&&!this.isProtected(t)&&this.setCellFromCodepoint(t,0,1,n);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,n),e++;return}for(e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t,0,1,n);e<t&&e<this.length;)this.setCell(e++,n)}resize(e,t){if(e===this.length)return this._data.length*4*Rg<this._data.buffer.byteLength;let n=e*Fg;if(e>this.length){if(this._data.buffer.byteLength>=n*4)this._data=new Uint32Array(this._data.buffer,0,n);else{let e=new Uint32Array(n);e.set(this._data),this._data=e}for(let n=this.length;n<e;++n)this.setCell(n,t)}else{this._data=this._data.subarray(0,n);let t=Object.keys(this._combined);for(let n=0;n<t.length;n++){let r=parseInt(t[n],10);r>=e&&delete this._combined[r]}let r=Object.keys(this._extendedAttrs);for(let t=0;t<r.length;t++){let n=parseInt(r[t],10);n>=e&&delete this._extendedAttrs[n]}}return this.length=e,n*4*Rg<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*Rg<this._data.buffer.byteLength){let e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t){for(let t=0;t<this.length;++t)this.isProtected(t)||this.setCell(t,e);return}this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}copyFrom(e){this.length===e.length?this._data.set(e._data):this._data=new Uint32Array(e._data),this.length=e.length,this._combined={};for(let t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(let t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){let t=new e(0);t._data=new Uint32Array(this._data),t.length=this.length;for(let e in this._combined)t._combined[e]=this._combined[e];for(let e in this._extendedAttrs)t._extendedAttrs[e]=this._extendedAttrs[e];return t.isWrapped=this.isWrapped,t}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(this._data[e*Fg+0]&4194303)return e+(this._data[e*Fg+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(this._data[e*Fg+0]&4194303||this._data[e*Fg+2]&50331648)return e+(this._data[e*Fg+0]>>22);return 0}copyCellsFrom(e,t,n,r,i){let a=e._data;if(i)for(let i=r-1;i>=0;i--){for(let e=0;e<Fg;e++)this._data[(n+i)*Fg+e]=a[(t+i)*Fg+e];a[(t+i)*Fg+2]&268435456&&(this._extendedAttrs[n+i]=e._extendedAttrs[t+i])}else for(let i=0;i<r;i++){for(let e=0;e<Fg;e++)this._data[(n+i)*Fg+e]=a[(t+i)*Fg+e];a[(t+i)*Fg+2]&268435456&&(this._extendedAttrs[n+i]=e._extendedAttrs[t+i])}let o=Object.keys(e._combined);for(let r=0;r<o.length;r++){let i=parseInt(o[r],10);i>=t&&(this._combined[i-t+n]=e._combined[i])}}translateToString(e,t,n,r){t??=0,n??=this.length,e&&(n=Math.min(n,this.getTrimmedLength())),r&&(r.length=0);let i=``;for(;t<n;){let e=this._data[t*Fg+0],n=e&2097151,a=e&2097152?this._combined[t]:n?qu(n):Qu;if(i+=a,r)for(let e=0;e<a.length;++e)r.push(t);t+=e>>22||1}return r&&r.push(t),i}};function Bg(e,t,n,r,i,a){let o=[];for(let s=0;s<e.length-1;s++){let c=s,l=e.get(++c);if(!l.isWrapped)continue;let u=[e.get(s)];for(;c<e.length&&l.isWrapped;)u.push(l),l=e.get(++c);if(!a&&r>=s&&r<c){s+=u.length-1;continue}let d=0,f=Wg(u,d,t),p=1,m=0;for(;p<u.length;){let e=Wg(u,p,t),r=e-m,a=n-f,o=Math.min(r,a);u[d].copyCellsFrom(u[p],m,f,o,!1),f+=o,f===n&&(d++,f=0),m+=o,m===e&&(p++,m=0),f===0&&d!==0&&u[d-1].getWidth(n-1)===2&&(u[d].copyCellsFrom(u[d-1],n-1,f++,1,!1),u[d-1].setCell(n-1,i))}u[d].replaceCells(f,n,i);let h=0;for(let e=u.length-1;e>0&&(e>d||u[e].getTrimmedLength()===0);e--)h++;h>0&&(o.push(s+u.length-h),o.push(h)),s+=u.length-1}return o}function Vg(e,t){let n=[],r=0,i=t[r],a=0;for(let o=0;o<e.length;o++)if(i===o){let n=t[++r];e.onDeleteEmitter.fire({index:o-a,amount:n}),o+=n-1,a+=n,i=t[++r]}else n.push(o);return{layout:n,countRemoved:a}}function Hg(e,t){let n=[];for(let r=0;r<t.length;r++)n.push(e.get(t[r]));for(let t=0;t<n.length;t++)e.set(t,n[t]);e.length=t.length}function Ug(e,t,n){let r=[],i=e.map((n,r)=>Wg(e,r,t)).reduce((e,t)=>e+t),a=0,o=0,s=0;for(;s<i;){if(i-s<n){r.push(i-s);break}a+=n;let c=Wg(e,o,t);a>c&&(a-=c,o++);let l=e[o].getWidth(a-1)===2;l&&a--;let u=l?n-1:n;r.push(u),s+=u}return r}function Wg(e,t,n){if(t===e.length-1)return e[t].getTrimmedLength();let r=!e[t].hasContent(n-1)&&e[t].getWidth(n-1)===1,i=e[t+1].getWidth(0)===2;return r&&i?n-1:n}var Gg=class e{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=e._nextId++,this._onDispose=this.register(new X),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),Gd(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}};Gg._nextId=1;var Kg=Gg,qg={},Jg=qg.B;qg[0]={"`":`◆`,a:`▒`,b:`␉`,c:`␌`,d:`␍`,e:`␊`,f:`°`,g:`±`,h:``,i:`␋`,j:`┘`,k:`┐`,l:`┌`,m:`└`,n:`┼`,o:`⎺`,p:`⎻`,q:`─`,r:`⎼`,s:`⎽`,t:`├`,u:`┤`,v:`┴`,w:`┬`,x:`│`,y:`≤`,z:`≥`,"{":`π`,"|":`≠`,"}":`£`,"~":`·`},qg.A={"#":`£`},qg.B=void 0,qg[4]={"#":`£`,"@":`¾`,"[":`ij`,"\\":`½`,"]":`|`,"{":`¨`,"|":`f`,"}":`¼`,"~":`´`},qg.C=qg[5]={"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},qg.R={"#":`£`,"@":`à`,"[":`°`,"\\":`ç`,"]":`§`,"{":`é`,"|":`ù`,"}":`è`,"~":`¨`},qg.Q={"@":`à`,"[":`â`,"\\":`ç`,"]":`ê`,"^":`î`,"`":`ô`,"{":`é`,"|":`ù`,"}":`è`,"~":`û`},qg.K={"@":`§`,"[":`Ä`,"\\":`Ö`,"]":`Ü`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`ß`},qg.Y={"#":`£`,"@":`§`,"[":`°`,"\\":`ç`,"]":`é`,"`":`ù`,"{":`à`,"|":`ò`,"}":`è`,"~":`ì`},qg.E=qg[6]={"@":`Ä`,"[":`Æ`,"\\":`Ø`,"]":`Å`,"^":`Ü`,"`":`ä`,"{":`æ`,"|":`ø`,"}":`å`,"~":`ü`},qg.Z={"#":`£`,"@":`§`,"[":`¡`,"\\":`Ñ`,"]":`¿`,"{":`°`,"|":`ñ`,"}":`ç`},qg.H=qg[7]={"@":`É`,"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},qg[`=`]={"#":`ù`,"@":`à`,"[":`é`,"\\":`ç`,"]":`ê`,"^":`î`,_:`è`,"`":`ô`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`û`};var Yg=4294967295,Xg=class{constructor(e,t,n){this._hasScrollback=e,this._optionsService=t,this._bufferService=n,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=Ig.clone(),this.savedCharset=Jg,this.markers=[],this._nullCell=td.fromCharData([0,Zu,1,0]),this._whitespaceCell=td.fromCharData([0,Qu,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new Kh,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new Pg(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new ed),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new ed),this._whitespaceCell}getBlankLine(e,t){return new zg(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;let t=e+this._optionsService.rawOptions.scrollback;return t>Yg?Yg:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=Ig);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new Pg(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let n=this.getNullCell(Ig),r=0,i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)r+=+this.lines.get(t).resize(e,n);let a=0;if(this._rows<t)for(let r=this._rows;r<t;r++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new zg(e,n)):this.ybase>0&&this.lines.length<=this.ybase+this.y+a+1?(this.ybase--,a++,this.ydisp>0&&this.ydisp--):this.lines.push(new zg(e,n)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i<this.lines.maxLength){let e=this.lines.length-i;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),a&&(this.y+=a),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t<this.lines.length;t++)r+=+this.lines.get(t).resize(e,n);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),r>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){let e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&e.backend===`conpty`&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){let n=this._optionsService.rawOptions.reflowCursorLine,r=Bg(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Ig),n);if(r.length>0){let n=Vg(this.lines,r);Hg(this.lines,n.layout),this._reflowLargerAdjustViewport(e,t,n.countRemoved)}}_reflowLargerAdjustViewport(e,t,n){let r=this.getNullCell(Ig),i=n;for(;i-->0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new zg(e,r))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-n,0)}_reflowSmaller(e,t){let n=this._optionsService.rawOptions.reflowCursorLine,r=this.getNullCell(Ig),i=[],a=0;for(let o=this.lines.length-1;o>=0;o--){let s=this.lines.get(o);if(!s||!s.isWrapped&&s.getTrimmedLength()<=e)continue;let c=[s];for(;s.isWrapped&&o>0;)s=this.lines.get(--o),c.unshift(s);if(!n){let e=this.ybase+this.y;if(e>=o&&e<o+c.length)continue}let l=c[c.length-1].getTrimmedLength(),u=Ug(c,this._cols,e),d=u.length-c.length,f;f=this.ybase===0&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+d):Math.max(0,this.lines.length-this.lines.maxLength+d);let p=[];for(let e=0;e<d;e++){let e=this.getBlankLine(Ig,!0);p.push(e)}p.length>0&&(i.push({start:o+c.length+a,newLines:p}),a+=p.length),c.push(...p);let m=u.length-1,h=u[m];h===0&&(m--,h=u[m]);let g=c.length-d-1,_=l;for(;g>=0;){let e=Math.min(_,h);if(c[m]===void 0)break;c[m].copyCellsFrom(c[g],_-e,h-e,e,!0),h-=e,h===0&&(m--,h=u[m]),_-=e,_===0&&(g--,_=Wg(c,Math.max(g,0),this._cols))}for(let t=0;t<c.length;t++)u[t]<e&&c[t].setCell(u[t],r);let v=d-f;for(;v-->0;)this.ybase===0?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+a)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+d,this.ybase+t-1)}if(i.length>0){let e=[],t=[];for(let e=0;e<this.lines.length;e++)t.push(this.lines.get(e));let n=this.lines.length,r=n-1,o=0,s=i[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+a);let c=0;for(let l=Math.min(this.lines.maxLength-1,n+a-1);l>=0;l--)if(s&&s.start>r+c){for(let e=s.newLines.length-1;e>=0;e--)this.lines.set(l--,s.newLines[e]);l++,e.push({index:r+1,amount:s.newLines.length}),c+=s.newLines.length,s=i[++o]}else this.lines.set(l,t[r--]);let l=0;for(let t=e.length-1;t>=0;t--)e[t].index+=l,this.lines.onInsertEmitter.fire(e[t]),l+=e[t].amount;let u=Math.max(0,n+a-this.lines.maxLength);u>0&&this.lines.onTrimEmitter.fire(u)}}translateBufferLineToString(e,t,n=0,r){let i=this.lines.get(e);return i?i.translateToString(t,n,r):``}getWrappedRangeForLine(e){let t=e,n=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;n+1<this.lines.length&&this.lines.get(n+1).isWrapped;)n++;return{first:t,last:n}}setupTabStops(e){for(e==null?(this.tabs={},e=0):this.tabs[e]||(e=this.prevStop(e));e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(e??=this.x;!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(e??=this.x;!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose();this.markers.length=0,this._isClearing=!1}addMarker(e){let t=new Kg(e);return this.markers.push(t),t.register(this.lines.onTrim(e=>{t.line-=e,t.line<0&&t.dispose()})),t.register(this.lines.onInsert(e=>{t.line>=e.index&&(t.line+=e.amount)})),t.register(this.lines.onDelete(e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)})),t.register(t.onDispose(()=>this._removeMarker(t))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}},Zg=class extends Xd{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new X),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this._register(this._optionsService.onSpecificOptionChange(`scrollback`,()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange(`tabStopWidth`,()=>this.setupTabStops()))}reset(){this._normal=new Xg(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new Xg(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}},Qg=2,$g=1,e_=class extends Xd{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new X),this.onResize=this._onResize.event,this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,Qg),this.rows=Math.max(e.rawOptions.rows||0,$g),this.buffers=this._register(new Zg(e,this)),this._register(this.buffers.onBufferActivate(e=>{this._onScroll.fire(e.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,t){let n=this.cols!==e,r=this.rows!==t;this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t,colsChanged:n,rowsChanged:r})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){let n=this.buffer,r;r=this._cachedBlankLine,(!r||r.length!==this.cols||r.getFg(0)!==e.fg||r.getBg(0)!==e.bg)&&(r=n.getBlankLine(e,t),this._cachedBlankLine=r),r.isWrapped=t;let i=n.ybase+n.scrollTop,a=n.ybase+n.scrollBottom;if(n.scrollTop===0){let e=n.lines.isFull;a===n.lines.length-1?e?n.lines.recycle().copyFrom(r):n.lines.push(r.clone()):n.lines.splice(a+1,0,r.clone()),e?this.isUserScrolling&&(n.ydisp=Math.max(n.ydisp-1,0)):(n.ybase++,this.isUserScrolling||n.ydisp++)}else{let e=a-i+1;n.lines.shiftElements(i+1,e-1,-1),n.lines.set(a,r.clone())}this.isUserScrolling||(n.ydisp=n.ybase),this._onScroll.fire(n.ydisp)}scrollLines(e,t){let n=this.buffer;if(e<0){if(n.ydisp===0)return;this.isUserScrolling=!0}else e+n.ydisp>=n.ybase&&(this.isUserScrolling=!1);let r=n.ydisp;n.ydisp=Math.max(Math.min(n.ydisp+e,n.ybase),0),r!==n.ydisp&&(t||this._onScroll.fire(n.ydisp))}};e_=Fu([J(0,md)],e_);var t_={cols:80,rows:24,cursorBlink:!1,cursorStyle:`block`,cursorWidth:1,cursorInactiveStyle:`outline`,customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:`alt`,fastScrollSensitivity:5,fontFamily:`monospace`,fontSize:15,fontWeight:`normal`,fontWeightBold:`bold`,ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:`info`,logger:null,scrollback:1e3,scrollOnEraseInDisplay:!1,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},reflowCursorLine:!1,rescaleOverlappingGlyphs:!1,rightClickSelectsWord:Lh,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:` ()[]{}',"\``,altClickMovesCursor:!0,convertEol:!1,termName:`xterm`,cancelEvents:!1,overviewRuler:{}},n_=[`normal`,`bold`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`],r_=class extends Xd{constructor(e){super(),this._onOptionChange=this._register(new X),this.onOptionChange=this._onOptionChange.event;let t={...t_};for(let n in e)if(n in t)try{let r=e[n];t[n]=this._sanitizeAndValidateOption(n,r)}catch(e){console.error(e)}this.rawOptions=t,this.options={...t},this._setupOptions(),this._register(qd(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,t){return this.onOptionChange(n=>{n===e&&t(this.rawOptions[e])})}onMultipleOptionChange(e,t){return this.onOptionChange(n=>{e.indexOf(n)!==-1&&t()})}_setupOptions(){let e=e=>{if(!(e in t_))throw Error(`No option with key "${e}"`);return this.rawOptions[e]},t=(e,t)=>{if(!(e in t_))throw Error(`No option with key "${e}"`);t=this._sanitizeAndValidateOption(e,t),this.rawOptions[e]!==t&&(this.rawOptions[e]=t,this._onOptionChange.fire(e))};for(let n in this.rawOptions){let r={get:e.bind(this,n),set:t.bind(this,n)};Object.defineProperty(this.options,n,r)}}_sanitizeAndValidateOption(e,t){switch(e){case`cursorStyle`:if(t||=t_[e],!i_(t))throw Error(`"${t}" is not a valid value for ${e}`);break;case`wordSeparator`:t||=t_[e];break;case`fontWeight`:case`fontWeightBold`:if(typeof t==`number`&&1<=t&&t<=1e3)break;t=n_.includes(t)?t:t_[e];break;case`cursorWidth`:t=Math.floor(t);case`lineHeight`:case`tabStopWidth`:if(t<1)throw Error(`${e} cannot be less than 1, value: ${t}`);break;case`minimumContrastRatio`:t=Math.max(1,Math.min(21,Math.round(t*10)/10));break;case`scrollback`:if(t=Math.min(t,4294967295),t<0)throw Error(`${e} cannot be less than 0, value: ${t}`);break;case`fastScrollSensitivity`:case`scrollSensitivity`:if(t<=0)throw Error(`${e} cannot be less than or equal to 0, value: ${t}`);break;case`rows`:case`cols`:if(!t&&t!==0)throw Error(`${e} must be numeric, value: ${t}`);break;case`windowsPty`:t??={}}return t}};function i_(e){return e===`block`||e===`underline`||e===`bar`}function a_(e,t=5){if(typeof e!=`object`)return e;let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=t<=1?e[r]:e[r]&&a_(e[r],t-1);return n}var o_=Object.freeze({insertMode:!1}),s_=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),c_=class extends Xd{constructor(e,t,n){super(),this._bufferService=e,this._logService=t,this._optionsService=n,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new X),this.onData=this._onData.event,this._onUserInput=this._register(new X),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new X),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new X),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=a_(o_),this.decPrivateModes=a_(s_)}reset(){this.modes=a_(o_),this.decPrivateModes=a_(s_)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;let n=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&n.ybase!==n.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`),this._logService.trace(`sending data (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`),this._logService.trace(`sending binary (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onBinary.fire(e))}};c_=Fu([J(0,cd),J(1,pd),J(2,md)],c_);var l_={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>e.button===4||e.action!==1?!1:(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>e.action!==32},DRAG:{events:23,restrict:e=>e.action!==32||e.button!==3},ANY:{events:31,restrict:e=>!0}};function u_(e,t){let n=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return e.button===4?(n|=64,n|=e.action):(n|=e.button&3,e.button&4&&(n|=64),e.button&8&&(n|=128),e.action===32?n|=32:e.action===0&&!t&&(n|=3)),n}var d_=String.fromCharCode,f_={DEFAULT:e=>{let t=[u_(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?``:`\x1B[M${d_(t[0])}${d_(t[1])}${d_(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${u_(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${u_(e,!0)};${e.x};${e.y}${t}`}},p_=class extends Xd{constructor(e,t,n){super(),this._bufferService=e,this._coreService=t,this._optionsService=n,this._protocols={},this._encodings={},this._activeProtocol=``,this._activeEncoding=``,this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new X),this.onProtocolChange=this._onProtocolChange.event;for(let e of Object.keys(l_))this.addProtocol(e,l_[e]);for(let e of Object.keys(f_))this.addEncoding(e,f_[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(e){if(!this._protocols[e])throw Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol=`NONE`,this.activeEncoding=`DEFAULT`,this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,t,n){if(e.deltaY===0||e.shiftKey||t===void 0||n===void 0)return 0;let r=t/n,i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=r+0,Math.abs(e.deltaY)<50&&(i*=.3),this._wheelPartialScroll+=i,i=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(i*=this._bufferService.rows),i}_applyScrollModifier(e,t){return t.altKey||t.ctrlKey||t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows||e.button===4&&e.action===32||e.button===3&&e.action!==32||e.button!==4&&(e.action===2||e.action===3)||(e.col++,e.row++,e.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,e,this._activeEncoding===`SGR_PIXELS`))||!this._protocols[this._activeProtocol].restrict(e))return!1;let t=this._encodings[this._activeEncoding](e);return t&&(this._activeEncoding===`DEFAULT`?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(e&1),up:!!(e&2),drag:!!(e&4),move:!!(e&8),wheel:!!(e&16)}}_equalEvents(e,t,n){if(n){if(e.x!==t.x||e.y!==t.y)return!1}else if(e.col!==t.col||e.row!==t.row)return!1;return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};p_=Fu([J(0,cd),J(1,ud),J(2,md)],p_);var m_=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],h_=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],g_;function __(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}var v_=class{constructor(){if(this.version=`6`,!g_){g_=new Uint8Array(65536),g_.fill(1),g_[0]=0,g_.fill(0,1,32),g_.fill(0,127,160),g_.fill(2,4352,4448),g_[9001]=2,g_[9002]=2,g_.fill(2,11904,42192),g_[12351]=1,g_.fill(2,44032,55204),g_.fill(2,63744,64256),g_.fill(2,65040,65050),g_.fill(2,65072,65136),g_.fill(2,65280,65377),g_.fill(2,65504,65511);for(let e=0;e<m_.length;++e)g_.fill(0,m_[e][0],m_[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?g_[e]:__(e,h_)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=y_.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return y_.createPropertyValue(0,n,r)}},y_=class e{constructor(){this._providers=Object.create(null),this._active=``,this._onChange=new X,this.onChange=this._onChange.event;let e=new v_;this.register(e),this._active=e.version,this._activeProvider=e}static extractShouldJoin(e){return!!(e&1)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,n=!1){return(e&16777215)<<3|(t&3)<<1|!!n}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(t){let n=0,r=0,i=t.length;for(let a=0;a<i;++a){let o=t.charCodeAt(a);if(55296<=o&&o<=56319){if(++a>=i)return n+this.wcwidth(o);let e=t.charCodeAt(a);56320<=e&&e<=57343?o=(o-55296)*1024+e-56320+65536:n+=this.wcwidth(e)}let s=this.charProperties(o,r),c=e.extractWidth(s);e.extractShouldJoin(s)&&(c-=e.extractWidth(r)),n+=c,r=s}return n}charProperties(e,t){return this._activeProvider.charProperties(e,t)}},b_=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}};function x_(e){let t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),n=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);n&&t&&(n.isWrapped=t[3]!==0&&t[3]!==32)}var S_=2147483647,C_=256,w_=class e{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>C_)throw Error(`maxSubParamsLength must not be greater than 256`);this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(t){let n=new e;if(!t.length)return n;for(let e=+!!Array.isArray(t[0]);e<t.length;++e){let r=t[e];if(Array.isArray(r))for(let e=0;e<r.length;++e)n.addSubParam(r[e]);else n.addParam(r)}return n}clone(){let t=new e(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t}toArray(){let e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);let n=this._subParamsIdx[t]>>8,r=this._subParamsIdx[t]&255;r-n>0&&e.push(Array.prototype.slice.call(this._subParams,n,r))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>S_?S_:e}addSubParam(e){if(this._digitIsSub=!0,this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParams[this._subParamsLength++]=e>S_?S_:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(this._subParamsIdx[e]&255)-(this._subParamsIdx[e]>>8)>0}getSubParams(e){let t=this._subParamsIdx[e]>>8,n=this._subParamsIdx[e]&255;return n-t>0?this._subParams.subarray(t,n):null}getSubParamsAll(){let e={};for(let t=0;t<this.length;++t){let n=this._subParamsIdx[t]>>8,r=this._subParamsIdx[t]&255;r-n>0&&(e[t]=this._subParams.slice(n,r))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let n=this._digitIsSub?this._subParams:this.params,r=n[t-1];n[t-1]=~r?Math.min(r*10+e,S_):e}},T_=[],E_=class{constructor(){this._state=0,this._active=T_,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=T_}reset(){if(this._state===2)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=T_,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||T_,!this._active.length)this._handlerFb(this._id,`START`);else for(let e=this._active.length-1;e>=0;e--)this._active[e].start()}_put(e,t,n){if(!this._active.length)this._handlerFb(this._id,`PUT`,Ju(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}start(){this.reset(),this._state=1}put(e,t,n){if(this._state!==3){if(this._state===1)for(;t<n;){let n=e[t++];if(n===59){this._state=2,this._start();break}if(n<48||57<n){this._state=3;return}this._id===-1&&(this._id=0),this._id=this._id*10+n-48}this._state===2&&n-t>0&&this._put(e,t,n)}}end(e,t=!0){if(this._state!==0){if(this._state!==3){if(this._state===1&&this._start(),!this._active.length)this._handlerFb(this._id,`END`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].end(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].end(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}}this._active=T_,this._id=-1,this._state=0}}},D_=class{constructor(e){this._handler=e,this._data=``,this._hitLimit=!1}start(){this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=Ju(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then(e=>(this._data=``,this._hitLimit=!1,e));return this._data=``,this._hitLimit=!1,t}},O_=[],k_=class{constructor(){this._handlers=Object.create(null),this._active=O_,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=O_}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=O_,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||O_,!this._active.length)this._handlerFb(this._ident,`HOOK`,t);else for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t)}put(e,t,n){if(!this._active.length)this._handlerFb(this._ident,`PUT`,Ju(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}unhook(e,t=!0){if(!this._active.length)this._handlerFb(this._ident,`UNHOOK`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].unhook(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].unhook(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}this._active=O_,this._ident=0}},A_=new w_;A_.addParam(0);var j_=class{constructor(e){this._handler=e,this._data=``,this._params=A_,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():A_,this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=Ju(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then(e=>(this._params=A_,this._data=``,this._hitLimit=!1,e));return this._params=A_,this._data=``,this._hitLimit=!1,t}},M_=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,n,r){this.table[t<<8|e]=n<<4|r}addMany(e,t,n,r){for(let i=0;i<e.length;i++)this.table[t<<8|e[i]]=n<<4|r}},N_=160,P_=function(){let e=new M_(4095),t=Array.apply(null,Array(256)).map((e,t)=>t),n=(e,n)=>t.slice(e,n),r=n(32,127),i=n(0,24);i.push(25),i.push.apply(i,n(28,32));let a=n(0,14),o;for(o in e.setDefault(1,0),e.addMany(r,0,2,0),a)e.addMany([24,26,153,154],o,3,0),e.addMany(n(128,144),o,3,0),e.addMany(n(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(i,0,3,0),e.addMany(i,1,3,1),e.add(127,1,0,1),e.addMany(i,8,0,8),e.addMany(i,3,3,3),e.add(127,3,0,3),e.addMany(i,4,3,4),e.add(127,4,0,4),e.addMany(i,6,3,6),e.addMany(i,5,3,5),e.add(127,5,0,5),e.addMany(i,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(r,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(n(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(r,7,0,7),e.addMany(i,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(n(64,127),3,7,0),e.addMany(n(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(n(48,60),4,8,4),e.addMany(n(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(n(32,64),6,0,6),e.add(127,6,0,6),e.addMany(n(64,127),6,0,0),e.addMany(n(32,48),3,9,5),e.addMany(n(32,48),5,9,5),e.addMany(n(48,64),5,0,6),e.addMany(n(64,127),5,7,0),e.addMany(n(32,48),4,9,5),e.addMany(n(32,48),1,9,2),e.addMany(n(32,48),2,9,2),e.addMany(n(48,127),2,10,0),e.addMany(n(48,80),1,10,0),e.addMany(n(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(n(96,127),1,10,0),e.add(80,1,11,9),e.addMany(i,9,0,9),e.add(127,9,0,9),e.addMany(n(28,32),9,0,9),e.addMany(n(32,48),9,9,12),e.addMany(n(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(i,11,0,11),e.addMany(n(32,128),11,0,11),e.addMany(n(28,32),11,0,11),e.addMany(i,10,0,10),e.add(127,10,0,10),e.addMany(n(28,32),10,0,10),e.addMany(n(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(n(32,48),10,9,12),e.addMany(i,12,0,12),e.add(127,12,0,12),e.addMany(n(28,32),12,0,12),e.addMany(n(32,48),12,9,12),e.addMany(n(48,64),12,0,11),e.addMany(n(64,127),12,12,13),e.addMany(n(64,127),10,12,13),e.addMany(n(64,127),9,12,13),e.addMany(i,13,13,13),e.addMany(r,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(N_,0,2,0),e.add(N_,8,5,8),e.add(N_,6,0,6),e.add(N_,11,0,11),e.add(N_,13,13,13),e}(),F_=class extends Xd{constructor(e=P_){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new w_,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,n)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(qd(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new E_),this._dcsParser=this._register(new k_),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:`\\`},()=>!0)}_identifier(e,t=[64,126]){let n=0;if(e.prefix){if(e.prefix.length>1)throw Error(`only one byte as prefix supported`);if(n=e.prefix.charCodeAt(0),n&&60>n||n>63)throw Error(`prefix must be in range 0x3c .. 0x3f`)}if(e.intermediates){if(e.intermediates.length>2)throw Error(`only two bytes as intermediates are supported`);for(let t=0;t<e.intermediates.length;++t){let r=e.intermediates.charCodeAt(t);if(32>r||r>47)throw Error(`intermediate must be in range 0x20 .. 0x2f`);n<<=8,n|=r}}if(e.final.length!==1)throw Error(`final must be a single byte`);let r=e.final.charCodeAt(0);if(t[0]>r||r>t[1])throw Error(`final must be in range ${t[0]} .. ${t[1]}`);return n<<=8,n|=r,n}identToString(e){let t=[];for(;e;)t.push(String.fromCharCode(e&255)),e>>=8;return t.reverse().join(``)}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){let n=this._identifier(e,[48,126]);this._escHandlers[n]===void 0&&(this._escHandlers[n]=[]);let r=this._escHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){let n=this._identifier(e);this._csiHandlers[n]===void 0&&(this._csiHandlers[n]=[]);let r=this._csiHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,n,r,i){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=n,this._parseStack.transition=r,this._parseStack.chunkPos=i}parse(e,t,n){let r=0,i=0,a=0,o;if(this._parseStack.state){if(this._parseStack.state===2)this._parseStack.state=0,a=this._parseStack.chunkPos+1;else{if(n===void 0||this._parseStack.state===1)throw this._parseStack.state=1,Error(`improper continuation due to previous async handler, giving up parsing`);let t=this._parseStack.handlers,i=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](this._params),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 4:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],o=this._dcsParser.unhook(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],o=this._oscParser.end(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,a=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}}for(let n=a;n<t;++n){switch(r=e[n],i=this._transitions.table[this.currentState<<8|(r<160?r:N_)],i>>4){case 2:for(let i=n+1;;++i){if(i>=t||(r=e[i])<32||r>126&&r<N_){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<N_){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<N_){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<N_){this._printHandler(e,n,i),n=i-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:n,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let a=this._csiHandlers[this._collect<<8|r],s=a?a.length-1:-1;for(;s>=0&&(o=a[s](this._params),o!==!0);s--)if(o instanceof Promise)return this._preserveStack(3,a,s,i,n),o;s<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}while(++n<t&&(r=e[n])>47&&r<60);n--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:let c=this._escHandlers[this._collect<<8|r],l=c?c.length-1:-1;for(;l>=0&&(o=c[l](),o!==!0);l--)if(o instanceof Promise)return this._preserveStack(4,c,l,i,n),o;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let i=n+1;;++i)if(i>=t||(r=e[i])===24||r===26||r===27||r>127&&r<N_){this._dcsParser.put(e,n,i),n=i-1;break}break;case 14:if(o=this._dcsParser.unhook(r!==24&&r!==26),o)return this._preserveStack(6,[],0,i,n),o;r===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let i=n+1;;i++)if(i>=t||(r=e[i])<32||r>127&&r<N_){this._oscParser.put(e,n,i),n=i-1;break}break;case 6:if(o=this._oscParser.end(r!==24&&r!==26),o)return this._preserveStack(5,[],0,i,n),o;r===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=i&15}}},I_=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,L_=/^[\da-f]+$/;function R_(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf(`rgb:`)===0){t=t.slice(4);let e=I_.exec(t);if(e){let t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(t.indexOf(`#`)===0&&(t=t.slice(1),L_.exec(t)&&[3,6,9,12].includes(t.length))){let e=t.length/3,n=[0,0,0];for(let r=0;r<3;++r){let i=parseInt(t.slice(e*r,e*r+e),16);n[r]=e===1?i<<4:e===2?i:e===3?i>>4:i>>8}return n}}function z_(e,t){let n=e.toString(16),r=n.length<2?`0`+n:n;switch(t){case 4:return n[0];case 8:return r;case 12:return(r+r).slice(0,3);default:return r+r}}function B_(e,t=16){let[n,r,i]=e;return`rgb:${z_(n,t)}/${z_(r,t)}/${z_(i,t)}`}var V_={"(":0,")":1,"*":2,"+":3,"-":1,".":2},H_=131072,U_=10;function W_(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var G_=5e3,K_=0,q_=class extends Xd{constructor(e,t,n,r,i,a,o,s,c=new F_){super(),this._bufferService=e,this._charsetService=t,this._coreService=n,this._logService=r,this._optionsService=i,this._oscLinkService=a,this._coreMouseService=o,this._unicodeService=s,this._parser=c,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new Yu,this._utf8Decoder=new Xu,this._windowTitle=``,this._iconName=``,this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=Ig.clone(),this._eraseAttrDataInternal=Ig.clone(),this._onRequestBell=this._register(new X),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new X),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new X),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new X),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new X),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new X),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new X),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new X),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new X),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new X),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new X),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new X),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this._register(this._parser),this._dirtyRowTracker=new J_(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(e=>this._activeBuffer=e.activeBuffer)),this._parser.setCsiHandlerFallback((e,t)=>{this._logService.debug(`Unknown CSI code: `,{identifier:this._parser.identToString(e),params:t.toArray()})}),this._parser.setEscHandlerFallback(e=>{this._logService.debug(`Unknown ESC code: `,{identifier:this._parser.identToString(e)})}),this._parser.setExecuteHandlerFallback(e=>{this._logService.debug(`Unknown EXECUTE code: `,{code:e})}),this._parser.setOscHandlerFallback((e,t,n)=>{this._logService.debug(`Unknown OSC code: `,{identifier:e,action:t,data:n})}),this._parser.setDcsHandlerFallback((e,t,n)=>{t===`HOOK`&&(n=n.toArray()),this._logService.debug(`Unknown DCS code: `,{identifier:this._parser.identToString(e),action:t,payload:n})}),this._parser.setPrintHandler((e,t,n)=>this.print(e,t,n)),this._parser.registerCsiHandler({final:`@`},e=>this.insertChars(e)),this._parser.registerCsiHandler({intermediates:` `,final:`@`},e=>this.scrollLeft(e)),this._parser.registerCsiHandler({final:`A`},e=>this.cursorUp(e)),this._parser.registerCsiHandler({intermediates:` `,final:`A`},e=>this.scrollRight(e)),this._parser.registerCsiHandler({final:`B`},e=>this.cursorDown(e)),this._parser.registerCsiHandler({final:`C`},e=>this.cursorForward(e)),this._parser.registerCsiHandler({final:`D`},e=>this.cursorBackward(e)),this._parser.registerCsiHandler({final:`E`},e=>this.cursorNextLine(e)),this._parser.registerCsiHandler({final:`F`},e=>this.cursorPrecedingLine(e)),this._parser.registerCsiHandler({final:`G`},e=>this.cursorCharAbsolute(e)),this._parser.registerCsiHandler({final:`H`},e=>this.cursorPosition(e)),this._parser.registerCsiHandler({final:`I`},e=>this.cursorForwardTab(e)),this._parser.registerCsiHandler({final:`J`},e=>this.eraseInDisplay(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`J`},e=>this.eraseInDisplay(e,!0)),this._parser.registerCsiHandler({final:`K`},e=>this.eraseInLine(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`K`},e=>this.eraseInLine(e,!0)),this._parser.registerCsiHandler({final:`L`},e=>this.insertLines(e)),this._parser.registerCsiHandler({final:`M`},e=>this.deleteLines(e)),this._parser.registerCsiHandler({final:`P`},e=>this.deleteChars(e)),this._parser.registerCsiHandler({final:`S`},e=>this.scrollUp(e)),this._parser.registerCsiHandler({final:`T`},e=>this.scrollDown(e)),this._parser.registerCsiHandler({final:`X`},e=>this.eraseChars(e)),this._parser.registerCsiHandler({final:`Z`},e=>this.cursorBackwardTab(e)),this._parser.registerCsiHandler({final:"`"},e=>this.charPosAbsolute(e)),this._parser.registerCsiHandler({final:`a`},e=>this.hPositionRelative(e)),this._parser.registerCsiHandler({final:`b`},e=>this.repeatPrecedingCharacter(e)),this._parser.registerCsiHandler({final:`c`},e=>this.sendDeviceAttributesPrimary(e)),this._parser.registerCsiHandler({prefix:`>`,final:`c`},e=>this.sendDeviceAttributesSecondary(e)),this._parser.registerCsiHandler({final:`d`},e=>this.linePosAbsolute(e)),this._parser.registerCsiHandler({final:`e`},e=>this.vPositionRelative(e)),this._parser.registerCsiHandler({final:`f`},e=>this.hVPosition(e)),this._parser.registerCsiHandler({final:`g`},e=>this.tabClear(e)),this._parser.registerCsiHandler({final:`h`},e=>this.setMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`h`},e=>this.setModePrivate(e)),this._parser.registerCsiHandler({final:`l`},e=>this.resetMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`l`},e=>this.resetModePrivate(e)),this._parser.registerCsiHandler({final:`m`},e=>this.charAttributes(e)),this._parser.registerCsiHandler({final:`n`},e=>this.deviceStatus(e)),this._parser.registerCsiHandler({prefix:`?`,final:`n`},e=>this.deviceStatusPrivate(e)),this._parser.registerCsiHandler({intermediates:`!`,final:`p`},e=>this.softReset(e)),this._parser.registerCsiHandler({intermediates:` `,final:`q`},e=>this.setCursorStyle(e)),this._parser.registerCsiHandler({final:`r`},e=>this.setScrollRegion(e)),this._parser.registerCsiHandler({final:`s`},e=>this.saveCursor(e)),this._parser.registerCsiHandler({final:`t`},e=>this.windowOptions(e)),this._parser.registerCsiHandler({final:`u`},e=>this.restoreCursor(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`}`},e=>this.insertColumns(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`~`},e=>this.deleteColumns(e)),this._parser.registerCsiHandler({intermediates:`"`,final:`q`},e=>this.selectProtected(e)),this._parser.registerCsiHandler({intermediates:`$`,final:`p`},e=>this.requestMode(e,!0)),this._parser.registerCsiHandler({prefix:`?`,intermediates:`$`,final:`p`},e=>this.requestMode(e,!1)),this._parser.setExecuteHandler(Q.BEL,()=>this.bell()),this._parser.setExecuteHandler(Q.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(Q.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(Q.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(Q.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(Q.BS,()=>this.backspace()),this._parser.setExecuteHandler(Q.HT,()=>this.tab()),this._parser.setExecuteHandler(Q.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(Q.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(Lm.IND,()=>this.index()),this._parser.setExecuteHandler(Lm.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(Lm.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new D_(e=>(this.setTitle(e),this.setIconName(e),!0))),this._parser.registerOscHandler(1,new D_(e=>this.setIconName(e))),this._parser.registerOscHandler(2,new D_(e=>this.setTitle(e))),this._parser.registerOscHandler(4,new D_(e=>this.setOrReportIndexedColor(e))),this._parser.registerOscHandler(8,new D_(e=>this.setHyperlink(e))),this._parser.registerOscHandler(10,new D_(e=>this.setOrReportFgColor(e))),this._parser.registerOscHandler(11,new D_(e=>this.setOrReportBgColor(e))),this._parser.registerOscHandler(12,new D_(e=>this.setOrReportCursorColor(e))),this._parser.registerOscHandler(104,new D_(e=>this.restoreIndexedColor(e))),this._parser.registerOscHandler(110,new D_(e=>this.restoreFgColor(e))),this._parser.registerOscHandler(111,new D_(e=>this.restoreBgColor(e))),this._parser.registerOscHandler(112,new D_(e=>this.restoreCursorColor(e))),this._parser.registerEscHandler({final:`7`},()=>this.saveCursor()),this._parser.registerEscHandler({final:`8`},()=>this.restoreCursor()),this._parser.registerEscHandler({final:`D`},()=>this.index()),this._parser.registerEscHandler({final:`E`},()=>this.nextLine()),this._parser.registerEscHandler({final:`H`},()=>this.tabSet()),this._parser.registerEscHandler({final:`M`},()=>this.reverseIndex()),this._parser.registerEscHandler({final:`=`},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:`>`},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:`c`},()=>this.fullReset()),this._parser.registerEscHandler({final:`n`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`o`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`|`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`}`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`~`},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:`%`,final:`@`},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:`%`,final:`G`},()=>this.selectDefaultCharset());for(let e in qg)this._parser.registerEscHandler({intermediates:`(`,final:e},()=>this.selectCharset(`(`+e)),this._parser.registerEscHandler({intermediates:`)`,final:e},()=>this.selectCharset(`)`+e)),this._parser.registerEscHandler({intermediates:`*`,final:e},()=>this.selectCharset(`*`+e)),this._parser.registerEscHandler({intermediates:`+`,final:e},()=>this.selectCharset(`+`+e)),this._parser.registerEscHandler({intermediates:`-`,final:e},()=>this.selectCharset(`-`+e)),this._parser.registerEscHandler({intermediates:`.`,final:e},()=>this.selectCharset(`.`+e)),this._parser.registerEscHandler({intermediates:`/`,final:e},()=>this.selectCharset(`/`+e));this._parser.registerEscHandler({intermediates:`#`,final:`8`},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(e=>(this._logService.error(`Parsing error: `,e),e)),this._parser.registerDcsHandler({intermediates:`$`,final:`q`},new j_((e,t)=>this.requestStatusString(e,t)))}getAttrData(){return this._curAttrData}_preserveStack(e,t,n,r){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=n,this._parseStack.position=r}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((e,t)=>setTimeout(()=>t(`#SLOW_TIMEOUT`),G_))]).catch(e=>{if(e!==`#SLOW_TIMEOUT`)throw e;console.warn(`async parser handler taking longer than ${G_} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let n,r=this._activeBuffer.x,i=this._activeBuffer.y,a=0,o=this._parseStack.paused;if(o){if(n=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(n),n;r=this._parseStack.cursorStartX,i=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>H_&&(a=this._parseStack.position+H_)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e==`string`?` "${e}"`:` "${Array.prototype.map.call(e,e=>String.fromCharCode(e)).join(``)}"`}`),this._logService.logLevel===0&&this._logService.trace(`parsing data (codes)`,typeof e==`string`?e.split(``).map(e=>e.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<H_&&(this._parseBuffer=new Uint32Array(Math.min(e.length,H_))),o||this._dirtyRowTracker.clearRange(),e.length>H_)for(let t=a;t<e.length;t+=H_){let a=t+H_<e.length?t+H_:e.length,o=typeof e==`string`?this._stringDecoder.decode(e.substring(t,a),this._parseBuffer):this._utf8Decoder.decode(e.subarray(t,a),this._parseBuffer);if(n=this._parser.parse(this._parseBuffer,o))return this._preserveStack(r,i,o,t),this._logSlowResolvingAsync(n),n}else if(!o){let t=typeof e==`string`?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(n=this._parser.parse(this._parseBuffer,t))return this._preserveStack(r,i,t,0),this._logSlowResolvingAsync(n),n}(this._activeBuffer.x!==r||this._activeBuffer.y!==i)&&this._onCursorMove.fire();let s=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),c=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);c<this._bufferService.rows&&this._onRequestRefreshRows.fire({start:Math.min(c,this._bufferService.rows-1),end:Math.min(s,this._bufferService.rows-1)})}print(e,t,n){let r,i,a=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,s=this._bufferService.cols,c=this._coreService.decPrivateModes.wraparound,l=this._coreService.modes.insertMode,u=this._curAttrData,d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&n-t>0&&d.getWidth(this._activeBuffer.x-1)===2&&d.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let f=this._parser.precedingJoinState;for(let p=t;p<n;++p){if(r=e[p],r<127&&a){let e=a[String.fromCharCode(r)];e&&(r=e.charCodeAt(0))}let t=this._unicodeService.charProperties(r,f);i=y_.extractWidth(t);let n=y_.extractShouldJoin(t),m=n?y_.extractWidth(f):0;if(f=t,o&&this._onA11yChar.fire(qu(r)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+i-m>s){if(c){let e=d,t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&d instanceof zg&&d.copyCellsFrom(e,t,0,m,!1);t<s;)e.setCellFromCodepoint(t++,0,1,u)}else if(this._activeBuffer.x=s-1,i===2)continue}if(n&&this._activeBuffer.x){let e=d.getWidth(this._activeBuffer.x-1)?1:2;d.addCodepointToCell(this._activeBuffer.x-e,r,i);for(let e=i-m;--e>=0;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u);continue}if(l&&(d.insertCells(this._activeBuffer.x,i-m,this._activeBuffer.getNullCell(u)),d.getWidth(s-1)===2&&d.setCellFromCodepoint(s-1,0,1,u)),d.setCellFromCodepoint(this._activeBuffer.x++,r,i,u),i>0)for(;--i;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=f,this._activeBuffer.x<s&&n-t>0&&d.getWidth(this._activeBuffer.x)===0&&!d.hasContent(this._activeBuffer.x)&&d.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return e.final===`t`&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,e=>!W_(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new j_(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new D_(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){let t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){let t=e.params[0];return t===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:t===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let t=e.params[0];return t===1&&(this._curAttrData.bg|=536870912),(t===2||t===0)&&(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,n,r=!1,i=!1){let a=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);a.replaceCells(t,n,this._activeBuffer.getNullCell(this._eraseAttrData()),i),r&&(a.isWrapped=!1)}_resetBufferLine(e,t=!1){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n&&(n.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),n.isWrapped=!1)}eraseInDisplay(e,t=!1){this._restrictCursor(this._bufferService.cols);let n;switch(e.params[0]){case 0:for(n=this._activeBuffer.y,this._dirtyRowTracker.markDirty(n),this._eraseInBufferLine(n++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);n<this._bufferService.rows;n++)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(n);break;case 1:for(n=this._activeBuffer.y,this._dirtyRowTracker.markDirty(n),this._eraseInBufferLine(n,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(n+1).isWrapped=!1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(n=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,n-1);n--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+n)?.getTrimmedLength(););for(;n>=0;n--)this._bufferService.scroll(this._eraseAttrData())}else{for(n=this._bufferService.rows,this._dirtyRowTracker.markDirty(n-1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0)}break;case 3:let e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let n=this._activeBuffer.ybase+this._activeBuffer.y,r=this._bufferService.rows-1-this._activeBuffer.scrollBottom,i=this._bufferService.rows-1+this._activeBuffer.ybase-r+1;for(;t--;)this._activeBuffer.lines.splice(i-1,1),this._activeBuffer.lines.splice(n,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let n=this._activeBuffer.ybase+this._activeBuffer.y,r;for(r=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-r;t--;)this._activeBuffer.lines.splice(n,1),this._activeBuffer.lines.splice(r,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(Ig));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){let t=this._parser.precedingJoinState;if(!t)return!0;let n=e.params[0]||1,r=y_.extractWidth(t),i=this._activeBuffer.x-r,a=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(i),o=new Uint32Array(a.length*n),s=0;for(let e=0;e<a.length;){let t=a.codePointAt(e)||0;o[s++]=t,e+=t>65535?2:1}let c=s;for(let e=1;e<n;++e)o.copyWithin(c,0,s),c+=s;return this.print(o,0,c),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(`xterm`)||this._is(`rxvt-unicode`)||this._is(`screen`)?this._coreService.triggerDataEvent(Q.ESC+`[?1;2c`):this._is(`linux`)&&this._coreService.triggerDataEvent(Q.ESC+`[?6c`)),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(`xterm`)?this._coreService.triggerDataEvent(Q.ESC+`[>0;276;0c`):this._is(`rxvt-unicode`)?this._coreService.triggerDataEvent(Q.ESC+`[>85;95;0c`):this._is(`linux`)?this._coreService.triggerDataEvent(e.params[0]+`c`):this._is(`screen`)&&this._coreService.triggerDataEvent(Q.ESC+`[>83;40003;0c`)),!0}_is(e){return(this._optionsService.rawOptions.termName+``).indexOf(e)===0}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,Jg),this._charsetService.setgCharset(1,Jg),this._charsetService.setgCharset(2,Jg),this._charsetService.setgCharset(3,Jg);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(`Serial port requested application keypad.`),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=`X10`;break;case 1e3:this._coreMouseService.activeProtocol=`VT200`;break;case 1002:this._coreMouseService.activeProtocol=`DRAG`;break;case 1003:this._coreMouseService.activeProtocol=`ANY`;break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(`DECSET 1005 not supported (see #2507)`);break;case 1006:this._coreMouseService.activeEncoding=`SGR`;break;case 1015:this._logService.debug(`DECSET 1015 not supported (see #2507)`);break;case 1016:this._coreMouseService.activeEncoding=`SGR_PIXELS`;break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!0}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(`Switching back to normal keypad.`),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=`NONE`;break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(`DECRST 1005 not supported (see #2507)`);break;case 1006:this._coreMouseService.activeEncoding=`DEFAULT`;break;case 1015:this._logService.debug(`DECRST 1015 not supported (see #2507)`);break;case 1016:this._coreMouseService.activeEncoding=`DEFAULT`;break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),e.params[t]===1049&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!1,this._onRequestRefreshRows.fire(void 0)}return!0}requestMode(e,t){let n;(e=>(e[e.NOT_RECOGNIZED=0]=`NOT_RECOGNIZED`,e[e.SET=1]=`SET`,e[e.RESET=2]=`RESET`,e[e.PERMANENTLY_SET=3]=`PERMANENTLY_SET`,e[e.PERMANENTLY_RESET=4]=`PERMANENTLY_RESET`))(n||={});let r=this._coreService.decPrivateModes,{activeProtocol:i,activeEncoding:a}=this._coreMouseService,o=this._coreService,{buffers:s,cols:c}=this._bufferService,{active:l,alt:u}=s,d=this._optionsService.rawOptions,f=(e,n)=>(o.triggerDataEvent(`${Q.ESC}[${t?``:`?`}${e};${n}$y`),!0),p=e=>e?1:2,m=e.params[0];return t?m===2?f(m,4):m===4?f(m,p(o.modes.insertMode)):m===12?f(m,3):m===20?f(m,p(d.convertEol)):f(m,0):m===1?f(m,p(r.applicationCursorKeys)):m===3?f(m,d.windowOptions.setWinLines?c===80?2:+(c===132):0):m===6?f(m,p(r.origin)):m===7?f(m,p(r.wraparound)):m===8?f(m,3):m===9?f(m,p(i===`X10`)):m===12?f(m,p(d.cursorBlink)):m===25?f(m,p(!o.isCursorHidden)):m===45?f(m,p(r.reverseWraparound)):m===66?f(m,p(r.applicationKeypad)):m===67?f(m,4):m===1e3?f(m,p(i===`VT200`)):m===1002?f(m,p(i===`DRAG`)):m===1003?f(m,p(i===`ANY`)):m===1004?f(m,p(r.sendFocus)):m===1005?f(m,4):m===1006?f(m,p(a===`SGR`)):m===1015?f(m,4):m===1016?f(m,p(a===`SGR_PIXELS`)):m===1048?f(m,1):m===47||m===1047||m===1049?f(m,p(l===u)):m===2004?f(m,p(r.bracketedPasteMode)):m===2026?f(m,p(r.synchronizedOutput)):f(m,0)}_updateAttrColor(e,t,n,r,i){return t===2?(e|=50331648,e&=-16777216,e|=$u.fromColorRGB([n,r,i])):t===5&&(e&=-50331904,e|=33554432|n&255),e}_extractColor(e,t,n){let r=[0,0,-1,0,0,0],i=0,a=0;do{if(r[a+i]=e.params[t+a],e.hasSubParams(t+a)){let n=e.getSubParams(t+a),o=0;do r[1]===5&&(i=1),r[a+o+1+i]=n[o];while(++o<n.length&&o+a+1+i<r.length);break}if(r[1]===5&&a+i>=2||r[1]===2&&a+i>=5)break;r[1]&&(i=1)}while(++a+t<e.length&&a+i<r.length);for(let e=2;e<r.length;++e)r[e]===-1&&(r[e]=0);switch(r[0]){case 38:n.fg=this._updateAttrColor(n.fg,r[1],r[3],r[4],r[5]);break;case 48:n.bg=this._updateAttrColor(n.bg,r[1],r[3],r[4],r[5]);break;case 58:n.extended=n.extended.clone(),n.extended.underlineColor=this._updateAttrColor(n.extended.underlineColor,r[1],r[3],r[4],r[5])}return a}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,e===0&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=Ig.fg,e.bg=Ig.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(e.length===1&&e.params[0]===0)return this._processSGR0(this._curAttrData),!0;let t=e.length,n,r=this._curAttrData;for(let i=0;i<t;i++)n=e.params[i],n>=30&&n<=37?(r.fg&=-50331904,r.fg|=16777216|n-30):n>=40&&n<=47?(r.bg&=-50331904,r.bg|=16777216|n-40):n>=90&&n<=97?(r.fg&=-50331904,r.fg|=n-90|16777224):n>=100&&n<=107?(r.bg&=-50331904,r.bg|=n-100|16777224):n===0?this._processSGR0(r):n===1?r.fg|=134217728:n===3?r.bg|=67108864:n===4?(r.fg|=268435456,this._processUnderline(e.hasSubParams(i)?e.getSubParams(i)[0]:1,r)):n===5?r.fg|=536870912:n===7?r.fg|=67108864:n===8?r.fg|=1073741824:n===9?r.fg|=2147483648:n===2?r.bg|=134217728:n===21?this._processUnderline(2,r):n===22?(r.fg&=-134217729,r.bg&=-134217729):n===23?r.bg&=-67108865:n===24?(r.fg&=-268435457,this._processUnderline(0,r)):n===25?r.fg&=-536870913:n===27?r.fg&=-67108865:n===28?r.fg&=-1073741825:n===29?r.fg&=2147483647:n===39?(r.fg&=-67108864,r.fg|=Ig.fg&16777215):n===49?(r.bg&=-67108864,r.bg|=Ig.bg&16777215):n===38||n===48||n===58?i+=this._extractColor(e,i,r):n===53?r.bg|=1073741824:n===55?r.bg&=-1073741825:n===59?(r.extended=r.extended.clone(),r.extended.underlineColor=-1,r.updateExtended()):n===100?(r.fg&=-67108864,r.fg|=Ig.fg&16777215,r.bg&=-67108864,r.bg|=Ig.bg&16777215):this._logService.debug(`Unknown SGR attribute: %d.`,n);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${Q.ESC}[0n`);break;case 6:let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Q.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(e.params[0]===6){let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${Q.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=Ig.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){let t=e.length===0?1:e.params[0];if(t===0)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(t){case 1:case 2:this._coreService.decPrivateModes.cursorStyle=`block`;break;case 3:case 4:this._coreService.decPrivateModes.cursorStyle=`underline`;break;case 5:case 6:this._coreService.decPrivateModes.cursorStyle=`bar`}let e=t%2==1;this._coreService.decPrivateModes.cursorBlink=e}return!0}setScrollRegion(e){let t=e.params[0]||1,n;return(e.length<2||(n=e.params[1])>this._bufferService.rows||n===0)&&(n=this._bufferService.rows),n>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=n-1,this._setCursor(0,0)),!0}windowOptions(e){if(!W_(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:t!==2&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${Q.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>U_&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>U_&&this._iconNameStack.shift());break;case 23:(t===0||t===2)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(t===0||t===1)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){let t=[],n=e.split(`;`);for(;n.length>1;){let e=n.shift(),r=n.shift();if(/^\d+$/.exec(e)){let n=parseInt(e);if(Y_(n)){if(r===`?`)t.push({type:0,index:n});else{let e=R_(r);e&&t.push({type:1,index:n,color:e})}}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){let t=e.indexOf(`;`);if(t===-1)return!0;let n=e.slice(0,t).trim(),r=e.slice(t+1);return r?this._createHyperlink(n,r):!n.trim()&&this._finishHyperlink()}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();let n=e.split(`:`),r,i=n.findIndex(e=>e.startsWith(`id=`));return i!==-1&&(r=n[i].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:r,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){let n=e.split(`;`);for(let e=0;e<n.length&&!(t>=this._specialColors.length);++e,++t)if(n[e]===`?`)this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{let r=R_(n[e]);r&&this._onColor.fire([{type:1,index:this._specialColors[t],color:r}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;let t=[],n=e.split(`;`);for(let e=0;e<n.length;++e)if(/^\d+$/.exec(n[e])){let r=parseInt(n[e]);Y_(r)&&t.push({type:2,index:r})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(`Serial port requested application keypad.`),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(`Switching back to normal keypad.`),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,Jg),!0}selectCharset(e){return e.length===2?(e[0]===`/`||this._charsetService.setgCharset(V_[e[0]],qg[e[1]]||Jg),!0):(this.selectDefaultCharset(),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=Ig.clone(),this._eraseAttrDataInternal=Ig.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=this._curAttrData.bg&67108863,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new td;e.content=4194373,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){let n=this._activeBuffer.ybase+this._activeBuffer.y+t,r=this._activeBuffer.lines.get(n);r&&(r.fill(e),r.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){let n=e=>(this._coreService.triggerDataEvent(`${Q.ESC}${e}${Q.ESC}\\`),!0),r=this._bufferService.buffer,i=this._optionsService.rawOptions;return n(e===`"q`?`P1$r${+!!this._curAttrData.isProtected()}"q`:e===`"p`?`P1$r61;1"p`:e===`r`?`P1$r${r.scrollTop+1};${r.scrollBottom+1}r`:e===`m`?`P1$r0m`:e===` q`?`P1$r${{block:2,underline:4,bar:6}[i.cursorStyle]-+!!i.cursorBlink} q`:`P0$r`)}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}},J_=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(K_=e,e=t,t=K_),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};J_=Fu([J(0,cd)],J_);function Y_(e){return 0<=e&&e<256}var X_=5e7,Z_=12,Q_=50,$_=class extends Xd{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this._register(new X),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(t!==void 0&&this._syncCalls>t){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;this._isSyncWriting=!0;let n;for(;n=this._writeBuffer.shift();){this._action(n);let e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>X_)throw Error(`write data discarded, use flow control to avoid losing data`);if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput){this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){let n=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let e=this._writeBuffer[this._bufferOffset],r=this._action(e,t);if(r){r.catch(e=>(queueMicrotask(()=>{throw e}),Promise.resolve(!1))).then(e=>performance.now()-n>=Z_?setTimeout(()=>this._innerWrite(0,e)):this._innerWrite(n,e));return}let i=this._callbacks[this._bufferOffset];if(i&&i(),this._bufferOffset++,this._pendingData-=e.length,performance.now()-n>=Z_)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>Q_&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}},ev=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){let t=this._bufferService.buffer;if(e.id===void 0){let n=t.addMarker(t.ybase+t.y),r={data:e,id:this._nextId++,lines:[n]};return n.onDispose(()=>this._removeMarkerFromLink(r,n)),this._dataByLinkId.set(r.id,r),r.id}let n=e,r=this._getEntryIdKey(n),i=this._entriesWithId.get(r);if(i)return this.addLineToLink(i.id,t.ybase+t.y),i.id;let a=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(n),data:n,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(o,a)),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){let n=this._dataByLinkId.get(e);if(n&&n.lines.every(e=>e.line!==t)){let e=this._bufferService.buffer.addMarker(t);n.lines.push(e),e.onDispose(()=>this._removeMarkerFromLink(n,e))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){let n=e.lines.indexOf(t);n!==-1&&(e.lines.splice(n,1),e.lines.length===0&&(e.data.id!==void 0&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};ev=Fu([J(0,cd)],ev);var tv=!1,nv=class extends Xd{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new Zd),this._onBinary=this._register(new X),this.onBinary=this._onBinary.event,this._onData=this._register(new X),this.onData=this._onData.event,this._onLineFeed=this._register(new X),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new X),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new X),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new X),this._instantiationService=new kg,this.optionsService=this._register(new r_(e)),this._instantiationService.setService(md,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(e_)),this._instantiationService.setService(cd,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(Mg)),this._instantiationService.setService(pd,this._logService),this.coreService=this._register(this._instantiationService.createInstance(c_)),this._instantiationService.setService(ud,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(p_)),this._instantiationService.setService(ld,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(y_)),this._instantiationService.setService(gd,this.unicodeService),this._charsetService=this._instantiationService.createInstance(b_),this._instantiationService.setService(dd,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(ev),this._instantiationService.setService(hd,this._oscLinkService),this._inputHandler=this._register(new q_(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(af.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(af.forward(this._bufferService.onResize,this._onResize)),this._register(af.forward(this.coreService.onData,this._onData)),this._register(af.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom(!0))),this._register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this._register(this.optionsService.onMultipleOptionChange([`windowsMode`,`windowsPty`],()=>this._handleWindowsPtyOptionChange())),this._register(this._bufferService.onScroll(()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this._register(new $_((e,t)=>this._inputHandler.parse(e,t))),this._register(af.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new X),this._onScroll.event(e=>{this._onScrollApi?.fire(e.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(let t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=3&&!tv&&(this._logService.warn(`writeSync is unreliable and will be removed soon.`),tv=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,Qg),t=Math.max(t,$g),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t){this._bufferService.scrollLines(e,t)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,t=this.optionsService.rawOptions.windowsPty;t&&t.buildNumber!==void 0&&t.buildNumber!==void 0?e=t.backend===`conpty`&&t.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let e=[];e.push(this.onLineFeed(x_.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:`H`},()=>(x_(this._bufferService),!1))),this._windowsWrappingHeuristics.value=qd(()=>{for(let t of e)t.dispose()})}}},rv={48:[`0`,`)`],49:[`1`,`!`],50:[`2`,`@`],51:[`3`,`#`],52:[`4`,`$`],53:[`5`,`%`],54:[`6`,`^`],55:[`7`,`&`],56:[`8`,`*`],57:[`9`,`(`],186:[`;`,`:`],187:[`=`,`+`],188:[`,`,`<`],189:[`-`,`_`],190:[`.`,`>`],191:[`/`,`?`],192:["`",`~`],219:[`[`,`{`],220:[`\\`,`|`],221:[`]`,`}`],222:[`'`,`"`]};function iv(e,t,n,r){let i={type:0,cancel:!1,key:void 0},a=+!!e.shiftKey|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:e.key===`UIKeyInputUpArrow`?i.key=t?Q.ESC+`OA`:Q.ESC+`[A`:e.key===`UIKeyInputLeftArrow`?i.key=t?Q.ESC+`OD`:Q.ESC+`[D`:e.key===`UIKeyInputRightArrow`?i.key=t?Q.ESC+`OC`:Q.ESC+`[C`:e.key===`UIKeyInputDownArrow`&&(i.key=t?Q.ESC+`OB`:Q.ESC+`[B`);break;case 8:i.key=e.ctrlKey?`\b`:Q.DEL,e.altKey&&(i.key=Q.ESC+i.key);break;case 9:if(e.shiftKey){i.key=Q.ESC+`[Z`;break}i.key=Q.HT,i.cancel=!0;break;case 13:i.key=e.altKey?Q.ESC+Q.CR:Q.CR,i.cancel=!0;break;case 27:i.key=Q.ESC,e.altKey&&(i.key=Q.ESC+Q.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;i.key=a?Q.ESC+`[1;`+(a+1)+`D`:t?Q.ESC+`OD`:Q.ESC+`[D`;break;case 39:if(e.metaKey)break;i.key=a?Q.ESC+`[1;`+(a+1)+`C`:t?Q.ESC+`OC`:Q.ESC+`[C`;break;case 38:if(e.metaKey)break;i.key=a?Q.ESC+`[1;`+(a+1)+`A`:t?Q.ESC+`OA`:Q.ESC+`[A`;break;case 40:if(e.metaKey)break;i.key=a?Q.ESC+`[1;`+(a+1)+`B`:t?Q.ESC+`OB`:Q.ESC+`[B`;break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=Q.ESC+`[2~`);break;case 46:i.key=a?Q.ESC+`[3;`+(a+1)+`~`:Q.ESC+`[3~`;break;case 36:i.key=a?Q.ESC+`[1;`+(a+1)+`H`:t?Q.ESC+`OH`:Q.ESC+`[H`;break;case 35:i.key=a?Q.ESC+`[1;`+(a+1)+`F`:t?Q.ESC+`OF`:Q.ESC+`[F`;break;case 33:e.shiftKey?i.type=2:i.key=e.ctrlKey?Q.ESC+`[5;`+(a+1)+`~`:Q.ESC+`[5~`;break;case 34:e.shiftKey?i.type=3:i.key=e.ctrlKey?Q.ESC+`[6;`+(a+1)+`~`:Q.ESC+`[6~`;break;case 112:i.key=a?Q.ESC+`[1;`+(a+1)+`P`:Q.ESC+`OP`;break;case 113:i.key=a?Q.ESC+`[1;`+(a+1)+`Q`:Q.ESC+`OQ`;break;case 114:i.key=a?Q.ESC+`[1;`+(a+1)+`R`:Q.ESC+`OR`;break;case 115:i.key=a?Q.ESC+`[1;`+(a+1)+`S`:Q.ESC+`OS`;break;case 116:i.key=a?Q.ESC+`[15;`+(a+1)+`~`:Q.ESC+`[15~`;break;case 117:i.key=a?Q.ESC+`[17;`+(a+1)+`~`:Q.ESC+`[17~`;break;case 118:i.key=a?Q.ESC+`[18;`+(a+1)+`~`:Q.ESC+`[18~`;break;case 119:i.key=a?Q.ESC+`[19;`+(a+1)+`~`:Q.ESC+`[19~`;break;case 120:i.key=a?Q.ESC+`[20;`+(a+1)+`~`:Q.ESC+`[20~`;break;case 121:i.key=a?Q.ESC+`[21;`+(a+1)+`~`:Q.ESC+`[21~`;break;case 122:i.key=a?Q.ESC+`[23;`+(a+1)+`~`:Q.ESC+`[23~`;break;case 123:i.key=a?Q.ESC+`[24;`+(a+1)+`~`:Q.ESC+`[24~`;break;default:if(e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)e.keyCode>=65&&e.keyCode<=90?i.key=String.fromCharCode(e.keyCode-64):e.keyCode===32?i.key=Q.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=Q.DEL:e.keyCode===219?i.key=Q.ESC:e.keyCode===220?i.key=Q.FS:e.keyCode===221&&(i.key=Q.GS);else if((!n||r)&&e.altKey&&!e.metaKey){let t=rv[e.keyCode]?.[+!!e.shiftKey];if(t)i.key=Q.ESC+t;else if(e.keyCode>=65&&e.keyCode<=90){let t=e.ctrlKey?e.keyCode-64:e.keyCode+32,n=String.fromCharCode(t);e.shiftKey&&(n=n.toUpperCase()),i.key=Q.ESC+n}else if(e.keyCode===32)i.key=Q.ESC+(e.ctrlKey?Q.NUL:` `);else if(e.key===`Dead`&&e.code.startsWith(`Key`)){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),i.key=Q.ESC+t,i.cancel=!0}}else n&&!e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.metaKey?e.keyCode===65&&(i.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&e.key.length===1?i.key=e.key:e.key&&e.ctrlKey&&(e.key===`_`&&(i.key=Q.US),e.key===`@`&&(i.key=Q.NUL))}return i}var av=0,ov=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new Kh,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new Kh,this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(e){this._flushCleanupDeleted(),this._insertedValues.length===0&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(e)}_flushInserted(){let e=this._insertedValues.sort((e,t)=>this._getKey(e)-this._getKey(t)),t=0,n=0,r=Array(this._array.length+this._insertedValues.length);for(let i=0;i<r.length;i++)n>=this._array.length||this._getKey(e[t])<=this._getKey(this._array[n])?(r[i]=e[t],t++):r[i]=this._array[n++];this._array=r,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(e){if(this._flushCleanupInserted(),this._array.length===0)return!1;let t=this._getKey(e);if(t===void 0||(av=this._search(t),av===-1)||this._getKey(this._array[av])!==t)return!1;do if(this._array[av]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(av),!0;while(++av<this._array.length&&this._getKey(this._array[av])===t);return!1}_flushDeleted(){this._isFlushingDeleted=!0;let e=this._deletedIndices.sort((e,t)=>e-t),t=0,n=Array(this._array.length-e.length),r=0;for(let i=0;i<this._array.length;i++)e[t]===i?t++:n[r++]=this._array[i];this._array=n,this._deletedIndices.length=0,this._isFlushingDeleted=!1}_flushCleanupDeleted(){!this._isFlushingDeleted&&this._deletedIndices.length>0&&this._flushDeletedTask.flush()}*getKeyIterator(e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(av=this._search(e),!(av<0||av>=this._array.length)&&this._getKey(this._array[av])===e))do yield this._array[av];while(++av<this._array.length&&this._getKey(this._array[av])===e)}forEachByKey(e,t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(av=this._search(e),!(av<0||av>=this._array.length)&&this._getKey(this._array[av])===e))do t(this._array[av]);while(++av<this._array.length&&this._getKey(this._array[av])===e)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(e){let t=0,n=this._array.length-1;for(;n>=t;){let r=t+n>>1,i=this._getKey(this._array[r]);if(i>e)n=r-1;else if(i<e)t=r+1;else{for(;r>0&&this._getKey(this._array[r-1])===e;)r--;return r}}return t}},sv=0,cv=0,lv=class extends Xd{constructor(){super(),this._decorations=new ov(e=>e?.marker.line),this._onDecorationRegistered=this._register(new X),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new X),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(qd(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new uv(e);if(t){let e=t.marker.onDispose(()=>t.dispose()),n=t.onDispose(()=>{n.dispose(),t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())});this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,n){let r=0,i=0;for(let a of this._decorations.getKeyIterator(t))r=a.options.x??0,i=r+(a.options.width??1),e>=r&&e<i&&(!n||(a.options.layer??`bottom`)===n)&&(yield a)}forEachDecorationAtCell(e,t,n,r){this._decorations.forEachByKey(t,t=>{sv=t.options.x??0,cv=sv+(t.options.width??1),e>=sv&&e<cv&&(!n||(t.options.layer??`bottom`)===n)&&r(t)})}},uv=class extends Yd{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new X),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new X),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=`full`)}get backgroundColorRGB(){return this._cachedBg===null&&(this._cachedBg=this.options.backgroundColor?qm.toColor(this.options.backgroundColor):void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this._cachedFg=this.options.foregroundColor?qm.toColor(this.options.foregroundColor):void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},dv=1e3,fv=class{constructor(e,t=dv){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,n){this._rowCount=n,e=e===void 0?0:e,t=t===void 0?this._rowCount-1:t,this._rowStart=this._rowStart===void 0?e:Math.min(this._rowStart,e),this._rowEnd=this._rowEnd===void 0?t:Math.max(this._rowEnd,t);let r=performance.now();if(r-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=r,this._innerRefresh();else if(!this._additionalRefreshRequested){let e=r-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},t)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}},pv=20,mv=class extends Xd{constructor(e,t,n,r){super(),this._terminal=e,this._coreBrowserService=n,this._renderService=r,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=``;let i=this._coreBrowserService.mainDocument;this._accessibilityContainer=i.createElement(`div`),this._accessibilityContainer.classList.add(`xterm-accessibility`),this._rowContainer=i.createElement(`div`),this._rowContainer.setAttribute(`role`,`list`),this._rowContainer.classList.add(`xterm-accessibility-tree`),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=i.createElement(`div`),this._liveRegion.classList.add(`live-region`),this._liveRegion.setAttribute(`aria-live`,`assertive`),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new fv(this._renderRows.bind(this))),!this._terminal.element)throw Error(`Cannot enable accessibility before Terminal.open`);this._terminal.element.insertAdjacentElement(`afterbegin`,this._accessibilityContainer),this._register(this._terminal.onResize(e=>this._handleResize(e.rows))),this._register(this._terminal.onRender(e=>this._refreshRows(e.start,e.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(e=>this._handleChar(e))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
|
|
36
|
+
`))),this._register(this._terminal.onA11yTab(e=>this._handleTab(e))),this._register(this._terminal.onKey(e=>this._handleKey(e.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(Z(i,`selectionchange`,()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(qd(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(` `)}_handleChar(e){this._liveRegionLineCount<pv+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
|
|
37
|
+
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===pv+1&&(this._liveRegion.textContent+=zu.get())))}_clearLiveRegion(){this._liveRegion.textContent=``,this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){let n=this._terminal.buffer,r=n.lines.length.toString();for(let i=e;i<=t;i++){let e=n.lines.get(n.ydisp+i),t=[],a=e?.translateToString(!0,void 0,void 0,t)||``,o=(n.ydisp+i+1).toString(),s=this._rowElements[i];s&&(a.length===0?(s.textContent=`\xA0`,this._rowColumns.set(s,[0,1])):(s.textContent=a,this._rowColumns.set(s,t)),s.setAttribute(`aria-posinset`,o),s.setAttribute(`aria-setsize`,r),this._alignRowWidth(s))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=``)}_handleBoundaryFocus(e,t){let n=e.target,r=this._rowElements[t===0?1:this._rowElements.length-2];if(n.getAttribute(`aria-posinset`)===(t===0?`1`:`${this._terminal.buffer.lines.length}`)||e.relatedTarget!==r)return;let i,a;if(t===0?(i=n,a=this._rowElements.pop(),this._rowContainer.removeChild(a)):(i=this._rowElements.shift(),a=n,this._rowContainer.removeChild(i)),i.removeEventListener(`focus`,this._topBoundaryFocusListener),a.removeEventListener(`focus`,this._bottomBoundaryFocusListener),t===0){let e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(`afterbegin`,e)}else{let e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error(`anchorNode and/or focusNode are null`);return}let t={node:e.anchorNode,offset:e.anchorOffset},n={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(n.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===n.node&&t.offset>n.offset)&&([t,n]=[n,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;let r=this._rowElements.slice(-1)[0];if(n.node.compareDocumentPosition(r)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(n={node:r,offset:r.textContent?.length??0}),!this._rowContainer.contains(n.node))return;let i=({node:e,offset:t})=>{let n=e instanceof Text?e.parentNode:e,r=parseInt(n?.getAttribute(`aria-posinset`),10)-1;if(isNaN(r))return console.warn(`row is invalid. Race condition?`),null;let i=this._rowColumns.get(n);if(!i)return console.warn(`columns is null. Race condition?`),null;let a=t<i.length?i[t]:i.slice(-1)[0]+1;return a>=this._terminal.cols&&(++r,a=0),{row:r,column:a}},a=i(t),o=i(n);if(!(!a||!o)){if(a.row>o.row||a.row===o.row&&a.column>=o.column)throw Error(`invalid range`);this._terminal.select(a.column,a.row,(o.row-a.row)*this._terminal.cols-a.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(`focus`,this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement(`div`);return e.setAttribute(`role`,`listitem`),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e]),this._alignRowWidth(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(e){e.style.transform=``;let t=e.getBoundingClientRect().width,n=this._rowColumns.get(e)?.slice(-1)?.[0];if(!n)return;let r=n*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${r/t})`}};mv=Fu([J(1,fd),J(2,xd),J(3,Y)],mv);var hv=class extends Xd{constructor(e,t,n,r,i){super(),this._element=e,this._mouseService=t,this._renderService=n,this._bufferService=r,this._linkProviderService=i,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new X),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new X),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(qd(()=>{Gd(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(Z(this._element,`mouseleave`,()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(Z(this._element,`mousemove`,this._handleMouseMove.bind(this))),this._register(Z(this._element,`mousedown`,this._handleMouseDown.bind(this))),this._register(Z(this._element,`mouseup`,this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;let n=e.composedPath();for(let e=0;e<n.length;e++){let t=n[e];if(t.classList.contains(`xterm`))break;if(t.classList.contains(`xterm-hover`))return}(!this._lastBufferCell||t.x!==this._lastBufferCell.x||t.y!==this._lastBufferCell.y)&&(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized){this._clearCurrentLink(),this._askForLink(e,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){(!this._activeProviderReplies||!t)&&(this._activeProviderReplies?.forEach(e=>{e?.forEach(e=>{e.link.dispose&&e.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let n=!1;for(let[r,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(r)&&(n=this._checkLinkProviderResult(r,e,n)):i.provideLinks(e.y,t=>{if(this._isMouseOut)return;let i=t?.map(e=>({link:e}));this._activeProviderReplies?.set(r,i),n=this._checkLinkProviderResult(r,e,n),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let n=new Set;for(let r=0;r<t.size;r++){let i=t.get(r);if(i)for(let t=0;t<i.length;t++){let r=i[t],a=r.link.range.start.y<e?0:r.link.range.start.x,o=r.link.range.end.y>e?this._bufferService.cols:r.link.range.end.x;for(let e=a;e<=o;e++){if(n.has(e)){i.splice(t--,1);break}n.add(e)}}}}_checkLinkProviderResult(e,t,n){if(!this._activeProviderReplies)return n;let r=this._activeProviderReplies.get(e),i=!1;for(let t=0;t<e;t++)(!this._activeProviderReplies.has(t)||this._activeProviderReplies.get(t))&&(i=!0);if(!i&&r){let e=r.find(e=>this._linkAtPosition(e.link,t));e&&(n=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!n)for(let e=0;e<this._activeProviderReplies.size;e++){let r=this._activeProviderReplies.get(e)?.find(e=>this._linkAtPosition(e.link,t));if(r){n=!0,this._handleNewLink(r);break}}return n}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink&&gv(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){!this._currentLink||!this._lastMouseEvent||(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,Gd(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0||e.link.decorations.underline,pointerCursor:e.link.decorations===void 0||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(`xterm-cursor-pointer`,e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(e=>{if(!this._currentLink)return;let t=e.start===0?0:e.start+1+this._bufferService.buffer.ydisp,n=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=n&&(this._clearCurrentLink(t,n),this._lastMouseEvent)){let e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}})))}_linkHover(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(`xterm-cursor-pointer`)),t.hover&&t.hover(n,t.text)}_fireUnderlineEvent(e,t){let n=e.range,r=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(n.start.x-1,n.start.y-r-1,n.end.x,n.end.y-r-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(i)}_linkLeave(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(`xterm-cursor-pointer`)),t.leave&&t.leave(n,t.text)}_linkAtPosition(e,t){let n=e.range.start.y*this._bufferService.cols+e.range.start.x,r=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return n<=i&&i<=r}_positionFromMouseEvent(e,t,n){let r=n.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(r)return{x:r[0],y:r[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,n,r,i){return{x1:e,y1:t,x2:n,y2:r,cols:this._bufferService.cols,fg:i}}};hv=Fu([J(1,Sd),J(2,Y),J(3,cd),J(4,Ed)],hv);function gv(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}var _v=class extends nv{constructor(e={}){super(e),this._linkifier=this._register(new Zd),this.browser=kh,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new Zd),this._onCursorMove=this._register(new X),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new X),this.onKey=this._onKey.event,this._onRender=this._register(new X),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new X),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new X),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new X),this.onBell=this._onBell.event,this._onFocus=this._register(new X),this._onBlur=this._register(new X),this._onA11yCharEmitter=this._register(new X),this._onA11yTabEmitter=this._register(new X),this._onWillOpen=this._register(new X),this._setup(),this._decorationService=this._instantiationService.createInstance(lv),this._instantiationService.setService(_d,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(wh),this._instantiationService.setService(Ed,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(vd)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(e=>this.refresh(e?.start??0,e?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(e=>this._reportWindowsOptions(e))),this._register(this._inputHandler.onColor(e=>this._handleColorEvent(e))),this._register(af.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(af.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(af.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(af.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(e=>this._afterResize(e.cols,e.rows))),this._register(qd(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let t of e){let e,n=``;switch(t.index){case 256:e=`foreground`,n=`10`;break;case 257:e=`background`,n=`11`;break;case 258:e=`cursor`,n=`12`;break;default:e=`ansi`,n=`4;`+t.index}switch(t.type){case 0:let r=Km.toColorRGB(e===`ansi`?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${Q.ESC}]${n};${B_(r)}${Rm.ST}`);break;case 1:if(e===`ansi`)this._themeService.modifyColors(e=>e.ansi[t.index]=Gm.toColor(...t.color));else{let n=e;this._themeService.modifyColors(e=>e[n]=Gm.toColor(...t.color))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(mv,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Q.ESC+`[I`),this.element.classList.add(`focus`),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=``,this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Q.ESC+`[O`),this.element.classList.remove(`focus`),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;let n=Math.min(this.buffer.x,this.cols-1),r=this._renderService.dimensions.css.cell.height,i=t.getWidth(n),a=this._renderService.dimensions.css.cell.width*i,o=this.buffer.y*this._renderService.dimensions.css.cell.height,s=n*this._renderService.dimensions.css.cell.width;this.textarea.style.left=s+`px`,this.textarea.style.top=o+`px`,this.textarea.style.width=a+`px`,this.textarea.style.height=r+`px`,this.textarea.style.lineHeight=r+`px`,this.textarea.style.zIndex=`-5`}_initGlobal(){this._bindKeys(),this._register(Z(this.element,`copy`,e=>{this.hasSelection()&&Hu(e,this._selectionService)}));let e=e=>Uu(e,this.textarea,this.coreService,this.optionsService);this._register(Z(this.textarea,`paste`,e)),this._register(Z(this.element,`paste`,e)),Nh?this._register(Z(this.element,`mousedown`,e=>{e.button===2&&Ku(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(Z(this.element,`contextmenu`,e=>{Ku(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Vh&&this._register(Z(this.element,`auxclick`,e=>{e.button===1&&Gu(e,this.textarea,this.screenElement)}))}_bindKeys(){this._register(Z(this.textarea,`keyup`,e=>this._keyUp(e),!0)),this._register(Z(this.textarea,`keydown`,e=>this._keyDown(e),!0)),this._register(Z(this.textarea,`keypress`,e=>this._keyPress(e),!0)),this._register(Z(this.textarea,`compositionstart`,()=>this._compositionHelper.compositionstart())),this._register(Z(this.textarea,`compositionupdate`,e=>this._compositionHelper.compositionupdate(e))),this._register(Z(this.textarea,`compositionend`,()=>this._compositionHelper.compositionend())),this._register(Z(this.textarea,`input`,e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw Error(`Terminal requires a parent element.`);if(e.isConnected||this._logService.debug(`Terminal.open was called on an element that was not attached to the DOM`),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(`div`),this.element.dir=`ltr`,this.element.classList.add(`terminal`),this.element.classList.add(`xterm`),e.appendChild(this.element);let t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(`div`),this._viewportElement.classList.add(`xterm-viewport`),t.appendChild(this._viewportElement),this.screenElement=this._document.createElement(`div`),this.screenElement.classList.add(`xterm-screen`),this._register(Z(this.screenElement,`mousemove`,e=>this.updateCursorStyle(e))),this._helperContainer=this._document.createElement(`div`),this._helperContainer.classList.add(`xterm-helpers`),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement);let n=this.textarea=this._document.createElement(`textarea`);this.textarea.classList.add(`xterm-helper-textarea`),this.textarea.setAttribute(`aria-label`,Lu.get()),Hh||this.textarea.setAttribute(`aria-multiline`,`false`),this.textarea.setAttribute(`autocorrect`,`off`),this.textarea.setAttribute(`autocapitalize`,`off`),this.textarea.setAttribute(`spellcheck`,`false`),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange(`disableStdin`,()=>n.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(Sh,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<`u`?window.document:null)),this._instantiationService.setService(xd,this._coreBrowserService),this._register(Z(this.textarea,`focus`,e=>this._handleTextAreaFocus(e))),this._register(Z(this.textarea,`blur`,()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(vh,this._document,this._helperContainer),this._instantiationService.setService(bd,this._charSizeService),this._themeService=this._instantiationService.createInstance(Eg),this._instantiationService.setService(Td,this._themeService),this._characterJoinerService=this._instantiationService.createInstance($m),this._instantiationService.setService(wd,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(Jh,this.rows,this.screenElement)),this._instantiationService.setService(Y,this._renderService),this._register(this._renderService.onRenderedViewportChange(e=>this._onRender.fire(e))),this.onResize(e=>this._renderService.resize(e.cols,e.rows)),this._compositionView=this._document.createElement(`div`),this._compositionView.classList.add(`composition-view`),this._compositionHelper=this._instantiationService.createInstance(zm,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(Dh),this._instantiationService.setService(Sd,this._mouseService);let r=this._linkifier.value=this._register(this._instantiationService.createInstance(hv,this.screenElement));this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(Am,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(e=>{super.scrollLines(e,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(gg,this.element,this.screenElement,r)),this._instantiationService.setService(Cd,this._selectionService),this._register(this._selectionService.onRequestScrollLines(e=>this.scrollLines(e.amount,e.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()})),this._register(af.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(jm,this.screenElement)),this._register(Z(this.element,`mousedown`,e=>this._selectionService.handleMouseDown(e))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(`enable-mouse-events`)):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(mv,this)),this._register(this.optionsService.onSpecificOptionChange(`screenReaderMode`,e=>this._handleScreenReaderModeOptionChange(e))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(Im,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(`overviewRuler`,e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(Im,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_h,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function n(t){let n=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!n)return!1;let r,i;switch(t.overrideType||t.type){case`mousemove`:i=32,t.buttons===void 0?(r=3,t.button!==void 0&&(r=t.button<3?t.button:3)):r=t.buttons&1?0:t.buttons&4?1:t.buttons&2?2:3;break;case`mouseup`:i=0,r=t.button<3?t.button:3;break;case`mousedown`:i=1,r=t.button<3?t.button:3;break;case`wheel`:if(e._customWheelEventHandler&&e._customWheelEventHandler(t)===!1)return!1;let n=t.deltaY;if(n===0||e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;i=n<0?0:1,r=4;break;default:return!1}return i===void 0||r===void 0||r>4?!1:e.coreMouseService.triggerMouseEvent({col:n.col,row:n.row,x:n.x,y:n.y,button:r,action:i,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}let r={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:e=>(n(e),e.buttons||(this._document.removeEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.removeEventListener(`mousemove`,r.mousedrag)),this.cancel(e)),wheel:e=>(n(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&n(e)},mousemove:e=>{e.buttons||n(e)}};this._register(this.coreMouseService.onProtocolChange(e=>{e?(this.optionsService.rawOptions.logLevel===`debug`&&this._logService.debug(`Binding to mouse events:`,this.coreMouseService.explainEvents(e)),this.element.classList.add(`enable-mouse-events`),this._selectionService.disable()):(this._logService.debug(`Unbinding from mouse events.`),this.element.classList.remove(`enable-mouse-events`),this._selectionService.enable()),e&8?r.mousemove||=(t.addEventListener(`mousemove`,i.mousemove),i.mousemove):(t.removeEventListener(`mousemove`,r.mousemove),r.mousemove=null),e&16?r.wheel||=(t.addEventListener(`wheel`,i.wheel,{passive:!1}),i.wheel):(t.removeEventListener(`wheel`,r.wheel),r.wheel=null),e&2?r.mouseup||=i.mouseup:(this._document.removeEventListener(`mouseup`,r.mouseup),r.mouseup=null),e&4?r.mousedrag||=i.mousedrag:(this._document.removeEventListener(`mousemove`,r.mousedrag),r.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(Z(t,`mousedown`,e=>{if(e.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(e)))return n(e),r.mouseup&&this._document.addEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.addEventListener(`mousemove`,r.mousedrag),this.cancel(e)})),this._register(Z(t,`wheel`,t=>{if(!r.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(t)===!1)return!1;if(!this.buffer.hasScrollback){if(t.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(t,!0);let n=Q.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?`O`:`[`)+(t.deltaY<0?`A`:`B`);return this.coreService.triggerDataEvent(n,!0),this.cancel(t,!0)}}},{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(`column-select`):this.element.classList.remove(`column-select`)}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,t),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}paste(e){Wu(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);let t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,t,n){this._selectionService.setSelection(e,t,n)}getSelection(){return this._selectionService?this._selectionService.selectionText:``}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!t&&(e.key===`Dead`||e.key===`AltGraph`)&&(this._unprocessedDeadKey=!0);let n=iv(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),n.type===3||n.type===2){let t=this.rows-1;return this.scrollLines(n.type===2?-t:t),this.cancel(e,!0)}if(n.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(n.cancel&&this.cancel(e,!0),!n.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((n.key===Q.ETX||n.key===Q.CR)&&(this.textarea.value=``),this._onKey.fire({key:n.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(n.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,t){let n=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(`AltGraph`);return t.type===`keypress`?n:n&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(vv(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(e.which===null||e.which===void 0)t=e.keyCode;else if(e.which!==0&&e.charCode!==0)t=e.which;else return!1;return!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType===`insertText`&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){if(e===this.cols&&t===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,t)}_afterResize(e,t){this._charSizeService?.measure()}clear(){if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(Ig));this._onScroll.fire({position:this.buffer.ydisp}),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains(`focus`)?this.coreService.triggerDataEvent(Q.ESC+`[I`):this.coreService.triggerDataEvent(Q.ESC+`[O`)}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${Q.ESC}[4;${t};${e}t`);break;case 1:let n=this._renderService.dimensions.css.cell.width.toFixed(0),r=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${Q.ESC}[6;${r};${n}t`)}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function vv(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var yv=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){let n={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(n),t.dispose=()=>this._wrappedAddonDispose(n),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let n=0;n<this._addons.length;n++)if(this._addons[n]===e){t=n;break}if(t===-1)throw Error(`Could not dispose an addon that has not been loaded`);e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},bv=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new td)}translateToString(e,t,n){return this._line.translateToString(e,t,n)}},xv=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){let t=this._buffer.lines.get(e);if(t)return new bv(t)}getNullCell(){return new td}},Sv=class extends Xd{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new X),this.onBufferChange=this._onBufferChange.event,this._normal=new xv(this._core.buffers.normal,`normal`),this._alternate=new xv(this._core.buffers.alt,`alternate`),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw Error(`Active buffer is neither normal nor alternate`)}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}},Cv=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,e=>t(e.toArray()))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,(e,n)=>t(e,n.toArray()))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}},wv=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}},Tv=[`cols`,`rows`],Ev=0,Dv=class extends Xd{constructor(e){super(),this._core=this._register(new _v(e)),this._addonManager=this._register(new yv),this._publicOptions={...this._core.options};let t=e=>this._core.options[e],n=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(let e in this._core.options){let r={get:t.bind(this,e),set:n.bind(this,e)};Object.defineProperty(this._publicOptions,e,r)}}_checkReadonlyOptions(e){if(Tv.includes(e))throw Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw Error(`You must set the allowProposedApi option to true to use proposed API`)}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||=new Cv(this._core),this._parser}get unicode(){return this._checkProposedApi(),new wv(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||=this._register(new Sv(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,t=`none`;switch(this._core.coreMouseService.activeProtocol){case`X10`:t=`x10`;break;case`VT200`:t=`vt200`;break;case`DRAG`:t=`drag`;break;case`ANY`:t=`any`}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,synchronizedOutputMode:e.synchronizedOutput,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(let t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,n){this._verifyIntegers(e,t,n),this._core.select(e,t,n)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(`\r
|
|
38
|
+
`,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return Lu.get()},set promptLabel(e){Lu.set(e)},get tooMuchOutput(){return zu.get()},set tooMuchOutput(e){zu.set(e)}}}_verifyIntegers(...e){for(Ev of e)if(Ev===1/0||isNaN(Ev)||Ev%1!=0)throw Error(`This API only accepts integers`)}_verifyPositiveIntegers(...e){for(Ev of e)if(Ev&&(Ev===1/0||isNaN(Ev)||Ev%1!=0||Ev<0))throw Error(`This API only accepts positive integers`)}},Ov=class extends Error{code;detail;constructor(e,t,n){super(t),this.code=e,this.detail=n}},kv=[500,1e3,2e3,4e3,8e3,15e3],Av=4e3,jv=1e4,Mv=class{url;token;conn=_({state:`connecting`,hello:null,failures:0});ws=null;nextId=1;pending=new Map;listeners=new Map;openHooks=new Set;retryTimer=null;deadline=null;constructor(e,t){this.url=e,this.token=t}start(){this.connect();let e=()=>{document.visibilityState===`visible`&&this.checkNow()};document.addEventListener(`visibilitychange`,e),window.addEventListener(`online`,e),window.addEventListener(`pageshow`,e)}checkNow(){if(this.retryTimer!==null){this.retryNow();return}let e=this.ws;!e||this.conn.get().state!==`open`||this.deadline!==null||(this.armDeadline(e,Av),this.request(`hello`).then(()=>this.clearDeadline(),e=>{e instanceof Ov&&e.code!==`NOT_CONNECTED`&&this.clearDeadline()}))}armDeadline(e,t){this.clearDeadline(),this.deadline=window.setTimeout(()=>this.lost(e),t)}clearDeadline(){this.deadline!==null&&window.clearTimeout(this.deadline),this.deadline=null}onOpen(e){return this.openHooks.add(e),this.conn.get().state===`open`&&e(),()=>this.openHooks.delete(e)}on(e,t){let n=this.listeners.get(e);return n||(n=new Set,this.listeners.set(e,n)),n.add(t),()=>n.delete(t)}request(e,t={},n){let r=this.ws;if(!r||r.readyState!==WebSocket.OPEN)return Promise.reject(new Ov(`NOT_CONNECTED`,`not connected to rove`));let i=this.nextId++;return new Promise((a,o)=>{this.pending.set(i,{resolve:e=>a(e),reject:o,progress:n}),r.send(JSON.stringify({id:i,op:e,args:t}))})}connect(){this.retryTimer=null;let e=za(this.url,[`rove.v1`,`rove.bearer.${this.token}`]);this.ws=e,this.armDeadline(e,jv),e.onmessage=e=>this.receive(String(e.data)),e.onopen=()=>{this.request(`hello`).then(e=>{this.clearDeadline(),this.conn.set({state:`open`,hello:e,failures:0});for(let e of this.openHooks)e()},()=>this.lost(e))},e.onclose=()=>this.lost(e)}lost(e){if(this.ws!==e)return;this.ws=null,this.clearDeadline(),e.onopen=null,e.onclose=null,e.onmessage=null,e.close();for(let e of this.pending.values())e.reject(new Ov(`NOT_CONNECTED`,`connection lost`));this.pending.clear();let t=this.conn.get().failures+1;this.conn.set({state:`retrying`,hello:this.conn.get().hello,failures:t});let n=kv[Math.min(t-1,kv.length-1)];this.retryTimer=window.setTimeout(()=>this.connect(),n)}receive(e){let t;try{t=JSON.parse(e)}catch{return}if(!t||typeof t!=`object`)return;if(`event`in t&&typeof t.event==`string`){let e=`data`in t?t.data:void 0;if(t.event===`op.progress`){let t=e;typeof t?.id==`number`&&typeof t.line==`string`&&this.pending.get(t.id)?.progress?.(t.line);return}for(let n of this.listeners.get(t.event)??[])n(e);return}if(!(`id`in t)||typeof t.id!=`number`)return;let n=this.pending.get(t.id);if(!n)return;if(this.pending.delete(t.id),`ok`in t&&t.ok===!0){n.resolve(`result`in t?t.result:void 0);return}let r=`error`in t&&t.error&&typeof t.error==`object`?t.error:{},i=`code`in r&&typeof r.code==`string`?r.code:`INTERNAL`,a=`message`in r&&typeof r.message==`string`?r.message:i;n.reject(new Ov(i,a,r))}retryNow(){this.retryTimer!==null&&(window.clearTimeout(this.retryTimer),this.connect())}};function Nv(){return`${window.location.protocol===`https:`?`wss:`:`ws:`}//${window.location.host}/ws`}function Pv(e,t){return e===`auto`?t?`dark`:`light`:e}function Fv(e,t,n){let r=e.find(e=>e.name===t)??e.find(e=>e.name===`claude`);return r?r[n]:null}var Iv=e=>[1,3,5].map(t=>Number.parseInt(e.slice(t,t+2),16));function Lv(e){let[t=0,n=0,r=0]=Iv(e).map(e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function Rv(e,t){let[n=0,r=0]=[Lv(e),Lv(t)].sort((e,t)=>t-e);return(n+.05)/(r+.05)}var zv=4.5,Bv=1.1;function Vv(e,t,n){let r=e=>t.every(t=>Rv(e,t)>=n(t));if(r(e))return e;let i=Iv(e),a=Lv(t[0])<.18?255:0;for(let e=.02;e<1;e+=.02){let t=i.map(t=>Math.round(t+(a-t)*e).toString(16).padStart(2,`0`)).join(``);if(r(`#${t}`))return`#${t}`}return a?`#ffffff`:`#000000`}function Hv(e){let t=[e.background,e.backgroundPanel,e.backgroundElement,e.backgroundMenu],n=Vv(e.diffLineNumber,t,()=>zv);return{muted:Vv(e.textMuted,t,e=>Math.max(zv,Rv(n,e)*Bv)),subtle:n}}function Uv(e,t){let n=t.colorblind===`on`,r=Hv(e);return{"--paper":e.background,"--surface":e.backgroundPanel,"--inset":e.backgroundElement,"--menu":e.backgroundMenu,"--line":e.border,"--line-active":e.borderActive,"--line-subtle":e.borderSubtle,"--ink":e.text,"--muted":r.muted,"--subtle":r.subtle,"--accent":e.primary,"--error":e.error,"--success":e.success,"--warning":e.warning,"--info":e.info,"--merged":e.syntaxType,"--focus":e[t.focusAccent]??e.primary,"--diff-added":(n?e.diffAddedColorblind:e.diffAdded)??e.diffAdded,"--diff-removed":e.diffRemoved,"--diff-added-bg":(n?e.diffAddedBgColorblind:e.diffAddedBg)??e.diffAddedBg,"--diff-removed-bg":e.diffRemovedBg}}function Wv(e){return{background:e.background,foreground:e.text,cursor:e.primary,cursorAccent:e.background,selectionBackground:e.backgroundMenu,black:e.background,red:e.error,green:e.success,yellow:e.warning,blue:e.info,magenta:e.syntaxType,cyan:e.secondary,white:e.textMuted,brightBlack:e.diffLineNumber,brightRed:e.error,brightGreen:e.success,brightYellow:e.warning,brightBlue:e.info,brightMagenta:e.syntaxType,brightCyan:e.secondary,brightWhite:e.text}}var Gv=_(null),Kv=_(null),qv=`rove.prefs`,Jv={locale:`en`,theme:`claude`,themeMode:`dark`,transparent:!0,focusAccent:`primary`,splitStyle:`line`,railFold:`glyphs`,workingBorder:`flow`,taskColors:`on`,glyphSet:`braille`,colorblind:`off`,runningTitle:`shimmer`,toast:!0,sound:!0,soundVolume:.4,crossTask:!0,finishedAlerts:!0,keyHints:!0,zen:!0,editorKind:`auto`,worktreeBase:`default`,scrollbackRows:1e3,tabStrip:`never`,prefixTap:`local`,remoteProjects:!1,autoStatus:!1,dispatcher:!1,updateChannel:`latest`,updateNotify:!0};function Yv(){try{let e=JSON.parse(localStorage.getItem(qv)??`null`);if(e&&typeof e==`object`&&`prefs`in e&&`themes`in e){let t=e;return{...t,prefs:{...Jv,...t.prefs},loaded:!0}}}catch{}return{loaded:!1,prefs:Jv,options:{},info:{editorCustomSet:!1,worktreeCustomPath:``},themes:[],glyphSets:{}}}var Xv=_(Yv());function Zv(e){(e.locale===`en`||e.locale===`zh`)&&ke.set(e.locale)}Zv(Xv.get().prefs);function Qv(e){let t={loaded:!0,prefs:e.prefs,options:e.options,info:e.info,themes:e.themes,glyphSets:e.glyphSets};Xv.set(t),Zv(t.prefs),localStorage.setItem(qv,JSON.stringify(t))}async function $v(e){Qv(await e.request(`prefs.get`))}async function ey(e,t,n){let r=Xv.get();Xv.set({...r,prefs:{...r.prefs,[t]:n}}),Zv(Xv.get().prefs);try{let r=await e.request(`prefs.set`,{key:t,value:n});Qv({...Xv.get(),prefs:r.prefs})}catch(e){Xv.set(r),Zv(r.prefs),W(e instanceof Error?e.message:String(e),`error`)}}function ty(){return v(Xv)}function ny(e,t){let n=e.options[t];return Array.isArray(n)?n:[]}var ry=900,iy=new WeakMap;function ay(e){e.setAttribute(`data-scrolling`,``),window.clearTimeout(iy.get(e)),iy.set(e,window.setTimeout(()=>e.removeAttribute(`data-scrolling`),ry))}function oy(){document.addEventListener(`scroll`,e=>{let t=e.target instanceof Element?e.target:document.scrollingElement;t&&ay(t)},{capture:!0,passive:!0})}var sy={background:`#141413`,foreground:`#eae7df`,cursor:`#cc785c`,cursorAccent:`#141413`,selectionBackground:`#33312e`,black:`#141413`,red:`#ec6f74`,green:`#9aca86`,yellow:`#e8c96b`,blue:`#61aaf2`,magenta:`#9b87f5`,cyan:`#d4967e`,white:`#a9a39a`,brightBlack:`#6b665f`,brightRed:`#ec6f74`,brightGreen:`#9aca86`,brightYellow:`#e8c96b`,brightBlue:`#61aaf2`,brightMagenta:`#9b87f5`,brightCyan:`#e0ab96`,brightWhite:`#eae7df`},cy=`Rove Nerd Symbols`,ly=[`"JetBrains Mono"`,`"${cy}"`,`"SF Mono"`,`ui-monospace`,`Menlo`,`monospace`].join(`, `),uy=1500;function dy(e,t,n){let r=null,i=null,a=null,o=()=>{let t=e.element?.querySelector(`.xterm-screen`);if(!r||!t||e.rows<=0||e.cols<=0)return;let n=document.createElement(`canvas`).getContext(`2d`);n&&(n.font=`${e.options.fontSize??13}px ${ly}`);let i=n?.measureText(`W`).width??0;r.style.setProperty(`--row-h`,`${t.clientHeight/e.rows}px`),i>0&&(r.style.letterSpacing=`${t.clientWidth/e.cols-i}px`)},s=()=>{r?.remove(),r=null,i?.dispose(),i=null,a!==null&&window.clearTimeout(a),a=null};return{snapshot:()=>n.serializeAsHTML({scrollback:0,includeGlobalBackground:!0}),raise(n){s(),r=document.createElement(`div`),r.className=Lt,r.innerHTML=n,r.style.backgroundColor=(Gv.get()??sy).background??``,t.append(r),o(),requestAnimationFrame(o),i=e.onResize(o),a=window.setTimeout(s,uy)},lower:s,get raised(){return r!==null}}}var fy=``,py=new Intl.Segmenter(void 0,{granularity:`grapheme`}),my=/^(?:insertText|insertReplacementText|insertTranscription|delete\w+|history(?:Undo|Redo))$/;function hy(e,t){let n=Array.from(py.segment(e),e=>e.segment),r=Array.from(py.segment(t),e=>e.segment),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;let a=n.map(e=>/[\r\n]/.test(e)).lastIndexOf(!0)+1;return fy.repeat(n.length-Math.max(i,a))+r.slice(i).join(``)}function gy(e,t,n,r){return!my.test(e)||e===`insertText`&&t&&r===n+t?null:hy(n,r)}function _y(e,t,n){return hy(e+n.substring(t),n)}function vy(e,t){let n=e.textarea,r=e.element;if(!n||!r)return()=>{};let i=``,a=``,o=!1,s=``,c=0,l=!1,u=e=>{(e.keyCode===229||e.key===`Process`||e.key===`Unidentified`)&&(l=!0)},d=()=>{l=!1},f=()=>{a=n.value===i?i:``},p=e=>{let r=e;if(r.target===n){if(r.inputType===`insertFromPaste`)n.value=``;else if(!r.isComposing&&!l){let e=gy(r.inputType,r.data,a,n.value);e!==null&&(r.stopImmediatePropagation(),e&&t(e))}i=a=n.value}},m=()=>{o=!0,s=n.value===i?i:``,c=n.value.length},h=()=>{o=!1;let[e,r]=[s,c];setTimeout(()=>{let s=o?``:_y(e,r,n.value);s&&t(s),i=a=n.value},0)},g=()=>{let{selectionStart:e,selectionEnd:r,value:a}=n;if(e===r||o||a!==i)return;let s=hy(a,a.slice(0,e)+a.slice(r));s&&t(s)},_=()=>{!o&&n.value&&(n.value=``),i=a=n.value,l=!1};r.addEventListener(`keydown`,u,!0),r.addEventListener(`keyup`,d,!0),r.addEventListener(`beforeinput`,f,!0),r.addEventListener(`input`,p,!0),r.addEventListener(`compositionstart`,m,!0),r.addEventListener(`compositionend`,h),r.addEventListener(`paste`,g,!0),n.addEventListener(`blur`,_);let v=e.onKey(_);return()=>{r.removeEventListener(`keydown`,u,!0),r.removeEventListener(`keyup`,d,!0),r.removeEventListener(`beforeinput`,f,!0),r.removeEventListener(`input`,p,!0),r.removeEventListener(`compositionstart`,m,!0),r.removeEventListener(`compositionend`,h),r.removeEventListener(`paste`,g,!0),n.removeEventListener(`blur`,_),v.dispose()}}var yy=2,by=1,xy=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(yy,Math.floor(u/e.css.cell.width)),rows:Math.max(by,Math.floor(l/e.css.cell.height))}}},Sy=class extends xy{term;constructor(e){super(),this.term=e}proposeDimensions(){let e=super.proposeDimensions(),t=this.term.element,n=t?.parentElement,r=this.term._core?._renderService?.dimensions?.css.cell.width;if(!e||!t||!n||!r)return e;let i=getComputedStyle(t),a=Number.parseInt(getComputedStyle(n).width)-Number.parseInt(i.paddingLeft)-Number.parseInt(i.paddingRight);return{cols:Math.max(e.cols,Math.floor(a/r)),rows:e.rows}}},Cy=64,wy=33554432,Ty=27,Ey=new TextDecoder(`latin1`);function Dy(e){let t=new Map;for(let n of e.split(`,`)){let e=n.indexOf(`=`);e>0&&t.set(n.slice(0,e),n.slice(e+1))}return t}function Oy(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}async function ky(e){let t=new Blob([e]).stream().pipeThrough(new DecompressionStream(`deflate`));return new Uint8Array(await new Response(t).arrayBuffer())}async function Ay(e,t){let n=Oy(t);e.get(`o`)===`z`&&(n=await ky(n));let r=e.get(`f`)??`32`;if(r===`100`)return createImageBitmap(new Blob([n],{type:`image/png`}));let i=Number(e.get(`s`)),a=Number(e.get(`v`)),o=r===`24`?3:r===`32`?4:0;if(!o||!(i>0&&a>0)||n.length<i*a*o)return null;let s=new Uint8ClampedArray(i*a*4);for(let e=0;e<i*a;e++)s[e*4]=n[e*o],s[e*4+1]=n[e*o+1],s[e*4+2]=n[e*o+2],s[e*4+3]=o===4?n[e*4+3]:255;return createImageBitmap(new ImageData(s,i,a))}var jy=class{changed;images=new Map;apc=null;apcBytes=0;escPending=!1;upload=null;constructor(e){this.changed=e}push(e){let t=0;for(this.escPending&&e.length>0&&(this.escPending=!1,this.apc&&e[0]===92?(this.finish(),t=1):(this.apc=null,e[0]===95&&(this.apc=[],this.apcBytes=0,t=1)));t<e.length;){let n=e.indexOf(Ty,t);if(this.apc){if(n===-1){this.append(e.subarray(t));return}if(this.append(e.subarray(t,n)),n+1>=e.length){this.escPending=!0;return}e[n+1]===92?this.finish():this.apc=null,t=n+2;continue}if(n===-1)return;if(n+1>=e.length){this.escPending=!0;return}e[n+1]===95?(this.apc=[],this.apcBytes=0,t=n+2):t=n+1}}append(e){!this.apc||e.length===0||(this.apcBytes+=e.length,this.apcBytes>wy?this.apc=null:this.apc.push(e.slice()))}finish(){let e=this.apc;if(this.apc=null,!e)return;let t=e.map(e=>Ey.decode(e)).join(``);if(t[0]!==`G`)return;let n=t.indexOf(`;`),r=Dy(n===-1?t.slice(1):t.slice(1,n));this.command(r,n===-1?``:t.slice(n+1))}command(e,t){if(this.upload&&[...e.keys()].every(e=>e===`m`||e===`q`)){if(this.upload.parts.push(t),e.get(`m`)!==`1`){let{keys:e,parts:t}=this.upload;this.upload=null,this.transmitted(e,t.join(``))}return}this.upload=null;let n=e.get(`a`)??`t`;if(n===`t`||n===`T`){if((e.get(`t`)??`d`)!==`d`)return;e.get(`m`)===`1`?this.upload={keys:e,parts:[t]}:this.transmitted(e,t)}else n===`p`?this.placed(e):n===`d`&&this.deleted(e)}entry(e){let t=this.images.get(e)??{cols:null,rows:null,bitmap:null};this.images.delete(e),this.images.set(e,t);for(let e of this.images.keys()){if(this.images.size<=Cy)break;this.images.get(e)?.bitmap?.close(),this.images.delete(e)}return t}transmitted(e,t){let n=Number(e.get(`i`));if(!(n>0))return;let r=this.entry(n);e.get(`a`)===`T`&&this.placed(e),Ay(e,t).then(e=>{if(e){if(this.images.get(n)!==r)return e.close();r.bitmap?.close(),r.bitmap=e,this.changed()}}).catch(()=>{})}placed(e){let t=Number(e.get(`i`));if(!(t>0)||e.get(`U`)!==`1`)return;let n=this.entry(t),r=Number(e.get(`c`)),i=Number(e.get(`r`));n.cols=r>0?r:null,n.rows=i>0?i:null,this.changed()}deleted(e){let t=e.get(`d`)??`a`;if(t!==`i`&&t!==`I`)return;let n=Number(e.get(`i`));this.images.get(n)?.bitmap?.close(),this.images.delete(n)&&this.changed()}dispose(){for(let e of this.images.values())e.bitmap?.close();this.images.clear()}},My=`305-305 30d-30e 310-310 312-312 33d-33f 346-346 34a-34c 350-352 357-357 35b-35b 363-36f 483-487
|
|
39
|
+
592-595 597-599 59c-5a1 5a8-5a9 5ab-5ac 5af-5af 5c4-5c4 610-617 657-65b 65d-65e 6d6-6dc 6df-6e2
|
|
40
|
+
6e4-6e4 6e7-6e8 6eb-6ec 730-730 732-733 735-736 73a-73a 73d-73d 73f-741 743-743 745-745 747-747
|
|
41
|
+
749-74a 7eb-7f1 7f3-7f3 816-819 81b-823 825-827 829-82d 951-951 953-954 f82-f83 f86-f87 135d-135f
|
|
42
|
+
17dd-17dd 193a-193a 1a17-1a17 1a75-1a7c 1b6b-1b6b 1b6d-1b73 1cd0-1cd2 1cda-1cdb 1ce0-1ce0 1dc0-1dc1 1dc3-1dc9 1dcb-1dcc
|
|
43
|
+
1dd1-1de6 1dfe-1dfe 20d0-20d1 20d4-20d7 20db-20dc 20e1-20e1 20e7-20e7 20e9-20e9 20f0-20f0 2cef-2cf1 2de0-2dff a66f-a66f
|
|
44
|
+
a67c-a67d a6f0-a6f1 a8e0-a8f1 aab0-aab0 aab2-aab3 aab7-aab8 aabe-aabf aac1-aac1 fe20-fe26 10a0f-10a0f 10a38-10a38 1d185-1d189
|
|
45
|
+
1d1aa-1d1ad 1d242-1d244`,Ny=(()=>{let e=new Map;for(let t of My.split(/\s+/)){let[n,r]=t.split(`-`).map(e=>Number.parseInt(e,16));for(let t=n;t<=r;t++)e.set(t,e.size)}return e})();function Py(e){if(e.codePointAt(0)!==1109742)return null;let t=[];for(let n of e.slice(2)){let e=Ny.get(n.codePointAt(0));if(e===void 0)break;t.push(e)}return t}function Fy(e,t,n){let r=t[2]===void 0?e:(e|t[2]<<24)>>>0,i=n!==null&&n.id===r,a=t[0]??(i?n.row:0);return{id:r,row:a,col:t[1]??(i&&n.row===a?n.col+1:0)}}var Iy=``;function Ly(e){return e.isFgRGB()||e.isFgPalette()?e.getFgColor():0}function Ry(e){let t=e.buffer.active,n=t.getNullCell(),r=[];for(let i=0;i<e.rows;i++){let a=t.getLine(t.viewportY+i);if(!a?.translateToString(!1).includes(Iy))continue;let o=null,s=null;for(let t=0;t<e.cols;t++){a.getCell(t,n);let e=Py(n.getChars());if(!e){o=null,s=null;continue}let c=Fy(Ly(n),e,o);s&&s.id===c.id&&s.row===c.row&&s.col+s.len===c.col?s.len++:(s={...c,x:t,y:i,len:1},r.push(s)),o=c}}return r}function zy(e){let t=null,n=0,r=()=>{n||=requestAnimationFrame(a)},i=new jy(r),a=()=>{n=0;let r=e.element?.querySelector(`.xterm-screen`);if(!r||e.rows<=0||e.cols<=0)return;let a=Ry(e);if(a.length===0&&!t)return;t||(t=document.createElement(`canvas`),t.className=Ft,r.append(t));let o=window.devicePixelRatio||1,s=r.clientWidth,c=r.clientHeight;(t.width!==Math.round(s*o)||t.height!==Math.round(c*o))&&(t.width=Math.round(s*o),t.height=Math.round(c*o));let l=t.getContext(`2d`);if(!l)return;l.setTransform(o,0,0,o,0,0),l.clearRect(0,0,s,c);let u=s/e.cols,d=c/e.rows,f=e.options.theme?.background??`#000`;for(let e of a){let t=e.x*u,n=e.y*d,r=e.len*u;l.fillStyle=f,l.fillRect(t,n,r,d);let a=i.images.get(e.id),o=a?.bitmap;if(!o){l.fillStyle=`rgba(128, 128, 128, 0.14)`,l.fillRect(t,n,r,d);continue}let s=a.cols??Math.ceil(o.width/u),c=a.rows??Math.ceil(o.height/d),p=Math.min(s*u/o.width,c*d/o.height),m=o.width*p,h=o.height*p,g=t-e.col*u+(s*u-m)/2,_=n-e.row*d+(c*d-h)/2;l.save(),l.beginPath(),l.rect(t,n,r,d),l.clip(),l.drawImage(o,g,_,m,h),l.restore()}},o=[e.onRender(r),e.onResize(r),e.onScroll(r)];return{push:e=>i.push(e),dispose(){n&&cancelAnimationFrame(n);for(let e of o)e.dispose();t?.remove(),i.dispose()}}}var By=(e,t,n)=>({id:e,cap:t,bytes:e=>`\x1b${e?`O`:`[`}${n}`}),Vy={id:`enter`,cap:`⏎`,bytes:()=>`\r`},Hy=[{id:`esc`,cap:`esc`,bytes:()=>`\x1B`},{id:`tab`,cap:`tab`,bytes:()=>` `},{id:`backtab`,cap:`⇧tab`,bytes:()=>`\x1B[Z`},{id:`interrupt`,cap:`^C`,bytes:()=>``},By(`up`,`↑`,`A`),By(`down`,`↓`,`B`),By(`left`,`←`,`D`),By(`right`,`→`,`C`),Vy],Uy=e=>({id:`option-${e}`,cap:String(e),bytes:()=>String(e)}),Wy=[Uy(1),Uy(2),Uy(3),Uy(4),Vy];function Gy(e){if(e.length!==1)return e;let t=e.toUpperCase().charCodeAt(0);return t===32?`\0`:t===63?``:t>=64&&t<=95?String.fromCharCode(t&31):e}var Ky=/\x1b\[\?[0-9;]*c|\x1b\[\??[0-9;]*\$y|\x1b\](?:10|11);[^\x07\x1b]*(?:\x07|\x1b\\)/g,qy=/\x1b\[[?>=]?[0-9;]*(?:[cnRt]|\$y)|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1bP[^\x1b]*\x1b\\/g;function Jy(e){let t=0;return{forward(n){let r=(t>0?n.replace(qy,``):n).replace(Ky,``);r&&e(r)},replay(e){t++,e(()=>{t--})}}}function Yy(e){return e.alternateScreen||e.mouseTracking&&e.shift?`app`:`local`}function Xy(e,t,n){let r=e.deltaMode===1?1:e.deltaMode===2?Math.max(1,n):1/Math.max(1,t);return e.deltaY*r}function Zy(e){if(e.deltaMode!==0)return!0;let t=Math.abs(e.wheelDeltaY??0);return t>0&&t%120==0&&Math.abs(e.deltaY)*2>t}function Qy(e,t){let n=e+t,r=Math.sign(n)*Math.round(Math.abs(n))||0;return{lines:r,carry:n-r}}function $y(e,t){return e>0&&t.viewportY>=t.baseY||e<0&&t.viewportY<=0?0:e}var eb=55;function tb(e,t){let n=e*(1-Math.exp(-Math.max(0,t)/eb));return Math.abs(e-n)<.02?e:n}var nb=120,rb=4,ib=3,ab=3,ob=1;function sb(e,t,n){let r=Math.abs(t),i=Math.sign(t);if(!e||n-e.at>nb||i!==e.sign)return{sign:i,at:n,peak:r,last:r,falling:0,coasting:!1};let a=r>e.last+ob,o=a?0:e.falling+1,s=a?r:e.peak;return{sign:i,at:n,peak:s,last:r,falling:o,coasting:r<ab&&o>=rb&&s>=r*ib}}function cb(e){return Math.max(0,e.baseY-e.viewportY)}function lb(e,t){if(e===null||e<=0)return null;let n=Math.max(0,t.baseY-e);return n===t.viewportY?null:n}function ub(e,t){let n=[t.black,t.red,t.green,t.yellow,t.blue,t.magenta,t.cyan,t.white,t.brightBlack,t.brightRed,t.brightGreen,t.brightYellow,t.brightBlue,t.brightMagenta,t.brightCyan,t.brightWhite];if(e<16)return n[e]??`#ffffff`;if(e>=232){let t=8+(e-232)*10;return`rgb(${t},${t},${t})`}let r=e-16,i=e=>e===0?0:55+e*40;return`rgb(${i(Math.floor(r/36))},${i(Math.floor(r/6)%6)},${i(r%6)})`}function db(e,t){let n=t.foreground??`#ffffff`,r=t.background??`#000000`,i=n;if(!e.isFgDefault()){let n=e.getFgColor();i=e.isFgRGB()?`#${n.toString(16).padStart(6,`0`)}`:ub(e.isBold()&&n<8?n+8:n,t)}let a=r;if(!e.isBgDefault()){let n=e.getBgColor();a=e.isBgRGB()?`#${n.toString(16).padStart(6,`0`)}`:ub(n,t)}return e.isInverse()?{fg:a,bg:i}:{fg:i,bg:a}}function fb(e){let t={side:`top`,canvas:null,key:``},n={side:`bottom`,canvas:null,key:``},r=null,i=0;function a(t,n){let r=e.element?.querySelector(`.xterm-screen`);if(!r||e.cols<=0)return;t.canvas||(t.canvas=document.createElement(`canvas`),t.canvas.style.cssText=`position:absolute;left:0;pointer-events:none;display:none`);let i=t.canvas.getContext(`2d`);if(!i)return;t.canvas.parentElement!==r&&r.appendChild(t.canvas);let a=window.devicePixelRatio||1,o=r.clientWidth,s=Math.round(o*a),c=Math.round(n*a);(t.canvas.width!==s||t.canvas.height!==c)&&(t.canvas.width=s,t.canvas.height=c,t.key=``),t.canvas.style.width=`${o}px`,t.canvas.style.height=`${n}px`,t.canvas.style.top=t.side===`top`?`${-n}px`:`${n*e.rows}px`;let l=e.buffer.active,u=l.getLine(t.side===`top`?l.viewportY-1:l.viewportY+e.rows),d=e.options.theme??{},f=`${u?.translateToString(!1)??``}|${o}|${n}|${a}|${d.background}|${d.foreground}`;if(f===t.key||(t.key=f,i.setTransform(a,0,0,a,0,0),i.fillStyle=d.background??`#000000`,i.fillRect(0,0,o,n),!u))return;let p=o/e.cols,m=e.options.fontFamily??`monospace`,h=e.options.fontSize??13;i.textBaseline=`middle`;let g=l.getNullCell(),_=``;for(let t=0;t<e.cols;t++){u.getCell(t,g);let e=g.getWidth();if(e===0)continue;let{fg:r,bg:a}=db(g,d);(!g.isBgDefault()||g.isInverse())&&(i.fillStyle=a,i.fillRect(t*p,0,p*e,n));let o=g.getChars();if(o===``||o===` `||g.isInvisible())continue;let s=`${g.isItalic()?`italic `:``}${g.isBold()?`bold `:``}${h}px ${m}`;s!==_&&(i.font=_=s),i.globalAlpha=g.isDim()?.5:1,i.fillStyle=r,i.fillText(o,t*p,n/2+.5),i.globalAlpha=1}}let o=(e,t,n,r)=>{let i=Math.max(0,r-n);t.style.clipPath=e.side===`top`?`inset(${i}px 0 0 0)`:`inset(0 0 ${i}px 0)`,t.style.display=``};return{show(e,s){if(e!==0&&(r=e>0?t:n),!r)return;let c=r===t?n:t;c.canvas&&(c.canvas.style.display=`none`),i=s,e!==0&&a(r,s),r.canvas&&o(r,r.canvas,Math.abs(e),s)},refresh(){r?.canvas&&r.canvas.style.display!==`none`&&a(r,i)},hide(){r=null,t.canvas&&(t.canvas.style.display=`none`),n.canvas&&(n.canvas.style.display=`none`)},transition(e){for(let r of[t,n])r.canvas&&(r.canvas.style.transition=e)},dispose(){t.canvas?.remove(),n.canvas?.remove()}}}var pb=140,mb=90,hb=15;function gb(e,t){let n=0,r=0,i=0,a=0,o=null,s=null,c=!1,l=()=>e.element?.querySelector(`.xterm-screen`)??null,u=()=>{let t=l();return t&&e.rows>0&&t.clientHeight/e.rows||hb},d=fb(e),f=()=>{c=!1;let e=l();if(!e)return;let t=u();e.style.transform=n===0?``:`translateY(${-n*t}px)`,n===0?e.style.transition===``?d.hide():d.show(0,t):d.show(-n*t,t)},p=e.onRender(()=>{c?f():d.refresh()}),m=()=>{c=!0,requestAnimationFrame(()=>{c&&f()})},h=()=>{s!==null&&window.clearTimeout(s),s=null;let e=l();e&&(e.style.transition=``),d.transition(``),n===0&&d.hide()},g=()=>{if(s===null)return;let e=l();e&&(n=-new DOMMatrix(getComputedStyle(e).transform).m42/u()),h()},_=()=>{o!==null&&window.clearTimeout(o),o=window.setTimeout(v,pb)};function v(){if(o!==null&&window.clearTimeout(o),o=null,n===0)return;let e=l();n=0,e&&(e.style.transition=`transform ${mb}ms ease-out`,d.transition(`clip-path ${mb}ms ease-out`),f(),s=window.setTimeout(h,130))}let y=r=>{if(r===0)return!0;g();let i=Qy(n,r),a=e.buffer.active,o=a.viewportY;i.lines!==0&&(t(),e.scrollLines(i.lines));let s=i.lines!==0&&a.viewportY-o!==i.lines;return n=s?0:$y(i.carry,a),m(),_(),!s&&n===i.carry},b=e=>{i=0;let t=tb(r,e-a);a=e,r-=t,y(t)||(r=0),r!==0&&(i=requestAnimationFrame(b))},x=()=>{r=0,i&&cancelAnimationFrame(i),i=0},S=()=>{x(),o!==null&&window.clearTimeout(o),o=null,h(),n=0,f()};return{by:y,glide(e){Math.sign(e)!==Math.sign(r)&&(r=0),r+=e,i||=(a=performance.now(),requestAnimationFrame(b))},settle:v,reset:S,dispose(){p.dispose(),S(),d.dispose()}}}function _b(e,t,n){let r=null,i=e=>{if(e.ctrlKey||Math.abs(e.deltaX)>Math.abs(e.deltaY))return;if(Yy({alternateScreen:t.buffer.active.type===`alternate`,mouseTracking:t.modes.mouseTrackingMode!==`none`,shift:e.shiftKey})===`app`){n.reset();return}e.preventDefault(),e.stopPropagation();let i=t.element?.querySelector(`.xterm-screen`),a=i&&t.rows>0?i.clientHeight/t.rows:0,o=Xy(e,a||hb,t.rows);if(Zy(e)){r=null,n.glide(o);return}r=sb(r,o*(a||hb),e.timeStamp),r.coasting?n.settle():n.by(o)};return e.addEventListener(`wheel`,i,{capture:!0,passive:!1}),()=>e.removeEventListener(`wheel`,i,{capture:!0})}var vb=6;function yb(e,t,n){let r=null,i=!1,a=e=>{r=e.touches.length===1?e.touches[0].clientY:null,i=!1},o=e=>{if(r===null||e.touches.length!==1)return;let{clientX:a,clientY:o}=e.touches[0];if(!i&&Math.abs(o-r)<vb)return;i=!0,e.preventDefault();let s=r-o;r=o;let c=t.element?.querySelector(`.xterm-screen`);if(Yy({alternateScreen:t.buffer.active.type===`alternate`,mouseTracking:t.modes.mouseTrackingMode!==`none`,shift:!1})===`app`){c?.dispatchEvent(new WheelEvent(`wheel`,{deltaY:s,deltaMode:0,clientX:a,clientY:o,bubbles:!0,cancelable:!0}));return}let l=c&&t.rows>0?c.clientHeight/t.rows:0;n.by(s/(l||15))},s=()=>{r=null,n.settle()};return e.addEventListener(`touchstart`,a,{passive:!0}),e.addEventListener(`touchmove`,o,{passive:!1}),e.addEventListener(`touchend`,s),e.addEventListener(`touchcancel`,s),()=>{e.removeEventListener(`touchstart`,a),e.removeEventListener(`touchmove`,o),e.removeEventListener(`touchend`,s),e.removeEventListener(`touchcancel`,s)}}var bb=Object.defineProperty,xb=Object.getOwnPropertyDescriptor,Sb=(e,t,n,r)=>{for(var i=r>1?void 0:r?xb(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&bb(t,n,i),i},Cb=(e,t)=>(n,r)=>t(n,r,e),wb=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?kb.isErrorNoTelemetry(e)?new kb(e.message+`
|
|
46
|
+
|
|
47
|
+
`+e.stack):Error(e.message+`
|
|
48
|
+
|
|
49
|
+
`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function Tb(e){Db(e)||wb.onUnexpectedError(e)}var Eb=`Canceled`;function Db(e){return e instanceof Ob||e instanceof Error&&e.name===Eb&&e.message===Eb}var Ob=class extends Error{constructor(){super(Eb),this.name=this.message}},kb=class e extends Error{constructor(e){super(e),this.name=`CodeExpectedError`}static fromError(t){if(t instanceof e)return t;let n=new e;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(e){return e.name===`CodeExpectedError`}},Ab;(e=>{function t(e){return e<0}e.isLessThan=t;function n(e){return e<=0}e.isLessThanOrEqual=n;function r(e){return e>0}e.isGreaterThan=r;function i(e){return e===0}e.isNeitherLessOrGreaterThan=i,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Ab||={});var jb=class e{constructor(e){this.iterate=e}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(t){return new e(e=>this.iterate(n=>!t(n)||e(n)))}map(t){return new e(e=>this.iterate(n=>e(t(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>!e(n)||(t=n,!1)),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Ab.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};jb.empty=new jb(e=>{});function Mb(e,t){let n=this,r=!1,i;return function(){if(r)return i;if(r=!0,t)try{i=e.apply(n,arguments)}finally{t()}else i=e.apply(n,arguments);return i}}var Nb;(e=>{function t(e){return e&&typeof e==`object`&&typeof e[Symbol.iterator]==`function`}e.is=t;let n=Object.freeze([]);function r(){return n}e.empty=r;function*i(e){yield e}e.single=i;function a(e){return t(e)?e:i(e)}e.wrap=a;function o(e){return e||n}e.from=o;function*s(e){for(let t=e.length-1;t>=0;t--)yield e[t]}e.reverse=s;function c(e){return!e||e[Symbol.iterator]().next().done===!0}e.isEmpty=c;function l(e){return e[Symbol.iterator]().next().value}e.first=l;function u(e,t){let n=0;for(let r of e)if(t(r,n++))return!0;return!1}e.some=u;function d(e,t){for(let n of e)if(t(n))return n}e.find=d;function*f(e,t){for(let n of e)t(n)&&(yield n)}e.filter=f;function*p(e,t){let n=0;for(let r of e)yield t(r,n++)}e.map=p;function*m(e,t){let n=0;for(let r of e)yield*t(r,n++)}e.flatMap=m;function*h(...e){for(let t of e)yield*t}e.concat=h;function g(e,t,n){let r=n;for(let n of e)r=t(r,n);return r}e.reduce=g;function*_(e,t,n=e.length){for(t<0&&(t+=e.length),n<0?n+=e.length:n>e.length&&(n=e.length);t<n;t++)yield e[t]}e.slice=_;function v(t,n=1/0){let r=[];if(n===0)return[r,t];let i=t[Symbol.iterator]();for(let t=0;t<n;t++){let t=i.next();if(t.done)return[r,e.empty()];r.push(t.value)}return[r,{[Symbol.iterator](){return i}}]}e.consume=v;async function y(e){let t=[];for await(let n of e)t.push(n);return Promise.resolve(t)}e.asyncToArray=y})(Nb||={});var Pb=null;function Fb(e){return Pb?.trackDisposable(e),e}function Ib(e){Pb?.markAsDisposed(e)}function Lb(e,t){Pb?.setParent(e,t)}function Rb(e){if(Nb.is(e)){let t=[];for(let n of e)if(n)try{n.dispose()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Encountered errors while disposing of store`);return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function zb(...e){return Bb(()=>Rb(e))}function Bb(e){let t=Fb({dispose:Mb(()=>{Ib(t),e()})});return t}var Vb=class e{constructor(){this._toDispose=new Set,this._isDisposed=!1,Fb(this)}dispose(){this._isDisposed||(Ib(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Rb(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw Error(`Cannot register a disposable on itself!`);return Lb(t,this),this._isDisposed?e.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(t),t}delete(e){if(e){if(e===this)throw Error(`Cannot dispose a disposable on itself!`);this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),Lb(e,null))}};Vb.DISABLE_DISPOSED_WARNING=!1;var Hb=Vb,Ub=class{constructor(){this._store=new Hb,Fb(this),Lb(this._store,this)}dispose(){Ib(this),this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}};Ub.None=Object.freeze({dispose(){}});var Wb=class{constructor(){this._isDisposed=!1,Fb(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&Lb(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Ib(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&Lb(e,null),e}},Gb=typeof process<`u`&&`title`in process,Kb=Gb?`node`:navigator.userAgent,qb=Gb?`node`:navigator.platform,Jb=Kb.includes(`Firefox`),Yb=Kb.includes(`Edge`),Xb=/^((?!chrome|android).)*safari/i.test(Kb);function Zb(){if(!Xb)return 0;let e=Kb.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}[`Macintosh`,`MacIntel`,`MacPPC`,`Mac68K`].includes(qb),[`Windows`,`Win16`,`Win32`,`WinCE`].includes(qb),qb.indexOf(`Linux`),/\bCrOS\b/.test(Kb);var Qb=``,$b=0,ex=0,tx=0,nx=0,rx={css:`#00000000`,rgba:0},ix;(e=>{function t(e,t,n,r){return r===void 0?`#${lx(e)}${lx(t)}${lx(n)}`:`#${lx(e)}${lx(t)}${lx(n)}${lx(r)}`}e.toCss=t;function n(e,t,n,r=255){return(e<<24|t<<16|n<<8|r)>>>0}e.toRgba=n;function r(t,n,r,i){return{css:e.toCss(t,n,r,i),rgba:e.toRgba(t,n,r,i)}}e.toColor=r})(ix||={});var ax;(e=>{function t(e,t){if(nx=(t.rgba&255)/255,nx===1)return{css:t.css,rgba:t.rgba};let n=t.rgba>>24&255,r=t.rgba>>16&255,i=t.rgba>>8&255,a=e.rgba>>24&255,o=e.rgba>>16&255,s=e.rgba>>8&255;return $b=a+Math.round((n-a)*nx),ex=o+Math.round((r-o)*nx),tx=s+Math.round((i-s)*nx),{css:ix.toCss($b,ex,tx),rgba:ix.toRgba($b,ex,tx)}}e.blend=t;function n(e){return(e.rgba&255)==255}e.isOpaque=n;function r(e,t,n){let r=cx.ensureContrastRatio(e.rgba,t.rgba,n);if(r)return ix.toColor(r>>24&255,r>>16&255,r>>8&255)}e.ensureContrastRatio=r;function i(e){let t=(e.rgba|255)>>>0;return[$b,ex,tx]=cx.toChannels(t),{css:ix.toCss($b,ex,tx),rgba:t}}e.opaque=i;function a(e,t){return nx=Math.round(t*255),[$b,ex,tx]=cx.toChannels(e.rgba),{css:ix.toCss($b,ex,tx,nx),rgba:ix.toRgba($b,ex,tx,nx)}}e.opacity=a;function o(e,t){return nx=e.rgba&255,a(e,nx*t/255)}e.multiplyOpacity=o;function s(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}e.toColorRGB=s})(ax||={});var ox;(e=>{let t,n;try{let e=document.createElement(`canvas`);e.width=1,e.height=1;let r=e.getContext(`2d`,{willReadFrequently:!0});r&&(t=r,t.globalCompositeOperation=`copy`,n=t.createLinearGradient(0,0,1,1))}catch{}function r(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return $b=parseInt(e.slice(1,2).repeat(2),16),ex=parseInt(e.slice(2,3).repeat(2),16),tx=parseInt(e.slice(3,4).repeat(2),16),ix.toColor($b,ex,tx);case 5:return $b=parseInt(e.slice(1,2).repeat(2),16),ex=parseInt(e.slice(2,3).repeat(2),16),tx=parseInt(e.slice(3,4).repeat(2),16),nx=parseInt(e.slice(4,5).repeat(2),16),ix.toColor($b,ex,tx,nx);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}let r=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(r)return $b=parseInt(r[1]),ex=parseInt(r[2]),tx=parseInt(r[3]),nx=Math.round((r[5]===void 0?1:parseFloat(r[5]))*255),ix.toColor($b,ex,tx,nx);if(!t||!n||(t.fillStyle=n,t.fillStyle=e,typeof t.fillStyle!=`string`)||(t.fillRect(0,0,1,1),[$b,ex,tx,nx]=t.getImageData(0,0,1,1).data,nx!==255))throw Error(`css.toColor: Unsupported css format`);return{rgba:ix.toRgba($b,ex,tx,nx),css:e}}e.toColor=r})(ox||={});var sx;(e=>{function t(e){return n(e>>16&255,e>>8&255,e&255)}e.relativeLuminance=t;function n(e,t,n){let r=e/255,i=t/255,a=n/255,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4,s=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,c=a<=.03928?a/12.92:((a+.055)/1.055)**2.4;return o*.2126+s*.7152+c*.0722}e.relativeLuminance2=n})(sx||={});var cx;(e=>{function t(e,t){if(nx=(t&255)/255,nx===1)return t;let n=t>>24&255,r=t>>16&255,i=t>>8&255,a=e>>24&255,o=e>>16&255,s=e>>8&255;return $b=a+Math.round((n-a)*nx),ex=o+Math.round((r-o)*nx),tx=s+Math.round((i-s)*nx),ix.toRgba($b,ex,tx)}e.blend=t;function n(e,t,n){let a=sx.relativeLuminance(e>>8),o=sx.relativeLuminance(t>>8);if(ux(a,o)<n){if(o<a){let o=r(e,t,n),s=ux(a,sx.relativeLuminance(o>>8));if(s<n){let r=i(e,t,n);return s>ux(a,sx.relativeLuminance(r>>8))?o:r}return o}let s=i(e,t,n),c=ux(a,sx.relativeLuminance(s>>8));if(c<n){let i=r(e,t,n);return c>ux(a,sx.relativeLuminance(i>>8))?s:i}return s}}e.ensureContrastRatio=n;function r(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=ux(sx.relativeLuminance2(o,s,c),sx.relativeLuminance2(r,i,a));for(;l<n&&(o>0||s>0||c>0);)o-=Math.max(0,Math.ceil(o*.1)),s-=Math.max(0,Math.ceil(s*.1)),c-=Math.max(0,Math.ceil(c*.1)),l=ux(sx.relativeLuminance2(o,s,c),sx.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.reduceLuminance=r;function i(e,t,n){let r=e>>24&255,i=e>>16&255,a=e>>8&255,o=t>>24&255,s=t>>16&255,c=t>>8&255,l=ux(sx.relativeLuminance2(o,s,c),sx.relativeLuminance2(r,i,a));for(;l<n&&(o<255||s<255||c<255);)o=Math.min(255,o+Math.ceil((255-o)*.1)),s=Math.min(255,s+Math.ceil((255-s)*.1)),c=Math.min(255,c+Math.ceil((255-c)*.1)),l=ux(sx.relativeLuminance2(o,s,c),sx.relativeLuminance2(r,i,a));return(o<<24|s<<16|c<<8|255)>>>0}e.increaseLuminance=i;function a(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]}e.toChannels=a})(cx||={});function lx(e){let t=e.toString(16);return t.length<2?`0`+t:t}function ux(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}function dx(e){if(!e)throw Error(`value must not be falsy`);return e}function fx(e){return 57508<=e&&e<=57558}function px(e){return 57520<=e&&e<=57527}function mx(e){return 57344<=e&&e<=63743}function hx(e){return 9472<=e&&e<=9631}function gx(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}function _x(e,t,n,r){return t===1&&n>Math.ceil(r*1.5)&&e!==void 0&&e>255&&!gx(e)&&!fx(e)&&!mx(e)}function vx(e){return fx(e)||hx(e)}function yx(){return{css:{canvas:bx(),cell:bx()},device:{canvas:bx(),cell:bx(),char:{width:0,height:0,left:0,top:0}}}}function bx(){return{width:0,height:0}}function xx(e,t,n=0){return(e-(Math.round(t)*2-n))%(Math.round(t)*2)}var Sx=0,Cx=0,wx=!1,Tx=!1,Ex=!1,Dx,Ox=0,kx=class{constructor(e,t,n,r,i,a){this._terminal=e,this._optionService=t,this._selectionRenderModel=n,this._decorationService=r,this._coreBrowserService=i,this._themeService=a,this.result={fg:0,bg:0,ext:0}}resolve(e,t,n,r){if(this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=e.bg&268435456?e.extended.ext:0,Cx=0,Sx=0,Tx=!1,wx=!1,Ex=!1,Dx=this._themeService.colors,Ox=0,e.getCode()!==0&&e.extended.underlineStyle===4){let e=Math.max(1,Math.floor(this._optionService.rawOptions.fontSize*this._coreBrowserService.dpr/15));Ox=t*r%(Math.round(e)*2)}if(this._decorationService.forEachDecorationAtCell(t,n,`bottom`,e=>{e.backgroundColorRGB&&(Cx=e.backgroundColorRGB.rgba>>8&16777215,Tx=!0),e.foregroundColorRGB&&(Sx=e.foregroundColorRGB.rgba>>8&16777215,wx=!0)}),Ex=this._selectionRenderModel.isCellSelected(this._terminal,t,n),Ex){if(this.result.fg&67108864||this.result.bg&50331648){if(this.result.fg&67108864)switch(this.result.fg&50331648){case 16777216:case 33554432:Cx=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:Cx=(this.result.fg&16777215)<<8|255;break;default:Cx=this._themeService.colors.foreground.rgba}else switch(this.result.bg&50331648){case 16777216:case 33554432:Cx=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:Cx=(this.result.bg&16777215)<<8|255}Cx=cx.blend(Cx,(this._coreBrowserService.isFocused?Dx.selectionBackgroundOpaque:Dx.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}else Cx=(this._coreBrowserService.isFocused?Dx.selectionBackgroundOpaque:Dx.selectionInactiveBackgroundOpaque).rgba>>8&16777215;if(Tx=!0,Dx.selectionForeground&&(Sx=Dx.selectionForeground.rgba>>8&16777215,wx=!0),vx(e.getCode())){if(this.result.fg&67108864&&!(this.result.bg&50331648))Sx=(this._coreBrowserService.isFocused?Dx.selectionBackgroundOpaque:Dx.selectionInactiveBackgroundOpaque).rgba>>8&16777215;else{if(this.result.fg&67108864)switch(this.result.bg&50331648){case 16777216:case 33554432:Sx=this._themeService.colors.ansi[this.result.bg&255].rgba;break;case 50331648:Sx=(this.result.bg&16777215)<<8|255}else switch(this.result.fg&50331648){case 16777216:case 33554432:Sx=this._themeService.colors.ansi[this.result.fg&255].rgba;break;case 50331648:Sx=(this.result.fg&16777215)<<8|255;break;default:Sx=this._themeService.colors.foreground.rgba}Sx=cx.blend(Sx,(this._coreBrowserService.isFocused?Dx.selectionBackgroundOpaque:Dx.selectionInactiveBackgroundOpaque).rgba&4294967040|128)>>8&16777215}wx=!0}}this._decorationService.forEachDecorationAtCell(t,n,`top`,e=>{e.backgroundColorRGB&&(Cx=e.backgroundColorRGB.rgba>>8&16777215,Tx=!0),e.foregroundColorRGB&&(Sx=e.foregroundColorRGB.rgba>>8&16777215,wx=!0)}),Tx&&(Cx=Ex?e.bg&-150994944|Cx|50331648:e.bg&-16777216|Cx|50331648),wx&&(Sx=e.fg&-83886080|Sx|50331648),this.result.fg&67108864&&(Tx&&!wx&&(Sx=this.result.bg&50331648?this.result.fg&-134217728|this.result.bg&67108863:this.result.fg&-134217728|Dx.background.rgba>>8&16777215|50331648,wx=!0),!Tx&&wx&&(Cx=this.result.fg&50331648?this.result.bg&-67108864|this.result.fg&67108863:this.result.bg&-67108864|Dx.foreground.rgba>>8&16777215|50331648,Tx=!0)),Dx=void 0,this.result.bg=Tx?Cx:this.result.bg,this.result.fg=wx?Sx:this.result.fg,this.result.ext&=536870911,this.result.ext|=Ox<<29&3758096384}},Ax=.5,jx=Jb||Yb?`bottom`:`ideographic`,Mx={"▀":[{x:0,y:0,w:8,h:4}],"▁":[{x:0,y:7,w:8,h:1}],"▂":[{x:0,y:6,w:8,h:2}],"▃":[{x:0,y:5,w:8,h:3}],"▄":[{x:0,y:4,w:8,h:4}],"▅":[{x:0,y:3,w:8,h:5}],"▆":[{x:0,y:2,w:8,h:6}],"▇":[{x:0,y:1,w:8,h:7}],"█":[{x:0,y:0,w:8,h:8}],"▉":[{x:0,y:0,w:7,h:8}],"▊":[{x:0,y:0,w:6,h:8}],"▋":[{x:0,y:0,w:5,h:8}],"▌":[{x:0,y:0,w:4,h:8}],"▍":[{x:0,y:0,w:3,h:8}],"▎":[{x:0,y:0,w:2,h:8}],"▏":[{x:0,y:0,w:1,h:8}],"▐":[{x:4,y:0,w:4,h:8}],"▔":[{x:0,y:0,w:8,h:1}],"▕":[{x:7,y:0,w:1,h:8}],"▖":[{x:0,y:4,w:4,h:4}],"▗":[{x:4,y:4,w:4,h:4}],"▘":[{x:0,y:0,w:4,h:4}],"▙":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"▚":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"▛":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"▜":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"▝":[{x:4,y:0,w:4,h:4}],"▞":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"▟":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"🭰":[{x:1,y:0,w:1,h:8}],"🭱":[{x:2,y:0,w:1,h:8}],"🭲":[{x:3,y:0,w:1,h:8}],"🭳":[{x:4,y:0,w:1,h:8}],"🭴":[{x:5,y:0,w:1,h:8}],"🭵":[{x:6,y:0,w:1,h:8}],"🭶":[{x:0,y:1,w:8,h:1}],"🭷":[{x:0,y:2,w:8,h:1}],"🭸":[{x:0,y:3,w:8,h:1}],"🭹":[{x:0,y:4,w:8,h:1}],"🭺":[{x:0,y:5,w:8,h:1}],"🭻":[{x:0,y:6,w:8,h:1}],"🭼":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🭽":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭾":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭿":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🮀":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮁":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮂":[{x:0,y:0,w:8,h:2}],"🮃":[{x:0,y:0,w:8,h:3}],"🮄":[{x:0,y:0,w:8,h:5}],"🮅":[{x:0,y:0,w:8,h:6}],"🮆":[{x:0,y:0,w:8,h:7}],"🮇":[{x:6,y:0,w:2,h:8}],"🮈":[{x:5,y:0,w:3,h:8}],"🮉":[{x:3,y:0,w:5,h:8}],"🮊":[{x:2,y:0,w:6,h:8}],"🮋":[{x:1,y:0,w:7,h:8}],"🮕":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"🮖":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"🮗":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]},Nx={"░":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"▒":[[1,0],[0,0],[0,1],[0,0]],"▓":[[0,1],[1,1],[1,0],[1,1]]},Px={"─":{1:`M0,.5 L1,.5`},"━":{3:`M0,.5 L1,.5`},"│":{1:`M.5,0 L.5,1`},"┃":{3:`M.5,0 L.5,1`},"┌":{1:`M0.5,1 L.5,.5 L1,.5`},"┏":{3:`M0.5,1 L.5,.5 L1,.5`},"┐":{1:`M0,.5 L.5,.5 L.5,1`},"┓":{3:`M0,.5 L.5,.5 L.5,1`},"└":{1:`M.5,0 L.5,.5 L1,.5`},"┗":{3:`M.5,0 L.5,.5 L1,.5`},"┘":{1:`M.5,0 L.5,.5 L0,.5`},"┛":{3:`M.5,0 L.5,.5 L0,.5`},"├":{1:`M.5,0 L.5,1 M.5,.5 L1,.5`},"┣":{3:`M.5,0 L.5,1 M.5,.5 L1,.5`},"┤":{1:`M.5,0 L.5,1 M.5,.5 L0,.5`},"┫":{3:`M.5,0 L.5,1 M.5,.5 L0,.5`},"┬":{1:`M0,.5 L1,.5 M.5,.5 L.5,1`},"┳":{3:`M0,.5 L1,.5 M.5,.5 L.5,1`},"┴":{1:`M0,.5 L1,.5 M.5,.5 L.5,0`},"┻":{3:`M0,.5 L1,.5 M.5,.5 L.5,0`},"┼":{1:`M0,.5 L1,.5 M.5,0 L.5,1`},"╋":{3:`M0,.5 L1,.5 M.5,0 L.5,1`},"╴":{1:`M.5,.5 L0,.5`},"╸":{3:`M.5,.5 L0,.5`},"╵":{1:`M.5,.5 L.5,0`},"╹":{3:`M.5,.5 L.5,0`},"╶":{1:`M.5,.5 L1,.5`},"╺":{3:`M.5,.5 L1,.5`},"╷":{1:`M.5,.5 L.5,1`},"╻":{3:`M.5,.5 L.5,1`},"═":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"║":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╒":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╓":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"╔":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╕":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"╖":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"╗":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"╘":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"╙":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╚":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"╛":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"╜":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"╝":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"╞":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╟":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"╠":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╡":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"╢":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╣":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"╤":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"╥":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"╦":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╧":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╨":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╩":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╪":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╫":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╬":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╱":{1:`M1,0 L0,1`},"╲":{1:`M0,0 L1,1`},"╳":{1:`M1,0 L0,1 M0,0 L1,1`},"╼":{1:`M.5,.5 L0,.5`,3:`M.5,.5 L1,.5`},"╽":{1:`M.5,.5 L.5,0`,3:`M.5,.5 L.5,1`},"╾":{1:`M.5,.5 L1,.5`,3:`M.5,.5 L0,.5`},"╿":{1:`M.5,.5 L.5,1`,3:`M.5,.5 L.5,0`},"┍":{1:`M.5,.5 L.5,1`,3:`M.5,.5 L1,.5`},"┎":{1:`M.5,.5 L1,.5`,3:`M.5,.5 L.5,1`},"┑":{1:`M.5,.5 L.5,1`,3:`M.5,.5 L0,.5`},"┒":{1:`M.5,.5 L0,.5`,3:`M.5,.5 L.5,1`},"┕":{1:`M.5,.5 L.5,0`,3:`M.5,.5 L1,.5`},"┖":{1:`M.5,.5 L1,.5`,3:`M.5,.5 L.5,0`},"┙":{1:`M.5,.5 L.5,0`,3:`M.5,.5 L0,.5`},"┚":{1:`M.5,.5 L0,.5`,3:`M.5,.5 L.5,0`},"┝":{1:`M.5,0 L.5,1`,3:`M.5,.5 L1,.5`},"┞":{1:`M0.5,1 L.5,.5 L1,.5`,3:`M.5,.5 L.5,0`},"┟":{1:`M.5,0 L.5,.5 L1,.5`,3:`M.5,.5 L.5,1`},"┠":{1:`M.5,.5 L1,.5`,3:`M.5,0 L.5,1`},"┡":{1:`M.5,.5 L.5,1`,3:`M.5,0 L.5,.5 L1,.5`},"┢":{1:`M.5,.5 L.5,0`,3:`M0.5,1 L.5,.5 L1,.5`},"┥":{1:`M.5,0 L.5,1`,3:`M.5,.5 L0,.5`},"┦":{1:`M0,.5 L.5,.5 L.5,1`,3:`M.5,.5 L.5,0`},"┧":{1:`M.5,0 L.5,.5 L0,.5`,3:`M.5,.5 L.5,1`},"┨":{1:`M.5,.5 L0,.5`,3:`M.5,0 L.5,1`},"┩":{1:`M.5,.5 L.5,1`,3:`M.5,0 L.5,.5 L0,.5`},"┪":{1:`M.5,.5 L.5,0`,3:`M0,.5 L.5,.5 L.5,1`},"┭":{1:`M0.5,1 L.5,.5 L1,.5`,3:`M.5,.5 L0,.5`},"┮":{1:`M0,.5 L.5,.5 L.5,1`,3:`M.5,.5 L1,.5`},"┯":{1:`M.5,.5 L.5,1`,3:`M0,.5 L1,.5`},"┰":{1:`M0,.5 L1,.5`,3:`M.5,.5 L.5,1`},"┱":{1:`M.5,.5 L1,.5`,3:`M0,.5 L.5,.5 L.5,1`},"┲":{1:`M.5,.5 L0,.5`,3:`M0.5,1 L.5,.5 L1,.5`},"┵":{1:`M.5,0 L.5,.5 L1,.5`,3:`M.5,.5 L0,.5`},"┶":{1:`M.5,0 L.5,.5 L0,.5`,3:`M.5,.5 L1,.5`},"┷":{1:`M.5,.5 L.5,0`,3:`M0,.5 L1,.5`},"┸":{1:`M0,.5 L1,.5`,3:`M.5,.5 L.5,0`},"┹":{1:`M.5,.5 L1,.5`,3:`M.5,0 L.5,.5 L0,.5`},"┺":{1:`M.5,.5 L0,.5`,3:`M.5,0 L.5,.5 L1,.5`},"┽":{1:`M.5,0 L.5,1 M.5,.5 L1,.5`,3:`M.5,.5 L0,.5`},"┾":{1:`M.5,0 L.5,1 M.5,.5 L0,.5`,3:`M.5,.5 L1,.5`},"┿":{1:`M.5,0 L.5,1`,3:`M0,.5 L1,.5`},"╀":{1:`M0,.5 L1,.5 M.5,.5 L.5,1`,3:`M.5,.5 L.5,0`},"╁":{1:`M.5,.5 L.5,0 M0,.5 L1,.5`,3:`M.5,.5 L.5,1`},"╂":{1:`M0,.5 L1,.5`,3:`M.5,0 L.5,1`},"╃":{1:`M0.5,1 L.5,.5 L1,.5`,3:`M.5,0 L.5,.5 L0,.5`},"╄":{1:`M0,.5 L.5,.5 L.5,1`,3:`M.5,0 L.5,.5 L1,.5`},"╅":{1:`M.5,0 L.5,.5 L1,.5`,3:`M0,.5 L.5,.5 L.5,1`},"╆":{1:`M.5,0 L.5,.5 L0,.5`,3:`M0.5,1 L.5,.5 L1,.5`},"╇":{1:`M.5,.5 L.5,1`,3:`M.5,.5 L.5,0 M0,.5 L1,.5`},"╈":{1:`M.5,.5 L.5,0`,3:`M0,.5 L1,.5 M.5,.5 L.5,1`},"╉":{1:`M.5,.5 L1,.5`,3:`M.5,0 L.5,1 M.5,.5 L0,.5`},"╊":{1:`M.5,.5 L0,.5`,3:`M.5,0 L.5,1 M.5,.5 L1,.5`},"╌":{1:`M.1,.5 L.4,.5 M.6,.5 L.9,.5`},"╍":{3:`M.1,.5 L.4,.5 M.6,.5 L.9,.5`},"┄":{1:`M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5`},"┅":{3:`M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5`},"┈":{1:`M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5`},"┉":{3:`M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5`},"╎":{1:`M.5,.1 L.5,.4 M.5,.6 L.5,.9`},"╏":{3:`M.5,.1 L.5,.4 M.5,.6 L.5,.9`},"┆":{1:`M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333`},"┇":{3:`M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333`},"┊":{1:`M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95`},"┋":{3:`M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95`},"╭":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"╮":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"╯":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"╰":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},Fx={"":{d:`M.3,1 L.03,1 L.03,.88 C.03,.82,.06,.78,.11,.73 C.15,.7,.2,.68,.28,.65 L.43,.6 C.49,.58,.53,.56,.56,.53 C.59,.5,.6,.47,.6,.43 L.6,.27 L.4,.27 L.69,.1 L.98,.27 L.78,.27 L.78,.46 C.78,.52,.76,.56,.72,.61 C.68,.66,.63,.67,.56,.7 L.48,.72 C.42,.74,.38,.76,.35,.78 C.32,.8,.31,.84,.31,.88 L.31,1 M.3,.5 L.03,.59 L.03,.09 L.3,.09 L.3,.655`,type:0},"":{d:`M.7,.4 L.7,.47 L.2,.47 L.2,.03 L.355,.03 L.355,.4 L.705,.4 M.7,.5 L.86,.5 L.86,.95 L.69,.95 L.44,.66 L.46,.86 L.46,.95 L.3,.95 L.3,.49 L.46,.49 L.71,.78 L.69,.565 L.69,.5`,type:0},"":{d:`M.25,.94 C.16,.94,.11,.92,.11,.87 L.11,.53 C.11,.48,.15,.455,.23,.45 L.23,.3 C.23,.25,.26,.22,.31,.19 C.36,.16,.43,.15,.51,.15 C.59,.15,.66,.16,.71,.19 C.77,.22,.79,.26,.79,.3 L.79,.45 C.87,.45,.91,.48,.91,.53 L.91,.87 C.91,.92,.86,.94,.77,.94 L.24,.94 M.53,.2 C.49,.2,.45,.21,.42,.23 C.39,.25,.38,.27,.38,.3 L.38,.45 L.68,.45 L.68,.3 C.68,.27,.67,.25,.64,.23 C.61,.21,.58,.2,.53,.2 M.58,.82 L.58,.66 C.63,.65,.65,.63,.65,.6 C.65,.58,.64,.57,.61,.56 C.58,.55,.56,.54,.52,.54 C.48,.54,.46,.55,.43,.56 C.4,.57,.39,.59,.39,.6 C.39,.63,.41,.64,.46,.66 L.46,.82 L.57,.82`,type:0},"":{d:`M0,0 L1,.5 L0,1`,type:0,rightPadding:2},"":{d:`M-1,-.5 L1,.5 L-1,1.5`,type:1,leftPadding:1,rightPadding:1},"":{d:`M1,0 L0,.5 L1,1`,type:0,leftPadding:2},"":{d:`M2,-.5 L0,.5 L2,1.5`,type:1,leftPadding:1,rightPadding:1},"":{d:`M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0`,type:0,rightPadding:1},"":{d:`M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0`,type:1,rightPadding:1},"":{d:`M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0`,type:0,leftPadding:1},"":{d:`M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0`,type:1,leftPadding:1},"":{d:`M-.5,-.5 L1.5,1.5 L-.5,1.5`,type:0},"":{d:`M-.5,-.5 L1.5,1.5`,type:1,leftPadding:1,rightPadding:1},"":{d:`M1.5,-.5 L-.5,1.5 L1.5,1.5`,type:0},"":{d:`M1.5,-.5 L-.5,1.5 L-.5,-.5`,type:0},"":{d:`M1.5,-.5 L-.5,1.5`,type:1,leftPadding:1,rightPadding:1},"":{d:`M-.5,-.5 L1.5,1.5 L1.5,-.5`,type:0}};Fx[``]=Fx[``],Fx[``]=Fx[``];function Ix(e,t,n,r,i,a,o,s){let c=Mx[t];if(c)return Lx(e,c,n,r,i,a),!0;let l=Nx[t];if(l)return zx(e,l,n,r,i,a),!0;let u=Px[t];if(u)return Bx(e,u,n,r,i,a,s),!0;let d=Fx[t];return d?(Vx(e,d,n,r,i,a,o,s),!0):!1}function Lx(e,t,n,r,i,a){for(let o=0;o<t.length;o++){let s=t[o],c=i/8,l=a/8;e.fillRect(n+s.x*c,r+s.y*l,s.w*c,s.h*l)}}var Rx=new Map;function zx(e,t,n,r,i,a){let o=Rx.get(t);o||(o=new Map,Rx.set(t,o));let s=e.fillStyle;if(typeof s!=`string`)throw Error(`Unexpected fillStyle type "${s}"`);let c=o.get(s);if(!c){let n=t[0].length,r=t.length,i=e.canvas.ownerDocument.createElement(`canvas`);i.width=n,i.height=r;let a=dx(i.getContext(`2d`)),l=new ImageData(n,r),u,d,f,p;if(s.startsWith(`#`))u=parseInt(s.slice(1,3),16),d=parseInt(s.slice(3,5),16),f=parseInt(s.slice(5,7),16),p=s.length>7&&parseInt(s.slice(7,9),16)||1;else if(s.startsWith(`rgba`))[u,d,f,p]=s.substring(5,s.length-1).split(`,`).map(e=>parseFloat(e));else throw Error(`Unexpected fillStyle color format "${s}" when drawing pattern glyph`);for(let e=0;e<r;e++)for(let r=0;r<n;r++)l.data[(e*n+r)*4]=u,l.data[(e*n+r)*4+1]=d,l.data[(e*n+r)*4+2]=f,l.data[(e*n+r)*4+3]=t[e][r]*(p*255);a.putImageData(l,0,0),c=dx(e.createPattern(i,null)),o.set(s,c)}e.fillStyle=c,e.fillRect(n,r,i,a)}function Bx(e,t,n,r,i,a,o){e.strokeStyle=e.fillStyle;for(let[s,c]of Object.entries(t)){e.beginPath(),e.lineWidth=o*Number.parseInt(s);let t;t=typeof c==`function`?c(.15,.15/a*i):c;for(let s of t.split(` `)){let t=s[0],c=Ux[t];if(!c){console.error(`Could not find drawing instructions for "${t}"`);continue}let l=s.substring(1).split(`,`);!l[0]||!l[1]||c(e,Wx(l,i,a,n,r,!0,o))}e.stroke(),e.closePath()}}function Vx(e,t,n,r,i,a,o,s){let c=new Path2D;c.rect(n,r,i,a),e.clip(c),e.beginPath();let l=o/12;e.lineWidth=s*l;for(let o of t.d.split(` `)){let c=o[0],u=Ux[c];if(!u){console.error(`Could not find drawing instructions for "${c}"`);continue}let d=o.substring(1).split(`,`);!d[0]||!d[1]||u(e,Wx(d,i,a,n,r,!1,s,(t.leftPadding??0)*(l/2),(t.rightPadding??0)*(l/2)))}t.type===1?(e.strokeStyle=e.fillStyle,e.stroke()):e.fill(),e.closePath()}function Hx(e,t,n=0){return Math.max(Math.min(e,t),n)}var Ux={C:(e,t)=>e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function Wx(e,t,n,r,i,a,o,s=0,c=0){let l=e.map(e=>parseFloat(e)||parseInt(e));if(l.length<2)throw Error(`Too few arguments for instruction`);for(let e=0;e<l.length;e+=2)l[e]*=t-s*o-c*o,a&&l[e]!==0&&(l[e]=Hx(Math.round(l[e]+.5)-.5,t,0)),l[e]+=r+s*o;for(let e=1;e<l.length;e+=2)l[e]*=n,a&&l[e]!==0&&(l[e]=Hx(Math.round(l[e]+.5)-.5,n,0)),l[e]+=i;return l}var Gx=class{constructor(){this._data={}}set(e,t,n){this._data[e]||(this._data[e]={}),this._data[e][t]=n}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},Kx=class{constructor(){this._data=new Gx}set(e,t,n,r,i){this._data.get(e,t)||this._data.set(e,t,new Gx),this._data.get(e,t).set(n,r,i)}get(e,t,n,r){return this._data.get(e,t)?.get(n,r)}clear(){this._data.clear()}},qx=class{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&=(this._cancelCallback(this._idleCallback),void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||=this._requestCallback(this._process.bind(this))}_process(e){this._idleCallback=void 0;let t=0,n=0,r=e.timeRemaining(),i=0;for(;this._i<this._tasks.length;){if(t=performance.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,performance.now()-t),n=Math.max(t,n),i=e.timeRemaining(),n*1.5>i){r-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),this._start();return}r=i}this.clear()}},Jx=class extends qx{_requestCallback(e){return setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){let t=performance.now()+e;return{timeRemaining:()=>Math.max(0,t-performance.now())}}},Yx=class extends qx{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},Xx=!Gb&&`requestIdleCallback`in window?Yx:Jx,Zx=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Qx}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Qx=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},$x=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};$x.Undefined=new $x(void 0);var eS=globalThis.performance&&typeof globalThis.performance.now==`function`,tS=class e{static create(t){return new e(t)}constructor(e){this._now=eS&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime===-1?this._now()-this._startTime:this._stopTime-this._startTime}},nS;(e=>{e.None=()=>Ub.None;function t(e,t){return d(e,()=>{},0,void 0,!0,void 0,t)}e.defer=t;function n(e){return(t,n=null,r)=>{let i=!1,a;return a=e(e=>{if(!i)return a?a.dispose():i=!0,t.call(n,e)},null,r),i&&a.dispose(),a}}e.once=n;function r(e,t,n){return l((n,r=null,i)=>e(e=>n.call(r,t(e)),null,i),n)}e.map=r;function i(e,t,n){return l((n,r=null,i)=>e(e=>{t(e),n.call(r,e)},null,i),n)}e.forEach=i;function a(e,t,n){return l((n,r=null,i)=>e(e=>t(e)&&n.call(r,e),null,i),n)}e.filter=a;function o(e){return e}e.signal=o;function s(...e){return(t,n=null,r)=>u(zb(...e.map(e=>e(e=>t.call(n,e)))),r)}e.any=s;function c(e,t,n,i){let a=n;return r(e,e=>(a=t(a,e),a),i)}e.reduce=c;function l(e,t){let n,r=new mS({onWillAddFirstListener(){n=e(r.fire,r)},onDidRemoveLastListener(){n?.dispose()}});return t?.add(r),r.event}function u(e,t){return t instanceof Array?t.push(e):t&&t.add(e),e}function d(e,t,n=100,r=!1,i=!1,a,o){let s,c,l,u=0,d,f=new mS({leakWarningThreshold:a,onWillAddFirstListener(){s=e(e=>{u++,c=t(c,e),r&&!l&&(f.fire(c),c=void 0),d=()=>{let e=c;c=void 0,l=void 0,(!r||u>1)&&f.fire(e),u=0},typeof n==`number`?(clearTimeout(l),l=setTimeout(d,n)):l===void 0&&(l=0,queueMicrotask(d))})},onWillRemoveListener(){i&&u>0&&d?.()},onDidRemoveLastListener(){d=void 0,s.dispose()}});return o?.add(f),f.event}e.debounce=d;function f(t,n=0,r){return e.debounce(t,(e,t)=>e?(e.push(t),e):[t],n,void 0,!0,void 0,r)}e.accumulate=f;function p(e,t=(e,t)=>e===t,n){let r=!0,i;return a(e,e=>{let n=r||!t(e,i);return r=!1,i=e,n},n)}e.latch=p;function m(t,n,r){return[e.filter(t,n,r),e.filter(t,e=>!n(e),r)]}e.split=m;function h(e,t=!1,n=[],r){let i=n.slice(),a=e(e=>{i?i.push(e):s.fire(e)});r&&r.add(a);let o=()=>{i?.forEach(e=>s.fire(e)),i=null},s=new mS({onWillAddFirstListener(){a||(a=e(e=>s.fire(e)),r&&r.add(a))},onDidAddFirstListener(){i&&(t?setTimeout(o):o())},onDidRemoveLastListener(){a&&a.dispose(),a=null}});return r&&r.add(s),s.event}e.buffer=h;function g(e,t){return(n,r,i)=>{let a=t(new v);return e(function(e){let t=a.evaluate(e);t!==_&&n.call(r,t)},void 0,i)}}e.chain=g;let _=Symbol(`HaltChainable`);class v{constructor(){this.steps=[]}map(e){return this.steps.push(e),this}forEach(e){return this.steps.push(t=>(e(t),t)),this}filter(e){return this.steps.push(t=>e(t)?t:_),this}reduce(e,t){let n=t;return this.steps.push(t=>(n=e(n,t),n)),this}latch(e=(e,t)=>e===t){let t=!0,n;return this.steps.push(r=>{let i=t||!e(r,n);return t=!1,n=r,i?r:_}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===_)break;return e}}function y(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new mS({onWillAddFirstListener:()=>e.on(t,r),onDidRemoveLastListener:()=>e.removeListener(t,r)});return i.event}e.fromNodeEventEmitter=y;function b(e,t,n=e=>e){let r=(...e)=>i.fire(n(...e)),i=new mS({onWillAddFirstListener:()=>e.addEventListener(t,r),onDidRemoveLastListener:()=>e.removeEventListener(t,r)});return i.event}e.fromDOMEventEmitter=b;function x(e){return new Promise(t=>n(e)(t))}e.toPromise=x;function S(e){let t=new mS;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=S;function C(e,t){return e(e=>t.fire(e))}e.forward=C;function w(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=w;class T{constructor(e,t){this._observable=e,this._counter=0,this._hasChanged=!1;let n={onWillAddFirstListener:()=>{e.addObserver(this)},onDidRemoveLastListener:()=>{e.removeObserver(this)}};this.emitter=new mS(n),t&&t.add(this.emitter)}beginUpdate(e){this._counter++}handlePossibleChange(e){}handleChange(e,t){this._hasChanged=!0}endUpdate(e){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function E(e,t){return new T(e,t).emitter.event}e.fromObservable=E;function D(e){return(t,n,r)=>{let i=0,a=!1,o={beginUpdate(){i++},endUpdate(){i--,i===0&&(e.reportChanges(),a&&(a=!1,t.call(n)))},handlePossibleChange(){},handleChange(){a=!0}};e.addObserver(o),e.reportChanges();let s={dispose(){e.removeObserver(o)}};return r instanceof Hb?r.add(s):Array.isArray(r)&&r.push(s),s}}e.fromObservableLight=D})(nS||={});var rS=class e{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${e._idPool++}`,e.all.add(this)}start(e){this._stopWatch=new tS,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}};rS.all=new Set,rS._idPool=0;var iS=rS,aS=-1,oS=class e{constructor(t,n,r=(e._idPool++).toString(16).padStart(3,`0`)){this._errorHandler=t,this.threshold=n,this.name=r,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t<n)return;this._stacks||=new Map;let r=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,r+1),--this._warnCountdown,this._warnCountdown<=0){this._warnCountdown=n*.5;let[e,r]=this.getMostFrequentStack(),i=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${r}):`;console.warn(i),console.warn(e);let a=new lS(i,e);this._errorHandler(a)}return()=>{let t=this._stacks.get(e.value)||0;this._stacks.set(e.value,t-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t<r)&&(e=[n,r],t=r);return e}};oS._idPool=1;var sS=oS,cS=class e{constructor(e){this.value=e}static create(){return new e(Error().stack??``)}print(){console.warn(this.value.split(`
|
|
50
|
+
`).slice(2).join(`
|
|
51
|
+
`))}},lS=class extends Error{constructor(e,t){super(e),this.name=`ListenerLeakError`,this.stack=t}},uS=class extends Error{constructor(e,t){super(e),this.name=`ListenerRefusalError`,this.stack=t}},dS=0,fS=class{constructor(e){this.value=e,this.id=dS++}},pS=2,mS=class{constructor(e){this._size=0,this._options=e,this._leakageMon=aS>0||this._options?.leakWarningThreshold?new sS(e?.onListenerError??Tb,this._options?.leakWarningThreshold??aS):void 0,this._perfMon=this._options?._profName?new iS(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let e=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(e);let t=this._leakageMon.getMostFrequentStack()??[`UNKNOWN stack`,-1],n=new uS(`${e}. HINT: Stack shows most frequent listener (${t[1]}-times)`,t[0]);return(this._options?.onListenerError||Tb)(n),Ub.None}if(this._disposed)return Ub.None;t&&(e=e.bind(t));let r=new fS(e),i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=cS.create(),i=this._leakageMon.check(r.stack,this._size+1)),this._listeners?this._listeners instanceof fS?(this._deliveryQueue??=new hS,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._size++;let a=Bb(()=>{i?.(),this._removeListener(r)});return n instanceof Hb?n.add(a):Array.isArray(n)&&n.push(a),a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log(`disposed?`,this._disposed),console.log(`size?`,this._size),console.log(`arr?`,JSON.stringify(this._listeners)),Error(`Attempted to dispose unknown listener`);this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*pS<=t.length){let e=0;for(let n=0;n<t.length;n++)t[n]?t[e++]=t[n]:r&&(this._deliveryQueue.end--,e<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=e}}_deliver(e,t){if(!e)return;let n=this._options?.onListenerError||Tb;if(!n){e.value(t);return}try{e.value(t)}catch(e){n(e)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners){if(this._listeners instanceof fS)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}}this._perfMon?.stop()}hasListeners(){return this._size>0}},hS=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},gS={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}},_S=2,vS,yS=class e{constructor(e,t,n){this._document=e,this._config=t,this._unicodeService=n,this._didWarmUp=!1,this._cacheMap=new Kx,this._cacheMapCombined=new Kx,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new Zx,this._textureSize=512,this._onAddTextureAtlasCanvas=new mS,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new mS,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=CS(e,this._config.deviceCellWidth*4+_S*2,this._config.deviceCellHeight+_S*2),this._tmpCtx=dx(this._tmpCanvas.getContext(`2d`,{alpha:this._config.allowTransparency,willReadFrequently:!0}))}get pages(){return this._pages}dispose(){this._tmpCanvas.remove();for(let e of this.pages)e.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||=(this._doWarmUp(),!0)}_doWarmUp(){let e=new Xx;for(let t=33;t<126;t++)e.enqueue(()=>{if(!this._cacheMap.get(t,0,0,0)){let e=this._drawToCache(t,0,0,0,!1,void 0);this._cacheMap.set(t,0,0,0,e)}})}beginFrame(){return this._requestClearModel}clearTexture(){if(this._pages[0].currentRow.x!==0||this._pages[0].currentRow.y!==0){for(let e of this._pages)e.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(e.maxAtlasPages&&this._pages.length>=Math.max(4,e.maxAtlasPages)){let t=this._pages.filter(t=>t.canvas.width*2<=(e.maxTextureSize||4096)).sort((e,t)=>t.canvas.width===e.canvas.width?t.percentageUsed-e.percentageUsed:t.canvas.width-e.canvas.width),n=-1,r=0;for(let e=0;e<t.length;e++)if(t[e].canvas.width!==r)n=e,r=t[e].canvas.width;else if(e-n===3)break;let i=t.slice(n,n+4),a=i.map(e=>e.glyphs[0].texturePage).sort((e,t)=>e>t?1:-1),o=this.pages.length-i.length,s=this._mergePages(i,o);s.version++;for(let e=a.length-1;e>=0;e--)this._deletePage(a[e]);this.pages.push(s),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(s.canvas)}let t=new bS(this._document,this._textureSize);return this._pages.push(t),this._activePages.push(t),this._onAddTextureAtlasCanvas.fire(t.canvas),t}_mergePages(e,t){let n=e[0].canvas.width*2,r=new bS(this._document,n,e);for(let[i,a]of e.entries()){let e=i*a.canvas.width%n,o=Math.floor(i/2)*a.canvas.height;r.ctx.drawImage(a.canvas,e,o);for(let r of a.glyphs)r.texturePage=t,r.sizeClipSpace.x=r.size.x/n,r.sizeClipSpace.y=r.size.y/n,r.texturePosition.x+=e,r.texturePosition.y+=o,r.texturePositionClipSpace.x=r.texturePosition.x/n,r.texturePositionClipSpace.y=r.texturePosition.y/n;this._onRemoveTextureAtlasCanvas.fire(a.canvas);let s=this._activePages.indexOf(a);s!==-1&&this._activePages.splice(s,1)}return r}_deletePage(e){this._pages.splice(e,1);for(let t=e;t<this._pages.length;t++){let e=this._pages[t];for(let t of e.glyphs)t.texturePage--;e.version++}}getRasterizedGlyphCombinedChar(e,t,n,r,i,a){return this._getFromCacheMap(this._cacheMapCombined,e,t,n,r,i,a)}getRasterizedGlyph(e,t,n,r,i,a){return this._getFromCacheMap(this._cacheMap,e,t,n,r,i,a)}_getFromCacheMap(e,t,n,r,i,a,o){return vS=e.get(t,n,r,i),vS||(vS=this._drawToCache(t,n,r,i,a,o),e.set(t,n,r,i,vS)),vS}_getColorFromAnsiIndex(e){if(e>=this._config.colors.ansi.length)throw Error(`No color found for idx `+e);return this._config.colors.ansi[e]}_getBackgroundColor(e,t,n,r){if(this._config.allowTransparency)return rx;let i;switch(e){case 16777216:case 33554432:i=this._getColorFromAnsiIndex(t);break;case 50331648:let e=Zx.toColorRGB(t);i=ix.toColor(e[0],e[1],e[2]);break;default:i=n?ax.opaque(this._config.colors.foreground):this._config.colors.background}return this._config.allowTransparency||(i=ax.opaque(i)),i}_getForegroundColor(e,t,n,r,i,a,o,s,c,l){let u=this._getMinimumContrastColor(e,t,n,r,i,a,o,c,s,l);if(u)return u;let d;switch(i){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&c&&a<8&&(a+=8),d=this._getColorFromAnsiIndex(a);break;case 50331648:let e=Zx.toColorRGB(a);d=ix.toColor(e[0],e[1],e[2]);break;default:d=o?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(d=ax.opaque(d)),s&&(d=ax.multiplyOpacity(d,Ax)),d}_resolveBackgroundRgba(e,t,n){switch(e){case 16777216:case 33554432:return this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return n?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(e,t,n,r){switch(e){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&r&&t<8&&(t+=8),this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return n?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(e,t,n,r,i,a,o,s,c,l){if(this._config.minimumContrastRatio===1||l)return;let u=this._getContrastCache(c),d=u.getColor(e,r);if(d!==void 0)return d||void 0;let f=this._resolveBackgroundRgba(t,n,o),p=this._resolveForegroundRgba(i,a,o,s),m=cx.ensureContrastRatio(f,p,this._config.minimumContrastRatio/(c?2:1));if(!m){u.setColor(e,r,null);return}let h=ix.toColor(m>>24&255,m>>16&255,m>>8&255);return u.setColor(e,r,h),h}_getContrastCache(e){return e?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(t,n,r,i,a,o){let s=typeof t==`number`?String.fromCharCode(t):t;o&&this._tmpCanvas.parentElement!==o&&(this._tmpCanvas.style.display=`none`,o.append(this._tmpCanvas));let c=Math.min(this._config.deviceCellWidth*Math.max(s.length,2)+_S*2,this._config.deviceMaxTextureSize);this._tmpCanvas.width<c&&(this._tmpCanvas.width=c);let l=Math.min(this._config.deviceCellHeight+_S*4,this._textureSize);if(this._tmpCanvas.height<l&&(this._tmpCanvas.height=l),this._tmpCtx.save(),this._workAttributeData.fg=r,this._workAttributeData.bg=n,this._workAttributeData.extended.ext=i,this._workAttributeData.isInvisible())return gS;let u=!!this._workAttributeData.isBold(),d=!!this._workAttributeData.isInverse(),f=!!this._workAttributeData.isDim(),p=!!this._workAttributeData.isItalic(),m=!!this._workAttributeData.isUnderline(),h=!!this._workAttributeData.isStrikethrough(),g=!!this._workAttributeData.isOverline(),_=this._workAttributeData.getFgColor(),v=this._workAttributeData.getFgColorMode(),y=this._workAttributeData.getBgColor(),b=this._workAttributeData.getBgColorMode();if(d){let e=_;_=y,y=e;let t=v;v=b,b=t}let x=this._getBackgroundColor(b,y,d,f);this._tmpCtx.globalCompositeOperation=`copy`,this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.globalCompositeOperation=`source-over`;let S=u?this._config.fontWeightBold:this._config.fontWeight,C=p?`italic`:``;this._tmpCtx.font=`${C} ${S} ${this._config.fontSize*this._config.devicePixelRatio}px ${this._config.fontFamily}`,this._tmpCtx.textBaseline=jx;let w=s.length===1&&fx(s.charCodeAt(0)),T=s.length===1&&px(s.charCodeAt(0)),E=this._getForegroundColor(n,b,y,r,v,_,d,f,u,vx(s.charCodeAt(0)));this._tmpCtx.fillStyle=E.css;let D=T?0:_S*2,O=!1;this._config.customGlyphs!==!1&&(O=Ix(this._tmpCtx,s,D,D,this._config.deviceCellWidth,this._config.deviceCellHeight,this._config.fontSize,this._config.devicePixelRatio));let k=!w,A;if(A=typeof t==`number`?this._unicodeService.wcwidth(t):this._unicodeService.getStringCellWidth(t),m){this._tmpCtx.save();let e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;if(this._tmpCtx.lineWidth=e,this._workAttributeData.isUnderlineColorDefault())this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle;else if(this._workAttributeData.isUnderlineColorRGB())k=!1,this._tmpCtx.strokeStyle=`rgb(${Zx.toColorRGB(this._workAttributeData.getUnderlineColor()).join(`,`)})`;else{k=!1;let e=this._workAttributeData.getUnderlineColor();this._config.drawBoldTextInBrightColors&&this._workAttributeData.isBold()&&e<8&&(e+=8),this._tmpCtx.strokeStyle=this._getColorFromAnsiIndex(e).css}this._tmpCtx.beginPath();let n=D,r=Math.ceil(D+this._config.deviceCharHeight)-t-(a?e*2:0),i=r+e,o=r+e*2,c=this._workAttributeData.getUnderlineVariantOffset();for(let a=0;a<A;a++){this._tmpCtx.save();let s=n+a*this._config.deviceCellWidth,l=n+(a+1)*this._config.deviceCellWidth,u=s+this._config.deviceCellWidth/2;switch(this._workAttributeData.extended.underlineStyle){case 2:this._tmpCtx.moveTo(s,r),this._tmpCtx.lineTo(l,r),this._tmpCtx.moveTo(s,o),this._tmpCtx.lineTo(l,o);break;case 3:let n=e<=1?o:Math.ceil(D+this._config.deviceCharHeight-e/2)-t,a=e<=1?r:Math.ceil(D+this._config.deviceCharHeight+e/2)-t,d=new Path2D;d.rect(s,r,this._config.deviceCellWidth,o-r),this._tmpCtx.clip(d),this._tmpCtx.moveTo(s-this._config.deviceCellWidth/2,i),this._tmpCtx.bezierCurveTo(s-this._config.deviceCellWidth/2,a,s,a,s,i),this._tmpCtx.bezierCurveTo(s,n,u,n,u,i),this._tmpCtx.bezierCurveTo(u,a,l,a,l,i),this._tmpCtx.bezierCurveTo(l,n,l+this._config.deviceCellWidth/2,n,l+this._config.deviceCellWidth/2,i);break;case 4:let f=c===0?0:c>=e?e*2-c:e-c;c>=e||f===0?(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(s+f,r),this._tmpCtx.lineTo(l,r)):(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(s,r),this._tmpCtx.lineTo(s+f,r),this._tmpCtx.moveTo(s+f+e,r),this._tmpCtx.lineTo(l,r)),c=xx(l-s,e,c);break;case 5:let p=l-s,m=Math.floor(.6*p),h=Math.floor(.3*p),g=p-m-h;this._tmpCtx.setLineDash([m,h,g]),this._tmpCtx.moveTo(s,r),this._tmpCtx.lineTo(l,r);break;default:this._tmpCtx.moveTo(s,r),this._tmpCtx.lineTo(l,r)}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!O&&this._config.fontSize>=12&&!this._config.allowTransparency&&s!==` `){this._tmpCtx.save(),this._tmpCtx.textBaseline=`alphabetic`;let t=this._tmpCtx.measureText(s);if(this._tmpCtx.restore(),`actualBoundingBoxDescent`in t&&t.actualBoundingBoxDescent>0){this._tmpCtx.save();let t=new Path2D;t.rect(n,r-Math.ceil(e/2),this._config.deviceCellWidth*A,o-r+Math.ceil(e/2)),this._tmpCtx.clip(t),this._tmpCtx.lineWidth=this._config.devicePixelRatio*3,this._tmpCtx.strokeStyle=x.css,this._tmpCtx.strokeText(s,D,D+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(g){let e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(D,D+t),this._tmpCtx.lineTo(D+this._config.deviceCharWidth*A,D+t),this._tmpCtx.stroke()}if(O||this._tmpCtx.fillText(s,D,D+this._config.deviceCharHeight),s===`_`&&!this._config.allowTransparency){let e=xS(this._tmpCtx.getImageData(D,D,this._config.deviceCellWidth,this._config.deviceCellHeight),x,E,k);if(e)for(let t=1;t<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=x.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(s,D,D+this._config.deviceCharHeight-t),e=xS(this._tmpCtx.getImageData(D,D,this._config.deviceCellWidth,this._config.deviceCellHeight),x,E,k),e);t++);}if(h){let e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),t=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(D,D+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.lineTo(D+this._config.deviceCharWidth*A,D+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.stroke()}this._tmpCtx.restore();let j=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height),ee;if(ee=this._config.allowTransparency?SS(j):xS(j,x,E,k),ee)return gS;let M=this._findGlyphBoundingBox(j,this._workBoundingBox,c,T,O,D),N,P;for(;;){if(this._activePages.length===0){let e=this._createNewPage();N=e,P=e.currentRow,P.height=M.size.y;break}N=this._activePages[this._activePages.length-1],P=N.currentRow;for(let e of this._activePages)M.size.y<=e.currentRow.height&&(N=e,P=e.currentRow);for(let e=this._activePages.length-1;e>=0;e--)for(let t of this._activePages[e].fixedRows)t.height<=P.height&&M.size.y<=t.height&&(N=this._activePages[e],P=t);if(M.size.x>this._textureSize){this._overflowSizePage||(this._overflowSizePage=new bS(this._document,this._config.deviceMaxTextureSize),this.pages.push(this._overflowSizePage),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(this._overflowSizePage.canvas)),N=this._overflowSizePage,P=this._overflowSizePage.currentRow,P.x+M.size.x>=N.canvas.width&&(P.x=0,P.y+=P.height,P.height=0);break}if(P.y+M.size.y>=N.canvas.height||P.height>M.size.y+2){let t=!1;if(N.currentRow.y+N.currentRow.height+M.size.y>=N.canvas.height){let n;for(let e of this._activePages)if(e.currentRow.y+e.currentRow.height+M.size.y<e.canvas.height){n=e;break}if(n)N=n;else if(e.maxAtlasPages&&this._pages.length>=e.maxAtlasPages&&P.y+M.size.y<=N.canvas.height&&P.height>=M.size.y&&P.x+M.size.x<=N.canvas.width)t=!0;else{let e=this._createNewPage();N=e,P=e.currentRow,P.height=M.size.y,t=!0}}t||(N.currentRow.height>0&&N.fixedRows.push(N.currentRow),P={x:0,y:N.currentRow.y+N.currentRow.height,height:M.size.y},N.fixedRows.push(P),N.currentRow={x:0,y:P.y+P.height,height:0})}if(P.x+M.size.x<=N.canvas.width)break;P===N.currentRow?(P.x=0,P.y+=P.height,P.height=0):N.fixedRows.splice(N.fixedRows.indexOf(P),1)}return M.texturePage=this._pages.indexOf(N),M.texturePosition.x=P.x,M.texturePosition.y=P.y,M.texturePositionClipSpace.x=P.x/N.canvas.width,M.texturePositionClipSpace.y=P.y/N.canvas.height,M.sizeClipSpace.x/=N.canvas.width,M.sizeClipSpace.y/=N.canvas.height,P.height=Math.max(P.height,M.size.y),P.x+=M.size.x,N.ctx.putImageData(j,M.texturePosition.x-this._workBoundingBox.left,M.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,M.size.x,M.size.y),N.addGlyph(M),N.version++,M}_findGlyphBoundingBox(e,t,n,r,i,a){t.top=0;let o=r?this._config.deviceCellHeight:this._tmpCanvas.height,s=r?this._config.deviceCellWidth:n,c=!1;for(let n=0;n<o;n++){for(let r=0;r<s;r++){let i=n*this._tmpCanvas.width*4+r*4+3;if(e.data[i]!==0){t.top=n,c=!0;break}}if(c)break}t.left=0,c=!1;for(let n=0;n<a+s;n++){for(let r=0;r<o;r++){let i=r*this._tmpCanvas.width*4+n*4+3;if(e.data[i]!==0){t.left=n,c=!0;break}}if(c)break}t.right=s,c=!1;for(let n=a+s-1;n>=a;n--){for(let r=0;r<o;r++){let i=r*this._tmpCanvas.width*4+n*4+3;if(e.data[i]!==0){t.right=n,c=!0;break}}if(c)break}t.bottom=o,c=!1;for(let n=o-1;n>=0;n--){for(let r=0;r<s;r++){let i=n*this._tmpCanvas.width*4+r*4+3;if(e.data[i]!==0){t.bottom=n,c=!0;break}}if(c)break}return{texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},size:{x:t.right-t.left+1,y:t.bottom-t.top+1},sizeClipSpace:{x:t.right-t.left+1,y:t.bottom-t.top+1},offset:{x:-t.left+a+(r||i?Math.floor((this._config.deviceCellWidth-this._config.deviceCharWidth)/2):0),y:-t.top+a+(r||i?this._config.lineHeight===1?0:Math.round((this._config.deviceCellHeight-this._config.deviceCharHeight)/2):0)}}}},bS=class{constructor(e,t,n){if(this._usedPixels=0,this._glyphs=[],this.version=0,this.currentRow={x:0,y:0,height:0},this.fixedRows=[],n)for(let e of n)this._glyphs.push(...e.glyphs),this._usedPixels+=e._usedPixels;this.canvas=CS(e,t,t),this.ctx=dx(this.canvas.getContext(`2d`,{alpha:!0}))}get percentageUsed(){return this._usedPixels/(this.canvas.width*this.canvas.height)}get glyphs(){return this._glyphs}addGlyph(e){this._glyphs.push(e),this._usedPixels+=e.size.x*e.size.y}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.currentRow.x=0,this.currentRow.y=0,this.currentRow.height=0,this.fixedRows.length=0,this.version++}};function xS(e,t,n,r){let i=t.rgba>>>24,a=t.rgba>>>16&255,o=t.rgba>>>8&255,s=n.rgba>>>24,c=n.rgba>>>16&255,l=n.rgba>>>8&255,u=Math.floor((Math.abs(i-s)+Math.abs(a-c)+Math.abs(o-l))/12),d=!0;for(let t=0;t<e.data.length;t+=4)e.data[t]===i&&e.data[t+1]===a&&e.data[t+2]===o||r&&Math.abs(e.data[t]-i)+Math.abs(e.data[t+1]-a)+Math.abs(e.data[t+2]-o)<u?e.data[t+3]=0:d=!1;return d}function SS(e){for(let t=0;t<e.data.length;t+=4)if(e.data[t+3]>0)return!1;return!0}function CS(e,t,n){let r=e.createElement(`canvas`);return r.width=t,r.height=n,r}function wS(e,t,n,r,i,a,o,s){let c={foreground:a.foreground,background:a.background,cursor:rx,cursorAccent:rx,selectionForeground:rx,selectionBackgroundTransparent:rx,selectionBackgroundOpaque:rx,selectionInactiveBackgroundTransparent:rx,selectionInactiveBackgroundOpaque:rx,overviewRulerBorder:rx,scrollbarSliderBackground:rx,scrollbarSliderHoverBackground:rx,scrollbarSliderActiveBackground:rx,ansi:a.ansi.slice(),contrastCache:a.contrastCache,halfContrastCache:a.halfContrastCache};return{customGlyphs:i.customGlyphs,devicePixelRatio:o,deviceMaxTextureSize:s,letterSpacing:i.letterSpacing,lineHeight:i.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:n,deviceCharHeight:r,fontFamily:i.fontFamily,fontSize:i.fontSize,fontWeight:i.fontWeight,fontWeightBold:i.fontWeightBold,allowTransparency:i.allowTransparency,drawBoldTextInBrightColors:i.drawBoldTextInBrightColors,minimumContrastRatio:i.minimumContrastRatio,colors:c}}function TS(e,t){for(let n=0;n<e.colors.ansi.length;n++)if(e.colors.ansi[n].rgba!==t.colors.ansi[n].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.customGlyphs===t.customGlyphs&&e.lineHeight===t.lineHeight&&e.letterSpacing===t.letterSpacing&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.deviceCharWidth===t.deviceCharWidth&&e.deviceCharHeight===t.deviceCharHeight&&e.drawBoldTextInBrightColors===t.drawBoldTextInBrightColors&&e.minimumContrastRatio===t.minimumContrastRatio&&e.colors.foreground.rgba===t.colors.foreground.rgba&&e.colors.background.rgba===t.colors.background.rgba}function ES(e){return(e&50331648)==16777216||(e&50331648)==33554432}var DS=[];function OS(e,t,n,r,i,a,o,s,c){let l=wS(r,i,a,o,t,n,s,c);for(let t=0;t<DS.length;t++){let n=DS[t],r=n.ownedBy.indexOf(e);if(r>=0){if(TS(n.config,l))return n.atlas;n.ownedBy.length===1?(n.atlas.dispose(),DS.splice(t,1)):n.ownedBy.splice(r,1);break}}for(let t=0;t<DS.length;t++){let n=DS[t];if(TS(n.config,l))return n.ownedBy.push(e),n.atlas}let u=e._core,d={atlas:new yS(document,l,u.unicodeService),config:l,ownedBy:[e]};return DS.push(d),d.atlas}function kS(e){for(let t=0;t<DS.length;t++){let n=DS[t].ownedBy.indexOf(e);if(n!==-1){DS[t].ownedBy.length===1?(DS[t].atlas.dispose(),DS.splice(t,1)):DS[t].ownedBy.splice(n,1);break}}}var AS=600,jS=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&=(this._coreBrowserService.window.clearInterval(this._blinkInterval),void 0),this._blinkStartTimeout&&=(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),void 0),this._animationFrame&&=(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}))}_restartInterval(e=AS){this._blinkInterval&&=(this._coreBrowserService.window.clearInterval(this._blinkInterval),void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout(()=>{if(this._animationTimeRestarted){let e=AS-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,e>0){this._restartInterval(e);return}}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}),this._blinkInterval=this._coreBrowserService.window.setInterval(()=>{if(this._animationTimeRestarted){let e=AS-(Date.now()-this._animationTimeRestarted);this._animationTimeRestarted=void 0,this._restartInterval(e);return}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})},AS)},e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&=(this._coreBrowserService.window.clearInterval(this._blinkInterval),void 0),this._blinkStartTimeout&&=(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),void 0),this._animationFrame&&=(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}};function MS(e,t,n){let r=new t.ResizeObserver(t=>{let i=t.find(t=>t.target===e);if(!i)return;if(!(`devicePixelContentBoxSize`in i)){r?.disconnect(),r=void 0;return}let a=i.devicePixelContentBoxSize[0].inlineSize,o=i.devicePixelContentBoxSize[0].blockSize;a>0&&o>0&&n(a,o)});try{r.observe(e,{box:[`device-pixel-content-box`]})}catch{r.disconnect(),r=void 0}return Bb(()=>r?.disconnect())}function NS(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}var PS=class e extends Zx{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Qx,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?NS(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},FS=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]);function IS(e,t,n){let r=dx(e.createProgram());if(e.attachShader(r,dx(LS(e,e.VERTEX_SHADER,t))),e.attachShader(r,dx(LS(e,e.FRAGMENT_SHADER,n))),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS))return r;console.error(e.getProgramInfoLog(r)),e.deleteProgram(r)}function LS(e,t,n){let r=dx(e.createShader(t));if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.error(e.getShaderInfoLog(r)),e.deleteShader(r)}function RS(e,t){let n=Math.min(e.length*2,t),r=new Float32Array(n);for(let t=0;t<e.length;t++)r[t]=e[t];return r}var zS=class{constructor(e){this.texture=e,this.version=-1}},BS=`#version 300 es
|
|
52
|
+
layout (location = 0) in vec2 a_unitquad;
|
|
53
|
+
layout (location = 1) in vec2 a_cellpos;
|
|
54
|
+
layout (location = 2) in vec2 a_offset;
|
|
55
|
+
layout (location = 3) in vec2 a_size;
|
|
56
|
+
layout (location = 4) in float a_texpage;
|
|
57
|
+
layout (location = 5) in vec2 a_texcoord;
|
|
58
|
+
layout (location = 6) in vec2 a_texsize;
|
|
59
|
+
|
|
60
|
+
uniform mat4 u_projection;
|
|
61
|
+
uniform vec2 u_resolution;
|
|
62
|
+
|
|
63
|
+
out vec2 v_texcoord;
|
|
64
|
+
flat out int v_texpage;
|
|
65
|
+
|
|
66
|
+
void main() {
|
|
67
|
+
vec2 zeroToOne = (a_offset / u_resolution) + a_cellpos + (a_unitquad * a_size);
|
|
68
|
+
gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);
|
|
69
|
+
v_texpage = int(a_texpage);
|
|
70
|
+
v_texcoord = a_texcoord + a_unitquad * a_texsize;
|
|
71
|
+
}`;function VS(e){let t=``;for(let n=1;n<e;n++)t+=` else if (v_texpage == ${n}) { outColor = texture(u_texture[${n}], v_texcoord); }`;return`#version 300 es
|
|
72
|
+
precision lowp float;
|
|
73
|
+
|
|
74
|
+
in vec2 v_texcoord;
|
|
75
|
+
flat in int v_texpage;
|
|
76
|
+
|
|
77
|
+
uniform sampler2D u_texture[${e}];
|
|
78
|
+
|
|
79
|
+
out vec4 outColor;
|
|
80
|
+
|
|
81
|
+
void main() {
|
|
82
|
+
if (v_texpage == 0) {
|
|
83
|
+
outColor = texture(u_texture[0], v_texcoord);
|
|
84
|
+
} ${t}
|
|
85
|
+
}`}var HS=11,US=HS*Float32Array.BYTES_PER_ELEMENT,WS=2,GS=0,KS,qS=0,JS=0,YS=class extends Ub{constructor(e,t,n,r){super(),this._terminal=e,this._gl=t,this._dimensions=n,this._optionsService=r,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array,attributesBuffers:[new Float32Array,new Float32Array]};let i=this._gl;yS.maxAtlasPages===void 0&&(yS.maxAtlasPages=Math.min(32,dx(i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS))),yS.maxTextureSize=dx(i.getParameter(i.MAX_TEXTURE_SIZE))),this._program=dx(IS(i,BS,VS(yS.maxAtlasPages))),this._register(Bb(()=>i.deleteProgram(this._program))),this._projectionLocation=dx(i.getUniformLocation(this._program,`u_projection`)),this._resolutionLocation=dx(i.getUniformLocation(this._program,`u_resolution`)),this._textureLocation=dx(i.getUniformLocation(this._program,`u_texture`)),this._vertexArrayObject=i.createVertexArray(),i.bindVertexArray(this._vertexArrayObject);let a=new Float32Array([0,0,1,0,0,1,1,1]),o=i.createBuffer();this._register(Bb(()=>i.deleteBuffer(o))),i.bindBuffer(i.ARRAY_BUFFER,o),i.bufferData(i.ARRAY_BUFFER,a,i.STATIC_DRAW),i.enableVertexAttribArray(0),i.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);let s=new Uint8Array([0,1,2,3]),c=i.createBuffer();this._register(Bb(()=>i.deleteBuffer(c))),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,c),i.bufferData(i.ELEMENT_ARRAY_BUFFER,s,i.STATIC_DRAW),this._attributesBuffer=dx(i.createBuffer()),this._register(Bb(()=>i.deleteBuffer(this._attributesBuffer))),i.bindBuffer(i.ARRAY_BUFFER,this._attributesBuffer),i.enableVertexAttribArray(2),i.vertexAttribPointer(2,2,i.FLOAT,!1,US,0),i.vertexAttribDivisor(2,1),i.enableVertexAttribArray(3),i.vertexAttribPointer(3,2,i.FLOAT,!1,US,2*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(3,1),i.enableVertexAttribArray(4),i.vertexAttribPointer(4,1,i.FLOAT,!1,US,4*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(4,1),i.enableVertexAttribArray(5),i.vertexAttribPointer(5,2,i.FLOAT,!1,US,5*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(5,1),i.enableVertexAttribArray(6),i.vertexAttribPointer(6,2,i.FLOAT,!1,US,7*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(6,1),i.enableVertexAttribArray(1),i.vertexAttribPointer(1,2,i.FLOAT,!1,US,9*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(1,1),i.useProgram(this._program);let l=new Int32Array(yS.maxAtlasPages);for(let e=0;e<yS.maxAtlasPages;e++)l[e]=e;i.uniform1iv(this._textureLocation,l),i.uniformMatrix4fv(this._projectionLocation,!1,FS),this._atlasTextures=[];for(let e=0;e<yS.maxAtlasPages;e++){let t=new zS(dx(i.createTexture()));this._register(Bb(()=>i.deleteTexture(t.texture))),i.activeTexture(i.TEXTURE0+e),i.bindTexture(i.TEXTURE_2D,t.texture),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,1,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[e]=t}i.enable(i.BLEND),i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(e,t,n,r,i,a,o,s,c){this._updateCell(this._vertices.attributes,e,t,n,r,i,a,o,s,c)}_updateCell(e,t,n,r,i,a,o,s,c,l){if(GS=(n*this._terminal.cols+t)*HS,r===0||r===void 0){e.fill(0,GS,GS+HS-1-WS);return}this._atlas&&(KS=s&&s.length>1?this._atlas.getRasterizedGlyphCombinedChar(s,i,a,o,!1,this._terminal.element):this._atlas.getRasterizedGlyph(r,i,a,o,!1,this._terminal.element),qS=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),i!==l&&KS.offset.x>qS?(JS=KS.offset.x-qS,e[GS]=-(KS.offset.x-JS)+this._dimensions.device.char.left,e[GS+1]=-KS.offset.y+this._dimensions.device.char.top,e[GS+2]=(KS.size.x-JS)/this._dimensions.device.canvas.width,e[GS+3]=KS.size.y/this._dimensions.device.canvas.height,e[GS+4]=KS.texturePage,e[GS+5]=KS.texturePositionClipSpace.x+JS/this._atlas.pages[KS.texturePage].canvas.width,e[GS+6]=KS.texturePositionClipSpace.y,e[GS+7]=KS.sizeClipSpace.x-JS/this._atlas.pages[KS.texturePage].canvas.width,e[GS+8]=KS.sizeClipSpace.y):(e[GS]=-KS.offset.x+this._dimensions.device.char.left,e[GS+1]=-KS.offset.y+this._dimensions.device.char.top,e[GS+2]=KS.size.x/this._dimensions.device.canvas.width,e[GS+3]=KS.size.y/this._dimensions.device.canvas.height,e[GS+4]=KS.texturePage,e[GS+5]=KS.texturePositionClipSpace.x,e[GS+6]=KS.texturePositionClipSpace.y,e[GS+7]=KS.sizeClipSpace.x,e[GS+8]=KS.sizeClipSpace.y),this._optionsService.rawOptions.rescaleOverlappingGlyphs&&_x(r,c,KS.size.x,this._dimensions.device.cell.width)&&(e[GS+2]=(this._dimensions.device.cell.width-1)/this._dimensions.device.canvas.width))}clear(){let e=this._terminal,t=e.cols*e.rows*HS;this._vertices.count===t?this._vertices.attributes.fill(0):this._vertices.attributes=new Float32Array(t);let n=0;for(;n<this._vertices.attributesBuffers.length;n++)this._vertices.count===t?this._vertices.attributesBuffers[n].fill(0):this._vertices.attributesBuffers[n]=new Float32Array(t);this._vertices.count=t,n=0;for(let t=0;t<e.rows;t++)for(let r=0;r<e.cols;r++)this._vertices.attributes[n+9]=r/e.cols,this._vertices.attributes[n+10]=t/e.rows,n+=HS}handleResize(){let e=this._gl;e.useProgram(this._program),e.viewport(0,0,e.canvas.width,e.canvas.height),e.uniform2f(this._resolutionLocation,e.canvas.width,e.canvas.height),this.clear()}render(e){if(!this._atlas)return;let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),this._activeBuffer=(this._activeBuffer+1)%2;let n=this._vertices.attributesBuffers[this._activeBuffer],r=0;for(let t=0;t<e.lineLengths.length;t++){let i=t*this._terminal.cols*HS,a=this._vertices.attributes.subarray(i,i+e.lineLengths[t]*HS);n.set(a,r),r+=a.length}t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,n.subarray(0,r),t.STREAM_DRAW);for(let e=0;e<this._atlas.pages.length;e++)this._atlas.pages[e].version!==this._atlasTextures[e].version&&this._bindAtlasPageTexture(t,this._atlas,e);t.drawElementsInstanced(t.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,r/HS)}setAtlas(e){this._atlas=e;for(let e of this._atlasTextures)e.version=-1}_bindAtlasPageTexture(e,t,n){e.activeTexture(e.TEXTURE0+n),e.bindTexture(e.TEXTURE_2D,this._atlasTextures[n].texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.pages[n].canvas),e.generateMipmap(e.TEXTURE_2D),this._atlasTextures[n].version=t.pages[n].version}setDimensions(e){this._dimensions=e}},XS=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,n,r=!1){if(this.selectionStart=t,this.selectionEnd=n,!t||!n||t[0]===n[0]&&t[1]===n[1]){this.clear();return}let i=e.buffers.active.ydisp,a=t[1]-i,o=n[1]-i,s=Math.max(a,0),c=Math.min(o,e.rows-1);if(s>=e.rows||c<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=r,this.viewportStartRow=a,this.viewportEndRow=o,this.viewportCappedStartRow=s,this.viewportCappedEndRow=c,this.startCol=t[0],this.endCol=n[0]}isCellSelected(e,t,n){return this.hasSelection?(n-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&n>=this.viewportCappedStartRow&&t<this.endCol&&n<=this.viewportCappedEndRow:t<this.startCol&&n>=this.viewportCappedStartRow&&t>=this.endCol&&n<=this.viewportCappedEndRow:n>this.viewportStartRow&&n<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&n===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&n===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&n===this.viewportStartRow&&t>=this.startCol):!1}};function ZS(){return new XS}var QS=4,$S=1,eC=2,tC=3,nC=2147483648,rC=class{constructor(){this.cells=new Uint32Array,this.lineLengths=new Uint32Array,this.selection=ZS()}resize(e,t){let n=e*t*QS;n!==this.cells.length&&(this.cells=new Uint32Array(n),this.lineLengths=new Uint32Array(t))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}},iC=`#version 300 es
|
|
86
|
+
layout (location = 0) in vec2 a_position;
|
|
87
|
+
layout (location = 1) in vec2 a_size;
|
|
88
|
+
layout (location = 2) in vec4 a_color;
|
|
89
|
+
layout (location = 3) in vec2 a_unitquad;
|
|
90
|
+
|
|
91
|
+
uniform mat4 u_projection;
|
|
92
|
+
|
|
93
|
+
out vec4 v_color;
|
|
94
|
+
|
|
95
|
+
void main() {
|
|
96
|
+
vec2 zeroToOne = a_position + (a_unitquad * a_size);
|
|
97
|
+
gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);
|
|
98
|
+
v_color = a_color;
|
|
99
|
+
}`,aC=`#version 300 es
|
|
100
|
+
precision lowp float;
|
|
101
|
+
|
|
102
|
+
in vec4 v_color;
|
|
103
|
+
|
|
104
|
+
out vec4 outColor;
|
|
105
|
+
|
|
106
|
+
void main() {
|
|
107
|
+
outColor = v_color;
|
|
108
|
+
}`,oC=8,sC=oC*Float32Array.BYTES_PER_ELEMENT,cC=20*oC,lC=class{constructor(){this.attributes=new Float32Array(cC),this.count=0}},uC=0,dC=0,fC=0,pC=0,mC=0,hC=0,gC=0,_C=class extends Ub{constructor(e,t,n,r){super(),this._terminal=e,this._gl=t,this._dimensions=n,this._themeService=r,this._vertices=new lC,this._verticesCursor=new lC;let i=this._gl;this._program=dx(IS(i,iC,aC)),this._register(Bb(()=>i.deleteProgram(this._program))),this._projectionLocation=dx(i.getUniformLocation(this._program,`u_projection`)),this._vertexArrayObject=i.createVertexArray(),i.bindVertexArray(this._vertexArrayObject);let a=new Float32Array([0,0,1,0,0,1,1,1]),o=i.createBuffer();this._register(Bb(()=>i.deleteBuffer(o))),i.bindBuffer(i.ARRAY_BUFFER,o),i.bufferData(i.ARRAY_BUFFER,a,i.STATIC_DRAW),i.enableVertexAttribArray(3),i.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);let s=new Uint8Array([0,1,2,3]),c=i.createBuffer();this._register(Bb(()=>i.deleteBuffer(c))),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,c),i.bufferData(i.ELEMENT_ARRAY_BUFFER,s,i.STATIC_DRAW),this._attributesBuffer=dx(i.createBuffer()),this._register(Bb(()=>i.deleteBuffer(this._attributesBuffer))),i.bindBuffer(i.ARRAY_BUFFER,this._attributesBuffer),i.enableVertexAttribArray(0),i.vertexAttribPointer(0,2,i.FLOAT,!1,sC,0),i.vertexAttribDivisor(0,1),i.enableVertexAttribArray(1),i.vertexAttribPointer(1,2,i.FLOAT,!1,sC,2*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(1,1),i.enableVertexAttribArray(2),i.vertexAttribPointer(2,4,i.FLOAT,!1,sC,4*Float32Array.BYTES_PER_ELEMENT),i.vertexAttribDivisor(2,1),this._updateCachedColors(r.colors),this._register(this._themeService.onChangeColors(e=>{this._updateCachedColors(e),this._updateViewportRectangle()}))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){let t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,FS),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){let t=this._terminal,n=this._vertices,r=1,i,a,o,s,c,l,u,d,f,p,m;for(i=0;i<t.rows;i++){for(o=-1,s=0,c=0,l=!1,a=0;a<t.cols;a++)u=(i*t.cols+a)*QS,d=e.cells[u+$S],f=e.cells[u+eC],p=!!(f&67108864),(d!==s||f!==c&&(l||p))&&((s!==0||l&&c!==0)&&(m=r++*oC,this._updateRectangle(n,m,c,s,o,a,i)),o=a,s=d,c=f,l=p);(s!==0||l&&c!==0)&&(m=r++*oC,this._updateRectangle(n,m,c,s,o,t.cols,i))}n.count=r}updateCursor(e){let t=this._verticesCursor,n=e.cursor;if(!n||n.style===`block`){t.count=0;return}let r,i=0;(n.style===`bar`||n.style===`outline`)&&(r=i++*oC,this._addRectangleFloat(t.attributes,r,n.x*this._dimensions.device.cell.width,n.y*this._dimensions.device.cell.height,n.style===`bar`?n.dpr*n.cursorWidth:n.dpr,this._dimensions.device.cell.height,this._cursorFloat)),(n.style===`underline`||n.style===`outline`)&&(r=i++*oC,this._addRectangleFloat(t.attributes,r,n.x*this._dimensions.device.cell.width,(n.y+1)*this._dimensions.device.cell.height-n.dpr,n.width*this._dimensions.device.cell.width,n.dpr,this._cursorFloat)),n.style===`outline`&&(r=i++*oC,this._addRectangleFloat(t.attributes,r,n.x*this._dimensions.device.cell.width,n.y*this._dimensions.device.cell.height,n.width*this._dimensions.device.cell.width,n.dpr,this._cursorFloat),r=i++*oC,this._addRectangleFloat(t.attributes,r,(n.x+n.width)*this._dimensions.device.cell.width-n.dpr,n.y*this._dimensions.device.cell.height,n.dpr,this._dimensions.device.cell.height,this._cursorFloat)),t.count=i}_updateRectangle(e,t,n,r,i,a,o){if(n&67108864)switch(n&50331648){case 16777216:case 33554432:uC=this._themeService.colors.ansi[n&255].rgba;break;case 50331648:uC=(n&16777215)<<8;break;default:uC=this._themeService.colors.foreground.rgba}else switch(r&50331648){case 16777216:case 33554432:uC=this._themeService.colors.ansi[r&255].rgba;break;case 50331648:uC=(r&16777215)<<8;break;default:uC=this._themeService.colors.background.rgba}e.attributes.length<t+4&&(e.attributes=RS(e.attributes,this._terminal.rows*this._terminal.cols*oC)),dC=i*this._dimensions.device.cell.width,fC=o*this._dimensions.device.cell.height,pC=(uC>>24&255)/255,mC=(uC>>16&255)/255,hC=(uC>>8&255)/255,gC=1,this._addRectangle(e.attributes,t,dC,fC,(a-i)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,pC,mC,hC,gC)}_addRectangle(e,t,n,r,i,a,o,s,c,l){e[t]=n/this._dimensions.device.canvas.width,e[t+1]=r/this._dimensions.device.canvas.height,e[t+2]=i/this._dimensions.device.canvas.width,e[t+3]=a/this._dimensions.device.canvas.height,e[t+4]=o,e[t+5]=s,e[t+6]=c,e[t+7]=l}_addRectangleFloat(e,t,n,r,i,a,o){e[t]=n/this._dimensions.device.canvas.width,e[t+1]=r/this._dimensions.device.canvas.height,e[t+2]=i/this._dimensions.device.canvas.width,e[t+3]=a/this._dimensions.device.canvas.height,e[t+4]=o[0],e[t+5]=o[1],e[t+6]=o[2],e[t+7]=o[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(e.rgba&255)/255])}},vC=class extends Ub{constructor(e,t,n,r,i,a,o,s){super(),this._container=t,this._alpha=i,this._coreBrowserService=a,this._optionsService=o,this._themeService=s,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement(`canvas`),this._canvas.classList.add(`xterm-${n}-layer`),this._canvas.style.zIndex=r.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this._register(this._themeService.onChangeColors(t=>{this._refreshCharAtlas(e,t),this.reset(e)})),this._register(Bb(()=>{this._canvas.remove()}))}_initCanvas(){this._ctx=dx(this._canvas.getContext(`2d`,{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,n){}handleSelectionChanged(e,t,n,r=!1){}_setTransparency(e,t){if(t===this._alpha)return;let n=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,n),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=OS(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr,2048),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,n=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,n*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,n,r){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,n*this._deviceCellWidth,r*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,n*this._deviceCellWidth,r*this._deviceCellHeight))}_fillCharTrueColor(e,t,n,r){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=jx,this._clipCell(n,r,t.getWidth()),this._ctx.fillText(t.getChars(),n*this._deviceCellWidth+this._deviceCharLeft,r*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,n){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,n*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,n){let r=t?e.options.fontWeightBold:e.options.fontWeight;return`${n?`italic`:``} ${r} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}},yC=class extends vC{constructor(e,t,n,r,i,a,o){super(n,e,`link`,t,!0,i,a,o),this._register(r.onShowLinkUnderline(e=>this._handleShowLinkUnderline(e))),this._register(r.onHideLinkUnderline(e=>this._handleHideLinkUnderline(e)))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);let e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===257?this._ctx.fillStyle=this._themeService.colors.background.css:e.fg!==void 0&&ES(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e}_handleHideLinkUnderline(e){this._clearCurrentLink()}},bC=typeof window==`object`?window:globalThis,xC=class{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new mS,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new mS,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}getZoomLevel(e){return this.mapWindowIdToZoomLevel.get(this.getWindowId(e))??0}setZoomLevel(e,t){if(this.getZoomLevel(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToZoomLevel.set(n,e),this._onDidChangeZoomLevel.fire(n)}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}setZoomFactor(e,t){this.mapWindowIdToZoomFactor.set(this.getWindowId(t),e)}setFullscreen(e,t){if(this.isFullscreen(t)===e)return;let n=this.getWindowId(t);this.mapWindowIdToFullScreen.set(n,e),this._onDidChangeFullscreen.fire(n)}isFullscreen(e){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(e))}getWindowId(e){return e.vscodeWindowId}};xC.INSTANCE=new xC;var SC=xC;function CC(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}SC.INSTANCE.onDidChangeZoomLevel,SC.INSTANCE.onDidChangeFullscreen;var wC=typeof navigator==`object`?navigator.userAgent:``;wC.indexOf(`Firefox`);var TC=wC.indexOf(`AppleWebKit`)>=0;!(wC.indexOf(`Chrome`)>=0)&&wC.indexOf(`Safari`),wC.indexOf(`Electron/`),wC.indexOf(`Android`);var EC=!1;if(typeof bC.matchMedia==`function`){let e=bC.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=bC.matchMedia(`(display-mode: fullscreen)`);EC=e.matches,CC(bC,e,({matches:e})=>{EC&&t.matches||(EC=e)})}function DC(){return EC}var OC=`en`,kC=!1,AC=!1,jC=!1,MC=OC,NC,PC=globalThis,FC;typeof PC.vscode<`u`&&typeof PC.vscode.process<`u`?FC=PC.vscode.process:typeof process<`u`&&typeof process?.versions?.node==`string`&&(FC=process);var IC=typeof FC?.versions?.electron==`string`&&FC?.type===`renderer`;if(typeof FC==`object`){FC.platform,FC.platform,kC=FC.platform===`linux`,kC&&FC.env.SNAP&&FC.env.SNAP_REVISION,FC.env.CI||FC.env.BUILD_ARTIFACTSTAGINGDIRECTORY,MC=OC;let e=FC.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.userLocale,t.osLocale,MC=t.resolvedLanguage||OC,t.languagePack?.translationsConfigFile}catch{}AC=!0}else typeof navigator==`object`&&!IC?(NC=navigator.userAgent,NC.indexOf(`Windows`),NC.indexOf(`Macintosh`),(NC.indexOf(`Macintosh`)>=0||NC.indexOf(`iPad`)>=0||NC.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,kC=NC.indexOf(`Linux`)>=0,NC?.indexOf(`Mobi`),jC=!0,MC=globalThis._VSCODE_NLS_LANGUAGE||OC,navigator.language.toLowerCase()):console.error(`Unable to resolve platform.`);var LC=AC;jC&&typeof PC.importScripts==`function`&&PC.origin;var RC=NC,zC=MC,BC;(e=>{function t(){return zC}e.value=t;function n(){return zC.length===2?zC===`en`:zC.length>=3&&zC[0]===`e`&&zC[1]===`n`&&zC[2]===`-`}e.isDefaultVariant=n;function r(){return zC===`en`}e.isDefault=r})(BC||={});var VC=typeof PC.postMessage==`function`&&!PC.importScripts;(()=>{if(VC){let e=[];PC.addEventListener(`message`,t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let n=0,r=e.length;n<r;n++){let r=e[n];if(r.id===t.data.vscodeScheduleAsyncWork){e.splice(n,1),r.callback();return}}});let t=0;return n=>{let r=++t;e.push({id:r,callback:n}),PC.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var HC=!!(RC&&RC.indexOf(`Chrome`)>=0);RC&&RC.indexOf(`Firefox`),!HC&&RC&&RC.indexOf(`Safari`),RC&&RC.indexOf(`Edg/`),RC&&RC.indexOf(`Android`);var UC=typeof navigator==`object`?navigator:{};LC||document.queryCommandSupported&&document.queryCommandSupported(`copy`)||UC&&UC.clipboard&&UC.clipboard.writeText,LC||UC&&UC.clipboard&&UC.clipboard.readText,LC||DC()||UC.keyboard,`ontouchstart`in bC||UC.maxTouchPoints,bC.PointerEvent&&(`ontouchstart`in bC||navigator.maxTouchPoints);var WC=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}},GC=new WC,KC=new WC,qC=new WC;Array(230);var JC;(e=>{function t(e){return GC.keyCodeToStr(e)}e.toString=t;function n(e){return GC.strToKeyCode(e)}e.fromString=n;function r(e){return KC.keyCodeToStr(e)}e.toUserSettingsUS=r;function i(e){return qC.keyCodeToStr(e)}e.toUserSettingsGeneral=i;function a(e){return KC.strToKeyCode(e)||qC.strToKeyCode(e)}e.fromUserSettings=a;function o(e){if(e>=98&&e<=113)return null;switch(e){case 16:return`Up`;case 18:return`Down`;case 15:return`Left`;case 17:return`Right`}return GC.keyCodeToStr(e)}e.toElectronAccelerator=o})(JC||={});var YC=Object.freeze(function(e,t){let n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}}),XC;(e=>{function t(t){return t===e.None||t===e.Cancelled||t instanceof ZC?!0:!t||typeof t!=`object`?!1:typeof t.isCancellationRequested==`boolean`&&typeof t.onCancellationRequested==`function`}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:nS.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:YC})})(XC||={});var ZC=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?YC:(this._emitter||=new mS,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),null)}};(function(){typeof globalThis.requestIdleCallback!=`function`||globalThis.cancelIdleCallback})();var QC;(e=>{async function t(e){let t,n=await Promise.all(e.map(e=>e.then(e=>e,e=>{t||=e})));if(typeof t<`u`)throw t;return n}e.settled=t;function n(e){return new Promise(async(t,n)=>{try{await e(t,n)}catch(e){n(e)}})}e.withAsyncBody=n})(QC||={});var $C=class e{static fromArray(t){return new e(e=>{e.emitMany(t)})}static fromPromise(t){return new e(async e=>{e.emitMany(await t)})}static fromPromises(t){return new e(async e=>{await Promise.all(t.map(async t=>e.emitOne(await t)))})}static merge(t){return new e(async e=>{await Promise.all(t.map(async t=>{for await(let n of t)e.emitOne(n)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new mS,queueMicrotask(async()=>{let t={emitOne:e=>this.emitOne(e),emitMany:e=>this.emitMany(e),reject:e=>this.reject(e)};try{await Promise.resolve(e(t)),this.resolve()}catch(e){this.reject(e)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(this._state===1)return{done:!0,value:void 0};await nS.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,n){return new e(async e=>{for await(let r of t)e.emitOne(n(r))})}map(t){return e.map(this,t)}static filter(t,n){return new e(async e=>{for await(let r of t)n(r)&&e.emitOne(r)})}filter(t){return e.filter(this,t)}static coalesce(t){return e.filter(t,e=>!!e)}coalesce(){return e.coalesce(this)}static async toPromise(e){let t=[];for await(let n of e)t.push(n);return t}toPromise(){return e.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}};$C.EMPTY=$C.fromArray([]);function ew(e){return tw(e,0)}function tw(e,t){switch(typeof e){case`object`:return e===null?nw(349,t):Array.isArray(e)?aw(e,t):ow(e,t);case`string`:return iw(e,t);case`boolean`:return rw(e,t);case`number`:return nw(e,t);case`undefined`:return nw(937,t);default:return nw(617,t)}}function nw(e,t){return(t<<5)-t+e|0}function rw(e,t){return nw(e?433:863,t)}function iw(e,t){t=nw(149417,t);for(let n=0,r=e.length;n<r;n++)t=nw(e.charCodeAt(n),t);return t}function aw(e,t){return t=nw(104579,t),e.reduce((e,t)=>tw(t,e),t)}function ow(e,t){return t=nw(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=iw(n,t),tw(e[n],t)),t)}var{registerWindow:sw,getWindow:cw,getDocument:lw,getWindows:uw,getWindowsCount:dw,getWindowId:fw,getWindowById:pw,hasWindow:mw,onDidRegisterWindow:hw,onWillUnregisterWindow:gw,onDidUnregisterWindow:_w}=function(){let e=new Map,t={window:bC,disposables:new Hb};e.set(bC.vscodeWindowId,t);let n=new mS,r=new mS,i=new mS;function a(n,r){return(typeof n==`number`?e.get(n):void 0)??(r?t:void 0)}return{onDidRegisterWindow:n.event,onWillUnregisterWindow:i.event,onDidUnregisterWindow:r.event,registerWindow(t){if(e.has(t.vscodeWindowId))return Ub.None;let a=new Hb,o={window:t,disposables:a.add(new Hb)};return e.set(t.vscodeWindowId,o),a.add(Bb(()=>{e.delete(t.vscodeWindowId),r.fire(t)})),a.add(yw(t,xw.BEFORE_UNLOAD,()=>{i.fire(t)})),n.fire(o),a},getWindows(){return e.values()},getWindowsCount(){return e.size},getWindowId(e){return e.vscodeWindowId},hasWindow(t){return e.has(t)},getWindowById:a,getWindow(e){let t=e;if(t?.ownerDocument?.defaultView)return t.ownerDocument.defaultView.window;let n=e;return n?.view?n.view.window:bC},getDocument(e){return cw(e).document}}}(),vw=class{constructor(e,t,n,r){this._node=e,this._type=t,this._handler=n,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&=(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,null)}};function yw(e,t,n,r){return new vw(e,t,n,r)}var bw=class e{constructor(e,t){this.width=e,this.height=t}with(t=this.width,n=this.height){return t!==this.width||n!==this.height?new e(t,n):this}static is(e){return typeof e==`object`&&typeof e.height==`number`&&typeof e.width==`number`}static lift(t){return t instanceof e?t:new e(t.width,t.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};bw.None=new bw(0,0),new class{constructor(){this.mutationObservers=new Map}observe(e,t,n){let r=this.mutationObservers.get(e);r||(r=new Map,this.mutationObservers.set(e,r));let i=ew(n),a=r.get(i);if(a)a.users+=1;else{let o=new mS,s=new MutationObserver(e=>o.fire(e));s.observe(e,n);let c=a={users:1,observer:s,onDidMutate:o.event};t.add(Bb(()=>{--c.users,c.users===0&&(o.dispose(),s.disconnect(),r?.delete(i),r?.size===0&&this.mutationObservers.delete(e))})),r.set(i,a)}return a.onDidMutate}};var xw={CLICK:`click`,AUXCLICK:`auxclick`,DBLCLICK:`dblclick`,MOUSE_UP:`mouseup`,MOUSE_DOWN:`mousedown`,MOUSE_OVER:`mouseover`,MOUSE_MOVE:`mousemove`,MOUSE_OUT:`mouseout`,MOUSE_ENTER:`mouseenter`,MOUSE_LEAVE:`mouseleave`,MOUSE_WHEEL:`wheel`,POINTER_UP:`pointerup`,POINTER_DOWN:`pointerdown`,POINTER_MOVE:`pointermove`,POINTER_LEAVE:`pointerleave`,CONTEXT_MENU:`contextmenu`,WHEEL:`wheel`,KEY_DOWN:`keydown`,KEY_PRESS:`keypress`,KEY_UP:`keyup`,LOAD:`load`,BEFORE_UNLOAD:`beforeunload`,UNLOAD:`unload`,PAGE_SHOW:`pageshow`,PAGE_HIDE:`pagehide`,PASTE:`paste`,ABORT:`abort`,ERROR:`error`,RESIZE:`resize`,SCROLL:`scroll`,FULLSCREEN_CHANGE:`fullscreenchange`,WK_FULLSCREEN_CHANGE:`webkitfullscreenchange`,SELECT:`select`,CHANGE:`change`,SUBMIT:`submit`,RESET:`reset`,FOCUS:`focus`,FOCUS_IN:`focusin`,FOCUS_OUT:`focusout`,BLUR:`blur`,INPUT:`input`,STORAGE:`storage`,DRAG_START:`dragstart`,DRAG:`drag`,DRAG_ENTER:`dragenter`,DRAG_LEAVE:`dragleave`,DRAG_OVER:`dragover`,DROP:`drop`,DRAG_END:`dragend`,ANIMATION_START:TC?`webkitAnimationStart`:`animationstart`,ANIMATION_END:TC?`webkitAnimationEnd`:`animationend`,ANIMATION_ITERATION:TC?`webkitAnimationIteration`:`animationiteration`},Sw=class extends Ub{constructor(e,t,n,r,i,a,o,s,c){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=n,this._coreBrowserService=r,this._coreService=i,this._decorationService=a,this._optionsService=o,this._themeService=s,this._cursorBlinkStateManager=new Wb,this._charAtlasDisposable=this._register(new Wb),this._observerDisposable=this._register(new Wb),this._model=new rC,this._workCell=new PS,this._workCell2=new PS,this._rectangleRenderer=this._register(new Wb),this._glyphRenderer=this._register(new Wb),this._onChangeTextureAtlas=this._register(new mS),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new mS),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new mS),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this._register(new mS),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this._register(new mS),this.onContextLoss=this._onContextLoss.event,this._canvas=this._coreBrowserService.mainDocument.createElement(`canvas`);let l={antialias:!1,depth:!1,preserveDrawingBuffer:c};if(this._gl=this._canvas.getContext(`webgl2`,l),!this._gl)throw Error(`WebGL2 not supported `+this._gl);this._register(this._themeService.onChangeColors(()=>this._handleColorChange())),this._cellColorResolver=new kx(this._terminal,this._optionsService,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new yC(this._core.screenElement,2,this._terminal,this._core.linkifier,this._coreBrowserService,o,this._themeService)],this.dimensions=yx(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this._register(o.onOptionChange(()=>this._handleOptionsChanged())),this._deviceMaxTextureSize=this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),this._register(yw(this._canvas,`webglcontextlost`,e=>{console.log(`webglcontextlost event received`),e.preventDefault(),this._contextRestorationTimeout=setTimeout(()=>{this._contextRestorationTimeout=void 0,console.warn(`webgl context not restored; firing onContextLoss`),this._onContextLoss.fire(e)},3e3)})),this._register(yw(this._canvas,`webglcontextrestored`,e=>{console.warn(`webglcontextrestored event received`),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,kS(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()})),this._observerDisposable.value=MS(this._canvas,this._coreBrowserService.window,(e,t)=>this._setCanvasDevicePixelDimensions(e,t)),this._register(this._coreBrowserService.onWindowChange(e=>{this._observerDisposable.value=MS(this._canvas,e,(e,t)=>this._setCanvasDevicePixelDimensions(e,t))})),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._core.screenElement.isConnected,this._register(Bb(()=>{for(let e of this._renderLayers)e.dispose();this._canvas.parentElement?.removeChild(this._canvas),kS(this._terminal)}))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(let e of this._renderLayers)e.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(let e of this._renderLayers)e.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(let e of this._renderLayers)e.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,n){for(let r of this._renderLayers)r.handleSelectionChanged(this._terminal,e,t,n);this._model.selection.update(this._core,e,t,n),this._requestRedrawViewport()}handleCursorMove(){for(let e of this._renderLayers)e.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new _C(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new YS(this._terminal,this._gl,this.dimensions,this._optionsService),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0){this._isAttached=!1;return}let e=OS(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr,this._deviceMaxTextureSize);this._charAtlas!==e&&(this._onChangeTextureAtlas.fire(e.pages[0].canvas),this._charAtlasDisposable.value=zb(nS.forward(e.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),nS.forward(e.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas))),this._charAtlas=e,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(e){this._model.clear(),e&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(let e of this._renderLayers)e.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}renderRows(e,t){if(!this._isAttached){if(this._core.screenElement?.isConnected&&this._charSizeService.width&&this._charSizeService.height)this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0;else return}for(let n of this._renderLayers)n.handleGridChanged(this._terminal,e,t);!this._glyphRenderer.value||!this._rectangleRenderer.value||(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible)&&this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._coreService.decPrivateModes.cursorBlink??this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new jS(()=>{this._requestRedrawCursor()},this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){let n=this._core,r=this._workCell,i,a,o,s,c,l,u=0,d=!0,f,p,m,h,g,_,v,y,b;e=ww(e,n.rows-1,0),t=ww(t,n.rows-1,0);let x=this._coreService.decPrivateModes.cursorStyle??n.options.cursorStyle??`block`,S=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,C=S-n.buffer.ydisp,w=Math.min(this._terminal.buffer.active.cursorX,n.cols-1),T=-1,E=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let D=!1;for(a=e;a<=t;a++)for(o=a+n.buffer.ydisp,s=n.buffer.lines.get(o),this._model.lineLengths[a]=0,m=S===o,u=0,c=this._characterJoinerService.getJoinedCharacters(o),y=0;y<n.cols;y++){if(i=this._cellColorResolver.result.bg,s.loadCell(y,r),y===0&&(i=this._cellColorResolver.result.bg),l=!1,d=y>=u,f=y,c.length>0&&y===c[0][0]&&d){p=c.shift();let e=this._model.selection.isCellSelected(this._terminal,p[0],o);for(v=p[0]+1;v<p[1];v++)d&&=e===this._model.selection.isCellSelected(this._terminal,v,o);d&&=!m||w<p[0]||w>=p[1],d?(l=!0,r=new Cw(r,s.translateToString(!0,p[0],p[1]),p[1]-p[0]),f=p[1]-1):u=p[1]}if(h=r.getChars(),g=r.getCode(),v=(a*n.cols+y)*QS,this._cellColorResolver.resolve(r,y,o,this.dimensions.device.cell.width),E&&o===S&&(y===w&&(this._model.cursor={x:w,y:C,width:r.getWidth(),style:this._coreBrowserService.isFocused?x:n.options.cursorInactiveStyle,cursorWidth:n.options.cursorWidth,dpr:this._devicePixelRatio},T=w+r.getWidth()-1),y>=w&&y<=T&&(this._coreBrowserService.isFocused&&x===`block`||this._coreBrowserService.isFocused===!1&&n.options.cursorInactiveStyle===`block`)&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),g!==0&&(this._model.lineLengths[a]=y+1),(this._model.cells[v]!==g||this._model.cells[v+$S]!==this._cellColorResolver.result.bg||this._model.cells[v+eC]!==this._cellColorResolver.result.fg||this._model.cells[v+tC]!==this._cellColorResolver.result.ext)&&(D=!0,h.length>1&&(g|=nC),this._model.cells[v]=g,this._model.cells[v+$S]=this._cellColorResolver.result.bg,this._model.cells[v+eC]=this._cellColorResolver.result.fg,this._model.cells[v+tC]=this._cellColorResolver.result.ext,_=r.getWidth(),this._glyphRenderer.value.updateCell(y,a,g,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,h,_,i),l)){for(r=this._workCell,y++;y<=f;y++)b=(a*n.cols+y)*QS,this._glyphRenderer.value.updateCell(y,a,0,0,0,0,Qb,0,0),this._model.cells[b]=0,this._model.cells[b+$S]=this._cellColorResolver.result.bg,this._model.cells[b+eC]=this._cellColorResolver.result.fg,this._model.cells[b+tC]=this._cellColorResolver.result.ext;y--}}D&&this._rectangleRenderer.value.updateBackgrounds(this._model),this._rectangleRenderer.value.updateCursor(this._model)}_updateDimensions(){!this._charSizeService.width||!this._charSizeService.height||(this.dimensions.device.char.width=Math.floor(this._charSizeService.width*this._devicePixelRatio),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*this._devicePixelRatio),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=this._optionsService.rawOptions.lineHeight===1?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._terminal.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._terminal.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/this._devicePixelRatio),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/this._devicePixelRatio),this.dimensions.css.cell.height=this.dimensions.device.cell.height/this._devicePixelRatio,this.dimensions.css.cell.width=this.dimensions.device.cell.width/this._devicePixelRatio)}_setCanvasDevicePixelDimensions(e,t){this._canvas.width===e&&this._canvas.height===t||(this._canvas.width=e,this._canvas.height=t,this._requestRedrawViewport())}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._terminal.rows-1})}_requestRedrawCursor(){let e=this._terminal.buffer.active.cursorY;this._onRequestRedraw.fire({start:e,end:e})}},Cw=class extends Zx{constructor(e,t,n){super(),this.content=0,this.combinedData=``,this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=n}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw Error(`not implemented`)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}};function ww(e,t,n=0){return Math.max(Math.min(e,t),n)}var Tw=`di$target`,Ew=`di$dependencies`,Dw=new Map;function Ow(e){if(Dw.has(e))return Dw.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);kw(t,e,r)};return t._id=e,Dw.set(e,t),t}function kw(e,t,n){t[Tw]===t?t[Ew].push({id:e,index:n}):(t[Ew]=[{id:e,index:n}],t[Tw]=t)}Ow(`BufferService`),Ow(`CoreMouseService`),Ow(`CoreService`),Ow(`CharsetService`),Ow(`InstantiationService`),Ow(`LogService`);var Aw=Ow(`OptionsService`);Ow(`OscLinkService`),Ow(`UnicodeService`),Ow(`DecorationService`);var jw={trace:0,debug:1,info:2,warn:3,error:4,off:5},Mw=`xterm.js: `,Nw=class extends Ub{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(`logLevel`,()=>this._updateLogLevel())),Pw=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=jw[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]==`function`&&(e[t]=e[t]())}_log(e,t,n){this._evalLazyOptionalParams(n),e.call(console,(this._optionsService.options.logger?``:Mw)+t,...n)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};Nw=Sb([Cb(0,Aw)],Nw);var Pw,Fw=class extends Ub{constructor(e){if(Xb&&Zb()<16&&!document.createElement(`canvas`).getContext(`webgl2`,{antialias:!1,depth:!1,preserveDrawingBuffer:!0}))throw Error(`Webgl2 is only supported on Safari 16 and above`);super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this._register(new mS),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this._register(new mS),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this._register(new mS),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this._register(new mS),this.onContextLoss=this._onContextLoss.event}activate(e){let t=e._core;if(!e.element){this._register(t.onWillOpen(()=>this.activate(e)));return}this._terminal=e;let n=t.coreService,r=t.optionsService,i=t,a=i._renderService,o=i._characterJoinerService,s=i._charSizeService,c=i._coreBrowserService,l=i._decorationService;i._logService;let u=i._themeService;this._renderer=this._register(new Sw(e,o,s,c,n,l,r,u,this._preserveDrawingBuffer)),this._register(nS.forward(this._renderer.onContextLoss,this._onContextLoss)),this._register(nS.forward(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this._register(nS.forward(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this._register(nS.forward(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),a.setRenderer(this._renderer),this._register(Bb(()=>{if(this._terminal._core._store._isDisposed)return;let t=this._terminal._core._renderService;t.setRenderer(this._terminal._core._createRenderer()),t.handleResize(e.cols,e.rows)}))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}},Iw=!1;function Lw(){if(Iw)return;Iw=!0;let e=document.createElement(`canvas`).getContext(`2d`);if(!e||(e.font=` 12px monospace`,e.font.startsWith(`12px`)))return;let t=Object.getOwnPropertyDescriptor(CanvasRenderingContext2D.prototype,`font`),{get:n,set:r}=t??{};!t||!n||!r||Object.defineProperty(CanvasRenderingContext2D.prototype,"font",{...t,set(e){r.call(this,typeof e==`string`?e.trim():e)}})}function Rw(e){let t=null,n=null;try{Lw();let r=new Set(e.element?.querySelectorAll(`canvas`)),i=new Fw;i.onContextLoss(()=>{i.dispose(),t=null});let a=0;i.onRemoveTextureAtlasCanvas(()=>{a||=requestAnimationFrame(()=>{a=0,t?.clearTextureAtlas(),e.refresh(0,e.rows-1)})}),e.loadAddon(i),t=i,n=[...e.element?.querySelectorAll(`canvas`)??[]].find(e=>!r.has(e)&&!e.classList.contains(`xterm-link-layer`))??null}catch{}let r=new ResizeObserver(()=>{let n=e._core?._renderService;t&&n&&!n._isPaused&&typeof n._renderRows==`function`&&n._renderRows(0,e.rows-1)});if(n)try{r.observe(n,{box:`device-pixel-content-box`})}catch{}let i=()=>{t&&(t.clearTextureAtlas(),e.refresh(0,e.rows-1))};return document.fonts.addEventListener(`loadingdone`,i),{dispose(){document.fonts.removeEventListener(`loadingdone`,i),r.disconnect(),n?.getContext(`webgl2`)?.getExtension(`WEBGL_lose_context`)?.loseContext()}}}function zw(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function Bw(e){return!e||typeof e!=`object`||!(`stream`in e)||typeof e.stream!=`string`?null:{stream:e.stream,...`data`in e&&typeof e.data==`string`?{data:e.data}:{},...`code`in e&&(typeof e.code==`number`||e.code===null)?{code:e.code}:{}}}var Vw=65536,Hw=20;function Uw(e){let t=0,n=null,r=()=>{n!==null&&window.clearTimeout(n),n=null,t>0&&e(t),t=0};return{parsed(e){t+=e,t>=Vw?r():n??=window.setTimeout(r,Hw)},dispose(){n!==null&&window.clearTimeout(n),n=null,t=0}}}function Ww(e){return!e||typeof e!=`object`||!(`stream`in e)||!(`replay`in e)?null:typeof e.stream==`string`&&typeof e.replay==`string`?{stream:e.stream,replay:e.replay}:null}var Gw=8;function Kw(e,t,n){return n&&n!==`leaf-1`?`${e}::${t}::${n}`:`${e}::${t}`}function qw(e){return e.type!==`keydown`||e.key.toLowerCase()!==`c`||e.altKey?null:e.metaKey||e.ctrlKey&&e.shiftKey?`copy`:e.ctrlKey?`interrupt-or-copy`:null}var Jw=new WeakMap,Yw=new Uint8Array([27,99]);function Xw(e){let t=new Uint8Array(Yw.length+e.length);return t.set(Yw),t.set(e,Yw.length),t}function Zw(e){let{client:t,el:n,taskId:r,tabId:i}=e,a=new Dv({fontFamily:ly,fontSize:13,lineHeight:1.15,theme:Gv.get()??sy,cursorBlink:!0,scrollback:Xv.get().prefs.scrollbackRows,allowProposedApi:!0,overviewRuler:{width:Gw},scrollOnUserInput:!1}),o=new Sy(a);a.loadAddon(o);let s=new Dl;a.loadAddon(s),a.loadAddon(new Tu),a.unicode.activeVersion=`11`,a.loadAddon(new ju),a.open(n);let c=Rw(a),l=zy(a);o.fit();let u=dy(a,n,s),d=!1;e.snapshot&&u.raise(e.snapshot),e.focusOnMount&&a.focus();let f=Kw(r,i,e.leafId),p=Jw.get(t);p||(p=new Map,Jw.set(t,p));let m=p.get(f)??{owners:0,attached:!1};m.owners++,p.set(f,m);let h=()=>void t.request(`term.detach`,{stream:f}).catch(()=>{}),g=null,_=!1,v=null,y=!1,b=Jy(e=>{g&&_&&t.request(`term.input`,{stream:g,data:e}).catch(()=>{})}),x=Uw(e=>{g&&t.request(`term.ack`,{stream:g,chars:e}).catch(()=>{})}),S=(e,t,n)=>{l.push(e),a.write(e,()=>{n?.(),x.parsed(t)})},C=t.on(`term.data`,e=>{let t=Bw(e);if(!t?.data||t.stream!==f)return;let n=zw(t.data);v?v.push({bytes:n,chars:t.data.length}):g&&S(n,t.data.length)}),w=t.on(`term.reset`,e=>{let t=Ww(e);!t||t.stream!==f||!g||v||b.replay(e=>S(Xw(zw(t.replay)),t.replay.length,e))}),T=t.on(`term.exit`,t=>{let n=Bw(t);!n||n.stream!==f||(_=!1,e.setNotice({kind:`exited`,code:n.code??null}),e.onExit(n.code??null))}),E=!1,D=t=>{E||(E=!0,t?requestAnimationFrame(()=>requestAnimationFrame(()=>e.onPainted?.())):e.onPainted?.())},O=async()=>{v=[],g=null;try{let n=await t.request(`term.attach`,{taskId:r,tabId:i,...e.leafId&&e.leafId!==`leaf-1`?{leafId:e.leafId}:{},cols:a.cols,rows:a.rows,acks:!0}),o=p.get(f);if(o?o.attached=!0:h(),y)return;me.reset(),d&&!u.raised&&u.raise(u.snapshot()),d=!0,de=null,fe=!0,b.replay(e=>{let t=zw(n.replay);l.push(t),a.write(Xw(t),()=>{fe=!1,e(),D(!0)})});for(let e of v)S(e.bytes,e.chars);if(g=n.stream,_=n.alive,n.alive&&a.rows>2){let{cols:e,rows:r}=a,i=n.stream;t.request(`term.resize`,{stream:i,cols:e,rows:r-1}).then(()=>new Promise(e=>window.setTimeout(e,60))).then(()=>g===i?t.request(`term.resize`,{stream:i,cols:a.cols,rows:a.rows}):void 0).then(()=>window.setTimeout(u.lower,250)).catch(u.lower)}else u.lower();n.alive&&document.activeElement===a.textarea&&vn.set(n.stream),e.setNotice(n.alive?{kind:`none`}:n.restored?{kind:`restored`}:{kind:`exited`,code:null})}catch(t){if(y)return;t instanceof Ov&&t.code===`TAB_NOT_LIVE`?e.setNotice({kind:`notLive`}):t instanceof Ov&&t.code===`NOT_CONNECTED`||e.setNotice({kind:`failed`,message:t instanceof Error?t.message:String(t)})}finally{v=null,g||(u.lower(),D(!1))}},k=()=>n.clientWidth>0&&n.clientHeight>0,A=!1,j=t.onOpen(()=>{A=!k(),A||O()}),ee=null,M=a.onData(e=>{if(ee&&e.length===1){let t=ee;ee=null,t(),b.forward(Gy(e))}else b.forward(e)}),N=vy(a,e=>b.forward(e)),P=0,F=()=>{!g||!_||(P=Date.now(),t.request(`term.resize`,{stream:g,cols:a.cols,rows:a.rows}).catch(()=>{}))},I=a.onKey(()=>{Date.now()-P>1e3&&F()}),te=null,ne=a.onResize(({cols:e,rows:n})=>{te!==null&&window.clearTimeout(te),te=window.setTimeout(()=>{g&&_&&t.request(`term.resize`,{stream:g,cols:e,rows:n}).catch(()=>{})},80)}),re=()=>{An.get()!==null||!k()||(o.fit(),A&&(A=!1,O()))},ie=new ResizeObserver(re);ie.observe(n);let L=An.subscribe(re),R=Xv.subscribe(()=>{a.options.scrollback=Xv.get().prefs.scrollbackRows}),ae=()=>{n.style.backgroundColor=(Gv.get()??sy).background??``};ae();let oe=Gv.subscribe(()=>{a.options.theme=Gv.get()??sy,ae()});a.attachCustomKeyEventHandler(t=>{if(t.type===`keydown`&&t.ctrlKey&&!t.metaKey&&!t.altKey&&!t.shiftKey&&t.key.toLowerCase()===`v`&&/Mac|iPhone|iPad/.test(navigator.platform))return e.pasteImage(),!1;let n=qw(t);if(!n)return!0;let r=a.getSelection();return r.trim().length===0?n===`interrupt-or-copy`:(e.copyText(r),a.clearSelection(),!1)});let se=!1,ce=e=>{se=e.button===0},le=()=>{if(!se)return;se=!1;let t=a.getSelection();t.trim().length>0&&e.copyText(t)};n.addEventListener(`mousedown`,ce),document.addEventListener(`mouseup`,le);let ue=a.textarea,de=null,fe=!1,pe=0,me=gb(a,()=>{de=null}),he=_b(n,a,me),ge=yb(n,a,me),_e=e=>{e.target instanceof Element&&e.target.closest(`.scrollbar`)&&(de=null,me.reset())};n.addEventListener(`mousedown`,_e,{capture:!0});let ve=()=>ay(n);n.addEventListener(`wheel`,ve,{capture:!0,passive:!0}),n.addEventListener(`touchmove`,ve,{capture:!0,passive:!0});let ye=()=>{if(!fe&&a.buffer.active.type===`normal`){let e=cb(a.buffer.active);de===null&&e>0&&(de=e),pe=performance.now()}return!1},be=a.parser.registerCsiHandler({final:`J`},e=>e[0]===3&&ye()),xe=a.parser.registerEscHandler({final:`c`},ye),Se=()=>{de=null,me.reset(),cb(a.buffer.active)>0&&a.scrollToBottom()},Ce=a.onKey(Se);ue?.addEventListener(`paste`,Se),ue?.addEventListener(`compositionend`,Se);let we=()=>e.onScrolled(cb(a.buffer.active)),Te=a.onScroll(we),Ee=a.onWriteParsed(()=>{de!==null&&performance.now()-pe>1e3&&(de=null);let e=lb(de,a.buffer.active);e!==null&&a.scrollToLine(e),we()}),De=e=>{de=null,me.reset(),e()},Oe=()=>{vn.set(g),F(),e.onFocusChange(!0)},ke=()=>e.onFocusChange(!1);return ue?.addEventListener(`focus`,Oe),ue?.addEventListener(`blur`,ke),{term:a,stream:f,scrollLines:e=>De(()=>a.scrollLines(e)),scrollToTop:()=>De(()=>a.scrollToTop()),scrollToBottom:()=>De(()=>a.scrollToBottom()),armCtrl:e=>{ee=e},reattach:O,snapshot:u.snapshot,dispose(){y=!0,u.lower(),ie.disconnect(),he(),ge(),me.dispose(),n.removeEventListener(`mousedown`,_e,{capture:!0}),n.removeEventListener(`wheel`,ve,{capture:!0}),n.removeEventListener(`touchmove`,ve,{capture:!0}),ue?.removeEventListener(`paste`,Se),ue?.removeEventListener(`compositionend`,Se),be.dispose(),xe.dispose(),Ce.dispose(),oe(),R(),L(),te!==null&&window.clearTimeout(te),n.removeEventListener(`mousedown`,ce),document.removeEventListener(`mouseup`,le),ue?.removeEventListener(`focus`,Oe),ue?.removeEventListener(`blur`,ke),Te.dispose(),Ee.dispose(),M.dispose(),N(),I.dispose(),ne.dispose(),j(),C(),T(),w(),x.dispose(),g&&vn.get()===g&&vn.set(null),m.owners--,m.owners===0&&(p.delete(f),m.attached&&h()),l.dispose(),a.dispose(),c.dispose()}}}function Qw(e,t,n){let r=t?{repo:t}:{},[i]=(0,g.useState)(()=>{let t=q(e,`engines.list`,r),i=t?Vc(t.engines):[];return{offered:i,engine:t?Hc(i,n??t.preferred):``}}),[a,o]=(0,g.useState)(i.offered),[s,c]=(0,g.useState)(i.engine);return(0,g.useEffect)(()=>{sl(e,`engines.list`,r).then(e=>{let t=Vc(e.engines);o(t),c(Hc(t,n??e.preferred))}).catch(()=>o([]))},[e]),{engines:a,engine:s,setEngine:c}}var $w=`shell`,eT=`pane:`,tT=e=>e.startsWith(eT),nT=e=>e.slice(5);function rT(e){let[t,n]=(0,g.useState)(()=>q(e,`plugin.panes`)?.panes??[]);return(0,g.useEffect)(()=>{sl(e,`plugin.panes`).then(e=>n(e.panes)).catch(()=>n([]))},[e]),t}function iT(e){let t=[...e.engines,...e.withShell?[{id:$w,name:z(`tab.shell`)}]:[],...(e.panes??[]).map(e=>({id:eT+e.id,name:e.title}))];return(0,V.jsx)(Dc,{label:z(`newTask.engine`),field:`engine`,value:e.value,onChange:e.onChange,choices:t.map(e=>({id:e.id,label:e.name,dim:`ready`in e&&e.ready===!1,title:`ready`in e&&e.ready===!1?z(`newTask.notReady`):void 0}))})}function aT(e,t){return oT(e,t,{kind:`engine`,latest:!0}).catch(e=>W(String(e),`error`))}async function oT(e,t,n){let{tabId:r,taskId:i}=await e.client.request(`tab.new`,{taskId:t,kind:n.kind,...n.engine?{engine:n.engine}:{},...n.prompt?{prompt:n.prompt}:{},...n.latest?{latest:!0}:{},...n.replaceTab?{replaceTab:n.replaceTab}:{}});if(i){e.selectWhenListed(i);return}await e.refreshTabsNow(),n.replaceTab&&await va(Kw(t,r))?.reattach(),e.select(t,r)}async function sT(e){await oT(e,(await e.client.request(`task.openScratch`,{})).taskId,{kind:`shell`})}var cT=[`1`,`2`,`3`,`4`,`5`],lT=[`tab`,`fork`,`scratch`],uT=[`message`,`attempts`,`engine`,`fork-base`,`destination`];function dT(e){B();let{model:t,taskId:n}=e,r=t.tasks.get()?.tasks.find(e=>e.id===n),i=Qw(t,r?.repo),[a,o]=(0,g.useState)(e.destination??`tab`),[s,c]=(0,g.useState)(e.context??`fresh`),[l,u]=(0,g.useState)(``),[d,f]=(0,g.useState)(`1`),[p,m]=(0,g.useState)(r?.branch??`main`),{busy:h,error:_,setError:v,submit:y}=yr(),{attachments:b,attach:x,remove:S}=Tc(t,v),C=s===`fresh`&&a!==`fork`,w=a===`tab`&&s===`fresh`,T=rT(t),E=i.engine===`shell`&&!C||tT(i.engine)&&!w?``:i.engine,D=E===$w,O=tT(E),k=a===`fork`,A=(e,t)=>{let n=e===`scratch`&&t===`continue`&&a===`scratch`?`tab`:e;o(n),c(n===`scratch`?`fresh`:t)},j=()=>{let r=t.selection.get();return e.sourceTabId??(r.taskId===n?r.tabId:null)??`tab-1`},ee=()=>t.tasks.get()?.tasks.find(e=>e.id===n)?.tabStatus?.[j()]?.reason===`dead`,M=async()=>{let e=await t.client.request(`tab.handoff`,{taskId:n,tabId:j()});if(e.kind===`handoff`&&e.prompt)return e.prompt;throw Error(e.kind===`no-transcript`?K(`terminal`,`tab.noTranscriptToHandOff`,{engine:e.engine??``}):K(`terminal`,`tab.nothingToFork`))},N=()=>y(async()=>{let e=s===`continue`&&a===`tab`&&!D&&!O&&ee(),i=[s===`continue`&&!e?await M():``,Cc(l.trim(),b)].filter(Boolean).join(`
|
|
109
|
+
|
|
110
|
+
`);if(a===`scratch`){let e=await t.client.request(`task.openScratch`,D?{}:{engine:E});D?await oT(t,e.taskId,{kind:`shell`}):t.selectWhenListed(e.taskId)}else if(k){if(!r)throw Error(K(`terminal`,`tab.tabGone`));if(!l.trim())throw Error(z(`taskops.forkNeedsMessage`));let e=p.trim()||r.branch,a;try{a=await t.client.request(`tab.forkTask`,{repo:r.repo,baseBranch:e,prompt:i,...E?{engine:E}:{},...Number(d)>1?{count:Number(d)}:{},...e===r.branch?{forkFrom:n}:{}})}catch(e){let t=Jc(e);if(!t)throw e;W(e instanceof Error?e.message:String(e),`error`),Aa(t);return}a.forkRefused&&W(z(`taskops.forkLeftBehind`,{reason:a.forkRefused}));let o=a.taskIds[0];a.groupId?Aa(a.groupId):o&&t.selectWhenListed(o)}else if(D)await oT(t,n,{kind:`shell`});else if(O){let{selection:e}=t,r=e.get().taskId===n?e.get().tabId:null,i=await t.client.request(`plugin.paneOpen`,{taskId:n,pane:nT(E),...r?{tabId:r}:{}});await t.refreshTabsNow(),t.select(n,i.tabId)}else await oT(t,n,{kind:`engine`,engine:E,prompt:i,...e?{replaceTab:j()}:{}})});return(0,V.jsx)(vr,{title:K(`terminal`,`tab.newChat.title`),wide:!0,children:(0,V.jsxs)(`form`,{className:Wn,onKeyDown:e=>{if(e.key===`Tab`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(k||!e.shiftKey))e.preventDefault(),e.stopPropagation(),k?nl(e.currentTarget,uT,e.shiftKey?-1:1):A(lT[(lT.indexOf(a)+1)%lT.length]??`tab`,s);else if(e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key.toLowerCase()===`e`){e.preventDefault(),e.stopPropagation();let t=i.engines.filter(e=>e.ready!==!1),n=t[(t.findIndex(e=>e.id===i.engine)+1)%t.length];n&&i.setEngine(n.id)}else e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key.toLowerCase()===`f`?(e.preventDefault(),e.stopPropagation(),A(a,s===`fresh`?`continue`:`fresh`)):e.key===`Enter`&&k&&e.target.closest(`[data-field=attempts], [data-field=engine]`)&&(e.preventDefault(),e.currentTarget.requestSubmit())},onSubmit:e=>{e.preventDefault(),N()},onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),x(Array.from(e.dataTransfer.files))},children:[(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:K(`terminal`,`tab.newChat.engine`)}),(0,V.jsx)(iT,{engines:i.engines,value:E,onChange:i.setEngine,withShell:C,panes:w?T:[]})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:K(`terminal`,`tab.newChat.destLabel`)}),(0,V.jsx)(Dc,{label:K(`terminal`,`tab.newChat.destLabel`),field:`destination`,value:a,onChange:e=>A(e,s),choices:lT.map(e=>({id:e,label:K(`terminal`,`tab.newChat.dest${e===`tab`?`Tab`:e===`fork`?`Fork`:`Scratch`}`)}))})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted`,children:[K(`terminal`,`tab.newChat.ctxLabel`),` `,(0,V.jsx)(`span`,{className:`keys-only`,children:`ctrl+f`})]}),(0,V.jsx)(Dc,{label:K(`terminal`,`tab.newChat.ctxLabel`),field:`context`,value:s,onChange:e=>A(a,e===`continue`?`continue`:`fresh`),choices:[`fresh`,`continue`].map(e=>({id:e,label:K(`terminal`,`tab.newChat.ctx${e===`fresh`?`Fresh`:`Continue`}`)}))})]}),k&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:K(`quickTask`,`attemptsLabel`)}),(0,V.jsx)(Dc,{label:K(`quickTask`,`attemptsLabel`),field:`attempts`,value:d,onChange:f,choices:cT.map(e=>({id:e,label:e}))})]}),(0,V.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:z(`taskops.forkBranch`)}),(0,V.jsx)(`input`,{className:sn,"data-field":`fork-base`,spellCheck:!1,value:p,onChange:e=>m(e.target.value)})]})]}),!D&&!O&&a!==`scratch`&&(0,V.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:z(`newChat.prompt`)}),(0,V.jsx)(`textarea`,{className:`${sn} min-h-18 max-h-[50vh] leading-[1.45]`,"data-field":`message`,autoFocus:!0,rows:4,placeholder:z(`newChat.promptPlaceholder`),value:l,onChange:e=>u(e.target.value),onPaste:e=>{let t=Array.from(e.clipboardData.files);t.length!==0&&(e.preventDefault(),x(t))},onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&e.currentTarget.form?.requestSubmit()}})]}),(0,V.jsx)(Ec,{attachments:b,onRemove:S}),Oc()?(0,V.jsx)(`p`,{className:`text-muted`,children:z(`pages.attachHintTouch`)}):(0,V.jsx)(`p`,{className:`keys-only mx-0 mt-2 mb-0 ${Qt}`,children:K(`quickTask`,`legend`)}),_&&(0,V.jsx)(`p`,{className:`text-error`,children:_}),(0,V.jsx)(Cr,{busy:h,submitLabel:z(`newChat.start`)})]})})}var fT=e=>e.split(`/`).filter(Boolean).pop()??e;function pT(e,t,n=``){let r=fT(e),i=t.filter(t=>(t.repo!==e||t.host!==n)&&fT(t.repo)===r);if(i.length===0)return r;let a=e=>e.split(`/`).filter(Boolean).slice(-2).join(`/`);return i.some(e=>e.host===n)?i.some(t=>t.host!==n&&a(t.repo)===a(e))&&n?`${n}:${a(e)}`:a(e):n?`${n}:${r}`:r}var mT=e=>e.startsWith(`root:`)?null:e.split(`/`).slice(-2).join(`/`);function hT(e,t){let n=fT(e.repo),r=t.filter(t=>t!==e&&fT(t.repo)===n);if(r.length===0)return n;let i=e.repoId,a=i?mT(i):null;return i&&a?r.some(e=>e.repoId&&e.repoId!==i&&mT(e.repoId)===a)?i:a:pT(e.repo,[e,...r].map(e=>({repo:e.repo,host:``})))}var gT=/\s+#\d+\/\d+$/,_T=(e,t)=>(e.createdAt??``).localeCompare(t.createdAt??``)||e.id.localeCompare(t.id),vT=e=>e.groupId&&e.kind!==`main`?`${e.machine?.id??``}\0${e.groupId}`:null;function yT(e){let t=new Map;for(let n of e){let e=vT(n);if(e===null)continue;let r=t.get(e);r?r.push(n):t.set(e,[n])}for(let[e,n]of t)n.length<2?t.delete(e):n.sort(_T);return t}function bT(e){return(e[0]?.label??``).replace(gT,``)}function xT(e){let t=e=>e.engine?.name??e.label,n=new Map;for(let r of e)n.set(t(r),(n.get(t(r))??0)+1);let r=new Map;return new Map(e.map(e=>{let i=t(e),a=(r.get(i)??0)+1;return r.set(i,a),[e.id,(n.get(i)??0)>1?`${i} #${a}`:i]}))}var ST=[`default`,`recent`,`attention`,`name`],CT={folded:new Set,opened:new Set},wT=e=>{let t=Date.parse(e??``);return Number.isFinite(t)?t:0},TT=e=>wT(e.updatedAt??e.createdAt),ET=e=>wT(e.createdAt),DT=(e,t)=>ET(t)-ET(e)||t.id.localeCompare(e.id),OT=(e,t)=>TT(t)-TT(e)||t.id.localeCompare(e.id),kT=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`}),AT={default:null,recent:DT,attention:(e,t)=>e.rank-t.rank||OT(e,t),name:(e,t)=>kT.compare(e.label.trim(),t.label.trim())||e.id.localeCompare(t.id)},jT=`~scratch`,MT=e=>e.kind===`dir`&&(e.scratch===!0||e.noProject===!0);function NT(e,t){return[...e].sort((e,t)=>(e.order??e.rank)-(t.order??t.rank)).sort(IT(AT[t]))}function PT(e,t=`default`){let n=[...e].sort((e,t)=>(e.order??e.rank)-(t.order??t.rank)),r=new Map;for(let e of n){let t=MT(e)?jT:e.repo,n=r.get(t);n?n.push(e):r.set(t,[e])}let i=AT[t],a=[...r].map(([e,t])=>{let n=t.sort(IT(i));if(e===`~scratch`&&t.every(MT))return{repo:``,label:z(`rail.noProject`),tasks:n,key:jT,noProject:!0};let r=t.find(e=>e.repoId)?.repoId;return{repo:e,label:fT(e),tasks:n,...r?{repoId:r}:{}}});return[...a.filter(e=>e.noProject),...a.filter(e=>!e.noProject)]}var FT=e=>e.kind===`main`?0:e.pinned?1:2,IT=e=>(t,n)=>FT(t)-FT(n)||(e?e(t,n):0);function LT(e,t){let n=new Set([e.id]);for(let r=e.parentTaskId;r!==void 0;r=t.get(r)?.parentTaskId){if(n.has(r))return r===e.id;n.add(r)}return!1}function RT(e){let t=new Map;for(let n of e)for(let e of n.tasks)t.set(e.id,e);let n=new Map,r=new Set;for(let e of t.values()){let i=e.parentTaskId;if(i===void 0||!t.has(i)||LT(e,t))continue;r.add(e.id);let a=n.get(i);a?a.push(e):n.set(i,[e])}return{children:n,nested:r}}function zT(e,t,n=[]){for(let r of e.get(t)??[])n.push(r.id),zT(e,r.id,n);return n}function BT(e,t,n,r){return r.folded.has(e)?!0:r.opened.has(e)||t<=5?!1:r.selectedId===void 0||!n.includes(r.selectedId)}function VT(e,t=``,n=CT,r=0,i=!0){let a=t.trim(),o=(...e)=>e.some(e=>e!==``&&As(a,e)),{children:s,nested:c}=RT(e),l=[];for(let t of e){let e=a===``||o(t.label),u=t.machine===void 0?{}:{machine:t.machine},d=t.key??t.repo,f=t=>e||o(t.label,t.title,t.branch,fT(t.repo)),p=e=>f(e)||(s.get(e.id)??[]).some(p),m=(e,t,r,i=!1,o)=>{let c=r+1,l=t.machine?{machine:t.machine.id}:{},u=s.get(t.id),d=u?zT(s,t.id):[],m=u!==void 0&&a===``&&BT(t.id,u.length,d,n);e.push({id:t.id,kind:`task`,task:t,depth:Math.min(c,3),...c>3?{level:c}:{},...u?{fold:{count:d.length,collapsed:m,descendantIds:d}}:{},...o===void 0?{}:{attempt:o},...l});let g=i||f(t);m||h(e,(u??[]).filter(e=>g||p(e)),r+1,g)},h=(e,t,n,r)=>{let a=i?yT(t):new Map,o=new Set;for(let i of t){let t=vT(i),s=t===null?void 0:a.get(t);if(t===null||!s){m(e,i,n,r);continue}if(o.has(t))continue;o.add(t);let c=s[0];if(!c)continue;let l=n+1;e.push({id:`round:${c.machine?.id??``}:${c.groupId}`,kind:`round`,groupId:c.groupId??``,title:bT(s),tasks:s,depth:Math.min(l,3),...c.machine?{machine:c.machine.id}:{}});let u=xT(s);for(let t of s)m(e,t,n+1,r,u.get(t.id))}},g=[];h(g,t.tasks.filter(e=>!c.has(e.id)&&p(e)),r,!1),!(g.length===0&&!e)&&l.push({id:`project:${d}`,kind:`project`,repo:t.repo,label:t.label,...t.noProject?{noProject:!0}:{},...u},...g)}return l}var HT=e=>Math.max(0,...e.tasks.map(ET));function UT(e){let t=e.tasks.filter(e=>!e.routine),n=e.remote.filter(e=>!e.routine),r=[...PT(t,e.sort).map(e=>({group:e})),...e.machines.flatMap(t=>PT(n.filter(e=>e.machine?.id===t.alias),e.sort).map(e=>({group:e,machine:t.alias})))],i=new Map;for(let e of r){let{repoId:t,repo:n}=e.group,r=e.group.noProject?jT:t??(e.machine===void 0?n:`${e.machine}\0${n}`),a=i.get(r);a?a.push(e):i.set(r,[e])}let a=AT[e.sort],o=new Map,s=[];for(let[e,t]of i){let n=t[0];if(!n)continue;let r=t.flatMap(e=>e.group.tasks),i=n.group.noProject===!0,c={repo:n.group.repo,label:i?n.group.label:``,key:e,tasks:t.length===1?n.group.tasks:r.sort(IT(a)),...n.group.repoId?{repoId:n.group.repoId}:{},...n.machine===void 0||i?{}:{machine:n.machine},...i?{noProject:!0}:{}};s.push(c);for(let e of t)o.set(e,c)}let c=new Map(s.map(e=>[e,e.noProject?e.label:hT(e,s)])),l=s.map(e=>({...e,label:c.get(e)??e.label}));return e.sort===`recent`&&l.sort((e,t)=>HT(t)-HT(e)),e.sort===`name`&&l.sort((e,t)=>kT.compare(e.label,t.label)),l.sort((e,t)=>Number(t.noProject===!0)-Number(e.noProject===!0)),{rows:VT(l,e.query,e.fold),groups:r.filter(e=>e.machine===void 0).map(e=>{let t=o.get(e);return{...e.group,label:(t&&c.get(t))??e.group.label}})}}function WT(e){return e.title??e.engineName??(e.kind===`engine`?z(`tab.engine`):z(`tab.shell`))}function GT(e,t){if(t.size===0)return e;let n=!1;return e.filter(e=>e.kind===`project`||e.kind===`state`?(n=t.has(e.id),!0):!n)}function KT(e){return e.kind===`leaf`?[e]:e.children.flatMap(KT)}function qT(e){return!!e&&KT(e.root).length>1}function JT(e){let t=[],n=(e,r,i,a,o,s,c)=>{if(e.kind===`leaf`){t.push({id:e.id,x:r,y:i,w:a,h:o,left:s,top:c});return}let l=e.children.length;e.children.forEach((t,u)=>{e.orientation===`row`?n(t,r+a*u/l,i,a/l,o,u>0||s,c):n(t,r,i+o*u/l,a,o/l,s,u>0||c)})};return n(e,0,0,1,1,!1,!1),t}function YT(e,t,n=1){let r=KT(e.root).map(e=>e.id),i=r.indexOf(t);return r[(Math.max(0,i)+n+r.length)%r.length]??t}function XT(e,t){let n=new Map,r=new Map;for(let i of KT(e.root)){if(i.title){r.set(i.id,i.title);continue}let e=i.own?t:`shell`,a=(n.get(e)??0)+1;n.set(e,a),r.set(i.id,a===1?e:`${e} ${a}`)}return r}function ZT(e,t,n){return e.kind===`engine`&&KT(t.root).some(e=>e.id===n&&e.own)}function QT(e){return e.alive!==!1||!!e.split&&!KT(e.split.root).some(e=>e.own)}function $T(e){return KT(e.root).map(e=>e.id).join(`,`)}function eE(e){return!(e instanceof HTMLElement)||e.closest(`.xterm`)?!1:e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function tE(e){return e instanceof HTMLElement&&!!e.closest(`.rail, button, a`)}var nE=e=>e.tabs.get()[e.selection.get().taskId??``]??[];function rE(e){let{taskId:t,tabId:n}=e.selection.get(),r=nE(e);return{taskId:t,tabs:r,at:r.findIndex(e=>e.id===n)}}function iE(e,t){let{taskId:n,tabs:r}=rE(e),i=r[t];!n||!i||e.select(n,i.id)}function aE(e){let{taskId:t,tabs:n,at:r}=rE(e),i=n[r];!t||!i||U.set((0,V.jsx)(br,{title:z(`menu.renameTab`),initial:WT(i),submitLabel:z(`dialog.save`),onSubmit:async n=>{await e.client.request(`tab.rename`,{taskId:t,tabId:i.id,title:n}),await e.refreshTabsNow()}}))}var oE=e=>!!e.selection.get().taskId,sE=e=>nE(e).length>0,cE=[{id:`help.open`,chords:[`f1`],prefix:!1,run:ac},{id:`focus.next`,chords:[`f4`],prefix:!1,run:()=>aa(1)},{id:`chat.tab.chooseEngine`,chords:[`ctrl+e`],prefix:!1,surface:`workspace`,live:oE,run:e=>{let{taskId:t}=e.selection.get();t&&U.set((0,V.jsx)(dT,{model:e,taskId:t}))}},{id:`chat.tab.rename`,chords:[`f2`],prefix:!1,surface:`workspace`,live:e=>{let{tabs:t,at:n}=rE(e);return!!t[n]&&!qT(t[n]?.split)},run:aE},{id:`chat.tab.cycle-next`,chords:[`ctrl+]`],prefix:!1,surface:`workspace`,live:sE,run:e=>iE(e,(rE(e).at+1)%nE(e).length)},{id:`chat.tab.cycle-prev`,chords:[`ctrl+[`],prefix:!1,surface:`workspace`,live:sE,run:e=>iE(e,(rE(e).at-1+nE(e).length)%nE(e).length)},{id:`chat.tab.goto`,chords:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`].map(e=>`ctrl+${e}`),prefix:!1,surface:`workspace`,live:sE,run:(e,t=``)=>{let n=la().find(e=>e.id===`chat.tab.goto`&&!e.prefix)?.chords.indexOf(t)??-1;n>=0&&iE(e,n)}},{id:`attention.next`,chords:[`f7`],prefix:!1,run:e=>uE(e)}];sa(()=>cE);function lE(e){(0,g.useEffect)(()=>{let t=t=>{if(U.get()||eE(t.target))return;let n=hn.get();if(n===`worktrees`)return;let r=fa()??(oE(e)?`workspace`:`sidebar`),{taskId:i}=e.selection.get();if(!n&&i&&!t.ctrlKey&&!t.shiftKey&&!t.metaKey&&!t.altKey&&t.key===`Enter`&&!sE(e)&&!tE(t.target)){t.preventDefault(),t.stopPropagation(),U.set((0,V.jsx)(dT,{model:e,taskId:i}));return}let a=Es(t),o=la().filter(t=>!t.prefix&&!t.native&&t.chords.some(e=>a.includes(e))&&ua(t,r)&&!(n&&t.surface)&&t.live?.(e)!==!1).sort((e,t)=>da(e,r)-da(t,r))[0];o&&(t.preventDefault(),t.stopPropagation(),o.run(e,a.find(e=>o.chords.includes(e))))};return window.addEventListener(`keydown`,t,{capture:!0}),()=>window.removeEventListener(`keydown`,t,{capture:!0})},[e])}function uE(e){let t=e.tasks.get();if(!t)return;let n=fc(t.attention,t.tasks.map(e=>e.id),e.selection.get());if(!n){W(z(`inbox.empty`));return}if(lc(n.state)){hc(e,n);return}n.taskId!==null&&(e.select(n.taskId,n.tabId),mc(e,n))}async function dE(e,t){try{if(t.kind===`action`){await e.client.request(`plugin.chordAction`,{chord:t.chord});return}let{taskId:n,tabId:r}=e.selection.get();if(!n){W(z(`keys.pluginNoTask`),`error`);return}let i=await e.client.request(`plugin.paneOpen`,{taskId:n,pane:t.target,...r?{tabId:r}:{}});await e.refreshTabsNow(),e.select(n,i.tabId)}catch(e){W(G(e),`error`)}}function fE(e){(0,g.useEffect)(()=>{let t=t=>{let n=oi.get().plugins;if(n.length===0||!yi({dialog:U.get()!==null,page:hn.get()})||eE(t.target))return;let r=vi(n,Es(t));r&&(t.preventDefault(),t.stopImmediatePropagation(),dE(e,r))};return window.addEventListener(`keydown`,t,{capture:!0}),()=>window.removeEventListener(`keydown`,t,{capture:!0})},[e])}var pE=`prefix.moreCommands`,mE=/^ctrl\+[^+]+$/;function hE(e){return mE.test(e)?e.slice(5):null}function gE(e){let t=ks(e.bindingId);if(!t)return null;if(e.reachability.direct.has(e.bindingId)){let e=t.keys[0];if(e)return ai(e)}if(e.prefixKey&&e.reachability.prefix.has(e.bindingId)){let n=t.prefixKeys?.[0];if(n)return`${ai(e.prefixKey)} ${ai(n)}`}return null}function _E(e,t){let n=ti.filter(t=>e.direct.has(t.id)).flatMap(e=>{let t=e.keys.flatMap(e=>hE(e)??[]);return t.length>2?[{stroke:`${t[0]}-${t.at(-1)}`,action:e.id}]:t.map(t=>({stroke:t,action:e.id}))}),r=t?hE(t):null;return r&&e.prefix.size>0&&n.push({stroke:r,action:pE}),n}var vE=4e3,yE=180,bE=vE,xE=_({guide:null,entries:[]}),SE=1;function CE(e,t){let n={id:SE++,stroke:e,action:t,at:Date.now()};xE.set({guide:null,entries:[...xE.get().entries,n].slice(-3)})}var wE=8,TE=32,EE=600,DE=100,OE=new WeakMap,kE=null;function AE(e){let t=OE.get(e);return t||(t={entries:new Map,snapshots:new Map,left:null},OE.set(e,t)),t}function jE(){return kE||(kE=document.createElement(`div`),kE.style.display=`none`,document.body.append(kE)),kE}function ME(e,t,n){e.snapshots.delete(t),e.snapshots.set(t,n);for(let t of e.snapshots.keys()){if(e.snapshots.size<=TE)break;e.snapshots.delete(t)}}function NE(e,t,n){e.entries.delete(t.key),t.leaving!==null&&window.clearTimeout(t.leaving),t.leaving=null,n?ME(e,t.key,t.handle.snapshot()):e.snapshots.delete(t.key),t.handle.dispose(),t.box.remove()}function PE(e){let t=[...e.entries.values()].filter(e=>e.slot.parkedAt!==null);t.sort((e,t)=>(e.slot.parkedAt??0)-(t.slot.parkedAt??0));for(let n of t.slice(0,Math.max(0,t.length-wE)))NE(e,n,!0)}function FE(e,t,n,r){return AE(e).entries.get(Kw(t,n,r))?.slot.parkedAt!=null}function IE(e,t){let n=AE(e.client),r=Kw(e.taskId,e.tabId,e.leafId),i=n.entries.get(r);if(i&&i.slot.parkedAt!==null){let{slot:r,handle:a,box:o}=i;return r.parkedAt=null,r.binding=t,i.leaving!==null&&(window.clearTimeout(i.leaving),i.leaving=null,o.classList.remove(`is-leaving`)),n.left=null,BE(n),e.host.append(o),t.setNotice(r.notice),t.onScrolled(r.scrolled),a.term.refresh(0,a.term.rows-1),e.focusOnMount&&a.term.focus(),{handle:a,release:()=>LE(n,i)}}let a=document.createElement(`div`);a.className=It,e.host.append(a),RE(n,e.host);let o=!i,s={binding:t,notice:{kind:`none`},scrolled:0,parkedAt:null},c=null,l=o?n.snapshots.get(r):void 0;l&&n.snapshots.delete(r);let u=Zw({...e,el:a,snapshot:l,onPainted:()=>BE(n),setNotice:e=>{s.notice=e,s.binding?.setNotice(e)},onScrolled:e=>{s.scrolled=e,s.binding?.onScrolled(e)},onFocusChange:e=>s.binding?.onFocusChange(e),onExit:e=>{s.binding?s.binding.onExit(e):c&&n.entries.get(r)===c&&NE(n,c,!1)},copyText:e=>s.binding?.copyText(e)??Promise.resolve(!1),pasteImage:()=>s.binding?.pasteImage()??Promise.resolve()});if(!o)return{handle:u,release:()=>{u.dispose(),a.remove()}};let d={key:r,handle:u,box:a,slot:s,leaving:null};return c=d,n.entries.set(r,d),{handle:u,release:()=>LE(n,d)}}function LE(e,t){let{slot:n}=t;e.entries.get(t.key)===t&&n.parkedAt===null&&(n.binding?.onFocusChange(!1),n.binding=null,t.handle.term.blur(),n.parkedAt=performance.now(),jE().append(t.box),e.left=t,PE(e))}function RE(e,t){let n=e.left;e.left=null,!(!n||n.slot.parkedAt===null||performance.now()-n.slot.parkedAt>DE)&&e.entries.get(n.key)===n&&(n.box.classList.add(`is-leaving`),t.append(n.box),n.leaving=window.setTimeout(()=>zE(e,n),EE))}function zE(e,t){t.leaving!==null&&(window.clearTimeout(t.leaving),t.leaving=null,t.box.classList.remove(`is-leaving`),e.entries.get(t.key)===t&&t.slot.parkedAt!==null&&jE().append(t.box))}function BE(e){for(let t of e.entries.values())zE(e,t)}async function VE(e,t,n){return pc(await e.request(`output.read`,{taskId:t,tab:n,source:`terminal`,limit:12}))}async function HE(e,t,n,r){try{let i=await e.client.request(`tab.send`,{taskId:t,tabId:n,prompt:r});return i.delivered?!0:(W(z(`layout.composerNotSent`,{reason:i.reason??``}),`error`),!1)}catch(e){let t=e instanceof Ov?e.code:void 0;return W(t===`UNKNOWN_OP`?z(`layout.composerOldBridge`):t===`AWAITING_PERMISSION`?z(`layout.composerAtMenu`):e instanceof Error?e.message:String(e),`error`),!1}}async function UE(e,t,n,r){let{client:i}=e,a=Kw(t,n),o=va(a)!==void 0||FE(i,t,n);try{return o||await i.request(`term.attach`,{taskId:t,tabId:n}),await i.request(`term.input`,{stream:a,data:r}),!0}catch(e){return W(e instanceof Error?e.message:String(e),`error`),!1}finally{o||await i.request(`term.detach`,{stream:a}).catch(()=>{})}}async function WE(e,t,n){try{return(await e.client.request(`gate.answer`,{gateId:t,...n})).delivered||W(z(`inbox.gateKept`)),!0}catch(e){return W(e instanceof Error?e.message:String(e),`error`),!1}}var GE=`mx-2.5 mt-0.5 mb-1.5 flex min-w-0 flex-col gap-1.5 font-mono text-meta`,KE=2e3;function qE(e,t,n){let[r,i]=(0,g.useState)(null),[a,o]=(0,g.useState)(0);return(0,g.useEffect)(()=>{if(!n)return;let r=!0,a=0,o=async()=>{try{let a=await VE(e.client,t,n);r&&i(a)}catch{r&&i(e=>e??[])}r&&(a=window.setTimeout(o,KE))};return o(),()=>{r=!1,window.clearTimeout(a)}},[e,t,n,a]),{lines:r,refresh:()=>o(e=>e+1)}}function JE(e){B();let{model:t,taskId:n,tabId:r,mode:i,gate:a}=e,{lines:o,refresh:s}=qE(t,n,r),c=(0,g.useRef)(null),[l,u]=(0,g.useState)(``),[d,f]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let e=c.current;e&&(e.scrollTop=e.scrollHeight)},[o]);let p=async e=>{f(!0);let t=await e();return f(!1),t&&window.setTimeout(s,600),t},m=async()=>{let e=l.trim();!e||d||await p(()=>i===`gate`&&a?WE(t,a.id,{text:e}):r?HE(t,n,r,e):Promise.resolve(!1))&&u(``)};return(0,V.jsxs)(`div`,{className:GE,children:[a&&(0,V.jsx)(`p`,{className:`m-0 whitespace-pre-wrap wrap-anywhere text-ink`,children:a.question}),r&&(0,V.jsx)(`pre`,{ref:c,className:`m-0 max-h-60 overflow-y-auto rounded-sm border-hairline border-line bg-inset px-2 py-1.5 text-ink whitespace-pre-wrap wrap-anywhere`,"data-peek-lines":12,children:o===null?`…`:o.length===0?z(`inbox.noOutput`):o.join(`
|
|
111
|
+
`)}),i===`gate`&&a&&(0,V.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:a.options.map(e=>(0,V.jsxs)(H,{disabled:d,title:e.detail,onClick:()=>void p(()=>WE(t,a.id,{option:e.key})),children:[`[ `,e.key===a.recommended?`★ `:``,e.label,` ]`]},e.key))}),i===`menu`&&r&&(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[Wy.map(e=>(0,V.jsxs)(H,{disabled:d,onClick:()=>void p(()=>UE(t,n,r,e.bytes(!1))),children:[`[ `,e.cap,` ]`]},e.id)),(0,V.jsx)(H,{onClick:e.onOpenTab,children:z(`inbox.openTab`)})]}),(i===`reply`||i===`gate`)&&(0,V.jsxs)(`form`,{className:`flex min-w-0 items-center gap-2`,onSubmit:e=>{e.preventDefault(),m()},children:[(0,V.jsx)(`input`,{className:`min-w-0 flex-1 rounded-sm border-hairline border-line bg-paper px-2 py-1.5 font-mono text-ink focus-visible:border-line-active focus-visible:outline-none touch:min-h-10 touch:text-display`,value:l,disabled:d,placeholder:z(`inbox.replyPlaceholder`),"aria-label":z(`inbox.replyPlaceholder`),autoComplete:`off`,enterKeyHint:`send`,onChange:e=>u(e.target.value)}),(0,V.jsx)(H,{type:`submit`,disabled:d||l.trim()===``,children:z(`inbox.send`)})]})]})}function YE({text:e}){return(0,V.jsx)(`span`,{className:`inline-flex flex-wrap gap-x-3 gap-y-0`,children:e.split(`·`).map(e=>e.trim()).filter(Boolean).map(e=>(0,V.jsx)(`span`,{children:e},e))})}var XE={accent:`text-accent`,muted:`text-subtle`,attention:`text-error`,warning:`text-warning`,info:`text-info`,success:`text-success`,added:`text-diff-added`,removed:`text-diff-removed`},ZE={accent:`text-accent`,muted:`text-subtle`,attention:`text-error`,warning:`text-warning`,success:`text-success`,info:`text-accent`,ink:`text-ink`},QE=6;function $E(e,t){return e?`${e.repo.split(`/`).filter(Boolean).pop()??e.repo} › ${e.label}`:t}function eD({model:e}){B();let t=v(e.tasks),n=v(e.visits),r=v(e.tabs),[i,a]=(0,g.useState)(0),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)(Date.now());(0,g.useEffect)(()=>{let e=window.setInterval(()=>l(Date.now()),3e4);return()=>window.clearInterval(e)},[]);let u=new Map((t?.tasks??[]).map(e=>[e.id,e])),d=(e,t)=>e&&t&&r[e]?.find(e=>e.id===t)?.title||``,f=dc(t?.attention??[],t?.tasks.map(e=>e.id)??[]).map((e,t)=>{let n=e.taskId?u.get(e.taskId):void 0;return{key:`a${t}:${e.taskId}:${e.tabId}`,section:`attention`,taskId:e.taskId,tabId:e.tabId,identity:$E(n,e.label??e.taskId??``),subtitle:d(e.taskId,e.tabId)||n?.branch||``,at:e.at,attention:e}}),p=new Set(f.map(e=>`${e.taskId}:${e.tabId}`)),m=n.filter(e=>u.has(e.taskId)&&!p.has(`${e.taskId}:${e.tabId}`)).slice(0,QE).map(e=>({key:`r:${e.taskId}:${e.tabId}`,section:`recent`,taskId:e.taskId,tabId:e.tabId,identity:$E(u.get(e.taskId),e.taskId),subtitle:d(e.taskId,e.tabId)||u.get(e.taskId)?.branch||``,at:e.at})),h=[...f,...m],_=h[Math.min(i,h.length-1)],y=t=>{if(t.attention&&lc(t.attention.state))return hc(e,t.attention);t.attention&&mc(e,t.attention),t.taskId&&u.has(t.taskId)&&(e.select(t.taskId,t.tabId),kn())},b=()=>void Promise.all(f.map(t=>t.attention&&mc(e,t.attention,!0)));(0,g.useEffect)(()=>{let t=t=>{if(!(t.target instanceof HTMLElement&&t.target.closest(`input, textarea`))){if(t.key===`ArrowDown`||t.key===`j`)a(e=>Math.min(h.length-1,e+1));else if(t.key===`ArrowUp`||t.key===`k`)a(e=>Math.max(0,e-1));else if(t.key===`Enter`&&_)y(_);else if(t.key===`d`&&_?.attention)mc(e,_.attention,!0);else if(t.key===`D`)b();else return;t.preventDefault()}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)});let x=n=>{let r=n.attention?sc(n.attention.state):null,i=n===_,l=n.attention,d=n.taskId?u.get(n.taskId):void 0,f=l?.gateId?t?.gates?.find(e=>e.id===l.gateId&&e.status===`open`):void 0,p=n.tabId??f?.tabId??null,m=!!l&&!!d&&!d.machine&&!lc(l.state)&&(!l.gateId||!!f)&&(!!p||!!f),g=l?.state===`permission_needed`||!!p&&d?.tabStatus?.[p]?.kind===`needs-input`,v=f?`gate`:l?.state===`dead`?`readonly`:g?`menu`:`reply`,b=`${n.taskId}:${n.tabId}:${l?.gateId??``}`,x=m&&o===b;return(0,V.jsxs)(`li`,{children:[(0,V.jsxs)(`div`,{className:or,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${dr({selected:i,stack:!0})} ${sr}`,onMouseEnter:()=>a(h.indexOf(n)),onClick:()=>y(n),children:[(0,V.jsxs)(`span`,{className:ir,children:[(0,V.jsx)(`span`,{className:fr,children:n.identity}),r&&(0,V.jsxs)(`span`,{className:`flex-none font-mono text-meta font-normal normal-nums ${ZE[r.tone]}`,children:[r.glyph,` `,z(r.stateKey)]}),(0,V.jsx)(`span`,{className:ar,children:cc(c-n.at)})]}),n.subtitle&&(0,V.jsx)(`span`,{className:`truncate font-mono text-meta font-normal normal-nums text-muted`,children:n.subtitle})]}),m?(0,V.jsx)(H,{className:cr,"aria-expanded":x,onClick:()=>{a(h.indexOf(n)),s(x?null:b)},children:z(x?`inbox.hide`:`inbox.reply`)}):(0,V.jsx)(`span`,{"aria-hidden":!0,className:cr})]}),x&&n.taskId&&(0,V.jsx)(JE,{model:e,taskId:n.taskId,tabId:p,mode:v,gate:f,onOpenTab:()=>y(n)})]},n.key)};return(0,V.jsx)(vr,{title:z(`inbox.title`),wide:!0,children:(0,V.jsxs)(`div`,{className:Wn,children:[(0,V.jsxs)(`div`,{className:tr,children:[(0,V.jsx)(`p`,{className:`${rn} text-muted ${er} touch:hidden!`,children:(0,V.jsx)(YE,{text:z(`inbox.hints`)})}),f.length>0&&(0,V.jsx)(H,{className:`flex-none min-w-[calc(9ch+0.5rem)] whitespace-nowrap pr-2 text-right font-mono text-meta`,onClick:b,children:z(`inbox.ackAll`)})]}),(0,V.jsx)(`h2`,{className:`${rn} text-muted ${nr}`,children:z(`inbox.attention`)}),f.length===0?(0,V.jsx)(`p`,{className:`mono text-muted`,children:z(`inbox.empty`)}):(0,V.jsx)(`ul`,{className:rr,children:f.map(x)}),m.length>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted mt-1`,children:z(`inbox.recent`)}),(0,V.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-0.5 p-0`,children:m.map(x)})]})]})})}var tD=[`project`,`state`],nD=`rove.railGroup`,rD=_(tD.find(e=>e===localStorage.getItem(nD))??`project`);function iD(e){rD.set(e),localStorage.setItem(nD,e)}var aD=`rove.activeSortMode`;function oD(){let e=localStorage.getItem(aD);return ST.find(t=>t===e)??`recent`}var sD=_(oD());function cD(e){sD.set(e),localStorage.setItem(aD,e)}function lD(){cD(ST[(ST.indexOf(sD.get())+1)%ST.length]??`default`)}var uD=_(!1),dD=_(null);function fD(e){e&&(sD.get()!=="default"||rD.get()===`state`)&&(cD(`default`),iD(`project`),W(K(`tasks`,`sort.reorderSwitched`))),e||dD.set(null),uD.set(e)}async function pD(e,t,n){let r=n<0?`up`:`down`;try{await e.client.request(`task.move`,{taskId:t.task.id,direction:r})}catch(e){W(K(`tasks`,`toast.moveFailed`,{error:e instanceof Error?e.message:String(e)}),`error`)}}async function mD(e,t,n){let r=n<0?`up`:`down`;try{for(let i=0;i<Math.abs(n);i++)await e.client.request(`task.move`,{taskId:t,direction:r})}catch(e){W(K(`tasks`,`toast.moveFailed`,{error:e instanceof Error?e.message:String(e)}),`error`)}}async function hD(e,t,n){if(n.pin!==void 0)try{await e.client.request(`task.pin`,{taskId:t,pinned:n.pin})}catch(e){W(K(`tasks`,`toast.moveFailed`,{error:e instanceof Error?e.message:String(e)}),`error`);return}await mD(e,t,n.steps)}var gD=`-my-0.75 -mr-0.5 ml-0 flex flex-none self-stretch`,_D=`before:absolute before:top-0 before:left-1 before:content-[''] before:[border-left:var(--hairline)_solid_var(--line-active)]`,vD={blank:``,pipe:`${_D} before:bottom-0`,tee:`${_D} before:bottom-0`,elbow:`${_D} before:right-0 before:bottom-1/2 before:rounded-bl-[6px] before:[border-bottom:var(--hairline)_solid_var(--line-active)]`},yD=e=>`relative w-3 ${vD[e]}`,bD=`-mx-1 inline-flex min-w-6 cursor-pointer items-center justify-center gap-1 self-stretch rounded-xs px-2 font-mono hover:bg-hover`,xD=`inline-flex items-center gap-1`,SD=e=>`fixed z-35 flex max-h-[min(380px,60vh)] w-85 max-w-[calc(100vw-24px)] animate-pr-list-in flex-col overflow-y-auto overscroll-contain rounded-md border-hairline border-line bg-surface p-1.5 shadow-popover transition-[opacity,translate] duration-120 ease-in motion-reduce:animate-none motion-reduce:transition-none ${e?`-translate-x-1 opacity-0`:``}`,CD=`inline-flex flex-none items-center text-subtle`,wD=`group/rail rail @container row-1 flex min-h-0 flex-col focus:outline-none ${Ge}`,TD=`flex min-w-0 items-center gap-2.5 overflow-hidden px-3.5 pt-3.5 pb-2.5 whitespace-nowrap`,ED=`flex gap-1 px-3.5 pb-2 text-meta`,DD=`min-w-0 flex-1 border-none bg-transparent p-0 text-ink [font:inherit] outline-none placeholder:text-subtle`,OD=e=>`flex-1 overflow-y-auto px-1.5 pt-1 pb-3 scrollbar-none ${e?`[&>[data-row]]:[transition:transform_150ms_ease-out] motion-reduce:[&>[data-row]]:transition-none`:``}`,kD=`group-focus-within/rail:[box-shadow:inset_0_0_0_1px_var(--focus)]`,AD=e=>`group/head mx-2 mt-1.5 mb-1 flex items-center gap-1 font-mono text-meta font-semibold normal-nums text-subtle not-first:mt-4.5 ${e.moving||e.dragging?`bg-accent-soft`:``} ${e.moving?`after:font-mono after:text-meta after:font-medium after:normal-nums after:text-accent after:content-['move']`:``}`,jD=`touch:relative touch:after:absolute touch:after:-inset-x-1.5 touch:after:-inset-y-3 touch:after:content-['']`,MD=`group/toggle -ml-1 inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-xs border-none bg-transparent px-1 py-0.5 text-inherit [font:inherit] hover:text-ink ${jD}`,ND=e=>e?``:`opacity-0 group-hover/head:opacity-100 group-focus-visible/toggle:opacity-100 touch:opacity-100`,PD=`-mr-[4.5px] ml-auto size-5 cursor-pointer rounded-xs border-none bg-transparent text-muted opacity-0 [font:400_var(--fs-display)/1_var(--sans)] group-hover/head:opacity-100 hover:bg-hover hover:text-ink focus-visible:opacity-100 touch:opacity-100 ${jD}`,FD=1e4;function ID(e,t){let n=e.hostLabel||e.alias;if(e.state===`online`)return e.version?`${n} · v${e.version}`:n;let r=t[e.state];return e.state===`mismatch`?e.version?`${n} · ⚠ v${e.version} (${r})`:`${n} · ⚠ ${r}`:`${n} · ${r}`}function LD(e,t,n,r=e){let i=t?.hostLabel&&t.hostLabel!==e?` (${t.hostLabel})`:``,a=n.runsOn.replace(`{host}`,t?`${e}${i}`:r);return!t||t.state===`online`?a:`${a}${ID(t,n).slice((t.hostLabel||t.alias).length)}`}function RD(e,t,n){if(e.kind!==`task`||e.machine===void 0)return null;let r=e.machine;return LD(r,t.find(e=>e.alias===r),n,e.task.machine?.label)}function zD({label:e}){return(0,V.jsx)(`span`,{className:CD,title:e,role:`img`,"aria-label":e,children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,width:`12`,height:`12`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M4.5 13a3 3 0 0 1-.4-5.97A4.5 4.5 0 0 1 12.8 6.6 3.2 3.2 0 0 1 12.3 13Z`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinejoin:`round`})})})}function BD({host:e,onMachines:t}){return B(),(0,V.jsxs)(`div`,{className:Xt,children:[(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`machine.filesElsewhere`,{host:e})}),(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`machine.filesHint`,{host:e})}),(0,V.jsx)(`div`,{children:(0,V.jsx)(H,{hit:`tight`,onClick:t,children:z(`machines.open`)})})]})}function VD(e){let t=v(e.client.conn),n=v(e.remote),[r,i]=(0,g.useState)(()=>q(e,`machines.list`)?.machines??[]),a=[...new Set(n.map(e=>`${e.machine?.id}:${e.machine?.stale??!1}`))].join();return(0,g.useEffect)(()=>{if(t.state!==`open`)return;let n=!0,r=()=>sl(e,`machines.list`).then(e=>n&&i(e.machines),()=>{});r();let a=window.setInterval(r,FD);return()=>{n=!1,window.clearInterval(a)}},[e.client,t.state,a]),r}var HD=`flex min-h-0 min-w-0 flex-1 flex-col p-4 font-mono text-meta leading-[1.5] font-normal not-italic normal-nums`,UD=`flex flex-1 flex-col items-center justify-center gap-1.5 text-center`,WD=`relative mx-auto flex w-full max-w-[104ch] flex-col gap-2`,GD=`flex flex-col gap-2 rounded-md border-hairline border-line bg-surface px-3 py-2.5 focus-within:border-line-active`,KD=`flex flex-wrap items-center justify-end gap-1.5`,qD=`max-h-[40vh] min-h-[4.5em] w-full bg-transparent text-ink [border:0] [outline:0]`,JD=`flex flex-wrap items-center gap-1.5 px-1`,YD=`flex-1`,XD=(e=!1)=>`flex h-7 min-w-7 cursor-pointer items-center justify-center rounded-sm px-1 has-[:disabled]:opacity-60 disabled:opacity-60 [&:hover]:bg-hover [&:hover]:text-ink ${e?`text-accent`:`text-muted`}`,ZD=`size-3.25 flex-none fill-none stroke-current [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:1.3]`,QD=(e=!1)=>`inline-flex max-w-[28ch] items-center gap-1.5 overflow-hidden rounded-full border-hairline px-2.5 py-0.75 text-ellipsis whitespace-nowrap touch:py-1.75 [&:hover]:bg-hover [&:hover]:text-ink aria-expanded:bg-hover aria-expanded:text-ink ${e?`border-[color-mix(in_srgb,var(--accent)_45%,transparent)] bg-accent-soft text-accent`:`border-line text-muted`}`,$D=`disabled:cursor-default disabled:opacity-60`,eO=e=>`${QD(e)} min-w-[9ch] justify-center ${$D}`,tO=`touch-none select-none [-webkit-touch-callout:none]`,nO=`group/chip relative inline-flex`,rO=`flex min-h-0 flex-col gap-1 overflow-y-auto p-1.5 [outline:0]`,iO=`flex min-h-0 flex-col overflow-y-auto`,aO=`sticky top-0 z-1 m-0 bg-surface px-1.5 pt-1.5 pb-0.5 text-left`,oO=e=>`flex w-full items-baseline gap-2 rounded-[calc(var(--radius)-6px)] px-2 py-1 text-left touch:py-2.5 disabled:cursor-default disabled:opacity-50 ${e.dim?`text-subtle`:`text-ink`} ${e.cursor?`bg-hover`:``}`,sO=`flex-[0_0_1.5ch] text-accent`,cO=`ml-auto pl-3 inline-flex items-center gap-1`,lO=`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`,uO=`flex-none whitespace-nowrap`,dO=`flex flex-col gap-0.5 px-1.5 py-0.5`,fO=`min-w-[36ch]`,pO=`flex items-center gap-1.5 p-1.5`;function mO(){return(0,V.jsx)(`svg`,{className:ZD,viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M2 4.5a1 1 0 0 1 1-1h3l1.5 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1z`})})}function hO(){return(0,V.jsxs)(`svg`,{className:ZD,viewBox:`0 0 16 16`,"aria-hidden":`true`,children:[(0,V.jsx)(`circle`,{cx:`4.5`,cy:`3.5`,r:`1.5`}),(0,V.jsx)(`circle`,{cx:`4.5`,cy:`12.5`,r:`1.5`}),(0,V.jsx)(`circle`,{cx:`11.5`,cy:`5`,r:`1.5`}),(0,V.jsx)(`path`,{d:`M4.5 5v6M11.5 6.5c0 3-7 2-7 4.5`})]})}function gO(e){let[t,n]=(0,g.useState)(!1),r=(0,g.useRef)(e.onClose);r.current=e.onClose,(0,g.useEffect)(()=>{t||r.current?.()},[t]);let i=(0,g.useRef)(null),a=(0,g.useRef)(null),o=(0,g.useRef)(null);(0,g.useLayoutEffect)(()=>{let e=o.current;if(!t||!e)return;let n=e.getBoundingClientRect(),r=n.right>window.innerWidth-8?window.innerWidth-8-n.right:n.left<8?8-n.left:0;r&&(e.style.transform=`translateX(${Math.round(r)}px)`)},[t]);let s=()=>{n(!1),a.current?.focus()};return(0,g.useEffect)(()=>{if(!t)return;let e=e=>{i.current?.contains(e.target)||n(!1)};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[t]),(0,V.jsxs)(`span`,{ref:i,className:nO,onKeyDown:e=>{e.key!==`Escape`||!t||(e.preventDefault(),e.stopPropagation(),s())},children:[(0,V.jsx)(`button`,{ref:a,type:`button`,className:QD(),"data-field":e.field,title:e.title,"aria-haspopup":`menu`,"aria-expanded":t,disabled:e.disabled,onClick:()=>n(e=>!e),children:e.label}),t&&(0,V.jsx)(`div`,{ref:o,className:`absolute bottom-[calc(100%+6px)] left-0 z-20 flex max-h-[min(50vh,420px)] max-w-[min(52ch,calc(100vw-16px))] min-w-[min(34ch,calc(100vw-16px))] flex-col overflow-hidden rounded-md border-hairline border-line-active bg-surface shadow-popover group-last-of-type/chip:right-0 group-last-of-type/chip:left-auto`,children:e.children(s)})]})}function _O(e){let[t,n]=(0,g.useState)(0),r=[...e.extra?[e.extra]:[],...e.rows,...e.more??[]],i=Math.min(t,Math.max(0,r.length-1)),a=(0,g.useRef)(null);return(0,g.useEffect)(()=>{a.current?.scrollIntoView({block:`nearest`})},[i,e.rows]),(0,V.jsxs)(`div`,{className:rO,children:[(0,V.jsx)(`input`,{className:sn,autoFocus:!0,spellCheck:!1,placeholder:e.placeholder,value:e.query,onChange:t=>{n(0),e.onQuery(t.target.value)},onKeyDown:t=>{if(!t.nativeEvent.isComposing){if(t.key===`ArrowDown`||t.key===`ArrowUp`)t.preventDefault(),n(Math.max(0,Math.min(r.length-1,i+(t.key===`ArrowDown`?1:-1))));else if(t.key===`Enter`){t.preventDefault();let n=r[i];n&&e.onPick(n.key)}}}}),(0,V.jsxs)(`div`,{className:iO,children:[r.length===0&&(0,V.jsx)(`p`,{className:`mx-2 my-1 text-muted`,children:e.empty}),r.map((t,r)=>(0,V.jsxs)(g.Fragment,{children:[e.moreLabel&&t===e.more?.[0]&&(0,V.jsx)(`p`,{className:`mx-2 mt-2 mb-0.5 text-muted`,children:e.moreLabel}),(0,V.jsxs)(`button`,{type:`button`,"aria-current":t.checked===!0,ref:r===i?a:void 0,tabIndex:-1,title:t.title,className:oO({cursor:r===i}),onMouseMove:()=>n(r),onClick:()=>e.onPick(t.key),children:[(0,V.jsx)(`span`,{className:sO,children:t.checked?`✓`:``}),(0,V.jsx)(`span`,{className:uO,children:t.text}),t.dim&&(0,V.jsx)(`span`,{className:`ml-auto pl-3 text-muted ${t.title?`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`:``}`,children:t.dim})]})]},t.key))]})]})}function vO(e){return(0,V.jsxs)(`button`,{type:`button`,role:e.multi?`menuitemcheckbox`:`menuitemradio`,"aria-checked":e.checked,tabIndex:-1,disabled:e.option.disabled,className:oO({cursor:e.cursor,dim:e.option.dim}),onMouseMove:e.onHover,onClick:e.onPick,children:[(0,V.jsx)(`span`,{className:sO,children:e.checked?`✓`:``}),(0,V.jsx)(`span`,{children:e.option.label}),!e.checked&&e.digit!==void 0&&!e.option.disabled&&(0,V.jsx)(`span`,{className:`ml-auto pl-3 text-muted`,children:e.digit})]})}function yO(e){let[t,n]=(0,g.useState)(()=>Math.max(0,e.options.findIndex(t=>t.id===e.value))),r=(0,g.useRef)(null);return(0,g.useEffect)(()=>r.current?.focus(),[]),(0,V.jsxs)(`div`,{ref:r,role:`menu`,tabIndex:-1,className:rO,onKeyDown:r=>{if(!(r.ctrlKey||r.metaKey||r.altKey||r.nativeEvent.isComposing)){if(r.key===`ArrowDown`||r.key===`ArrowUp`)r.preventDefault(),n(Math.max(0,Math.min(e.options.length-1,t+(r.key===`ArrowDown`?1:-1))));else if(r.key===`Enter`){r.preventDefault();let n=e.options[t];n&&!n.disabled&&e.onPick(n.id)}else if(e.onBack&&(r.key===`Escape`||r.key===`ArrowLeft`))r.preventDefault(),r.stopPropagation(),e.onBack();else{let t=e.digits?Zc(r.key,e.options.length):null,n=t===null?void 0:e.options[t];if(!n||n.disabled)return;r.preventDefault(),e.onPick(n.id)}}},children:[e.onBack?(0,V.jsxs)(`button`,{type:`button`,className:`${aO} ${rn} text-muted`,tabIndex:-1,onClick:e.onBack,children:[`‹ `,e.heading]}):(0,V.jsx)(`p`,{className:`${aO} ${rn} text-muted`,children:e.heading}),e.options.map((r,i)=>(0,V.jsx)(vO,{option:r,checked:e.values?e.values.includes(r.id):r.id===e.value,multi:e.values!==void 0,cursor:i===t,digit:e.digits&&i<9?i+1:void 0,onHover:()=>n(i),onPick:()=>e.onPick(r.id)},r.id)),e.footer]})}function bO(e){let[t,n]=(0,g.useState)(`root`),r=e.models.length+ +(e.efforts.length>0),[i,a]=(0,g.useState)(()=>Math.max(0,e.models.findIndex(t=>t.id===e.model))),o=(0,g.useRef)(null);if((0,g.useEffect)(()=>{t===`root`&&o.current?.focus()},[t]),t===`effort`)return(0,V.jsx)(yO,{heading:z(`newSession.effort`),options:e.efforts,value:e.effort,onBack:()=>n(`root`),onPick:t=>{e.onEffort(t),e.close()}});let s=t=>{e.onModel(t),e.close()},c=e.efforts.find(t=>t.id===e.effort)?.label??``;return(0,V.jsxs)(`div`,{ref:o,role:`menu`,tabIndex:-1,className:rO,onKeyDown:t=>{if(!(t.ctrlKey||t.metaKey||t.altKey||t.nativeEvent.isComposing)){if(t.key===`ArrowDown`||t.key===`ArrowUp`)t.preventDefault(),a(Math.max(0,Math.min(r-1,i+(t.key===`ArrowDown`?1:-1))));else if(t.key===`Enter`||t.key===`ArrowRight`&&i>=e.models.length){t.preventDefault();let r=e.models[i];r?s(r.id):e.efforts.length>0&&n(`effort`)}else{let n=Zc(t.key,e.models.length),r=n===null?void 0:e.models[n];if(!r)return;t.preventDefault(),s(r.id)}}},children:[(0,V.jsx)(`p`,{className:`${aO} ${rn} text-muted`,children:z(`newSession.modelHeading`)}),e.models.map((t,n)=>(0,V.jsx)(vO,{option:t,checked:t.id===e.model,multi:!1,cursor:n===i,digit:n<9?n+1:void 0,onHover:()=>a(n),onPick:()=>s(t.id)},t.id)),e.efforts.length>0&&(0,V.jsxs)(`button`,{type:`button`,role:`menuitem`,tabIndex:-1,className:`${oO({cursor:i===e.models.length})} mt-1 border-t-hairline border-t-line`,onMouseMove:()=>a(e.models.length),onClick:()=>n(`effort`),children:[(0,V.jsx)(`span`,{className:`flex-[0_0_1.5ch] text-accent`}),(0,V.jsx)(`span`,{children:z(`newSession.effort`)}),(0,V.jsxs)(`span`,{className:`${cO} text-muted`,children:[c,(0,V.jsx)(Ka,{right:!0})]})]})]})}function xO(e){return(0,V.jsxs)(`div`,{className:`${rO} ${fO}`,children:[(0,V.jsx)(`p`,{className:`${aO} ${rn} text-muted`,children:z(`newSession.branches`)}),(0,V.jsxs)(`label`,{className:dO,children:[(0,V.jsx)(`span`,{className:`text-muted`,children:z(`newSession.branchName`)}),(0,V.jsx)(`input`,{className:sn,autoFocus:!0,spellCheck:!1,placeholder:z(`newSession.branchNamePlaceholder`),value:e.branch,onChange:t=>e.onBranch(t.target.value)})]}),e.repos.map(t=>(0,V.jsxs)(`label`,{className:dO,children:[(0,V.jsxs)(`span`,{children:[t.name,t.primary&&(0,V.jsxs)(`span`,{className:`text-muted`,children:[` `,z(`newSession.primary`)]})]}),(0,V.jsx)(`select`,{className:sn,"aria-label":t.name,value:t.base||t.current,onChange:n=>e.onBase(t.path,n.target.value),children:(t.branches.includes(t.base||t.current)?t.branches:[t.base||t.current,...t.branches]).filter(e=>e!==``).map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))})]},t.path))]})}function SO(e){return e.id.startsWith(`root:`)?e.primary??e.checkouts[0]??e.id:e.id}function CO(e,t){if(!e)return null;let n=t.find(t=>t.id===e||t.checkouts.includes(e));return n?{ref:SO(n),clone:!1}:e.startsWith(`/`)?{ref:e,clone:!1}:null}function wO(e,t,n){let r=t.toLowerCase();return n?e.some(e=>e.toLowerCase()===`github.com/${r}`):e.some(e=>Nc(e).base.toLowerCase()===(r.split(`/`)[1]??``))}function TO(e){let t=e.begin?``:Mc(e.prompt);return{repo:e.pick.ref,machine:e.machine,...e.pick.clone?{clone:!0}:{},...e.baseRef?{baseBranch:e.baseRef}:{},...e.begin&&e.prompt?{prompt:e.prompt}:{},...t?{title:t}:{},...e.engine?{engine:e.engine}:{}}}var EO={offline:`newSession.remoteOffline`,outdated:`newSession.remoteOutdated`},DO=(e,t)=>sl(e,`machines.repos`,{machine:t});function OO(e,t){let n=t.filter(e=>e.state===`online`).map(e=>e.alias).join(`
|
|
112
|
+
`);(0,g.useEffect)(()=>{for(let t of n?n.split(`
|
|
113
|
+
`):[])DO(e,t).catch(()=>{})},[e,n])}function kO(e,t){B();let[n,r]=(0,g.useState)(null);if((0,g.useEffect)(()=>{if(!t)return;let n=!1;return DO(e,t).then(e=>!n&&r({machine:t,reply:e,failed:``})).catch(e=>!n&&r({machine:t,reply:null,failed:String(e)})),()=>{n=!0}},[e,t]),!t)return{repos:[],loaded:!0,problem:``};let i=n?.machine===t?n:void 0,a=q(e,`machines.repos`,{machine:t});if(!i&&!a)return{repos:[],loaded:!1,problem:``};let o=i?i.reply:a;if(!o)return{repos:[],loaded:!0,problem:z(`newSession.remoteFailed`,{machine:t,message:i?.failed??``})};let s=o.reason?EO[o.reason]:void 0,c=o.reason?s?z(s,{machine:t}):z(`newSession.remoteFailed`,{machine:t,message:o.message??o.reason}):``;return{repos:o.repos,loaded:!0,problem:c}}function AO(e,t){return t.problem?t.problem:t.loaded?z(`newSession.remoteNone`,{machine:e}):z(`newSession.remoteLoading`,{machine:e})}function jO(){return(0,V.jsxs)(`svg`,{className:ZD,viewBox:`0 0 16 16`,"aria-hidden":`true`,children:[(0,V.jsx)(`rect`,{x:`2`,y:`3`,width:`12`,height:`8`,rx:`1`}),(0,V.jsx)(`path`,{d:`M5.5 13.5h5M8 11v2.5`})]})}function MO(e){let t=(B()===`zh`?Vr:Br).machine,n=e.machines.find(t=>t.alias===e.value),r=e.value?n?.hostLabel||e.value:z(`newSession.thisMachine`);return(0,V.jsx)(gO,{field:`machine`,title:z(`newSession.machine`),label:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(jO,{}),r]}),children:n=>(0,V.jsx)(yO,{heading:z(`newSession.machine`),options:[{id:``,label:z(`newSession.thisMachine`)},...e.machines.map(e=>({id:e.alias,label:ID(e,t),disabled:e.state!==`online`}))],value:e.value,digits:!0,onPick:t=>{e.onPick(t),n()}})})}function NO(e){let[t,n]=(0,g.useState)(``),r=t.trim();return(0,V.jsx)(gO,{field:`branch`,title:z(`newSession.branch`),label:e.value||z(`newSession.branch`),children:i=>(0,V.jsx)(_O,{placeholder:z(`newSession.branchTypeRef`),empty:``,rows:[{key:``,text:z(`newSession.branchRemoteDefault`),checked:e.value===``}],query:t,onQuery:n,extra:r?{key:r,text:r,checked:e.value===r}:null,onPick:t=>{e.onPick(t),n(``),i()}})})}async function PO(e,t){return(await e.client.request(`task.spawn`,TO(t))).taskIds[0]}function FO(e){return e instanceof Ov&&e.code===`CLONE_FAILED`?K(`newTask`,`error.cloneFailed`,{error:e.message}):e instanceof Error?e.message:String(e)}function IO(e){let[t,n]=(0,g.useState)(``);if(e.ungrouped)return null;if(e.remote)return e.remotePick&&(0,V.jsx)(NO,{value:e.remoteBase,onPick:e.onRemoteBase});let{repos:r,bases:i,inPlace:a}=e,o=r[0]??``,s=e.probes[o]??null,c=i[o]||s?.current||``,l=Pc(s?.branches??[],t).map(e=>({key:e,text:e,checked:e===(i[o]||s?.current)})),u=r.map(t=>({path:t,name:Nc(t).base,primary:t===o,branches:e.probes[t]?.branches??[],current:e.probes[t]?.current??``,base:i[t]??``}));return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{type:`button`,className:`${QD(!a)} ${$D}`,"aria-pressed":!a,disabled:r.length>1,title:r.length>1?z(`newSession.worktreeMulti`):z(a?`newSession.worktreeOff`:`newSession.worktreeOn`),onClick:e.onToggleWorktree,children:[(0,V.jsx)(hO,{}),z(`newSession.worktree`)]}),r.length>1?(0,V.jsx)(gO,{field:`branch`,title:z(`newSession.branches`),label:z(`newSession.branches`),children:()=>(0,V.jsx)(xO,{repos:u,branch:e.branchName,onBranch:e.onBranchName,onBase:e.onBase})}):!a&&s?.ok&&c&&(0,V.jsx)(gO,{field:`branch`,title:z(`newSession.branch`),label:c,children:r=>(0,V.jsx)(_O,{placeholder:z(`newSession.branchSearch`),empty:z(`newSession.branchEmpty`),rows:l,query:t,onQuery:n,onPick:t=>{e.onBase(o,t),n(``),r()}})})]})}function LO(e,t){let[n,r]=(0,g.useState)(null),i=t&&n!==null,a=i?n:e.engine?[e.engine]:[];return{ids:a,comparing:i,setComparing:e=>r(e?a:null),toggle(t){let n=Kc(a,t);r(n),n[0]&&n[0]!==e.engine&&e.setEngine(n[0])}}}function RO(e){let{picks:t,choice:n}=e,r=n.engines;if(r.length<2)return null;let i=t.ids.map(e=>r.find(t=>t.id===e)?.name??e);return(0,V.jsx)(gO,{field:`engine`,title:z(`newSession.engine`),label:qc(i)||z(`newSession.engine`),children:i=>(0,V.jsx)(yO,{heading:z(`newSession.engine`),options:r.map(e=>({id:e.id,label:e.name,dim:e.ready===!1})),value:n.engine,...t.comparing?{values:t.ids}:{},onPick:e=>{if(t.comparing)return t.toggle(e);n.setEngine(e),i()},footer:e.available&&r.length>1?(0,V.jsx)(H,{className:`mx-2 mt-1 mb-0.5 self-start font-mono`,"data-field":`compare-engines`,hit:`tight`,onClick:()=>t.setComparing(!t.comparing),children:z(t.comparing?`compare.oneEngine`:`compare.severalEngines`)}):null})})}function zO(e){return(0,V.jsx)(gO,{field:`model`,title:z(`newSession.model`),label:Gc(e.models,e.model,e.effort,z(`newSession.modelDefault`)),children:t=>(0,V.jsx)(bO,{...e,close:t})})}var BO=6e4,VO=/^(?:(today|tomorrow|今天|明天)\s*)?(\d{1,2})(?::(\d{2}))?\s*(am|pm)?$/i,HO=/^\+\s*(?:(\d+)\s*h)?\s*(?:(\d+)\s*m)?$/i;function UO(e,t){let n=e.trim(),r=HO.exec(n);if(r&&(r[1]||r[2])){let e=Number(r[1]??0)*60+Number(r[2]??0);return e>0?new Date(t.getTime()+e*BO):null}let i=VO.exec(n);if(!i)return null;let a=i[1]?.toLowerCase(),o=Number(i[2]),s=Number(i[3]??0),c=i[4]?.toLowerCase();if(c){if(o<1||o>12)return null;o=o%12+(c===`pm`?12:0)}if(o>23||s>59)return null;let l=new Date(t.getFullYear(),t.getMonth(),t.getDate(),o,s);if(a===`tomorrow`||a===`明天`)l.setDate(l.getDate()+1);else if(l.getTime()<=t.getTime()){if(a)return null;l.setDate(l.getDate()+1)}return l.getTime()>t.getTime()?l:null}function WO(e,t=new Date){let n=e.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`});return e.toDateString()===t.toDateString()?n:`${e.toLocaleDateString([],{weekday:`short`})} ${n}`}async function GO(e,t,n,r){await e.request(`task.scheduleStart`,{taskId:t,at:n.toISOString(),prompt:r})}function KO(e){let[t,n]=(0,g.useState)(``),r=()=>{let n=UO(t,new Date);if(!n)return e.onInvalid(z(`newSession.laterBad`));e.onSchedule(n)};return(0,V.jsxs)(`div`,{className:pO,children:[(0,V.jsx)(`input`,{className:`${sn} min-w-0 flex-1`,value:t,placeholder:z(`newSession.laterPlaceholder`),"aria-label":z(`newSession.later`),spellCheck:!1,autoComplete:`off`,autoFocus:!0,onChange:e=>n(e.target.value),onKeyDown:t=>{if(t.key===`Escape`)return t.preventDefault(),t.stopPropagation(),e.onBack();t.key!==`Enter`||t.nativeEvent.isComposing||(t.preventDefault(),t.stopPropagation(),r())}}),(0,V.jsx)(H,{variant:`filled`,disabled:!t.trim(),onClick:r,children:z(`newSession.laterConfirm`)})]})}function qO(e){let t=(B()===`zh`?Vr:Br).machine,[n,r]=(0,g.useState)(`root`),i=e.machine?e.machines.find(t=>t.alias===e.machine)?.hostLabel||e.machine:z(`newSession.thisMachine`);return(0,V.jsx)(gO,{field:`more`,title:z(`newSession.more`),label:(0,V.jsx)(`span`,{"aria-hidden":`true`,children:`⋯`}),onClose:()=>r(`root`),children:a=>n===`machine`?(0,V.jsx)(yO,{heading:z(`newSession.machine`),options:[{id:``,label:z(`newSession.thisMachine`)},...e.machines.map(e=>({id:e.alias,label:ID(e,t),disabled:e.state!==`online`}))],value:e.machine,digits:!0,onBack:()=>r(`root`),onPick:t=>{e.onMachine(t),a()}}):n===`later`?(0,V.jsxs)(`div`,{className:rO,children:[(0,V.jsxs)(`button`,{type:`button`,className:`${aO} ${rn} text-muted`,onClick:()=>r(`root`),children:[`‹ `,z(`newSession.later`)]}),(0,V.jsx)(KO,{onBack:()=>r(`root`),onInvalid:e.onInvalid,onSchedule:t=>{a(),e.onLater?.(t)}})]}):(0,V.jsxs)(`div`,{role:`menu`,className:rO,children:[e.machines.length>0&&(0,V.jsx)(JO,{label:z(`newSession.machine`),dim:i,sub:!0,onClick:()=>r(`machine`)}),e.onLater&&(0,V.jsx)(JO,{label:z(`newSession.later`),sub:!0,disabled:e.busy,onClick:()=>r(`later`)}),e.onCreateOnly&&(0,V.jsx)(JO,{label:z(`newSession.createOnly`),disabled:e.busy,onClick:(e=>()=>{a(),e()})(e.onCreateOnly)})]})})}function JO(e){return(0,V.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`${oO({cursor:!1})} [&:hover:not(:disabled)]:bg-hover`,disabled:e.disabled,onClick:e.onClick,children:[(0,V.jsx)(`span`,{className:lO,children:e.label}),(e.dim!==void 0||e.sub)&&(0,V.jsxs)(`span`,{className:`${cO} text-muted`,children:[e.dim,e.sub&&(0,V.jsx)(Ka,{right:!0})]})]})}var YO=`clone:`;function XO(e){let{model:t,saved:n,picked:r,primary:i,home:a,query:o,remote:s}=e,[c,l]=(0,g.useState)(()=>q(t,`github.repos`)??null);(0,g.useEffect)(()=>{let e=!1;return sl(t,`github.repos`).then(t=>!e&&l(t)).catch(()=>!e&&l({repos:[],reason:`failed`})),()=>{e=!0}},[t]);let u=o.trim(),d=Pc(n,o),f=z(`rail.noProject`),p=e.ungrouped&&(!u||f.toLowerCase().includes(u.toLowerCase()))?[{key:jT,text:f,dim:a,checked:e.ungrouped.on}]:[],m=d.map(e=>{let{base:t,dir:n}=Nc(e);return{key:e,text:t,dim:e===i&&r.length>1?`${z(`newSession.primary`)}, ${n}`:n,checked:r.includes(e)}}),h=Bc(u),_=h&&(h.includes(`:`)||d.length===0)?h:null,v=!_&&Fc(u)&&!n.includes(u)&&(!s||u.startsWith(`/`))?Lc(Ic(u,a)):``,y=_?{key:YO+_,text:s?z(`newSession.cloneRowOn`,{source:_,machine:s.name}):z(`newSession.cloneRow`,{source:_})}:v?{key:v,text:v,checked:r.includes(v)}:null,b=u.toLowerCase(),x=(c?.repos??[]).filter(e=>e.nameWithOwner.toLowerCase().includes(b)).filter(e=>!wO(n,e.nameWithOwner,s!==void 0)).map(e=>({key:YO+e.nameWithOwner,text:e.nameWithOwner,dim:e.description,title:e.description}));return(0,V.jsx)(_O,{placeholder:z(s?`newSession.repoSearchRemote`:`newSession.repoSearch`),empty:s?.empty??z(`newSession.repoEmpty`),rows:s?.blocked?[]:[...p,...m],query:o,onQuery:e.onQuery,extra:s?.blocked?null:y,more:s?.blocked?[]:x,moreLabel:z(`newSession.githubGroup`),onPick:t=>{if(t===`~scratch`)return e.ungrouped?.pick(),e.close();if(!t.startsWith(`clone:`))return e.onToggle(t);e.onClone(t.slice(6)),e.close()}})}function ZO(e,t){let n=e.scratch||e.noProject,r=n?[]:t.extraRepos??[];return{...n?{ungrouped:!0}:{repo:t.repo},...t.baseRef?{baseBranch:t.baseRef}:{},...r.length>0?{extras:r}:{},...e.machine?{machine:e.machine.id}:{},prompt:t.prompt,...t.engine?{engine:t.engine}:{},worktree:e.kind===`task`,retryOf:{id:e.id,label:e.label}}}function QO(e,t){return e?[e,...(t.extras??[]).map(e=>e.repo)]:[]}function $O(e,t){return e?{...t.baseBranch?{[e]:t.baseBranch}:{},...Object.fromEntries((t.extras??[]).flatMap(e=>e.baseRef?[[e.repo,e.baseRef]]:[]))}:{}}function ek(e,t){return e.retryOf&&e.engine&&e.engine===t?e.retryOf.id:void 0}async function tk(e,t){try{let{task:n}=await e.client.request(`task.get`,{taskId:t.id});if(!n.prompt)return void W(z(`menu.retryNoPrompt`),`error`);Sn(ZO(t,{...n,prompt:n.prompt}))}catch(e){W(G(e),`error`)}}function nk(e,t){let n=async n=>{await e.client.request(`task.archive`,{taskId:t.id,archived:!0,...n?{force:n}:{}}),W(K(`tasks`,`archive.done`,{title:t.label}))};U.set((0,V.jsx)(xr,{title:z(`newSession.retryArchiveTitle`,{title:t.label}),body:z(`newSession.retryArchiveBody`),confirmLabel:K(`tasks`,`menu.archive`),onConfirm:()=>n(!1),escalate:{when:e=>e instanceof Ov&&e.code===`TASK_BUSY`,label:K(`tasks`,`archive.busyConfirm`),title:K(`tasks`,`archive.busyTitle`),body:()=>K(`tasks`,`archive.busyBody`,{title:t.label}),run:()=>n(!0)}}))}var rk=_([]),ik=()=>v(rk);async function ak(e){rk.set((await e.request(`snippets.get`)).snippets)}async function ok(e,t){rk.set((await e.request(`snippets.save`,{name:t.name,text:t.text})).snippets)}async function sk(e,t){rk.set((await e.request(`snippets.remove`,{name:t})).snippets)}var ck=/^[A-Za-z0-9][\w-]{0,31}$/;function lk(e,t){let n=t;for(;n>0&&/[\w-]/.test(e[n-1]??``);)n--;if(n===0||e[n-1]!==`@`)return null;let r=e[n-2];if(r!==void 0&&!/\s/.test(r))return null;let i=t;for(;i<e.length&&/[\w-]/.test(e[i]??``);)i++;return{start:n-1,end:i,query:e.slice(n,t)}}function uk(e,t){let n=t.toLowerCase(),r=e.filter(e=>e.name.toLowerCase().startsWith(n));return[...r.filter(e=>e.name.toLowerCase()===n),...r.filter(e=>e.name.toLowerCase()!==n)]}function dk(e,t,n){return{text:e.slice(0,t.start)+n.text+e.slice(t.end),caret:t.start+n.text.length}}var fk=e=>e.split(`
|
|
114
|
+
`,1)[0]??``;function pk(e){return(0,V.jsx)(`ul`,{className:`${tn} ${e.className}`,children:e.items.map((t,n)=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(H,{variant:`row`,tabIndex:-1,"aria-pressed":n===e.at,className:nn({cursor:n===e.at,accent:!1}),onMouseDown:t=>{t.preventDefault(),e.onPick(n)},children:[(0,V.jsxs)(`span`,{className:`text-accent`,children:[`@`,t.name]}),(0,V.jsxs)(`span`,{className:`text-muted`,children:[` `,fk(t.text)]})]})},t.name))})}function mk(e){let t=ik(),[n,r]=(0,g.useState)(0),[i,a]=(0,g.useState)(0),[o,s]=(0,g.useState)(null),c=(0,g.useRef)(null),l=lk(e.value,Math.min(n,e.value.length)),u=l?uk(t,l.query):[],d=l!==null&&u.length>0&&o!==l.start,f=Math.min(i,Math.max(0,u.length-1));(0,g.useLayoutEffect)(()=>{let t=c.current,n=e.area.current;t===null||!n||(c.current=null,n.setSelectionRange(t,t),r(t))});let p=t=>{let n=u[t];if(!l||!n)return;let r=dk(e.value,l,n);c.current=r.caret,a(0),e.onChange(r.text)},m=e=>{if(!d||e.nativeEvent.isComposing)return!1;if(e.key===`ArrowDown`||e.key===`ArrowUp`)a(Math.max(0,Math.min(u.length-1,f+(e.key===`ArrowDown`?1:-1))));else if(e.key===`Tab`&&!e.shiftKey||e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey)p(f);else if(e.key===`Escape`)s(l?.start??null),e.stopPropagation();else return!1;return e.preventDefault(),!0};return{list:d?(0,V.jsx)(pk,{items:u,at:f,className:e.listClassName??``,onPick:p}):null,field:{onChange:t=>{r(t.target.selectionStart),a(0),e.onChange(t.target.value)},onSelect:e=>r(e.currentTarget.selectionStart),onKeyDown:t=>{m(t)||!e.onEnter||t.key!==`Enter`||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),e.onEnter())}}}}var hk=`relative hidden [border-top:var(--hairline)_solid_var(--line)] bg-surface px-3 pt-2.5 pb-3.5 touch:flex`,gk=`absolute inset-x-3 bottom-full z-5 mb-1`,_k=`absolute inset-x-3 bottom-full z-6 mb-1`,vk=`flex min-w-0 flex-1 items-center gap-2.5`,yk=`h-11 min-w-0 flex-1 resize-none rounded-[12px] border-hairline border-line bg-inset px-3.5 py-0 font-sans text-display leading-[42px] text-ink outline-none focus:border-focus disabled:opacity-60`,bk=`transition-transform duration-100 active:scale-94 motion-reduce:transition-none motion-reduce:active:scale-none`,xk=`transition-transform duration-100 active:scale-[0.98] motion-reduce:transition-none motion-reduce:active:scale-none`,Sk=`flex size-11 shrink-0 items-center justify-center rounded-[12px] border-hairline border-accent text-accent touch-manipulation disabled:border-line disabled:text-muted disabled:opacity-60 ${bk}`,Ck=`flex size-11 shrink-0 cursor-pointer items-center justify-center rounded-[10px] touch-manipulation active:bg-inset disabled:opacity-60 has-[:disabled]:opacity-60 ${bk}`,wk=`size-4.5 flex-none fill-none stroke-current stroke-[1.5] [stroke-linecap:round] [stroke-linejoin:round]`,Tk=`${Ck} text-muted`,Ek=e=>`${Ck} ${e?`text-accent`:`text-muted`}`,Dk=(e,t)=>`flex h-11 min-w-0 flex-1 items-center gap-2.5 overflow-hidden rounded-[12px] border-hairline px-3.5 font-sans touch-manipulation disabled:opacity-60 ${xk} ${t?`border-accent bg-accent-soft text-accent`:e?`border-accent bg-paper text-accent`:`border-line bg-inset text-ink`}`;function Ok({d:e}){return(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,className:wk,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:e})})}var kk=`M8 1.5a2.5 2.5 0 0 1 2.5 2.5v4.5a2.5 2.5 0 0 1-5 0V4A2.5 2.5 0 0 1 8 1.5zM3 8a5 5 0 0 0 10 0M8 13v1.5`,Ak=`M8 13V3M3.5 7.5 8 3l4.5 4.5`;function jk(){return(0,V.jsx)(Ok,{d:`M10.5 4.5 5.8 9.2a1.4 1.4 0 0 0 2 2l5-5a2.8 2.8 0 0 0-4-4l-5.2 5.2a4.2 4.2 0 0 0 6 6L13 9`})}function Mk(e){return(0,V.jsxs)(`button`,{type:`button`,className:Tk,title:e.label,onClick:e.onClick,children:[(0,V.jsx)(`span`,{className:`sr-only`,children:e.label}),(0,V.jsx)(Ok,{d:`M2.5 4h11a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM4 6.5h1M7 6.5h1M10 6.5h2M5 9.5h6`})]})}var Nk=40;function Pk({level:e,seconds:t}){let n=(0,g.useRef)(Array(Nk).fill(0)),r=(0,g.useRef)(-1);return t!==r.current&&(r.current=t,n.current=[...n.current.slice(1),e]),(0,V.jsx)(`span`,{className:`flex h-5.5 min-w-0 flex-1 items-center justify-end gap-[2.5px] overflow-hidden`,"aria-hidden":`true`,children:n.current.map((e,t)=>(0,V.jsx)(`i`,{className:`block w-[2.5px] flex-none rounded-full bg-current`,style:{height:`${Math.max(3,Math.round(Math.min(1,e*10)*22))}px`}},t))})}function Fk(e){let{state:t}=e;return t.phase===`transcribing`?(0,V.jsx)(`span`,{className:`flex-1 text-center text-meta`,children:e.working}):t.phase===`recording`?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`size-1.75 flex-none rounded-full bg-current`,style:{opacity:.3+Math.min(1,t.level*10)*.7}}),(0,V.jsx)(`span`,{className:`flex-none font-mono text-meta normal-nums`,children:t.time}),t.partial?(0,V.jsx)(`span`,{className:`flex min-w-0 flex-1 justify-end overflow-hidden whitespace-nowrap text-meta`,children:t.partial}):(0,V.jsx)(Pk,{level:t.level,seconds:t.seconds}),t.held&&(0,V.jsxs)(`span`,{className:`flex flex-none items-center gap-1 text-meta ${t.armed?`font-semibold`:`text-muted`}`,children:[(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,className:`size-3.5 fill-none stroke-current stroke-[1.5]`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:Ak})}),t.armed?e.release:t.partial?(0,V.jsx)(`span`,{className:`sr-only`,children:e.slide}):e.slide]})]}):(0,V.jsxs)(`span`,{className:`flex flex-1 items-center justify-center gap-2 text-display font-medium`,children:[(0,V.jsx)(Ok,{d:kk}),e.idle]})}function Ik({state:e}){return e.phase===`recording`?(0,V.jsx)(`span`,{className:`font-mono text-meta normal-nums`,children:e.time}):e.phase===`transcribing`?(0,V.jsx)(`span`,{className:`font-mono text-meta`,children:`…`}):(0,V.jsx)(Ok,{d:kk})}function Lk(e){return(0,V.jsxs)(`form`,{className:hk,"data-composer":e.composerKey,onSubmit:t=>{t.preventDefault(),e.onSend()},children:[e.attached&&(0,V.jsx)(`div`,{className:gk,children:e.attached}),e.suggest&&(0,V.jsx)(`div`,{className:_k,children:e.suggest}),(0,V.jsxs)(`div`,{className:vk,children:[e.attach,e.voice??(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`textarea`,{ref:e.fieldRef,className:yk,rows:1,value:e.value,placeholder:e.placeholder,disabled:e.busy,enterKeyHint:`send`,onChange:e.onChange,onSelect:e.onSelect,onKeyDown:e.onKeyDown,onPaste:e.onPaste}),e.dictate,(0,V.jsxs)(`button`,{type:`submit`,className:Sk,title:e.sendLabel,disabled:e.busy||!e.ready,children:[(0,V.jsx)(`span`,{className:`sr-only`,children:e.sendLabel}),(0,V.jsx)(Ok,{d:Ak})]})]})]})]})}var Rk=`/dictation-worklet.js`,zk=60,Bk=16e3,Vk=.004,Hk={phase:`idle`,seconds:0,level:0,error:null,partial:``},Uk=1e3,Wk=class{step;emitted=0;consumed=0;constructor(e){this.step=e}push(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Float32Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;let i=this.consumed+t,a=[];for(let e=Math.floor(this.emitted*this.step);e<i;e=Math.floor(this.emitted*this.step)){let t=Math.max(-1,Math.min(1,n[e-this.consumed]??0));a.push(Math.round(t*32767)),this.emitted++}return this.consumed=i,Int16Array.from(a)}};function Gk(e){let t=new Uint8Array(e.length*2),n=new DataView(t.buffer);for(let t=0;t<e.length;t++)n.setInt16(t*2,e[t],!0);return t}function Kk(e,t){let n=new Wk(t/Bk).push(e),r=Math.max(1,n.length),i=new Uint8Array(44+r*2),a=new DataView(i.buffer),o=(e,t)=>{for(let n=0;n<t.length;n++)a.setUint8(e+n,t.charCodeAt(n))};return o(0,`RIFF`),a.setUint32(4,36+r*2,!0),o(8,`WAVEfmt `),a.setUint32(16,16,!0),a.setUint16(20,1,!0),a.setUint16(22,1,!0),a.setUint32(24,Bk,!0),a.setUint32(28,Bk*2,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),o(36,`data`),a.setUint32(40,r*2,!0),i.set(Gk(n),44),i}function qk(e){for(let t of e.getTracks())t.stop();return null}function Jk(e){let t=Array(e.length);for(let n=0;n<e.length;n++)t[n]=e[n].toString(16).padStart(2,`0`);return t.join(``)}var Yk=class{client;scope;view=_(Hk);stream=null;context=null;node=null;chunks=[];timer=null;capTimer=null;peak=0;recent=0;session=0;live=null;liveTimer=null;constructor(e,t){this.client=e,this.scope=t}get recording(){return this.view.get().phase===`recording`}async toggle(){return this.recording?this.stop():this.start()}async start(e=!1){if(this.view.get().phase!==`idle`&&this.view.get().phase!==`error`)return null;let t=++this.session;this.live=null,this.view.set({...Hk,phase:`recording`});try{let n=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0}});if(t!==this.session)return qk(n);this.stream=n;let r=new AudioContext;if(this.context=r,await r.audioWorklet.addModule(Rk),t!==this.session)return null;let i=r.createMediaStreamSource(n);this.node=new AudioWorkletNode(r,`rove-capture`),this.chunks=[],this.peak=0,this.recent=0,this.node.port.onmessage=e=>{let t=e.data;this.chunks.push(t);let n=0;for(let e=0;e<t.length;e++)n+=t[e]*t[e];let r=Math.sqrt(n/Math.max(1,t.length));this.peak=Math.max(this.peak,r),this.recent=Math.max(this.recent,r)},i.connect(this.node);let a=r.createGain();a.gain.value=0,this.node.connect(a),a.connect(r.destination);let o=Date.now();return this.timer=window.setInterval(()=>{this.view.set({...this.view.get(),seconds:(Date.now()-o)/1e3,level:this.recent}),this.recent=0},100),this.capTimer=window.setTimeout(()=>void this.stop(),zk*1e3),e&&(this.live={id:`${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`,resample:new Wk(r.sampleRate/Bk),sent:0,seq:0,inFlight:null,dead:!1},this.liveTimer=window.setInterval(()=>void this.pump(!1),Uk)),null}catch(e){return t===this.session?(this.release(),this.fail(e),null):null}}async pump(e){let t=this.live;if(!t||t.dead||t.inFlight&&!e||(t.inFlight&&await t.inFlight.catch(()=>{}),t.dead))return null;let n=this.chunks.slice(t.sent);t.sent+=n.length;let r=t.seq++,i=r===0?this.scope():null,a=this.client.request(`voice.stream`,{session:t.id,seq:r,pcm:Jk(Gk(t.resample.push(n))),final:e,...i?{context:i.draft,taskId:i.taskId,tabId:i.tabId}:{}});t.inFlight=a;try{let n=await a;if(e)return n;let r=this.view.get();this.live===t&&r.phase===`recording`&&typeof n.partial==`string`&&this.view.set({...r,partial:n.partial})}catch{t.dead=!0}finally{t.inFlight===a&&(t.inFlight=null)}return null}async stop(){if(this.view.get().phase!==`recording`)return null;let e=this.context?.sampleRate??Bk,t=this.chunks;this.view.set({...this.view.get(),phase:`transcribing`,level:0}),this.release();let n=Kk(t,e),r=(n.length-44)/2/Bk;if(r<.3||this.peak<Vk)return this.live=null,this.view.set(Hk),{text:``,seconds:r,ms:0,reason:`silent`};try{let e=this.live?await this.pump(!0):null;this.live=null;let t=e??await this.transcribeWhole(n);return this.view.set(Hk),t}catch(e){return this.live=null,this.fail(e),null}}transcribeWhole(e){let t=this.scope();return this.client.request(`voice.transcribe`,{wav:Jk(e),context:t.draft,taskId:t.taskId,tabId:t.tabId})}fail(e){this.view.set({...Hk,phase:`error`,error:e instanceof Error?e.message:String(e)})}cancel(){this.view.get().phase===`recording`&&(this.release(),this.live=null,this.view.set(Hk))}release(){this.session++,this.timer!==null&&window.clearInterval(this.timer),this.capTimer!==null&&window.clearTimeout(this.capTimer),this.liveTimer!==null&&window.clearInterval(this.liveTimer),this.timer=null,this.capTimer=null,this.liveTimer=null,this.node?.port.close(),this.node=null;for(let e of this.stream?.getTracks()??[])e.stop();this.stream=null,this.context?.close().catch(()=>{}),this.context=null}},Xk=e=>`0:${String(Math.floor(e)).padStart(2,`0`)}`,Zk=300,Qk=48,$k=()=>navigator.vibrate?.(8),eA=new WeakMap,tA=new WeakSet;function nA(e){let t=eA.get(e);return t||(t=_(null),eA.set(e,t)),t}function rA(e,t){nA(e).set(t)}var iA=e=>e.available??(e.ready===!0||(e.model??null)!==null);function aA(e){let t=nA(e),n=v(t);return(0,g.useEffect)(()=>{tA.has(e)||(tA.add(e),e.request(`voice.status`).then(e=>t.set(iA(e)),()=>t.set(!1)))},[e,t]),n}function oA(e){B();let t=(0,g.useRef)(e);t.current=e;let n=(0,g.useRef)(null);n.current===null&&(n.current=new Yk(e.client,()=>t.current.context()));let r=v(n.current.view),i=aA(e.client),a=(0,g.useRef)(null),[o,s]=(0,g.useState)(null);(0,g.useEffect)(()=>()=>{a.current&&window.clearTimeout(a.current.timer),n.current?.cancel()},[]);let c=(e,n)=>{if(!e?.text)return;let{onSend:r,onText:i}=t.current;n&&r?r(e.text):i(e.text)},l=()=>void n.current?.toggle().then(e=>c(e,!1)),u=e=>{if(e.button!==0)return;e.currentTarget.setPointerCapture(e.pointerId);let t={y:e.clientY,timer:0,held:!1,armed:!1,started:null};(r.phase===`idle`||r.phase===`error`)&&(t.timer=window.setTimeout(()=>{t.held=!0,t.started=n.current?.start(!0)??null,s({armed:!1}),$k()},Zk)),a.current=t},d=e=>{let n=a.current;if(!n?.held||!t.current.onSend)return;let r=n.y-e.clientY>Qk;r!==n.armed&&(n.armed=r,s({armed:r}),$k())},f=async()=>{let e=a.current;if(a.current=null,e){if(window.clearTimeout(e.timer),!e.held)return l();s(null),await e.started,c(await n.current?.stop()??null,e.armed)}},p=async()=>{let e=a.current;a.current=null,e&&(window.clearTimeout(e.timer),e.held&&(s(null),await e.started,n.current?.cancel()))},m=r.phase===`recording`?z(o?`voice.release`:`voice.stop`,{time:Xk(r.seconds)}):r.phase===`transcribing`?z(`voice.working`):e.idle??z(`voice.say`),h=r.phase===`recording`,_=o?.armed??!1;return i===!0?(0,V.jsx)(`button`,{type:`button`,className:`${(e.look??eO)(h,_)} ${tO}`,disabled:e.disabled||r.phase===`transcribing`,title:r.error??z(`voice.hint`),"aria-label":e.face?m:void 0,onPointerDown:u,onPointerMove:d,onPointerUp:()=>void f(),onPointerCancel:()=>void p(),onContextMenu:e=>e.preventDefault(),onClick:e=>e.detail===0&&l(),children:e.face?e.face({phase:r.phase,time:Xk(r.seconds),seconds:r.seconds,level:r.level,held:o!==null,armed:_,partial:r.partial}):(0,V.jsxs)(V.Fragment,{children:[m,h&&(0,V.jsx)(`span`,{className:`inline-flex items-center`,"aria-hidden":`true`,children:(0,V.jsx)(`span`,{className:`size-1.5 rounded-full bg-current`,style:{opacity:.25+Math.min(1,r.level*12)*.75}})})]})}):null}function sA(e,t){xn(e,void 0,t)}function cA(){xn(void 0,void 0,void 0,void 0,!0)}var lA=`rove.web.newSession.worktree`,uA=``;function dA({model:e,seed:t}){let n=t.repo;B();let r=v(e.selection).taskId,i=e.tasks.get()?.tasks.find(e=>e.id===r)?.repo,a=Qw(e,n??i,t.engine),o=q(e,`repos.list`)?.repos,s=e=>t.ungrouped?void 0:(t.machine?void 0:n)??i??e?.[0],[c,l]=(0,g.useState)(o??[]),[u,d]=(0,g.useState)(()=>q(e,`fs.subdirs`,{path:`~/`})?.home??``),[f,p]=(0,g.useState)(()=>QO(s(o),t)),[m,h]=(0,g.useState)(()=>Object.fromEntries(f.flatMap(t=>{let n=q(e,`repo.probe`,{path:t});return n?[[t,n]]:[]}))),_=(0,g.useRef)(new Set),[y,b]=(0,g.useState)(t.ungrouped===!0),x=()=>{b(!0),p([])},[S,C]=(0,g.useState)(()=>$O(s(o),t)),[w,T]=(0,g.useState)(``),[E,D]=(0,g.useState)(``),[O,k]=(0,g.useState)(()=>(t.prompt!==void 0&&(uA=t.prompt),uA)),A=e=>{uA=e,k(e)},[j,ee]=(0,g.useState)(``),[M,N]=(0,g.useState)(``),[P,F]=(0,g.useState)(!1),[I,te]=(0,g.useState)(``),[ne,re]=(0,g.useState)(()=>t.worktree??localStorage.getItem(lA)!==`0`),ie=e=>{localStorage.setItem(lA,e?`1`:`0`),re(e)},[L,R]=(0,g.useState)(null),{attachments:ae,attach:oe,remove:se,clear:ce}=Tc(e,R),le=(0,g.useRef)(null),ue=e=>{let t=le.current,n=t?.selectionStart??O.length,r=t?.selectionEnd??O.length,i=n>0&&!/\s$/.test(O.slice(0,n))?` `:``;A(`${O.slice(0,n)}${i}${e}${O.slice(r)}`);let a=n+i.length+e.length;requestAnimationFrame(()=>{t?.focus(),t?.setSelectionRange(a,a)})},de=VD(e),[fe,pe]=(0,g.useState)(t.machine??``),me=fe!==``,he=me?null:xc(e=>void oe(e)),ge=de.find(e=>e.alias===fe)?.hostLabel||fe,_e=kO(e,fe);OO(e,de);let[ve,ye]=(0,g.useState)(null),[be,xe]=(0,g.useState)(``);(0,g.useEffect)(()=>{Promise.all([sl(e,`repos.list`),sl(e,`fs.subdirs`,{path:`~/`})]).then(([e,n])=>{l(e.repos),d(n.home);let r=s(e.repos);p(e=>e.length>0||!r?e:QO(r,t)),C(e=>({...e,...$O(r,t)}))}).catch(()=>{})},[e,n]);let Se=!me&&!ne&&f.length===1,Ce=f[0]??``;(0,g.useEffect)(()=>{for(let t of f)_.current.has(t)||(_.current.add(t),sl(e,`repo.probe`,{path:t}).then(e=>h(n=>({...n,[t]:e}))).catch(()=>{}))},[e,f]),(0,g.useEffect)(()=>{!me||!_e.loaded||fe!==t.machine||ye(e=>e??CO(n,_e.repos))},[_e.loaded]),(0,g.useEffect)(()=>le.current?.focus(),[]);let we=!me&&!y&&!Se,Te=LO(a,we),Ee=a.engines.find(e=>e.id===a.engine),De=Uc(Ee,z(`newSession.modelDefault`)),Oe=Wc(Ee,z(`newSession.effortDefault`)),ke=De.some(e=>e.id===j)?j:``,Ae=Oe.some(e=>e.id===M)?M:``,je=async t=>{R(null),F(!0),te(z(`newSession.cloning`,{source:t}));try{let n=Lc(Ic((localStorage.getItem(`rove.web.cloneParent`)||`~/`).trim(),u)),r=await e.client.request(`repo.clone`,{url:t,parentDir:n},te);l(e=>e.includes(r.path)?e:[...e,r.path]),p(e=>e.includes(r.path)?e:Xc(e,r.path)),b(!1),D(``)}catch(e){R(FO(e))}finally{F(!1),te(``)}},Me=async n=>{if(!ve)return R(z(`newSession.needRepo`));if(n&&!O.trim())return R(z(`newSession.needPrompt`));F(!0),te(ve.clone?z(`newSession.cloningOn`,{source:ve.ref,machine:ge}):z(`newSession.startingOn`,{machine:ge}));try{let r=await PO(e,{pick:ve,machine:fe,engine:a.engine,prompt:O.trim(),begin:n,baseRef:be});uA=``,bn.set(null),r&&e.selectWhenListed(r),t.retryOf&&r&&nk(e,t.retryOf)}catch(e){R(FO(e))}finally{F(!1),te(``)}},Ne=async(n=!0,r)=>{if(R(null),me)return Me(n);if(!Ce&&!y)return R(z(`newSession.needRepo`));if((n||r)&&!O.trim())return R(z(`newSession.needPrompt`));F(!0);let i=Cc(O.trim(),ae);try{let o=await Promise.all(f.map(t=>e.client.request(`repo.probe`,{path:t}))),s=o.find(e=>!e.ok);if(s)throw Error(s.reason??s.repo);let c,l;if(y)c=await $c(e.client.request.bind(e.client),a.engine,O,n);else if(Se)c=await el(e.client.request.bind(e.client),o[0]?.repo??Ce,a.engine,O,n,i);else{let r=await e.client.request(`task.spawn`,Qc({repos:f.map((e,t)=>({repo:o[t]?.repo??e,baseRef:S[e]??``})),branch:w.trim(),engine:a.engine,commandFrom:ek(t,a.engine),engines:n?Te.ids:[],prompt:i,begin:n,model:ke,effort:Ae}));c=r.taskIds[0],l=r.groupId}r&&c&&await GO(e.client,c,r,i).then(()=>W(z(`newSession.laterSet`,{time:WO(r)}))).catch(e=>W(FO(e),`error`)),uA=``,ce(),bn.set(null),l?Aa(l):c&&e.selectWhenListed(c),t.retryOf&&c&&nk(e,t.retryOf)}catch(e){let t=Jc(e);t?(uA=``,ce(),bn.set(null),W(e instanceof Error?e.message:String(e),`error`),Aa(t)):R(e instanceof Error?e.message:String(e))}finally{F(!1)}},Pe=mk({value:O,onChange:A,area:le,onEnter:()=>void Ne()}),Fe=e=>{pe(e),ye(null),xe(``),D(``),R(null),b(!1)};return(0,V.jsxs)(`div`,{className:HD,children:[(0,V.jsxs)(`div`,{className:UD,children:[(0,V.jsx)(`h1`,{className:`m-0 font-sans text-title font-semibold text-accent`,children:z(`newSession.title`)}),(0,V.jsx)(`p`,{className:`m-0 text-muted`,children:z(`newSession.tagline`)})]}),(0,V.jsxs)(`form`,{className:WD,onSubmit:e=>{e.preventDefault(),Ne()},children:[(0,V.jsxs)(`div`,{className:GD,...he?.drop,children:[!me&&(0,V.jsx)(Ec,{attachments:ae,onRemove:se}),(0,V.jsx)(`textarea`,{ref:le,className:qD,rows:4,spellCheck:!1,placeholder:z(`newSession.placeholder`),value:O,disabled:P,onPaste:he?.onPaste,...Pe.field}),Pe.list,(0,V.jsxs)(`div`,{className:KD,children:[he&&(0,V.jsxs)(Sc,{className:XD(ae.length>0),title:z(`newSession.attachHint`),disabled:P,onFiles:e=>void oe(e),children:[(0,V.jsx)(`span`,{className:`sr-only`,children:z(`newSession.attach`)}),(0,V.jsx)(jk,{})]}),(0,V.jsx)(oA,{client:e.client,context:()=>({draft:[O.slice(-300),Ce,w,ve?.ref??``].filter(Boolean).join(`
|
|
115
|
+
`)}),onText:ue,disabled:P,look:XD,face:e=>(0,V.jsx)(Ik,{state:e})}),(0,V.jsx)(`span`,{className:YD}),(0,V.jsx)(`button`,{type:`submit`,className:Le(),disabled:P,children:z(`newSession.start`)})]})]}),(0,V.jsxs)(`div`,{className:JD,children:[me&&(0,V.jsx)(MO,{machines:de,value:fe,onPick:Fe}),(0,V.jsx)(gO,{field:`repo`,title:!me&&f.length>1?z(`newSession.repoCount`,{count:f.length}):z(`newSession.repo`),label:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(mO,{}),Yc(me?ve?[ve.ref]:[]:f)||z(y?`rail.noProject`:`newSession.repo`),ve?.clone&&(0,V.jsxs)(`span`,{className:`text-muted`,children:[` `,z(`newSession.cloneTag`)]})]}),children:t=>(0,V.jsx)(XO,{model:e,saved:me?_e.repos.map(SO):c,picked:me?ve?[ve.ref]:[]:f,primary:me?``:Ce,home:me?``:u,query:E,onQuery:D,onToggle:e=>{if(R(null),!me)return b(!1),p(t=>Xc(t,e));ye({ref:e,clone:!1}),t()},onClone:e=>me?ye({ref:e,clone:!0}):void je(e),close:t,remote:me?{name:ge,empty:AO(fe,_e),blocked:_e.problem!==``}:void 0,ungrouped:me?void 0:{on:y,pick:x}})}),(0,V.jsx)(IO,{remote:me,remotePick:ve,remoteBase:be,onRemoteBase:xe,ungrouped:y,inPlace:Se,onToggleWorktree:()=>ie(!ne),repos:f,probes:m,bases:S,onBase:(e,t)=>C(n=>({...n,[e]:t})),branchName:w,onBranchName:T}),(0,V.jsx)(`span`,{className:YD}),(0,V.jsx)(RO,{choice:a,picks:Te,available:we}),!Se&&!me&&!y&&!Te.comparing&&(De.length>0||Oe.length>0)&&(0,V.jsx)(zO,{models:De,model:ke,onModel:ee,efforts:Oe,effort:Ae,onEffort:N}),(0,V.jsx)(qO,{busy:P,machines:de,machine:fe,onMachine:Fe,onLater:!me&&!y&&!Te.comparing?e=>void Ne(!1,e):void 0,onInvalid:R,onCreateOnly:Te.comparing?void 0:()=>void Ne(!1)})]}),(P&&I||L)&&(0,V.jsxs)(`div`,{className:`pointer-events-none absolute bottom-full left-0 mb-2 flex flex-col gap-1`,children:[P&&I&&(0,V.jsx)(`p`,{className:`m-0 text-muted`,"data-field":`clone-progress`,children:I}),L&&(0,V.jsxs)(`p`,{className:`m-0 text-error`,children:[`※ `,L]})]})]})]})}var fA=[`needs`,`working`,`ready`,`idle`],pA=`~state:`;function mA(e){switch(e.rowStatus?.kind){case`attention`:case`needs-input`:case`unseen`:return`needs`;case`busy`:case`running`:return`working`}switch(e.group){case`waiting-on-you`:return`needs`;case`working`:return`working`;case`landing`:case`ready-for-review`:return`ready`}return e.pr?.lifecycle===`open`||e.status===`done`?`ready`:`idle`}var hA=e=>e&&e.kind!==`main`&&!MT(e)?fT(e.repo):void 0;function gA(e,t){let n=NT(e,t.sort),{children:r,nested:i}=RT([{repo:``,label:``,tasks:n}]),a=n.filter(e=>!i.has(e.id)),o=yT(a),s=e=>{let t=[],n=new Set,i=e=>{if(!n.has(e.id)){n.add(e.id),t.push(e);for(let t of r.get(e.id)??[])i(t)}};return i(e),t},c=new Map;for(let e of a){let t=vT(e),n=((t===null?void 0:o.get(t))??[e]).map(s),r=n.flat().map(mA).reduce((e,t)=>fA.indexOf(t)<fA.indexOf(e)?t:e);for(let e of n)for(let t of e)c.set(t.id,r)}return fA.flatMap(e=>{let t=n.filter(t=>c.get(t.id)===e);return t.length===0?[]:[{repo:``,label:z(`rail.state.${e}`),key:`${pA}${e}`,tasks:t}]})}function _A(e){let t=new Set(e.machines.map(e=>e.alias));return{rows:vA(VT(gA([...e.tasks.filter(e=>!e.routine),...e.remote.filter(e=>!e.routine&&e.machine!==void 0&&t.has(e.machine.id))],e),e.query,e.fold).map(e=>{if(e.kind!==`project`)return e;let t=e.id.slice(`project:${pA}`.length);return{id:`state:${t}`,kind:`state`,state:t,label:e.label,count:0}})),groups:[]}}function vA(e){let t=new Map,n=``;for(let r of e)r.kind===`state`?n=r.id:r.kind===`task`&&t.set(n,(t.get(n)??0)+1);return e.map(e=>e.kind===`state`?{...e,count:t.get(e.id)??0}:e)}var yA=new Set([`refused`,`timeout`,`host-key-changed`,`host-key-unverified`,`auth-denied`,`unresolved`,`ssh-failed`,`no-rove`,`no-daemon`,`bad-status`,`handshake`,`no-forwarding`,`lost`]);function bA(e){return e&&yA.has(e)?`machines.reason.${e}`:null}function xA(e,t){return e.filter(e=>e.machine?.id===t&&!e.routine&&!e.deleting)}function SA(e){let t=fA.map(e=>({state:e,tasks:[]}));for(let n of e)t[fA.indexOf(mA(n))]?.tasks.push(n);return t.filter(e=>e.tasks.length>0)}var CA=`flex flex-col font-mono text-meta`,wA=`flex flex-col gap-1 border-t-hairline border-line py-2.5 first:border-t-0 first:pt-0`,TA=`flex flex-wrap items-baseline gap-x-2.5 gap-y-0.5`,EA=`min-w-0 text-ink wrap-anywhere`,DA=`m-0 text-muted wrap-anywhere`,OA=`flex flex-wrap gap-x-3.5 gap-y-1 pt-0.5 whitespace-nowrap`,kA=`mt-1.5 mb-0.5 text-subtle`,AA=`flex min-w-0 items-baseline gap-2 pl-2`,jA=`min-w-0 flex-1 truncate text-left`,MA=`min-w-0 max-w-[55%] flex-none truncate text-muted`;function NA(e){U.set((0,V.jsx)(LA,{model:e}))}function PA({model:e,tasks:t}){let n=t=>{kn(),e.select(t.id),Da()};return SA(t).map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`${kA} m-0`,children:z(`rail.state.${e.state}`)}),e.tasks.map(e=>(0,V.jsxs)(H,{variant:`row`,className:`${AA} w-full rounded-sm py-0.5 hover:bg-hover`,onClick:()=>n(e),children:[(0,V.jsx)(`span`,{className:jA,children:e.label}),(0,V.jsx)(`span`,{className:MA,children:e.branch})]},e.id))]},e.state))}function FA({model:e,alias:t}){let[n,r]=(0,g.useState)(null);return(0,g.useEffect)(()=>{let n=!0;return sl(e,`machines.repos`,{machine:t}).then(e=>n&&r(e),e=>n&&r({failed:e instanceof Error?e.message:String(e)})),()=>{n=!1}},[e,t]),n?`failed`in n?(0,V.jsx)(`p`,{className:DA,children:z(`machines.reposFailed`,{message:n.failed})}):n.reason?(0,V.jsx)(`p`,{className:DA,children:z(`machines.reposFailed`,{message:n.message??n.reason})}):n.repos.length===0?(0,V.jsx)(`p`,{className:DA,children:z(`machines.noRepos`)}):n.repos.map(e=>(0,V.jsxs)(`div`,{className:AA,children:[(0,V.jsx)(`span`,{className:jA,children:e.id}),(0,V.jsx)(`span`,{className:MA,title:e.primary??e.checkouts[0],children:e.primary??e.checkouts[0]??``})]},e.id)):(0,V.jsx)(`p`,{className:DA,children:z(`machines.loading`)})}function IA(e){let{model:t,row:n,tasks:r,words:i}=e,[a,o]=(0,g.useState)(null),s=n.state===`online`,c=bA(n.reason),l=SA(r).map(e=>`${e.tasks.length} ${z(`rail.state.${e.state}`)}`),u=e=>o(a===e?null:e);return(0,V.jsxs)(`section`,{className:wA,children:[(0,V.jsxs)(`div`,{className:TA,children:[(0,V.jsx)(`span`,{className:`${EA} ${s?``:XE.warning}`,children:ID(n,i)}),(0,V.jsx)(`span`,{className:`text-muted`,children:l.length>0?l.join(` · `):z(`machines.noTasks`)})]}),c&&(0,V.jsx)(`p`,{className:`m-0 text-muted wrap-anywhere`,children:z(c)}),(0,V.jsxs)(`div`,{className:OA,children:[s&&(0,V.jsx)(H,{hit:`tight`,onClick:()=>{kn(),sA(void 0,n.alias)},children:z(`machines.newHere`)}),r.length>0&&(0,V.jsx)(H,{hit:`tight`,"aria-expanded":a===`tasks`,onClick:()=>u(`tasks`),children:z(a===`tasks`?`machines.hide`:`machines.tasks`)}),s&&(0,V.jsx)(H,{hit:`tight`,"aria-expanded":a===`repos`,onClick:()=>u(`repos`),children:z(a===`repos`?`machines.hide`:`machines.repos`)})]}),a===`tasks`&&(0,V.jsx)(PA,{model:t,tasks:r}),a===`repos`&&(0,V.jsx)(FA,{model:t,alias:n.alias})]})}function LA({model:e}){let t=B(),n=VD(e),r=v(e.remote),i=(t===`zh`?Vr:Br).machine;return(0,V.jsx)(vr,{title:z(`machines.title`),wide:!0,children:(0,V.jsxs)(`div`,{className:`${Wn} ${CA}`,children:[n.length===0&&(0,V.jsx)(`p`,{className:`m-0 text-muted wrap-anywhere`,children:z(`machines.none`)}),n.map(t=>(0,V.jsx)(IA,{model:e,row:t,tasks:xA(r,t.alias),words:i},t.alias))]})})}function RA(e,t,n=300){let r=0,i,a=()=>{r++,i?.(),i=void 0};return{stop:a,run:o=>{a();let s=o.trim();if(s.length<2){t({kind:`idle`});return}let c=r,l=setTimeout(()=>{t({kind:`searching`}),e(s).then(e=>c===r&&t({kind:`done`,query:s,reply:e}),e=>c===r&&t({kind:`failed`,message:e instanceof Error?e.message:String(e)}))},n);i=()=>clearTimeout(l)}}}var zA=`mx-1.5 mt-2 mb-0.5 font-mono text-meta font-semibold normal-nums text-subtle first:mt-0`,BA=`mx-1.5 my-1 text-meta text-muted [overflow-wrap:anywhere]`,VA=e=>`flex w-full min-w-0 cursor-pointer flex-col gap-0.5 rounded-sm px-1.5 py-1.5 text-left text-ink [font:inherit] touch:py-2.5 ${e?`is-selected bg-hover`:``}`,HA=`flex min-w-0 items-baseline gap-2`,UA=`min-w-0 flex-1 truncate text-body`,WA=`whitespace-nowrap text-meta text-muted`,GA=`text-meta text-muted [overflow-wrap:anywhere]`,KA=`rounded-xs bg-accent/25 text-ink`;function qA(e,t){let[n,r]=(0,g.useState)({kind:`idle`});return(0,g.useEffect)(()=>{let n=RA(t=>e.client.request(`sessions.search`,{query:t}),r);return n.run(t),n.stop},[e,t]),n}function JA(e,t){let n=[],r=e.toLowerCase(),i=t.toLowerCase(),a=0;for(let t=r.indexOf(i);i&&t>=0;t=r.indexOf(i,t+i.length))t>a&&n.push(e.slice(a,t)),n.push({hit:e.slice(t,t+i.length),at:t}),a=t+i.length;return n.push(e.slice(a)),n.map(e=>typeof e==`string`?e:(0,V.jsx)(`mark`,{className:KA,children:e.hit},e.at))}function YA({children:e}){return(0,V.jsx)(`h3`,{className:zA,children:e})}function XA({children:e,error:t}){return(0,V.jsx)(`p`,{className:`${BA} ${t?`text-error`:``}`,children:e})}function ZA(e){return(0,V.jsx)(H,{variant:`row`,className:VA(e.selected),onMouseEnter:e.onHover,onClick:e.onOpen,children:(0,V.jsxs)(`span`,{className:HA,children:[(0,V.jsx)(`span`,{className:UA,children:e.title}),(0,V.jsx)(`span`,{className:WA,children:e.repo})]})})}function QA(e){let{hit:t}=e;return(0,V.jsxs)(H,{variant:`row`,className:VA(e.selected),onMouseEnter:e.onHover,onClick:e.onOpen,children:[(0,V.jsxs)(`span`,{className:HA,children:[(0,V.jsx)(`span`,{className:UA,children:t.title}),(0,V.jsxs)(`span`,{className:WA,children:[z(t.role===`user`?`search.you`:`search.agent`),` · `,cc(Date.now()-Date.parse(t.at))]})]}),(0,V.jsx)(`span`,{className:GA,children:JA(t.snippet,e.query)})]})}async function $A(e,t){let{taskId:n}=await e.client.request(`task.openScratch`);await oT(e,n,{kind:`engine`,prompt:t}),kn()}function ej(e){return $A(e,z(`settings.feedback.reportPrompt`))}var tj=_(`issues`);function nj(e,t,n){return{repo:e.repo,baseBranch:t,prompt:n,worktree:!0}}var rj=_(null),ij=0;function aj(e,t){rj.set({taskId:e,hit:t,nonce:++ij}),ms(e,`chat`),yn.get()&&yn.set(!1)}var oj=10;function sj(e,t){let n=e=>e.surface===t?0:e.surface?1:2,r=la().filter(n=>ua(n,t)&&n.live?.(e)!==!1).map((e,t)=>({command:e,index:t})).sort((e,t)=>n(e.command)-n(t.command)||Number(e.command.prefix)-Number(t.command.prefix)||e.index-t.index),i=new Set,a=[];for(let{command:e}of r){let t=e.chords[0];!t||e.id===`palette.open`||i.has(e.id)||(i.add(e.id),a.push({command:e,name:Qs(e.id),raw:e.prefix?`${di()} + ${t}`:t}))}return a}function cj(e){let t=document.activeElement instanceof HTMLElement?document.activeElement:null;U.set((0,V.jsx)(uj,{model:e,surface:fa(),origin:t}))}var lj=8;function uj({model:e,surface:t,origin:n}){B();let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(0),s=(0,g.useRef)(null),c=v(oi),l=v(e.tasks),u=v(e.remote),d=(0,g.useMemo)(()=>sj(e,t),[e,t,c]).filter(e=>zs(r,e.name,e.raw)),f=(VD(e).length>0?[{name:z(`machines.title`)}]:[]).filter(e=>zs(r,e.name,``)),p=[{name:z(`settings.feedback.report`)}].filter(e=>zs(r,e.name,``)),m=r.trim(),h=m===``?[]:[...l?.tasks??[],...u].filter(e=>!e.routine&&!e.deleting&&[e.label,e.title,e.branch,fT(e.repo)].some(e=>e!==``&&As(m,e))).slice(0,lj),_=v(e.installedMods).has(`issues`),y=[{id:`usage`,name:z(`usage.title`)},..._?[{id:`issues`,name:z(`reviewQueue.palette`),source:`reviews`}]:[]].filter(e=>m===``||As(m,e.name)),b=qA(e,r),x=b.kind===`done`?b.reply.matches:[],S=[...d.map(e=>({kind:`command`,row:e})),...y.map(e=>({kind:`page`,...e})),...f.map(e=>({kind:`machines`,...e})),...p.map(e=>({kind:`report`,...e})),...h.map(e=>({kind:`task`,task:e})),...x.map(e=>({kind:`hit`,hit:e}))],C=Math.min(a,Math.max(0,S.length-1));(0,g.useEffect)(()=>()=>n?.focus(),[n]),(0,g.useEffect)(()=>{s.current?.querySelector(`.is-selected`)?.scrollIntoView({block:`nearest`})},[C]);let w=t=>{if(t.kind===`machines`){NA(e);return}if(kn(),n?.focus(),t.kind===`report`){ej(e).catch(()=>W(z(`settings.feedback.reportFailed`),`error`));return}if(t.kind===`command`){t.row.command.live?.(e)===!1?W(Ys(`unavailable`),`error`):t.row.command.run(e);return}if(t.kind===`page`){t.source&&tj.set(t.source),ka(t.id);return}t.kind===`task`?e.select(t.task.id):e.select(t.hit.taskId,t.hit.tabId??null),Da(),t.kind===`hit`&&aj(t.hit.taskId,t.hit)},T=e=>{if(e.key===`ArrowDown`)o(Math.min(S.length-1,C+1));else if(e.key===`ArrowUp`)o(Math.max(0,C-1));else if(e.key===`Enter`){let e=S[C];e&&w(e)}else return;e.preventDefault()},E=m!==``&&(h.length>0||m.length>=2),D=0,O=()=>D++;return(0,V.jsx)(vr,{title:Ys(`palette`),wide:!0,children:(0,V.jsxs)(`div`,{className:`${Wn} palette`,onKeyDown:T,children:[(0,V.jsx)(`input`,{className:gt,autoFocus:!0,spellCheck:!1,value:r,placeholder:Ys(`search`),onChange:e=>{i(e.target.value),o(0)}}),(0,V.jsxs)(`div`,{className:pt,ref:s,style:{maxHeight:`${(E?18:oj)*1.9}em`},children:[S.length===0&&b.kind!==`searching`&&(0,V.jsx)(`p`,{className:`text-muted`,children:Ys(`noResults`)}),E&&d.length>0&&(0,V.jsx)(YA,{children:z(`search.commands`)}),d.map(e=>{let t=O();return(0,V.jsx)(`button`,{type:`button`,className:mt(t===C),title:e.name,onMouseEnter:()=>o(t),onClick:()=>w({kind:`command`,row:e}),children:(0,V.jsx)(`span`,{className:ht,children:`${t===C?`› `:` `}${e.name}`})},e.command.id)}),y.map(e=>{let t=O();return(0,V.jsx)(H,{variant:`row`,className:mt(t===C),title:e.name,onMouseEnter:()=>o(t),onClick:()=>w({kind:`page`,...e}),children:(0,V.jsx)(`span`,{className:ht,children:`${t===C?`› `:` `}${e.name}`})},e.id)}),f.map(e=>{let t=O();return(0,V.jsx)(H,{variant:`row`,className:mt(t===C),title:e.name,onMouseEnter:()=>o(t),onClick:()=>w({kind:`machines`,...e}),children:(0,V.jsx)(`span`,{className:ht,children:`${t===C?`› `:` `}${e.name}`})},`machines`)}),p.map(e=>{let t=O();return(0,V.jsx)(H,{variant:`row`,className:mt(t===C),title:e.name,onMouseEnter:()=>o(t),onClick:()=>w({kind:`report`,...e}),children:(0,V.jsx)(`span`,{className:ht,children:`${t===C?`› `:` `}${e.name}`})},`report`)}),h.length>0&&(0,V.jsx)(YA,{children:z(`search.tasks`)}),h.map(e=>{let t=O();return(0,V.jsx)(ZA,{title:e.label,repo:fT(e.repo),selected:t===C,onHover:()=>o(t),onOpen:()=>w({kind:`task`,task:e})},e.id)}),b.kind!==`idle`&&(0,V.jsx)(YA,{children:z(`search.inConversations`)}),b.kind===`searching`&&(0,V.jsx)(XA,{children:z(`search.searching`)}),b.kind===`failed`&&(0,V.jsx)(XA,{error:!0,children:b.message}),b.kind===`done`&&x.length===0&&(0,V.jsx)(XA,{children:z(`search.none`,{query:b.query})}),x.map(e=>{let t=O();return(0,V.jsx)(QA,{hit:e,query:b.kind===`done`?b.query:``,selected:t===C,onHover:()=>o(t),onOpen:()=>w({kind:`hit`,hit:e})},`${e.taskId}:${e.tabId??``}:${e.at}:${t}`)}),b.kind===`done`&&b.reply.truncated&&(0,V.jsx)(XA,{children:z(`search.truncated`)}),b.kind===`done`&&b.reply.skipped.length>0&&(0,V.jsx)(XA,{children:z(`search.skipped`,{count:b.reply.skipped.length})})]}),(0,V.jsx)(`p`,{className:`keys-only text-muted`,children:Ys(`run`)})]})})}var dj=_(null);function fj(e){let t=(document.activeElement?.closest(`.rail`)==null?null:dj.get())??e.selection.get().taskId;return e.tasks.get()?.tasks.find(e=>e.id===t)??null}t(((e,t)=>{t.exports={}}))();var pj={$schema:`https://json.schemastore.org/package.json`,name:`@sma1lboy/rove`,version:`0.9.281`,description:`Rove — the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.`,keywords:[`terminal`,`tui`,`cli`,`multiplexer`,`ai-agents`,`coding-agent`,`ai-coding-assistant`,`agentic-ai`,`parallel-agents`,`git-worktree`,`claude-code`,`codex`,`llm`,`developer-tools`],type:`module`,packageManager:`bun@1.3.13`,bin:{rove:`dist/cli/rove.js`},files:[`dist/cli`,`dist/completions`,`dist/web`,`dist/web-ui`,`dist/skills`,`dist/voice`,`dist/*.wav`,`README.md`,`LICENSE`],publishConfig:{access:`public`},repository:{type:`git`,url:`git+https://github.com/Sma1lboy/rove.git`},homepage:`https://rove.run`,bugs:{url:`https://github.com/Sma1lboy/rove/issues`},engines:{bun:`>=1.3.11`},scripts:{dev:`ROVE_DEV=1 bun --conditions=browser ./src/cli/rove.ts`,"dev:mock":`ROVE_DEV=1 bun ./src/tui-react/mock/host.tsx`,"dev:sandbox":`bun run scripts/dev-sandbox.ts run`,"dev:sandbox:reset":`bun run scripts/dev-sandbox.ts reset`,build:`bun run scripts/build.ts`,"build:rubric":`bun run scripts/build-tier-rubric.ts`,compile:`bun run scripts/compile.ts`,typecheck:`tsc --noEmit`,"check-i18n":`bun run scripts/check-i18n.ts`,test:`bun run test:fast && bun run test:socket`,"perf:golden":`bun scripts/perf-golden.ts`,"pty:soak":`bun scripts/pty-soak.ts`,"test:fast":`vitest run --passWithNoTests --minWorkers=1 --maxWorkers=8`,"test:socket":`ROVE_INCLUDE_SOCKET=1 vitest run test/daemon --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests`,"test:socket:coverage":`ROVE_INCLUDE_SOCKET=1 ROVE_COVERAGE_DAEMON=1 vitest run test/daemon --coverage --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests`,"test:behavior":`ROVE_INCLUDE_BEHAVIOR=1 vitest run test/behavior --pool forks --minWorkers=1 --maxWorkers=1 --retry=2 --passWithNoTests`,"test:render":`bun scripts/render-track.mjs`,coverage:`vitest run --coverage --passWithNoTests`,bench:`vitest bench --run`,lint:`biome check .`,knip:`knip-bun`,postinstall:`bun run scripts/check-preview-deps.ts || true`,prepublishOnly:`bun run typecheck && bun run build`,"plugin-sandbox":`bun run scripts/plugin-sandbox.ts`},"//":`biome.json + bunfig.toml live at the monorepo root since they apply repo-wide; bun.lock also lives at root (workspace-shared).`,dependencies:{"@ansi-tools/parser":`^1.0.15`,"@opentui/core":`0.4.3`,"@opentui/react":`0.4.3`,"@xterm/addon-serialize":`^0.14.0`,"@xterm/addon-unicode11":`^0.9.0`,"@xterm/headless":`^6.0.0`,react:`^19.2.8`,"smol-toml":`^1.7.1`,ws:`^8.21.3`},optionalDependencies:{"node-pty":`^1.1.0`},devDependencies:{"@biomejs/biome":`1.9.4`,"@sma1lboy/rove-daemon":`0.7.23`,"@tsconfig/bun":`1.0.11`,"@types/bun":`1.3.14`,"@types/node":`25.6.2`,"@types/react":`^19.2.0`,"@vitest/coverage-v8":`2.1.9`,knip:`^6.14.2`,"react-devtools-core":`^7.0.1`,"rove-bridge":`0.0.42`,"rove-weixin":`0.0.42`,typescript:`5.8.2`,vitest:`2.1.9`},trustedDependencies:[]};pj.version,pj.name;var mj=[`latest`,`next`,`nightly`],hj={autoRouting:{title:`Auto routing`,hint:"Routing by depth: a task says how deep the work is — swift, standard, deep — and this table says which engine, model and reasoning effort that depth runs on. Pick a depth in the new-task dialog (or `rove api add --tier`) and Rove fills those three fields from the row; you still see them and can change them before the task starts. enter (or click) a row to point it somewhere else, with the same picker a task uses. A row whose target cannot start says why here, not at launch.",unconfigured:`Auto routing is off: a depth has nowhere to route — its engine is blank. Point it somewhere below, or remove the empty autoRouting.<tier>.engine from state.json.`,engineDefault:`engine default`,ready:`● ready`,unavailable:`! unavailable — {reason}`,classifierTitle:`Classifier`,classifierHint:"The rows above say what each depth RUNS. This says who CHOOSES one: switch it on and `rove api add --tier auto` reads the task's first message and picks the depth for you. It is off by default, it is never required, and it can never fail a create — no key, no network, a timeout, or an answer it is not confident enough about all leave you on the depth you would have had.",classifierDataFlow:"! Turning the classifier on sends the task's first message to a third party that is NOT the engine vendor you picked — TypeSafe System One for `jev`, or whatever address you point `custom` at. It reads the text before your engine does. Nothing leaves this machine while it is off.",classifierLabel:`Choose with`,classifierOff:`off`,classifierCustomLabel:`custom`,classifierOffHint:`— nothing is sent anywhere`,classifierJevHint:`— TypeSafe System One, billed to your own key`,classifierCustomHint:`— your endpoint: POST the text, answer with a depth and a confidence`,endpointLabel:`Endpoint`,endpointUnset:`(none — enter one, then set Choose with to custom)`,endpointTitle:`Custom classifier endpoint`,endpointField:`URL`,endpointInvalidTitle:`Not a URL`,endpointInvalidBody:`The endpoint has to start with https://, or http:// for a loopback address (127.0.0.1, localhost, ::1) — over a network, plain http would carry the task's first 1,200 characters in cleartext. Leave it empty to clear it.`,thresholdLabel:`Confidence floor`,thresholdHint:`— below this, the depth is left alone`,thresholdTitle:`Confidence floor`,thresholdField:`0 to 1`,thresholdInvalidTitle:`Not a confidence`,thresholdInvalidBody:`The floor is a number between 0 and 1. 0.5 is the shipped default.`,keyLabel:`API key`,keyStored:`stored {hint} — enter to replace, empty to clear`,keyFromEnv:"from ${env} — the environment wins over a stored key",keyNone:`not set — enter to paste one`,keyTitle:`{env}`,keyPlaceholder:`paste the key; leave empty to clear the stored one`,keySaved:`● key stored in ~/.rove/secrets.json (owner-only, never in state.json)`,keyCustomUnused:`● no Authorization header is sent to a custom endpoint — set autoRouting.classifierCustomKeyEnv to the variable holding its key if it needs one`,keyNoVariableTitle:`No key variable for this endpoint`,keyNoVariableBody:`A custom classifier endpoint is sent no Authorization header until autoRouting.classifierCustomKeyEnv names the variable its key lives in. Set that first — a key stored under a name nothing reads is a key at rest for no purpose.`,keyWriteFailedTitle:`Key not saved`,keyWriteFailedBody:`~/.rove/secrets.json could not be written: {reason}. Check directory permissions and disk space, then save again.`,keyMissing:`! no key — nothing is chosen and tasks keep their usual depth`,keyPresentEnv:"● key read from ${env} in this process's environment"}},gj={autoRouting:{title:`自动路由`,hint:"按深度路由:任务说明这活有多深——轻快、标准、深入——这张表说明那一档跑在哪个引擎、哪个模型、哪个推理强度上。在新建任务对话框里选一档(或 `rove api add --tier`),Rove 就照那一行填进这三个字段;任务启动前你仍然看得见、改得了。enter(或点击)某一行,用和任务一样的选择器把它指到别处。目标起不来的行会在这里说明原因,而不是等到启动时才炸。",unconfigured:`自动路由已关闭:有一档无处可去——它的引擎是空的。在下面把它指到某个引擎,或从 state.json 里删掉空的 autoRouting.<tier>.engine。`,engineDefault:`引擎默认`,ready:`● 可用`,unavailable:`! 不可用——{reason}`,classifierTitle:`分类器`,classifierHint:"上面几行说的是每一档**跑什么**,这里决定**由谁来选**:打开之后,`rove api add --tier auto` 会读任务的第一句话替你选档。默认关着,从来不是必需的,也永远不会让建 task 失败——没 key、断网、超时、或者它自己没把握,都只是让你停在本来就会用的那一档上。",classifierDataFlow:"! 打开分类器,任务的第一句话会发给一个**不是你选的那个引擎厂商**的第三方——`jev` 是 TypeSafe System One,`custom` 是你自己填的地址。它比你的引擎更早读到这段文字。关着的时候什么都不发。",classifierLabel:`选档方式`,classifierOff:`关`,classifierCustomLabel:`自定义`,classifierOffHint:`——不向任何地方发送`,classifierJevHint:`——TypeSafe System One,走你自己的 key 计费`,classifierCustomHint:`——你自己的接口:POST 那段文本,返回一个档位加一个置信度`,endpointLabel:`接口地址`,endpointUnset:`(未填——先填一个,再把「选档方式」切到自定义)`,endpointTitle:`自定义分类器接口`,endpointField:`URL`,endpointInvalidTitle:`不是一个 URL`,endpointInvalidBody:`接口地址要以 https:// 开头;http:// 只在回环地址(127.0.0.1、localhost、::1)上接受——发到网络上的话,明文 http 会把任务的前 1200 个字符原样带走。留空则清除。`,thresholdLabel:`置信度下限`,thresholdHint:`——低于这个值就不动档位`,thresholdTitle:`置信度下限`,thresholdField:`0 到 1`,thresholdInvalidTitle:`不是一个置信度`,thresholdInvalidBody:`下限是 0 到 1 之间的数。出厂默认 0.5。`,keyLabel:`API key`,keyStored:`已存 {hint}——enter 可替换,留空清除`,keyFromEnv:"来自环境变量 ${env}——环境变量优先于存起来的那个",keyNone:`未设置——enter 粘贴一个`,keyTitle:`{env}`,keyPlaceholder:`粘贴 key;留空则清除已存的那个`,keySaved:`● key 存在 ~/.rove/secrets.json(仅本人可读,不会进 state.json)`,keyCustomUnused:`● 自定义接口不会收到 Authorization 头——它若需要凭据,把 autoRouting.classifierCustomKeyEnv 指向存它的变量`,keyNoVariableTitle:`这个接口还没有 key 变量`,keyNoVariableBody:`在 autoRouting.classifierCustomKeyEnv 指定存 key 的变量之前,自定义分类器接口不会收到任何 Authorization 头。先设那个——存在一个没人读的名字下面的 key,只是白白落在盘上。`,keyWriteFailedTitle:`key 没存下`,keyWriteFailedBody:`写不了 ~/.rove/secrets.json:{reason}。请检查目录权限和磁盘空间,再次保存。`,keyMissing:`! 没有 key——不会替你选档,任务保持原来的档位`,keyPresentEnv:"● key 来自本进程环境变量 ${env}"}},_j={dev:{reset:`Reset UI state`,resetHint:`Clears ~/.config/rove/state.json and ~/.rove/tasks.json, then quits Rove — relaunch to start fresh. Working session list, pane sizes, theme, model picks all reset. Worktrees on disk and engine session history are not touched.`,resetButton:`[enter] Reset`,restart:`Restart backend`,restartHint:`Stops the Rove daemon and relaunches this window on the installed build — picks up daemon / orchestrator / engine edits without quitting by hand. Running engine sessions live in the PTY host and survive it; other attached Rove windows reconnect on their own.`,restartButton:`[enter] Restart`,reload:`Reload settings`,reloadHint:"Applies hand edits to ~/.config/rove/state.json (from `rove config`) to this window without a restart.",reloadButton:`[enter] Reload`,reloadDone:`Reloaded: {count} changed.`,reloadUnchanged:`Already matches state.json; nothing changed.`,reloadFailed:`state.json could not be read, nothing changed: {error}`,doctorHint:"Daemon wedged or unresponsive? Restart backend above does it from here; from a shell it is `rove daemon restart`. Hosted engine sessions stay alive across a daemon restart.",experimental:`Experimental`,remoteHint:"Remote projects (SSH): register a project whose git worktrees live on another host, driven from this local Rove. Unfinished — Hosted PTY engine launch over SSH is not implemented, and file/diff panes still degrade. Enables `rove add --remote`.",remote:`Remote projects`,autoStatusHint:`Auto status flow: a backlog task moves to in_progress when its engine starts a turn, and new sessions get a system-prompt note telling the agent to set in_review itself when the work is done. Never touches done/canceled.`,autoStatus:`Auto status flow`,dispatcherHint:"Field-notes dispatcher: task sessions file one-line gotchas (`rove api note`), the daemon forwards each to the repo's main session, and that session relays them to the in-flight tasks that benefit (`rove api dispatch`). Web-hosted sessions receive the relays today.",dispatcher:`Field-notes dispatcher`}},vj={dev:{reset:`重置 UI 状态`,resetHint:`清空 ~/.config/rove/state.json 和 ~/.rove/tasks.json,然后退出 Rove——重新启动即可从头开始。工作会话列表、面板尺寸、主题、模型选择都会重置。磁盘上的 worktree 和引擎会话历史不受影响。`,resetButton:`[enter] 重置`,restart:`重启后端`,restartHint:`停止 Rove daemon,并以已安装的版本重新启动当前窗口——无需手动退出即可应用 daemon / orchestrator / engine 的改动。正在运行的引擎会话由 PTY host 托管,不受影响;其他已连接的 Rove 窗口会自行重连。`,restartButton:`[enter] 重启`,reload:`重新加载设置`,reloadHint:"把对 ~/.config/rove/state.json 的手动修改(来自 `rove config`)应用到当前窗口,无需重启。",reloadButton:`[enter] 重新加载`,reloadDone:`已重新加载:{count} 项有变化。`,reloadUnchanged:`已与 state.json 一致,没有变化。`,reloadFailed:`无法读取 state.json,未做任何改动:{error}`,doctorHint:"daemon 卡住或无响应?上面的「重启后端」就能在这里完成;在 shell 里则是 `rove daemon restart`。Hosted PTY 引擎会话不会因 daemon 重启而退出。",experimental:`实验性`,remoteHint:"远程项目(SSH):注册一个 git worktree + 引擎都通过 SSH 跑在另一台主机上、由本地 Rove 驱动的项目。尚未完成——文件/diff 面板对远程仍会降级。启用 `rove add --remote`。",remote:`远程项目`,autoStatusHint:`自动状态流转:backlog 任务在其引擎开始一轮时移到 in_progress,新会话会拿到一条系统提示,告诉 agent 完成后自行设为 in_review。绝不触碰 done/canceled。`,autoStatus:`自动状态流转`,dispatcherHint:"现场笔记调度器:任务会话提交一行经验(`rove api note`),daemon 将每条转发给仓库的主会话,主会话再把它们转达给能受益的进行中任务(`rove api dispatch`)。目前由 Web 托管的会话会收到转达。",dispatcher:`现场笔记调度器`}},yj={engines:{title:`Engines`,hint:`Engines Rove can start on this machine. New tasks start with the default engine; switch an engine off to stop offering it.`,keys:`space available · d default · enter launch command · r rename · x reset/remove`,customTag:`custom`,available:`available`,off:`off`,defaultMark:`default`,makeDefault:`Make default`,status:{checking:`Checking…`,unknown:`Status unknown`,ready:`Ready`,notInstalled:`Not installed`,notOnPath:`Not on PATH`,signIn:`Sign in needed`,integrationMissing:`Integration not installed`,integrationOutdated:`Integration outdated`,integrationBlocked:`Integration blocked`},detail:{program:`Program`,command:`Command`,signIn:`Sign-in`,reporting:`Live status`,adapter:`Adapter`,programFound:`{binary} found at {path}.`,programMissing:`{binary} is not on PATH. Install the engine's CLI, or point its launch command at it.`,programUnknown:`Rove could not check for {binary}.`,commandDefault:`{command} (the default)`,commandCustom:`{command} (yours)`,signedIn:`Signed in.`,signedInAs:`Signed in as {who}.`,apiKey:`An API key is configured.`,token:`A token is configured ({source}).`,signedOut:`Not signed in. Sign in with the engine's own CLI.`,signInUnknown:`Rove can't see whether this engine is signed in.`,signInFailed:`Sign-in check failed: {error}`,hooksInstalled:`Rove's hooks are installed, so tabs report their state as it changes.`,hooksOutdated:`Rove's hooks are from an older version; reinstall them under Engine integrations.`,hooksMissing:`Rove's hooks are not installed; install them under Engine integrations.`,hooksAwaitEngine:`Rove's hooks can be installed once the engine is.`,hooksUnsupported:`This engine has no hooks for Rove to install.`,hooksBlocked:`Rove can't write its hooks into {file}: {reason}`,hooksBlockedHere:`Rove can't write its hooks into the engine's config: {reason}`,markersYes:`It leaves turn-complete markers that Rove reads back.`,markersNo:`It leaves no turn-complete markers.`,screenYes:`Screen rules cover what the hooks don't.`,screenNo:`No screen rules.`,screenNotNeeded:`No screen rules; the hooks report everything.`,adapterDeclared:`Borrows the {protocol} adapter.`,adapterGeneric:`Generic adapter: no transcript reader, sign-in check or resume.`,skill:`Rove skill`,skillInstalled:`Installed in {dir}.`,skillInstalledHere:`Installed and current.`,skillOutdated:`From an older Rove; reinstall it under Rove agent skill.`,skillMissing:`Not installed; install it under Rove agent skill.`},skill:{title:`Rove agent skill`,hint:`Teaches the agent in each engine to drive Rove itself (rove api): start tasks, read other sessions, message them.`,install:`Install ({count})`,noEngines:`No engine here takes the skill`,failed:`Install failed: {reason}`,bannerTitle:`ROVE SKILL NOT INSTALLED`,bannerHint:`{engines} can't drive Rove yet (start tasks, read other sessions). Click here to install.`,bannerHintWeb:`{engines} can't drive Rove yet (start tasks, read other sessions).`},integrations:{title:`Engine integrations`,hint:`Hooks Rove writes into each engine's own config, so a tab shows working, waiting or done the moment it happens.`,summary:`{installed} of {total} installed`,install:`Install missing ({count})`,upToDate:`All up to date`,remove:`Remove all ({count})`,noneInstalled:`Nothing to remove`},addEngine:`+ Add engine`,launchCommandTitle:`{name} launch command`,displayNameTitle:`{name} display name (blank = default)`,addTitle:`Add engine`,addStepTitle:`Add engine · {id}`,protocolTitle:`Add engine · {id} — protocol`,protocolNone:`None — generic adapter`,protocolFooter:`↑↓ choose · enter pick · esc cancel`,protocolRow:`protocol {protocol}`,protocolGeneric:`generic`,idPlaceholder:`lowercase slug, e.g. aider`,commandPlaceholder:`e.g. aider --model sonnet`,hookTrustHint:`Open {command} in the engine and approve hooks yourself. Written hooks are not proof of trust.`,readiness:`CLI: {cli} · login: {login} · hooks: {hooks}`,cliReady:`available`,cliMissing:`missing; install the engine CLI`,loginReady:`detected`,loginMissing:`sign in with the engine CLI`,readinessUnknown:`not observable`,hooksWritten:`written`,hooksMissing:`not written; Settings → Engines`,hooksOutdated:`outdated; Settings → Engines`,hookWaiting:`No hook event received yet. After approval, send a short prompt to verify activity.`,hookReceived:`Hook event recorded for this tab. Send a short prompt to check current reporting; current trust is not inferred.`,readinessFailed:`Readiness check unavailable; run rove doctor. No authorization is inferred.`},accounts:{checking:`Checking…`,notLoggedIn:`○ Not logged in`,loggedIn:`● Logged in: {email}`,apiKeyConfigured:`● API key configured`,chatgptLogin:`● ChatGPT login: {email}`,tokenConfigured:`● Token configured ({source})`,detected:`● Login detected`}},bj={engines:{title:`引擎`,hint:`Rove 能在这台机器上启动的引擎。新任务默认用「默认」引擎;关掉某个引擎,选引擎时就不再列出它。`,keys:`space 可用 · d 设为默认 · enter 启动命令 · r 重命名 · x 重置/移除`,customTag:`自定义`,available:`可用`,off:`已关`,defaultMark:`默认`,makeDefault:`设为默认`,status:{checking:`检查中…`,unknown:`状态未知`,ready:`就绪`,notInstalled:`未安装`,notOnPath:`不在 PATH 上`,signIn:`需要登录`,integrationMissing:`未安装接入`,integrationOutdated:`接入已过期`,integrationBlocked:`接入被拒绝`},detail:{program:`程序`,command:`命令`,signIn:`登录`,reporting:`实时状态`,adapter:`适配器`,programFound:`{binary} 位于 {path}。`,programMissing:`{binary} 不在 PATH 上。请安装引擎 CLI,或把启动命令指向它。`,programUnknown:`Rove 无法检查 {binary}。`,commandDefault:`{command}(默认)`,commandCustom:`{command}(自定义)`,signedIn:`已登录。`,signedInAs:`已登录:{who}。`,apiKey:`已配置 API key。`,token:`已配置 Token({source})。`,signedOut:`未登录。请用引擎自己的命令行登录。`,signInUnknown:`Rove 无法得知该引擎是否已登录。`,signInFailed:`登录检查失败:{error}`,hooksInstalled:`Rove 的钩子已安装,标签页的状态会实时上报。`,hooksOutdated:`Rove 的钩子来自旧版本;请在「引擎接入」里重新安装。`,hooksMissing:`Rove 的钩子未安装;请在「引擎接入」里安装。`,hooksAwaitEngine:`引擎安装后才能装 Rove 的钩子。`,hooksUnsupported:`该引擎没有可供 Rove 安装的钩子。`,hooksBlocked:`Rove 无法把钩子写入 {file}:{reason}`,hooksBlockedHere:`Rove 无法把钩子写入引擎配置:{reason}`,markersYes:`它会留下回合完成标记,Rove 可以读回。`,markersNo:`它不留下回合完成标记。`,screenYes:`读屏规则兜底钩子覆盖不到的状态。`,screenNo:`没有读屏规则。`,screenNotNeeded:`没有读屏规则;钩子已报全所有状态。`,adapterDeclared:`借用 {protocol} 适配器。`,adapterGeneric:`通用适配器:没有会话记录读取、登录检查和恢复。`,skill:`Rove 技能`,skillInstalled:`已安装在 {dir}。`,skillInstalledHere:`已安装,是最新版。`,skillOutdated:`来自旧版 Rove;请在「Rove 智能体技能」里重新安装。`,skillMissing:`未安装;请在「Rove 智能体技能」里安装。`},skill:{title:`Rove 智能体技能`,hint:`教会各引擎里的智能体自己操作 Rove(rove api):开任务、读其他会话、给它们发消息。`,install:`安装({count})`,noEngines:`这台机器上没有能装技能的引擎`,failed:`安装失败:{reason}`,bannerTitle:`ROVE 技能未安装`,bannerHint:`{engines} 还不能操作 Rove(开任务、读其他会话)。点这里安装。`,bannerHintWeb:`{engines} 还不能操作 Rove(开任务、读其他会话)。`},integrations:{title:`引擎接入`,hint:`Rove 写进各引擎自身配置的钩子,让标签页在工作、等待、完成的那一刻就显示出来。`,summary:`已安装 {installed}/{total}`,install:`安装缺失的({count})`,upToDate:`全部已是最新`,remove:`全部移除({count})`,noneInstalled:`没有可移除的`},addEngine:`+ 添加引擎`,launchCommandTitle:`{name} 的启动命令`,displayNameTitle:`{name} 的显示名称(留空 = 默认)`,addTitle:`添加引擎`,addStepTitle:`添加引擎 · {id}`,protocolTitle:`添加引擎 · {id} —— 协议`,protocolNone:`无 —— 通用适配器`,protocolFooter:`↑↓ 选择 · enter 确认 · esc 取消`,protocolRow:`协议 {protocol}`,protocolGeneric:`通用`,idPlaceholder:`小写短名,如 aider`,commandPlaceholder:`如 aider --model sonnet`,hookTrustHint:`在引擎中打开 {command},由你自行批准 hooks。写入不代表已授权。`,readiness:`CLI:{cli} · 登录:{login} · hooks:{hooks}`,cliReady:`可用`,cliMissing:`缺失;请安装引擎 CLI`,loginReady:`已检测到`,loginMissing:`请通过引擎 CLI 登录`,readinessUnknown:`无法观测`,hooksWritten:`已写入`,hooksMissing:`未写入;设置 → 引擎`,hooksOutdated:`已过时;设置 → 引擎`,hookWaiting:`尚未收到 hook 事件。授权后发送一条简短提示,验证活动状态。`,hookReceived:`已记录此标签页的 hook 事件。发送简短提示以检查当前上报;不据此推断当前授权。`,readinessFailed:`无法检查就绪状态;请运行 rove doctor。不会据此推断已授权。`},accounts:{checking:`检查中…`,notLoggedIn:`○ 未登录`,loggedIn:`● 已登录: {email}`,apiKeyConfigured:`● 已配置 API key`,chatgptLogin:`● ChatGPT 登录: {email}`,tokenConfigured:`● 已配置 Token ({source})`,detected:`● 检测到登录`}},xj={plugins:{title:`Plugins`,hint:"Rove's first-party mods first: enter (or click) installs or uninstalls one, and uninstalling keeps its data on disk. Then the plugins registered in ~/.rove/plugins.json: enter toggles one on or off — the daemon watches the file, so the change applies live. Rows indented under a plugin are the settings it declares; enter edits one, and the value reaches the plugin on its next run. Install and remove them from the shell: `rove plugin install <owner/repo>`, `rove plugin link <dir>`.",empty:"Kanban and Issues are first-party mods: enter (or click) installs one. No other plugins registered; add one with `rove plugin install <owner/repo>` — browse the `rove-plugin` topic on GitHub.",sourceLink:`linked {path}`,sourceGithub:`{spec}`,sourceBuiltIn:`first-party mod · not installed`,sourceBuiltInInstalled:`first-party mod · installed`,updateAvailable:`update available — rove plugin update`,declares:`{actions} actions · {events} events · {panes} panes`,declaresWithEngines:`{actions} actions · {events} events · {panes} panes · {engines} engines`,declaresPages:`· {pages} pages`,pageFailed:`page {detail}`,manifestUnreadable:`manifest unreadable; check the rove-plugin.toml path and TOML syntax`,unsupportedPlatform:`· not supported on this platform`,noHooks:`· no hooks declared`,lastRun:`· last run {label} {status} {ago} ago`,neverRun:`· never run`,runOk:`ok`,runRunning:`still running`,runFailed:"failed to start; inspect `rove plugin log <id>`",runExit:`exit {code}`,settingUnset:`(unset — enter to edit)`,settingInvalidTitle:`Not a number`,settingInvalidBody:`{label} only accepts a number. Keeping the previous value.`},marketplace:{title:`Marketplace`,hint:"Plugins published under the `rove-plugin` topic on GitHub, most-starred first. enter (or click) shows what the install would run and asks before running any of it. The listing is re-queried each time you open this section.",loading:`Searching GitHub…`,empty:`No plugins listed.`,offline:`GitHub is unreachable — showing first-party plugins only. Re-open this section to retry.`,installedTag:`installed`,firstParty:`first-party`,preparing:`cloning {ref}…`,installing:`building and registering {name}…`,installed:`installed {id} v{version} — it is enabled, and appears under Plugins.`,cancelled:`install cancelled; nothing was run.`,failed:`install failed: {error}. Check the build output and retry from Marketplace.`,alreadyInstalled:`already installed as {id} — manage it under Plugins.`,confirmTitle:`Install {name}?`,confirmInstall:`install`,previewSource:`source: {source}`,previewCommands:`Commands this plugin declares:`,previewNoCommands:`This plugin declares no commands.`,previewWarning:`warning: {warning}`,previewTrust:`Installing runs the build commands above, and the rest run later on the events they declare. They run as you, with your environment, and nothing is sandboxed.`}},Sj={plugins:{title:`插件`,hint:"先列 Rove 官方 mod:enter(或点击)安装或卸载,卸载后数据仍留在磁盘上。再列在 ~/.rove/plugins.json 里注册的插件:enter 切换启用/禁用——daemon 监听该文件,改动实时生效。插件下方缩进的行是它声明的设置项,enter 编辑,新值在插件下次运行时生效。安装与移除在 shell 里做:`rove plugin install <owner/repo>`、`rove plugin link <dir>`。",empty:"Kanban 和 Issues 是官方 mod:enter(或点击)安装。尚未注册其他插件;用 `rove plugin install <owner/repo>` 安装一个——可在 GitHub 的 `rove-plugin` 话题下浏览。",sourceLink:`本地链接 {path}`,sourceGithub:`{spec}`,sourceBuiltIn:`官方 mod · 未安装`,sourceBuiltInInstalled:`官方 mod · 已安装`,updateAvailable:`有新版本 — rove plugin update`,declares:`{actions} 个动作 · {events} 个事件 · {panes} 个面板`,declaresWithEngines:`{actions} 个动作 · {events} 个事件 · {panes} 个面板 · {engines} 个引擎`,declaresPages:`· {pages} 个页面`,pageFailed:`页面 {detail}`,manifestUnreadable:`manifest 无法解析;请检查rove-plugin.toml 的路径和 TOML 语法`,unsupportedPlatform:`· 不支持当前平台`,noHooks:`· 未声明钩子`,lastRun:`· 上次运行 {label} {status} {ago}前`,neverRun:`· 尚未运行过`,runOk:`成功`,runRunning:`仍在运行`,runFailed:"启动失败;请查看 `rove plugin log <id>`",runExit:`退出码 {code}`,settingUnset:`(未设置 — enter 编辑)`,settingInvalidTitle:`不是数字`,settingInvalidBody:`{label} 只接受数字,保留原值。`},marketplace:{title:`插件市场`,hint:"GitHub 上 `rove-plugin` 话题下发布的插件,按 star 数排序。enter(或点击)会先列出安装会执行的命令,确认后才真正执行。每次进入本区块都会重新查询列表。",loading:`正在搜索 GitHub…`,empty:`列表为空。`,offline:`GitHub 不可达——只显示首方插件。重新进入本区块可再试一次。`,installedTag:`已安装`,firstParty:`首方`,preparing:`正在克隆 {ref}…`,installing:`正在构建并注册 {name}…`,installed:`已安装 {id} v{version}——已启用,可在「插件」区块管理。`,cancelled:`已取消安装,没有执行任何命令。`,failed:`安装失败:{error}。请检查构建输出,再从插件市场重试。`,alreadyInstalled:`已安装为 {id}——在「插件」区块管理。`,confirmTitle:`安装 {name}?`,confirmInstall:`安装`,previewSource:`来源:{source}`,previewCommands:`该插件声明的命令:`,previewNoCommands:`该插件未声明任何命令。`,previewWarning:`警告:{warning}`,previewTrust:`安装会执行上面的 build 命令,其余命令会在它们声明的事件发生时执行。它们以你的身份、带你的环境变量运行,没有任何沙箱。`}},Cj={en:{appearance:{enabled:`On`,disabled:`Off`,borderFlow:`Flowing gradient`,borderStill:`Still`,glyphsBraille:`Braille`,glyphsStarburst:`Starburst (needs a font with the Dingbats block)`,glyphsAscii:`ASCII`,titleShimmer:`Shimmer`,titleStill:`Still`,preview:`Workspace preview`,tasks:`Tasks`,terminal:`Terminal`,files:`Files`,testsPassed:`Tests passed`,transparent:`Transparent background`,opaque:`Opaque background`,modeDark:`Dark`,modeLight:`Light`,modeAuto:`Auto (follow the terminal)`,openHint:`Enter to choose an option and preview it.`,chooseHint:`↑/↓ or j/k preview · enter apply · esc cancel`},title:`Settings`,esc:`esc`,nav:{default:`j/k pick · h/l switch level · enter activate · esc close`,feedback:`tab next field · enter sends on Send · esc close`},sections:{general:`General`,engines:`Engines`,autoRouting:`Auto routing`,plugins:`Plugins`,marketplace:`Marketplace`,keys:`Keybindings`,feedback:`Feedback`,dev:`Dev`},general:{usage:`USAGE`,theme:`Theme`,themeMode:`Mode`,themeHint:`l to enter list · j/k to highlight · enter to apply`,language:`Language`,languageHint:`Display language for Rove's UI. l to enter list · j/k to highlight · enter to apply.`,transparent:`Transparent background`,transparentHint:`Drops the renderer's bg fill so the host terminal shows through. enter toggles.`,on:`[x] on`,off:`[ ] off`,focusAccent:`Focus accent`,focusAccentHint:`Color of focused pane title, ▌ marker, and split borders.`,accentPrimary:`Primary (brand accent)`,accentSuccess:`Success (legacy green)`,accentInfo:`Info (cool blue)`,appearance:`Appearance`,appearanceHint:`How split panes draw.`,splitStyle:`Split panes`,workingBorder:`Working border`,taskColors:`Task colors`,glyphSet:`State glyphs`,colorblind:`Colorblind diff colours`,runningTitle:`Running title`,splitBox:`Box frames`,splitLine:`Divider line`,splitRail:`Accent rail`,splitRule:`Top rule`,notifications:`Notifications`,notificationsHint:`When a background tab finishes or pauses on an approval.`,toast:`Toast`,toastHint:`bottom-right popup`,sound:`Sound`,soundHint:`bell + chime + an OSC 9 desktop notification (rides SSH)`,soundVolume:`Chime volume — {percent}%`,soundVolumeHint:`enter cycles; applies to the next chime`,crossTask:`Cross-task`,crossTaskHint:`also for a task you switched away from`,finishedAlerts:`Finished turns`,finishedAlertsHint:`off: only approvals and errors alert; the unread dot stays`,keyHints:`Keyboard hints`,keyHintsHint:`The status-bar reminder and the first-use hints in the sidebar and files panes.`,keyHintsShow:`Show keyboard hints`,keyHintsShowHint:`re-enabling relights hints dismissed by use`,zen:`Zen mode`,zenHint:"The `zen` chip and `prefix`+z hide Files, keeping the Tasks rail and workspace.",zenDefaultOn:`Start in zen mode`,updates:`Updates`,updatesHint:`Stable is the default channel; next previews the coming release; nightly is built from main every day.`,updateChannelTitle:`Release channel`,updateChannel:`Channel: {channel}`,updateChannelHint:"enter cycles stable / next / nightly; `rove update` follows it",updateChannelName:{latest:`stable`,next:`next preview`,nightly:`nightly preview`},updateNotify:`Notify on updates`,updateNotifyHint:`new versions on this channel; off hides the update chip, and checking by hand still reports`,updateCheck:`[ Check for updates ]`,updateCheckHint:`asks npm for the newest release on this channel right now`,updateCheckButton:`Check for updates`,updateChecking:`Checking…`,updateOpenPage:`Open Update page`,updateOpenPageRow:`[ Open Update page ]`,railFold:`Folded task rail`,railFoldHint:`What the rail shows once folded away from its corner control.`,railFoldRow:`Folded rail shows: {style}`,railFoldRowHint:`enter cycles`,railFoldGlyphs:`status glyphs`,railFoldInitials:`glyph + initials`,railFoldHairline:`colour band only`,editor:`Editor`,editorHint:`What enter opens a file with in the file tree — diff mode when the editor supports it, the read-only preview when it isn't installed.`,editorRow:`editor: < {kind} >`,editorRowHint:`auto follows $VISUAL / $EDITOR, else nvim / vim / emacs / nano`,editorCustom:`custom: {cmd}`,editorCustomUnset:`(unset — enter to edit)`,worktree:`Worktree location`,worktreeHint:`Where new task worktrees are created. New tasks only.`,worktreeBase:`location: < {kind} >`,worktreeBaseHint:"custom takes `~`, a relative path, or a leading `$project_dir`",worktreeKindDefault:`default ~/.rove/worktrees`,worktreeKindNext:`next to project`,worktreeKindCustom:`custom`,worktreeCustom:`custom: {path}`,worktreeCustomUnset:`(unset — enter to edit)`,worktreeBaseTitle:`Custom worktree location (blank = default; $project_dir = project root)`,worktreeBaseField:`PATH`,editorCustomTitle:`Custom editor command (use {file} for the path)`,worktreeBaseInvalidTitle:`Can't use that worktree location`,worktreeBaseTokenBody:`{token} only expands as the leading path segment (e.g. {token}/../rove-worktrees). Keeping the previous setting.`,worktreeBaseUnusableBody:`{path} isn't usable ({error}). Keeping the previous setting — pick a writable directory.`,terminal:`Terminal`,terminalHint:`Applies to terminals opened after the change.`,scrollbackRow:`scrollback: {rows} rows`,scrollbackRowHint:`100–100000 · larger costs proportionally more CPU per redraw`,scrollbackTitle:`Terminal scrollback rows (100–100000)`,scrollbackField:`ROWS`,scrollbackInvalidTitle:`Not a number`,scrollbackInvalidBody:`Scrollback must be a number of rows (e.g. 1000). Keeping the previous setting.`,tabStripRow:`tab strip: {mode}`,tabStripMode:{never:`off — the sidebar tree lists tabs`,multipleOnly:`only with 2+ tabs`,always:`always`}},field:{command:`COMMAND`,name:`NAME`,id:`ID`},action:{save:`save`,next:`next`,add:`add`},reset:{title:`Reset UI state?`,body:`Wipes ~/.config/rove/state.json and ~/.rove/tasks.json, then quits Rove — relaunch for a fresh start with an empty working session list. Worktrees on disk and engine session history are NOT touched.`,done:`Rove: UI state reset. Relaunch Rove to start fresh.`,failedTitle:`UI state was not reset`,failedBody:`Could not write the settings file. Your settings and tasks have been kept. Try resetting again.`},restart:{title:`Restart backend?`,body:`Stops the daemon and relaunches this Rove on the installed build, so daemon / orchestrator / engine edits take effect. Running engine sessions live in the PTY host and keep going; open tabs come back. Any other attached windows reconnect on their own.`,done:`Rove: restarting the backend...`},stateWrite:{failedTitle:`Settings were not saved`,failedBody:`{file} could not be written ({keys}). Check its directory permissions and free disk space, then save again.`},...hj,...yj,...xj,keybindings:{title:`Keybindings`,hint:`Rebind direct and prefix chords in your own YAML file; changes reload live. Press F1 anywhere for the live keymap with every binding id.`,configFile:`Config file`,notCreated:` (not created yet)`,prefixTitle:`Command layer ({prefix})`,prefixHint:`Bare keys act in the focused pane; a small one-press set covers frequent Rove actions; {prefix} opens the command layer ({timeout}ms second-stroke window). Prefix bindings keep their pane scope and modal rules.`,tapPresentation:`Prefix tap`,tapPresentationHint:`Choose whether the complete guide also marks controls already on screen.`,tapPresentationLocal:`On-screen entries + complete guide (default)`,tapPresentationGuide:`Complete guide only`,prefixDisabled:`disabled`,fixed:`Fixed (not rebindable): {ids}.`,createHint:`No overrides file yet. Rove can write one for you, fully commented — nothing is rebound until you uncomment a line.`,createFile:`[enter] Create keybindings.yaml`,overridesApplied:`Overrides applied`,none:`none`,unbound:`(unbound)`,defaultKeys:`default: {keys}`,warnings:`Warnings`},feedback:{title:`Feedback`,hint:"Files a GitHub issue on the Rove repo through `gh`. Requires `gh auth login`; without it you get a prefilled link to open.",titleLabel:`title`,titlePlaceholder:`Short summary`,descriptionLabel:`description`,descriptionPlaceholder:`What happened? (enter for a new line · tab to Send)`,send:`[enter] File a GitHub issue`,submitting:`submitting...`,sent:`filed #{number}: {url}`,notFiled:`not filed: {hint}
|
|
116
|
+
{url}`,error:`error: {message}
|
|
117
|
+
{hint}`},..._j},zh:{appearance:{enabled:`开启`,disabled:`关闭`,borderFlow:`流动渐变`,borderStill:`静止`,glyphsBraille:`盲文点`,glyphsStarburst:`星芒(需要含 Dingbats 符号区的字体)`,glyphsAscii:`ASCII`,titleShimmer:`流光`,titleStill:`静止`,preview:`工作区预览`,tasks:`任务`,terminal:`终端`,files:`文件`,testsPassed:`测试通过`,transparent:`透明背景`,opaque:`不透明背景`,modeDark:`深色`,modeLight:`浅色`,modeAuto:`自动(跟随终端)`,openHint:`按 Enter 打开选项和预览。`,chooseHint:`↑/↓ 或 j/k 预览 · enter 应用 · esc 取消`},title:`设置`,esc:`esc`,nav:{default:`j/k 选择 · h/l 切换层级 · enter 确认 · esc 关闭`,feedback:`tab 下一项 · enter 在发送项发送 · esc 关闭`},sections:{general:`通用`,autoRouting:`自动路由`,engines:`引擎`,plugins:`插件`,marketplace:`插件市场`,keys:`快捷键`,feedback:`反馈`,dev:`开发`},general:{usage:`用量`,theme:`主题`,themeMode:`明暗`,themeHint:`l 进入列表 · j/k 高亮 · enter 应用`,language:`语言`,languageHint:`Rove 界面的显示语言。l 进入列表 · j/k 高亮 · enter 应用。`,transparent:`透明背景`,transparentHint:`去掉渲染器的背景填充,让宿主终端透出来。按 enter 切换。`,on:`[x] 开`,off:`[ ] 关`,focusAccent:`聚焦强调色`,focusAccentHint:`聚焦面板标题、▌ 标记和分隔边框的颜色。`,accentPrimary:`主色(品牌强调色)`,accentSuccess:`成功色(传统绿)`,accentInfo:`信息色(冷蓝)`,appearance:`外观`,appearanceHint:`分屏面板怎么画边。`,splitStyle:`分屏面板`,workingBorder:`运行中边框`,taskColors:`任务配色`,glyphSet:`状态符号`,colorblind:`色盲友好的增删配色`,runningTitle:`运行中标题`,splitBox:`方框边框`,splitLine:`单线分隔`,splitRail:`左侧强调条`,splitRule:`顶部横线`,notifications:`通知`,notificationsHint:`后台标签完成或在审批处暂停时触发。`,toast:`Toast 弹窗`,toastHint:`右下角弹窗`,sound:`声音`,soundHint:`响铃 + 提示音 + OSC 9 桌面通知(经 SSH 直达本地)`,soundVolume:`提示音音量 — {percent}%`,soundVolumeHint:`回车循环切换;下一声提示音生效`,crossTask:`跨任务`,crossTaskHint:`你已切走的任务也通知`,finishedAlerts:`回合完成`,finishedAlertsHint:`关闭后只有审批和错误会提醒;未读标记照常`,keyHints:`键盘提示`,keyHintsHint:`状态栏提醒,以及侧栏和文件面板的首用提示。`,keyHintsShow:`显示键盘提示`,keyHintsShowHint:`重新开启会点亮已因使用而熄灭的提示`,zen:`禅模式`,zenHint:"`zen` 标记和 `prefix`+z 隐藏 Files,保留 Tasks 侧栏与 workspace。",zenDefaultOn:`启动即进入禅模式`,updates:`更新`,updatesHint:`稳定版是默认渠道;next 预览即将发布的版本;nightly 每天从 main 自动构建。`,updateChannelTitle:`发布渠道`,updateChannel:`渠道:{channel}`,updateChannelHint:"enter 在稳定版 / next / nightly 间切换;`rove update` 跟随它",updateChannelName:{latest:`稳定版`,next:`next 预览版`,nightly:`nightly 预览版`},updateNotify:`有新版本时通知我`,updateNotifyHint:`只针对所选渠道;关闭后不再显示更新标记,手动检查仍会给出结果`,updateCheck:`[ 检查更新 ]`,updateCheckHint:`立即向 npm 查询所选渠道的最新版本`,updateCheckButton:`检查更新`,updateChecking:`检查中…`,updateOpenPage:`打开更新页`,updateOpenPageRow:`[ 打开更新页 ]`,railFold:`折叠后的任务栏`,railFoldHint:`任务栏从角标折叠之后显示什么。`,railFoldRow:`折叠后显示:{style}`,railFoldRowHint:`enter 切换`,railFoldGlyphs:`状态字形`,railFoldInitials:`字形 + 首字母`,railFoldHairline:`仅色带`,editor:`编辑器`,editorHint:`文件树里按 enter 用什么打开文件——支持时走编辑器 diff 模式,未安装时回退到只读预览。`,editorRow:`编辑器: < {kind} >`,editorRowHint:`auto 跟随 $VISUAL / $EDITOR,否则 nvim / vim / emacs / nano`,editorCustom:`自定义: {cmd}`,editorCustomUnset:`(未设置 — enter 编辑)`,worktree:`工作树位置`,worktreeHint:`新任务工作树的创建位置。仅对新任务生效。`,worktreeBase:`位置: < {kind} >`,worktreeBaseHint:"自定义可填 `~`、相对路径或以 `$project_dir` 开头",worktreeKindDefault:`默认 ~/.rove/worktrees`,worktreeKindNext:`项目旁边`,worktreeKindCustom:`自定义`,worktreeCustom:`自定义: {path}`,worktreeCustomUnset:`(未设置 — enter 编辑)`,worktreeBaseTitle:`自定义工作树位置(留空 = 默认;$project_dir = 项目根目录)`,worktreeBaseField:`路径`,editorCustomTitle:`自定义编辑器命令(用 {file} 代表文件路径)`,worktreeBaseInvalidTitle:`无法使用该工作树位置`,worktreeBaseTokenBody:`{token} 只能作为路径的第一段展开(如 {token}/../rove-worktrees)。保留原设置。`,worktreeBaseUnusableBody:`{path} 不可用({error})。保留原设置 —— 请选择一个可写目录。`,terminal:`终端`,terminalHint:`对修改后新打开的终端生效。`,scrollbackRow:`回滚行数: {rows} 行`,scrollbackRowHint:`100–100000 · 调大会按比例增加每次重绘的 CPU`,scrollbackTitle:`终端回滚行数(100–100000)`,scrollbackField:`行数`,scrollbackInvalidTitle:`不是数字`,scrollbackInvalidBody:`回滚行数必须是数字(如 1000)。保留原设置。`,tabStripRow:`标签栏: {mode}`,tabStripMode:{never:`关闭 — 标签在左侧树里`,multipleOnly:`仅 2 个以上标签时显示`,always:`始终显示`}},field:{command:`命令`,name:`名称`,id:`标识`},action:{save:`保存`,next:`下一步`,add:`添加`},reset:{title:`重置界面状态?`,body:`将清除 ~/.config/rove/state.json 和 ~/.rove/tasks.json 并退出 Rove —— 重新启动后会是一个干净的开始,工作会话列表为空。磁盘上的工作树和引擎会话历史不受影响。`,done:`Rove:界面状态已重置。重新启动 Rove 即可从头开始。`,failedTitle:`UI 状态未能重置`,failedBody:`无法写入设置文件。设置和任务均已保留,请稍后重新尝试重置。`},restart:{title:`重启后端?`,body:`会停掉 daemon,并以已安装的版本重新启动当前 Rove 窗口,从而让 daemon / orchestrator / 引擎的改动生效。正在运行的引擎会话由 PTY host 托管,不会中断;已打开的标签页会恢复。其他已连接的窗口会自行重连。`,done:`Rove:正在重启后端……`},stateWrite:{failedTitle:`设置未能保存`,failedBody:`{file} 写入失败({keys})。请检查目录权限和磁盘空间,再次保存。`},...gj,...bj,...Sj,keybindings:{title:`快捷键`,hint:`在你自己的 YAML 文件里重绑定直接按键和 prefix 组合;修改会实时加载。任意位置按 F1 查看带每个绑定 id 的实时键位表。`,configFile:`配置文件`,notCreated:` (尚未创建)`,prefixTitle:`命令层({prefix})`,prefixHint:`裸键作用于当前聚焦面板;少量单次快捷键覆盖高频 Rove 操作;{prefix} 打开命令层(第二击窗口 {timeout}ms)。Prefix 绑定保持原有的面板作用域和 modal 规则。`,tapPresentation:`点按 Prefix`,tapPresentationHint:`选择完整指南是否同时标记当前屏幕上的入口。`,tapPresentationLocal:`屏幕入口 + 完整指南(默认)`,tapPresentationGuide:`仅完整指南`,prefixDisabled:`已禁用`,fixed:`固定(不可重绑定):{ids}。`,createHint:`还没有覆盖文件。Rove 可以帮你写一份带完整注释的——在你取消注释之前不会改动任何按键。`,createFile:`[enter] 创建 keybindings.yaml`,overridesApplied:`已应用的覆盖`,none:`无`,unbound:`(已解绑)`,defaultKeys:`默认: {keys}`,warnings:`警告`},feedback:{title:`反馈`,hint:"通过 `gh` 在 Rove 仓库提一个 GitHub issue。需要 `gh auth login`;没登录时会给你一条预填好的链接。",titleLabel:`标题`,titlePlaceholder:`简短概括`,descriptionLabel:`描述`,descriptionPlaceholder:`发生了什么?(enter 换行 · tab 跳到发送)`,send:`[enter] 提交 GitHub issue`,submitting:`提交中...`,sent:`已提交 #{number}:{url}`,notFiled:`未提交:{hint}
|
|
118
|
+
{url}`,error:`错误:{message}
|
|
119
|
+
{hint}`},...vj}},wj={en:Br,zh:Vr};function $(e,t){return Ne(Cj,e,t)}function Tj(e,t){return Ne(wj,e,t)}function Ej({label:e,value:t,picks:n,onPick:r}){return(0,V.jsx)(`fieldset`,{"aria-label":e,className:`m-0 inline-flex min-w-0 flex-wrap gap-0.5 rounded-sm border-hairline border-line bg-inset p-0.5`,children:n.map(e=>{let n=e.value===t;return(0,V.jsx)(`button`,{type:`button`,"aria-pressed":n,className:Fe(`rounded-xs px-2.5 py-1 font-sans text-meta whitespace-nowrap touch:min-h-9`,`focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-focus`,n?`bg-menu text-ink`:`text-muted hover:bg-hover`),onClick:()=>!n&&r(e.value),children:e.label},e.value)})})}function Dj({label:e,value:t,picks:n,onPick:r}){return(0,V.jsxs)(`span`,{className:`relative inline-flex max-w-full min-w-0 text-ink`,children:[(0,V.jsx)(`select`,{"aria-label":e,value:t,className:`max-w-full min-w-0 truncate rounded-sm border-hairline border-line bg-paper py-1.25 pr-7 pl-2.5 font-sans text-meta hover:border-line-active focus-visible:border-line-active focus-visible:outline-none touch:min-h-10`,onChange:e=>{let t=n.find(t=>String(t.value)===e.target.value);t&&r(t.value)},children:n.map(e=>(0,V.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,V.jsx)(Ka,{className:`pointer-events-none absolute top-1/2 right-2.5 -translate-y-1/2 text-subtle`})]})}var Oj=`${zn} w-narrow:pt-0`,kj=`dialog relative m-0 flex h-[min(640px,80vh)] w-[min(880px,calc(100vw-32px))] overflow-hidden rounded-md border-hairline border-line bg-surface text-inherit shadow-dialog focus:outline-none motion-safe:animate-rise-in [.is-leaving_&]:animate-sink-out w-narrow:h-dvh w-narrow:w-screen w-narrow:flex-col w-narrow:rounded-none w-narrow:border-0 w-narrow:pt-[env(safe-area-inset-top)] w-narrow:pb-[env(safe-area-inset-bottom)] short:h-[calc(100dvh-24px)]`,Aj=`absolute top-3 right-3 z-1 grid size-7 place-items-center rounded-sm text-display leading-none text-muted hover:bg-inset hover:text-ink focus-visible:bg-inset focus-visible:text-ink touch:size-10`,jj=`flex w-56 flex-none flex-col gap-5 overflow-y-auto scrollbar-none [border-right:var(--hairline)_solid_var(--line)] px-2.5 py-4 w-narrow:w-full w-narrow:flex-1 w-narrow:[border-right:none] w-narrow:px-3 w-narrow:py-3`,Mj=`m-0 px-2 pb-0.5 font-sans text-title font-semibold normal-nums text-ink`,Nj=`flex flex-col gap-0.5`,Pj=`m-0 px-2 pb-1 font-mono text-meta font-normal text-subtle`,Fj=(e,t)=>`flex items-center rounded-sm px-2 py-1.25 text-left font-sans text-body touch:min-h-10 w-narrow:min-h-11 w-narrow:px-3 ${e?`bg-menu text-ink`:`${t?`text-muted`:`text-ink`} [&:hover]:bg-hover`}`,Ij=`ml-auto hidden text-subtle w-narrow:block`,Lj=`flex flex-col`,Rj=`m-0 pb-2 text-meta text-subtle`,zj=`flex flex-col border-t-hairline border-t-line [&>*]:border-b-hairline [&>*]:border-b-line`,Bj=`flex items-center justify-between gap-x-6 gap-y-2 py-3 w-narrow:flex-col w-narrow:items-stretch`,Vj=`flex items-center justify-between gap-x-6 py-3`,Hj=`flex flex-col gap-3 py-3`,Uj=`flex min-w-0 flex-1 flex-col gap-0.5`,Wj=`text-body text-ink`,Gj=`text-meta text-muted [&_a]:text-accent`,Kj=`max-w-90 min-w-0 truncate font-mono text-meta text-muted [overflow-wrap:anywhere]`,qj=`m-0 py-3 text-body text-muted`,Jj=`rounded-sm border-hairline border-line bg-paper px-2.5 py-1.5 font-sans text-body text-ink focus-visible:border-line-active focus-visible:outline-none`,Yj=`${Jj} w-24 text-right`,Xj=`flex flex-col gap-1.5`,Zj=`text-meta font-medium text-muted`,Qj=`min-h-30 max-h-[50vh] leading-[1.45]`,$j=`flex flex-wrap items-center justify-end gap-2.5`,eM=`flex items-center gap-2.5 rounded-sm bg-inset px-3 py-2 text-meta`,tM=`grid grid-cols-[minmax(0,1fr)_104px_72px] items-center gap-3`,nM=`flex flex-col`,rM=`${tM} pb-1.5 pl-7.5 font-sans text-meta font-medium normal-nums text-subtle [&>span:not(:first-child)]:text-center`,iM=`border-b-hairline border-b-line first:border-t-hairline first:border-t-line`,aM=`${tM} group/eng rounded-sm py-1.5 pr-1 pl-0`,oM=`flex min-w-0 items-center gap-2 rounded-sm py-1.5 pr-0 pl-1.5 text-left focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-focus`,sM=e=>`mx-0.5 ${e?`text-muted`:`text-subtle`}`,cM=`flex min-w-0 flex-col gap-0.5`,lM=e=>`truncate text-body leading-[inherit] font-medium ${e?`text-muted`:`text-ink`}`,uM=`ml-2 text-meta leading-[inherit] font-normal text-subtle`,dM={ready:`bg-success`,attention:`bg-warning`,error:`bg-error`,absent:`bg-subtle`},fM=e=>`inline-flex items-center gap-1.5 text-meta leading-[inherit] ${e===`error`?`text-error`:`text-muted`}`,pM=e=>`size-1.75 flex-none rounded-full ${dM[e]}`,mM=`flex justify-center`,hM=`rounded-full bg-accent-soft px-2.5 py-0.5 font-sans text-meta font-medium normal-nums capitalize text-accent`,gM=`rounded-full border-hairline border-line px-2.5 py-0.5 text-meta leading-[inherit] whitespace-nowrap text-muted opacity-0 transition-opacity duration-120 ease-[ease] group-hover/eng:opacity-100 group-focus-within/eng:opacity-100 hover:border-line-active hover:text-ink motion-reduce:transition-none touch:opacity-100`,_M=`mt-0 mr-1 mb-3 ml-7 flex flex-col gap-2.5 px-1.5 py-1`,vM=`m-0 grid grid-cols-[max-content_minmax(0,1fr)] gap-x-3.5 gap-y-1.5 text-meta leading-[1.5]`,yM=`text-subtle`,bM=e=>`m-0 wrap-anywhere ${e?`text-warning`:`text-ink`}`,xM=`flex items-center gap-2`,SM=`flex-1 px-2 py-1.25`,CM=`text-meta leading-[inherit] text-success`,wM=`flex items-center gap-3 py-2.5`,TM=`flex min-w-0 flex-1 flex-col gap-0.5`,EM=(e=!1)=>`overflow-hidden text-ellipsis text-meta text-muted ${e?`whitespace-normal`:`whitespace-nowrap`}`,DM=`flex flex-col gap-1 py-3`,OM=`flex items-baseline gap-3`,kM=`flex flex-col gap-2.5 pt-2`,AM=`grid grid-cols-[repeat(auto-fill,minmax(96px,1fr))] gap-2`,jM=`m-0 pb-1.5 text-meta font-medium text-subtle`,MM=e=>e?`border-accent bg-accent-soft`:`border-line hover:bg-hover`,NM=`flex h-9 overflow-hidden rounded-xs border-hairline`,PM=`flex w-2/5 flex-col gap-0.75 p-1`,FM=`flex min-w-0 flex-1 flex-col gap-0.75 p-1`,IM=`h-0.75 rounded-xs`,LM=`mt-auto flex gap-0.75`,RM=`size-1 rounded-xs`,zM=`flex min-w-0 items-baseline gap-1.5 font-sans text-meta`,BM=`group relative h-4.5 w-7.5 flex-none justify-self-center rounded-full border-hairline border-line bg-inset transition-[background,border-color] duration-120 ease-[ease] aria-checked:border-accent aria-checked:bg-accent motion-reduce:transition-none`,VM=`absolute top-0.5 left-0.5 size-3 rounded-full bg-muted transition-[transform,background] duration-120 ease-[ease] group-aria-checked:[transform:translateX(12px)] group-aria-checked:bg-paper motion-reduce:transition-none`;function HM({on:e,...t}){return(0,V.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,className:BM,...t,children:(0,V.jsx)(`span`,{className:VM})})}function UM(e){return(0,V.jsxs)(`section`,{className:Lj,children:[e.title&&(0,V.jsx)(`h2`,{className:`m-0 pb-1.5 font-sans text-meta font-medium normal-nums text-muted`,children:e.title}),e.hint&&(0,V.jsx)(`p`,{className:`m-0 pb-2 text-meta text-subtle`,children:e.hint}),(0,V.jsx)(`div`,{className:zj,children:e.children})]})}function WM(e){let t=(0,V.jsxs)(`div`,{className:Uj,children:[(0,V.jsx)(`span`,{id:e.labelId,className:Wj,children:e.label}),e.hint&&(0,V.jsx)(`span`,{className:`text-meta text-muted [&_a]:text-accent`,children:e.hint})]});return e.stack?(0,V.jsxs)(`div`,{className:Hj,children:[t,e.children]}):(0,V.jsxs)(`div`,{className:e.inline?Vj:Bj,children:[t,e.children&&(0,V.jsx)(`div`,{className:`flex min-w-0 flex-none items-center justify-end gap-2 w-narrow:justify-start`,children:e.children})]})}function GM(e){let t=(0,g.useId)();return(0,V.jsx)(WM,{label:e.label,hint:e.hint,labelId:t,inline:!0,children:(0,V.jsx)(HM,{on:e.checked,"aria-labelledby":t,disabled:e.disabled,onClick:()=>e.onChange(!e.checked)})})}var KM=36;function qM(e){let t=e.picks.length<=4&&e.picks.reduce((e,t)=>e+t.label.length,0)<=KM?Ej:Dj;return(0,V.jsx)(WM,{label:e.label,hint:e.hint,children:(0,V.jsx)(t,{label:e.label,value:e.value,picks:e.picks,onPick:e.onPick})})}function JM(e){return(0,V.jsx)(WM,{label:e.label,hint:e.note,children:(0,V.jsx)(`span`,{className:Kj,children:e.value})})}var YM=`flex items-baseline justify-between`,XM=`[&_b]:mr-2.5`,ZM=`my-2.5 flex flex-col`,QM=e=>`flex gap-3 rounded-sm px-2 py-1 text-left text-[length:var(--fs-body)] ${e?`bg-menu`:``}`,$M=`min-w-[14ch]`,eN=`whitespace-nowrap text-[length:var(--fs-meta)] text-warning`,tN=`rail-tight:hidden`,nN=`[&_h2]:mx-0 [&_h2]:mt-3.5 [&_h2]:mb-1 [&_h2]:text-[length:var(--fs-body)]`,rN=`max-h-[55vh] overflow-x-hidden overflow-y-auto`,iN=`mr-auto text-[length:var(--fs-meta)]`,aN=`text-[length:var(--fs-body)] leading-[1.55] wrap-anywhere [&_h3]:mx-0 [&_h3]:mt-3 [&_h3]:mb-1.5 [&_h3]:font-sans [&_h3]:text-meta [&_h3]:font-medium [&_h3]:normal-nums [&_h3]:text-muted [&_h3:first-child]:mt-0 [&_ul]:m-0 [&_ul]:pl-4.5 [&_li+li]:mt-2 [&_p]:mx-0 [&_p]:mt-0 [&_p]:mb-2 [&_a]:text-accent [&_a]:underline [&_a]:underline-offset-2 [&_code]:rounded-sm [&_code]:bg-inset [&_code]:px-1 [&_code]:py-0 [&_code]:font-mono [&_code]:text-meta [&_code]:font-normal [&_code]:normal-nums`,oN=`mt-3`,sN=e=>`rounded-sm px-2 py-1.25 ${e?`bg-menu`:``}`,cN=`flex items-baseline gap-2 text-[length:var(--fs-body)]`,lN=`flex items-baseline justify-between gap-2`,uN=`font-mono`,dN=`truncate`,fN=`mt-4 text-[length:var(--fs-meta)]`;function pN(e){return e.replace(/\[`[0-9a-f]{7,40}`\]\([^)]*\)\s*/g,``).replace(/\s+[—-]\s+\[@[^\]]+\]\([^)]*\)\s*$/,``).trim()}function mN(e){let t=[],n=(e,n)=>t.push({kind:e,text:n,id:t.length});for(let r of e.split(/\r?\n/)){let e=r.trimEnd();if(e.trim()===``)continue;let i=/^#{1,6}\s+(.*)$/.exec(e);if(i){n(`heading`,i[1]??``);continue}let a=/^\s*[-*]\s+(.*)$/.exec(e);if(a){n(`item`,a[1]??``);continue}let o=t.at(-1);o&&o.kind!==`heading`?o.text=`${o.text} ${e.trim()}`:n(`para`,e.trim())}return t.map(e=>e.kind===`item`?{...e,text:pN(e.text)}:e)}var hN=/\[([^\]]+)\]\((https?:\/\/[^)\s]+)\)|`([^`]+)`|\*\*([^*]+)\*\*/g;function gN(e){let t=[],n=0;for(let r of e.matchAll(hN)){let i=r.index??0;i>n&&t.push(e.slice(n,i));let[a,o,s,c,l]=r;o!==void 0&&s!==void 0?t.push((0,V.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,children:gN(o)},i)):c===void 0?l!==void 0&&t.push((0,V.jsx)(`b`,{children:l},i)):t.push((0,V.jsx)(`code`,{children:c},i)),n=i+a.length}return n<e.length&&t.push(e.slice(n)),t}function _N({body:e}){let t=mN(e),n=[],r=[],i=()=>{r.length>0&&n.push((0,V.jsx)(`ul`,{children:r},`ul-${n.length}`)),r=[]};for(let e of t){if(e.kind===`item`){r.push((0,V.jsx)(`li`,{children:gN(e.text)},e.id));continue}i(),n.push(e.kind===`heading`?(0,V.jsx)(`h3`,{children:e.text},e.id):(0,V.jsx)(`p`,{children:gN(e.text)},e.id))}return i(),(0,V.jsx)(`div`,{className:aN,children:n})}var vN=`page min-h-0 flex-1 rounded-md border-hairline border-line bg-paper px-4.5 py-3.5 focus:outline-none`,yN=`${vN} overflow-y-auto`,bN=`page-title mx-0 mt-0 mb-1.5 font-sans text-title font-bold normal-nums`,xN=`flex items-baseline justify-between gap-4 [&_.page-title]:m-0`,SN=e=>`min-w-0 truncate text-meta ${e?``:`leading-[inherit]`}`,CN=`flex flex-wrap items-center gap-2`,wN={row:`touch:after:-inset-x-0.75 touch:after:-inset-y-0.5`,kanban:`touch:after:-inset-x-0.75 touch:after:-top-1.5 touch:after:-bottom-1`,header:`touch:after:-inset-x-0.75 touch:after:-top-2.5 touch:after:-bottom-1.25`},TN=`mt-2.5 flex flex-col gap-1.5`,EN=e=>`flex cursor-pointer flex-col gap-0.5 rounded-sm px-2.5 py-1.5 ${e?`bg-menu`:``}`,DN=`flex min-w-0 items-baseline gap-2.5`,ON=`whitespace-nowrap text-muted`,kN=`flex gap-2.5 pl-[4ch] text-meta leading-[inherit] text-muted`,AN=`min-w-0 flex-1 truncate`,jN=`flex flex-col px-1.5 pb-2`,MN=`flex flex-col border-t-hairline border-t-line px-1.5 pt-0.5 pb-0.5`,NN=`relative flex flex-col`,PN=e=>`flex items-center rounded-sm px-2 py-0.75 text-left touch:min-h-10 ${e?`bg-menu text-ink`:`text-muted [&:hover]:bg-hover`}`,FN=`ml-auto -mr-[4.5px] w-5 text-center font-sans text-display leading-none font-normal text-accent normal-nums`,IN=`mr-[7px] size-3.5 flex-none fill-none stroke-current stroke-[1.75] [stroke-linecap:round] [stroke-linejoin:round]`,LN=_(null),RN=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),zN=e=>`https://github.com/Sma1lboy/rove/releases/tag/v${e}`;function BN(){return B()===`zh`?Gr:Wr}function VN(e,t){return e.request(`update.check`,{force:!0,locale:ke.get(),channel:t}).then(e=>(LN.set(e),!0),()=>!1)}function HN(){let e=BN(),t=v(LN),{prefs:n}=ty();return!n.updateNotify||!t?.info?.hasUpdate?null:(0,V.jsxs)(`button`,{type:`button`,className:`${rn} text-muted ${eN} ${Je}`,title:RN(e.chip,{version:t.info.latest}),onClick:()=>ka(`update`),children:[`↑`,(0,V.jsxs)(`span`,{className:tN,children:[` `,t.info.latest]})]})}function UN({client:e}){let t=BN(),n=v(LN),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(`release`),[s,c]=(0,g.useState)(null),l=(0,g.useRef)(null);(0,g.useEffect)(()=>{l.current?.focus(),VN(e).finally(()=>i(!0))},[e]);let u=n?.info??null,d=n?.current??``,f=u?.latest??d,p=u?.hasUpdate===!0,m=r&&u===null,h=r&&u!==null&&!p,_=n?.notes??[],y=_[0]?.url??(f?zN(f):null),b=[{id:`release`,key:`R`,label:t.actions.openRelease,detail:y??t.releaseUrlUnavailable},{id:`close`,key:`Q`,label:t.actions.close,detail:t.actions.closeDetail}],x=e=>{if(e===`close`)return hn.set(null);c(y&&window.open(y,`_blank`,`noopener`)!==null?t.statusReleaseOpened:t.statusReleaseError)};return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:l,onKeyDown:e=>{if(e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key.toLowerCase()===`c`&&!window.getSelection()?.toString())return e.preventDefault(),x(`close`);if(e.metaKey||e.ctrlKey||e.altKey)return;let t=b.findIndex(e=>e.id===a);if(e.key===`j`||e.key===`ArrowDown`)o(b[(t+1)%b.length]?.id??`close`);else if(e.key===`k`||e.key===`ArrowUp`)o(b[(t-1+b.length)%b.length]?.id??`close`);else if(e.key===`Enter`)x(a);else if(e.key===`r`)x(`release`);else if(e.key===`q`||e.key===`Escape`)x(`close`);else return;e.preventDefault()},children:[(0,V.jsxs)(`div`,{className:YM,children:[(0,V.jsx)(`h1`,{className:bN,children:t.pageTitle}),(0,V.jsx)(`button`,{type:`button`,className:`${an} mono`,onClick:()=>x(`close`),children:Oc()?z(`dialog.close`):t.closeHint})]}),(0,V.jsxs)(`p`,{className:`mono ${XM}`,children:[(0,V.jsx)(`span`,{className:`text-muted`,children:t.current}),` `,(0,V.jsxs)(`b`,{children:[`v`,d]}),` `,(0,V.jsx)(`span`,{className:`text-muted`,children:t.latest}),` `,m?(0,V.jsx)(`b`,{className:`text-muted`,children:t.latestUnknown}):r?(0,V.jsxs)(`b`,{className:p?`text-warning`:`text-success`,children:[`v`,f]}):(0,V.jsx)(`span`,{className:`text-muted`,children:`…`})]}),m&&(0,V.jsx)(`p`,{className:`text-muted`,children:t.registryRetry}),h&&(0,V.jsx)(`p`,{className:`text-success`,children:t.upToDate}),p&&(0,V.jsx)(`p`,{className:`mono text-muted`,children:`rove update`}),(0,V.jsx)(`div`,{className:ZM,children:b.map(e=>(0,V.jsxs)(`button`,{type:`button`,className:QM(a===e.id),onClick:()=>x(e.id),children:[(0,V.jsxs)(`span`,{className:`mono keys-only text-accent`,children:[`[`,e.key,`]`]}),(0,V.jsx)(`span`,{className:$M,children:e.label}),(0,V.jsx)(`span`,{className:`text-muted`,children:e.detail})]},e.id))}),s&&(0,V.jsx)(`p`,{className:`mono text-accent`,children:s}),p&&(0,V.jsx)(`p`,{className:`mono text-muted`,children:RN(t.changesSectionHeader,{from:d,to:f})}),!r&&(0,V.jsx)(`p`,{className:`text-muted`,children:t.loadingNotes}),r&&p&&_.length===0&&(0,V.jsx)(`p`,{className:`text-muted`,children:t.notesUnavailable}),_.map(e=>(0,V.jsxs)(`section`,{className:nN,children:[(0,V.jsxs)(`h2`,{className:`mono`,children:[`v`,e.version]}),(0,V.jsx)(_N,{body:e.body})]},e.version))]})}var WN=`rove.whatsNewSeenVersion`,GN=e=>e.split(/[.-]/).slice(0,3).map(Number),KN=(e,t)=>{let[n,r]=[GN(e),GN(t)];for(let e=0;e<3;e++)if((n[e]??0)!==(r[e]??0))return(n[e]??0)>(r[e]??0);return!1};function qN(e,t){let n=localStorage.getItem(WN);localStorage.setItem(WN,t),!(!n||!KN(t,n))&&e.request(`release.notes`,{version:t.replace(/-.*$/,``),locale:ke.get()}).then(e=>U.set((0,V.jsx)(JN,{from:n,to:t,notes:e.notes})),()=>U.set((0,V.jsx)(JN,{from:n,to:t,notes:null})))}function JN(e){let t=BN(),n=(0,g.useRef)(null);return(0,g.useEffect)(()=>n.current?.focus(),[]),(0,g.useEffect)(()=>{let e=e=>{e.key===`q`&&U.set(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,V.jsxs)(vr,{title:t.whatsNew.title,wide:!0,children:[(0,V.jsx)(`p`,{className:`text-muted`,children:RN(t.whatsNew.upgraded,{from:e.from,to:e.to})}),(0,V.jsx)(`div`,{className:rN,children:e.notes?(0,V.jsx)(_N,{body:e.notes.body}):(0,V.jsx)(`p`,{className:`text-muted`,children:t.whatsNew.notesUnavailable})}),(0,V.jsxs)(`div`,{className:cn,children:[(0,V.jsx)(`span`,{className:`mono text-muted ${iN} touch:hidden!`,children:z(`whatsNew.keys`)}),(0,V.jsx)(`a`,{className:an,href:e.notes?.url??zN(e.to),target:`_blank`,rel:`noopener noreferrer`,children:z(`whatsNew.openRelease`)}),(0,V.jsx)(`button`,{ref:n,type:`button`,className:Le(),onClick:()=>U.set(null),children:z(`whatsNew.continue`)})]})]})}var YN=(e,t)=>e.replace(`{version}`,t);function XN({client:e}){let t=BN(),n=v(LN),{prefs:r}=ty(),[i,a]=(0,g.useState)(`idle`),o=()=>{a(`checking`),VN(e,r.updateChannel).then(e=>a(e?`done`:`failed`))},s=t=>{a(`idle`),ey(e,`updateChannel`,t)},c=n?.info??null,l=i===`failed`||i===`done`&&c===null,u=i===`done`&&n&&c?c.hasUpdate?YN(t.available,c.latest):t.upToDate:l?t.latestUnknown:void 0,d=l?`text-muted`:c?.hasUpdate?`text-warning`:`text-success`;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(qM,{label:$(`general.updateChannelTitle`),hint:$(`general.updatesHint`),value:r.updateChannel,picks:mj.map(e=>({value:e,label:$(`general.updateChannelName.${e}`)})),onPick:s}),(0,V.jsx)(GM,{label:$(`general.updateNotify`),hint:$(`general.updateNotifyHint`),checked:r.updateNotify,onChange:t=>void ey(e,`updateNotify`,t)}),(0,V.jsxs)(WM,{label:$(`general.updates`),hint:$(`general.updateCheckHint`),children:[i===`done`&&c?.hasUpdate&&(0,V.jsx)(H,{variant:`action`,onClick:()=>ka(`update`),children:$(`general.updateOpenPage`)}),(0,V.jsx)(H,{variant:`action`,disabled:i===`checking`,onClick:o,children:$(i===`checking`?`general.updateChecking`:`general.updateCheckButton`)})]}),u&&(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:d,children:u}),hint:c?.hasUpdate?(0,V.jsx)(`code`,{className:`font-mono`,children:`rove update`}):void 0,children:i===`done`&&n&&c&&(0,V.jsx)(`span`,{className:`max-w-90 min-w-0 truncate font-mono text-meta text-muted [overflow-wrap:anywhere]`,title:`${t.latest} v${c.latest}`,children:`${t.current} v${n.current} · ${t.latest} v${c.latest}`})})]})}function ZN({client:e}){let[t,n]=(0,g.useState)(()=>q(e,`daemon.info`)??null);return(0,g.useEffect)(()=>{sl(e,`daemon.info`).then(n,()=>n(null))},[e]),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(UM,{title:z(`settings.about.groupRove`),children:[t?.daemonVersion&&(0,V.jsx)(WM,{label:z(`settings.about.daemon`),hint:z(t.stale?`settings.about.daemonStale`:`settings.about.daemonCurrent`,{version:t.daemonVersion})}),(0,V.jsx)(XN,{client:e})]}),(0,V.jsx)(UM,{title:z(`settings.about.browser`),children:(0,V.jsx)(WM,{label:z(`settings.about.signOut`),hint:z(`settings.about.browserHint`),children:(0,V.jsx)(H,{variant:`action`,onClick:()=>void Ua().then(()=>window.location.reload()),children:z(`settings.about.signOut`)})})})]})}var QN=_(null);function $N({theme:e,mode:t}){let n=e[t],r=(e,t)=>({background:e,width:t});return(0,V.jsxs)(`span`,{className:NM,style:{background:n.background,borderColor:n.border},"aria-hidden":!0,children:[(0,V.jsxs)(`span`,{className:PM,style:{background:n.backgroundPanel},children:[(0,V.jsx)(`span`,{className:IM,style:r(n.primary,`70%`)}),(0,V.jsx)(`span`,{className:IM,style:r(n.textMuted,`85%`)}),(0,V.jsx)(`span`,{className:IM,style:r(n.textMuted,`55%`)})]}),(0,V.jsxs)(`span`,{className:FM,children:[(0,V.jsx)(`span`,{className:IM,style:r(n.text,`90%`)}),(0,V.jsx)(`span`,{className:IM,style:r(n.textMuted,`65%`)}),(0,V.jsx)(`span`,{className:IM,style:r(n.accent??n.primary,`40%`)}),(0,V.jsx)(`span`,{className:LM,children:[n.success,n.warning,n.error,n.info].map((e,t)=>(0,V.jsx)(`span`,{className:RM,style:{background:e}},t))})]})]})}function eP(e){return(0,V.jsxs)(H,{variant:`card`,"aria-pressed":e.active,className:MM(e.active),onMouseEnter:()=>Kv.set(e.theme),onFocus:()=>Kv.set(e.theme),onClick:e.onClick,children:[(0,V.jsx)($N,{theme:e.theme,mode:e.mode}),(0,V.jsxs)(`span`,{className:zM,children:[(0,V.jsx)(`span`,{className:`truncate text-ink`,children:e.theme.name}),e.tag&&(0,V.jsx)(`span`,{className:`text-subtle`,children:e.tag})]})]})}function tP({children:e}){return(0,V.jsx)(`div`,{className:AM,onMouseLeave:()=>Kv.set(null),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||Kv.set(null)},children:e})}function nP(e){let{model:t}=e,{client:n}=t,r=v(QN),[i,a]=(0,g.useState)(null),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)(!1),[u,d]=(0,g.useState)(!1);(0,g.useEffect)(()=>()=>Kv.set(null),[]),(0,g.useEffect)(()=>void $v(n).catch(()=>void 0),[n]),(0,g.useEffect)(()=>{QN.get()===null&&n.request(`theme.hosted`).then(e=>QN.set(e),()=>QN.set({themes:[],dir:null}))},[n]);let f=e=>{l(!1),$A(t,z(`prefs.themeAgentPrompt`,{dir:e})).catch(()=>l(!0))},p=r?.dir??null,m=async e=>{a(e),s(null);try{await n.request(`theme.install`,{name:e}),await $v(n),await ey(n,`theme`,e)}catch{s(e)}finally{a(null)}},h=new Set(e.themes.map(e=>e.name)),_=(r?.themes??[]).filter(e=>!h.has(e.name));return(0,V.jsxs)(WM,{label:e.label,hint:z(`prefs.themePreviewHint`),stack:!0,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:jM,children:z(`prefs.themeInstalled`)}),(0,V.jsx)(tP,{children:e.themes.map(t=>(0,V.jsx)(eP,{theme:t,mode:e.mode,active:t.name===e.value,tag:t.bundled?void 0:z(`prefs.themeUser`),onClick:()=>t.name!==e.value&&void ey(n,`theme`,t.name)},t.name))})]}),_.length>0&&(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(H,{className:`inline-flex items-center gap-1.5`,"aria-expanded":u,onClick:()=>d(!u),children:[(0,V.jsx)(Ka,{right:!u}),u?z(`prefs.themeHide`):z(`prefs.themeBrowse`,{count:_.length})]}),u&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`m-0 pb-1.5 text-meta font-medium text-subtle mt-2.5`,children:z(`prefs.themeMoreHint`)}),(0,V.jsx)(tP,{children:_.map(t=>(0,V.jsx)(eP,{theme:t,mode:e.mode,active:!1,tag:i===t.name?z(`prefs.themeInstalling`):o===t.name?z(`prefs.themeInstallFailed`):z(`prefs.themeGet`),onClick:()=>i===null&&void m(t.name)},t.name))})]})]}),p&&(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2.5`,children:[(0,V.jsx)(H,{variant:`action`,onClick:()=>f(p),children:z(`prefs.themeAgent`)}),(0,V.jsx)(`span`,{className:`text-meta text-muted [&_a]:text-accent`,children:z(c?`prefs.themeAgentFailed`:`prefs.themeAgentHint`)})]})]})}var rP=_({}),iP=``,aP=`(prefers-color-scheme: dark)`;function oP(e){let t=window.matchMedia(aP);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function sP(){return(0,g.useSyncExternalStore)(oP,()=>window.matchMedia(aP).matches)}function cP(){let e=sP();return Pv(ty().prefs.themeMode,e)}function lP(e){let t=cP(),n=ty();(0,g.useEffect)(()=>{if(!n.loaded||n.prefs.taskColors!==`on`)return;let r=`${n.prefs.theme}/${t}`;r!==iP&&(iP=r,rP.set({}));let i=()=>{let i=rP.get(),a=e.tasks.get(),o=[...a?.tasks??[],...a?.archived??[]].map(e=>e.id).filter(e=>!(e in i));o.length!==0&&e.client.request(`theme.taskColors`,{theme:n.prefs.theme,mode:t,taskIds:o}).then(e=>{iP===r&&rP.set({...rP.get(),...e.colors})}).catch(()=>void 0)};return i(),e.tasks.subscribe(i)},[e,t,n.loaded,n.prefs.taskColors,n.prefs.theme])}function uP(e){let t=ty(),n=v(rP);return e&&t.prefs.taskColors===`on`?n[e]:void 0}var dP={themeMode:{dark:`appearance.modeDark`,light:`appearance.modeLight`,auto:`appearance.modeAuto`},focusAccent:{primary:`general.accentPrimary`,success:`general.accentSuccess`,info:`general.accentInfo`},splitStyle:{box:`general.splitBox`,line:`general.splitLine`,rail:`general.splitRail`,rule:`general.splitRule`},railFold:{glyphs:`general.railFoldGlyphs`,initials:`general.railFoldInitials`,hairline:`general.railFoldHairline`},workingBorder:{flow:`appearance.borderFlow`,still:`appearance.borderStill`},glyphSet:{braille:`appearance.glyphsBraille`,starburst:`appearance.glyphsStarburst`,ascii:`appearance.glyphsAscii`},runningTitle:{shimmer:`appearance.titleShimmer`,still:`appearance.titleStill`}};function fP({model:e}){let{client:t}=e,n=ty(),r=cP(),i=v(rD),a=(e,n)=>void ey(t,e,n),o=(e,t,r)=>(0,V.jsx)(qM,{label:$(t),hint:r,value:n.prefs[e],picks:ny(n,e).map(t=>({value:t,label:e===`themeMode`&&t===`auto`?z(`prefs.modeAuto`):$(dP[e]?.[String(t)]??String(t))})),onPick:t=>a(e,t)}),s=(e,t,r)=>(0,V.jsx)(GM,{label:$(t),hint:r,checked:e===`transparent`?n.prefs.transparent:n.prefs[e]===`on`,onChange:t=>a(e,e===`transparent`?t:t?`on`:`off`)});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(UM,{children:[(0,V.jsx)(nP,{model:e,label:$(`general.theme`),themes:n.themes,value:n.prefs.theme,mode:r}),o(`themeMode`,`general.themeMode`)]}),(0,V.jsxs)(UM,{title:z(`settings.appearance.groupColours`),children:[o(`focusAccent`,`general.focusAccent`,$(`general.focusAccentHint`)),s(`taskColors`,`general.taskColors`,z(`settings.appearance.taskColorsNote`)),s(`colorblind`,`general.colorblind`,z(`settings.appearance.colorblindNote`))]}),(0,V.jsxs)(UM,{title:z(`settings.appearance.groupTasks`),children:[o(`workingBorder`,`general.workingBorder`,z(`settings.appearance.workingBorderNote`)),o(`runningTitle`,`general.runningTitle`),o(`glyphSet`,`general.glyphSet`),o(`railFold`,`general.railFold`,$(`general.railFoldHint`)),(0,V.jsx)(qM,{label:z(`settings.appearance.railGroup`),value:i,picks:tD.map(e=>({value:e,label:z(e===`state`?`settings.appearance.railGroupState`:`settings.appearance.railGroupProject`)})),onPick:iD})]}),(0,V.jsxs)(UM,{title:z(`settings.appearance.groupTerminal`),hint:z(`prefs.terminalOnly`),children:[s(`transparent`,`general.transparent`),o(`splitStyle`,`general.splitStyle`)]})]})}function pP(e,t,n){if(t===`offline`)return`offline`;if(t===`unsupported`||t===`mismatch`)return`outdated`;if(!e)return`loading`;let r=e.status;return r?r.gh?r.account?r.account===n?`same`:`different`:`signedOut`:`noGh`:e.reason===`failed`||!e.reason?`failed`:e.reason}var mP=2e3,hP=e=>e?.login?.state===`pending`||e?.login?.state===`syncing`;function gP(e){let{client:t}=e,n=VD(e),[r,i]=(0,g.useState)({}),a=n.flatMap(e=>e.state===`online`?[e.alias]:[]).join(`
|
|
120
|
+
`),o=(0,g.useMemo)(()=>a?a.split(`
|
|
121
|
+
`):[],[a]),s=(0,g.useRef)(new Set),c=(0,g.useCallback)(async e=>{let n=e===``?{}:{machine:e},r=await t.request(`github.status`,n).catch(e=>({status:null,reason:`failed`,message:G(e)}));i(t=>({...t,[e]:r}))},[t]),l=(0,g.useCallback)(()=>Promise.all([``,...o].map(c)).then(()=>{}),[c,o]);return(0,g.useEffect)(()=>{l()},[l]),(0,g.useEffect)(()=>{let e=new Set(Object.entries(r).flatMap(([e,t])=>hP(t.status)?[e]:[])),t=[...s.current].some(t=>!e.has(t));if(s.current=e,t&&l(),e.size===0)return;let n=window.setTimeout(()=>{for(let t of e)c(t)},mP);return()=>window.clearTimeout(n)},[r,c,l]),{machines:n,probes:r,refresh:l,probe:c,act:(0,g.useCallback)(async(e,n)=>{try{let r=await t.request(e,n);return r.ok||W(r.message,`error`),r}catch(e){return W(G(e),`error`),null}},[t])}}var _P={same:`markSame`,different:`markDifferent`,signedOut:`markSignedOut`,noGh:`markNoGh`,outdated:`markOutdated`,offline:`markOffline`,denied:`markDenied`,failed:`markFailed`},vP=(e,t)=>z(`settings.connectors.${e}`,t),yP={same:`text-diff-added`,signedOut:`text-diff-removed`,failed:`text-diff-removed`,denied:`text-diff-removed`,different:`text-warning`,outdated:`text-warning`,offline:`text-muted`,noGh:`text-muted`,loading:`text-muted`};function bP(e,t){return e===`loading`?vP(`loading`):vP(_P[e],{login:t?.account??``})}function xP(e){if(!e?.gh)return``;let t=e.ssh.ok?`✓ ${e.ssh.user??``}`.trim():`✗`;return vP(`detail`,{protocol:e.protocol??`—`,ssh:t})}function SP(){return(0,V.jsx)(`svg`,{className:`flex-none`,viewBox:`0 0 16 16`,width:`22`,height:`22`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{fill:`currentColor`,d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z`})})}function CP(e){navigator.clipboard.writeText(e).then(()=>W(vP(`codeCopied`)),()=>{})}function wP({login:e,onCancel:t}){return e.state===`failed`?(0,V.jsxs)(`div`,{className:eM,children:[(0,V.jsx)(`span`,{className:`text-muted`,children:vP(`loginFailed`,{error:e.error??``})}),(0,V.jsx)(H,{className:`ml-auto`,onClick:t,children:vP(`dismiss`)})]}):e.state===`syncing`?(0,V.jsx)(`div`,{className:eM,children:(0,V.jsx)(`span`,{className:`text-muted`,children:vP(`syncing`)})}):(0,V.jsxs)(`div`,{className:eM,children:[e.code?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`font-mono font-normal normal-nums rounded-sm border-hairline border-dashed border-line px-2 py-0.5 text-display tracking-code`,title:vP(`codeHint`),onClick:()=>CP(e.code??``),children:e.code}),(0,V.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,children:vP(`openGithub`)})]}):(0,V.jsx)(`span`,{className:`text-muted`,children:vP(`loading`)}),(0,V.jsx)(H,{className:`ml-auto`,onClick:t,children:z(`dialog.cancel`)})]})}function TP(e){let t=pP(e.probe,e.machine,e.rove),n=e.probe?.status??null,r=hP(n),i=t===`different`||t===`signedOut`,a=n?.login;return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:wM,children:[(0,V.jsxs)(`div`,{className:TM,children:[(0,V.jsx)(`span`,{className:Wj,children:e.name}),(0,V.jsx)(`span`,{className:EM(),title:[n?.authDetail,n?.ssh.detail].filter(Boolean).join(`, `)||void 0,children:xP(n)})]}),(0,V.jsx)(`span`,{className:`whitespace-nowrap text-meta ${yP[t]}`,title:e.probe?.message,children:bP(t,n)}),e.onSync&&i&&e.rove&&!r&&(0,V.jsx)(H,{variant:`action`,disabled:e.busy,onClick:e.onSync,children:vP(`useRove`)}),e.onLogin&&i&&!r&&(0,V.jsx)(H,{variant:`action`,disabled:e.busy,onClick:e.onLogin,children:vP(`loginThere`)})]}),a&&(0,V.jsx)(`div`,{className:`pb-3`,children:(0,V.jsx)(wP,{login:a,onCancel:e.onCancel})})]})}function EP({model:e}){let{machines:t,probes:n,refresh:r,probe:i,act:a}=gP(e),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)(!1),u=n[``],d=u?.status?.account??null,f=hP(u?.status),p=async(e,t)=>{s(e);try{await t()}finally{s(null)}},m=e=>p(e,async()=>{await a(`github.login`,e===``?{}:{machine:e}),await i(e)}),h=e=>p(e,async()=>{await a(`github.login`,e===``?{cancel:!0}:{machine:e,cancel:!0}),await i(e)}),_=e=>p(e,async()=>{(await a(`github.sync`,{machine:e}))?.ok&&W(vP(`synced`,{machine:e,login:d??``})),await i(e)}),v=()=>p(``,async()=>{(await a(`github.logout`,{}))?.ok&&l(!1),await r()});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(UM,{children:(0,V.jsxs)(`div`,{children:[(0,V.jsx)(WM,{label:(0,V.jsxs)(`span`,{className:`flex items-center gap-2.5`,children:[(0,V.jsx)(SP,{}),`GitHub`]}),hint:vP(`githubDescription`),children:d?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`span`,{className:Kj,children:[`@`,d]}),(0,V.jsx)(H,{variant:`action`,disabled:o!==null,onClick:()=>l(!0),children:vP(`disconnect`)})]}):!f&&(0,V.jsx)(H,{variant:`filled`,disabled:o!==null||!u,onClick:()=>void m(``),children:vP(`connect`)})}),c&&(0,V.jsx)(`div`,{className:`pb-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-sm border-hairline border-line bg-inset px-3 py-2.5 [&_p]:m-0 [&_p]:text-meta [&_p]:text-muted`,children:[(0,V.jsx)(`p`,{children:vP(`disconnectBody`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2.5`,children:[(0,V.jsx)(H,{onClick:()=>l(!1),children:z(`dialog.cancel`)}),(0,V.jsx)(H,{variant:`danger`,disabled:o!==null,onClick:()=>void v(),children:vP(`disconnect`)})]})]})}),!d&&u?.status?.login&&(0,V.jsx)(`div`,{className:`pb-3`,children:(0,V.jsx)(wP,{login:u.status.login,onCancel:()=>void h(``)})})]})}),d&&(0,V.jsxs)(UM,{title:vP(`machines`),children:[(0,V.jsx)(TP,{name:vP(`thisMachine`),probe:u,machine:null,rove:d,busy:o!==null,onCancel:()=>void h(``)}),t.map(e=>(0,V.jsx)(TP,{name:e.alias,probe:n[e.alias],machine:e.state,rove:d,busy:o!==null,onSync:()=>void _(e.alias),onLogin:()=>void m(e.alias),onCancel:()=>void h(e.alias)},e.alias)),(0,V.jsx)(`div`,{className:`py-2.5`,children:(0,V.jsx)(H,{onClick:()=>void r(),children:vP(`refresh`)})})]})]})}function DP({model:e}){return(0,V.jsx)(EP,{model:e})}var OP=[{key:`remoteProjects`,label:`dev.remote`,hint:`dev.remoteHint`},{key:`autoStatus`,label:`dev.autoStatus`,hint:`dev.autoStatusHint`},{key:`dispatcher`,label:`dev.dispatcher`,hint:`dev.dispatcherHint`}];function kP({client:e}){let{prefs:t}=ty(),[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(!1),o=async()=>{if(n){a(!0);try{if(n===`reset`){await e.request(`dev.reset`),localStorage.removeItem(`rove.prefs`),window.location.reload();return}await e.request(`daemon.restart`),W($(`restart.done`)),r(null)}catch(e){W(G(e),`error`)}finally{a(!1)}}},s=(e,t,a,s,c)=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(WM,{label:t,hint:a,children:(0,V.jsx)(H,{variant:`action`,onClick:()=>r(e),children:s})}),n===e&&(0,V.jsx)(`div`,{className:`pb-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-sm border-hairline border-line bg-inset px-3 py-2.5 [&_p]:m-0 [&_p]:text-meta [&_p]:text-muted`,children:[(0,V.jsx)(`strong`,{children:$(`${e}.title`)}),(0,V.jsx)(`p`,{children:z(e===`reset`?`prefs.resetBody`:`prefs.restartBody`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2.5`,children:[(0,V.jsx)(H,{onClick:()=>r(null),children:z(`dialog.cancel`)}),(0,V.jsx)(H,{variant:c?`danger`:`filled`,disabled:i,onClick:()=>void o(),children:s})]})]})})]});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(UM,{title:$(`dev.experimental`),children:OP.map(n=>(0,V.jsx)(GM,{label:$(n.label),hint:$(n.hint),checked:t[n.key],onChange:t=>void ey(e,n.key,t)},n.key))}),(0,V.jsxs)(UM,{hint:$(`dev.doctorHint`),children:[s(`restart`,$(`dev.restart`),z(`prefs.restartHint`),z(`prefs.restartButton`),!1),s(`reset`,$(`dev.reset`),z(`prefs.resetHint`),z(`prefs.resetButton`),!0)]})]})}function AP(e){return e.binaryFound===void 0?{key:`settings.engines.status.checking`,tone:`unknown`}:e.binaryFound===null?{key:`settings.engines.status.unknown`,tone:`unknown`}:e.binaryFound?e.configIssue?{key:`settings.engines.status.integrationBlocked`,tone:`error`}:e.login===`no`?{key:`settings.engines.status.signIn`,tone:`attention`}:e.hooks===`outdated`?{key:`settings.engines.status.integrationOutdated`,tone:`attention`}:e.hooks===`not-installed`?{key:`settings.engines.status.integrationMissing`,tone:`attention`}:{key:`settings.engines.status.ready`,tone:`ready`}:e.commandChosen?{key:`settings.engines.status.notOnPath`,tone:`attention`}:{key:`settings.engines.status.notInstalled`,tone:`absent`}}var jP=_([]),MP=3e4;function NP(e){return e.request(`skill.missing`).then(e=>jP.set(e.engines),()=>{})}function PP(e){(0,g.useEffect)(()=>{let t=e.onOpen(()=>void NP(e)),n=window.setInterval(()=>void NP(e),MP);return()=>{t(),window.clearInterval(n)}},[e])}function FP(e){return e.request(`skill.install`).then(e=>{e.error&&W($(`engines.skill.failed`,{reason:e.error}),`error`)}).catch(e=>W(G(e),`error`)).then(()=>NP(e))}function IP(e){return AP({binaryFound:e.binaryFound,login:e.login,hooks:e.hooks,configIssue:e.configIssue,commandChosen:e.custom||e.customized})}var LP={ready:`ready`,attention:`attention`,error:`error`,absent:`absent`,unknown:`absent`};function RP({client:e}){let[t,n]=(0,g.useState)(()=>q(e,`engines.settings`)?.engines??null),[r,i]=(0,g.useState)(null),a=(0,g.useCallback)(()=>sl(e,`engines.settings`).then(e=>n(e.engines),e=>W(G(e),`error`)),[e]);(0,g.useEffect)(()=>{a()},[a]);let o=(t,n={})=>void e.request(t,n).then(a).catch(e=>W(G(e),`error`));return t?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`p`,{className:Rj,children:$(`engines.hint`)}),(0,V.jsxs)(`div`,{className:nM,children:[(0,V.jsxs)(`div`,{className:rM,"aria-hidden":`true`,children:[(0,V.jsx)(`span`,{}),(0,V.jsx)(`span`,{children:$(`engines.defaultMark`)}),(0,V.jsx)(`span`,{children:$(`engines.available`)})]}),t.map(e=>(0,V.jsx)(zP,{engine:e,open:r===e.id,onToggleOpen:()=>i(r===e.id?null:e.id),run:o},e.id))]})]}),(0,V.jsx)(HP,{engines:t,run:o}),(0,V.jsx)(UP,{engines:t,client:e,reload:a})]}):(0,V.jsx)(`p`,{className:qj,children:z(`preview.loading`)})}function zP(e){let{engine:t,run:n}=e,r=(0,g.useId)(),i=IP(t);return(0,V.jsxs)(`div`,{className:iM,children:[(0,V.jsxs)(`div`,{className:aM,children:[(0,V.jsxs)(`button`,{type:`button`,className:oM,"aria-expanded":e.open,"aria-controls":r,onClick:e.onToggleOpen,children:[(0,V.jsx)(Ka,{right:!e.open,className:sM(e.open)}),(0,V.jsxs)(`span`,{className:cM,children:[(0,V.jsxs)(`span`,{className:lM(!t.enabled),children:[t.name,t.renamedFrom?(0,V.jsx)(`span`,{className:uM,children:t.renamedFrom}):null,t.custom&&!t.renamedFrom?(0,V.jsx)(`span`,{className:uM,children:$(`engines.customTag`)}):null]}),(0,V.jsxs)(`span`,{className:fM(LP[i.tone]),children:[(0,V.jsx)(`span`,{className:pM(LP[i.tone]),"aria-hidden":`true`}),$(i.key.slice(9))]})]})]}),(0,V.jsx)(`div`,{className:mM,children:t.isDefault?(0,V.jsx)(`span`,{className:hM,children:$(`engines.defaultMark`)}):t.canBeDefault?(0,V.jsx)(`button`,{type:`button`,className:gM,"aria-label":z(`settings.engines.default`,{name:t.name}),onClick:()=>n(`engine.setDefault`,{id:t.id}),children:$(`engines.makeDefault`)}):null}),(0,V.jsx)(HM,{on:t.enabled,"aria-label":z(`settings.engines.enabled`,{name:t.name}),onClick:()=>n(`engine.setEnabled`,{id:t.id,enabled:!t.enabled})})]}),e.open?(0,V.jsx)(VP,{id:r,engine:t,run:n}):null]})}function BP(e){if(e.configIssue)return $(`engines.detail.hooksBlockedHere`,{reason:e.configIssue});switch(e.hooks){case`installed`:return $(`engines.detail.hooksInstalled`);case`outdated`:return $(`engines.detail.hooksOutdated`);case`not-installed`:return e.binaryFound===!1?$(`engines.detail.hooksAwaitEngine`):$(`engines.detail.hooksMissing`);default:return $(`engines.detail.hooksUnsupported`)}}function VP(e){let{engine:t,run:n}=e,[r,i]=(0,g.useState)(null),a=t.binaryFound===!0?$(`engines.detail.programFound`,{binary:t.binary,path:t.binaryPath??t.binary}):t.binaryFound===!1?$(`engines.detail.programMissing`,{binary:t.binary}):$(`engines.detail.programUnknown`,{binary:t.binary}),o=t.login===`yes`?$(`engines.detail.signedIn`):t.login===`no`?$(`engines.detail.signedOut`):$(`engines.detail.signInUnknown`),s=[BP(t),$(t.markers?`engines.detail.markersYes`:`engines.detail.markersNo`),$(t.screen?`engines.detail.screenYes`:t.hooks===`installed`?`engines.detail.screenNotNeeded`:`engines.detail.screenNo`)];return(0,V.jsxs)(`div`,{id:e.id,className:_M,children:[(0,V.jsxs)(`dl`,{className:vM,children:[(0,V.jsx)(`dt`,{className:yM,children:$(`engines.detail.program`)}),(0,V.jsx)(`dd`,{className:bM(t.binaryFound===!1),children:a}),(0,V.jsx)(`dt`,{className:yM,children:$(`engines.detail.signIn`)}),(0,V.jsx)(`dd`,{className:bM(t.login===`no`),children:o}),(0,V.jsx)(`dt`,{className:yM,children:$(`engines.detail.reporting`)}),(0,V.jsx)(`dd`,{className:bM(!1),children:s.map(e=>(0,V.jsx)(`span`,{className:`block`,children:e},e))}),t.skill===`unsupported`?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`dt`,{className:yM,children:$(`engines.detail.skill`)}),(0,V.jsx)(`dd`,{className:bM(t.skill!==`installed`),children:$(t.skill===`installed`?`engines.detail.skillInstalledHere`:t.skill===`outdated`?`engines.detail.skillOutdated`:`engines.detail.skillMissing`)})]}),t.custom?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`dt`,{className:yM,children:$(`engines.detail.adapter`)}),(0,V.jsx)(`dd`,{className:bM(!1),children:t.protocol?$(`engines.detail.adapterDeclared`,{protocol:t.protocol}):$(`engines.detail.adapterGeneric`)})]}):null]}),r===null?(0,V.jsxs)(`div`,{className:xM,children:[(0,V.jsx)(H,{variant:`action`,onClick:()=>i(t.name),children:z(`settings.engines.rename`)}),t.custom||t.customized?(0,V.jsx)(H,{variant:`action`,onClick:()=>n(`engine.reset`,{id:t.id}),children:t.custom?z(`settings.engines.remove`):z(`settings.engines.reset`)}):null]}):(0,V.jsxs)(`form`,{className:xM,onSubmit:e=>{e.preventDefault(),n(`engine.rename`,{id:t.id,name:r}),i(null)},children:[(0,V.jsx)(`input`,{className:`${on} w-full ${SM}`,autoFocus:!0,value:r,"aria-label":z(`settings.engines.rename`),placeholder:z(`settings.engines.namePlaceholder`),onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),i(null))}}),(0,V.jsx)(H,{variant:`filled`,type:`submit`,children:z(`settings.engines.save`)}),(0,V.jsx)(H,{variant:`action`,onClick:()=>i(null),children:z(`settings.engines.cancel`)})]})]})}function HP({engines:e,run:t}){let n=e.filter(e=>e.hooks!==`unsupported`),r=n.filter(e=>e.binaryFound!==!1),i=r.filter(e=>e.hooks===`installed`).length,a=r.length-i,o=n.filter(e=>e.hooks!==`not-installed`).length;return n.length===0?null:(0,V.jsx)(UM,{title:$(`engines.integrations.title`),hint:$(`engines.integrations.hint`),children:(0,V.jsx)(WM,{label:$(`engines.integrations.summary`,{installed:i,total:r.length}),children:(0,V.jsxs)(`div`,{className:$j,children:[a>0?(0,V.jsx)(H,{variant:`filled`,onClick:()=>t(`engines.hooks.install`),children:$(`engines.integrations.install`,{count:a})}):(0,V.jsx)(`span`,{className:CM,children:$(`engines.integrations.upToDate`)}),o>0?(0,V.jsx)(H,{variant:`action`,onClick:()=>t(`engines.hooks.uninstall`),children:$(`engines.integrations.remove`,{count:o})}):null]})})})}function UP(e){let t=e.engines.filter(e=>e.skill!==`unsupported`),n=t.filter(e=>e.skill===`installed`).length,r=t.length-n;return(0,V.jsx)(UM,{title:$(`engines.skill.title`),hint:$(`engines.skill.hint`),children:(0,V.jsx)(WM,{label:t.length>0?$(`engines.integrations.summary`,{installed:n,total:t.length}):$(`engines.skill.noEngines`),children:r>0?(0,V.jsx)(H,{variant:`filled`,onClick:()=>void FP(e.client).then(e.reload),children:$(`engines.skill.install`,{count:r})}):t.length>0?(0,V.jsx)(`span`,{className:CM,children:$(`engines.integrations.upToDate`)}):null})})}var WP={bug:`settings.feedback.kindBug`,idea:`settings.feedback.kindIdea`,question:`settings.feedback.kindQuestion`};function GP({model:e}){let[t,n]=(0,g.useState)(`bug`),[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(!1),[l,u]=(0,g.useState)(null),[d,f]=(0,g.useState)(!1);return(0,V.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:n=>{n.preventDefault(),!(!r.trim()||!a.trim())&&(c(!0),u(null),e.client.request(`feedback.send`,{title:r.trim(),body:a,kind:t}).then(e=>{u(e),e.filed&&(i(``),o(``))}).catch(e=>W(G(e),`error`)).finally(()=>c(!1)))},children:[(0,V.jsx)(`p`,{className:`m-0 ${Gj}`,children:z(`settings.feedback.hint`)}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,V.jsx)(`div`,{className:$j,children:(0,V.jsx)(H,{variant:`action`,type:`button`,onClick:()=>{f(!1),ej(e).catch(()=>f(!0))},children:z(`settings.feedback.report`)})}),(0,V.jsx)(`p`,{className:`m-0 ${Gj}`,children:z(d?`settings.feedback.reportFailed`:`settings.feedback.reportNote`)})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`settings.feedback.kindLabel`)}),(0,V.jsx)(`select`,{className:`${Jj} w-full`,value:t,onChange:e=>n(e.target.value),children:Object.keys(WP).map(e=>(0,V.jsx)(`option`,{value:e,children:z(WP[e])},e))})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`settings.feedback.titleLabel`)}),(0,V.jsx)(`input`,{className:`${Jj} w-full`,value:r,onChange:e=>i(e.target.value)})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`settings.feedback.body`)}),(0,V.jsx)(`textarea`,{className:`${Jj} ${Qj} w-full`,rows:6,value:a,onChange:e=>o(e.target.value)})]}),l&&(0,V.jsxs)(`p`,{className:`m-0 text-meta text-muted [&_a]:text-accent break-words`,children:[l.filed?z(`settings.feedback.sent`,{number:l.number??0}):z(`settings.feedback.notFiled`,{hint:l.hint??``}),` `,(0,V.jsx)(`a`,{className:`underline`,href:l.url,target:`_blank`,rel:`noreferrer`,children:l.filed?l.url:z(`settings.feedback.openLink`)})]}),(0,V.jsx)(`div`,{className:$j,children:(0,V.jsx)(H,{variant:`filled`,type:`submit`,disabled:s||!r.trim()||!a.trim(),children:z(`settings.feedback.send`)})})]})}var KP=[{value:`en`,label:`English`},{value:`zh`,label:`中文`}],qP={default:`general.worktreeKindDefault`,nextToProject:`general.worktreeKindNext`,custom:`general.worktreeKindCustom`};function JP({model:e}){let{client:t}=e,n=ty(),{prefs:r,info:i}=n,a=(e,n)=>void ey(t,e,n),o=[`default`,`nextToProject`];(i.worktreeCustomPath||r.worktreeBase===`custom`)&&o.push(`custom`);let s=o.map(e=>({value:e,label:$(qP[e])}));return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(UM,{title:z(`settings.general.groupInterface`),children:[(0,V.jsx)(qM,{label:$(`general.language`),hint:z(`prefs.languageHint`),value:r.locale,picks:KP,onPick:e=>a(`locale`,e)}),(0,V.jsx)(GM,{label:$(`general.keyHintsShow`),hint:$(`general.keyHintsHint`),checked:r.keyHints,onChange:e=>a(`keyHints`,e)}),(0,V.jsx)(GM,{label:$(`general.zenDefaultOn`),hint:z(`prefs.zenHint`),checked:r.zen,onChange:e=>a(`zen`,e)}),(0,V.jsx)(qM,{label:z(`settings.general.tabStrip`),value:r.tabStrip,picks:ny(n,`tabStrip`).map(e=>({value:e,label:$(`general.tabStripMode.${e}`)})),onPick:e=>a(`tabStrip`,e)})]}),(0,V.jsxs)(UM,{title:z(`settings.general.groupFiles`),children:[(0,V.jsx)(qM,{label:$(`general.editor`),hint:z(`settings.general.editorNote`),value:r.editorKind,picks:ny(n,`editorKind`).map(e=>({value:e,label:e})),onPick:e=>a(`editorKind`,e)}),(0,V.jsx)(qM,{label:$(`general.worktree`),hint:$(`general.worktreeHint`),value:r.worktreeBase,picks:s,onPick:e=>a(`worktreeBase`,e)})]}),(0,V.jsx)(UM,{title:z(`settings.general.groupTerminal`),hint:$(`general.terminalHint`),children:(0,V.jsx)(YP,{client:t})})]})}function YP({client:e}){let t=ty(),n=t.options.scrollbackRows,r=n&&`min`in n?n:{min:100,max:1e5},[i,a]=(0,g.useState)(String(t.prefs.scrollbackRows));return(0,g.useEffect)(()=>a(String(t.prefs.scrollbackRows)),[t.prefs.scrollbackRows]),(0,V.jsx)(WM,{label:z(`settings.general.scrollback`),hint:$(`general.scrollbackRowHint`),children:(0,V.jsx)(`input`,{className:Yj,inputMode:`numeric`,value:i,"aria-label":$(`general.scrollbackTitle`),onChange:e=>a(e.target.value),onBlur:()=>{let n=Number(i);if(i.trim()===``||!Number.isInteger(n)){a(String(t.prefs.scrollbackRows));return}let o=Math.min(r.max,Math.max(r.min,n));o===t.prefs.scrollbackRows?a(String(o)):ey(e,`scrollbackRows`,o)},onKeyDown:e=>e.key===`Enter`&&e.currentTarget.blur()})})}[...Array.from({length:12},(e,t)=>`f${t+1}`)];var XP={"diff.review.cursor":`diff-review cursor is a fixed raw binding (j/k), not keymap-driven`,"diff.review.range":`diff-review range anchor is a fixed raw binding (v), not keymap-driven`,"diff.review.note":`diff-review note is a fixed raw binding (c), not keymap-driven`,"diff.review.send":`diff-review send is a fixed raw binding (s), not keymap-driven`,"diff.review.drop":`diff-review drop-note is a fixed raw binding (x), not keymap-driven`,"diff.review.reload":`preview reload is a fixed raw binding (r), not keymap-driven`};function ZP(e,t){let n=`alternating [${e}, ${t}] pairs`;return{layout:n,validateCount:e=>e>=2&&e%2==0?null:`needs ${n} (an even number of chords — got ${e})`}}ZP(`top (double-tap)`,`bottom`),ZP(`down`,`up`),ZP(`down`,`up`),ZP(`down`,`up`),ZP(`collapse`,`expand`),ZP(`previous tab`,`next tab`);async function QP(e){try{(await e.request(`keybindings.createFile`)).created||W(z(`keys.exists`),`error`),await li(e)}catch(e){W(G(e),`error`)}}function $P({model:e}){let{client:t}=e,{prefs:n}=ty(),r=v(oi),[i,a]=(0,g.useState)(!1);(0,g.useEffect)(()=>void li(t),[t]);let o=r.prefix.key??$(`keybindings.prefixDisabled`),s=Object.keys(XP).sort();return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(UM,{children:[(0,V.jsx)(qM,{label:$(`keybindings.tapPresentation`),hint:$(`keybindings.tapPresentationHint`),value:n.prefixTap,picks:[{value:`local`,label:$(`keybindings.tapPresentationLocal`)},{value:`guide`,label:$(`keybindings.tapPresentationGuide`)}],onPick:e=>void ey(t,`prefixTap`,e)}),(0,V.jsx)(WM,{label:$(`keybindings.prefixTitle`,{prefix:o}),hint:$(`keybindings.prefixHint`,{prefix:o,timeout:r.prefix.timeoutMs})})]}),(0,V.jsxs)(UM,{title:$(`keybindings.configFile`),hint:`${$(`keybindings.hint`)} ${z(`prefs.keysYaml`)}`,children:[(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:`font-mono break-all`,children:r.path+(r.exists?``:$(`keybindings.notCreated`))})}),!r.exists&&(0,V.jsx)(WM,{label:z(`keys.createFile`),hint:$(`keybindings.createHint`),children:(0,V.jsx)(H,{variant:`action`,onClick:()=>void QP(t),children:z(`keys.createFile`)})}),(0,V.jsx)(WM,{label:z(`keys.agent`),hint:z(i?`keys.agentFailed`:`keys.agentHint`),children:(0,V.jsx)(H,{variant:`action`,onClick:()=>{a(!1),$A(e,z(`keys.agentPrompt`,{path:r.path})).catch(()=>a(!0))},children:z(`keys.agent`)})})]}),r.exists&&(0,V.jsxs)(UM,{title:$(`keybindings.overridesApplied`),children:[r.applied.length===0&&(0,V.jsx)(WM,{label:$(`keybindings.none`)}),r.applied.map(e=>(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:`font-mono`,children:e.id}),hint:`${e.keys.length>0?e.keys.join(` / `):$(`keybindings.unbound`)} (${$(`keybindings.defaultKeys`,{keys:e.defaultKeys.join(` / `)})})`},e.id))]}),r.warnings.length>0&&(0,V.jsx)(UM,{title:$(`keybindings.warnings`),children:r.warnings.map(e=>(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:`text-warning`,children:e})},e))}),r.plugins.length>0&&(0,V.jsx)(UM,{title:z(`keys.pluginChords`),children:r.plugins.map(e=>(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:`font-mono`,children:e.chord}),hint:(0,V.jsx)(`span`,{className:`font-mono`,children:`${e.kind}:${e.target}`})},e.chord))}),(0,V.jsx)(`p`,{className:Rj,children:$(`keybindings.fixed`,{ids:s.join(`, `)})})]})}var eF=`/assets/pulse-3XJkP4CJ.wav`;function tF(e,t){return e===`error`||t}function nF(e,t){return t||e.kind!==`done`||e.turnEnd!==!0}function rF(e,t){return t&&e.silent!==!0}function iF(e){return e===`permission_needed`?`needs_input`:e===`error`||e===`rate_limited`||e===`dead`?`error`:e===`turn_complete`?`done`:null}function aF(e,t,n,r){if(e===null)return[];let i=[];for(let[a,o]of t){if(a===n||e.get(a)===o)continue;let t=r(o);t&&i.push({key:a,kind:t})}return i}function oF(){return window.isSecureContext&&`serviceWorker`in navigator&&`PushManager`in window&&`Notification`in window}var sF=()=>navigator.serviceWorker.register(`sw.js`);async function cF(e){if(!oF())return`unsupported`;if(Notification.permission===`denied`)return`blocked`;let t=await(await navigator.serviceWorker.getRegistration())?.pushManager.getSubscription();if(!t)return`off`;let{subscribed:n}=await e.request(`push.status`,{endpoint:t.endpoint});return n?`on`:`off`}async function lF(e){if(!oF())return`unsupported`;if(await Notification.requestPermission()!==`granted`)return`blocked`;let t=await sF();await navigator.serviceWorker.ready;let{publicKey:n}=await e.request(`push.key`),r=await t.pushManager.getSubscription();return r?.options.applicationServerKey&&hF(r.options.applicationServerKey)!==n&&(await r.unsubscribe(),r=null),r??=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:mF(n)}),await e.request(`push.subscribe`,{subscription:r.toJSON()}),`on`}async function uF(e){let t=await(await navigator.serviceWorker.getRegistration())?.pushManager.getSubscription();return t&&(await e.request(`push.unsubscribe`,{endpoint:t.endpoint}),await t.unsubscribe()),`off`}async function dF(e,t,n,r){let i={body:r,tag:`task:${e}:${t}`,icon:`icon-192.png`,data:{taskId:e}},a=`serviceWorker`in navigator?await navigator.serviceWorker.getRegistration():void 0;if(a)return a.showNotification(`Rove — ${n}`,i);let o=new Notification(`Rove — ${n}`,i);o.onclick=()=>{window.focus(),fF?.(e),o.close()}}var fF=null;function pF(e){fF=t=>e.selectWhenListed(t);let t=new URLSearchParams(window.location.search),n=t.get(`task`);if(n){t.delete(`task`);let r=t.toString();history.replaceState(null,``,`${window.location.pathname}${r?`?${r}`:``}${window.location.hash}`),e.selectWhenListed(n)}let r=()=>{fF=null};if(!(`serviceWorker`in navigator))return r;let i=t=>{let n=t.data;n?.type===`rove.openTask`&&typeof n.taskId==`string`&&n.taskId&&e.selectWhenListed(n.taskId)};return navigator.serviceWorker.addEventListener(`message`,i),()=>{r(),navigator.serviceWorker.removeEventListener(`message`,i)}}function mF(e){let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`));return Uint8Array.from(t,e=>e.charCodeAt(0))}function hF(e){return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}var gF={done:`✓`,needs_input:`?`,error:`✕`};function _F(e){let t=new Audio(eF);t.volume=Math.min(1,Math.max(0,e)),t.play().catch(()=>void 0)}function vF(e,t,n){!document.hidden||typeof Notification>`u`||Notification.permission!==`granted`||dF(e,t,n,gF[t]).catch(()=>void 0)}function yF(){typeof Notification<`u`&&Notification.permission==="default"&&Notification.requestPermission()}function bF(e){let t=new Map;for(let n of e.tasks)n.activity&&t.set(n.id,n.activity.state);return t}function xF(e){let t=(0,g.useRef)(null);(0,g.useEffect)(()=>{let n=()=>{let n=e.tasks.get();if(!n)return;let r=bF(n),i=aF(t.current,r,null,iF);t.current=r;let{prefs:a}=Xv.get();if(!a.crossTask)return;let o=e.selection.get().taskId,s=new Map(n.tasks.map(e=>[e.id,e.label]));for(let{key:e,kind:t}of i){if(e===o||!nF({kind:t,turnEnd:!0},a.finishedAlerts))continue;let n=s.get(e)??e;tF(t,a.toast)&&W(`${gF[t]} ${n}`,t===`error`?`error`:`info`),rF({},a.sound)&&(_F(a.soundVolume),vF(e,t,n))}};return n(),e.tasks.subscribe(n)},[e])}function SF({client:e}){let[t,n]=(0,g.useState)(null),[r,i]=(0,g.useState)(null);(0,g.useEffect)(()=>{cF(e).then(n,()=>n(`off`))},[e]);let a=t=>{i(null),(t?lF(e):uF(e)).then(n,e=>i(e instanceof Error?e.message:String(e)))},o=r?z(`prefs.pushFailed`,{error:r}):z(t===`unsupported`?`prefs.pushUnsupported`:t===`blocked`?`prefs.pushBlocked`:`prefs.pushHint`);return(0,V.jsx)(GM,{label:z(`prefs.push`),hint:o,checked:t===`on`,disabled:t===null||t===`unsupported`||t===`blocked`,onChange:a})}function CF({model:e}){let{client:t}=e,n=ty(),{prefs:r}=n,i=(e,n)=>void ey(t,e,n);return(0,V.jsxs)(UM,{children:[(0,V.jsx)(GM,{label:$(`general.toast`),hint:z(`settings.notifications.toastNote`),checked:r.toast,onChange:e=>i(`toast`,e)}),(0,V.jsx)(GM,{label:$(`general.sound`),hint:z(`prefs.soundHint`),checked:r.sound,onChange:e=>{e&&yF(),i(`sound`,e)}}),(0,V.jsx)(qM,{label:z(`settings.notifications.volume`),hint:z(`prefs.soundVolumeHint`),value:r.soundVolume,picks:ny(n,`soundVolume`).map(e=>({value:e,label:`${Math.round(e*100)}%`})),onPick:e=>{Xv.get().prefs.sound&&_F(e),i(`soundVolume`,e)}}),(0,V.jsx)(GM,{label:$(`general.crossTask`),hint:$(`general.crossTaskHint`),checked:r.crossTask,onChange:e=>i(`crossTask`,e)}),(0,V.jsx)(GM,{label:$(`general.finishedAlerts`),hint:$(`general.finishedAlertsHint`),checked:r.finishedAlerts,onChange:e=>i(`finishedAlerts`,e)}),(0,V.jsx)(SF,{client:t})]})}var wF={kanban:`kanban`,issues:`issues`};function TF({model:e}){let t=v(e.installedMods),[n,r]=(0,g.useState)(()=>q(e,`builtinMods.list`)?.mods??null);if((0,g.useEffect)(()=>{sl(e,`builtinMods.list`).then(e=>r(e.mods),()=>r([])),e.refreshMods()},[e]),!n||n.length===0)return null;let i=n=>{let r=!t.has(n.id);e.client.request(`builtinMod.setInstalled`,{id:n.id,installed:r}).then(()=>(!r&&hn.get()===wF[n.id]&&hn.set(null),e.refreshMods())).catch(e=>W(G(e),`error`))};return(0,V.jsx)(UM,{title:z(`settings.plugins.builtIn`),hint:z(`settings.plugins.builtInHint`),children:n.map(e=>(0,V.jsx)(WM,{label:e.name,hint:e.description,inline:!0,children:(0,V.jsx)(HM,{on:t.has(e.id),"aria-label":z(`settings.plugins.turnOn`,{name:e.name}),onClick:()=>i(e)})},e.id))})}function EF({model:e}){let{client:t}=e,[n,r]=(0,g.useState)(()=>q(t,`plugins.list`)?.plugins??null),i=(0,g.useCallback)(()=>sl(t,`plugins.list`).then(e=>r(e.plugins),e=>W(G(e),`error`)),[t]);return(0,g.useEffect)(()=>{i()},[i]),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(TF,{model:e}),(0,V.jsx)(UM,{title:z(`settings.plugins.registered`),children:n?n.length===0?(0,V.jsx)(`p`,{className:qj,children:z(`settings.plugins.empty`)}):n.map(e=>(0,V.jsx)(WM,{label:e.id,hint:[e.version,e.linked?z(`settings.plugins.linked`):null,e.platformOk===!1?z(`settings.plugins.unsupportedPlatform`):null].filter(Boolean).join(`, `),inline:!0,children:(0,V.jsx)(HM,{on:e.enabled,"aria-label":e.id,onClick:()=>void t.request(`plugin.setEnabled`,{id:e.id,enabled:!e.enabled}).then(i).catch(e=>W(G(e),`error`))})},e.id)):(0,V.jsx)(`p`,{className:qj,children:z(`preview.loading`)})})]})}function DF(e){let[t,n]=(0,g.useState)(e.tier.engine),[r,i]=(0,g.useState)(e.tier.model??``),[a,o]=(0,g.useState)(e.tier.effort??``),s=e.engines.find(e=>e.id===t);return(0,V.jsxs)(`form`,{className:kM,onSubmit:n=>{n.preventDefault(),e.onSave(t,s?.takesModel?r.trim():``,a)},onKeyDown:t=>{t.key===`Escape`&&(t.stopPropagation(),e.onCancel())},children:[(0,V.jsx)(Ej,{label:$(`sections.engines`),value:t,picks:e.engines.map(e=>({value:e.id,label:e.name})),onPick:t=>{let r=e.engines.find(e=>e.id===t);n(t),r&&!r.effortLevels.includes(a)&&o(``),r&&!r.takesModel&&i(``)}}),s&&s.effortLevels.length>0&&(0,V.jsx)(Ej,{label:z(`prefs.tierEffort`),value:a,picks:[``,...s.effortLevels].map(e=>({value:e,label:e||$(`autoRouting.engineDefault`)})),onPick:o}),s?.takesModel&&(0,V.jsx)(`input`,{className:`rounded-sm border-hairline border-line bg-paper px-2.5 py-1.5 font-sans text-body text-ink focus-visible:border-line-active focus-visible:outline-none`,value:r,spellCheck:!1,placeholder:$(`autoRouting.engineDefault`),"aria-label":z(`prefs.tierModel`),onChange:e=>i(e.target.value)}),(0,V.jsxs)(`div`,{className:$j,children:[(0,V.jsx)(H,{onClick:e.onCancel,children:z(`dialog.cancel`)}),(0,V.jsx)(H,{variant:`filled`,type:`submit`,children:$(`action.save`)})]})]})}function OF({client:e}){let[t,n]=(0,g.useState)(()=>q(e,`autoRouting.get`)??null),[r,i]=(0,g.useState)(null),a=(0,g.useCallback)(()=>sl(e,`autoRouting.get`).then(n,e=>W(G(e),`error`)),[e]);(0,g.useEffect)(()=>{a()},[a]);let o=(t,n)=>e.request(t,n).then(a).catch(e=>W(G(e),`error`));if(!t)return(0,V.jsx)(`p`,{className:qj,children:z(`preview.loading`)});let s=t.classifier,c=[{value:`off`,label:$(`autoRouting.classifierOff`)},{value:`jev`,label:`jev`},...s.canCustom||s.mode===`custom`?[{value:`custom`,label:$(`autoRouting.classifierCustomLabel`)}]:[]],l=s.mode===`off`?$(`autoRouting.classifierOffHint`):s.mode===`jev`?$(`autoRouting.classifierJevHint`):$(`autoRouting.classifierCustomHint`),u=s.keySource===`env`?$(`autoRouting.keyPresentEnv`,{env:s.keyEnv??``}):s.keySource===`file`?$(`autoRouting.keySaved`):s.keyConfigured?$(`autoRouting.keyMissing`):$(`autoRouting.keyCustomUnused`);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(UM,{hint:$(`autoRouting.hint`),children:[!t.configured&&(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:`text-warning`,children:$(`autoRouting.unconfigured`)})}),t.tiers.map(e=>(0,V.jsxs)(`div`,{className:DM,children:[(0,V.jsxs)(`div`,{className:OM,children:[(0,V.jsx)(`span`,{className:Wj,children:Tj(`tier.${e.tier}`)}),(0,V.jsx)(`span`,{className:`${Gj} min-w-0 truncate`,children:[e.engineName,e.model??$(`autoRouting.engineDefault`),e.effort??$(`autoRouting.engineDefault`)].join(` · `)}),(0,V.jsx)(H,{className:`ml-auto`,onClick:()=>i(r===e.tier?null:e.tier),children:z(`prefs.tierEdit`)})]}),(0,V.jsx)(`span`,{className:Gj,children:Tj(`tierDesc.${e.tier}`)}),(0,V.jsx)(`span`,{className:`text-meta ${e.block?`text-warning`:`text-success`}`,children:e.block?$(`autoRouting.unavailable`,{reason:e.block}):$(`autoRouting.ready`)}),r===e.tier&&(0,V.jsx)(DF,{tier:e,engines:t.engines,onCancel:()=>i(null),onSave:(t,n,r)=>{i(null),o(`autoRouting.setTier`,{tier:e.tier,engine:t,model:n,effort:r})}})]},e.tier))]}),(0,V.jsxs)(UM,{title:$(`autoRouting.classifierTitle`),hint:$(`autoRouting.classifierHint`),children:[(0,V.jsx)(WM,{label:(0,V.jsx)(`span`,{className:s.mode===`off`?`text-muted`:`text-warning`,children:$(`autoRouting.classifierDataFlow`)})}),(0,V.jsx)(qM,{label:$(`autoRouting.classifierLabel`),hint:l.replace(/^[—\s]+/,``),value:s.mode,picks:c,onPick:e=>void o(`autoRouting.setClassifier`,{mode:e})})]}),(0,V.jsxs)(UM,{title:z(`prefs.classifierConnection`),hint:z(`prefs.editInTui`),children:[(0,V.jsx)(JM,{label:$(`autoRouting.endpointLabel`),value:s.endpointHost||z(`prefs.unset`)}),(0,V.jsx)(JM,{label:$(`autoRouting.thresholdLabel`),value:s.threshold.toFixed(2)}),(0,V.jsx)(WM,{label:$(`autoRouting.keyLabel`),hint:u})]})]})}var kF=[{id:`preferences`,sections:[`general`,`appearance`,`notifications`,`snippets`,`keys`]},{id:`agents`,sections:[`engines`,`autoRouting`,`voice`,`connectors`,`plugins`]},{id:`more`,sections:[`about`,`feedback`,`dev`]}],AF=e=>({section:e??`general`,drilled:e!==void 0});function jF(e,t){return t&&e.drilled?`list`:`close`}var MF=e=>e.split(`
|
|
122
|
+
`,1)[0]??``;function NF(e){let[t,n]=(0,g.useState)(e.editing?.name??``),[r,i]=(0,g.useState)(e.editing?.text??``),[a,o]=(0,g.useState)(!1),s=ck.test(t)&&r.trim()!==``;return(0,V.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:n=>{n.preventDefault(),s&&(o(!0),ok(e.client,{name:t,text:r}).then(e.onDone).catch(e=>{W(G(e),`error`),o(!1)}))},children:[(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`snippets.name`)}),(0,V.jsx)(`input`,{className:`${Jj} w-full font-mono`,value:t,maxLength:32,spellCheck:!1,autoComplete:`off`,autoFocus:!e.editing,readOnly:e.editing!==void 0,placeholder:z(`snippets.namePlaceholder`),onChange:e=>n(e.target.value)}),t!==``&&!ck.test(t)&&(0,V.jsx)(`span`,{className:`text-meta text-muted [&_a]:text-accent`,children:z(`snippets.badName`)})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`snippets.text`)}),(0,V.jsx)(`textarea`,{className:`${Jj} ${Qj} w-full`,rows:5,value:r,maxLength:8e3,placeholder:z(`snippets.textPlaceholder`),onChange:e=>i(e.target.value)})]}),(0,V.jsxs)(`div`,{className:$j,children:[(0,V.jsx)(H,{onClick:e.onDone,children:z(`snippets.cancel`)}),(0,V.jsx)(H,{type:`submit`,disabled:a||!s,children:z(`snippets.save`)})]})]})}function PF({model:e}){let{client:t}=e,n=ik(),[r,i]=(0,g.useState)(null);return(0,g.useEffect)(()=>void ak(t).catch(()=>void 0),[t]),(0,V.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,V.jsxs)(UM,{children:[n.length===0&&r===null&&(0,V.jsx)(WM,{label:z(`snippets.empty`)}),n.map(e=>(0,V.jsxs)(WM,{label:(0,V.jsxs)(`span`,{className:`font-mono`,children:[`@`,e.name]}),hint:MF(e.text),children:[(0,V.jsx)(H,{onClick:()=>i(e),children:z(`snippets.edit`)}),(0,V.jsx)(H,{onClick:()=>void sk(t,e.name).then(()=>{i(null),W(z(`snippets.removed`,{name:e.name}))}).catch(e=>W(G(e),`error`)),children:z(`snippets.remove`)})]},e.name))]}),r===null?(0,V.jsx)(`div`,{className:$j,children:(0,V.jsx)(H,{onClick:()=>i(`new`),children:z(`snippets.add`)})}):(0,V.jsx)(NF,{client:t,editing:r===`new`?void 0:r,onDone:()=>i(null)},r===`new`?`new`:r.name)]})}var FF=e=>e>=95?`crit`:e>=75?`warn`:`ok`,IF=e=>String(e).padStart(2,`0`);function LF(e,t){if(e==null||e<=t)return``;let n=new Date(e),r=`${IF(n.getHours())}:${IF(n.getMinutes())}`;return e-t<864e5?`→ ${r}`:`→ ${n.getMonth()+1}/${n.getDate()} ${r}`}function RF(e,t){let n=e.windows.find(e=>e.kind===`session`)??e.windows[0];return n?{label:n.label,percentText:`${n.percent}%`,resetText:LF(n.resetsAt,t),tone:FF(n.percent)}:null}var zF=1e4;function BF({client:e,inset:t=!0}){let n=v(e.conn),[r,i]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(n.state!==`open`)return;let t=!0,r=()=>e.request(`usage.get`,{}).then(e=>{t&&i(e.usage)}).catch(()=>{});r();let a=window.setInterval(r,zF);return()=>{t=!1,window.clearInterval(a)}},[e,n.state]);let a=Date.now(),o=(r??[]).flatMap(e=>{let t=RF({capturedAt:e.capturedAt,windows:e.windows},a);return t?[{vendor:e.vendor,name:e.name,chip:t}]:[]});return o.length===0?null:(0,V.jsx)(`div`,{className:`${Vt} ${t?`px-2`:``}`,children:o.map(({vendor:e,name:t,chip:n})=>{let r=Math.min(100,Math.max(0,Number.parseInt(n.percentText,10)||0));return(0,V.jsxs)(H,{variant:`row`,className:Ht,title:`${t} · ${n.label} ${n.percentText} ${n.resetText}`.trim(),"aria-label":`${z(`usage.open`)}: ${t}`,onClick:()=>{kn(),ka(`usage`)},children:[(0,V.jsx)(`span`,{className:`truncate`,children:t}),(0,V.jsx)(`span`,{className:Gt(n.tone),style:{"--fill":`${r}%`}}),(0,V.jsxs)(`span`,{children:[n.label,` `,(0,V.jsx)(`span`,{className:Ut[n.tone],children:n.percentText})]})]},e)})})}var VF=2e3;function HF(e){let[t,n]=(0,g.useState)(null),[r,i]=(0,g.useState)(null),a=(0,g.useCallback)(t=>{n(t),rA(e,t.available)},[e]),o=(0,g.useCallback)(()=>e.request(`voice.status`).then(a,e=>i(G(e))),[e,a]);(0,g.useEffect)(()=>void o(),[o]);let s=t?.setup?.install.phase===`running`||t?.available===!0&&!t.ready;return(0,g.useEffect)(()=>{if(!s)return;let e=window.setInterval(()=>void o(),VF);return()=>window.clearInterval(e)},[s,o]),{status:t,error:r,setError:i,accept:a}}function UF({client:e}){let{status:t,error:n,setError:r,accept:i}=HF(e),[a,o]=(0,g.useState)(!1),s=t?.setup,[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(``),[f,p]=(0,g.useState)(``);(0,g.useEffect)(()=>{s?.cloud&&(l(e=>e||s.cloud?.baseURL||``),d(e=>e||s.cloud?.model||``))},[s?.cloud]);let m=(t,n)=>{o(!0),r(null),e.request(t,n).then(i,e=>r(G(e))).finally(()=>o(!1))};if(!t)return(0,V.jsx)(`p`,{className:qj,children:n??`…`});if(!s)return(0,V.jsx)(`p`,{className:qj,children:t.model??z(`voice.setup.off`)});let h=t.model??``,_=t.ready?z(`voice.setup.ready`,{model:h}):t.available?t.error??z(`voice.setup.starting`,{model:h||s.backend}):null,v=s.install,y=s.backend===`local`;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(UM,{children:(0,V.jsx)(WM,{label:z(`voice.setup.recognizer`),hint:_===null?z(`voice.setup.off`):void 0,children:_!==null&&(0,V.jsx)(`span`,{className:`max-w-90 min-w-0 truncate font-mono text-meta text-muted [overflow-wrap:anywhere]`,children:_})})}),(0,V.jsx)(UM,{children:(0,V.jsx)(WM,{label:z(`voice.setup.localTitle`),hint:v.phase===`running`?v.line??z(`voice.setup.installing`):v.phase===`failed`?z(`voice.setup.failed`,{line:v.line??``}):s.localInstalled?z(`voice.setup.installed`):s.blocked??z(`voice.setup.localHint`),children:v.phase===`running`?(0,V.jsx)(`span`,{className:Kj,children:z(`voice.setup.installing`)}):s.localInstalled?y?(0,V.jsx)(`span`,{className:Kj,children:z(`voice.setup.inUse`)}):(0,V.jsx)(H,{variant:`action`,disabled:a,onClick:()=>m(`voice.configure`,{backend:`local`}),children:z(`voice.setup.use`)}):!s.blocked&&(0,V.jsx)(H,{variant:`action`,disabled:a,onClick:()=>m(`voice.install`),children:z(`voice.setup.install`)})})}),(0,V.jsx)(UM,{title:z(`voice.setup.cloudTitle`),hint:z(`voice.setup.cloudHint`),children:(0,V.jsxs)(`form`,{className:`flex flex-col gap-3 py-3`,onSubmit:e=>{e.preventDefault(),m(`voice.configure`,{backend:`cloud`,baseURL:c,model:u,apiKey:f}),p(``)},children:[(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`voice.setup.baseURL`)}),(0,V.jsx)(`input`,{className:`${Jj} font-mono`,value:c,placeholder:`https://api.openai.com/v1`,spellCheck:!1,autoComplete:`off`,onChange:e=>l(e.target.value)})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`voice.setup.model`)}),(0,V.jsx)(`input`,{className:`${Jj} font-mono`,value:u,placeholder:`gpt-4o-mini-transcribe`,spellCheck:!1,autoComplete:`off`,onChange:e=>d(e.target.value)})]}),(0,V.jsxs)(`label`,{className:Xj,children:[(0,V.jsx)(`span`,{className:Zj,children:z(`voice.setup.apiKey`)}),(0,V.jsx)(`input`,{className:`${Jj} font-mono`,type:`password`,value:f,placeholder:s.cloud?.hasKey?z(`voice.setup.keySaved`):``,autoComplete:`off`,onChange:e=>p(e.target.value)})]}),(0,V.jsxs)(`div`,{className:$j,children:[!y&&(0,V.jsx)(`span`,{className:`max-w-90 min-w-0 truncate font-mono text-meta text-muted [overflow-wrap:anywhere]`,children:z(`voice.setup.inUse`)}),(0,V.jsx)(H,{variant:`action`,type:`submit`,disabled:a||!c.trim()||!u.trim()||!(f||s.cloud?.hasKey),children:z(`voice.setup.save`)})]})]})}),n&&(0,V.jsx)(`p`,{className:`m-0 py-3 text-body text-muted text-error`,children:n})]})}var WF={general:e=>(0,V.jsx)(JP,{model:e}),appearance:e=>(0,V.jsx)(fP,{model:e}),notifications:e=>(0,V.jsx)(CF,{model:e}),snippets:e=>(0,V.jsx)(PF,{model:e}),keys:e=>(0,V.jsx)($P,{model:e}),engines:e=>(0,V.jsx)(RP,{client:e.client}),autoRouting:e=>(0,V.jsx)(OF,{client:e.client}),voice:e=>(0,V.jsx)(UF,{client:e.client}),connectors:e=>(0,V.jsx)(DP,{model:e}),plugins:e=>(0,V.jsx)(EF,{model:e}),about:e=>(0,V.jsx)(ZN,{client:e.client}),feedback:e=>(0,V.jsx)(GP,{model:e}),dev:e=>(0,V.jsx)(kP,{client:e.client})},GF={general:`sections.general`,engines:`sections.engines`,autoRouting:`sections.autoRouting`,plugins:`sections.plugins`,keys:`sections.keys`,feedback:`sections.feedback`,dev:`sections.dev`},KF=e=>{let t=GF[e];return t?$(t):z(`settings.sections.${e}`)};function qF(e){return(0,V.jsxs)(`nav`,{className:jj,"aria-label":z(`settings.title`),children:[(0,V.jsx)(`h1`,{className:Mj,children:z(`settings.title`)}),kF.map(t=>(0,V.jsxs)(`div`,{className:Nj,children:[(0,V.jsx)(`p`,{className:Pj,children:z(`settings.groups.${t.id}`)}),t.sections.map(n=>(0,V.jsxs)(H,{variant:`row`,className:Fj(!e.narrow&&e.current===n,t.id===`more`),"aria-current":!e.narrow&&e.current===n?`page`:void 0,onClick:()=>e.onPick(n),children:[KF(n),(0,V.jsx)(Ka,{right:!0,className:Ij})]},n))]},t.id))]})}function JF({model:e,section:t}){B();let[n,r]=(0,g.useState)(()=>AF(t)),i=Fa(),a=()=>jF(n,i)===`list`?r({...n,drilled:!1}):kn();(0,g.useEffect)(()=>{let e=document.querySelector(`.dialog`);e&&!e.contains(document.activeElement)&&e.focus()},[]),(0,g.useEffect)(()=>{let e=e=>{e.key!==`Escape`||e.defaultPrevented||(e.preventDefault(),a())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let o=!i||!n.drilled,s=!i||n.drilled;return(0,V.jsx)(`div`,{className:Oj,onMouseDown:e=>e.target===e.currentTarget&&kn(),children:(0,V.jsxs)(`dialog`,{tabIndex:-1,open:!0,className:kj,"aria-label":z(`settings.title`),onKeyDown:e=>{let t=e.target;e.key===`Escape`&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&(t.blur(),e.stopPropagation(),e.nativeEvent.stopImmediatePropagation())},children:[(0,V.jsx)(H,{variant:`row`,className:Aj,"aria-label":z(`dialog.close`),title:z(`dialog.close`),onClick:kn,children:`×`}),i&&n.drilled&&(0,V.jsx)(H,{variant:`row`,className:`hidden flex-none items-center px-4 py-3 pr-12 text-left font-mono text-meta font-bold text-accent w-narrow:flex touch:min-h-11`,onClick:a,children:`‹ ${z(`settings.title`)}`}),o&&(0,V.jsx)(qF,{current:n.section,narrow:i,onPick:e=>r({section:e,drilled:!0})}),i&&o&&(0,V.jsx)(BF,{client:e.client,inset:!1}),s&&(0,V.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto scrollbar-none`,children:(0,V.jsxs)(`div`,{className:`flex w-full flex-col gap-7 px-8 pt-7 pb-10 w-narrow:gap-6 w-narrow:px-4 w-narrow:pt-1 w-narrow:pb-10`,children:[(0,V.jsxs)(`header`,{className:`flex flex-col gap-1 pr-8`,children:[(0,V.jsx)(`h1`,{className:`m-0 font-sans text-display font-semibold normal-nums text-ink`,children:KF(n.section)}),(0,V.jsx)(`p`,{className:`m-0 text-body text-muted`,children:z(`settings.pages.${n.section}`)})]}),(0,V.jsx)(`div`,{className:`flex flex-col gap-7 w-narrow:gap-6`,children:WF[n.section](e)})]})},n.section)]})})}function YF(e){let t=e.todos;return!t||t.length===0?null:{done:t.filter(e=>e.done).length,total:t.length}}function XF(e){return(e.todos??[]).filter(e=>!e.done)}var ZF=/LAND_CONFLICT/,QF=/MAIN_CHECKOUT_DIRTY/,$F=/SYNC_CONFLICT(?:: )?(.*)/,eI=/SYNC_WORKTREE_DIRTY(?:: )?(.*)/;function tI(e){let t=G(e);return ZF.test(t)?K(`worktrees`,`land.conflict`,{files:t}):QF.test(t)?K(`worktrees`,`land.dirtyBase`):K(`worktrees`,`land.failed`,{error:t})}async function nI(e,t,n){if(t.machine){rI(e,t,t.machine.label,n);return}let r;try{r=await e.client.request(`task.landPreflight`,{taskId:t.id})}catch(e){W(K(`worktrees`,`land.failed`,{error:G(e)}),`error`);return}if(r.refusal){W(r.refusal===`MAIN_CHECKOUT_DIRTY`?K(`worktrees`,`land.dirtyBase`):K(`worktrees`,`land.failed`,{error:r.message??r.refusal}),`error`);return}let i=t.branch||t.title,a=XF(e.tasks.get()?.tasks.find(e=>e.id===t.id)??{}).length;U.set((0,V.jsx)(xr,{title:K(`worktrees`,`land.confirmTitle`),body:[K(`worktrees`,r.ahead===1?`land.confirmBodyOne`:`land.confirmBody`,{branch:i,landedOn:r.landedOn,commits:r.ahead??`?`}),...a>0?[z(`files.landTodos`,{count:a})]:[]].join(`
|
|
123
|
+
|
|
124
|
+
`),confirmLabel:K(`worktrees`,`land.button`),onConfirm:async()=>{try{let r=await e.client.request(`task.land`,{taskId:t.id});W(K(`worktrees`,`land.done`,{branch:i,landedOn:r.landedOn,commit:r.commit.slice(0,8)})),n?.()}catch(e){throw Error(tI(e))}}}))}function rI(e,t,n,r){let i=t.branch||t.title;U.set((0,V.jsx)(xr,{title:z(`taskops.publishTitle`),body:z(`taskops.publishBody`,{branch:i,host:n}),confirmLabel:z(`taskops.publishButton`),onConfirm:async()=>{let n=await e.client.request(`task.land`,{taskId:t.id}),a=n.published?.prUrl;a?W(z(`taskops.publishedPr`,{branch:i,url:a})):W(z(`taskops.publishedNoPr`,{branch:i,reason:aI(n.published?.prError??``)}),`error`),r?.()}}))}async function iI(e,t){try{let n=await e.client.request(`task.syncBase`,{taskId:t});W(K(`tasks`,n.alreadyCurrent?`sync.alreadyCurrent`:`sync.done`,{base:n.baseRef}))}catch(e){let t=G(e),n=$F.exec(t),r=eI.exec(t);W(n?K(`tasks`,`sync.conflict`,{files:n[1]?.trim()||`?`}):r?K(`tasks`,`sync.dirty`,{files:r[1]?.trim()||`?`}):K(`tasks`,`sync.failed`,{error:t}),`error`)}}function aI(e){return e.split(`
|
|
125
|
+
`).find(e=>e.trim().length>0)?.trim()??e.trim()}async function oI(e,t,n){try{let r=await e.client.request(`task.fixChecks`,e.engineTarget(t));r.outcome===`unavailable`?W(K(`files`,`toast.ciChecksUnavailable`,{detail:aI(r.detail??``)}),`error`):r.outcome===`none`?W(K(`files`,`toast.ciNoFailingChecks`),`error`):W(n)}catch(e){W(G(e),`error`)}}async function sI(e,t){try{let n=await e.client.request(`task.openEditor`,{taskId:t});n.outcome===`noEditor`?W(K(`tasks`,`toast.noEditor`),`error`):n.outcome===`failed`&&W(K(`tasks`,`toast.openWorktreeFailed`,{label:n.label??``}),`error`)}catch(e){W(K(`tasks`,`toast.worktreeErrorGeneric`,{message:G(e)}),`error`)}}function cI(e,t){let n=e.tasks.get();return[...n?.tasks??[],...n?.archived??[]].filter(e=>e.parentTaskId===t)}function lI(e,t){let n=cI(e,t.id),r=n.length>0,i=n=>e.client.request(`task.delete`,{taskId:t.id,...n}).then(()=>{});return(0,V.jsx)(xr,{title:r?K(`tasks`,`confirm.childrenTitle`,{title:t.label,count:String(n.length)}):K(`tasks`,t.kind===`dir`?`confirm.deleteTitleDir`:`confirm.deleteTitle`,{title:t.label}),body:r?K(`tasks`,`confirm.childrenBody`):K(`tasks`,t.kind===`dir`?`confirm.deleteBodyDir`:`confirm.deleteBodyTask`),confirmLabel:K(`tasks`,r?`confirm.childrenPromote`:`confirm.deleteConfirm`),onConfirm:()=>i({}),...r?{secondary:{label:K(`tasks`,`confirm.childrenCascade`),onConfirm:()=>i({cascade:!0})}}:{},escalate:{when:e=>e instanceof Ov&&e.code===`DIRTY_WORKTREE`,label:K(`tasks`,`confirm.forceDeleteConfirm`),title:K(`tasks`,`confirm.forceDeleteTitle`,{title:t.label}),body:e=>`${K(`worktrees`,`delete.forceBody`,{branch:t.branch||t.title})}\n\n${K(`worktrees`,`delete.forceReason`,{reason:G(e).replace(`task ${t.id} `,``)})}`,run:e=>i({force:!0,...e?{cascade:!0}:{}})}})}function uI(e,t){let n=cI(e,t.id),r=n.length>0,i=t.label,a=async()=>{let{tabs:n}=await e.client.request(`task.tabs`,{taskId:t.id});for(let r of n)await e.client.request(`tab.close`,{taskId:t.id,tabId:r.id});await e.refreshTabsNow()},o,s=async t=>{for(let r of n)try{await e.client.request(`task.delete`,{taskId:r.id,cascade:!0,...t?{force:!0}:{}})}catch(e){throw o=r.title,e}await a()};return(0,V.jsx)(xr,{title:r?K(`tasks`,`confirm.childrenTitle`,{title:i,count:String(n.length)}):K(`tasks`,`confirm.deleteTitleDir`,{title:i}),body:K(`tasks`,r?`confirm.childrenBodyMain`:`confirm.deleteBodyMain`),confirmLabel:K(`tasks`,r?`confirm.childrenKeepMain`:`confirm.deleteConfirm`),onConfirm:a,...r?{secondary:{label:K(`tasks`,`confirm.childrenCascadeMain`),onConfirm:()=>s(!1)}}:{},escalate:{when:e=>e instanceof Ov&&e.code===`DIRTY_WORKTREE`,label:K(`tasks`,`confirm.forceDeleteConfirm`),title:K(`tasks`,`confirm.forceDeleteTitle`,{title:i}),body:e=>`${K(`worktrees`,`delete.forceBody`,{branch:o??i})}\n\n${G(e)}`,run:()=>s(!0)}})}async function dI(e,t){let n=t.archived!==!0,r=t.label,i=async i=>{await e.client.request(`task.archive`,{taskId:t.id,archived:n,...i?{force:!0}:{}}),W(K(`tasks`,n?`archive.done`:`archive.restored`,{title:r}))};try{await i(!1)}catch(e){if(n&&e instanceof Ov&&e.code===`TASK_BUSY`){U.set((0,V.jsx)(xr,{title:K(`tasks`,`archive.busyTitle`),body:K(`tasks`,`archive.busyBody`,{title:r}),confirmLabel:K(`tasks`,`archive.busyConfirm`),onConfirm:()=>i(!0)}));return}W(K(`tasks`,n?`archive.failed`:`archive.restoreFailed`,{error:G(e)}),`error`)}}function fI(e,t,n){return(0,V.jsx)(xr,{title:K(`tasks`,`confirm.forgetProjectTitle`,{title:n}),body:K(`tasks`,`confirm.forgetProjectBody`),confirmLabel:K(`tasks`,`confirm.forgetProjectConfirm`),onConfirm:async()=>{try{await e.client.request(`project.forget`,{repo:t})}catch(e){throw Error(K(`tasks`,`toast.forgetProjectFailed`,{error:G(e)}))}}})}var pI=e=>{let{taskId:t}=e.selection.get();return e.tasks.get()?.tasks.find(e=>e.id===t)??null},mI=e=>{let{taskId:t,tabId:n}=e.selection.get(),r=t?e.tabs.get()[t]?.find(e=>e.id===n):void 0;return!!r&&!qT(r.split)},hI=[{id:`app.refresh`,live:()=>bi.get().stale,run:e=>wi(e.client)},{id:`palette.open`,live:()=>!0,run:cj},{id:`task.new.global`,live:()=>!0,run:e=>sA(pI(e)?.repo)},{id:`chat.tab.fork`,live:e=>!!pI(e),run:e=>{let t=pI(e);t&&U.set((0,V.jsx)(dT,{model:e,taskId:t.id,context:`continue`}))}},{id:`chat.fork.new`,live:e=>!!pI(e),run:e=>{let t=pI(e);t&&U.set((0,V.jsx)(dT,{model:e,taskId:t.id,destination:`fork`}))}},{id:`settings.open`,live:()=>!0,run:e=>U.set((0,V.jsx)(JF,{model:e}))},{id:`inbox.show`,live:()=>!0,run:e=>U.set((0,V.jsx)(eD,{model:e}))},{id:`focus.previous`,live:()=>!0,run:()=>aa(-1)},{id:`focus.next`,live:()=>!0,run:()=>aa(1)},{id:`workspace.zenToggle`,live:e=>!!pI(e),run:()=>yn.set(!yn.get())},{id:`files.createPR`,live:e=>!!pI(e),run:e=>{let t=pI(e);t&&e.client.request(`tab.requestPR`,e.engineTarget(t.id)).then(()=>W(z(`files.prRequested`))).catch(e=>W(e instanceof Error?e.message:String(e),`error`))}},{id:`chat.tab.close`,live:e=>!!e.selection.get().tabId&&mI(e),run:e=>{let{taskId:t,tabId:n}=e.selection.get();!t||!n||e.client.request(`tab.close`,{taskId:t,tabId:n}).then(()=>e.refreshTabsNow()).catch(e=>W(e instanceof Error?e.message:String(e),`error`))}},{id:`kanban.open`,live:e=>e.installedMods.get().has(`kanban`),run:()=>ka(`kanban`)},{id:`automations.open`,live:()=>!0,run:()=>ka(`routines`)},{id:`workItems.open`,live:e=>e.installedMods.get().has(`issues`),run:()=>ka(`issues`)},{id:`task.moveMode`,live:e=>!!fj(e),run:()=>{fD(!uD.get()),document.querySelector(`.rail`)?.focus()}},{id:`files.syncBase`,live:e=>fj(e)?.kind===`task`,run:e=>{let t=fj(e);t&&iI(e,t.id)}},{id:`files.fixChecks`,live:e=>!!fj(e),run:e=>{let t=fj(e);t&&oI(e,t.id,z(`taskops.fixSent`))}},{id:`task.openEditor`,live:e=>!!fj(e),run:e=>{let t=fj(e);t&&sI(e,t.id)}}];sa(()=>hI.map(e=>({id:e.id,chords:gi(e.id),prefix:!0,live:e.live,run:e.run})));function gI(e){return Ds(e[0]??``)}function _I(e,t){let n=fa(),r=la().filter(t=>t.prefix&&ua(t,n)&&t.live?.(e)!==!1);for(let e of t){let t=r.filter(t=>t.chords.includes(e)).sort((e,t)=>da(e,n)-da(t,n))[0];if(t)return t}}var vI=null,yI=null;function bI(){vI=null,yI!==null&&window.clearTimeout(yI),yI=null;let e=xE.get();e.guide?.kind===`prefix`&&xE.set({...e,guide:null})}function xI(){if(vI!==null){bI();return}U.get()||di()===null||(vI=Date.now(),xE.set({...xE.get(),guide:{kind:`prefix`,armedAt:vI}}),yI!==null&&window.clearTimeout(yI),yI=window.setTimeout(bI,oi.get().prefix.timeoutMs))}function SI(e,t){bI();let n=typeof t==`string`?[t]:t,r=_I(e,n);CE(gI(n),r?.id??null),r?.run(e)}var CI=null;function wI(){CI!==null&&window.clearTimeout(CI),CI=null;let e=xE.get();e.guide?.kind===`direct`&&xE.set({...e,guide:null})}function TI(){CI!==null||U.get()||(CI=window.setTimeout(()=>{bI(),xE.set({...xE.get(),guide:{kind:`direct`}})},400))}function EI(e){(0,g.useEffect)(()=>{let t=t=>{if(t.key===`Control`){t.repeat||TI();return}if(wI(),[`Shift`,`Alt`,`Meta`].includes(t.key))return;let n=Es(t),{firstStrokes:r,timeoutMs:i}=oi.get().prefix;if(vI!==null&&Date.now()-vI<=i){if(t.preventDefault(),t.stopImmediatePropagation(),t.key===`Escape`)return bI();SI(e,n);return}bI(),!U.get()&&n.some(e=>r.includes(e))&&(t.preventDefault(),t.stopImmediatePropagation(),xI())},n=e=>e.key===`Control`&&wI(),r=e=>{vI!==null&&(e.target instanceof Element&&e.target.closest(`.prefix-guide, .shortcut-badge, [data-prefix-arm]`)||bI())};return window.addEventListener(`keydown`,t,{capture:!0}),window.addEventListener(`keyup`,n,{capture:!0}),window.addEventListener(`pointerdown`,r,{capture:!0}),window.addEventListener(`blur`,wI),()=>{window.removeEventListener(`keydown`,t,{capture:!0}),window.removeEventListener(`keyup`,n,{capture:!0}),window.removeEventListener(`pointerdown`,r,{capture:!0}),window.removeEventListener(`blur`,wI),wI(),bI()}},[e])}function DI(e){let t=fa(),n=new Map;for(let r of la()){if(!r.prefix||!ua(r,t)||r.live?.(e)===!1)continue;let i=da(r,t);for(let e of r.chords){let t=n.get(e);(!t||i<t.rank)&&n.set(e,{action:r.id,rank:i})}}return[...n].map(([e,{action:t}])=>({stroke:e,action:t}))}function OI(e){let t=new Map(ti.map((e,t)=>[e.id,t])),n=new Map;for(let{stroke:t,action:r}of e)n.set(r,[...n.get(r)??[],t]);let r=new Map,i=[...n].sort(([e],[n])=>(t.get(e)??2**53-1)-(t.get(n)??2**53-1));for(let[e,t]of i){let n=Rs(e);r.set(n,[...r.get(n)??[],{action:e,strokes:t}])}return[...r].map(([e,t])=>({category:e,actions:t}))}var kI=e=>e===`prefix.moreCommands`?Ys(`moreCommandsPrefix`):$s(e);function AI(e){let[,t]=(0,g.useState)(0);(0,g.useEffect)(()=>{if(e===null)return;let n=window.setTimeout(()=>t(e=>e+1),Math.max(30,e-Date.now()));return()=>window.clearTimeout(n)},[e])}function jI({model:e}){B();let t=v(xE);v(oi),v(e.selection);let n=Date.now(),r=t.entries.filter(e=>n-e.at<bE),i=t.guide?.kind===`prefix`?t.guide.armedAt:null,a=i!==null&&n-i<yE?i+yE:null;AI(a??(r[0]?r[0].at+bE:null));let o=t.guide?.kind===`direct`||i!==null&&a===null;if(!o&&!t.guide&&r.length===0)return null;if(o&&t.guide){let n=t.guide.kind===`direct`,r=n?_E(pa(e,fa()),di()):DI(e);return(0,V.jsxs)(`output`,{className:`mono ${st}`,onMouseDown:e=>e.preventDefault(),children:[(0,V.jsxs)(`div`,{className:lt,children:[(0,V.jsx)(`span`,{className:`text-accent`,children:n?Ys(`directLayer`):Ys(`commandLayer`,{prefix:di()??``})}),(0,V.jsx)(`span`,{className:`keys-only text-muted`,children:Ys(n?`releaseCtrl`:`escCancel`)})]}),(0,V.jsx)(`div`,{className:ut,children:OI(r).map(t=>(0,V.jsxs)(`div`,{className:dt,children:[(0,V.jsx)(`div`,{className:`text-accent`,children:ec(t.category)}),t.actions.map(({action:t,strokes:r})=>(0,V.jsxs)(`button`,{type:`button`,className:ft,disabled:n,onClick:()=>r[0]&&SI(e,r[0]),children:[(0,V.jsx)(`span`,{className:ct,children:r.map(Ds).join(`/`)}),(0,V.jsx)(`span`,{children:kI(t)})]},t))]},t.category))})]})}return(0,V.jsxs)(`output`,{className:Tt,children:[r.map(e=>(0,V.jsxs)(MI,{at:e.at,children:[(0,V.jsx)(`span`,{className:`text-accent`,children:di()}),` + `,e.stroke,` →`,` `,e.action?kI(e.action):(0,V.jsx)(`span`,{className:`text-muted`,children:`∅`})]},e.id)),i!==null&&(0,V.jsxs)(`div`,{className:Et(!1),children:[(0,V.jsx)(`span`,{className:`text-accent`,children:di()}),` ⋯`]})]})}function MI({at:e,children:t}){let[n]=(0,g.useState)(Date.now),r=n-e>140,i={"--hud-out":`${e+bE-140-n}ms`};return(0,V.jsx)(`div`,{className:Et(r),style:i,children:t})}function NI({model:e,bindingId:t,head:n=!1}){let r=v(xE);v(oi);let i=ty().prefs.prefixTap;if(r.guide?.kind!==`prefix`||i!==`local`)return null;let a=gE({bindingId:t,reachability:pa(e,fa()),prefixKey:di()});if(!a)return null;let o=la().find(e=>e.id===t&&e.prefix)?.chords[0];return(0,V.jsx)(`button`,{type:`button`,className:`mono ${$e(n)}`,onMouseDown:e=>e.preventDefault(),onClick:t=>{t.stopPropagation(),o&&SI(e,o)},children:a})}var PI=[`workingBorder`,`runningTitle`,`taskColors`,`glyphSet`,`colorblind`];function FI(e){let{client:t}=e,n=ty(),r=cP(),i=v(Kv);lP(e),xF(e),(0,g.useEffect)(()=>{let e=()=>{$v(t).catch(()=>void 0),ak(t).catch(()=>void 0)},n=()=>document.visibilityState===`visible`&&e(),r=t.onOpen(e);return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,n),()=>{r(),window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,n)}},[t]),(0,g.useEffect)(()=>{let e=document.documentElement,t=i?i[r]:Fv(n.themes,n.prefs.theme,r),a=t?Uv(t,n.prefs):{};for(let[t,n]of Object.entries(a))e.style.setProperty(t,n);e.style.colorScheme=r;for(let t of PI)e.dataset[t]=String(n.prefs[t]);Gv.set(t?Wv(t):null);let o=document.querySelector(`meta[name="theme-color"]`);o||(o=document.createElement(`meta`),o.name=`theme-color`,document.head.append(o)),o.content=getComputedStyle(document.body).backgroundColor},[n,r,i]),(0,g.useEffect)(()=>{n.loaded&&yn.get()!==n.prefs.zen&&yn.set(n.prefs.zen)},[n.loaded,n.prefs.zen]),(0,g.useEffect)(()=>yn.subscribe(()=>{yn.get()!==Xv.get().prefs.zen&&ey(t,`zen`,yn.get())}),[t])}var II={sidebar:[{id:`sidebar.nav`,msg:`move`},{id:`sidebar.select`,msg:`open`}],files:[{id:`files.nav`,msg:`move`},{id:`files.hierarchy`,msg:`collapse`},{id:`files.open`,msg:`open`,always:!0},{id:`files.diff`,msg:`diff`,always:!0}]};function LI(e,t){return II[e].flatMap(e=>{if(t===`always`&&e.always!==!0)return[];let n=Ms(e.id);return n?[{cap:n,msg:e.msg}]:[]})}var RI=e=>`rove.web.hintUsed.${e}`,zI=_({sidebar:localStorage.getItem(RI(`sidebar`))===`1`});function BI(e){zI.get()[e]||(localStorage.setItem(RI(e),`1`),zI.set({...zI.get(),[e]:!0}))}function VI(e,t){return e.kind===`task`&&t.kind===`task`?e.taskId===t.taskId:e.kind===`page`&&t.kind===`page`?e.id===t.id:e.kind===`new`&&t.kind===`new`}var HI={entries:[],at:-1};function UI(e,t){let n=e.entries[e.at];if(n&&VI(n,t)){let n=[...e.entries];return n[e.at]=t,{entries:n,at:e.at}}let r=[...e.entries.slice(0,e.at+1),t].slice(-50);return{entries:r,at:r.length-1}}function WI(e,t,n){for(let r=e.at+t;r>=0&&r<e.entries.length;r+=t){let t=e.entries[r];if(t&&n(t))return r}return-1}var GI=_(HI);function KI(e){let t=hn.get();if(t)return{kind:`page`,id:t};let n=bn.get();if(n)return{kind:`new`,start:n};let{taskId:r,tabId:i}=e.selection.get();return r?{kind:`task`,taskId:r,tabId:i}:null}function qI(e,t){if(t.kind!==`task`)return!0;let n=e.tasks.get()?.tasks.find(e=>e.id===t.taskId);return n!==void 0&&!n.deleting}var JI=!1;function YI(e){let t=!1,n=()=>{t||(t=!0,queueMicrotask(()=>{if(t=!1,JI)return;let n=KI(e);n&&GI.set(UI(GI.get(),n))}))};n();let r=[e.selection.subscribe(n),hn.subscribe(n),bn.subscribe(n)];return()=>{for(let e of r)e()}}function XI(e,t){let n=GI.get(),r=WI(n,t,t=>qI(e,t)),i=n.entries[r];i&&(JI=!0,i.kind===`task`?(hn.set(null),bn.set(null),e.select(i.taskId,i.tabId)):i.kind===`page`?(bn.set(null),ka(i.id)):(hn.set(null),bn.set(i.start)),GI.set({entries:n.entries,at:r}),queueMicrotask(()=>{JI=!1}))}function ZI(e,t){return e.filter(e=>e.groupId===t).sort((e,t)=>(e.createdAt??``).localeCompare(t.createdAt??``)||e.title.localeCompare(t.title))}var QI=400;function $I(e){let t=null;for(let n of e.history?.messages??[]){if(n.role!==`assistant`)continue;let e=(n.blocks??[]).flatMap(e=>e.type===`text`&&e.text?[e.text]:[]).join(`
|
|
126
|
+
`).trim(),r=n.timestamp??``;e&&(!t||r>t.at)&&(t={at:r,text:e})}let n=(e.terminal?.tail??[]).map(e=>e.trimEnd()).filter(e=>e.trim()!==``),r=t?.text??n.slice(-6).join(`
|
|
127
|
+
`);return r?r.length>QI?`${r.slice(0,QI).trimEnd()}…`:r:null}function eL(e){let t=e.files.filter(e=>e.scope===`working`),n=t.length>0?`working`:`branch`,r=n===`working`?t:e.files.filter(e=>e.scope===`branch`);return{scope:n,files:r,added:r.reduce((e,t)=>e+(t.added??0),0),deleted:r.reduce((e,t)=>e+(t.deleted??0),0)}}async function tL(e,t,n){let r=new Set(e.tasks.get()?.tasks.map(e=>e.id)),i=0;try{for(let a of t.filter(e=>r.has(e)))await e.client.request(`task.archive`,{taskId:a,archived:!0,...n?{force:!0}:{}}),i++}catch(e){if(i>0&&W(z(`compare.archived`,{count:i})),e instanceof Ov&&e.code===`TASK_BUSY`)throw e;W(z(`compare.archiveFailed`,{error:G(e)}),`error`);return}W(z(`compare.archived`,{count:i}))}async function nL(e,t,n){try{for(let r of n)r.id!==t.id&&r.kept&&await e.client.request(`task.keep`,{taskId:r.id,kept:!1});await e.client.request(`task.keep`,{taskId:t.id,kept:!0})}catch(e){W(z(`compare.keepFailed`,{error:G(e)}),`error`);return}W(z(`compare.keptToast`,{title:t.label}));let r=n.filter(e=>e.id!==t.id).map(e=>e.id);r.length!==0&&U.set((0,V.jsx)(xr,{title:z(`compare.archiveTitle`),body:z(`compare.archiveBody`,{count:r.length}),confirmLabel:z(`compare.archiveConfirm`),onConfirm:()=>tL(e,r,!1),escalate:{when:e=>e instanceof Ov&&e.code===`TASK_BUSY`,label:z(`compare.archiveBusyConfirm`),title:z(`compare.archiveBusyTitle`),body:()=>z(`compare.archiveBusyBody`),run:()=>tL(e,r,!0)}}))}async function rL(e,t){try{await e.client.request(`task.keep`,{taskId:t.id,kept:!1}),W(z(`compare.unkeptToast`,{title:t.label}))}catch(e){W(z(`compare.keepFailed`,{error:G(e)}),`error`)}}var iL={title:`ROUTINES`,holdingDaemon:`keeping the daemon awake`,notHolding:`none active`,needAttention:`{count} of {total} need you ·`,paused:`paused`,newTitle:`New routine`,composerLegend:`enter create · tab fields · ←→ ↑↓ edit the focused field · esc cancel`,fieldName:`NAME`,fieldRepo:`REPO`,fieldTarget:`DELIVER TO`,fieldTargetTab:`EXISTING ENGINE TAB`,targetFresh:`New task on each run`,targetStanding:`Routine-owned standing task`,targetExisting:`Existing conversation: {task} / {tab}. Never creates or revives a session.`,fieldPrompt:`PROMPT`,fieldSchedule:`SCHEDULE (FIVE-FIELD CRON)`,namePlaceholder:`weekday dependency audit`,promptPlaceholder:`Audit dependencies and summarize risky changes.`,noProject:`Ungrouped`,cronInvalid:`not a five-field cron`,cronField:{minute:`min`,hour:`hour`,dayOfMonth:`day`,month:`month`,dayOfWeek:`weekday`},schedule:{everyDay:`every day {at}`,weekdays:`weekdays {at}`,weekends:`weekends {at}`,onWeekday:`{weekday} {at}`,everyMinute:`every minute`,everyMinutes:`every {n}m`,everyHours:`every {n}h`,hourlyAt:`hourly at :{minute}`,atClock:`at {time}`,dow:{MON:`Mondays`,TUE:`Tuesdays`,WED:`Wednesdays`,THU:`Thursdays`,FRI:`Fridays`,SAT:`Saturdays`,SUN:`Sundays`}},when:{inMinutes:`in {n}m`,inHours:`in {n}h`,inDays:`in {n}d`,minutesAgo:`{n}m ago`,hoursAgo:`{n}h ago`,now:`now`,justNow:`just now`,dateTime:`{date}, {time}`},runStatus:{dispatched:`dispatched`,revived:`revived`,skipped_cancelled:`cancelled before delivery`,skipped_precheck:`skipped (precheck)`,skipped_blocked:`skipped (task can't use it)`,skipped_missed:`skipped (missed)`,skipped_unavailable:`skipped (unavailable)`,dispatch_failed:`dispatch failed`,ran:`ran`,script_failed:`script failed`},cronNever:`valid, but never fires`,missing:{target:`Choose an existing task.`,targetTab:`Enter an existing tab id, e.g. tab-2.`,name:`Give it a name.`,repo:`Pick a project.`,prompt:`Say what it should do.`,schedule:`That schedule will not run.`},empty:`No routines scheduled.`,emptyHint:`Press n to create one.`,precheck:`precheck: {command}`,lastFailed:`last failed {when}: {reason}`,recentRuns:`RECENT RUNS`,precheckDetail:`WHY IT SKIPPED — precheck {exit} in {duration}ms`,precheckExited:`exited {code}`,precheckTimedOut:`timed out`,precheckStdout:`stdout`,precheckStderr:`stderr`,precheckNoOutput:`(no output)`,noRuns:`Not run yet.`,responses:`RESPONSES`,noResponses:"No run has reported back yet. Agents answer with `routine-respond`.",responseAwaiting:`awaiting response`,responseMissing:`no response`,noSelection:`A routine runs its prompt in a project on a schedule.`,running:`Running {name}…`,ranWith:`{name}: {status}`,latestRunNoTask:`The latest run created no task.`,runNow:`[ run now ]`,deleteTitle:`Delete routine?`,deleteBody:`{name} and its run history will be removed. Tasks it already created are untouched.`,deleteButton:`Delete`,createFailed:`Couldn't create the routine: {error}`,deleteFailed:`Couldn't delete "{name}": {error}`,enableFailed:`"{name}" stays paused: {error}`,disableFailed:`"{name}" stays enabled: {error}`,runFailed:`Couldn't run "{name}" now — schedule unchanged: {error}`},aL={title:`例行任务`,holdingDaemon:`正在保持守护进程常驻`,notHolding:`无启用项`,needAttention:`{total} 个中有 {count} 个需要处理 ·`,paused:`已暂停`,newTitle:`新建例行任务`,composerLegend:`enter 创建 · tab 切字段 · ←→ ↑↓ 编辑当前字段 · esc 取消`,fieldName:`名称`,fieldTarget:`投递目标`,fieldTargetTab:`既有引擎标签页`,targetFresh:`每次新建任务`,targetStanding:`例行任务自有的常驻任务`,targetExisting:`既有会话:{task} / {tab}。不会创建或重启会话。`,fieldRepo:`仓库`,fieldPrompt:`提示词`,fieldSchedule:`调度(五段 cron)`,namePlaceholder:`工作日依赖审计`,promptPlaceholder:`审计依赖并总结有风险的变更。`,noProject:`未分组`,cronInvalid:`不是合法的五段 cron`,cronField:{minute:`分`,hour:`时`,dayOfMonth:`日`,month:`月`,dayOfWeek:`星期`},schedule:{everyDay:`每天{at}`,weekdays:`工作日{at}`,weekends:`周末{at}`,onWeekday:`{weekday}{at}`,everyMinute:`每分钟`,everyMinutes:`每 {n} 分钟`,everyHours:`每 {n} 小时`,hourlyAt:`每小时的 :{minute}`,atClock:`{time}`,dow:{MON:`每周一`,TUE:`每周二`,WED:`每周三`,THU:`每周四`,FRI:`每周五`,SAT:`每周六`,SUN:`每周日`}},when:{inMinutes:`{n} 分钟后`,inHours:`{n} 小时后`,inDays:`{n} 天后`,minutesAgo:`{n} 分钟前`,hoursAgo:`{n} 小时前`,now:`即将`,justNow:`刚刚`,dateTime:`{date} {time}`},runStatus:{dispatched:`已派发`,revived:`已重启会话`,skipped_cancelled:`交付前已取消`,skipped_precheck:`已跳过(预检)`,skipped_blocked:`已跳过(任务暂不能接收)`,skipped_missed:`已跳过(错过时间)`,skipped_unavailable:`已跳过(不可用)`,dispatch_failed:`派发失败`,ran:`已运行`,script_failed:`脚本失败`},cronNever:`语法合法,但永远不会触发`,missing:{target:`请选择既有任务。`,targetTab:`请输入既有标签页 ID,例如 tab-2。`,name:`起个名字。`,repo:`选一个项目。`,prompt:`说明它要做什么。`,schedule:`这个调度不会触发。`},empty:`还没有例行任务。`,emptyHint:`按 n 新建一条。`,precheck:`预检:{command}`,lastFailed:`上次失败({when}):{reason}`,recentRuns:`最近执行`,precheckDetail:`为什么跳过 —— 预检{exit},耗时 {duration}ms`,precheckExited:`退出码 {code}`,precheckTimedOut:`超时`,precheckStdout:`标准输出`,precheckStderr:`标准错误`,precheckNoOutput:`(无输出)`,noRuns:`尚未执行。`,responses:`回报`,noResponses:"还没有执行回报。agent 用 `routine-respond` 回报。",responseAwaiting:`等待回报`,responseMissing:`未回报`,noSelection:`例行任务会按调度在某个项目里跑它的提示词。`,running:`正在运行 {name}…`,ranWith:`{name}:{status}`,latestRunNoTask:`最近一次执行没有创建任务。`,runNow:`[ 立即运行 ]`,deleteTitle:`删除这条例行任务?`,deleteBody:`将删除 {name} 及其执行记录。它已经创建的任务不受影响。`,deleteButton:`删除`,createFailed:`创建例行任务失败:{error}`,deleteFailed:`删除“{name}”失败:{error}`,enableFailed:`“{name}”仍处于暂停状态:{error}`,disableFailed:`“{name}”仍处于启用状态:{error}`,runFailed:`无法立即运行“{name}”——排程未受影响:{error}`},oL={title:`Kanban`,hint:`tab project · ←↓↑→ card · enter detail · n new · d delete · r refresh · esc close`,loading:`Loading issues…`,noRepos:"No projects yet — add one with `rove add <path>`, or file a story with `rove api issue-create`.",empty:"No issues — agents file them via `rove api issue-create`.",readFailed:"Couldn't read this project's stories: {error}. Run `rove doctor`, then reopen Kanban.",readFailedToast:`Couldn't read stories for {repo}: {error}`,columnEmpty:`No cards`,column:{backlog:`Backlog`,inProgress:`In progress`,parked:`Parked`,done:`Done`},more:`+{count} more`,attention:`{count} need you`,turnComplete:`turn done`,menu:{setStatus:`status → {status}`},detail:{status:{open:`open`,doing:`doing`,hold:`hold`,done:`done`},statusLabel:`STATUS`,created:`created {date}`,linked:`linked to a session`,titleLabel:`TITLE`,description:`DESCRIPTION`,noDescription:`No description.`,attachHint:`paste a path / ctrl+v screenshot → inserts an image placeholder`,engine:`ENGINE`,workspace:`WORKSPACE`,placement:{worktree:`New worktree task — its own workspace`,projectWorktree:`New worktree — as a chattab in the project workspace`,project:`Project checkout — a new chattab, no worktree`},jumpLabel:`AFTER START`,jump:{stay:`Stay on the board`,follow:`Jump to the session`},startLegend:`enter/ctrl+enter start · tab fields · ←→ status/engine · ↑↓ workspace · esc save & close`,sessionLabel:`SESSION`,openAction:`Open the linked session ↵`,unlinkAction:`Unlink`,openLegend:`enter open the focused action · tab fields · ←→ status · unlink returns the card to Backlog · esc save & close`,eventsLabel:`EVENTS`,eventsLoading:`Loading events…`,eventsNone:`No engine events recorded yet.`,doneNote:`Done stories have nothing left to start — set the status back to reopen one · esc save & close`,startedBackground:`Started in background: {title}`,newStory:`NEW STORY`,createLegend:`ctrl+s save · enter/ctrl+enter save & start · tab fields · esc cancel`},confirmDelete:{title:`Delete story #{id}?`,body:`“{title}” will be removed from the tracker. A linked task, branch, or worktree is left untouched.`},deleteFailed:`Couldn't delete story #{id}: {error}`,createFailed:`Couldn't create the story: {error}`,updateFailed:`Couldn't save story #{id}: {error}`,statusFailed:`Story #{id} stays in its old column: {error}`,linkFailed:`Story #{id} isn't linked to its task: {error}`,unlinkFailed:`Story #{id} is still linked: {error}`},sL={title:`看板`,hint:`tab 切项目 · ←↓↑→ 选卡片 · enter 详情 · n 新建 · d 删除 · r 刷新 · esc 关闭`,loading:`正在加载 issues…`,noRepos:"还没有项目——用 `rove add <路径>` 添加一个,或用 `rove api issue-create` 创建一个 story。",empty:"暂无 issue——agent 可通过 `rove api issue-create` 创建。",readFailed:"读取该项目的 story 失败:{error}。请运行 `rove doctor`,再重新打开看板。",readFailedToast:`读取 {repo} 的 story 失败:{error}`,columnEmpty:`暂无卡片`,column:{backlog:`待办`,inProgress:`进行中`,parked:`搁置`,done:`已完成`},more:`还有 {count} 条`,attention:`{count} 张等你处理`,turnComplete:`回合完成`,menu:{setStatus:`状态 → {status}`},detail:{status:{open:`待办`,doing:`进行中`,hold:`搁置`,done:`已完成`},statusLabel:`状态`,created:`创建于 {date}`,linked:`已关联会话`,titleLabel:`标题`,description:`描述`,noDescription:`暂无描述。`,attachHint:`粘贴路径 / ctrl+v 贴截图 → 插入图片占位行`,engine:`引擎`,workspace:`工作区`,placement:{worktree:`新建 worktree 任务——独立工作区`,projectWorktree:`新建 worktree——作为项目工作区里的 chattab`,project:`项目主目录——新开 chattab,不建 worktree`},jumpLabel:`启动后`,jump:{stay:`留在看板`,follow:`跳转到会话`},startLegend:`enter/ctrl+enter 启动 · tab 切字段 · ←→ 状态/引擎 · ↑↓ 工作区 · esc 保存关闭`,sessionLabel:`会话`,openAction:`打开关联会话 ↵`,unlinkAction:`解除关联`,openLegend:`enter 执行选中操作 · tab 切字段 · ←→ 状态 · 解除关联把卡片退回 Backlog · esc 保存关闭`,eventsLabel:`事件`,eventsLoading:`正在加载事件…`,eventsNone:`暂无引擎事件记录。`,doneNote:`已完成的 story 无需启动——改回状态即可重新打开 · esc 保存关闭`,startedBackground:`已在后台启动:{title}`,newStory:`新建 STORY`,createLegend:`ctrl+s 仅保存 · enter/ctrl+enter 保存并启动 · tab 切字段 · esc 取消`},confirmDelete:{title:`删除 story #{id}?`,body:`「{title}」将从 tracker 中移除。已关联的任务、分支、worktree 不受影响。`},deleteFailed:`删除 story #{id} 失败:{error}`,createFailed:`创建 story 失败:{error}`,updateFailed:`保存 story #{id} 失败:{error}`,statusFailed:`Story #{id} 仍留在原来的列:{error}`,linkFailed:`Story #{id} 未能关联到它的任务:{error}`,unlinkFailed:`Story #{id} 仍处于关联状态:{error}`},cL={title:`ISSUES`,noRepo:`no project`,empty:`No open issues.`,assignedFilter:`assigned to me`,starting:`Starting work on #{number}…`,startedNoEngine:`Created {title}, but its engine did not start.`,linkedChip:`→ {title}`,openingLinked:`Opening {title}…`,startFailed:`Couldn't start work on #{number}: {error}`,errorHint:{noRemote:"Add a GitHub remote (`git remote add origin <url>`) and try again, or press q / esc to close.",ghMissing:"Install the `gh` CLI and authenticate, or press q / esc to close.",auth:"Run `gh auth login`, or press q / esc to close.",fallback:`{message} · press q / esc to close`}},lL={title:`议题`,noRepo:`无项目`,empty:`没有开放的议题。`,assignedFilter:`分配给我的`,starting:`正在开始处理 #{number}…`,startedNoEngine:`已创建 {title},但引擎没有启动。`,linkedChip:`→ {title}`,openingLinked:`正在打开 {title}…`,startFailed:`开始处理 #{number} 失败:{error}`,errorHint:{noRemote:"添加 GitHub remote(`git remote add origin <url>`)后重试,或按 q / esc 关闭。",ghMissing:"安装 `gh` CLI 并登录,或按 q / esc 关闭。",auth:"执行 `gh auth login`,或按 q / esc 关闭。",fallback:`{message} · 按 q / esc 关闭`}};function uL(){let e=B()===`zh`;return{kanban:e?sL:oL,auto:e?aL:iL,items:e?lL:cL,nav:(e?Vr:Br).nav,group:(e?Vr:Br).group,common:e?Tr:wr}}function dL(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??e))}function fL(){let{auto:e}=uL();return(t,n)=>{let r=e;for(let e of t.replace(/^automations\./,``).split(`.`))r=r&&typeof r==`object`?Reflect.get(r,e):void 0;return typeof r==`string`?n?dL(r,n):r:t}}function pL(e){return e instanceof Error?e.message:String(e)}function mL(e){return e.replace(/^\/private\//,`/`).replace(/\/+$/,``)}function hL(e,t){let n=e.split(`/`).filter(Boolean),r=n[n.length-1]??e;return t.some(t=>t!==e&&t.split(`/`).filter(Boolean).pop()===r)&&n.length>1?`${n[n.length-2]}/${r}`:r}function gL(...e){let t=new Set,n=[];for(let r of e.flat()){if(!r||r.startsWith(`ssh://`))continue;let e=mL(r);t.has(e)||(t.add(e),n.push(r))}return n}function _L(e){return gL((v(e.tasks)?.tasks??[]).filter(e=>!MT(e)).map(e=>e.repo))}function vL(e){let t=v(e.tasks),{taskId:n}=v(e.selection);return t?.tasks.find(e=>e.id===n)?.repo}function yL(e){let[t,n]=(0,g.useState)(0);return(0,g.useEffect)(()=>{let t=window.setInterval(()=>n(e=>e+1),e);return()=>window.clearInterval(t)},[e]),[t,(0,g.useCallback)(()=>n(e=>e+1),[])]}function bL(e){return e instanceof HTMLElement?e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName):!1}function xL(e){let t=(0,g.useRef)(e);t.current=e,(0,g.useEffect)(()=>{let e=e=>{if(e.defaultPrevented||U.get()||fn.get())return;let n=e.target instanceof HTMLElement?e.target:null;bL(n)||n?.closest(`.rail, .side-panel, .xterm`)||e.metaKey||e.altKey||e.ctrlKey&&e.key.toLowerCase()===`c`&&window.getSelection()?.toString()||t.current(e)&&(e.preventDefault(),e.stopPropagation())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[])}function SL(){let e=(0,g.useRef)(null);return(0,g.useEffect)(()=>e.current?.focus(),[]),e}var CL={working:`info`,waiting:`warning`,error:`attention`,done:`success`,idle:`muted`},wL={prOpen:``,prMerged:``,prClosed:``};function TL(e){let t=EL(e);return{look:t,tone:CL[t]}}function EL(e){switch(e?.kind){case`busy`:case`running`:return`working`;case`needs-input`:return`waiting`;case`attention`:return e.reason===`rate_limited`?`waiting`:`error`;case`unseen`:return`done`;default:return`idle`}}function DL(e){return e.rowStatus?.kind===`needs-input`||e.rowStatus?.kind===`attention`}var OL={busy:0,attention:1,"needs-input":2,running:3,unseen:4,idle:5};function kL(e){let t;for(let{rowStatus:n}of e)n&&(!t||OL[n.kind]<OL[t.kind]||n.kind===t.kind&&n.since>t.since)&&(t=n);return t}function AL(e,t,n){if(!e)return null;if(e.lifecycle===`merged`)return{glyph:wL.prMerged,tone:n?`text-muted`:`text-merged`,state:`merged`};if(e.lifecycle===`closed`)return{glyph:wL.prClosed,tone:`text-muted`,state:`closed`};if(e.lifecycle!==`open`&&e.lifecycle!==`ready_to_merge`&&e.lifecycle!==`unknown`)return null;let r=t===`conflict`?`conflict`:t===`failing`?`failing`:t===`passing`?`passing`:e.checkState===`pending`?`pending`:void 0,i=n?`text-muted`:r===`conflict`||r===`failing`?`text-error`:r===`passing`?`text-success`:`text-muted`;return{glyph:wL.prOpen,tone:i,state:`open`,...r?{checks:r}:{}}}function jL(e){return AL(e.pr,e.prChip,e.prChipStale===!0)}function ML(e){return AL(e,(e.mergeable??``).toUpperCase()===`CONFLICTING`?`conflict`:e.checkState===`failing`?`failing`:e.checkState===`passing`?`passing`:null,!1)}function NL(e){let t=e=>e.state===`open`?e.tone===`text-error`?0:1:e.state===`merged`?2:3;return[...e].sort((e,n)=>t(e)-t(n))[0]}function PL({tone:e,children:t}){return(0,V.jsx)(`span`,{className:Fe(`flex-none font-mono text-meta`,e&&XE[e]),children:t})}var FL=`mt-3 grid grid-cols-[repeat(auto-fit,minmax(min(100%,17rem),1fr))] items-start gap-x-5 gap-y-6`,IL=e=>e?`flex min-w-0 flex-col gap-2 pt-2 [border-top:var(--hairline)_solid_var(--accent)]`:`flex min-w-0 flex-col gap-2 pt-2 [border-top:var(--hairline)_solid_var(--line)]`,LL=`flex min-w-0 items-center gap-2`,RL=`min-w-0 truncate font-bold`,zL=`truncate font-mono text-meta text-muted`,BL=`m-0 line-clamp-6 whitespace-pre-wrap wrap-anywhere`,VL=`flex min-w-0 flex-col`,HL=`flex min-w-0 items-baseline gap-2 py-px font-mono text-meta`,UL=`flex flex-wrap gap-x-3.5 gap-y-1 font-mono text-meta`,WL=`flex min-w-0 flex-wrap items-center gap-x-3.5 gap-y-0.5 px-2.5 py-1 font-mono text-meta`,GL=1.2,KL=.3,qL=20,JL=.35,YL=.25,XL=.12,ZL=2,QL=1,$L={error:{dots:[0,4,8,2,6],bright:1},done:{dots:[3,7,5,2],bright:1},idle:{dots:[1,2,5,8,7,6,3,0],bright:.6}},eR=Array.from({length:9},(e,t)=>Math.hypot(t%3-1,Math.floor(t/3)-1));function tR(e){return JL+.65*(.5+.5*Math.cos(2*Math.PI*e/GL))}function nR(e,t,n,r=1){switch(e){case`working`:{let e=t*80/1e3/r;return eR.map(t=>tR(e-t*KL))}case`waiting`:{let e=[0,1,4,5].includes(Math.floor(t/r)%qL);return Array(9).fill(e?YL:1)}default:{let t=$L[e],r=Array(9).fill(XL);return t?.dots.forEach((e,i)=>{let a=Math.min(Math.max(n-i*QL,0),ZL)/ZL;r[e]=t.bright*a+XL*(1-a)}),r}}}function rR(e,t){let n=$L[e];return!n||t<(n.dots.length-1)*QL+ZL}var iR=3,aR=new Set,oR;function sR(e,t){let n=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches,r=1/0,i=e.held+t-e.step,a=rR(e.look,n?r:i);return nR(e.look,t,n?r:i,n?iR:1).forEach((t,n)=>{let r=e.el.children[n].style;r.opacity=t.toFixed(3)}),a}function cR(){let e=Math.floor(performance.now()/80);for(let t of aR)sR(t,e)||aR.delete(t);lR()}function lR(){oR=aR.size?window.setTimeout(cR,80-performance.now()%80+2):void 0}function uR(e,t,n){let r=Math.floor(performance.now()/80),i=n>0?Math.max(Date.now()-n,0):1/0,a={el:e,look:t,step:r,held:Math.floor(i/80)};return sR(a,r)&&(aR.add(a),oR===void 0&&lR()),()=>{aR.delete(a)}}function dR({status:e}){let{look:t,tone:n}=TL(e);return(0,V.jsx)(pR,{look:t,tone:n,since:e?.since??0},t)}var fR=e=>e===`muted`?`text-muted`:e===`ink`?`text-ink`:XE[e];function pR({look:e,tone:t,since:n}){let r=(0,g.useRef)(null),[i]=(0,g.useState)(n);return(0,g.useLayoutEffect)(()=>{let t=r.current;return t?uR(t,e,i):void 0},[e,i]),(0,V.jsx)(`span`,{ref:r,className:`inline-grid flex-none grid-cols-[repeat(3,3px)] auto-rows-[3px] gap-px self-center ${fR(t)}`,"aria-hidden":`true`,children:Array.from({length:9},(e,t)=>(0,V.jsx)(`i`,{className:`rounded-full bg-current opacity-12`},t))})}var mR=6;function hR(e,t){let[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(()=>q(e,`diff.files`,{taskId:t.id})??null),o=`${t.rowStatus?.kind??``}:${t.rowStatus?.since??0}`,s=JSON.stringify(t.changes??null);return(0,g.useEffect)(()=>{let n=!0;return sl(e,`output.read`,{taskId:t.id,limit:8}).then(e=>n&&r($I(e)),()=>n&&r(null)),()=>{n=!1}},[e,t.id,o]),(0,g.useEffect)(()=>{let n=!0;return sl(e,`diff.files`,{taskId:t.id}).then(e=>n&&a(e),()=>{}),()=>{n=!1}},[e,t.id,s,o]),{reply:n,changes:i?eL(i):null}}function gR({changes:e,onOpen:t}){if(!e)return(0,V.jsx)(`p`,{className:Zt,children:`…`});if(e.files.length===0)return(0,V.jsx)(`p`,{className:`m-0 font-mono text-meta text-subtle`,children:z(`compare.noChanges`)});let n=e.files.length-mR;return(0,V.jsxs)(`div`,{className:VL,children:[(0,V.jsxs)(`p`,{className:`m-0 flex gap-2 font-mono text-meta text-muted`,children:[(0,V.jsx)(`span`,{children:z(`compare.files`,{count:e.files.length})}),e.added>0&&(0,V.jsxs)(PL,{tone:`added`,children:[`+`,e.added]}),e.deleted>0&&(0,V.jsxs)(PL,{tone:`removed`,children:[`−`,e.deleted]})]}),e.files.slice(0,mR).map(n=>(0,V.jsxs)(H,{variant:`row`,className:`${HL} text-left [&:hover]:underline`,title:n.path,onClick:()=>t(n.path,e.scope),children:[(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.path}),n.added?(0,V.jsxs)(PL,{tone:`added`,children:[`+`,n.added]}):null,n.deleted?(0,V.jsxs)(PL,{tone:`removed`,children:[`−`,n.deleted]}):null]},n.path)),n>0&&(0,V.jsx)(`span`,{className:`font-mono text-meta text-subtle`,children:z(`compare.more`,{count:n})})]})}function _R({model:e,row:t,round:n}){let{reply:r,changes:i}=hR(e,t),{look:a}=TL(t.rowStatus),o=t.kept===!0,s=(n,r)=>{e.select(t.id),gs({taskId:t.id,path:n,scope:r})};return(0,V.jsxs)(`section`,{className:IL(o),"data-attempt":t.id,children:[(0,V.jsxs)(`div`,{className:LL,children:[(0,V.jsx)(dR,{status:t.rowStatus}),(0,V.jsx)(`span`,{className:RL,children:t.engine?.name??t.label}),(0,V.jsx)(`span`,{className:`flex-none text-meta text-muted`,children:z(`compare.status.${a}`)}),o&&(0,V.jsx)(`span`,{className:`ml-auto flex-none font-mono text-meta text-accent`,children:z(`compare.kept`)})]}),(0,V.jsx)(`span`,{className:zL,title:t.branch,children:t.branch}),r?(0,V.jsx)(`p`,{className:BL,children:r}):(0,V.jsx)(`p`,{className:`m-0 text-muted`,children:z(`compare.noReply`)}),(0,V.jsx)(gR,{changes:i,onOpen:s}),(0,V.jsxs)(`div`,{className:UL,children:[(0,V.jsx)(H,{hit:`tight`,onClick:()=>e.select(t.id),children:z(`compare.terminal`)}),(0,V.jsx)(H,{hit:`tight`,onClick:()=>s(`.`,i?.scope??`working`),children:z(`compare.diff`)}),o?(0,V.jsx)(H,{hit:`tight`,onClick:()=>void rL(e,t),children:z(`compare.unkeep`)}):(0,V.jsx)(H,{hit:`tight`,onClick:()=>void nL(e,t,n),children:z(`compare.keep`)})]})]})}function vR({model:e}){B();let t=v(_n),n=v(e.tasks),r=SL(),i=t&&n?ZI(n.tasks,t):[];return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:r,onKeyDown:e=>{e.metaKey||e.ctrlKey||e.altKey||e.key!==`q`&&e.key!==`Escape`||(e.preventDefault(),hn.set(null))},children:[(0,V.jsx)(`h1`,{className:bN,children:z(`compare.title`)}),i.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:z(`compare.empty`)}):(0,V.jsx)(`div`,{className:FL,children:i.map(t=>(0,V.jsx)(_R,{model:e,row:t,round:i},t.id))})]})}function yR(e){let t=Math.floor(e/6e4),n=Math.floor(t/60);return{minutes:t,hours:n,days:Math.floor(n/24)}}function bR(e,t=Date.now()){let n=Math.max(0,t-e),r=Math.floor(n/1e3);if(r<60)return`${r}s`;let{minutes:i,hours:a,days:o}=yR(n);return i<60?`${i}m`:a<24?`${a}h`:`${o}d`}var xR=[{id:`issues`,label:`reviewQueue.sourceIssues`},{id:`reviews`,label:`reviewQueue.sourceReviews`}];function SR(){B();let e=v(tj);return(0,V.jsx)(`span`,{className:`flex items-baseline gap-3 font-mono text-meta`,children:xR.map(t=>t.id===e?(0,V.jsx)(`span`,{className:`text-ink`,children:z(t.label)},t.id):(0,V.jsx)(H,{onClick:()=>tj.set(t.id),children:z(t.label)},t.id))})}var CR={passing:`reviewQueue.checksPassing`,failing:`reviewQueue.checksFailing`,pending:`reviewQueue.checksPending`},wR={missing:`reviewQueue.gh.missing`,unauthenticated:`reviewQueue.gh.unauthenticated`,failed:`reviewQueue.gh.failed`};function TR(e){let{pr:t}=e,n=Date.parse(t.createdAt),r=[t.isDraft?z(`reviewQueue.draft`):``,t.fork?z(`reviewQueue.fork`):``,t.checks?z(CR[t.checks]):``];return(0,V.jsxs)(`div`,{"data-row":e.index,className:EN(e.at),onClick:e.onPick,children:[(0,V.jsxs)(`div`,{className:DN,children:[(0,V.jsxs)(`span`,{className:`mono ${ON}`,children:[t.nameWithOwner.split(`/`)[1],`#`,t.number]}),(0,V.jsx)(`span`,{className:AN,children:t.title}),(0,V.jsx)(H,{disabled:e.busy,onClick:e.onReview,children:z(`reviewQueue.start`)})]}),(0,V.jsxs)(`div`,{className:kN,children:[(0,V.jsx)(`span`,{className:AN,children:[t.author,...r].filter(Boolean).join(`, `)}),(0,V.jsxs)(`span`,{className:`mono`,children:[`+`,t.additions,` −`,t.deletions]}),(0,V.jsx)(`span`,{className:`mono`,children:Number.isFinite(n)?bR(n,e.now):``})]})]})}function ER({model:e}){B();let t=e.client,[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(null),[o,s]=(0,g.useState)(0),[c,l]=(0,g.useState)(null),[u,d]=(0,g.useState)(null),[f,p]=(0,g.useState)(0),m=(0,g.useRef)(!1),h=SL(),_=(0,g.useRef)(null);(0,g.useEffect)(()=>{let e=!0,n=m.current;return m.current=!1,a(null),t.request(`review.queue`,n?{refresh:!0}:{}).then(t=>e&&r(t)).catch(t=>{e&&(a(pL(t)),r({prs:[],other:0}))}),()=>{e=!1}},[t,f]);let v=n?.prs??[],y=Math.min(o,Math.max(0,v.length-1));(0,g.useEffect)(()=>{_.current?.querySelector(`[data-row="${y}"]`)?.scrollIntoView({block:`nearest`})},[y]);let b=async e=>{if(c===null){l(e.number),d(z(`reviewQueue.preparing`,{number:e.number}));try{let{ref:n}=await t.request(`review.prepare`,{repo:e.repo,number:e.number});Sn(nj(e,n,z(`reviewQueue.prompt`,{number:e.number,repo:e.nameWithOwner,title:e.title,url:e.url,head:e.headRef,base:e.baseRef})))}catch(t){W(z(`reviewQueue.failed`,{number:e.number,error:pL(t)}),`error`)}finally{l(null),d(null)}}};xL(e=>{if(e.ctrlKey)return e.key===`c`&&(hn.set(null),!0);switch(e.key){case`Escape`:case`q`:return hn.set(null),!0;case`j`:case`ArrowDown`:return s(Math.min(v.length-1,y+1)),!0;case`k`:case`ArrowUp`:return s(Math.max(0,y-1)),!0;case`r`:return m.current=!0,p(e=>e+1),!0;case`Enter`:{let e=v[y];return e&&b(e),!0}default:return!1}});let x=Date.now();return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:h,children:[(0,V.jsxs)(`div`,{className:xN,children:[(0,V.jsx)(`h1`,{className:bN,children:z(`reviewQueue.title`)}),(0,V.jsx)(SR,{})]}),i?(0,V.jsx)(`p`,{className:`text-error`,children:i}):n===null?(0,V.jsx)(`p`,{className:`text-muted`,children:`…`}):n.reason?(0,V.jsx)(`p`,{className:`text-muted`,children:z(wR[n.reason])}):v.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:z(`reviewQueue.empty`)}):(0,V.jsx)(`div`,{className:TN,ref:_,children:v.map((e,t)=>(0,V.jsx)(TR,{pr:e,index:t,at:t===y,now:x,busy:c!==null,onPick:()=>s(t),onReview:()=>void b(e)},`${e.nameWithOwner}#${e.number}`))}),n&&n.other>0&&(0,V.jsx)(`p`,{className:`text-muted mx-0 mt-2 mb-0 text-meta leading-[inherit]`,children:z(`reviewQueue.other`,{count:n.other})}),u&&(0,V.jsx)(`p`,{className:`text-muted mx-0 mt-2 mb-0 text-meta leading-[inherit]`,children:u})]})}var DR=30;function OR(){let{items:e}=uL();return t=>{let n=t.indexOf(`: `);switch(n>=0?t.slice(0,n):`failed`){case`no-remote`:return e.errorHint.noRemote;case`gh-missing`:return e.errorHint.ghMissing;case`auth`:return e.errorHint.auth;default:return dL(e.errorHint.fallback,{message:t})}}}function kR({model:e}){let{items:t,common:n}=uL(),r=OR(),i=e.client,a=v(e.tasks),o=_L(e),s=vL(e),[c,l]=(0,g.useState)(()=>{let e=s?o.findIndex(e=>mL(e)===mL(s)):-1;return Math.max(0,e)}),u=o[c],d=(e,t)=>({repo:e,limit:DR,...t?{assignee:`@me`}:{}}),f=e=>Object.fromEntries(e.links.map(e=>[e.number,e.taskId])),[p,m]=(0,g.useState)(()=>u?q(i,`workitem.list`,d(u,!1))?.items??null:null),[h,_]=(0,g.useState)(()=>{let e=u?q(i,`workitem.links`,{repo:u}):void 0;return e?f(e):{}}),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),[C,w]=(0,g.useState)(0),[T,E]=(0,g.useState)(0),[D,O]=(0,g.useState)(!1),[k,A]=(0,g.useState)(null),j=SL(),ee=(0,g.useRef)(!1);(0,g.useEffect)(()=>{let e=!0;if(!u){m([]);return}b(null);let t=ee.current;ee.current=!1;let n=d(u,x),r=q(i,`workitem.list`,n);return r&&m(r.items),i.request(`workitem.list`,{...n,...t?{refresh:!0}:{}}).then(t=>e&&m(ol(i,`workitem.list`,n,t).items)).catch(t=>{e&&(b(pL(t)),m([]))}),sl(i,`workitem.links`,{repo:u}).then(t=>e&&_(f(t))).catch(()=>e&&_({})),()=>{e=!1}},[i,u,x,C,a?.tasks.length]);let M=p??[],N=Math.min(T,Math.max(0,M.length-1));(0,g.useEffect)(()=>A(null),[u,x]);let P=(0,g.useRef)(null);(0,g.useEffect)(()=>{P.current?.querySelector(`[data-row="${N}"]`)?.scrollIntoView({block:`nearest`})},[N]);let F=e=>a?.tasks.find(t=>t.id===e)?.label??e,I=t=>{hn.set(null),e.select(t)},te=async()=>{let e=M[N];if(!e||!u||D)return;let n=h[e.number];if(n){A(dL(t.openingLinked,{title:F(n)})),I(n);return}O(!0),A(dL(t.starting,{number:e.number}));try{let n=await i.request(`workitem.start`,{repo:u,number:e.number});n.started?I(n.taskId):A(dL(t.startedNoEngine,{title:n.title}))}catch(n){W(dL(t.startFailed,{number:e.number,error:pL(n)}),`error`)}finally{O(!1)}};xL(e=>{if(e.ctrlKey)return e.key===`c`&&(hn.set(null),!0);switch(e.key){case`Escape`:case`q`:return hn.set(null),!0;case`j`:case`ArrowDown`:return E(Math.min(M.length-1,N+1)),!0;case`k`:case`ArrowUp`:return E(Math.max(0,N-1)),!0;case`Tab`:return l(t=>o.length?(t+(e.shiftKey?o.length-1:1))%o.length:0),!0;case`a`:return S(e=>!e),!0;case`r`:return ee.current=!0,w(e=>e+1),!0;case`Enter`:return te(),!0;default:return!1}});let ne=Date.now();return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:j,children:[(0,V.jsxs)(`div`,{className:xN,children:[(0,V.jsx)(`h1`,{className:bN,children:t.title}),(0,V.jsx)(SR,{}),(0,V.jsxs)(`span`,{className:`mono touch:empty:hidden! text-muted ${SN(!0)}`,children:[u?hL(u,o):t.noRepo,x?` ${t.assignedFilter}`:``]})]}),y?(0,V.jsxs)(`div`,{className:TN,children:[(0,V.jsx)(`p`,{className:`text-error`,children:y}),(0,V.jsx)(`p`,{className:`text-muted`,children:r(y)})]}):p===null?(0,V.jsx)(`p`,{className:`text-muted`,children:n.loading}):M.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:t.empty}):(0,V.jsx)(`div`,{className:TN,ref:P,children:M.map((e,n)=>{let r=h[e.number],i=Date.parse(e.updatedAt);return(0,V.jsxs)(`div`,{"data-row":n,className:EN(n===N),onClick:()=>n===N?void te():E(n),children:[(0,V.jsxs)(`div`,{className:DN,children:[(0,V.jsxs)(`span`,{className:`mono ${ON}`,children:[`#`,e.number]}),(0,V.jsx)(`span`,{children:e.title})]}),(0,V.jsxs)(`div`,{className:kN,children:[(0,V.jsx)(`span`,{className:AN,children:[e.author,...e.labels.slice(0,2)].filter(Boolean).join(`, `)}),r&&(0,V.jsx)(`span`,{children:dL(t.linkedChip,{title:F(r)})}),(0,V.jsx)(`span`,{className:`mono`,children:Number.isFinite(i)?bR(i,ne):``})]})]},e.number)})}),k&&(0,V.jsx)(`p`,{className:`text-muted mx-0 mt-2 mb-0 text-meta leading-[inherit]`,children:k})]})}function AR({model:e}){return v(tj)===`reviews`?(0,V.jsx)(ER,{model:e}):(0,V.jsx)(kR,{model:e})}var jR={backlog:`active`,in_progress:`active`,in_review:`parked`,error:`parked`,done:`terminal`,canceled:`terminal`,open:`active`,doing:`active`,hold:`parked`};function MR(e){return jR[e]??`parked`}var NR=[`backlog`,`in_progress`,`parked`,`done`];function PR(e,t,n){let r=e.find(e=>e.issues.length>0)?.issues[0]?.id??null;if(t==null)return r;let i=-1,a=-1;for(let[n,r]of e.entries()){let e=r.issues.findIndex(e=>e.id===t);if(e!==-1){i=n,a=e;break}}if(i===-1)return r;if(n===`up`||n===`down`){let r=e[i]?.issues??[],o=n===`up`?a-1:a+1;return r[Math.max(0,Math.min(o,r.length-1))]?.id??t}let o=n===`left`?-1:1;for(let n=i+o;n>=0&&n<e.length;n+=o){let r=e[n]?.issues??[];if(r.length!==0)return r[Math.min(a,r.length-1)]?.id??t}return t}function FR(e,t){let n=MR(e.status);return n===`terminal`?`done`:n===`parked`?`parked`:e.taskId!==void 0&&e.taskId!==``&&(t?.(e.taskId)??!0)||e.status===`doing`?`in_progress`:`backlog`}function IR(e,t){let n=0;return{columns:e.map(e=>{if(e.key!==`in_progress`)return e;let r=[],i=[];for(let n of e.issues)n.taskId!==void 0&&n.taskId!==``&&t(n.taskId)?r.push(n):i.push(n);return n=r.length,r.length===0?e:{...e,issues:[...r,...i]}}),attentionCount:n}}function LR(e,t){return e.created===t.created?t.id-e.id:e.created<t.created?1:-1}function RR(e,t){let n={backlog:[],in_progress:[],parked:[],done:[]};for(let r of e)n[FR(r,t)].push(r);return NR.map(e=>{let t=e===`done`||e===`parked`,r=n[e].sort(LR);return!t||r.length<=20?{key:e,issues:r,hiddenCount:0}:{key:e,issues:r.slice(0,20),hiddenCount:r.length-20}})}var zR=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`application/pdf`],BR=5242880;function VR(e,t){return/\.pdf$/i.test(e)?`pdf[${t}]`:`images[${t}]`}function HR(e){let t=-1;for(let n of e.matchAll(/^(?:images|pdf)\[(\d+)\]:/gm)){let e=Number.parseInt(n[1],10);e>t&&(t=e)}return t+1}function UR(e,t){let n=e.replace(/\s+$/,``),r=HR(e);for(let e of t){let t=`${VR(e,r)}: ${e}`;n=n.length>0?`${n}\n${t}`:t,r+=1}return n}function WR(e){return Array.from(e??[]).filter(e=>zR.includes(e.type))}function GR(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}async function KR(e,t){let n=GR(new Uint8Array(await t.arrayBuffer()));return(await e.request(`attachment.put`,{mime:t.type,data:n})).path}var qR=[`worktree`,`projectWorktree`,`project`];async function JR(e,t){let n=t.placement===`project`?`project`:`worktree`,{title:r,prompt:i}=await e.request(`issue.prompt`,{repo:t.repo,id:t.issue.id,where:n}),a=[];if(t.placement!==`project`){let{taskId:n}=await e.request(`task.create`,{repo:t.repo,engine:t.engine,title:r,prompt:i});if(await e.request(`issue.update`,{repo:t.repo,id:t.issue.id,task:n}).catch(e=>a.push({kind:`link`,error:pL(e)})),t.placement===`worktree`)return{taskId:n,warnings:a};let o=await e.request(`task.openMain`,{repo:t.repo}),s=await e.request(`tab.openViewport`,{taskId:o.taskId,viewTaskId:n});return{taskId:o.taskId,tabId:s.tabId,warnings:a}}let{taskId:o}=await e.request(`task.openMain`,{repo:t.repo}),{tabId:s,taskId:c=o}=await e.request(`tab.new`,{taskId:o,kind:`engine`,engine:t.engine,prompt:i});return await e.request(`issue.setStatus`,{repo:t.repo,id:t.issue.id,status:`doing`}).catch(e=>a.push({kind:`status`,error:pL(e)})),{taskId:c,tabId:s,warnings:a}}var YR=`text-meta leading-[inherit]`,XR=`text-meta`,ZR=`flex flex-col gap-2 overflow-hidden`,QR=`flex min-w-0 items-baseline gap-3`,$R=`font-bold whitespace-nowrap text-accent touch:relative touch:after:absolute touch:after:-inset-x-2 touch:after:-inset-y-1 touch:after:content-['']`,ez=`min-w-0 truncate ${XR}`,tz=`ml-auto ${YR}`,nz=`grid min-h-0 flex-1 grid-cols-4 gap-2`,rz=`flex min-h-0 flex-1 flex-col gap-2`,iz=`flex gap-4 ${XR}`,az=e=>`flex items-baseline gap-1.5 whitespace-nowrap touch:relative touch:after:absolute touch:after:-inset-x-1.5 touch:after:-top-1 touch:after:-bottom-3 touch:after:content-[''] ${e?`font-bold text-accent`:`text-muted`}`,oz={in_progress:`text-accent`,parked:`text-warning`,done:`text-success`},sz=e=>`flex min-h-0 flex-col rounded-md border-hairline border-line p-2 ${e?`flex-1`:``}`,cz=e=>`m-0 mb-2 flex justify-between gap-2 font-mono text-meta font-bold normal-nums ${oz[e]??`text-muted`}`,lz=`flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto`,uz=`m-0 ${XR}`,dz=e=>`flex flex-none cursor-pointer flex-col gap-1 rounded-sm border-hairline bg-surface px-2.5 py-2 ${e.selected?`border-accent`:e.attention?`border-warning`:`border-line hover:border-line-active`}`,fz=`flex justify-between gap-2`,pz=e=>`min-w-0 font-bold wrap-anywhere ${e?`text-muted`:``}`,mz=`h-[2.8em] overflow-hidden whitespace-pre-wrap wrap-anywhere ${YR}`,hz=`flex justify-between gap-2 ${XR}`,gz=`w-[min(680px,calc(100vw-32px))]!`,_z=`flex items-baseline gap-3.5`,vz=`flex items-baseline gap-2.5`,yz=`tracking-[0] normal-case`,bz=`min-h-40 font-mono`,xz=`flex flex-col items-start gap-0.5`,Sz=e=>`text-left font-mono text-meta whitespace-pre-wrap normal-nums ${e?`font-bold text-accent`:`font-normal text-muted`}`,Cz=YR,wz=`flex flex-col gap-1 [&_p]:m-0`,Tz=`flex gap-2 ${XR}`,Ez=`min-w-[4ch] text-right`,Dz=`rounded-sm border-hairline border-transparent p-1 focus:border-accent focus:outline-none`,Oz={choice:`radiogroup`,list:`listbox`,cells:`group`};function kz(e){return(0,V.jsx)(`div`,{ref:e.fieldRef,role:Oz[e.kind??`choice`],tabIndex:0,"aria-label":e.label,className:`${Dz} ${e.className??``}`,onKeyDown:e.onKeyDown,onClick:e.onClick,children:e.children})}var Az=[`open`,`doing`,`hold`,`done`];function jz({model:e,taskId:t}){let{kanban:n}=uL(),[r,i]=(0,g.useState)(null);return(0,g.useEffect)(()=>{let n=!0;return e.client.request(`task.events`,{taskId:t}).then(e=>n&&i(e.events)).catch(()=>n&&i([])),()=>{n=!1}},[e,t]),(0,V.jsxs)(`div`,{className:wz,children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:n.detail.eventsLabel}),r===null?(0,V.jsx)(`p`,{className:`text-muted`,children:n.detail.eventsLoading}):r.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:n.detail.eventsNone}):r.map(e=>(0,V.jsxs)(`div`,{className:`mono ${Tz}`,children:[(0,V.jsx)(`span`,{className:`text-muted ${Ez}`,children:bR(e.at)}),(0,V.jsx)(`span`,{children:e.kind}),e.tail&&(0,V.jsx)(`span`,{className:`text-muted`,children:e.tail})]},`${e.at}:${e.kind}:${e.tail}`))]})}function Mz(e){let{kanban:t}=uL(),{issue:n,mode:r}=e,i=r===`create`,a=!i&&n.taskId?n.taskId:null,o=i||!a&&n.status!==`done`,[s,c]=(0,g.useState)(n.title),[l,u]=(0,g.useState)(n.body),[d,f]=(0,g.useState)(n.status),[p,m]=(0,g.useState)(e.defaultEngine),[h,_]=(0,g.useState)(qR[0]),[v,y]=(0,g.useState)(!1),[b,x]=(0,g.useState)(!1),S=(0,g.useRef)({}),C=e=>t=>{S.current[e]=t},w=i?`title`:o?`workspace`:a?`open`:`title`;(0,g.useEffect)(()=>S.current[w]?.focus(),[w]);let T=()=>({title:s.trim()||n.title,body:l,status:d}),E=()=>({engine:p,placement:h,jump:v}),D=t=>{kn(),t&&e.onOutcome(t)},O=()=>s.trim()?!0:(S.current.title?.focus(),!1),k=()=>{i?O()&&D({kind:`create`,title:s.trim(),body:l,start:E()}):o?D({kind:`start`,...E(),...T()}):a&&D({kind:`open`,taskId:a,...T()})},A=()=>{i&&O()&&D({kind:`create`,title:s.trim(),body:l,start:null})},j=()=>D(i?null:{kind:`close`,...T()}),ee=(0,g.useRef)({commit:k,saveOnly:A,close:j});ee.current={commit:k,saveOnly:A,close:j},(0,g.useEffect)(()=>{let e=e=>{let t=e.key===`Escape`?ee.current.close:e.key===`Enter`&&(e.ctrlKey||e.metaKey)?ee.current.commit:e.key.toLowerCase()===`s`&&e.ctrlKey&&!e.metaKey?ee.current.saveOnly:null;t&&(e.preventDefault(),e.stopImmediatePropagation(),t())};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},[]);let M=async t=>{let n=t.find(e=>e.size>BR);if(n){W(z(`pages.attachTooLarge`,{name:n.name||n.type}),`error`);return}x(!0);try{let n=await Promise.all(t.map(t=>KR(e.model.client,t)));u(e=>UR(e,n))}catch(e){W(G(e),`error`)}finally{x(!1)}},N=e=>{let t=WR(e.clipboardData.files);t.length!==0&&(e.preventDefault(),M(t))},P=e=>{let t=WR(e.dataTransfer.files);e.preventDefault(),t.length>0&&M(t)},F=(e,t,n)=>e[(Math.max(0,e.indexOf(t))+n+e.length)%e.length],I=(e,t,n)=>r=>{if(r.ctrlKey||r.metaKey||r.altKey)return;let i=(e===`x`?{ArrowRight:1,l:1,ArrowLeft:-1,h:-1}:{ArrowDown:1,ArrowUp:-1})[r.key];if(i)t(i);else if(r.key===`Enter`&&n)n();else return;r.preventDefault()},te=d===`done`?`text-success`:d===`hold`?`text-warning`:d===`doing`?`text-accent`:`text-muted`,ne=e=>t.detail.status[e];return(0,V.jsx)(`div`,{className:zn,onMouseDown:e=>e.target===e.currentTarget&&ee.current.close(),children:(0,V.jsxs)(`dialog`,{open:!0,className:`${Bn(!0)} ${gz}`,"aria-label":i?t.detail.newStory:`#${n.id}`,onPaste:N,onDrop:P,onDragOver:e=>e.preventDefault(),children:[(0,V.jsxs)(`div`,{className:Vn,children:[i?(0,V.jsx)(`h1`,{className:`${rn} text-muted`,children:t.detail.newStory}):(0,V.jsxs)(`h1`,{className:`${rn} text-muted ${_z}`,children:[(0,V.jsxs)(`span`,{children:[`#`,n.id]}),(0,V.jsx)(`span`,{className:te,children:ne(d)}),(0,V.jsx)(`span`,{className:`text-muted`,children:dL(t.detail.created,{date:n.created})}),a&&(0,V.jsx)(`span`,{className:`text-accent`,children:t.detail.linked})]}),(0,V.jsx)(`button`,{type:`button`,className:Un,"aria-label":z(`dialog.close`),title:z(`dialog.close`),onClick:()=>ee.current.close(),children:`×`})]}),(0,V.jsxs)(`div`,{className:Wn,children:[(0,V.jsxs)(`label`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:t.detail.titleLabel}),(0,V.jsx)(`input`,{ref:C(`title`),className:sn,spellCheck:!1,value:s,onChange:e=>c(e.target.value.replace(/[\r\n]+/g,` `)),onKeyDown:e=>{e.key===`Enter`&&!e.ctrlKey&&!e.metaKey&&(e.preventDefault(),S.current.description?.focus())}})]}),(0,V.jsxs)(`label`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.detail.description,(0,V.jsx)(`span`,{className:`text-muted ${yz}`,children:Oc()?z(`pages.attachHintTouch`):t.detail.attachHint}),b&&(0,V.jsx)(`span`,{className:`text-accent`,children:`…`})]}),(0,V.jsx)(`textarea`,{ref:C(`description`),className:`${sn} ${Fn} ${bz}`,rows:8,spellCheck:!1,placeholder:t.detail.noDescription,value:l,onChange:e=>u(e.target.value)})]}),!i&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsxs)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted flex items-baseline gap-2.5`,children:[t.detail.statusLabel,(0,V.jsx)(`span`,{className:`keys-only text-muted tracking-[0] normal-case`,children:`←/→`})]}),(0,V.jsx)(kz,{fieldRef:C(`status`),label:t.detail.statusLabel,className:`flex flex-wrap gap-1.5`,onKeyDown:I(`x`,e=>f(F(Az,d,e))),children:Az.map(e=>(0,V.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-pressed":e===d,className:Ln(e===d),onClick:()=>{f(e),S.current.status?.focus()},children:ne(e)},e))})]}),o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.detail.engine,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`←/→`})]}),(0,V.jsx)(kz,{fieldRef:C(`engine`),label:t.detail.engine,className:In,onKeyDown:I(`x`,t=>m(F(e.engines.map(e=>e.id),p,t)),k),children:e.engines.map(e=>(0,V.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-pressed":e.id===p,className:Ln(e.id===p),onClick:()=>{m(e.id),S.current.engine?.focus()},children:e.name},e.id))})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.detail.workspace,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`↑/↓`})]}),(0,V.jsx)(kz,{fieldRef:C(`workspace`),label:t.detail.workspace,className:xz,onKeyDown:I(`y`,e=>_(F(qR,h,e)),k),children:qR.map(e=>(0,V.jsxs)(`button`,{type:`button`,tabIndex:-1,"aria-pressed":e===h,className:`touch:py-1.5 ${Sz(e===h)}`,onClick:()=>{_(e),S.current.workspace?.focus()},children:[e===h?`▸ `:` `,t.detail.placement[e]]},e))})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.detail.jumpLabel,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`←/→`})]}),(0,V.jsx)(kz,{fieldRef:C(`jump`),label:t.detail.jumpLabel,className:In,onKeyDown:I(`x`,()=>y(!v),k),children:[!1,!0].map(e=>(0,V.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-pressed":e===v,className:Ln(e===v),onClick:()=>{y(e),S.current.jump?.focus()},children:e?t.detail.jump.follow:t.detail.jump.stay},String(e)))})]}),(0,V.jsx)(`p`,{className:`touch:empty:hidden! text-muted ${Cz}`,children:(0,V.jsx)(YE,{text:jc(i?t.detail.createLegend:t.detail.startLegend)})}),(0,V.jsxs)(`div`,{className:cn,children:[i&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:A,children:z(`pages.storySave`)}),(0,V.jsx)(`button`,{type:`button`,className:Le(),onClick:k,children:z(i?`pages.storySaveStart`:`pages.storyStart`)})]})]}):a?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:t.detail.sessionLabel}),(0,V.jsxs)(`div`,{className:`${In} ${Dz}`,children:[(0,V.jsx)(`button`,{ref:C(`open`),type:`button`,className:Ln(!0),onClick:()=>D({kind:`open`,taskId:a,...T()}),children:t.detail.openAction}),(0,V.jsx)(`button`,{ref:C(`unlink`),type:`button`,className:Ln(),onClick:()=>D({kind:`unlink`,...T()}),children:t.detail.unlinkAction})]})]}),(0,V.jsx)(jz,{model:e.model,taskId:a}),(0,V.jsx)(`p`,{className:`touch:empty:hidden! text-muted ${Cz}`,children:(0,V.jsx)(YE,{text:jc(t.detail.openLegend)})})]}):(0,V.jsx)(`p`,{className:`touch:empty:hidden! text-muted ${Cz}`,children:(0,V.jsx)(YE,{text:jc(t.detail.doneNote)})})]})]})})}var Nz={"waiting-on-you":`text-error`,landing:`text-success`,"ready-for-review":`text-ink`,working:`text-accent`};function Pz(e){let[t,n]=(0,g.useState)(()=>{let t=q(e,`engines.list`);return t?Vc(t.engines):[]});return(0,g.useEffect)(()=>{sl(e,`engines.list`).then(e=>n(Vc(e.engines))).catch(()=>n([]))},[e]),{engines:t,defaultEngine:Hc(t)}}function Fz(e,t){let n=_L(e),r=n.join(`
|
|
128
|
+
`),[i,a]=(0,g.useState)(()=>q(e,`kanban.boards`)??null);return(0,g.useEffect)(()=>{let t=!0,r=e.client,i=e=>r.request(e).then(e=>e.repos).catch(()=>[]);return Promise.all([i(`repos.list`),i(`issue.repos`)]).then(([e,t])=>gL(e,n,t)).then(e=>Promise.all(e.map(e=>r.request(`issue.list`,{repo:e}).catch(t=>({repoRoot:e,nextId:1,issues:[],readError:pL(t)}))))).then(n=>{let r=ol(e,`kanban.boards`,void 0,[...n].sort((e,t)=>e.repoRoot.localeCompare(t.repoRoot)));t&&a(r)}),()=>{t=!1}},[e,t,r]),i}function Iz(e){let{issue:t}=e,n=t.body.trim();return(0,V.jsxs)(`div`,{"data-issue":t.id,className:dz({selected:e.selected,attention:e.badge?.tone===`text-error`}),onClick:()=>e.selected?e.onOpen():e.onSelect(),onContextMenu:t=>{t.preventDefault(),e.onMenu(t.clientX,t.clientY)},children:[(0,V.jsxs)(`div`,{className:fz,children:[(0,V.jsx)(`span`,{className:pz(e.column===`done`),children:t.title}),(0,V.jsxs)(`span`,{className:`mono text-muted`,children:[`#`,t.id]})]}),(0,V.jsx)(`div`,{className:`text-muted ${mz}`,children:n}),(0,V.jsxs)(`div`,{className:`mono text-muted ${hz}`,children:[(0,V.jsx)(`span`,{children:t.created}),e.badge&&(0,V.jsx)(`span`,{className:e.badge.tone,children:e.badge.label})]})]})}var Lz=5e3,Rz=760;function zz({model:e}){let{kanban:t,group:n,common:r}=uL(),[i,a]=yL(Lz),o=Fz(e,i),{engines:s,defaultEngine:c}=Pz(e),l=v(e.tasks),u=vL(e),[d,f]=(0,g.useState)(null),[p,m]=(0,g.useState)(null),h=SL(),[_,y]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let e=h.current;if(!e)return;let t=new ResizeObserver(()=>y(e.clientWidth<Rz));return t.observe(e),()=>t.disconnect()},[h]);let b=o??[],x=u?b.find(e=>e.repoRoot.replace(/^\/private\//,`/`)===u.replace(/^\/private\//,`/`)):void 0,S=Math.max(0,b.findIndex(e=>e.repoRoot===(d??x?.repoRoot))),C=b[S],w=b.map(e=>e.repoRoot),T=b.filter(e=>e.readError).map(e=>`${e.repoRoot}\0${e.readError}`).join(`
|
|
129
|
+
`);(0,g.useEffect)(()=>{for(let e of b)e.readError&&W(dL(t.readFailedToast,{repo:hL(e.repoRoot,w),error:e.readError}),`error`)},[T]);let E=l?.tasks??[],D=new Set(E.map(e=>e.id)),O=e=>E.find(t=>t.id===e)?.group,{columns:k,attentionCount:A}=IR(C?RR(C.issues,D.size===0?void 0:e=>D.has(e)):[],e=>O(e)===`waiting-on-you`),j={backlog:t.column.backlog,in_progress:t.column.inProgress,parked:t.column.parked,done:t.column.done},ee=(e,t)=>{let r=e.taskId&&(t===`in_progress`||t===`parked`)?O(e.taskId):void 0,i=r===`waiting-on-you`?n.waitingOnYou:r===`landing`?n.landing:r===`ready-for-review`?n.readyForReview:r===`working`?n.working:null;return r&&i?{label:i,tone:Nz[r]??`text-muted`}:null},M=async(t,n,r,i)=>{try{return await e.client.request(t,{repo:C?.repoRoot,...n})}catch(e){return W(dL(r,{id:String(i),error:pL(e)}),`error`),null}finally{a()}},N=(e,n)=>M(`issue.setStatus`,{id:e.id,status:n},t.statusFailed,e.id),P=t=>{hn.set(null),e.select(t)},F=async(n,r,i)=>{try{let a=await JR(e.client,{repo:n,issue:r,engine:i.engine,placement:i.placement});for(let e of a.warnings)W(dL(e.kind===`link`?t.linkFailed:t.statusFailed,{id:String(r.id),error:e.error}),`error`);i.jump?(hn.set(null),e.selectWhenListed(a.taskId),a.tabId&&await e.refreshTabsNow().then(()=>e.select(a.taskId,a.tabId))):W(dL(t.detail.startedBackground,{title:`#${r.id} ${r.title}`}))}catch(e){W(G(e),`error`)}finally{a()}},I=async(e,n)=>{if(!C||n.kind===`create`)return;let r={};n.title!==e.title&&(r.title=n.title),n.body!==e.body&&(r.body=n.body),(r.title!==void 0||r.body!==void 0)&&await M(`issue.update`,{id:e.id,...r},t.updateFailed,e.id),n.status!==e.status&&await N(e,n.status),n.kind===`open`?P(n.taskId):n.kind===`unlink`?await M(`issue.update`,{id:e.id,task:`none`},t.unlinkFailed,e.id):n.kind===`start`&&await F(C.repoRoot,{...e,...r},n)},te=t=>{C&&(m(t.id),U.set((0,V.jsx)(Mz,{model:e,issue:t,mode:`detail`,engines:s,defaultEngine:c,onOutcome:e=>void I(t,e)})))},ne=()=>{if(!C)return;let n=C.repoRoot,r={id:C.nextId,title:``,status:`open`,created:new Date().toISOString().slice(0,10),body:``};U.set((0,V.jsx)(Mz,{model:e,issue:r,mode:`create`,engines:s,defaultEngine:c,onOutcome:i=>{i.kind===`create`&&(async()=>{try{let t=await e.client.request(`issue.create`,{repo:n,title:i.title,body:i.body});if(a(),!i.start)return;let o=t.issues.find(e=>e.id===r.id)??t.issues.reduce((e,t)=>e&&e.id>t.id?e:t,null);o&&await F(n,o,i.start)}catch(e){W(dL(t.createFailed,{error:pL(e)}),`error`)}})()}}))},re=()=>{let n=C?.issues.find(e=>e.id===p);if(!C||!n)return;let i=C.repoRoot;U.set((0,V.jsx)(xr,{title:dL(t.confirmDelete.title,{id:String(n.id)}),body:dL(t.confirmDelete.body,{title:n.title}),confirmLabel:r.confirm,onConfirm:async()=>{try{await e.client.request(`issue.delete`,{repo:i,id:n.id}),m(null)}catch(e){W(dL(t.deleteFailed,{id:String(n.id),error:pL(e)}),`error`)}finally{a()}}}))},ie=e=>{b.length!==0&&(f(b[(S+e+b.length)%b.length]?.repoRoot??null),m(null))},L=e=>{let t=PR(k,p,e);t!=null&&m(t)},R=e=>k.some(e=>e.issues.length>0)?L(e):ie(e===`left`?-1:1);xL(e=>{if(e.ctrlKey)return e.key===`c`&&(hn.set(null),!0);switch(e.key){case`Escape`:case`q`:return hn.set(null),!0;case`r`:return a(),!0;case`Tab`:return ie(e.shiftKey?-1:1),!0;case`ArrowUp`:return L(`up`),!0;case`ArrowDown`:return L(`down`),!0;case`ArrowRight`:case`l`:return R(`right`),!0;case`ArrowLeft`:case`h`:return R(`left`),!0;case`Enter`:{let e=C?.issues.find(e=>e.id===p);return e&&te(e),!0}case`n`:return ne(),!0;case`d`:return re(),!0;default:return!1}});let ae=(0,g.useRef)(null);(0,g.useEffect)(()=>{ae.current?.querySelector(`[data-issue="${p}"]`)?.scrollIntoView({block:`nearest`})},[p]);let oe=(e,n,r)=>{m(e.id),fn.set({x:n,y:r,items:Az.filter(t=>t!==e.status).map(n=>({label:dL(t.menu.setStatus,{status:t.detail.status[n]}),run:()=>void N(e,n)}))})},se=k.find(e=>e.issues.some(e=>e.id===p))??k.find(e=>e.issues.length>0)??k[0],ce=(e,n=!1)=>{let r=dL(t.attention,{count:String(A)});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`span`,{children:[j[e.key],` (`,e.issues.length+e.hiddenCount,`)`]}),e.key===`in_progress`&&A>0&&(0,V.jsx)(`span`,{className:`text-warning`,title:n?r:void 0,children:n?`!${A}`:r})]})},le=(e,n)=>(0,V.jsxs)(`section`,{className:sz(!n),children:[n&&(0,V.jsx)(`h2`,{className:cz(e.key),children:ce(e)}),(0,V.jsxs)(`div`,{className:lz,children:[e.issues.map(t=>(0,V.jsx)(Iz,{issue:t,column:e.key,selected:t.id===p,badge:ee(t,e.key),onSelect:()=>m(t.id),onOpen:()=>te(t),onMenu:(e,n)=>oe(t,e,n)},t.id)),e.issues.length===0&&e.hiddenCount===0&&(0,V.jsx)(`p`,{className:`mono text-muted ${uz}`,children:t.columnEmpty}),e.hiddenCount>0&&(0,V.jsx)(`p`,{className:`mono text-muted ${uz}`,children:dL(t.more,{count:String(e.hiddenCount)})})]})]},e.key);return(0,V.jsxs)(`div`,{className:`${vN} ${ZR}`,tabIndex:0,ref:h,children:[(0,V.jsxs)(`div`,{className:`kb-top`,children:[(0,V.jsx)(`h1`,{className:bN,children:t.title}),(0,V.jsx)(`span`,{className:`mono keys-only text-muted`,children:t.hint}),(0,V.jsxs)(`span`,{className:`mono ${CN}`,children:[(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.kanban}`,disabled:!C,onClick:ne,children:z(`pages.new`)}),(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.kanban}`,disabled:!C?.issues.some(e=>e.id===p),onClick:re,children:z(`pages.delete`)})]})]}),o===null?(0,V.jsx)(`p`,{className:`text-muted`,children:t.loading}):C?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:QR,children:[(0,V.jsxs)(`button`,{type:`button`,className:$R,onClick:()=>ie(1),children:[hL(C.repoRoot,w),b.length>1&&(0,V.jsx)(`span`,{className:`text-muted`,children:` ${S+1}/${b.length}`})]}),!_&&(0,V.jsx)(`span`,{className:`mono text-muted ${ez}`,children:C.repoRoot}),C.issues.length===0&&!C.readError&&(0,V.jsx)(`span`,{className:`text-muted ${tz}`,children:t.empty})]}),C.readError?(0,V.jsx)(`p`,{className:`text-error`,children:dL(t.readFailed,{error:C.readError})}):_&&se?(0,V.jsxs)(`div`,{className:rz,ref:ae,children:[(0,V.jsx)(`div`,{className:`mono ${iz}`,children:k.map(e=>(0,V.jsx)(`button`,{type:`button`,className:az(e.key===se.key),onClick:()=>{let t=e.issues[0];t&&m(t.id)},children:ce(e,!0)},e.key))}),le(se,!1)]}):(0,V.jsx)(`div`,{className:nz,ref:ae,children:k.map(e=>le(e,!0))})]}):(0,V.jsx)(`p`,{className:`text-muted`,children:t.noRepos})]})}var Bz={title:`Mods`,empty:`No mod is drawing anything.`,emptyHint:`A plugin with a [mod] entry draws its panes here, in the TUI and the web alike.`,keys:`↑↓/tab move · enter press · esc back`,pressFailed:`{plugin}: the press did not reach the mod ({reason})`},Vz={title:`Mods`,empty:`当前没有 mod 在绘制内容。`,emptyHint:`声明了 [mod] 的插件会在这里绘制面板,TUI 和 web 显示的是同一份。`,keys:`↑↓/tab 移动 · enter 按下 · esc 返回`,pressFailed:`{plugin}:按键没有送达 mod({reason})`},Hz={info:`text-info`,success:`text-success`,warning:`text-warning`,error:`text-error`,muted:`text-muted`},Uz=`flex flex-col gap-3`,Wz=`[&_p]:mx-0 [&_p]:my-1`,Gz=`rounded-md border-hairline border-line px-3 pt-2 pb-3 font-mono`,Kz=`mb-2 text-meta leading-[inherit] text-ink`,qz=(e,t)=>`flex min-w-0 items-start ${e?`[&>form]:flex-[1_1_12em] [&>form]:self-center`:``} ${t?`rounded-sm border-hairline border-line`:``}`,Jz=(e,t)=>`whitespace-pre-wrap wrap-anywhere ${e?Hz[e]:`text-ink`} ${t?`font-bold`:``}`,Yz=(e,t)=>`cursor-pointer rounded-sm border-hairline border-current px-2.5 py-0.5 [font:inherit] font-bold! ${Hz[e]} ${t?`bg-[color-mix(in_srgb,currentcolor_18%,transparent)]`:`bg-transparent [&:hover]:bg-[color-mix(in_srgb,currentcolor_18%,transparent)]`}`,Xz=`flex min-w-0 max-w-[40em] self-stretch`,Zz=`w-full font-mono`,Qz=[0,6,12,20];function $z(e){return`mod-${e.kind}:${e.plugin}/${e.pane}/${e.key}`}function eB(e){let[t,n]=(0,g.useState)(e.value??``);return(0,V.jsx)(`form`,{className:Xz,onSubmit:r=>{r.preventDefault(),e.onSubmit(t),n(e.value??``)},children:(0,V.jsx)(`input`,{id:e.id,className:`${sn} ${Zz}`,spellCheck:!1,value:t,placeholder:e.placeholder,onFocus:e.onFocus,onChange:e=>n(e.target.value)})})}function tB(e){let{node:t}=e;if(t.type===`text`)return(0,V.jsx)(`span`,{className:Jz(t.tone,t.bold===!0),children:t.text});if(t.type===`input`){let n={kind:`input`,plugin:e.pane.plugin,pane:e.pane.id,key:t.key};return(0,V.jsx)(eB,{id:$z(n),placeholder:t.placeholder,value:t.value,onFocus:()=>e.onFocus(n),onSubmit:t=>e.onSubmit(n,t)},t.value??``)}if(t.type===`button`){let n={kind:`button`,plugin:e.pane.plugin,pane:e.pane.id,key:t.key};return(0,V.jsx)(`button`,{type:`button`,id:$z(n),className:Yz(t.tone??`info`,Li(n,e.cursor)),onFocus:()=>e.onFocus(n),onClick:()=>e.onPress(n),children:t.label})}return(0,V.jsx)(`div`,{className:qz(t.direction===`row`,t.border===!0),style:{flexDirection:t.direction??`column`,gap:Qz[t.gap??0],padding:Qz[t.padding??0]},children:t.children.map((t,n)=>(0,V.jsx)(tB,{...e,node:t},n))})}function nB({model:e}){let t=B()===`zh`?Vz:Bz,n=v(e.mods),r=Ii(n),[i,a]=(0,g.useState)(null),o=Ri(r,i),s=SL(),c=(0,g.useRef)(!1),l=(t,n,r={})=>{a(t),!c.current&&(c.current=!0,e.client.request(n,{plugin:t.plugin,pane:t.pane,key:t.key,...r}).catch(e=>W(e instanceof Error?e.message:String(e),`error`)).finally(()=>{c.current=!1}))},u=e=>l(e,`mod.press`),d=(e,t)=>l(e,`mod.submit`,{value:t}),f=e=>{let t=zi(r,o,e);a(t),t&&document.getElementById($z(t))?.focus()};return xL(e=>{if(e.ctrlKey)return e.key===`c`&&(hn.set(null),!0);switch(e.key){case`Escape`:case`q`:return hn.set(null),!0;case`ArrowDown`:return f(1),!0;case`ArrowUp`:return f(-1),!0;case`Enter`:return e.target instanceof HTMLButtonElement?!1:(o?.kind===`button`&&u(o),!0);default:return!1}}),(0,V.jsxs)(`div`,{className:`${yN} ${Uz}`,tabIndex:0,ref:s,children:[(0,V.jsxs)(`div`,{className:xN,children:[(0,V.jsx)(`h1`,{className:bN,children:t.title}),(0,V.jsx)(`span`,{className:`keys-only touch:empty:hidden! text-muted ${SN(!1)}`,children:t.keys})]}),n.length===0?(0,V.jsxs)(`div`,{className:Wz,children:[(0,V.jsx)(`p`,{children:t.empty}),(0,V.jsx)(`p`,{className:`text-muted`,children:t.emptyHint})]}):n.map(e=>(0,V.jsxs)(`section`,{className:Gz,children:[(0,V.jsxs)(`header`,{className:Kz,children:[e.title,` `,(0,V.jsx)(`span`,{className:`text-muted`,children:e.plugin})]}),(0,V.jsx)(tB,{node:e.tree,pane:e,cursor:o,onPress:u,onSubmit:d,onFocus:a})]},`${e.plugin}/${e.id}`))]})}function rB(e){return e===`dispatch_failed`||e===`skipped_unavailable`||e===`script_failed`}function iB(e,t){return e.response?`responded`:e.status!==`dispatched`&&e.status!==`revived`?null:e.deliveryStatus===`missing`?`missing`:e.deliveryStatus===`awaiting`?`awaiting`:t-Date.parse(e.at)>72e5?`missing`:`awaiting`}var aB=6e4,oB=3294,sB=new Map([[`JAN`,1],[`FEB`,2],[`MAR`,3],[`APR`,4],[`MAY`,5],[`JUN`,6],[`JUL`,7],[`AUG`,8],[`SEP`,9],[`OCT`,10],[`NOV`,11],[`DEC`,12]]),cB=new Map([[`SUN`,0],[`MON`,1],[`TUE`,2],[`WED`,3],[`THU`,4],[`FRI`,5],[`SAT`,6]]),lB=256;function uB(e,t,n){let r=e.toUpperCase(),i=t?.get(r);if(i!==void 0)return i;if(!/^\d+$/.test(r))throw Error(`invalid cron ${n}: ${e}`);return Number(r)}function dB(e){let t=new Set;for(let n of e.value.split(`,`)){if(n.length===0)throw Error(`invalid cron ${e.field}: ${e.value}`);let[r,i,...a]=n.split(`/`);if(a.length>0||r===void 0)throw Error(`invalid cron ${e.field}: ${n}`);let o=1;if(i!==void 0&&(!/^\d+$/.test(i)||(o=Number(i),o<1)))throw Error(`invalid cron ${e.field} step: ${n}`);let s,c;if(r===`*`)s=e.min,c=e.max;else if(r.includes(`-`)){let[t,i,...a]=r.split(`-`);if(a.length>0||t===void 0||i===void 0)throw Error(`invalid cron ${e.field} range: ${n}`);s=uB(t,e.names,e.field),c=uB(i,e.names,e.field)}else s=uB(r,e.names,e.field),c=i===void 0?s:e.max;if(s<e.min||c>e.max||s>c)throw Error(`cron ${e.field} out of range: ${n}`);for(let n=s;n<=c;n+=o)t.add(e.normalize?e.normalize(n):n)}return t}function fB(e){if(e.length>lB)throw Error(`cron expression is too long`);let t=e.trim().split(/\s+/).filter(Boolean);if(t.length!==5)throw Error(`cron expression needs 5 fields (minute hour day month weekday), got ${t.length}`);let[n,r,i,a,o]=t;return{minutes:dB({value:n,min:0,max:59,field:`minute`}),hours:dB({value:r,min:0,max:23,field:`hour`}),daysOfMonth:dB({value:i,min:1,max:31,field:`day-of-month`}),months:dB({value:a,min:1,max:12,field:`month`,names:sB}),daysOfWeek:dB({value:o,min:0,max:7,field:`weekday`,names:cB,normalize:e=>e%7}),dayOfMonthRestricted:!i.startsWith(`*`),dayOfWeekRestricted:!o.startsWith(`*`)}}function pB(e){try{return fB(e),!0}catch{return!1}}function mB(e,t,n){return new Date(e.year,e.month-1,e.day,t,n,0,0).getTime()}function hB(e){let t=new Date(e);return{year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate()}}function gB(e,t){return hB(new Date(e.year,e.month-1,e.day+t,12,0,0,0).getTime())}function _B(e,t){if(!e.months.has(t.month))return!1;let n=e.daysOfMonth.has(t.day),r=e.daysOfWeek.has(new Date(t.year,t.month-1,t.day).getDay());return e.dayOfMonthRestricted&&e.dayOfWeekRestricted?n||r:n&&r}function vB(e){return e-e%aB}function yB(e,t){return[...e].sort((e,n)=>(e-n)*t)}function bB(e,t){let n=fB(e),r=yB(n.hours,1),i=yB(n.minutes,1),a=new Date(vB(t)+aB),o=hB(a.getTime()),s=a.getHours(),c=a.getMinutes();for(let e=0;e<oB;e++){if(_B(n,o)){for(let e of r)if(!(e<s))for(let n of i){if(e===s&&n<c)continue;let r=mB(o,e,n);if(r>t)return r}}o=gB(o,1),s=0,c=0}throw Error(`cron expression never matches: ${e}`)}var xB=[`minute`,`hour`,`dayOfMonth`,`month`,`dayOfWeek`];function SB(e){let t=e.trim().split(/\s+/).filter(Boolean);return xB.map((e,n)=>t[n]??`*`)}function CB(e){return xB.map((t,n)=>e[n]??`*`).join(` `)}var wB=[`*`,`*/5`,`*/10`,`*/15`,`*/30`,...AB(0,59)],TB=[`*`,`*/2`,`*/3`,`*/4`,`*/6`,`*/12`,...AB(0,23)],EB=[`*`,...AB(1,31)],DB=[`*`,`JAN`,`FEB`,`MAR`,`APR`,`MAY`,`JUN`,`JUL`,`AUG`,`SEP`,`OCT`,`NOV`,`DEC`],OB=[`*`,`MON-FRI`,`SAT,SUN`,`MON`,`TUE`,`WED`,`THU`,`FRI`,`SAT`,`SUN`],kB=[`MON`,`TUE`,`WED`,`THU`,`FRI`,`SAT`,`SUN`];function AB(e,t){let n=[];for(let r=e;r<=t;r++)n.push(String(r));return n}var jB={minute:wB,hour:TB,dayOfMonth:EB,month:DB,dayOfWeek:OB};function MB(e,t,n){let r=jB[e],i=r.indexOf(t.trim().toUpperCase());return i<0?(n>0?r[0]:r[r.length-1])??t:r[(i+n+r.length)%r.length]??t}function NB(e,t){return Math.min(Math.max(e+t,0),xB.length-1)}function PB(e,t,n){let r=SB(e);return t<0||t>=xB.length||(r[t]=n),CB(r)}function FB(e,t){let[n,r,i,a,o]=SB(e);if(a!==`*`||i!==`*`||n===void 0||r===void 0||o===void 0)return null;let s=IB(n,r,t);if(!s)return null;let{at:c,bare:l}=s;if(o===`*`)return l?c:t(`automations.schedule.everyDay`,{at:c});if(o===`MON-FRI`)return t(`automations.schedule.weekdays`,{at:c});if(o===`SAT,SUN`)return t(`automations.schedule.weekends`,{at:c});let u=kB.find(e=>e===o.toUpperCase());return u?t(`automations.schedule.onWeekday`,{weekday:t(`automations.schedule.dow.${u}`),at:c}):null}function IB(e,t,n){return t===`*`?e===`*`?{at:n(`automations.schedule.everyMinute`),bare:!0}:e.startsWith(`*/`)?{at:n(`automations.schedule.everyMinutes`,{n:e.slice(2)}),bare:!0}:/^\d+$/.test(e)?{at:n(`automations.schedule.hourlyAt`,{minute:e.padStart(2,`0`)}),bare:!1}:null:t.startsWith(`*/`)&&e===`0`?{at:n(`automations.schedule.everyHours`,{n:t.slice(2)}),bare:!0}:/^\d+$/.test(t)&&/^\d+$/.test(e)?{at:n(`automations.schedule.atClock`,{time:`${t.padStart(2,`0`)}:${e.padStart(2,`0`)}`}),bare:!1}:null}function LB(e,t,n,r){let i=e.trim();if(!pB(i))return{kind:`invalid`};let a;try{a=bB(i,t)}catch{return{kind:`never`}}return{kind:`ok`,nextRunMs:a,relative:RB(a-t,n),absolute:zB(a,t,n,r)}}function RB(e,t){let{minutes:n,hours:r,days:i}=yR(e);return n<60?t(`automations.when.inMinutes`,{n:Math.max(1,n)}):r<24?t(`automations.when.inHours`,{n:r}):t(`automations.when.inDays`,{n:i})}function zB(e,t,n,r){let i=new Date(e),a=`${String(i.getHours()).padStart(2,`0`)}:${String(i.getMinutes()).padStart(2,`0`)}`,o=new Date(t);if(i.getFullYear()===o.getFullYear()&&i.getMonth()===o.getMonth()&&i.getDate()===o.getDate())return a;let s=e-t<5184e5,c=i.toLocaleDateString(r,s?{weekday:`short`}:{weekday:`short`,month:`short`,day:`numeric`});return s?`${c} ${a}`:n(`automations.when.dateTime`,{date:c,time:a})}var BB={name:``,repo:``,prompt:``,schedule:`0 9 * * MON-FRI`};function VB(e){return e.name.trim().length>0&&(e.repo===null||e.repo.trim().length>0)&&e.prompt.trim().length>0&&(!e.target||e.target.taskId.trim().length>0&&/^tab-[\w-]+$/.test(e.target.tabId))&&pB(e.schedule.trim())}function HB(e){return e.name.trim().length===0?`name`:e.repo!==null&&e.repo.trim().length===0?`repo`:e.target&&!e.target.taskId.trim()?`target`:e.target&&!/^tab-[\w-]+$/.test(e.target.tabId)?`targetTab`:e.prompt.trim().length===0?`prompt`:pB(e.schedule.trim())?null:`schedule`}var UB=`flex flex-col overflow-hidden @container`,WB=`mt-2.5 grid min-h-0 flex-1 grid-cols-[minmax(260px,2fr)_minmax(0,3fr)] gap-4 rt-narrow:flex rt-narrow:flex-col rt-narrow:overflow-y-auto`,GB=`flex min-h-0 flex-col gap-3 overflow-y-auto scrollbar-none rt-narrow:shrink-0 rt-narrow:overflow-visible`,KB=`flex gap-1.5 px-2 pt-0 pb-1`,qB=e=>`flex min-w-0 cursor-pointer flex-col gap-0.5 rounded-sm px-2 py-1.5 ${e?`bg-menu`:`[&:hover]:bg-hover`}`,JB=`flex min-w-0 items-baseline gap-2.5`,YB=e=>`min-w-0 flex-1 truncate font-bold ${e?`text-muted`:``}`,XB=`whitespace-nowrap text-meta`,ZB=`truncate text-meta`,QB=`flex min-h-0 flex-col gap-1.5 overflow-y-auto py-0 pr-0 pl-4 [border-left:var(--hairline)_solid_var(--line)] [&_h2]:m-0 [&_p]:m-0 [&>*]:shrink-0 [&>h2]:mt-2.5 rt-narrow:shrink-0 rt-narrow:overflow-visible rt-narrow:pt-3 rt-narrow:pl-0 rt-narrow:[border-left:none] rt-narrow:[border-top:var(--hairline)_solid_var(--line)]`,$B=`flex flex-wrap items-baseline justify-between gap-3`,eV=`font-sans text-display font-bold normal-nums wrap-anywhere`,tV=`mx-0 mt-1 mb-0 grid grid-cols-[max-content_minmax(0,1fr)] items-baseline gap-x-3.5 gap-y-1 [&_dd]:m-0 [&_dd]:wrap-anywhere [&_dd_.mono]:whitespace-pre`,nV=`max-h-[12lh] overflow-y-auto rounded-sm bg-inset px-2.5 py-2 whitespace-pre-wrap wrap-anywhere`,rV=`min-w-0 text-meta leading-[inherit]`,iV=`flex w-full min-w-0 gap-2 text-inherit`,aV=iV,oV=`${iV} cursor-pointer border-none bg-transparent p-0 text-left font-[inherit] [&:hover]:underline`,sV=`min-w-0 flex-1 truncate`,cV=`[&+&]:mt-1.5`,lV=e=>`whitespace-pre-wrap wrap-anywhere text-meta ${e?``:`leading-[inherit]`}`,uV=`text-meta`,dV=`flex gap-4.5`,fV=e=>`flex min-w-[5ch] flex-col gap-0.5 rounded-sm border-hairline px-1.5 py-1 text-left font-mono text-body normal-nums [&>span]:text-meta [&>span]:text-subtle ${e?`border-accent font-bold text-accent`:`border-transparent font-normal`}`,pV=`hidden gap-2 px-1 pt-0.5 pb-1.5 touch:flex`,mV=`h-8 w-11 touch-manipulation rounded-sm border-hairline border-line bg-inset font-mono text-display font-normal normal-nums text-ink`;function hV(e){let{auto:t,common:n}=uL(),r=fL(),i=B()===`zh`?`zh-CN`:`en-US`,[a,o]=(0,g.useState)(()=>({...BB,repo:e.repos.find(t=>e.defaultRepo&&mL(t)===mL(e.defaultRepo))??e.repos[0]??null})),[s,c]=(0,g.useState)(0),[l,u]=(0,g.useState)(null),d=(0,g.useRef)({}),f=e=>t=>{d.current[e]=t};(0,g.useEffect)(()=>d.current.name?.focus(),[]);let p=e=>{o(t=>({...t,...e})),u(null)};(0,g.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopImmediatePropagation(),kn())};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},[]);let m=()=>{if(VB(a)){kn(),e.onSubmit({name:a.name.trim(),repo:a.repo===null?null:a.repo.trim(),prompt:a.prompt.trim(),schedule:a.schedule.trim(),...a.target?{target:a.target}:{}});return}let n=HB(a);n&&(d.current[n]?.focus(),u(Reflect.get(t.missing,n)))},h=a.repo===null?[]:e.tasks.filter(e=>mL(e.repo)===mL(a.repo??``)),_=a.target?h.findIndex(e=>e.id===a.target?.taskId)+1:0,v=e=>{let t=(_+e+h.length+1)%(h.length+1),n=h[t-1];p({target:n?{kind:`existing-tab`,taskId:n.id,tabId:`tab-1`}:void 0})},y=[null,...e.repos],b=e=>{let t=Math.min(Math.max(y.indexOf(a.repo)+e,0),y.length-1),n=y[t];n!==void 0&&p({repo:n,target:void 0})},x=e=>t=>{(t.key===`ArrowUp`||t.key===`ArrowDown`)&&(t.preventDefault(),e(t.key===`ArrowDown`?1:-1))},S=e=>t=>{t.key===`Enter`&&(t.preventDefault(),d.current[e]?.focus())},C=SB(a.schedule),w=e=>{let t=xB[s];t&&p({schedule:PB(a.schedule,s,MB(t,C[s]??`*`,e))})},T=e=>{if(!(e.ctrlKey||e.metaKey||e.altKey)){if(e.key===`ArrowLeft`||e.key===`h`)c(NB(s,-1));else if(e.key===`ArrowRight`||e.key===`l`)c(NB(s,1));else if(e.key===`ArrowUp`||e.key===`ArrowDown`)w(e.key===`ArrowUp`?1:-1);else return;e.preventDefault()}},E=LB(a.schedule,Date.now(),r,i),D=FB(a.schedule,r);return(0,V.jsx)(`div`,{className:zn,onMouseDown:e=>e.target===e.currentTarget&&kn(),children:(0,V.jsxs)(`dialog`,{open:!0,className:`${Bn(!0)} ${gz}`,"aria-label":t.newTitle,children:[(0,V.jsx)(`h1`,{className:`${rn} text-muted`,children:t.newTitle}),(0,V.jsxs)(`div`,{className:Wn,children:[(0,V.jsxs)(`label`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:t.fieldName}),(0,V.jsx)(`input`,{ref:f(`name`),className:sn,spellCheck:!1,placeholder:t.namePlaceholder,value:a.name,onChange:e=>p({name:e.target.value}),onKeyDown:S(`repo`)})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.fieldRepo,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`↑/↓`})]}),(0,V.jsx)(kz,{fieldRef:f(`repo`),kind:`list`,label:t.fieldRepo,className:xz,onKeyDown:x(b),children:y.map(t=>(0,V.jsxs)(`button`,{type:`button`,tabIndex:-1,"aria-selected":t===a.repo,className:`touch:py-1.5 ${Sz(t===a.repo)}`,onClick:()=>{p({repo:t,target:void 0}),d.current.repo?.focus()},children:[t===a.repo?`▸ `:` `,t===null?z(`rail.noProject`):hL(t,e.repos)]},t??``))})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.fieldTarget,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`↑/↓`})]}),(0,V.jsx)(kz,{fieldRef:f(`target`),kind:`list`,label:t.fieldTarget,onKeyDown:x(v),onClick:()=>v(1),children:a.target?h[_-1]?.title??a.target.taskId:t.targetFresh})]}),a.target&&(0,V.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:t.fieldTargetTab}),(0,V.jsx)(`input`,{ref:f(`targetTab`),className:sn,spellCheck:!1,value:a.target.tabId,onChange:e=>a.target&&p({target:{...a.target,tabId:e.target.value}}),onKeyDown:S(`prompt`)})]}),(0,V.jsxs)(`label`,{className:Pn,children:[(0,V.jsx)(`span`,{className:`${rn} text-muted`,children:t.fieldPrompt}),(0,V.jsx)(`input`,{ref:f(`prompt`),className:sn,spellCheck:!1,placeholder:t.promptPlaceholder,value:a.prompt,onChange:e=>p({prompt:e.target.value}),onKeyDown:S(`schedule`)})]}),(0,V.jsxs)(`div`,{className:Pn,children:[(0,V.jsxs)(`span`,{className:`${rn} text-muted ${vz}`,children:[t.fieldSchedule,(0,V.jsx)(`span`,{className:`keys-only text-muted ${yz}`,children:`←/→ ↑/↓`})]}),(0,V.jsx)(kz,{fieldRef:f(`schedule`),kind:`cells`,label:t.fieldSchedule,className:dV,onKeyDown:T,children:xB.map((e,n)=>(0,V.jsxs)(`button`,{type:`button`,tabIndex:-1,className:fV(n===s),onClick:()=>{c(n),d.current.schedule?.focus()},children:[C[n]??`*`,(0,V.jsx)(`span`,{children:t.cronField[e]})]},e))}),(0,V.jsx)(`div`,{className:pV,children:[-1,1].map(e=>{let n=t.cronField[xB[s]??`minute`]??``;return(0,V.jsx)(`button`,{type:`button`,tabIndex:-1,className:mV,"aria-label":z(e<0?`pages.cronDown`:`pages.cronUp`,{field:n}),onClick:()=>{w(e),d.current.schedule?.focus()},children:e<0?`−`:`+`},e)})}),E.kind===`ok`?(0,V.jsxs)(`p`,{className:`mono text-success`,children:[D?`${D}, `:``,E.relative,`, `,E.absolute]}):(0,V.jsx)(`p`,{className:`mono text-error`,children:E.kind===`never`?t.cronNever:t.cronInvalid})]}),l&&(0,V.jsxs)(`p`,{className:`text-error`,children:[`※ `,l]}),(0,V.jsx)(`p`,{className:`touch:empty:hidden! text-muted ${Cz}`,children:(0,V.jsx)(YE,{text:jc(t.composerLegend)})}),(0,V.jsxs)(`div`,{className:cn,children:[(0,V.jsx)(`button`,{type:`button`,className:an,onClick:kn,children:n.cancel}),(0,V.jsx)(`button`,{ref:f(`confirm`),type:`button`,className:Le(),onClick:m,children:n.create})]})]})]})})}var gV=[`ok`,`blocked`,`failed`,`skipped`];function _V(e){switch(e.status){case`dispatched`:case`revived`:case`ran`:return`ok`;case`skipped_blocked`:return`blocked`;case`dispatch_failed`:case`skipped_unavailable`:case`script_failed`:return`failed`;default:return`skipped`}}var vV={scheduled:`schedule`,manual:`manual`,webhook:`webhook`};function yV(e){if(e.status===`skipped_precheck`)return e.precheckResult?.durationMs??null;if(e.status===`ran`||e.status===`script_failed`)return null;let t=Date.parse(e.at),n=Date.parse(e.response?.at??``);return Number.isFinite(t)&&Number.isFinite(n)&&n>=t?n-t:null}function bV(e){if(e<1e3)return`${Math.max(0,Math.round(e))}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return n%60==0?`${r}h`:`${r}h ${n%60}m`}function xV(e,t,n){return(t===null?Object.values(e).flat():e[t]??[]).filter(e=>n===null||_V(e)===n).sort((e,t)=>Date.parse(t.at)-Date.parse(e.at)||t.runNumber-e.runNumber)}function SV(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);if(t<0||n<=t)return null;try{return{prefix:e.slice(0,t).trim(),value:JSON.parse(e.slice(t,n+1))}}catch{return null}}var CV=(e,t)=>e&&typeof e==`object`?Reflect.get(e,t):void 0;function wV(e){let t=SV(e);if(!t)return{summary:e,full:e};let n=CV(t.value,`error`)??t.value,r=CV(n,`message`),i=CV(n,`code`),a=typeof r==`string`?typeof i==`string`?`${i}: ${r}`:r:null,o=t.prefix.replace(/:$/,``);return{summary:a?`${o} — ${a}`:e,full:`${t.prefix}\n${JSON.stringify(t.value,null,2)}`}}function TV(e){let t=e.trim();if(!/^[[{]/.test(t))return e;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}}var EV={dispatched:`success`,revived:`success`,skipped_precheck:`muted`,skipped_blocked:`warning`,skipped_cancelled:`muted`,skipped_missed:`warning`,skipped_unavailable:`warning`,dispatch_failed:`error`,ran:`success`,script_failed:`error`},DV={success:`text-success`,muted:`text-muted`,warning:`text-warning`,error:`text-error`},OV={success:`✓`,error:`†`,warning:`!`,muted:`·`},kV=e=>EV[e]??`muted`;function AV(e){let{auto:t}=uL(),{runs:n,when:r}=e,i=e=>t.runStatus[e]??e,a=n.filter(e=>e.response);return(0,V.jsxs)(V.Fragment,{children:[n[0]?.precheckResult&&(0,V.jsx)(jV,{run:n[0]}),(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:t.responses}),a.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:t.noResponses}):a.map(e=>(0,V.jsxs)(`div`,{className:cV,children:[(0,V.jsx)(`p`,{className:`mono ${uV} ${DV[kV(e.status)]}`,children:`#${e.runNumber} ${i(e.status)}, ${r(e.response?.at)}`}),(0,V.jsx)(`p`,{className:lV(!1),children:TV(e.response?.text??``)})]},e.id))]})}function jV({run:e}){let{auto:t}=uL(),n=e.precheckResult;if(!n)return null;let r=n.timedOut?t.precheckTimedOut:dL(t.precheckExited,{code:String(n.exitCode??`?`)}),i=[{label:t.precheckStdout,text:n.stdout},{label:t.precheckStderr,text:n.stderr}].filter(e=>e.text.trim().length>0);return(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:dL(t.precheckDetail,{exit:r,duration:String(n.durationMs)})}),i.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:t.precheckNoOutput}):i.map(e=>(0,V.jsx)(`p`,{className:`mono ${lV(!0)}`,children:`${e.label}: ${e.text.replace(/\s+$/,``).split(`
|
|
130
|
+
`).slice(-10).join(`
|
|
131
|
+
`)}`},e.label))]})}var MV=30;function NV(e,t,n){let r=t.join(`\0`),[i,a]=(0,g.useState)(()=>Object.fromEntries(t.map(t=>[t,q(e,`routine.runs`,{id:t})?.runs??[]])));return(0,g.useEffect)(()=>{let n=!0;for(let r of t)sl(e,`routine.runs`,{id:r}).then(e=>n&&a(t=>({...t,[r]:e.runs}))).catch(()=>void 0);return()=>{n=!1}},[e,r,n]),i}function PV(e){B();let{auto:t}=uL(),[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(null);(0,g.useEffect)(()=>r(null),[e.followId]);let o=n===null?e.followId??``:n,s=o===``?e.routines.map(e=>e.id):[o],c=NV(e.c,s,e.tick),l=new Map(e.routines.map(e=>[e.id,e.name])),u=xV(c,o===``?null:o,i),d=e=>{if(e.status===`skipped_blocked`){let t=e.blocked?.reason;return t?dL(z(`runLog.blockedRun`),{reason:z(`runLog.blocked.${t}`)}):z(`runLog.outcome.blocked`)}return t.runStatus[e.status]??e.status},f=(e,t,n,r)=>(0,V.jsx)(H,{variant:`pill`,hit:`tight`,"aria-current":t,className:`max-w-40 truncate`,onClick:n,children:`[ ${e} ]`},r);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:z(`runLog.title`)}),e.routines.length>1&&(0,V.jsx)(Dj,{label:z(`runLog.routine`),value:o,picks:[{value:``,label:z(`runLog.allRoutines`)},...e.routines.map(e=>({value:e.id,label:e.name}))],onPick:r}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-x-3 gap-y-1`,children:[f(z(`runLog.all`),i===null,()=>a(null),`all`),gV.map(e=>f(z(`runLog.outcome.${e}`),i===e,()=>a(e),e))]}),u.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:xV(c,o===``?null:o,null).length===0?t.noRuns:z(`runLog.empty`)}):u.slice(0,MV).map(n=>{let r=kV(n.status),i=iB(n,e.now),a=i===`awaiting`?`, ${t.responseAwaiting}`:i===`missing`?`, ${t.responseMissing}`:``,s=yV(n),c=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{children:OV[r]}),(0,V.jsx)(`span`,{children:`#${n.runNumber}`}),o===``&&(0,V.jsx)(`span`,{className:`max-w-[20ch] truncate`,children:l.get(n.automationId)??``}),(0,V.jsx)(`span`,{className:sV,children:`${d(n)}${n.tabId?`, ${n.tabId}`:``}${a}`}),(0,V.jsx)(`span`,{className:`text-subtle`,children:z(`runLog.source.${vV[n.trigger]}`)}),s!==null&&(0,V.jsx)(`span`,{className:`text-muted`,children:bV(s)}),(0,V.jsx)(`span`,{className:`text-muted`,children:e.when(n.at)})]}),u=n.error?wV(n.error):null,f=n.taskId,p=i===`missing`?`text-warning`:DV[r];return(0,V.jsxs)(`div`,{className:`${rV} ${p}`,children:[f?(0,V.jsx)(`button`,{type:`button`,className:`mono ${oV}`,onClick:()=>e.openRun(f),children:c}):(0,V.jsx)(`span`,{className:`mono ${aV}`,children:c}),u&&(0,V.jsxs)(`details`,{className:`mono pl-[calc(2ch+16px)] [&_summary]:cursor-pointer [&_summary]:list-none [&_summary]:truncate [&_summary::-webkit-details-marker]:hidden [&[open]_summary]:whitespace-normal [&_pre]:mx-0 [&_pre]:mt-1 [&_pre]:mb-1.5 [&_pre]:max-h-[16lh] [&_pre]:overflow-auto [&_pre]:rounded-sm [&_pre]:bg-inset [&_pre]:px-2 [&_pre]:py-1.5 [&_pre]:whitespace-pre-wrap [&_pre]:wrap-anywhere [&_pre]:text-muted`,children:[(0,V.jsx)(`summary`,{children:u.summary}),(0,V.jsx)(`pre`,{children:u.full})]})]},n.id)}),u.length>MV&&(0,V.jsx)(`p`,{className:`text-muted`,children:z(`runLog.more`,{count:u.length-MV})})]})}var FV=5e3;function IV({model:e}){let{auto:t,common:n}=uL(),r=e.client,[i,a]=yL(FV),o=v(e.tasks),s=_L(e),c=vL(e),[l,u]=(0,g.useState)(()=>q(r,`routine.list`)??null),[d,f]=(0,g.useState)(null),[p,m]=(0,g.useState)(null),[h,_]=(0,g.useState)(null),y=SL(),b=fL(),x=B()===`zh`?`zh-CN`:`en-US`,S=(0,g.useRef)(null);(0,g.useEffect)(()=>{let e=!0;return sl(r,`routine.list`).then(t=>e&&u(t)).catch(()=>e&&u(e=>e??{automations:[],keepsDaemonAlive:!1})),()=>{e=!1}},[r,i]);let C=l?.automations??[],w=l?.lastRunStatus??{},T=l?.lastFailure??{},E=e=>{let t=w[e.id];return t!==void 0&&rB(t)},D=[{key:`pages.routinesNeedYou`,rows:C.filter(E)},{key:`pages.routinesActive`,rows:C.filter(e=>e.enabled&&!E(e))},{key:`pages.routinesPaused`,rows:C.filter(e=>!e.enabled&&!E(e))}],O=D.flatMap(e=>e.rows),k=Math.max(0,O.findIndex(e=>e.id===d)),A=O[k],j=e=>f(O[e]?.id??null),ee=D[0]?.rows.length??0,M=v(gn);(0,g.useEffect)(()=>{M===null||!l||(l.automations.some(e=>e.id===M)&&f(M),gn.set(null))},[M,l]);let N=NV(r,A?[A.id]:[],i),P=A?N[A.id]??[]:[];(0,g.useEffect)(()=>_(null),[A?.id]);let F=(0,g.useRef)(null),[I,te]=(0,g.useState)(0),ne=(0,g.useRef)(0);(0,g.useEffect)(()=>{let e=S.current,t=I!==ne.current;if(ne.current=I,t&&e&&F.current&&e.offsetTop>F.current.offsetTop){e.scrollIntoView({block:`start`,behavior:`smooth`});return}F.current?.querySelector(`[data-row="${k}"]`)?.scrollIntoView({block:`nearest`})},[k,I]);let re=Date.now(),ie=e=>{let n=e?Date.parse(e):NaN;if(!Number.isFinite(n))return`—`;let r=n-re,i=r>=0,a=Math.floor(Math.abs(r)/6e4),o=Math.floor(a/60);return a<1?i?t.when.now:t.when.justNow:a<60?dL(i?t.when.inMinutes:t.when.minutesAgo,{n:a}):o<24?dL(i?t.when.inHours:t.when.hoursAgo,{n:o}):new Date(n).toLocaleDateString()},L=e=>o?.tasks.find(t=>t.id===e)?.label??e,R=t=>{hn.set(null),e.select(t)},ae=(e,t,n)=>W(dL(e,{name:t,error:pL(n)}),`error`),oe=async()=>{if(!(!A||p)){m(A.id);try{await r.request(`routine.setEnabled`,{id:A.id,enabled:!A.enabled}),a()}catch(e){ae(A.enabled?t.disableFailed:t.enableFailed,A.name,e)}finally{m(null)}}},se=async()=>{if(!(!A||p)){m(A.id),_(dL(t.running,{name:A.name}));try{let e=await r.request(`routine.runNow`,{id:A.id});_(dL(t.ranWith,{name:A.name,status:e.status})),a()}catch(e){ae(t.runFailed,A.name,e)}finally{m(null)}}},ce=async()=>{if(p)return;let e=gL(await r.request(`repos.list`).then(e=>e.repos).catch(()=>[]),s);U.set((0,V.jsx)(hV,{repos:e,tasks:(o?.tasks??[]).filter(e=>!e.deleting).map(e=>({id:e.id,title:e.label,repo:e.repo})),defaultRepo:c,onSubmit:e=>{(async()=>{m(`new`);try{await r.request(`routine.create`,{...e.repo===null?{}:{repo:e.repo},name:e.name,prompt:e.prompt,schedule:e.schedule,...e.target?{targetTask:e.target.taskId,targetTab:e.target.tabId}:{}}),a()}catch(e){W(dL(t.createFailed,{error:pL(e)}),`error`)}finally{m(null)}})()}}))},le=()=>{if(!A||p)return;let e=A;U.set((0,V.jsx)(xr,{title:t.deleteTitle,body:dL(t.deleteBody,{name:e.name}),confirmLabel:t.deleteButton,onConfirm:async()=>{m(e.id);try{await r.request(`routine.delete`,{id:e.id}),a()}catch(n){ae(t.deleteFailed,e.name,n)}finally{m(null)}}}))};xL(e=>{if(e.ctrlKey)return e.key===`c`&&(hn.set(null),!0);switch(e.key){case`Escape`:case`q`:return hn.set(null),!0;case`j`:case`ArrowDown`:return j(Math.min(O.length-1,k+1)),!0;case`k`:case`ArrowUp`:return j(Math.max(0,k-1)),!0;case`n`:return ce(),!0;case`r`:return a(),!0;case`e`:return oe(),!0;case`s`:return se(),!0;case`d`:return le(),!0;case`Enter`:{let e=P[0]?.taskId;return e?R(e):P.length>0&&_(t.latestRunNoTask),!0}default:return!1}});let ue=A?.target,de=A?FB(A.schedule,b):null,fe=e=>e===void 0?z(`rail.noProject`):hL(e,C.flatMap(e=>e.repo??[])),pe=A?.nextRunAt?Date.parse(A.nextRunAt):NaN;return(0,V.jsxs)(`div`,{className:`${vN} ${UB}`,tabIndex:0,ref:y,children:[(0,V.jsxs)(`div`,{className:xN,children:[(0,V.jsx)(`h1`,{className:bN,children:t.title}),(0,V.jsxs)(`span`,{className:`mono ${CN}`,children:[ee>0&&(0,V.jsx)(`span`,{className:`text-error`,children:dL(t.needAttention,{count:String(ee),total:String(O.length)})}),(0,V.jsx)(`span`,{className:`text-muted`,children:l?.keepsDaemonAlive?t.holdingDaemon:t.notHolding}),(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.header}`,onClick:()=>void ce(),children:z(`pages.new`)})]})]}),l===null?(0,V.jsx)(`p`,{className:`text-muted`,children:n.loading}):O.length===0?(0,V.jsxs)(`div`,{className:TN,children:[(0,V.jsx)(`p`,{className:`text-muted`,children:t.empty}),(0,V.jsx)(`p`,{className:`keys-only`,children:t.emptyHint})]}):(0,V.jsxs)(`div`,{className:WB,children:[(0,V.jsx)(`div`,{className:GB,ref:F,children:D.map(e=>e.rows.length===0?null:(0,V.jsxs)(`section`,{children:[(0,V.jsxs)(`h2`,{className:`${rn} ${KB} ${e===D[0]?`text-error`:`text-muted`}`,children:[z(e.key),` `,(0,V.jsx)(`span`,{className:`mono`,children:e.rows.length})]}),e.rows.map(e=>{let n=O.indexOf(e),r=w[e.id],i=r?kV(r):null;return(0,V.jsxs)(`div`,{"data-row":n,className:qB(n===k),onClick:()=>{j(n),te(e=>e+1)},children:[(0,V.jsxs)(`span`,{className:JB,children:[(0,V.jsx)(`span`,{className:YB(!e.enabled),children:e.name}),(0,V.jsx)(`span`,{className:`mono text-muted ${XB}`,children:e.enabled?ie(e.nextRunAt):t.paused}),(0,V.jsx)(`span`,{className:`mono ${i?DV[i]:`text-muted`}`,style:{width:`1ch`},children:i?OV[i]:` `})]}),(0,V.jsx)(`span`,{className:`mono text-muted ${ZB}`,title:e.schedule,children:`${fe(e.repo)} · ${FB(e.schedule,b)??e.schedule}`}),T[e.id]?(0,V.jsx)(`span`,{className:`mono text-warning ${ZB}`,title:T[e.id]?.reason,children:dL(t.lastFailed,{when:ie(T[e.id]?.at),reason:T[e.id]?.reason??``})}):null]},e.id)})]},e.key))}),(0,V.jsx)(`div`,{className:QB,ref:S,children:A?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:$B,children:[(0,V.jsx)(`h2`,{className:eV,children:A.name}),(0,V.jsxs)(`span`,{className:`mono ${CN}`,children:[(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.row}`,disabled:p===A.id,onClick:()=>void se(),children:t.runNow}),(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.row}`,disabled:p===A.id,onClick:()=>void oe(),children:z(A.enabled?`pages.routinePause`:`pages.routineEnable`)}),(0,V.jsx)(`button`,{type:`button`,className:`${an} ${wN.row}`,disabled:p===A.id,onClick:le,children:z(`pages.delete`)})]})]}),(0,V.jsxs)(`dl`,{className:tV,children:[(0,V.jsx)(`dt`,{className:`text-muted`,children:z(`pages.routineSchedule`)}),(0,V.jsxs)(`dd`,{children:[de??(0,V.jsx)(`span`,{className:`mono`,children:A.schedule}),de&&(0,V.jsx)(`span`,{className:`mono text-muted`,children:` ${A.schedule}`})]}),(0,V.jsx)(`dt`,{className:`text-muted`,children:z(`pages.routineNext`)}),(0,V.jsx)(`dd`,{className:A.enabled?``:`text-warning`,children:A.enabled?Number.isFinite(pe)?`${ie(A.nextRunAt)} · ${new Date(pe).toLocaleString(x,{weekday:`short`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}`:`—`:t.paused}),(0,V.jsx)(`dt`,{className:`text-muted`,children:z(`pages.routineProject`)}),(0,V.jsx)(`dd`,{children:fe(A.repo)}),!A.script&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`dt`,{className:`text-muted`,children:z(`pages.routineDelivers`)}),(0,V.jsx)(`dd`,{children:ue?dL(t.targetExisting,{task:L(ue.taskId),tab:ue.tabId}):A.persistentSession?t.targetStanding:t.targetFresh})]})]}),A.precheck&&(0,V.jsx)(`p`,{className:`mono text-muted`,children:dL(t.precheck,{command:A.precheck.command})}),A.script?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:z(`pages.routineScript`)}),(0,V.jsx)(`p`,{className:`mono ${nV}`,children:A.script.command})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted`,children:z(`pages.routinePrompt`)}),(0,V.jsx)(`p`,{className:nV,children:A.prompt})]}),(0,V.jsx)(PV,{c:r,tick:i,routines:C,followId:A.id,now:re,when:ie,openRun:R}),(0,V.jsx)(AV,{runs:P,when:ie})]}):(0,V.jsx)(`p`,{className:`text-muted`,children:t.noSelection})})]}),h&&(0,V.jsx)(`p`,{className:`text-muted mx-0 mt-2 mb-0 text-meta leading-[inherit]`,children:h})]})}var LV=`flex min-w-0 items-baseline gap-2.5 font-mono text-meta whitespace-nowrap`,RV=`${LV} w-full cursor-pointer border-none bg-transparent p-0 text-left text-inherit [font:inherit] [&:hover]:underline`,zV=`w-[5ch] flex-none text-muted`,BV=`w-[16ch] flex-none overflow-hidden text-accent`,VV=`mt-3.5 mb-0.5`,HV=`min-w-0 flex-1 truncate`,UV=`flex-none text-right text-muted`,WV=`${UV} min-w-[5ch]`,GV=`${UV} min-w-[4ch]`,KV=`${UV} min-w-[5ch]`,qV=`w-[8ch] flex-none overflow-hidden text-accent`,JV=`flex flex-wrap gap-x-3 font-mono text-meta text-muted`,YV=`m-0 text-meta text-muted`,XV={turns:0,tokens:0,ms:0},ZV=e=>(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0),QV=e=>Math.max(0,e.endedAt-e.startedAt),$V=(e,t)=>({turns:e.turns+1,tokens:e.tokens+ZV(t),ms:e.ms+QV(t)});function eH(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`}function tH(e,t,n,r){let i=[];for(let e=n-1;e>=0;e--){let n=new Date(t);n.setDate(n.getDate()-e),i.push(eH(n.getTime()))}let a=new Map(i.map(e=>[e,{sum:XV,byEngine:{}}]));for(let t of e){let e=a.get(eH(t.startedAt));if(!e)continue;let n=t.vendor??`unknown`;e.sum=$V(e.sum,t),e.byEngine[n]=(e.byEngine[n]??0)+ZV(t)}let o=e.reduce((e,t)=>Math.min(e,t.startedAt),1/0),s=e.length>=r&&Number.isFinite(o)?{count:e.length,day:eH(o)}:null;return{cutoff:s,days:i.map(e=>{let t=a.get(e);return{day:e,...t?.sum??XV,byEngine:t?.byEngine??{},partial:s!==null&&e<=s.day}})}}function nH(e){let t=new Map;for(let n of e){let e=n.vendor??`unknown`,r=n.model??`unknown`,i=`${e}\0${r}`;t.set(i,{engine:e,model:r,...$V(t.get(i)??XV,n)})}return[...t.values()].sort((e,t)=>t.tokens-e.tokens||t.turns-e.turns)}function rH(e,t){let n=new Map;for(let t of e)n.set(t.taskId,{taskId:t.taskId,...$V(n.get(t.taskId)??XV,t)});return[...n.values()].sort((e,t)=>t.tokens-e.tokens||t.turns-e.turns).slice(0,t)}function iH(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4)).replace(/\.0$/,``)}k`:`${(e/1e6).toFixed(+(e<1e7)).replace(/\.0$/,``)}M`}var aH=[``,`▏`,`▎`,`▍`,`▌`,`▋`,`▊`,`▉`];function oH(e,t,n){if(e<=0||t<=0)return``;let r=Math.max(1,Math.round(e/t*n*8));return`${`█`.repeat(Math.floor(r/8))}${aH[r%8]}`}var sH=[`█`,`▓`,`▒`,`░`];function cH(e,t,n,r){return n<=0?``:t.map((t,i)=>{let a=e[t]??0,o=a<=0?0:Math.max(1,Math.round(a/n*r));return(sH[i%sH.length]??`█`).repeat(o)}).join(``)}var lH=.1,uH=/^(\d+)\s*(h|d)$/;function dH(e,t){let n=uH.exec(e.label.trim());if(!n||e.resetsAt===null||e.percent<=0)return null;let r=Number(n[1])*(n[2]===`d`?24:1)*36e5,i=r-(e.resetsAt-t);if(!(i>=r*lH)||i>r)return null;if(e.percent>=100)return{kind:`full`,at:t};let a=t+(100-e.percent)/e.percent*i;return a<e.resetsAt?{kind:`full`,at:a}:{kind:`lasts`}}var fH=14,pH=500,mH=3e4,hH=16,gH=8,_H=8;function vH(e,t,n,r){let i=q(e,t,n),[a,o]=(0,g.useState)(i?{kind:`ready`,value:i}:{kind:`loading`}),s=JSON.stringify(n);return(0,g.useEffect)(()=>{let r=!0;return sl(e,t,n).then(e=>r&&o({kind:`ready`,value:e})).catch(e=>r&&o(t=>t.kind===`ready`?t:{kind:`failed`,error:pL(e)})),()=>{r=!1}},[e,t,s,r]),a}var yH=e=>(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`${WV}`,children:iH(e.tokens)}),(0,V.jsx)(`span`,{className:`${GV}`,children:`${e.turns}t`}),(0,V.jsx)(`span`,{className:`${KV}`,children:bV(e.ms)})]});function bH({usage:e,nameOf:t}){let n=Date.now(),r=e.flatMap(e=>e.windows.map(r=>{let i={engine:e.name||t(e.vendor),label:r.label,percent:Math.round(r.percent)},a=dH(r,n);if(a?.kind===`full`){let t=a.at-n<72e6,o=new Date(a.at).toLocaleString([],{...t?{}:{weekday:`short`},hour:`2-digit`,minute:`2-digit`});return{key:`${e.vendor}:${r.kind}`,text:dL(z(`usage.full`),{...i,time:o})}}return{key:`${e.vendor}:${r.kind}`,text:dL(z(a?`usage.lasts`:`usage.window`),i)}}));return r.length===0?null:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted ${VV}`,children:z(`usage.quota`)}),r.map(e=>(0,V.jsx)(`p`,{className:`mono ${YV}`,children:e.text},e.key))]})}function xH({row:e,title:t,open:n}){let r=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:HV,children:t}),yH(e)]});return n?(0,V.jsx)(H,{variant:`row`,className:RV,onClick:n,children:r}):(0,V.jsx)(`div`,{className:LV,children:r})}function SH({model:e}){B();let t=SL(),[n]=yL(mH),r=vH(e,`turns.list`,{sinceDays:fH,limit:pH},n),i=vH(e,`engines.list`,{},n),a=vH(e,`usage.get`,{},n),o=v(e.tasks),s=i.kind===`ready`?i.value.engines:[],c=e=>s.find(t=>t.id===e)?.name??e,l=e=>o?.tasks.find(t=>t.id===e)?.label??z(`usage.removedTask`);return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:t,onKeyDown:e=>{e.metaKey||e.ctrlKey||e.altKey||e.key!==`q`&&e.key!==`Escape`||(e.preventDefault(),hn.set(null))},children:[(0,V.jsx)(`h1`,{className:bN,children:z(`usage.title`)}),(()=>{if(r.kind===`loading`)return(0,V.jsx)(`p`,{className:`text-muted`,children:z(`usage.loading`)});if(r.kind===`failed`)return(0,V.jsx)(`p`,{className:`text-error`,children:dL(z(`usage.failed`),{error:r.error})});let t=r.value.turns,n=new Set(r.value.readers??[]),i=tH(t,Date.now(),fH,pH),s=new Map;for(let e of i.days)for(let[t,n]of Object.entries(e.byEngine))s.set(t,(s.get(t)??0)+n);let u=[...s].sort((e,t)=>t[1]-e[1]).map(([e])=>e),d=Math.max(0,...i.days.map(e=>e.tokens)),f=nH(t),p=Math.max(0,...f.map(e=>e.tokens)),m=[...new Set((o?.tasks??[]).flatMap(e=>e.engine?.id&&!n.has(e.engine.id)?[e.engine.id]:[]))];return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:YV,children:dL(z(`usage.range`),{days:fH})}),t.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:z(`usage.empty`)}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`h2`,{className:`${rn} text-muted ${VV}`,children:z(`usage.perDay`)}),(0,V.jsx)(`div`,{className:JV,children:u.map((e,t)=>(0,V.jsx)(`span`,{children:`${sH[t%sH.length]} ${c(e)}`},e))}),i.days.map(e=>(0,V.jsxs)(`div`,{className:LV,children:[(0,V.jsx)(`span`,{className:zV,children:`${e.day.slice(5)}${e.partial?`~`:``}`}),(0,V.jsx)(`span`,{className:BV,children:cH(e.byEngine,u,d,hH)}),yH(e)]},e.day)),i.cutoff&&(0,V.jsx)(`p`,{className:`m-0 text-meta text-muted`,children:dL(z(`usage.cutoff`),{count:i.cutoff.count,day:i.cutoff.day.slice(5)})}),(0,V.jsx)(`h2`,{className:`${rn} text-muted ${VV}`,children:z(`usage.byModel`)}),f.map(e=>(0,V.jsxs)(`div`,{className:LV,children:[(0,V.jsx)(`span`,{className:HV,title:`${c(e.engine)} · ${e.model}`,children:`${c(e.engine)} · ${e.model}`}),(0,V.jsx)(`span`,{className:qV,children:oH(e.tokens,p,gH)}),yH(e)]},`${e.engine}\0${e.model}`)),(0,V.jsx)(`h2`,{className:`${rn} text-muted ${VV}`,children:z(`usage.topTasks`)}),rH(t,_H).map(t=>(0,V.jsx)(xH,{row:t,title:l(t.taskId),open:o?.tasks.some(e=>e.id===t.taskId)?()=>{hn.set(null),e.select(t.taskId)}:null},t.taskId))]}),m.length>0&&(0,V.jsx)(`p`,{className:`m-0 text-meta text-muted`,children:dL(z(`usage.noReader`),{engines:m.map(c).join(`, `)})}),a.kind===`ready`&&a.value.usage&&(0,V.jsx)(bH,{usage:a.value.usage,nameOf:c})]})})()]})}var CH={id:`mods`,label:`mods`},wH=[{id:`kanban`,label:`kanban`,mod:`kanban`},{id:`routines`,label:`automations`},{id:`issues`,label:`issues`,mod:`issues`}];function TH({model:e}){let{nav:t}=uL(),n=v(hn),r=v(e.mods).length>0,i=v(e.installedMods),a=[...wH.filter(e=>!e.mod||i.has(e.mod)),...r?[CH]:[]];return(0,V.jsxs)(`div`,{className:jN,children:[(0,V.jsxs)(`button`,{type:`button`,className:`rail-nav-row ${PN(!1)}`,onClick:()=>sA(),children:[z(`rail.newTask`),(0,V.jsx)(`span`,{className:FN,"aria-hidden":`true`,children:`+`})]}),a.map(e=>(0,V.jsx)(`button`,{type:`button`,className:`rail-nav-row ${PN(n===e.id)}`,"aria-current":n===e.id?`page`:void 0,onClick:()=>ka(e.id),children:t[e.label]},e.id))]})}function EH({model:e,page:t}){(0,g.useEffect)(()=>e.selection.subscribe(()=>hn.set(null)),[e]);let n=v(e.installedMods);return t===`kanban`&&n.has(`kanban`)?(0,V.jsx)(zz,{model:e}):t===`routines`?(0,V.jsx)(IV,{model:e}):t===`issues`&&n.has(`issues`)?(0,V.jsx)(AR,{model:e}):t===`mods`?(0,V.jsx)(nB,{model:e}):t===`compare`?(0,V.jsx)(vR,{model:e}):t===`usage`?(0,V.jsx)(SH,{model:e}):null}var DH=p();function OH(e){return e?.match(/^https?:\/\/[^/]+\/([^/]+\/[^/]+)\/(?:pull|merge_requests|-\/merge_requests)\//)?.[1]}var kH=e=>e.charAt(0).toUpperCase()+e.slice(1);function AH(e){return[z(`rail.pr.state.${e.state}`),...e.checks?[z(`rail.pr.checks.${e.checks}`)]:[]].join(`, `)}function jH(e){let t=new Map;for(let n of e){let e=jL(n),r=[...e&&n.pr?[{pr:n.pr,mark:e}]:[],...(n.sessionPrs??[]).flatMap(e=>{let t=ML(e);return t?[{pr:e,mark:t}]:[]})];for(let{pr:e,mark:i}of r){let r=e.url??(e.number===void 0?n.id:`${n.repo}#${e.number}`),a=t.get(r),o=e.lifecycle===`unknown`,s=a?.pr.lifecycle===`unknown`;(!a||s&&!o||o===s&&NL([a.mark,i])!==a.mark)&&t.set(r,{task:n,pr:e,mark:i})}}return[...t.values()]}function MH({tasks:e,onOpen:t}){let[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(!1),o=(0,g.useRef)(null),s=(0,g.useRef)(null),c=(0,g.useRef)(null),l=Oc();(0,g.useLayoutEffect)(()=>{let e=c.current;if(!e||!n)return;let t=e.getBoundingClientRect();t.right>window.innerWidth-8&&(e.style.left=`${Math.max(8,window.innerWidth-t.width-8)}px`,e.style.top=`${n.bottom+6}px`);let r=e.getBoundingClientRect().bottom-(window.innerHeight-8);r>0&&(e.style.top=`${Math.max(8,e.getBoundingClientRect().top-r)}px`)},[n]);let u=()=>{t?.(),s.current!==null&&window.clearTimeout(s.current),s.current=null,a(!1),o.current&&!n&&r(o.current.getBoundingClientRect())},d=()=>{a(!0),s.current=window.setTimeout(()=>r(null),140)};(0,g.useEffect)(()=>{if(!l||!n)return;let e=e=>{let t=e.target;o.current?.contains(t)||c.current?.contains(t)||(a(!0),s.current=window.setTimeout(()=>r(null),140))};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[l,n]),(0,g.useEffect)(()=>()=>{s.current!==null&&window.clearTimeout(s.current)},[]);let f=jH(e),p=NL(f.map(e=>e.mark));if(!p)return null;let m=f.length===1?`PR #${f[0]?.pr.number??``}, ${AH(p)}`:z(`rail.pr.many`,{count:f.length});return(0,V.jsxs)(`span`,{ref:o,className:`chip ${xD} ${p.tone}`,"aria-label":m,onMouseEnter:l?void 0:u,onMouseLeave:l?void 0:d,onClick:e=>{l&&(e.stopPropagation(),n&&!i?d():u())},children:[p.glyph,f.length>1&&(0,V.jsx)(`span`,{className:`font-sans`,children:f.length}),n&&(0,DH.createPortal)((0,V.jsx)(`div`,{ref:c,className:SD(i),style:{top:n.top-6,left:n.right+8},onMouseEnter:l?void 0:u,onMouseLeave:l?void 0:d,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onContextMenu:e=>e.stopPropagation(),children:f.map(({task:e,pr:t,mark:n})=>{let r=OH(t?.url),i=t?.additions!==void 0&&t.deletions!==void 0;return(0,V.jsxs)(`button`,{type:`button`,className:`flex flex-col gap-1 rounded-[calc(var(--radius)-6px)] px-3 py-2 text-left font-sans enabled:hover:bg-hover`,disabled:!t?.url,onClick:()=>t?.url&&window.open(t.url,`_blank`,`noopener`),children:[(0,V.jsx)(`span`,{className:`truncate font-semibold text-ink`,children:t.title||e.label}),(0,V.jsxs)(`span`,{className:`flex items-baseline gap-0 text-meta leading-[inherit] whitespace-nowrap`,children:[(0,V.jsxs)(`span`,{className:`inline-flex items-baseline gap-1.25 ${n.tone}`,children:[(0,V.jsx)(`span`,{className:`font-mono`,children:n.glyph}),kH(z(`rail.pr.state.${n.state}`))]}),(0,V.jsx)(`span`,{className:`overflow-hidden text-ellipsis whitespace-pre text-muted`,children:[...n.checks?[z(`rail.pr.checks.${n.checks}`)]:[],[r,t?.number===void 0?``:`#${t.number}`].filter(Boolean).join(` `)].filter(Boolean).map(e=>`, ${e}`).join(``)}),i&&(0,V.jsxs)(`span`,{className:`ml-auto flex gap-1.5 pl-3 tabular-nums`,children:[(0,V.jsxs)(`span`,{className:`text-success`,children:[`+`,t.additions]}),(0,V.jsxs)(`span`,{className:`text-error`,children:[`−`,t.deletions]})]})]})]},t.url??`${e.id}#${t.number??``}`)})}),document.body)]})}var NH=`~archived`;function PH(e,t,n,r){let i=t.filter(e=>!e.routine);if(i.length===0)return e;let a={id:NH,kind:`archived`,count:i.length,expanded:n};if(!n)return[...e,a];let o=VT([{repo:``,label:``,key:NH,tasks:i}],``,r,1,!1);return[...e,a,...o.filter(e=>e.kind!==`project`)]}function FH(e,t,n){let r=t.kind===`main`,i=e=>r?e.kind===`main`:e.kind!==`main`&&e.repo===t.repo&&!e.pinned==!t.pinned;if(t.id===n.id||!i(n))return null;let a=e.filter(i).sort((e,t)=>(e.order??e.rank)-(t.order??t.rank)).map(e=>e.id);return a.indexOf(n.id)-a.indexOf(t.id)}function IH(e,t,n,r){let i=FH(e,t,n);return i===null?null:r===`above`&&i>0?i-1:r===`below`&&i<0?i+1:i}function LH(e,t){return e.id===t.id?!1:e.kind===`main`?t.kind===`main`:t.kind!==`main`&&t.repo===e.repo}function RH(e,t,n,r,i){if(!LH(t,n))return null;if(t.kind===`main`){let i=IH(e,t,n,r);return i?{steps:i}:null}let a=n.pinned===!0||i&&r===`above`,o={...t,pinned:a},s=a===(n.pinned===!0)?IH(e.map(e=>e.id===t.id?o:e),o,n,r)??0:0,c=a===(t.pinned===!0)?{}:{pin:a};return`pin`in c||s!==0?{...c,steps:s}:null}var zH=e=>e===void 0||e.kind===`project`||e.kind===`state`?0:e.kind===`task`||e.kind===`pane`||e.kind===`round`?e.depth:1;function BH(e,t){let n=zH(e[t]),r=t+1;for(;r<e.length&&zH(e[r])>n;)r++;return r}function VH(e,t,n){let r=e.findIndex(e=>e.id===t),i=r<0?e:[...e.slice(0,r),...e.slice(BH(e,r))];for(let e=i.findIndex(e=>e.id===n)-1;e>=0;e--){let t=i[e];if(!t||t.kind===`project`||t.kind===`state`)return!0;if(t.kind===`task`&&t.depth===1&&t.task.kind!==`main`||t.kind===`round`&&t.depth===1)return!1}return!1}function HH(e,t){let n=zH(e[t]),r=[];for(let i=2;i<=n;i++){let a=t+1;for(;a<e.length&&zH(e[a])>i;)a++;let o=a<e.length&&zH(e[a])===i;r.push(i===n?o?`tee`:`elbow`:o?`pipe`:`blank`)}return r}function UH(e,t,n,r){let i=e.findIndex(e=>e.id===t);if(i<0||t===n)return e;let a=BH(e,i),o=e.slice(i,a),s=[...e.slice(0,i),...e.slice(a)],c=s.findIndex(e=>e.id===n);if(c<0)return e;let l=r===`above`?c:BH(s,c);return[...s.slice(0,l),...o,...s.slice(l)]}function WH(e,t,n,r,i){let[a,o]=(0,g.useState)(null),s=(0,g.useRef)(t);s.current=t;let[c,l]=(0,g.useState)(null),u=(0,g.useRef)(()=>o(null));(0,g.useEffect)(()=>{if(!c)return;let e=()=>{l(null),u.current()};if(t!==c)return e();let n=window.setTimeout(e,3e3);return()=>window.clearTimeout(n)},[t,c]);let d=(0,g.useRef)(null),f=(0,g.useRef)(null),p=()=>[...d.current?.querySelectorAll(`[data-row]`)??[]];(0,g.useLayoutEffect)(()=>{let e=f.current;if(!e||(f.current=null,window.matchMedia(`(prefers-reduced-motion: reduce)`).matches))return;let t=p().flatMap(t=>{let n=e.get(t.dataset.row??``),r=n===void 0?0:n-t.getBoundingClientRect().top;return r?[{el:t,dy:r}]:[]});for(let{el:e,dy:n}of t)e.style.transition=`none`,e.style.transform=`translateY(${n}px)`;d.current?.getBoundingClientRect();for(let{el:e}of t)e.style.transition=`transform 150ms ease-out`,e.style.transform=``,e.addEventListener(`transitionend`,()=>e.style.removeProperty(`transition`),{once:!0})});let m=(0,g.useRef)(null),h=(0,g.useRef)([]),_=(0,g.useRef)(new Map),v=(0,g.useRef)(0),y=(0,g.useRef)(0),b=e=>{m.current=e,o(e)},x=e=>!n||e.machine!==void 0?null:e.kind===`project`?t.find(t=>t.id===i(e.repo).mainTaskId)??null:e.kind===`task`&&e.depth===1&&e.task.kind!==`main`?e.task:null,S=e=>{let t=x(e);if(t)return{draggable:!0,onDragStart:n=>{n.dataTransfer.effectAllowed=`move`,n.dataTransfer.setData(`text/plain`,t.id),d.current=n.currentTarget.closest(`[data-rail-body]`),T(d.current);let r=h.current,i=r.findIndex(t=>t.id===e.id);v.current=r.slice(i,BH(r,i)).reduce((e,t,n)=>e+(_.current.get(t.id)?.height??0)+(n>0?_.current.get(t.id)?.gap??0:0),0),y.current=n.clientY,b({fromRow:e.id,from:t,toRow:e.id,to:t,side:`above`})},onDragEnd:()=>m.current&&b(null)}},C=(e,t,n)=>{let r=t;if(n.from.kind===`main`)for(;r>0&&e[r]?.kind!==`project`;)r--;let i=e[r],a=i&&x(i);return!i||!a||!LH(n.from,a)?null:{row:i.id,task:a}},w={onDragOver:e=>{let t=m.current;if(!t)return;e.preventDefault();let n=e.clientY-y.current;y.current=e.clientY;let r=e.target.closest(`[data-row]`)?.dataset.row,i=h.current,a=C(i,i.findIndex(e=>e.id===r),t);if(!a||a.row===t.fromRow)return;let o=e.currentTarget.querySelector(`[data-row="${CSS.escape(t.fromRow)}"]`)?.getBoundingClientRect().top;if(o===void 0||e.clientY>=o&&e.clientY<o+v.current)return;let s=e.clientY<o?`above`:`below`;(s===`above`?n>=0:n<=0)||(t.toRow!==a.row||t.side!==s)&&b({...t,toRow:a.row,to:a.task,side:s})},onDrop:n=>{let i=m.current;if(!i)return;n.preventDefault();let a=RH(t,i.from,i.to,i.side,VH(h.current,i.fromRow,i.toRow));m.current=null,r?u.current=()=>o(null):u.current=()=>{f.current=new Map(p().map(e=>[e.dataset.row??``,e.getBoundingClientRect().top])),o(null),cD(`default`),W(K(`tasks`,`sort.label`,{mode:K(`tasks`,`sort.modes.default`)}))},a?hD(e,i.from.id,a).finally(()=>l(s.current)):u.current()}},T=e=>{let t=[...e?.querySelectorAll(`[data-row]`)??[]];_.current=new Map(t.map((e,n)=>{let r=t[n-1],i=r?e.offsetTop-r.offsetTop-r.offsetHeight:0;return[e.dataset.row??``,{top:e.offsetTop,gap:i,height:e.offsetHeight}]}))},E=e=>{h.current=a?UH(e,a.fromRow,a.toRow,a.side):e;let t=new Map;if(!a)return t;let n=Math.min(...[..._.current.values()].map(e=>e.top));for(let[e,r]of h.current.entries()){let i=_.current.get(r.id);if(!i)return new Map;e>0&&(n+=i.gap),n!==i.top&&t.set(r.id,n-i.top),n+=i.height}return t};return{props:S,body:w,dragging:a?.fromRow??null,places:e=>{let t=E(e);return e=>{let n=t.get(e.id);return n?{"data-row":e.id,style:{transform:`translateY(${n}px)`}}:{"data-row":e.id}}}}}function GH({model:e,narrow:t,onSettings:n}){B();let r=v(jP),i=$(`engines.skill.bannerHintWeb`,{engines:r.join(`, `)});return(0,V.jsxs)(`div`,{className:MN,children:[!t&&(0,V.jsx)(BF,{client:e.client}),(0,V.jsxs)(`div`,{className:NN,children:[(0,V.jsxs)(`button`,{type:`button`,className:`rail-nav-row ${PN(!1)}`,onClick:n,children:[(0,V.jsxs)(`svg`,{className:IN,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:[(0,V.jsx)(`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`})]}),(0,V.jsx)(`span`,{children:z(`rail.settings`)}),r.length>0&&(0,V.jsx)(`span`,{className:`ml-2 min-w-0 truncate text-meta text-subtle`,title:i,children:z(`rail.skillCue`)})]}),(0,V.jsx)(NI,{model:e,bindingId:`settings.open`})]})]})}function KH(e,t,n,r,i=null){let a=e=>e.kind===`task`&&e.task.kind===`main`&&e.fold===void 0&&e.task.id!==n&&e.task.id!==i&&(r?t[e.task.id]?.length===0:(t[e.task.id]?.length??0)===0),o=e.filter(e=>!a(e));return o.filter((e,t)=>{if(e.kind!==`project`&&e.kind!==`state`)return!0;let n=o[t+1];return n!==void 0&&n.kind!==`project`&&n.kind!==`state`})}var qH=_({});function JH(e,t,n){let r=qH.get()[`${e}::${t.id}`];return r&&r.sig===$T(n)&&KT(n.root).some(e=>e.id===r.leaf)?r.leaf:n.activeLeafId}function YH(e,t,n,r){qH.set({...qH.get(),[`${e}::${t}`]:{sig:$T(n),leaf:r}})}function XH(e,t,n,r){YH(e,t.id,n,r),va(Kw(e,t.id,r))?.focus()}function ZH(e){let{taskId:t,tabId:n}=e.selection.get(),r=t?e.tabs.get()[t]?.find(e=>e.id===n):void 0;return t&&r?{taskId:t,tab:r}:null}async function QH(e,t,n){try{let r=await e.client.request(`tab.split`,t);await e.refreshTabsNow(),n?.(r)}catch(e){W(e instanceof Error?e.message:String(e),`error`)}}function $H(e,t,n,r,i){let a=i??(n.split?JH(t,n,n.split):`leaf-1`),o=e.selection.get();(o.taskId!==t||o.tabId!==n.id)&&e.select(t,n.id);let s=va(Kw(t,n.id,a))?.size();QH(e,{taskId:t,tabId:n.id,action:`open`,direction:r,leafId:a,...s},e=>{e.changed?e.split&&YH(t,n.id,e.split,e.leaf):W(z(`layout.splitTooSmall`),`error`)})}function eU(e,t,n,r){let i=n.split,a=i?JH(t,n,i):r,o=()=>QH(e,{taskId:t,tabId:n.id,action:`close`,leafId:r},e=>{let i=e.split;if(!i)return;let o=a!==r&&KT(i.root).some(e=>e.id===a);YH(t,n.id,i,o?a:i.activeLeafId)});if(!i||!ZT(n,i,r)){o();return}U.set((0,V.jsx)(xr,{title:z(`confirm.closePaneTitle`,{pane:XT(i,WT(n)).get(r)??r}),body:z(`confirm.closePaneBody`),confirmLabel:z(`menu.closePane`),onConfirm:o}))}function tU(e,t,n,r){let i=n.split;i&&U.set((0,V.jsx)(br,{title:Zs(`split.renameTitle`),initial:XT(i,WT(n)).get(r)??``,allowEmpty:!0,submitLabel:z(`dialog.save`),onSubmit:i=>QH(e,{taskId:t,tabId:n.id,action:`rename`,leafId:r,title:i})}))}function nU(e,t,n,r){return[{label:z(`menu.renamePane`),section:`split`,key:Ms(`workspace.split.rename`)??void 0,run:()=>tU(e,t,n,r)},{label:z(`menu.closePane`),section:`split`,key:hi(`workspace.split.close`)||void 0,run:()=>eU(e,t,n,r)}]}function rU(e,t,n,r){return[{label:z(`menu.splitRight`),section:`split`,key:Ms(`workspace.split.right`)??void 0,run:()=>$H(e,t,n,`right`,r)},{label:z(`menu.splitDown`),section:`split`,key:Ms(`workspace.split.down`)??void 0,run:()=>$H(e,t,n,`down`,r)}]}function iU(e,t,n,r){let i=n.split,a=r??(i?JH(t,n,i):`leaf-1`);return[...rU(e,t,n,a),...qT(i)?nU(e,t,n,a):[]]}function aU(e,t){let n=e.tabs.get()[t]??[],r=e.selection.get(),i=(r.taskId===t?n.find(e=>e.id===r.tabId):void 0)??Zi(n);return!i||!QT(i)?[]:rU(e,t,i,i.split?JH(t,i,i.split):`leaf-1`)}function oU(e,{task:t,tab:n,leaf:r}){n.split&&XH(t.id,n,n.split,r),e.select(t.id,n.id)}function sU(e){let{row:t}=e,n=v(e.model.selection);v(qH);let r=n.taskId===t.task.id&&n.tabId===t.tab.id&&!!t.tab.split&&JH(t.task.id,t.tab,t.tab.split)===t.leaf;return(0,V.jsxs)(`button`,{type:`button`,className:`${dr({size:`pane`})} ${e.cursor?kD:``}`,"aria-current":r||void 0,onClick:e.onClick,onContextMenu:e.onMenu,...e.place,children:[(0,V.jsx)(`span`,{className:gD,"aria-hidden":`true`,children:e.guides?.map((e,t)=>(0,V.jsx)(`span`,{className:yD(e)},t))}),(0,V.jsx)(`span`,{className:`${fr} text-(length:--fs-meta) ${r?`text-ink`:`text-muted`}`,children:t.label})]})}function cU(e,t){let n=t?.trim()??``;return n&&e?.effortLevels?.includes(n)?n:``}function lU({model:e,taskId:t}){let[n,r]=(0,g.useState)([]),[i,a]=(0,g.useState)({}),[o,s]=(0,g.useState)(``),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(``),[f,p]=(0,g.useState)(!1),{busy:m,error:h,submit:_}=yr();(0,g.useEffect)(()=>{Promise.all([e.client.request(`engines.list`),e.client.request(`task.get`,{taskId:t})]).then(([e,t])=>{let n=Vc(e.engines,t.task.engine).filter(e=>e.ready!==!1||e.id===t.task.engine),i=n.find(e=>e.id===t.task.engine)??n[0];r(n),a(t.task),s(i?.id??``),l(cU(i,t.task.effort)),d(i?.id===t.task.engine?t.task.model??``:``),p(!0)})},[e,t]);let v=n.find(e=>e.id===o),y=v?.effortLevels??[],b=y.length>0?[``,...y]:[],x=(v?.models??[]).map(e=>e.id).filter(e=>e.toLowerCase().includes(u.trim().toLowerCase())&&e!==u.trim()).slice(0,6),S=e=>{s(e);let t=n.find(t=>t.id===e);l(cU(t,e===i.engine?i.effort:void 0)),d(e===i.engine?i.model??``:``)},C=e=>{let t=n.findIndex(e=>e.id===o),r=n[Math.max(0,Math.min(n.length-1,t+e))];r&&S(r.id)},w=e=>{if(b.length===0)return;let t=Math.max(0,b.indexOf(c));l(b[Math.max(0,Math.min(b.length-1,t+e))]??``)},T=e=>{let t=e.target instanceof HTMLInputElement;if(e.key===`ArrowUp`&&!t)C(-1);else if(e.key===`ArrowDown`&&!t)C(1);else if((e.key===`ArrowLeft`||e.key===`h`)&&!t)w(-1);else if((e.key===`ArrowRight`||e.key===`l`)&&!t)w(1);else return;e.preventDefault()},E=()=>_(async()=>{if(!v)return;let n=y.length>0?c:void 0,r=v.acceptsModel?u.trim():void 0;(v.id!==i.engine||n!==void 0&&n!==(i.effort??``)||r!==void 0&&r!==(i.model??``))&&(await e.client.request(`task.setEngine`,{taskId:t,engine:v.id,...n===void 0?{}:{effort:n},...r===void 0?{}:{model:r}}),W(K(`tasks`,`toast.engineSwitched`,{engine:v.name})))});return(0,V.jsx)(vr,{title:K(`tasks`,`changeEngine.title`),wide:!0,children:(0,V.jsxs)(`form`,{className:Wn,onKeyDown:T,onSubmit:e=>{e.preventDefault(),E()},children:[(0,V.jsx)(`ul`,{className:Rn,"aria-label":K(`tasks`,`changeEngine.title`),children:n.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":e.id===o,className:dr({selected:e.id===o}),onClick:()=>S(e.id),children:[(0,V.jsx)(`span`,{className:`${hr} text-accent`,children:e.id===o?`●`:` `}),(0,V.jsx)(`span`,{className:fr,children:e.name}),e.id===i.engine&&(0,V.jsx)(`span`,{className:`text-muted`,children:K(`tasks`,`changeEngine.current`)})]})},e.id))}),f&&v&&v.acceptsModel&&(0,V.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:K(`tasks`,`engineModel.label`)}),(0,V.jsx)(`input`,{className:sn,spellCheck:!1,placeholder:K(`tasks`,`engineModel.placeholder`),value:u,onChange:e=>d(e.target.value)}),x.length>0&&(0,V.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:x.map(e=>(0,V.jsx)(`button`,{type:`button`,className:Ln(),onClick:()=>d(e),children:e},e))})]}),b.length>0&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`m-0 font-sans text-meta font-medium normal-nums text-muted`,children:K(`tasks`,`changeEngine.effortLabel`)}),(0,V.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:b.map(e=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":e===c,className:Ln(e===c),onClick:()=>l(e),children:e===``?K(`tasks`,`changeEngine.noEffort`):e},e||`default`))})]}),(0,V.jsx)(`p`,{className:`keys-only ${Qt}`,children:(0,V.jsx)(YE,{text:[K(`tasks`,`changeEngine.footer.engine`),...v?.acceptsModel?[K(`tasks`,`changeEngine.footer.model`)]:[],...b.length>0?[K(`tasks`,`changeEngine.footer.effort`)]:[],K(`tasks`,`changeEngine.footer.set`),K(`tasks`,`changeEngine.footer.cancel`)].join(` · `)})}),h&&(0,V.jsx)(`p`,{className:`text-error`,children:h}),(0,V.jsx)(Cr,{busy:m||!f,submitLabel:z(`taskops.set`)})]})})}function uU({model:e,task:t}){let[n,r]=(0,g.useState)(()=>q(e,`task.get`,{taskId:t.id})?.task??null),[i,a]=(0,g.useState)(null),{busy:o,error:s,submit:c}=yr();(0,g.useEffect)(()=>{sl(e,`task.get`,{taskId:t.id}).then(e=>r(e.task)).catch(e=>a(G(e)))},[e,t.id]);let l=()=>c(async()=>{if(!n?.prompt)return;let t=(await e.client.request(`task.spawn`,{repo:n.repo,prompt:n.prompt,...n.engine?{engine:n.engine}:{},...n.baseRef?{baseBranch:n.baseRef}:{}})).taskIds[0];t&&e.selectWhenListed(t)});return(0,V.jsx)(vr,{title:K(`tasks`,`runAgain.title`),wide:!0,children:(0,V.jsxs)(`form`,{className:Wn,onSubmit:e=>{e.preventDefault(),l()},children:[(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`runAgain.source`,{title:t.label})}),(0,V.jsx)(`pre`,{className:$t,children:n?.prompt??i??K(`tasks`,`fieldNotes.loading`)}),(0,V.jsx)(`p`,{className:Qt,children:K(`tasks`,`runAgain.hint`)}),s&&(0,V.jsx)(`p`,{className:`text-error`,children:s}),(0,V.jsx)(Cr,{busy:o||!n?.prompt,submitLabel:K(`tasks`,`runAgain.confirm`)})]})})}function dU(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}function fU({model:e,repo:t}){let[n,r]=(0,g.useState)({kind:`loading`}),[i,a]=(0,g.useState)(0),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)(null),u=(0,g.useRef)(null),d=()=>e.client.request(`notes.list`,{repo:t}).then(e=>r({kind:`ready`,notes:e.notes})).catch(e=>r({kind:`error`,message:G(e)}));(0,g.useEffect)(()=>void d(),[]);let f=n.kind===`ready`?n.notes:[];(0,g.useEffect)(()=>a(e=>Math.max(0,Math.min(e,f.length-1))),[f.length]),(0,g.useEffect)(()=>{u.current?.querySelector(`.is-selected`)?.scrollIntoView({block:`nearest`})},[i]);let p=async n=>{if(n.id!==void 0){l(null);try{await e.client.request(`notes.delete`,{repo:t,id:n.id}),s(null),await d()}catch(e){l(G(e))}}};return(0,V.jsx)(vr,{title:K(`tasks`,`fieldNotes.title`),wide:!0,children:(0,V.jsxs)(`div`,{className:Wn,onKeyDown:e=>{if(!o){if(e.key===`ArrowDown`||e.key===`j`)a(e=>Math.min(f.length-1,e+1));else if(e.key===`ArrowUp`||e.key===`k`)a(e=>Math.max(0,e-1));else if(e.key===`d`&&f[i]?.id!==void 0)s(f[i]??null);else return;e.preventDefault()}},children:[(0,V.jsx)(`p`,{className:`font-mono text-meta break-all text-muted`,children:t}),n.kind===`loading`&&(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`fieldNotes.loading`)}),n.kind===`error`&&(0,V.jsx)(`p`,{className:`text-error`,children:n.message}),n.kind===`ready`&&f.length===0&&(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`fieldNotes.empty`)}),f.length>0&&(0,V.jsx)(`ul`,{className:`m-0 list-none p-0 flex max-h-[44vh] flex-col gap-2 overflow-y-auto`,ref:u,children:f.map((e,t)=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,className:en(t===i),onClick:()=>a(t),autoFocus:t===0,children:[(0,V.jsxs)(`span`,{className:`font-mono text-meta whitespace-pre text-accent`,children:[t===i?`▸ `:` `,dU(e.at),`, `,e.author]}),(0,V.jsx)(`span`,{className:`text-ink whitespace-pre-wrap wrap-anywhere`,children:e.text})]})},`${e.at}:${t}`))}),o&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-sm border-hairline border-line bg-paper px-3 py-2.5`,children:[(0,V.jsx)(`p`,{children:(0,V.jsx)(`strong`,{children:K(`tasks`,`fieldNotes.confirmDelete.title`)})}),(0,V.jsx)(`p`,{className:`text-muted`,children:K(`tasks`,`fieldNotes.confirmDelete.body`,{text:o.text})}),c&&(0,V.jsx)(`p`,{className:`text-error`,children:c}),(0,V.jsxs)(`div`,{className:`actions flex items-center justify-end gap-3.5`,children:[(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>s(null),children:z(`dialog.cancel`)}),(0,V.jsx)(`button`,{type:`button`,className:Le({danger:!0}),onClick:()=>void p(o),children:z(`taskops.retire`)})]})]}),!o&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`p`,{className:`keys-only font-sans text-meta text-subtle`,children:K(`tasks`,`fieldNotes.footerDeletable`)}),(0,V.jsxs)(`div`,{className:`actions flex items-center justify-end gap-3.5`,children:[(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,disabled:f[i]?.id===void 0,onClick:()=>s(f[i]??null),children:z(`taskops.retire`)}),(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:kn,children:z(`taskops.close`)})]})]})]})})}var pU=[`backlog`,`in_progress`,`in_review`,`done`,`canceled`,`error`],mU={backlog:`status.backlog`,in_progress:`status.inProgress`,in_review:`status.inReview`,done:`status.done`,canceled:`status.canceled`,error:`status.error`},hU=e=>({binding:e,key:Ms(e)??void 0});async function gU(e,t){if(!e){W(z(`menu.nothingToCopy`,{what:t}),`error`);return}try{await navigator.clipboard.writeText(e),W(z(`menu.copied`,{text:e}))}catch{W(z(`menu.copyFailed`),`error`)}}function _U(e,t,n){let r=[{label:z(`menu.newTask`),section:`open`,run:()=>sA(t)}],i=n.mainTaskId;return i&&(n.first||r.push({label:K(`tasks`,`menu.moveToTop`),section:`edit`,run:()=>void e.client.request(`task.move`,{taskId:i,direction:`top`}).catch(e=>W(K(`tasks`,`toast.moveFailed`,{error:String(e)}),`error`))}),r.push({label:K(`tasks`,`menu.reorderProject`),section:`edit`,...hU(`sidebar.localMerge`),run:()=>yU(i)})),r.push({label:K(`tasks`,`menu.fieldNotes`),section:`notes`,run:()=>U.set((0,V.jsx)(fU,{model:e,repo:t}))}),i&&r.push({label:K(`tasks`,`menu.forgetProject`),section:`danger`,danger:!0,run:()=>U.set(fI(e,t,n.label))}),r}function vU(e){return[{label:z(`menu.newChatNoFolder`),section:`open`,run:()=>cA()},{label:z(`menu.newShell`),section:`open`,run:()=>void sT(e).catch(e=>W(String(e),`error`))}]}function yU(e){let t=!uD.get();t&&e!==void 0&&dD.set(e),fD(t),document.querySelector(`.rail`)?.focus()}function bU(e,t){let n=(e.tasks.get()?.tasks??[]).filter(e=>e.kind===`main`&&!e.machine&&e.repo!==t.repo).map(e=>e.repo),r=n.map(e=>{let t=e.slice(e.lastIndexOf(`/`)+1);return{value:e,label:n.filter(e=>e.endsWith(`/${t}`)).length>1?e:t}});return r.length===0?(W(K(`tasks`,`moveToProject.empty`),`error`),null):(0,V.jsx)(Sr,{title:K(`tasks`,`moveToProject.title`),choices:r,onPick:async n=>{await e.client.request(`task.moveToProject`,{taskId:t.id,repo:n}),W(K(`tasks`,`toast.movedToProject`,{project:r.find(e=>e.value===n)?.label??n}))}})}function xU(e,t,n){let r=e.client,i=[];n&&(i.push({label:z(`menu.closeTab`),section:`tab`,run:()=>U.set((0,V.jsx)(xr,{title:z(`confirm.closeTabTitle`,{tab:n.title??n.engineName??n.id}),body:z(`confirm.closeTabBody`),confirmLabel:z(`menu.closeTab`),onConfirm:async()=>{await r.request(`tab.close`,{taskId:t.id,tabId:n.id}),await e.refreshTabsNow()}}))}),i.push(...iU(e,t.id,n))),i.push({label:z(`menu.newChat`),section:`open`,run:()=>void aT(e,t.id)}),i.push({label:z(`menu.newChatPick`),section:`open`,rare:!0,run:()=>U.set((0,V.jsx)(dT,{model:e,taskId:t.id}))}),i.push({label:z(`menu.continueEngine`),section:`open`,rare:!0,...hU(`chat.tab.fork`),run:()=>U.set((0,V.jsx)(dT,{model:e,taskId:t.id,context:`continue`,sourceTabId:n?.id}))}),i.push({label:z(`menu.newShell`),section:`open`,run:()=>void oT(e,t.id,{kind:`shell`}).catch(e=>W(String(e),`error`))}),t.startsAt&&(i.push({label:z(`menu.startNow`),section:`open`,run:()=>void e.client.request(`task.startScheduledNow`,{taskId:t.id}).catch(e=>W(String(e),`error`))}),i.push({label:z(`menu.cancelStart`),section:`open`,run:()=>void e.client.request(`task.cancelScheduledStart`,{taskId:t.id}).catch(e=>W(String(e),`error`))})),t.hasPrompt&&(i.push({label:K(`tasks`,`menu.runAgain`),section:`open`,run:()=>U.set((0,V.jsx)(uU,{model:e,task:t}))}),i.push({label:z(`menu.retryEdit`),section:`open`,rare:!0,run:()=>void tk(e,t)}));let a=!t.machine;if(a&&i.push({label:K(`tasks`,`menu.openEditor`),section:`open`,...hU(`tasks.openWorktree`),run:()=>void sI(e,t.id)}),t.groupId){let e=t.groupId;i.push({label:z(`compare.menu`),section:`open`,run:()=>Aa(e)})}i.push({label:z(`menu.rename`),section:`edit`,...hU(`sidebar.rename`),run:()=>U.set((0,V.jsx)(br,{title:z(`menu.rename`),initial:t.title,submitLabel:z(`dialog.save`),onSubmit:e=>r.request(`task.rename`,{taskId:t.id,title:e}).then(()=>{})}))}),t.kind!==`main`&&i.push({label:t.pinned?z(`menu.unpin`):z(`menu.pin`),section:`edit`,...hU(`sidebar.pin`),run:()=>void r.request(`task.pin`,{taskId:t.id,pinned:!t.pinned}).catch(e=>W(String(e),`error`))}),a&&i.push({label:K(`tasks`,`menu.reorder`),section:`edit`,rare:!0,...hU(`sidebar.localMerge`),run:()=>yU()}),i.push({label:z(`menu.setStatus`),section:`edit`,children:pU.map(e=>({label:z(mU[e]),checked:e===t.status,run:()=>void r.request(`task.setStatus`,{taskId:t.id,status:e}).catch(e=>W(String(e),`error`))}))}),a&&t.kind!==`main`&&!t.routine&&!t.parentTaskId&&!t.extraRepoCount&&i.push({label:K(`tasks`,`menu.moveToProject`),section:`edit`,rare:!0,run:()=>{let n=bU(e,t);n&&U.set(n)}}),a&&i.push({label:z(`menu.changeEngine`),section:`edit`,rare:!0,...hU(`tasks.cycleEngine`),run:()=>U.set((0,V.jsx)(lU,{model:e,taskId:t.id}))}),t.pr?.checkState===`failing`&&i.push({label:K(`tasks`,`menu.fixChecks`),section:`git`,key:hi(`files.fixChecks`),run:()=>void oI(e,t.id,z(`taskops.fixSent`))}),t.kind===`task`&&t.branch&&a&&i.push({label:K(`tasks`,`menu.syncBase`),section:`git`,rare:!0,key:hi(`files.syncBase`),run:()=>void iI(e,t.id)}),t.branch&&i.push({label:z(`menu.renameBranch`),section:`git`,rare:!0,...hU(`tasks.renameBranch`),run:()=>U.set((0,V.jsx)(br,{title:z(`menu.renameBranch`),initial:t.branch,submitLabel:z(`dialog.save`),onSubmit:e=>r.request(`task.setBranch`,{taskId:t.id,branch:e}).then(()=>{})}))}),t.kind===`task`&&t.branch&&i.push({label:z(`menu.land`),section:`git`,run:()=>void nI(e,t)});let o=[{label:z(`menu.copyWhat.id`),run:()=>void gU(t.id,z(`menu.what.id`))}];return t.branch&&o.push({label:z(`menu.copyWhat.branch`),run:()=>void gU(t.branch,z(`menu.what.branch`))}),o.push({label:z(`menu.copyWhat.path`),run:()=>void r.request(`task.get`,{taskId:t.id}).then(e=>gU(e.task.worktreePath,z(`menu.what.path`))).catch(e=>W(String(e),`error`))}),i.push({label:z(`menu.copy`),section:`copy`,children:o}),t.kind!==`main`&&i.push({label:K(`tasks`,t.archived?`menu.unarchive`:`menu.archive`),section:`danger`,run:()=>void dI(e,t)}),i.push({label:z(`menu.removeSession`),section:`danger`,...hU(`sidebar.delete`),danger:!0,run:()=>U.set(t.kind===`main`?uI(e,t):lI(e,t))}),i}var SU=`rove.collapsedProjects`,CU=`rove.foldedTasks`,wU=`rove.openedTasks`,TU=600;function EU(e){try{let t=JSON.parse(localStorage.getItem(e)??`[]`);return new Set(Array.isArray(t)?t.filter(e=>typeof e==`string`):[])}catch{return new Set}}function DU(e,t){try{localStorage.setItem(e,JSON.stringify([...t]))}catch{}}var OU=(e,t)=>{let n=new Set(e);return n.delete(t)||n.add(t),n};function kU(){let e=v(sD),[t,n]=(0,g.useState)({active:!1,query:``}),[r,i]=(0,g.useState)(!1),a=()=>i(e=>!e),[o,s]=(0,g.useState)(()=>EU(SU)),c=e=>s(t=>{let n=OU(t,e);return DU(SU,n),n}),[l,u]=(0,g.useState)(()=>({folded:EU(CU),opened:EU(wU)}));return{sort:e,cycleSort:lD,search:t,setSearch:n,archivedOpen:r,toggleArchived:a,collapsed:o,toggleProject:c,hand:l,toggleTaskFold:(e,t)=>u(n=>{let r=new Set(n.folded),i=new Set(n.opened);return t?(r.delete(e),i.add(e)):(i.delete(e),r.add(e)),DU(CU,r),DU(wU,i),{folded:r,opened:i}})}}var AU=[`sidebar.nav`,`sidebar.goto`,`sidebar.select`,`sidebar.tree.open`,`sidebar.rename`,`sidebar.pin`,`sidebar.localMerge`,`sidebar.delete`,`sidebar.sort`,`sidebar.search.enter`,`tasks.renameBranch`,`tasks.cycleEngine`,`tasks.openWorktree`,`tasks.update`,`tasks.focusEngine`,`task.new`,`settings.open.sidebar`,`worktrees.open.sidebar`];function jU(e){for(let t of e)for(let e of AU){let n=mi(e).indexOf(t);if(n>=0)return{id:e,slot:n}}return null}function MU(e,t){let n=e.selection.get().taskId===t;e.select(t),Da(),n&&ia()}function NU(e,t,n,r){let{search:i,setSearch:a}=n,[o,s]=(0,g.useState)(null),c=(0,g.useRef)(0),l=t.filter(e=>e.kind!==`project`&&e.kind!==`state`),u=l.findIndex(e=>e.id===o);(0,g.useEffect)(()=>{u<0&&s(r.selectedId&&l.some(e=>e.id===r.selectedId)?r.selectedId:l[0]?.id??null)},[u,l,r.selectedId]);let d=l[u],f=d?.kind===`task`||d?.kind===`pane`?d.task.id:null;(0,g.useEffect)(()=>dj.set(f),[f]);let p=l[0]?.id??null;(0,g.useEffect)(()=>{i.query,i.active&&s(p)},[i.active,i.query,p]);let m=e=>{let t=l[Math.max(0,Math.min(l.length-1,e))];t&&s(t.id)},h=t=>{t?.kind===`archived`&&n.toggleArchived(),t?.kind===`task`&&e.select(t.task.id),t?.kind===`round`&&Aa(t.groupId),t?.kind===`pane`&&oU(e,t),t&&t.kind!==`archived`&&Da()},_=(t,n)=>{t?.kind===`task`&&dn(xU(e,t.task,null),n)?.run?.()},v=async t=>{if(t?.kind===`task`&&t.machine===void 0)try{let{engines:n}=await e.client.request(`engines.list`),r=Vc(n).filter(e=>e.ready!==!1),i=r[(r.findIndex(e=>e.id===t.task.engine?.id)+1)%r.length];if(!i||i.id===t.task.engine?.id)return;await e.client.request(`task.setCommand`,{taskId:t.task.id,engine:i.id}),W(z(`rail.engineSwitched`,{engine:i.name}))}catch(e){W(z(`rail.engineSwitchFailed`,{error:e instanceof Error?e.message:String(e)}),`error`)}};return{cursor:o,setCursor:s,onKeyDown:t=>{let o=l[u],s=t.target instanceof HTMLInputElement;if(i.active){if(t.metaKey||t.ctrlKey||t.altKey)return;if(t.key===`Escape`)a({active:!1,query:``});else if(t.key===`Enter`)h(o),a({active:!1,query:``});else if(t.key===`ArrowDown`)m(u+1);else if(t.key===`ArrowUp`)m(u-1);else if(t.key===`Backspace`&&!s)a(e=>({...e,query:e.query.slice(0,-1)}));else if(t.key.length===1&&!s)a(e=>({...e,query:e.query+t.key}));else return;t.preventDefault();return}let d=jU(Es(t));if(uD.get()){let n=o?.kind===`task`&&o.machine===void 0;if(d?.id===`sidebar.nav`)n&&pD(e,o,d.slot%2==0?1:-1);else if(d?.id===`sidebar.localMerge`||t.key===`Enter`||t.key===`Escape`)fD(!1);else return;t.preventDefault();return}switch(d?.id){case`sidebar.nav`:m(d.slot%2==0?u+1:u-1);break;case`sidebar.goto`:d.slot%2==1?m(l.length-1):Date.now()-c.current<TU?(m(0),c.current=0):c.current=Date.now();break;case`sidebar.select`:case`sidebar.tree.open`:h(o);break;case`tasks.focusEngine`:ia();break;case`sidebar.rename`:case`sidebar.pin`:case`sidebar.delete`:case`tasks.renameBranch`:case`tasks.openWorktree`:_(o,d.id);break;case`tasks.cycleEngine`:v(o);break;case`sidebar.localMerge`:o?.machine===void 0&&fD(!0);break;case`sidebar.sort`:n.cycleSort(),W(K(`tasks`,`sort.label`,{mode:K(`tasks`,`sort.modes.${sD.get()}`)}));break;case`sidebar.search.enter`:a({active:!0,query:``});break;case`task.new`:r.onNewTask(o?.kind===`task`||o?.kind===`pane`?o.task.repo:void 0,o?.machine);break;case`settings.open.sidebar`:r.onSettings();break;case`worktrees.open.sidebar`:ka(`worktrees`);break;case`tasks.update`:ka(`update`);break;default:return}t.preventDefault()}}}var PU=192,FU=`rove.web.railWidth`,IU=`rove.web.railFolded`;function LU(){let e=Number(localStorage.getItem(FU));return Number.isFinite(e)&&e>0?e:null}var RU=_(LU());RU.subscribe(()=>{let e=RU.get();e===null?localStorage.removeItem(FU):localStorage.setItem(FU,String(Math.round(e)))}),RU.subscribe(Mn);var zU=_(localStorage.getItem(IU)===`1`);zU.subscribe(()=>localStorage.setItem(IU,zU.get()?`1`:`0`));var BU=_(!1),VU=null;function HU(e){VU!==null&&window.clearTimeout(VU),VU=null,e?BU.set(!0):VU=window.setTimeout(()=>BU.set(!1),250)}zU.subscribe(()=>BU.set(!1)),zU.subscribe(Mn);function UU(e,t=window.innerWidth){let n=Math.max(PU,t-320);return Math.max(PU,Math.min(n,Math.round(e)))}var WU=(e,t,n)=>`~pane:${e}:${t}:${n}`;function GU(e,t){return e.flatMap(e=>e.kind===`task`?[e,...(t[e.task.id]??[]).flatMap(t=>{let n=t.split;if(!n||!qT(n))return[];let r=XT(n,WT(t));return KT(n.root).map(n=>({id:WU(e.task.id,t.id,n.id),kind:`pane`,task:e.task,tab:t,leaf:n.id,label:r.get(n.id)??n.id,depth:e.depth+1,...e.machine===void 0?{}:{machine:e.machine}}))})]:[e])}function KU(e){let{row:t}=e;return(0,V.jsxs)(`button`,{type:`button`,className:`${dr({size:`pane`})} ${e.cursor?kD:``}`,title:z(`compare.menu`),onClick:()=>{e.onClick(),Aa(t.groupId)},...e.place,children:[e.guides&&(0,V.jsx)(`span`,{className:`-my-0.75 -mr-0.5 ml-0 flex flex-none self-stretch`,"aria-hidden":`true`,children:e.guides.map((e,t)=>(0,V.jsx)(`span`,{className:yD(e)},t))}),(0,V.jsx)(`span`,{className:`${fr} text-(length:--fs-meta) text-muted`,children:t.title}),(0,V.jsxs)(`span`,{className:`${_r} ml-auto items-center`,children:[e.repo&&(0,V.jsx)(`span`,{className:`max-w-24 truncate text-subtle`,children:e.repo}),(0,V.jsx)(`span`,{className:`text-subtle`,children:t.tasks.length}),(0,V.jsx)(dR,{status:kL(t.tasks)})]})]})}function qU(e){let t=(0,g.useRef)(null);return(0,g.useEffect)(()=>{let e=t.current;return()=>{e&&document.activeElement===e&&e.closest(`nav`)?.focus()}},[]),(0,V.jsxs)(`div`,{className:`${ED} mono items-center`,children:[(0,V.jsx)(`span`,{className:`text-accent`,children:`/`}),(0,V.jsx)(`input`,{ref:t,className:DD,type:`text`,autoFocus:!0,spellCheck:!1,autoComplete:`off`,autoCapitalize:`off`,enterKeyHint:`go`,value:e.query,placeholder:z(`rail.searchPlaceholder`),"aria-label":z(`rail.searchPlaceholder`),onChange:t=>e.onChange(t.target.value)}),e.query&&(0,V.jsx)(`span`,{className:`ml-1.5 text-muted`,children:e.count})]})}var JU=Math.min,YU=Math.max,XU=Math.round,ZU=Math.floor,QU=e=>({x:e,y:e}),$U={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function eW(e,t,n){return YU(e,JU(t,n))}function tW(e,t){return typeof e==`function`?e(t):e}function nW(e){return e.split(`-`)[0]}function rW(e){return e.split(`-`)[1]}function iW(e){return e===`x`?`y`:`x`}function aW(e){return e===`y`?`height`:`width`}function oW(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function sW(e){return iW(oW(e))}function cW(e,t,n){n===void 0&&(n=!1);let r=rW(e),i=sW(e),a=aW(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=_W(o)),[o,_W(o)]}function lW(e){let t=_W(e);return[uW(e),t,uW(t)]}function uW(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var dW=[`left`,`right`],fW=[`right`,`left`],pW=[`top`,`bottom`],mW=[`bottom`,`top`];function hW(e,t,n){switch(e){case`top`:case`bottom`:return n?t?fW:dW:t?dW:fW;case`left`:case`right`:return t?pW:mW;default:return[]}}function gW(e,t,n,r){let i=rW(e),a=hW(nW(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(uW)))),a}function _W(e){let t=nW(e);return $U[t]+e.slice(t.length)}function vW(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function yW(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:vW(e)}function bW(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function xW(e,t,n){let{reference:r,floating:i}=e,a=oW(t),o=sW(t),s=aW(o),c=nW(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=rW(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function SW(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=tW(t,e),p=yW(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=bW(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=bW(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var CW=50,wW=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:SW},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=xW(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<CW&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=xW(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},TW=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=tW(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=nW(r),_=oW(o),v=nW(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[_W(o)]:lW(o)),x=p!==`none`;!d&&x&&b.push(...gW(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=cW(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===oW(t)||T.every(e=>oW(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=oW(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},EW=new Set([`left`,`top`]);async function DW(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=nW(n),s=rW(n),c=oW(n)===`y`,l=EW.has(o)?-1:1,u=a&&c?-1:1,d=tW(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var OW=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await DW(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},kW=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=tW(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=oW(i),p=iW(f),m=u[p],h=u[f],g=(e,t)=>eW(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}};function AW(){return typeof window<`u`}function jW(e){return PW(e)?(e.nodeName||``).toLowerCase():`#document`}function MW(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function NW(e){return((PW(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function PW(e){return AW()?e instanceof Node||e instanceof MW(e).Node:!1}function FW(e){return AW()?e instanceof Element||e instanceof MW(e).Element:!1}function IW(e){return AW()?e instanceof HTMLElement||e instanceof MW(e).HTMLElement:!1}function LW(e){return!AW()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof MW(e).ShadowRoot}function RW(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=YW(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function zW(e){return/^(table|td|th)$/.test(jW(e))}function BW(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var VW=/transform|translate|scale|rotate|perspective|filter/,HW=/paint|layout|strict|content/,UW=e=>!!e&&e!==`none`,WW;function GW(e){let t=FW(e)?YW(e):e;return UW(t.transform)||UW(t.translate)||UW(t.scale)||UW(t.rotate)||UW(t.perspective)||!qW()&&(UW(t.backdropFilter)||UW(t.filter))||VW.test(t.willChange||``)||HW.test(t.contain||``)}function KW(e){let t=ZW(e);for(;IW(t)&&!JW(t);){if(GW(t))return t;if(BW(t))return null;t=ZW(t)}return null}function qW(){return WW??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),WW}function JW(e){return/^(html|body|#document)$/.test(jW(e))}function YW(e){return MW(e).getComputedStyle(e)}function XW(e){return FW(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ZW(e){if(jW(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||LW(e)&&e.host||NW(e);return LW(t)?t.host:t}function QW(e){let t=ZW(e);return JW(t)?(e.ownerDocument||e).body:IW(t)&&RW(t)?t:QW(t)}function $W(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=QW(e),i=r===e.ownerDocument?.body,a=MW(r);if(i){let e=eG(a);return t.concat(a,a.visualViewport||[],RW(r)?r:[],e&&n?$W(e):[])}return t.concat(r,$W(r,[],n))}function eG(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tG(e){let t=YW(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=IW(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=XU(n)!==a||XU(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function nG(e){return FW(e)?e:e.contextElement}function rG(e){let t=nG(e);if(!IW(t))return QU(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=tG(t),o=(a?XU(n.width):n.width)/r,s=(a?XU(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var iG=QU(0);function aG(e){let t=MW(e);return!qW()||!t.visualViewport?iG:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function oG(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===MW(e)}function sG(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=nG(e),o=QU(1);t&&(r?FW(r)&&(o=rG(r)):o=rG(e));let s=oG(a,n,r)?aG(a):QU(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=MW(a),t=FW(r)?MW(r):r,n=e,i=eG(n);for(;i&&t!==n;){let e=rG(i),t=i.getBoundingClientRect(),r=YW(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=MW(i),i=eG(n)}}return bW({width:u,height:d,x:c,y:l})}function cG(e,t){let n=XW(e).scrollLeft;return t?t.left+n:sG(NW(e)).left+n}function lG(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-cG(e,n),y:n.top+t.scrollTop}}function uG(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=NW(r),s=t?BW(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=QU(1),u=QU(0),d=IW(r);if((d||!a)&&((jW(r)!==`body`||RW(o))&&(c=XW(r)),d)){let e=sG(r);l=rG(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?lG(o,c):QU(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function dG(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function fG(e){let t=XW(e),n=e.ownerDocument.body,r=YU(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=YU(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+cG(e),o=-t.scrollTop;return YW(n).direction===`rtl`&&(a+=YU(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var pG=25;function mG(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=MW(e),a=NW(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!qW()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(cG(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=pG&&(s-=o)}return{width:s,height:c,x:l,y:u}}function hG(e,t){let n=sG(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=rG(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function gG(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=mG(e,n,t);else if(t===`document`)r=fG(NW(e));else if(FW(t))r=hG(t,n);else{let n=aG(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return bW(r)}function _G(e,t){let n=t.get(e);if(n)return n;let r=$W(e,[],!1).filter(e=>FW(e)&&jW(e)!==`body`),i=null,a=YW(e).position===`fixed`,o=a?ZW(e):e;for(;FW(o)&&!JW(o);){let e=YW(o),t=GW(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=ZW(o)}return t.set(e,r),r}function vG(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?BW(t)?[]:_G(t,this._c):[].concat(n),r],o=gG(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=gG(t,a[e],i);s=YU(n.top,s),c=JU(n.right,c),l=JU(n.bottom,l),u=YU(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function yG(e){let{width:t,height:n}=tG(e);return{width:t,height:n}}function bG(e,t,n){let r=IW(t),i=NW(t),a=n===`fixed`,o=sG(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=QU(0);if((r||!a)&&((jW(t)!==`body`||RW(i))&&(s=XW(t)),r)){let e=sG(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=cG(i));let l=i&&!r&&!a?lG(i,s):QU(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function xG(e){return YW(e).position===`static`}function SG(e,t){if(!IW(e)||YW(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return NW(e)===n&&(n=n.ownerDocument.body),n}function CG(e,t){let n=MW(e);if(BW(e))return n;if(!IW(e)){let t=ZW(e);for(;t&&!JW(t);){if(FW(t)&&!xG(t))return t;t=ZW(t)}return n}let r=SG(e,t);for(;r&&zW(r)&&xG(r);)r=SG(r,t);return r&&JW(r)&&xG(r)&&!GW(r)?n:r||KW(e)||n}var wG=async function(e){let t=this.getOffsetParent||CG,n=this.getDimensions,r=await n(e.floating);return{reference:bG(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function TG(e){return YW(e).direction===`rtl`}var EG={convertOffsetParentRelativeRectToViewportRelativeRect:uG,getDocumentElement:NW,getClippingRect:vG,getOffsetParent:CG,getElementRects:wG,getClientRects:dG,getDimensions:yG,getScale:rG,isElement:FW,isRTL:TG};function DG(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function OG(e,t,n){let r=null,i,a=NW(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=ZU(d),h=ZU(a.clientWidth-(u+f)),g=ZU(a.clientHeight-(d+p)),_=ZU(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:YU(0,JU(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!DG(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=MW(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function kG(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=nG(e),u=i||a?[...l?$W(l):[],...t?$W(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?OG(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?sG(e):null;c&&g();function g(){let t=sG(e);h&&!DG(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var AG=OW,jG=kW,MG=TW,NG=(e,t,n)=>{let r=new Map,i=n??{},a={...EG,...i.platform,_c:r};return wW(e,t,{...i,platform:a})},PG=`pointer-events-none fixed top-0 left-0 z-35 max-w-80 animate-tip-in rounded-sm border-hairline border-line bg-inset px-2.5 py-1.5 font-sans text-meta leading-[1.4] whitespace-normal wrap-anywhere text-ink shadow-popover motion-reduce:animate-none`,FG=500,IG=400,LG=`rove-tip`,RG=null,zG=null,BG=null,VG=null,HG=0,UG=!1,WG=()=>UG;function GG(){return RG?.isConnected?RG:(RG=document.createElement(`div`),RG.id=LG,RG.setAttribute(`role`,`tooltip`),RG.className=PG,RG.hidden=!0,document.body.append(RG),RG)}function KG(){VG!==null&&window.clearTimeout(VG),VG=null}function qG(e,t,n=`top`){KG(),JG();let r=GG();r.textContent=t,r.hidden=!1,zG=e,e.setAttribute(`aria-describedby`,LG),BG=kG(e,r,()=>{if(!e.isConnected)return JG();NG(e,r,{strategy:`fixed`,placement:n,middleware:[AG(6),MG(),jG({padding:8})]}).then(({x:e,y:t})=>{r.style.left=`${e}px`,r.style.top=`${t}px`})})}function JG(){KG(),zG&&(BG?.(),BG=null,zG.getAttribute(`aria-describedby`)===LG&&zG.removeAttribute(`aria-describedby`),zG=null,RG&&(RG.hidden=!0),HG=performance.now())}function YG(e){if(!(e instanceof Element))return null;let t=e.closest(`[title], [data-tip]`);if(!t||t instanceof HTMLIFrameElement)return null;let n=t.getAttribute(`title`);if(n!==null){if(t.removeAttribute(`title`),n===``)return null;t.dataset.tip=n,!t.hasAttribute(`aria-label`)&&!t.textContent?.trim()&&t.setAttribute(`aria-label`,n)}return t.dataset.tip?t:null}function XG(e){if(e===zG)return;KG();let t=zG!==null||performance.now()-HG<IG,n=()=>e.isConnected&&e.dataset.tip&&qG(e,e.dataset.tip);t?n():VG=window.setTimeout(n,FG)}var ZG=!1;function QG(){ZG||(ZG=!0,document.addEventListener(`pointerover`,e=>{if(e.pointerType===`touch`)return;let t=YG(e.target);t?XG(t):zG&&e.target instanceof Node&&zG.contains(e.target)||JG()}),document.addEventListener(`pointerout`,e=>{let t=YG(e.target);t&&!(e.relatedTarget instanceof Node&&t.contains(e.relatedTarget))&&JG()}),document.addEventListener(`keydown`,e=>{UG=!0,e.key===`Escape`&&JG()},!0),document.addEventListener(`pointerdown`,()=>{UG=!1,JG()},!0),document.addEventListener(`focusin`,e=>{let t=UG?YG(e.target):null;t&&XG(t)}),document.addEventListener(`focusout`,e=>{e.target===zG&&JG()}),window.addEventListener(`blur`,JG))}var $G=450,eK=e=>{let t=e.querySelector(`.row-title`);return!!t&&t.scrollWidth>t.clientWidth};function tK(e,t){let n=(0,g.useRef)(null),r=(0,g.useRef)(null),i=(0,g.useRef)(e);i.current=e;let a=()=>{n.current!==null&&window.clearTimeout(n.current),n.current=null},o=e=>{a(),n.current=window.setTimeout(()=>qG(e,i.current,`right`),$G)},s=()=>{a(),JG()};return(0,g.useEffect)(()=>{let e=r.current,n=e?.closest(`.rail`);if(!t||!e||!n||!WG()||!n.contains(document.activeElement)||!eK(e))return;let i=e=>{e.relatedTarget instanceof Node&&n.contains(e.relatedTarget)||s()};return o(e),n.addEventListener(`focusout`,i),()=>{n.removeEventListener(`focusout`,i),s()}},[t]),(0,g.useEffect)(()=>()=>{n.current!==null&&window.clearTimeout(n.current)},[]),{ref:e=>{r.current=e},onPointerEnter:e=>{e.pointerType===`touch`||!eK(e.currentTarget)||o(e.currentTarget)},onPointerLeave:s,hide:s}}function nK({at:e}){let t=new Date(e);if(Number.isNaN(t.getTime()))return null;let n=WO(t);return(0,V.jsxs)(`span`,{className:`text-subtle`,title:z(`rail.startsAt`,{time:t.toLocaleString()}),children:[`◷ `,n]})}var rK=150,iK=128,aK=0,oK=2,sK=[{reach:.96,grow:1.5,pulse:.9,done:104},{reach:.72,grow:1.1,pulse:1.2,done:84},{reach:1,grow:1.7,pulse:.7,done:116},{reach:.84,grow:1.3,pulse:1,done:96},{reach:.62,grow:1.2,pulse:1.3,done:80}],cK=`/-\\|`,lK=6,uK=(e,t,n,r)=>{let i=e[n];i&&t>=0&&t<i.length&&(i[t]=r)};function dK(e,t){let n=Math.min(64,Math.max(24,Math.floor(t))),r=(Math.floor(e)%rK+rK)%rK,i=Array.from({length:11},()=>Array(n).fill(` `)),a=Array.from({length:11},()=>Array(n).fill(` `));uK(a,aK,0,`o`);let o=oK+2*(sK.length-1),s=Math.min(o,Math.floor(r/2));for(let e=1;e<=s;e++)uK(i,aK,e,`|`);if(sK.forEach((e,t)=>{let o=oK+2*t,s=2*o;if(r<s)return;uK(i,aK,o,`+`);let c=n-1-1,l=1+Math.max(1,Math.floor(c*e.reach)),u=Math.min(l,1+Math.floor((r-s)*e.grow)),d=r>=e.done&&u===l;for(let t=1;t<u;t++)!d&&((t-Math.floor(r*e.pulse))%lK+lK)%lK===0?uK(a,t,o,`=`):uK(i,t,o,`-`);d?uK(a,u,o,`o`):u<l?uK(a,u,o,`>`):uK(a,u,o,cK[(Math.floor(r/2)+t)%4]??`-`)}),r>=iK){let e=Math.ceil((r-iK+1)/22*(n+1));for(let t of[i,a])for(let r of t)r.fill(` `,0,Math.min(n,e))}return{base:i.map(e=>e.join(``)).join(`
|
|
132
|
+
`),accent:a.map(e=>e.join(``)).join(`
|
|
133
|
+
`)}}var fK=`min-h-0 w-full overflow-y-auto`,pK=`mx-auto mt-[min(16vh,8rem)] flex w-full max-w-130 flex-col gap-4 px-5 pb-7`,mK=`relative grid w-full select-none overflow-hidden font-mono text-(length:--fs-body) text-subtle [contain:layout_paint]`,hK=`col-start-1 row-start-1 m-0 whitespace-pre font-[inherit] leading-[inherit]`,gK=`invisible absolute top-0 left-0 whitespace-pre`,_K=1.3,vK=`0000000000`,yK=1e3/12;function bK(){let e=(0,g.useRef)(null),t=(0,g.useRef)(null),n=(0,g.useRef)(null),r=(0,g.useRef)(null);return(0,g.useEffect)(()=>{let i=e.current,a=t.current,o=n.current,s=r.current;if(!i||!a||!o||!s)return;let c=window.matchMedia(`(prefers-reduced-motion: reduce)`),l=24,u=90,d=0,f=0,p=0,m=-1,h=!0,g=()=>{let e=dK(u,l);o.textContent=e.base,s.textContent=e.accent},_=()=>{let e=a.getBoundingClientRect().width/10;e>0&&(l=Math.min(64,Math.max(24,Math.floor(i.clientWidth/e)))),g()},v=e=>{d=requestAnimationFrame(v);let t=p+Math.floor((e-f)/yK);t!==m&&(m=t,u=t,g())},y=()=>{cancelAnimationFrame(d),d=0},b=()=>{y(),c.matches?(u=90,g()):h&&document.visibilityState===`visible`&&(f=performance.now(),p=u,m=-1,d=requestAnimationFrame(v))},x=new ResizeObserver(_);x.observe(i),_(),b();let S=new IntersectionObserver(e=>{h=e[e.length-1]?.isIntersecting??!0,b()});return S.observe(i),c.addEventListener(`change`,b),document.addEventListener(`visibilitychange`,b),()=>{y(),x.disconnect(),S.disconnect(),c.removeEventListener(`change`,b),document.removeEventListener(`visibilitychange`,b)}},[]),(0,V.jsxs)(`div`,{ref:e,"aria-hidden":`true`,"data-field":`first-run-art`,className:mK,style:{height:`${11*_K}em`,lineHeight:_K},children:[(0,V.jsx)(`span`,{ref:t,className:gK,children:vK}),(0,V.jsx)(`pre`,{ref:n,className:hK}),(0,V.jsx)(`pre`,{ref:r,className:`${hK} text-accent`})]})}function xK(e){let t=K(`doctor`,`fix.humanOnlyWhy`),n=[];if(e.git||n.push({id:`git`,label:K(`doctor`,`fix.git`),action:K(`doctor`,`fix.gitAction`),why:t}),e.engines.length===0){let r=e.signedOut.length>0;n.push({id:`engine`,label:K(`doctor`,r?`fix.noEngineLogin`:`fix.noEngine`),action:K(`doctor`,r?`fix.noEngineLoginAction`:`fix.noEngineAction`,{list:e.signedOut.map(e=>e.id).join(`, `)}),why:t})}return n}function SK({model:e}){B(),v(oi);let[t,n]=(0,g.useState)(()=>q(e,`welcome.env`)??null);(0,g.useEffect)(()=>{let t=!0;return sl(e,`welcome.env`).then(e=>t&&n(e)).catch(()=>{}),()=>{t=!1}},[e]);let r=t===null?null:t.engines.length>0?{key:`enginesFound`,warn:!1,list:t.engines.map(e=>e.name).join(`, `)}:t.signedOut.length>0?{key:`enginesSignedOut`,warn:!0,list:t.signedOut.map(e=>e.name).join(`, `)}:{key:`enginesMissing`,warn:!0,list:``},i=t!==null&&(t.engines.length===0||!t.git)?xK(t):[];return(0,V.jsx)(`div`,{className:fK,"data-field":`welcome`,children:(0,V.jsxs)(`div`,{className:pK,children:[(0,V.jsx)(bK,{}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,V.jsx)(`h1`,{className:`m-0 font-sans text-title font-semibold text-ink`,children:z(`firstRun.title`)}),(0,V.jsx)(`p`,{className:`m-0 font-sans text-body text-muted`,children:z(`firstRun.body`)})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(`button`,{type:`button`,className:Le(),"data-field":`start-first-task`,onClick:()=>sA(t?.start?.repo),children:z(`firstRun.start`)}),(0,V.jsx)(`span`,{className:`keys-only mono text-meta text-subtle`,children:hi(`task.new.global`)})]}),t!==null&&r!==null&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5 font-sans text-meta`,children:[(0,V.jsx)(`p`,{className:`m-0 ${r.warn?`text-warning`:`text-subtle`}`,children:K(`workspace`,`welcome.${r.key}`,{list:r.list})}),!t.git&&(0,V.jsx)(`p`,{className:`m-0 text-warning`,children:K(`workspace`,`welcome.gitMissing`)}),i.map(e=>(0,V.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,V.jsx)(`p`,{className:`m-0 text-warning`,children:e.label}),(0,V.jsx)(`p`,{className:`mono m-0 text-accent`,children:e.action}),(0,V.jsx)(`p`,{className:`m-0 text-muted`,children:e.why})]},e.id)),i.length>0&&(0,V.jsx)(`p`,{className:`m-0 text-muted`,children:K(`common`,`failureHint`,{command:`rove doctor`})})]})]})})}function CK(e,t){e.preventDefault(),fn.set({x:e.clientX,y:e.clientY,items:t,target:e.currentTarget,fromKeyboard:e.button!==2})}function wK({model:e,narrow:t}){let n=B(),r=v(e.tasks),i=v(e.remote),a=VD(e),o=v(e.tabs),s=v(e.tabsSettled),c=v(e.selection),l=r?.tasks??[],u=r?.attention.filter(e=>e.unread).length??0,d=c.taskId,f=new Map([...l,...i].map(e=>[e.id,e])),p=kU(),m=v(uD),h=v(rD)===`state`,_=v(dD),y=e=>(h?_A:UT)({tasks:l,remote:i,machines:a,sort:p.sort,query:e,fold:{...p.hand,selectedId:d??void 0}}),b=y(p.search.active?p.search.query:``),{groups:x}=b,S=p.search.active?b.rows:PH(GT(GU(vA(KH(b.rows,o,c.taskId,s,_)),o),p.collapsed),r?.archived??[],p.archivedOpen,{...p.hand,selectedId:d??void 0}),C=e=>e.filter(e=>e.kind!==`project`&&e.kind!==`state`&&e.kind!==`round`),w=(n===`zh`?Vr:Br).machine,T=new Set(a.filter(e=>e.state!==`online`).map(e=>e.alias)),E=x.find(e=>e.tasks.some(e=>e.kind===`main`))?.repo,D=e=>({mainTaskId:x.find(t=>t.repo===e)?.tasks.find(e=>e.kind===`main`)?.id??null,label:fT(e),first:e===E}),O=WH(e,l,!p.search.active&&!h,p.sort==="default",D),k=O.places(S),A=()=>U.set((0,V.jsx)(JF,{model:e})),j=NU(e,S,p,{selectedId:d,onNewTask:sA,onSettings:A}),ee=_!==null&&S.some(e=>e.id===_),M=j.setCursor;(0,g.useEffect)(()=>{ee&&_!==null&&M(_)},[ee,_,M]);let N=C(y(``).rows).length,P=(0,g.useRef)(null),F=v(zU)&&!t,I=v(BU)&&F,te=t?l.find(e=>e.id===c.taskId&&!e.deleting)??null:null;return(0,V.jsxs)(`nav`,{className:`${wD} ${F?`is-folded`:``}`,ref:P,inert:F&&!I,"aria-hidden":F&&!I,onMouseEnter:F?()=>HU(!0):void 0,onMouseLeave:F?()=>HU(!1):void 0,tabIndex:0,onKeyDown:e=>{BI(`sidebar`),j.onKeyDown(e)},children:[(0,V.jsxs)(`header`,{className:TD,children:[(0,V.jsxs)(`span`,{className:`${Kt} mr-auto`,children:[(0,V.jsx)(`span`,{className:qt,children:`[`}),` rove `,(0,V.jsx)(`span`,{className:qt,children:`]`})]}),(0,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(`button`,{type:`button`,className:`m-0 text-meta font-medium normal-nums inbox-chip relative ${lr} ${Je} ${u>0?`text-accent`:`text-muted`}`,onClick:()=>U.set((0,V.jsx)(eD,{model:e})),children:z(`rail.inbox`,{count:u})}),(0,V.jsx)(NI,{model:e,bindingId:`inbox.show`,head:!0})]}),(0,V.jsx)(HN,{})]}),m&&(0,V.jsxs)(`div`,{className:`flex gap-1 px-3.5 pb-2 text-meta mono`,children:[(0,V.jsx)(`span`,{className:`text-accent`,children:K(`tasks`,`moveChip`).trim()}),(0,V.jsx)(`span`,{className:`keys-only ml-1.5 text-muted`,children:(0,V.jsx)(YE,{text:z(`taskops.moveHint`)})})]}),p.search.active&&(0,V.jsx)(qU,{query:p.search.query,count:`${C(S).length}/${N}`,onChange:e=>p.setSearch(t=>({...t,query:e}))}),(0,V.jsx)(TH,{model:e}),(0,V.jsxs)(`div`,{"data-rail-body":!0,className:OD(O.dragging!==null),...O.body,children:[r&&l.length===0&&i.length===0&&t&&(0,V.jsx)(SK,{model:e}),r&&l.length===0&&i.length===0&&!t&&(0,V.jsx)(`p`,{className:`m-0 px-2 py-3 font-mono text-meta text-subtle`,children:z(`rail.empty`)}),te&&(0,V.jsx)(gq,{title:te.title}),S.map((t,n)=>t.kind===`round`?(0,V.jsx)(KU,{row:t,guides:t.depth>1?HH(S,n):void 0,repo:h&&t.depth===1?hA(t.tasks[0]):void 0,cursor:t.id===j.cursor,place:k(t),onClick:()=>j.setCursor(t.id)},t.id):t.kind===`pane`?(0,V.jsx)(sU,{model:e,row:t,guides:HH(S,n),cursor:t.id===j.cursor,place:k(t),onClick:()=>{j.setCursor(t.id),oU(e,t),Da()},onMenu:n=>{j.setCursor(t.id),CK(n,nU(e,t.task.id,t.tab,t.leaf))}},t.id):(0,V.jsx)(TK,{row:t,guides:t.kind===`task`&&t.depth>1?HH(S,n):void 0,cloud:RD(t,a,w),repo:h&&t.kind===`task`&&t.depth===1?hA(t.task):void 0,tabs:t.kind===`task`?o[t.task.id]:void 0,selected:t.id===d,cursor:t.id===j.cursor,stale:t.machine!==void 0&&T.has(t.machine),collapsed:(t.kind===`project`||t.kind===`state`)&&p.collapsed.has(t.id),drag:O.props(t),dragging:O.dragging===t.id,place:k(t),onNewTask:t.kind===`project`?t.noProject?cA:()=>sA(t.repo,t.machine):void 0,moving:m&&t.machine===void 0&&(t.kind===`project`?!t.noProject&&D(t.repo).mainTaskId===j.cursor:t.id===j.cursor&&(t.kind!==`task`||t.task.kind!==`main`)),prTasks:t.kind===`task`?[t.task,...(t.fold?.descendantIds??[]).flatMap(e=>f.get(e)??[])]:void 0,rollup:t.kind===`task`&&t.fold?.collapsed?kL([t.task,...t.fold.descendantIds.flatMap(e=>f.get(e)??[])]):void 0,onToggleFold:()=>{t.kind===`task`&&p.toggleTaskFold(t.id,t.fold?.collapsed===!0),t.kind===`archived`&&p.toggleArchived()},onClick:()=>{j.setCursor(t.id),t.kind===`archived`&&p.toggleArchived(),(t.kind===`project`||t.kind===`state`)&&p.toggleProject(t.id),t.kind===`task`&&MU(e,t.task.id)},onMenu:n=>{if(t.kind!==`project`||t.machine===void 0){if(t.kind===`project`&&t.noProject){CK(n,vU(e));return}if(t.kind===`project`){let r=D(t.repo);r.mainTaskId&&S.some(e=>e.id===r.mainTaskId)&&j.setCursor(r.mainTaskId),CK(n,_U(e,t.repo,r));return}t.kind===`task`&&(j.setCursor(t.id),CK(n,un(OK(DK(xU(e,t.task,null),t.fold,()=>p.toggleTaskFold(t.id,t.fold?.collapsed===!0)),aU(e,t.task.id)),z(`menu.more`))))}}},t.id))]}),(0,V.jsx)(GH,{model:e,narrow:t,onSettings:A}),(0,V.jsx)(_q,{pane:`sidebar`}),!t&&!F&&(0,V.jsx)(dq,{rail:P})]})}function TK(e){let{row:t}=e,n=tK(t.kind===`task`?t.task.label:``,e.cursor&&t.kind===`task`),r=e.cursor?kD:``;if(t.kind===`project`||t.kind===`state`)return(0,V.jsxs)(`h2`,{className:AD({moving:e.moving,dragging:e.dragging}),onContextMenu:e.onMenu,...e.place,...e.drag,children:[(0,V.jsxs)(`button`,{type:`button`,className:MD,title:t.kind===`project`&&!t.noProject?t.repo:void 0,"aria-expanded":!e.collapsed,onClick:e.onClick,children:[(0,V.jsx)(`span`,{className:`truncate`,children:t.label}),t.kind===`state`&&(0,V.jsx)(`span`,{className:`font-normal text-subtle`,children:t.count}),(0,V.jsx)(Ka,{right:e.collapsed,className:ND(!!e.collapsed)})]}),e.onNewTask&&t.kind===`project`&&(0,V.jsx)(`button`,{type:`button`,className:PD,title:z(`rail.newTask`),onClick:e.onNewTask,children:`+`})]});if(t.kind===`archived`)return(0,V.jsx)(`button`,{type:`button`,className:`${dr({moving:e.moving||e.dragging})} ${r}`,"aria-expanded":t.expanded,onClick:e.onClick,...e.place,children:(0,V.jsx)(`span`,{className:`${pr} ${e.stale?`text-subtle`:`text-muted`}`,children:K(`tasks`,`archivedRow`,{count:t.count})})});let i=t.task,a=i.rowStatus?.kind===`running`,o=YF(i);return(0,V.jsxs)(`button`,{type:`button`,ref:n.ref,className:`${dr({selected:e.selected,moving:e.moving||e.dragging})} ${r}`,onClick:e.onClick,onContextMenu:e.onMenu,onPointerEnter:n.onPointerEnter,onPointerLeave:n.onPointerLeave,...e.place,...e.drag,children:[e.guides&&(0,V.jsx)(`span`,{className:`-my-0.75 -mr-0.5 ml-0 flex flex-none self-stretch`,"aria-hidden":`true`,children:e.guides.map((e,t)=>(0,V.jsx)(`span`,{className:yD(e)},t))}),(0,V.jsx)(`span`,{className:`${pr} ${e.stale?`text-subtle`:``} ${a?mr:``}`,children:t.attempt??i.label}),(0,V.jsxs)(`span`,{className:`${_r} ml-auto items-center`,children:[e.repo&&(0,V.jsx)(`span`,{className:`max-w-24 truncate text-subtle`,children:e.repo}),t.level!==void 0&&(0,V.jsx)(`span`,{className:`text-subtle`,children:t.level}),(i.extraRepoCount??0)>0&&(0,V.jsxs)(`span`,{className:`text-subtle`,title:z(`rail.extraRepos`,{count:i.extraRepoCount??0}),children:[`+`,i.extraRepoCount]}),o&&(0,V.jsxs)(`span`,{className:`text-subtle tabular-nums`,title:z(`rail.todos`,o),children:[o.done,`/`,o.total]}),t.fold?.collapsed&&(0,V.jsx)(EK,{count:t.fold.count,onUnfold:e.onToggleFold}),i.kept&&(0,V.jsx)(`span`,{className:`text-accent`,title:z(`compare.kept`),children:`✓`}),i.pinned&&(0,V.jsx)(`span`,{className:`text-subtle`,children:`▴`}),i.startsAt&&(0,V.jsx)(nK,{at:i.startsAt}),(0,V.jsx)(MH,{tasks:e.prTasks??[i],onOpen:n.hide}),(0,V.jsx)(dR,{status:t.fold?.collapsed?e.rollup:i.rowStatus}),e.cloud&&(0,V.jsx)(zD,{label:e.cloud})]})]})}function EK(e){let t=K(`tasks`,`menu.expandChildren`);return(0,V.jsxs)(`span`,{role:`button`,tabIndex:-1,"aria-label":t,"aria-expanded":!1,className:`chip text-muted ${bD}`,title:t,onClick:t=>{t.stopPropagation(),e.onUnfold()},children:[e.count,(0,V.jsx)(Ka,{right:!0})]})}function DK(e,t,n){if(!t)return e;let r={label:K(`tasks`,t.collapsed?`menu.expandChildren`:`menu.collapseChildren`),section:`open`,rare:!0,run:n},i=e.map(e=>e.section).lastIndexOf(`open`);return[...e.slice(0,i+1),r,...e.slice(i+1)]}function OK(e,t){let n=e.map(e=>e.section).lastIndexOf(`open`);return[...e.slice(0,n+1),...t.map(e=>({...e,rare:!0})),...e.slice(n+1)]}var kK=`flex-none fill-none stroke-current [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:1.25]`,AK=(e={})=>`relative grid cursor-pointer place-items-center rounded-sm border-none p-0 disabled:cursor-default disabled:opacity-35 [&_svg]:fill-none [&_svg]:stroke-current [&_svg]:[stroke-linecap:round] [&_svg]:[stroke-linejoin:round] [&_svg]:[stroke-width:1.25] touch:after:absolute touch:after:-inset-x-px touch:after:-top-2 touch:after:-bottom-1.25 touch:after:content-[''] touch:first:after:-left-2 ${e.tool?`size-5.5 flex-none`:`size-6.5`} ${e.tool||e.small?`[&_svg]:size-3.5`:`[&_svg]:size-4`} ${e.on?`bg-accent-soft text-accent`:`bg-transparent text-subtle enabled:hover:bg-hover enabled:hover:text-ink`}`,jK=`absolute top-2 left-[calc(--spacing(2)+var(--shell-inset-left,0px))] z-7 flex items-center gap-0.5`,MK=`[&.is-resizing_iframe]:pointer-events-none`,NK=e=>`side-panel ${qe} relative row-1 flex min-h-0 min-w-0 flex-col ${MK} ${e?`flex-1 p-0`:`pt-2 pr-1 pb-1 pl-0`}`,PK=`grid min-h-0 flex-1 grid-rows-[minmax(0,1fr)] [--divider:5px] ${MK}`,FK=`side-col row-1 flex min-h-0 min-w-0 flex-col`,IK=e=>`side-head flex min-h-6.5 min-w-0 items-center gap-0.5 pb-1.5 font-mono text-meta normal-nums ${e?`px-2 pt-0`:`narrow:px-2 narrow:pt-0`}`,LK=`min-w-0 flex-1 truncate px-2 text-ink`,RK=`flex min-w-0 flex-1 items-center gap-0.5`,zK=`scrollbar-none flex min-w-0 gap-0.5 overflow-x-auto`,BK=e=>`group/ptab relative flex min-w-12 max-w-40 items-center hover:text-ink ${e.active?`is-active text-ink`:`text-muted`} ${e.compact&&!e.active?`max-w-24 flex-none`:`flex-initial`}`,VK=e=>`flex min-w-0 cursor-pointer items-center gap-1.5 border-none bg-transparent py-1 pl-1.5 text-inherit [font:inherit] ${e?`pr-0.5`:`pr-1.5`}`,HK=`truncate`,UK=e=>`touch:relative size-4 flex-none cursor-pointer rounded-xs border-none p-0 font-mono text-title leading-none text-subtle hover:bg-hover hover:text-ink touch:after:absolute touch:after:-inset-1.5 touch:after:-left-1 touch:after:content-[''] ${e?`mr-0.5 bg-transparent`:`absolute top-1/2 right-0.5 -translate-y-1/2 bg-paper opacity-0 group-hover/ptab:opacity-100 focus-visible:opacity-100 [@media(hover:none)]:opacity-100`}`,WK=`ml-auto flex gap-0.5`,GK=`relative row-1 cursor-col-resize touch-none before:absolute before:inset-y-0 before:left-[calc(var(--divider)/2)] before:w-px before:bg-line before:content-[''] hover:before:bg-line-active after:absolute after:inset-x-[-3px] after:inset-y-0 after:content-['']`,KK=`side-view flex min-h-0 min-w-0 flex-1 flex-col [&[hidden]]:hidden`,qK=`m-auto flex max-w-[44ch] flex-col items-center gap-2.5 p-4 text-center font-mono text-meta leading-[1.5] text-subtle normal-nums`,JK=`flex min-h-0 flex-1 flex-col gap-1.5`,YK=`flex items-center gap-0.5 [&_svg]:flex-none`,XK=`mx-0.5 min-w-0 flex-1 rounded-sm border-none bg-inset px-2 py-1 text-ink [font-size:var(--fs-meta)] focus:bg-hover focus:outline-none aria-invalid:text-muted`,ZK=`min-w-0 flex-1 rounded-sm border-none bg-paper`;function QK({children:e}){return(0,V.jsx)(`svg`,{className:`size-3.5 ${kK}`,viewBox:`0 0 16 16`,"aria-hidden":`true`,children:e})}var $K={chat:(0,V.jsx)(`path`,{d:`M3 3.5h10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H8l-3 2.5v-2.5H3a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM5 6.5h6M5 8.5h4`}),files:(0,V.jsx)(`path`,{d:`M2 4.5a1 1 0 0 1 1-1h3l1.5 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1z`}),file:(0,V.jsx)(`path`,{d:`M4 2h5l3 3v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zM9 2v3h3M5.5 8h5M5.5 10.5h5`}),diff:(0,V.jsx)(`path`,{d:`M3.5 2.5h9a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zM8 5v4M6 7h4M6 11h4`}),browser:(0,V.jsx)(`path`,{d:`M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2zM2 8h12M8 2c2.2 2 2.2 10 0 12M8 2c-2.2 2-2.2 10 0 12`}),quota:(0,V.jsx)(`path`,{d:`M2 10a6 6 0 1 1 12 0M8 10l2.5-3.5M4 13h8`})};function eq(e){let t=Qa(e);return t?$a(t):z(`panel.browser`)}var tq=7.3,nq=22,rq=160,iq=2,aq=24;function oq(e,t){let n=0;for(let t of e){let e=0;for(let n of t)e+=(n.codePointAt(0)??0)>11903?2:1;n+=Math.min(rq,nq+e*tq)+iq}return n<=t}function sq(e,t,n){let r=[{label:z(`panel.close`),section:`close`,run:()=>Ss(e,n.id)}];return t.tabs.length>1&&r.push({label:z(`panel.closeOthers`),section:`close`,run:()=>xs(e,e=>fo(e,n.id))}),r}function cq({taskId:e,column:t}){B();let n=(0,g.useRef)(null),r=(0,g.useRef)(null),[i,a]=(0,g.useState)(0);(0,g.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(([e])=>a(e?.contentRect.width??0));return t.observe(e),()=>t.disconnect()},[]);let o=i>0&&!oq(t.tabs.map(eq),i-aq);return(0,g.useEffect)(()=>{r.current?.querySelector(`.is-active`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},[t.active,t.tabs.length,o]),(0,V.jsxs)(`div`,{className:RK,ref:n,children:[(0,V.jsx)(`div`,{className:zK,role:`tablist`,"aria-label":z(`panel.tabs`),ref:r,children:t.tabs.map(n=>{let r=n.id===t.active;return(0,V.jsxs)(`div`,{role:`presentation`,className:BK({active:r,compact:o}),onMouseDown:e=>{e.button===1&&e.preventDefault()},onAuxClick:t=>{t.button===1&&(t.preventDefault(),Ss(e,n.id))},onContextMenu:r=>CK(r,sq(e,t,n)),children:[(0,V.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":r,className:VK(r),title:Qa(n)||eq(n),onClick:()=>xs(e,e=>to(e,n.id)),children:(0,V.jsx)(`span`,{className:HK,children:eq(n)})}),(0,V.jsx)(`button`,{type:`button`,className:UK(r),"aria-label":z(`panel.close`),tabIndex:-1,onClick:()=>Ss(e,n.id),children:`×`})]},n.id)})}),(0,V.jsx)(`button`,{type:`button`,className:AK({tool:!0}),title:z(`panel.new`),"aria-label":z(`panel.new`),onClick:()=>xs(e,io),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M8 3.5v9M3.5 8h9`})})})]})}function lq({edge:e,className:t,...n}){return(0,V.jsx)(`div`,{"data-grip":``,className:Fe(`absolute inset-y-0 z-5 w-1.5 cursor-col-resize touch-none`,`after:absolute after:inset-y-0 after:w-0.5 after:bg-line-active after:opacity-0 after:transition-opacity after:duration-120`,`hover:after:opacity-100 hover:after:delay-250 active:after:bg-accent active:after:opacity-100 active:after:delay-0`,e===`right`?`right-0 after:right-0`:`left-0 after:left-0`,t),...n})}var uq=400;function dq({rail:e}){B();let t=(0,g.useRef)(null),n=(0,g.useRef)(0);return(0,V.jsx)(lq,{edge:`right`,title:z(`layout.railResize`),onPointerDown:n=>{t.current={x:n.clientX,width:e.current?.getBoundingClientRect().width??0,moved:!1},n.currentTarget.setPointerCapture(n.pointerId),Nn(!0)},onPointerMove:e=>{let n=t.current;!n||e.clientX===n.x||(n.moved=!0,RU.set(UU(n.width+e.clientX-n.x)))},onPointerUp:()=>{let e=t.current;if(t.current=null,!e)return;if(e.moved){n.current=0;return}let r=Date.now();r-n.current<uq?(n.current=0,RU.set(null)):n.current=r},onLostPointerCapture:()=>Nn(!1)})}function fq({side:e}){return(0,V.jsxs)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:[(0,V.jsx)(`rect`,{x:`1.5`,y:`2.5`,width:`13`,height:`11`,rx:`2.5`}),(0,V.jsx)(`path`,{d:e===`left`?`M6 2.5v11`:`M10 2.5v11`})]})}function pq({model:e}){B();let t=v(GI),n=v(zU),r=v(e.tasks),i=t=>qI(e,t),a=z(n?`layout.railUnfold`:`layout.railFold`),o=n&&(r?.tasks??[]).some(DL);return(0,V.jsxs)(`div`,{className:jK,onMouseEnter:()=>n&&BU.get()&&HU(!0),onMouseLeave:()=>n&&BU.get()&&HU(!1),children:[(0,V.jsxs)(`button`,{type:`button`,className:AK(),title:a,"aria-label":a,onClick:()=>zU.set(!n),children:[(0,V.jsx)(fq,{side:`left`}),o&&(0,V.jsx)(`span`,{className:`absolute top-0.75 right-0.75 size-1.5 rounded-full bg-accent`})]}),(0,V.jsx)(`button`,{type:`button`,className:AK(),title:z(`layout.navBack`),"aria-label":z(`layout.navBack`),disabled:WI(t,-1,i)<0,onClick:()=>XI(e,-1),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M10 3.5 5.5 8l4.5 4.5`})})}),(0,V.jsx)(`button`,{type:`button`,className:AK(),title:z(`layout.navForward`),"aria-label":z(`layout.navForward`),disabled:WI(t,1,i)<0,onClick:()=>XI(e,1),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M6 3.5 10.5 8 6 12.5`})})})]})}var mq=(0,V.jsx)(`path`,{d:`M3 3.5h10a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1zM4.5 6.5 6.5 8l-2 1.5M8 10h3`});function hq({taskId:e}){B();let t=v(Fo);return(0,V.jsxs)(`div`,{className:Ye,children:[(0,V.jsx)(`button`,{type:`button`,className:`mono ${Xe}`,onClick:Oa,children:(0,V.jsx)(`span`,{className:`text-accent`,children:`‹ ${tc(`narrowBack`)}`})}),e&&(0,V.jsx)(`span`,{className:`mono ml-auto flex gap-0.5`,role:`tablist`,children:[`terminal`,...Po].map(n=>{let r=z(n===`terminal`?`layout.narrowTerminal`:`panel.${n}`);return(0,V.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===n,"aria-label":r,title:r,className:Ze,onClick:()=>n===`terminal`?Fo.set(n):ms(e,n),children:(0,V.jsx)(QK,{children:n===`terminal`?mq:$K[n]})},n)})})]})}function gq({title:e}){return B(),(0,V.jsxs)(`button`,{type:`button`,className:dr({}),onClick:Da,children:[(0,V.jsx)(`span`,{className:`${hr} font-bold text-accent`,children:`↩`}),(0,V.jsx)(`span`,{className:fr,children:nc(`recentJump`,{title:e})})]})}function _q({pane:e}){B();let{prefs:t}=ty(),n=v(zI)[e];if(!t.keyHints)return null;let r=LI(e,n?`always`:`firstUse`);return r.length===0?null:(0,V.jsx)(`p`,{className:`mono text-muted ${Qe}`,children:(0,V.jsx)(YE,{text:r.map(e=>`${ai(e.cap)} ${Xs(`pane.${e.msg}`)}`).join(` · `)})})}function vq(e){return e===`localhost`||e.endsWith(`.localhost`)||e===`[::1]`||/^127(\.\d{1,3}){3}$/.test(e)}var yq=/^(localhost|127(\.\d{1,3}){3}|\[::1\])(:\d+)?([/?#]|$)/i,bq=/^[a-z][a-z0-9+.-]*:(?!\d+([/?#]|$))/i;function xq(e){let t=e.trim();if(!t||/\s/.test(t)||bq.test(t)&&!/^https?:\/\//i.test(t))return null;let n=/^https?:\/\//i.test(t)?t:yq.test(t)?`http://${t}`:`https://${t.replace(/^\/\//,``)}`;try{let e=new URL(n);return e.hostname?e.href:null}catch{return null}}function Sq(e,t,n=vq(t.hostname)){let r=new URL(e);return r.origin===t.origin?`self`:vq(r.hostname)?n?`yes`:`remote`:r.protocol===`https:`?`yes`:`unreachable`}function Cq(e,t,n){let r=new URL(e).host;return t===`self`?{key:`self`,host:r}:t===`remote`?{key:`remote`,host:r}:t===`unreachable`?{key:`noFrame`,host:r}:n&&!n.reachable?{key:`unreachable`,host:r}:n&&!n.frameable?{key:`refuses`,host:r}:null}var wq=6e4,Tq=new Map;function Eq(e){let t=Tq.get(e);return t&&Date.now()-t.at<wq?t:null}function Dq(e,t,n){let[,r]=(0,g.useState)(0);(0,g.useEffect)(()=>{if(!n||Eq(t))return;let i=!0;return e.request(`browser.probe`,{url:t,origin:window.location.origin}).then(e=>Tq.set(t,{probe:e,at:Date.now()}),()=>Tq.set(t,{probe:null,at:Date.now()})).then(()=>i&&r(e=>e+1)),()=>{i=!1}},[e,t,n]);let i=n?Eq(t):null;return{pending:n&&!i,probe:i?.probe??null}}function Oq({d:e}){return(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:e})})}var kq=`M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5l-5 5`;function Aq({model:e,tab:t,onNavigate:n,onStep:r}){B();let i=Qa(t),[a,o]=(0,g.useState)(i),[s,c]=(0,g.useState)(!1),[l,u]=(0,g.useState)(0),d=v(e.client.conn).hello?.peer?.local,f=i?Sq(i,window.location,d):null;(0,g.useEffect)(()=>{o(i),c(!1)},[i]);let p=e=>{let t=xq(e);c(t===null&&e.trim()!==``),t!==null&&(o(t),t===i?u(l+1):n(t))},m=i?new URL(i).hostname:``,h=f===`yes`&&i.startsWith(`https:`)&&!vq(m),{pending:_,probe:y}=Dq(e.client,i,h),b=i&&f?Cq(i,f,y):null,x=f===`yes`&&!b&&!_,S=b?z(`browser.${b.key}`,{host:b.host}):f===null?z(s?`browser.invalid`:`browser.empty`):null;return(0,V.jsxs)(`div`,{className:JK,children:[(0,V.jsxs)(`form`,{className:YK,onSubmit:e=>{e.preventDefault(),p(a)},children:[(0,V.jsx)(`button`,{type:`button`,className:AK({small:!0}),disabled:t.at<=0,title:z(`browser.back`),"aria-label":z(`browser.back`),onClick:()=>r(t.at-1),children:(0,V.jsx)(Oq,{d:`M10 3.5 5.5 8l4.5 4.5`})}),(0,V.jsx)(`button`,{type:`button`,className:AK({small:!0}),disabled:t.at>=t.urls.length-1,title:z(`browser.forward`),"aria-label":z(`browser.forward`),onClick:()=>r(t.at+1),children:(0,V.jsx)(Oq,{d:`M6 3.5 10.5 8 6 12.5`})}),(0,V.jsx)(`button`,{type:`button`,className:AK({small:!0}),disabled:!x,title:z(`browser.reload`),"aria-label":z(`browser.reload`),onClick:()=>u(l+1),children:(0,V.jsx)(Oq,{d:`M12.5 8a4.5 4.5 0 1 1-1.4-3.3M12.5 2.5v2.7H9.8`})}),(0,V.jsx)(`input`,{className:`browser-url mono ${XK}`,value:a,placeholder:z(`browser.placeholder`),"aria-label":z(`browser.address`),"aria-invalid":s,spellCheck:!1,autoCapitalize:`off`,autoCorrect:`off`,inputMode:`url`,onChange:e=>o(e.target.value)}),i?(0,V.jsx)(`a`,{className:AK({small:!0}),href:i,target:`_blank`,rel:`noopener noreferrer`,title:z(`browser.openTab`),"aria-label":z(`browser.openTab`),children:(0,V.jsx)(Oq,{d:kq})}):(0,V.jsx)(`button`,{type:`button`,className:AK({small:!0}),disabled:!0,"aria-label":z(`browser.openTab`),children:(0,V.jsx)(Oq,{d:kq})})]}),x?(0,V.jsx)(`iframe`,{className:ZK,src:i,title:i,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups`,referrerPolicy:`no-referrer`},`${i}#${l}`):S?(0,V.jsx)(`p`,{className:qK,children:S}):null]})}var jq=`scrollbar-none flex min-h-0 flex-1 flex-col overflow-y-auto p-2.5`,Mq=`m-0 p-3 font-mono text-meta text-muted`,Nq=`flex flex-col gap-1.5 rounded-sm border-hairline border-line px-3 py-2.5`,Pq=`m-0 font-sans text-meta font-medium text-ink`,Fq=`flex items-baseline justify-between gap-3 font-mono text-meta normal-nums`,Iq=`flex h-1 w-full overflow-hidden rounded-full bg-inset`,Lq=`h-full flex-none`,Rq=`m-0 mt-1 flex list-none flex-col gap-1 p-0`,zq=`flex min-w-0 items-center gap-2 font-mono text-meta normal-nums`,Bq=`size-2 flex-none rounded-xs bg-line`,Vq=`min-w-0 flex-1 truncate text-muted`,Hq=`flex-none text-right text-ink`,Uq=`w-[6ch] flex-none text-right text-muted`,Wq=1e4,Gq=[`var(--info)`,`var(--accent)`,`var(--success)`,`var(--warning)`];function Kq({model:e,task:t,active:n}){B();let r=v(e.client.conn),i=v(e.selection),a=v(e.tabs)[t.id]??[],o=i.taskId===t.id?a.find(e=>e.id===i.tabId):void 0,s=(o?.kind===`engine`?o:a.find(e=>e.kind===`engine`))?.id??null,[c,l]=(0,g.useState)({kind:`loading`});if((0,g.useEffect)(()=>{if(!n||r.state!==`open`)return;if(!s){l({kind:`ready`,meter:null});return}let i=!0,a=()=>e.client.request(`context.usage`,{taskId:t.id,tabId:s}).then(e=>i&&l({kind:`ready`,meter:e.meter})).catch(e=>i&&l(t=>t.kind===`ready`?t:{kind:`failed`,error:pL(e)}));a();let o=window.setInterval(a,Wq);return()=>{i=!1,window.clearInterval(o)}},[e,n,r.state,t.id,s]),c.kind===`loading`)return(0,V.jsx)(`p`,{className:Mq,children:z(`context.loading`)});if(c.kind===`failed`)return(0,V.jsx)(`p`,{className:Mq,children:z(`context.failed`,{error:c.error})});if(!c.meter)return(0,V.jsx)(`p`,{className:Mq,children:z(`context.none`)});let u=c.meter,d=u.rows.filter(e=>e.share!==void 0),f=e=>e.share===void 0?void 0:Gq[d.indexOf(e)%Gq.length];return(0,V.jsx)(`div`,{className:jq,children:(0,V.jsxs)(`section`,{className:Nq,children:[(0,V.jsx)(`h3`,{className:Pq,children:z(`context.title`)}),(0,V.jsxs)(`div`,{className:Fq,children:[(0,V.jsx)(`span`,{className:`text-ink`,children:u.percent===null?z(`context.usedTokens`,{tokens:qq(u.used)}):z(`context.used`,{percent:Jq(u.percent)})}),u.window!==null&&(0,V.jsxs)(`span`,{className:`text-muted`,children:[qq(u.used),` / `,qq(u.window)]})]}),(0,V.jsx)(`div`,{className:Iq,role:`meter`,"aria-valuenow":Math.round(u.percent??100),"aria-valuemin":0,"aria-valuemax":100,children:d.map(e=>(0,V.jsx)(`span`,{className:Lq,style:{width:`${e.share}%`,background:f(e)}},e.key))}),(0,V.jsx)(`ul`,{className:Rq,children:u.rows.map(e=>{let t=z(`context.part.${e.key}`),n=f(e);return(0,V.jsxs)(`li`,{className:zq,children:[(0,V.jsx)(`span`,{className:Bq,style:n?{background:n}:void 0}),(0,V.jsx)(`span`,{className:Vq,title:t,children:t}),(0,V.jsx)(`span`,{className:Hq,children:qq(e.tokens)}),(0,V.jsx)(`span`,{className:Uq,children:Jq(e.tokens/(u.window??u.used)*100)})]},e.key)})}),u.approximate&&(0,V.jsx)(`p`,{className:`m-0 font-mono text-meta text-subtle`,children:z(`context.approximate`)})]})})}function qq(e){return e>=1e6?`${+(e/1e6).toFixed(1)}M`:e>=1e3?`${+(e/1e3).toFixed(1)}k`:String(e)}function Jq(e){return e>0&&e<.1?`<0.1%`:`${e<10?+e.toFixed(1):Math.round(e)}%`}var Yq=3;function Xq({model:e,task:t}){B();let n=t.autoFixCi,r=n=>void e.client.request(`task.autoFixCi`,{taskId:t.id,enabled:n}).catch(e=>W(e instanceof Error?e.message:String(e),`error`));return(0,V.jsx)(`div`,{className:`flex items-center gap-3 px-2 pt-1 font-mono text-meta`,children:n?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:n.stopped?XE.attention:`text-muted`,title:z(`files.autoFix.hint`),children:z(n.stopped?`files.autoFix.stopped`:`files.autoFix.count`,{n:n.attempts,max:Yq})}),(0,V.jsx)(H,{hit:`tight`,onClick:()=>r(!1),children:z(`files.autoFix.off`)})]}):(0,V.jsx)(H,{hit:`tight`,title:z(`files.autoFix.hint`),onClick:()=>r(!0),children:z(`files.autoFix.on`)})})}function Zq(e){let t=e.pr;return!!t&&t.number!==void 0&&!e.machine&&(t.lifecycle===`open`||t.lifecycle===`ready_to_merge`)}function Qq(e){let t={fail:0,pending:0,pass:0,skipped:0};for(let n of e)t[n.state]++;return t}function $q(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m${String(t%60).padStart(2,`0`)}s`:`${Math.floor(n/60)}h${String(n%60).padStart(2,`0`)}m`}function eJ(e){let t=[],n=e.mergeState.toUpperCase();e.draft&&t.push({key:`files.merge.draft`,tone:`warning`}),e.mergeable.toUpperCase()===`CONFLICTING`||n===`DIRTY`?t.push({key:`files.merge.conflicts`,tone:`attention`}):n===`BEHIND`?t.push({key:`files.merge.behind`,tone:`warning`}):n===`UNSTABLE`?t.push({key:`files.merge.unstable`,tone:`warning`}):n===`BLOCKED`?t.push({key:`files.merge.blocked`,tone:`warning`}):n===`CLEAN`&&!e.draft&&t.push({key:`files.merge.clean`,tone:`success`});let r=e.review.toUpperCase();return r===`APPROVED`?t.push({key:`files.merge.approved`,tone:`success`}):r===`CHANGES_REQUESTED`?t.push({key:`files.merge.changes`,tone:`attention`}):r===`REVIEW_REQUIRED`&&t.push({key:`files.merge.reviewRequired`,tone:`warning`}),t}var tJ=`flex flex-col gap-0.5 px-2 pb-2 font-mono text-meta`,nJ=`flex items-start gap-2`,rJ=`flex min-w-0 flex-1 flex-wrap items-center gap-x-2 text-left text-ink`,iJ={pass:{glyph:`✓`,tone:`success`},fail:{glyph:`✗`,tone:`attention`},pending:{glyph:`●`,tone:`warning`},skipped:{glyph:`–`,tone:`muted`}};function aJ({model:e,task:t}){B();let n=t.pr,r=t.id,[i,a]=(0,g.useState)(()=>q(e,`pr.checks`,{taskId:r})??null),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)({}),[u,d]=(0,g.useState)(0),f=`${n?.number}:${n?.checkState}:${n?.mergeable}:${n?.reviewDecision}`;(0,g.useEffect)(()=>{let t=!0,n={taskId:r};return e.client.request(`pr.checks`,u>0?{...n,fresh:!0}:n).then(r=>{t&&(ol(e,`pr.checks`,n,r),a(r))},e=>t&&a({outcome:`unavailable`,detail:e instanceof Error?e.message:String(e)})),()=>{t=!1}},[e,r,f,u]);let p=t=>{let n=`${t.runId}:${t.name}`;if(c[n]){l(({[n]:e,...t})=>t);return}l(e=>({...e,[n]:{state:`loading`}})),e.client.request(`pr.checkLog`,{taskId:r,runId:t.runId,job:t.name}).then(e=>e.outcome===`ok`?{state:`text`,text:e.tail}:e.outcome===`none`?{state:`note`,text:z(`files.checks.noLog`)}:{state:`note`,text:z(`files.checks.logUnavailable`,{detail:e.detail})}).catch(e=>({state:`note`,text:z(`files.checks.logUnavailable`,{detail:e instanceof Error?e.message:String(e)})})).then(e=>l(t=>n in t?{...t,[n]:e}:t))},m=(0,V.jsx)(H,{hit:`tight`,className:`flex-none whitespace-nowrap`,onClick:()=>d(e=>e+1),children:z(`files.checks.refresh`)});if(!i)return(0,V.jsx)(`div`,{className:tJ,children:(0,V.jsx)(`div`,{className:nJ,children:(0,V.jsxs)(`span`,{className:`flex-1 text-muted`,children:[z(`files.checks.title`),` `,z(`files.checks.loading`)]})})});if(i.outcome!==`ok`)return(0,V.jsx)(`div`,{className:tJ,children:(0,V.jsxs)(`div`,{className:nJ,children:[(0,V.jsx)(`span`,{className:`min-w-0 flex-1 text-muted wrap-anywhere`,children:i.outcome===`none`?z(`files.checks.none`):z(`files.checks.unavailable`,{detail:i.detail})}),m]})});let h=Qq(i.checks),_=o??(h.fail>0||h.pending>0),v=eJ(i);return(0,V.jsxs)(`div`,{className:tJ,children:[(0,V.jsxs)(`div`,{className:nJ,children:[(0,V.jsxs)(H,{variant:`row`,className:rJ,"aria-expanded":_,disabled:i.total===0,onClick:()=>s(!_),children:[i.total>0&&(0,V.jsx)(Ka,{right:!_}),(0,V.jsx)(`span`,{children:i.total===0?z(`files.checks.none`):z(`files.checks.summary`,{pass:h.pass+h.skipped,total:i.total})}),h.fail>0&&(0,V.jsx)(`span`,{className:XE.attention,children:z(`files.checks.failed`,{count:h.fail})}),h.pending>0&&(0,V.jsx)(`span`,{className:XE.warning,children:z(`files.checks.running`,{count:h.pending})}),v.map(e=>(0,V.jsx)(`span`,{className:XE[e.tone],children:z(e.key)},e.key))]}),m]}),_&&i.checks.map(e=>{let{glyph:t,tone:n}=iJ[e.state],r=`${e.runId}:${e.name}`,i=c[r];return(0,V.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,V.jsxs)(`div`,{className:`flex items-baseline gap-2 pl-4`,children:[(0,V.jsx)(`span`,{className:`w-[1ch] flex-none text-center ${XE[n]}`,children:t}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.name,children:e.name}),e.durationMs!==null&&(0,V.jsx)(`span`,{className:`flex-none text-subtle`,children:$q(e.durationMs)}),e.state===`fail`&&e.runId&&(0,V.jsx)(H,{hit:`tight`,className:`flex-none whitespace-nowrap`,onClick:()=>p(e),children:z(i?`files.checks.hideLog`:`files.checks.log`)})]}),i&&(0,V.jsx)(`pre`,{className:`m-0 ml-4 mb-1 max-h-40 overflow-y-auto rounded-sm border-hairline border-line bg-inset px-2 py-1.5 whitespace-pre-wrap wrap-anywhere text-muted`,children:i.state===`loading`?z(`files.checks.loading`):i.text})]},`${e.name}:${e.url}`)}),_&&i.total>i.checks.length&&(0,V.jsx)(`span`,{className:`pl-4 text-subtle`,children:z(`files.checks.more`,{count:i.total-i.checks.length})})]})}function oJ({model:e,task:t}){return Zq(t)?(0,V.jsxs)(`div`,{onKeyDown:e=>e.stopPropagation(),children:[(0,V.jsx)(aJ,{model:e,task:t}),(0,V.jsx)(Xq,{model:e,task:t})]}):null}var sJ=[`renamed`,`added`,`untracked`,`modified`,`deleted`,`conflict`],cJ={U:`conflict`,D:`deleted`,M:`modified`,T:`modified`,"?":`untracked`,A:`added`,R:`renamed`,C:`renamed`},lJ={conflict:`attention`,deleted:`attention`,modified:`warning`,untracked:`success`,added:`success`,renamed:`accent`},uJ={conflict:`!`,deleted:`D`,modified:`M`,untracked:`U`,added:`A`,renamed:`R`};function dJ(e){let t=new Map;for(let n of[`branch`,`working`])for(let r of e){let e=r.scope===n?cJ[r.status]:void 0;e&&t.set(r.path,e)}let n=new Map(t);for(let[e,r]of t)for(let t=e.indexOf(`/`);t>=0;t=e.indexOf(`/`,t+1)){let i=e.slice(0,t+1),a=n.get(i);(a===void 0||sJ.indexOf(r)>sJ.indexOf(a))&&n.set(i,r)}return n}function fJ(e,t){return e.some(e=>e.scope===`working`&&e.path===t&&e.status!==`?`)}function pJ(e,t){let n={children:new Map,file:!1};for(let t of e){let e=n;for(let n of t.split(`/`)){let t=e.children.get(n);t||(t={children:new Map,file:!1},e.children.set(n,t)),e=t}e.file=!0}let r=[],i=(e,n,a)=>{let o=[...e.children].sort(([e,t],[n,r])=>{let i=t.children.size>0&&!t.file;return i===(r.children.size>0&&!r.file)?e.localeCompare(n):i?-1:1});for(let[e,s]of o){let o=s.children.size>0&&!s.file,c=o?`${n}${e}/`:`${n}${e}`,l=o&&t.has(c);r.push({path:c,name:e,depth:a,dir:o,open:l}),l&&i(s,c,a+1)}};return i(n,``,0),r}var mJ={start:`\x1B[200~`,end:`\x1B[201~`};function hJ(e,t){return e.engineTarget(t).tabId??e.tabs.get()[t]?.find(e=>e.kind===`engine`)?.id}async function gJ(e,t,n){let r=hJ(e,t);if(!r)return W(z(`files.stripNoEngine`),`error`),!1;try{return e.selection.get().tabId!==r&&e.select(t,r),await e.client.request(`term.input`,{stream:Kw(t,r),data:`${mJ.start}${n}${mJ.end}`}),W(z(`files.stripFilled`)),!0}catch(e){return W(e instanceof Error?e.message:String(e),`error`),!1}}function _J(e){let t=e.kind===`task`&&!e.noWorktree&&!e.machine&&!e.archived,n=e.changes;return t&&!!n&&`added`in n&&n.added+n.deleted>0}function vJ(e){return[..._J(e)?[`commit`]:[],...yJ(e)]}function yJ(e){let t=e.pr;if(!t)return e.kind===`task`&&!e.noWorktree&&!e.machine&&!e.archived&&!e.sessionPrs?.length?[`createPR`]:[];if(t.lifecycle===`merged`)return e.archived||e.kind===`main`?[]:[`archive`];if(t.lifecycle!==`open`&&t.lifecycle!==`ready_to_merge`)return[];let n=[];return((t.mergeable??``).toUpperCase()===`CONFLICTING`||e.prChip===`conflict`)&&n.push(`conflicts`),t.checkState===`failing`&&n.push(`fixCI`),(t.reviewDecision??``).toUpperCase()===`CHANGES_REQUESTED`&&n.push(`comments`),n}async function bJ(e,t,n){try{let r=await e.client.request(`task.prompt`,{taskId:t.id,kind:n});r.outcome===`unavailable`?W(z(`files.stripUnavailable`,{detail:r.detail??``}),`error`):r.outcome===`none`||!r.prompt?W(z(`files.stripNothing`),`error`):await gJ(e,t.id,r.prompt)}catch(e){W(e instanceof Error?e.message:String(e),`error`)}}var xJ={commit:`files.stripCommit`,createPR:`files.stripCreate`,conflicts:`files.stripConflicts`,fixCI:`files.stripFixCi`,comments:`files.stripComments`,archive:`files.stripArchive`};function SJ({model:e,task:t}){let n=vJ(t);return n.length===0?null:(0,V.jsx)(`div`,{className:`flex flex-wrap justify-end gap-x-3.5 gap-y-1 px-2 pb-2 font-mono text-meta whitespace-nowrap`,children:n.map(n=>(0,V.jsx)(H,{onClick:()=>n===`archive`?void dI(e,t):void bJ(e,t,n),children:z(xJ[n])},n))})}var CJ=2e3;function wJ({model:e,task:t}){B();let n=t.id,r=!t.machine,[i,a]=(0,g.useState)(null),[o,s]=(0,g.useState)(!1),c=i?.running===!0;if((0,g.useEffect)(()=>{if(!r)return;let t=!0,i=()=>e.client.request(`run.status`,{taskId:n}).then(e=>t&&a(e),()=>{});i();let o=c?window.setInterval(()=>void i(),CJ):0;return()=>{t=!1,window.clearInterval(o)}},[e,n,r,c]),!r||!i?.script)return null;let l=async t=>{s(!0);try{a(await e.client.request(t,{taskId:n}))}catch(e){W(e instanceof Error?e.message:String(e),`error`)}finally{s(!1)}};return(0,V.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-x-3.5 gap-y-1 px-2 pb-2 font-mono text-meta whitespace-nowrap`,children:[i.url&&(0,V.jsx)(H,{onClick:()=>i.url&&vs(n,i.url),children:z(`files.run.open`,{port:i.port??``})}),(0,V.jsx)(H,{disabled:o,onClick:()=>void l(c?`run.stop`:`run.start`),children:z(c?`files.run.stop`:`files.run.run`)})]})}function TJ({model:e,task:t,narrow:n=!1}){B();let[r,i]=(0,g.useState)(()=>q(e,`files.list`,{taskId:t.id})?.files??null),[a,o]=(0,g.useState)(()=>dJ(q(e,`diff.files`,{taskId:t.id})?.files??[])),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(new Set),[d,f]=(0,g.useState)(0),[p,m]=(0,g.useState)(0),h=(0,g.useRef)(null),_=v(vn),y=JSON.stringify(t.changes??null);(0,g.useEffect)(()=>{let n=!0;return sl(e,`files.list`,{taskId:t.id}).then(e=>{n&&(i(e.files),c(null))},e=>n&&c(e instanceof Error?e.message:String(e))),()=>{n=!1}},[e,t.id,y,p]),(0,g.useEffect)(()=>{let n=!0;return sl(e,`diff.files`,{taskId:t.id}).then(e=>n&&o(dJ(e.files)),()=>{}),()=>{n=!1}},[e,t.id,y,p]);let b=r!==null,x=pJ(r??[],l).map(e=>({path:e.path,label:e.name,depth:e.depth,dir:e.dir,open:e.open,state:a.get(e.path)})),S=Math.min(d,Math.max(0,x.length-1)),C=x[S],w=(e,t)=>u(n=>{let r=new Set(n);return t??!r.has(e)?r.add(e):r.delete(e),r}),T=e=>_s(t.id,e),E=e=>gs({taskId:t.id,path:e,scope:`working`}),D=n=>{if(!_?.startsWith(`${t.id}::`)){W(z(`files.mentionNoEngine`),`error`);return}e.client.request(`term.input`,{stream:_,data:`@${n} `}).catch(e=>W(String(e),`error`))},O=n=>t.machine?W(z(`files.remoteNoExternal`,{host:t.machine.label}),`error`):void e.client.request(`file.openExternal`,{taskId:t.id,path:n}).then(()=>W(z(`taskops.openedExternal`))).catch(e=>W(e instanceof Error?e.message:String(e),`error`));return(0,V.jsxs)(`div`,{className:`group/pane flex min-h-0 min-w-0 flex-1 flex-col outline-none ${n?`px-1.5 pt-2.5 pb-2`:`pt-0.5 pr-1.5 pb-1.5 pl-0`}`,tabIndex:0,ref:h,onKeyDown:e=>{let t=e.key;if(t===`j`||t===`ArrowDown`)f(Math.min(x.length-1,S+1));else if(t===`k`||t===`ArrowUp`)f(Math.max(0,S-1));else if((t===`l`||t===`ArrowRight`)&&C?.dir)w(C.path,!0);else if((t===`h`||t===`ArrowLeft`)&&C?.dir)w(C.path,!1);else if(t===`r`)m(e=>e+1);else if(t===`D`&&e.shiftKey)E(`.`);else if(t===`d`&&C)E(C.path);else if(t===`Enter`&&C)C.dir?w(C.path):T(C.path);else if(t===`a`&&C)D(C.path);else if(t===`o`&&C&&!C.dir)O(C.path);else return;e.preventDefault()},children:[(0,V.jsx)(SJ,{model:e,task:t}),(0,V.jsx)(oJ,{model:e,task:t}),(0,V.jsx)(wJ,{model:e,task:t}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[s&&(0,V.jsx)(`p`,{className:`mono text-error`,children:s}),!s&&b&&x.length===0&&(0,V.jsx)(`p`,{className:`mx-2.5 my-3 font-mono text-meta text-subtle`,children:z(`files.emptyAll`)}),x.map((e,t)=>(0,V.jsxs)(`button`,{type:`button`,className:dr({selected:t===S,size:n?`file-narrow`:`file`}),style:{paddingLeft:8+e.depth*14},title:e.path,onClick:()=>{f(t),h.current?.focus(),e.dir?w(e.path):T(e.path)},children:[(0,V.jsx)(`span`,{className:gr,children:e.dir?(0,V.jsx)(Ka,{right:!e.open}):null}),(0,V.jsx)(`span`,{className:`${fr} ${e.state?XE[lJ[e.state]]:``}`,children:e.label}),e.state&&(0,V.jsx)(`span`,{className:`w-[1ch] flex-none text-center font-mono ${XE[lJ[e.state]]}`,title:z(`files.state.${e.state}`),children:e.dir?`•`:uJ[e.state]})]},e.path))]})]})}var EJ={md:`md`,markdown:`md`,html:`html`,htm:`html`,svg:`svg`,png:`image`,jpg:`image`,jpeg:`image`,gif:`image`,webp:`image`,pdf:`pdf`};function DJ(e){let t=e.slice(e.lastIndexOf(`/`)+1),n=t.lastIndexOf(`.`);return n<0?null:EJ[t.slice(n+1).toLowerCase()]??null}function OJ(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var kJ=e=>new TextDecoder().decode(OJ(e));function AJ(e,t){if(e===`svg`)return`image/svg+xml`;if(e===`pdf`)return`application/pdf`;let n=t.slice(t.lastIndexOf(`.`)+1).toLowerCase();return n===`jpg`||n===`jpeg`?`image/jpeg`:n===`gif`?`image/gif`:n===`webp`?`image/webp`:`image/png`}var jJ=`default-src 'none'; img-src data:; style-src 'unsafe-inline'`;function MJ(e){let t=`<meta http-equiv="Content-Security-Policy" content="${jJ}">`,n=/^\s*<!doctype[^>]*>/i.exec(e);return n?`${n[0]}${t}${e.slice(n[0].length)}`:`${t}${e}`}var NJ=/^\[([^\]\n]+)\]\((https?:\/\/[^\s)]+)\)/,PJ=/^https?:\/\/[^\s<>)\]]+/,FJ=/[\p{L}\p{N}]/u;function IJ(e){let t=[],n=``,r=()=>{n&&t.push({t:`text`,v:n}),n=``},i=0;for(;i<e.length;){let a=e.slice(i),o=e[i]??``;if(o==="`"){let n=e.indexOf("`",i+1);if(n>i+1){r(),t.push({t:`code`,v:e.slice(i+1,n)}),i=n+1;continue}}else if(a.startsWith(`**`)){let n=e.indexOf(`**`,i+2);if(n>i+2){r(),t.push({t:`bold`,c:IJ(e.slice(i+2,n))}),i=n+2;continue}}else if(o===`*`||o===`_`&&!FJ.test(e[i-1]??``)){let n=e.indexOf(o,i+1);if(n>i+1&&!/\s/.test(e[i+1]??` `)&&(o===`*`||!FJ.test(e[n+1]??``))){r(),t.push({t:`em`,c:IJ(e.slice(i+1,n))}),i=n+1;continue}}else if(o===`[`){let e=NJ.exec(a);if(e){r(),t.push({t:`link`,href:e[2],c:IJ(e[1])}),i+=e[0].length;continue}}else if(o===`h`&&!FJ.test(e[i-1]??``)){let e=PJ.exec(a);if(e){let n=e[0].replace(/[.,;:!?]+$/,``);r(),t.push({t:`link`,href:n,c:[{t:`text`,v:n}]}),i+=n.length;continue}}n+=o,i++}return r(),t}var LJ=/^\s*(```+|~~~+)\s*([\w+#.-]*)\s*$/,RJ=/^(#{1,6})\s+(.*?)\s*#*\s*$/,zJ=/^(\s*)([-*+])\s+(.*)$/,BJ=/^(\s*)\d+[.)]\s+(.*)$/,VJ=/^\s*([-*_])(\s*\1){2,}\s*$/,HJ=/^\s*\|.*\|\s*$/,UJ=/^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/,WJ=e=>e.trim().replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>e.trim());function GJ(e){let t=e.replace(/\r\n?/g,`
|
|
134
|
+
`).split(`
|
|
135
|
+
`),n=[],r=[],i=()=>{r.length>0&&n.push({t:`para`,c:IJ(r.join(`
|
|
136
|
+
`))}),r=[]};for(let e=0;e<t.length;e++){let a=t[e],o=LJ.exec(a);if(o){i();let r=o[1][0],a=[];for(e++;e<t.length&&!RegExp(`^\\s*${r}{3,}\\s*$`).test(t[e]);e++)a.push(t[e]);n.push({t:`code`,lang:o[2]??``,v:a.join(`
|
|
137
|
+
`)});continue}if(a.trim()===``){i();continue}let s=RJ.exec(a);if(s){i(),n.push({t:`heading`,level:s[1].length,c:IJ(s[2])});continue}if(VJ.test(a)){i(),n.push({t:`hr`});continue}if(HJ.test(a)){i();let r=[];for(;e<t.length&&HJ.test(t[e]);e++){let n=t[e];UJ.test(n)||r.push(WJ(n))}e--,n.push({t:`table`,rows:r.map(e=>e.map(e=>IJ(e)))});continue}if(a.startsWith(`>`)){i();let r=[];for(;e<t.length&&t[e].startsWith(`>`);e++)r.push(t[e].replace(/^>\s?/,``));e--,n.push({t:`quote`,c:IJ(r.join(`
|
|
138
|
+
`))});continue}let c=zJ.exec(a),l=c?null:BJ.exec(a);if(c||l){i();let r=!c,a=[];for(;e<t.length;e++){let n=r?BJ.exec(t[e]):zJ.exec(t[e]);if(!n)break;let i=n[1].length;a.push({depth:Math.min(3,Math.floor(i/2)),c:IJ(r?n[2]:n[3])})}e--,n.push({t:`list`,ordered:r,items:a});continue}r.push(a)}return i(),n}var KJ=`flex min-h-0 min-w-0 flex-1 flex-col font-sans text-body`,qJ=`flex flex-none flex-wrap items-center gap-x-3 gap-y-1 px-3 pb-1.5 font-mono text-meta`,JJ=`min-w-0 flex-1 basis-32 py-1 text-meta`,YJ=`min-h-0 flex-1 overflow-y-auto px-3 pb-3`,XJ=`m-0 px-3 py-2 font-mono text-meta text-subtle`,ZJ=`m-0 whitespace-pre-wrap px-3 pb-3 font-mono text-meta leading-[1.45] text-muted wrap-anywhere`,QJ=e=>`group/entry mt-3 rounded-sm border-l-2 py-0.5 pl-2.5 ${e.flash?`border-accent bg-accent-soft`:e.current?`border-line-active`:`border-transparent`}`,$J=`mb-0.5 flex items-center gap-2 font-mono text-meta`,eY=e=>e===`user`?`text-accent`:`text-muted`,tY=`text-subtle`,nY=`ml-auto opacity-0 group-hover/entry:opacity-100 focus-visible:opacity-100 touch:opacity-100`,rY=`m-0 mt-0.5 flex min-w-0 items-baseline gap-1.5 font-mono text-meta text-subtle`,iY=`flex-none text-muted`,aY=`min-w-0 flex-1 truncate`,oY=`leading-[1.5] wrap-anywhere`,sY=`m-0 mb-2 whitespace-pre-wrap last:mb-0`,cY=`m-0 mt-3 mb-1.5 font-semibold first:mt-0`,lY=`m-0 mb-2 flex flex-col gap-0.5 pl-5 last:mb-0`,uY=`m-0 mb-2 border-l-2 border-line pl-2.5 whitespace-pre-wrap text-muted last:mb-0`,dY=`m-0 mb-2 overflow-x-auto rounded-sm border-hairline border-line bg-inset px-2.5 py-2 font-mono text-meta leading-[1.45] last:mb-0`,fY=`rounded-xs bg-inset px-1 font-mono text-meta`,pY=`text-accent underline`,mY=`mb-2 block max-w-full overflow-x-auto border-collapse font-mono text-meta last:mb-0`,hY=`border-hairline border-line px-2 py-0.5 text-left align-top`,gY=`my-2 border-0 border-t border-line`;function _Y(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=e.toLowerCase(),i=[],a=0;for(let t=r.indexOf(n);t>=0;t=r.indexOf(n,a))t>a&&i.push(e.slice(a,t)),i.push((0,V.jsx)(`mark`,{className:KA,"data-hit":``,children:e.slice(t,t+n.length)},t)),a=t+n.length;return i.push(e.slice(a)),g.Children.toArray(i)}var vY=[`h3`,`h3`,`h4`,`h5`,`h6`,`h6`];function yY({level:e,children:t}){let n=vY[Math.min(5,Math.max(0,e-1))]??`h6`;return(0,V.jsx)(n,{className:cY,children:t})}function bY(e,t){return e.map((e,n)=>(0,V.jsx)(g.Fragment,{children:t(e)},n))}function xY({nodes:e,needle:t}){return bY(e,e=>e.t===`text`?_Y(e.v,t):e.t===`code`?(0,V.jsx)(`code`,{className:fY,children:_Y(e.v,t)}):e.t===`bold`?(0,V.jsx)(`strong`,{children:(0,V.jsx)(xY,{nodes:e.c,needle:t})}):e.t===`em`?(0,V.jsx)(`em`,{children:(0,V.jsx)(xY,{nodes:e.c,needle:t})}):(0,V.jsx)(`a`,{className:pY,href:e.href,target:`_blank`,rel:`noopener noreferrer`,children:(0,V.jsx)(xY,{nodes:e.c,needle:t})}))}function SY({block:e,needle:t}){switch(e.t){case`heading`:return(0,V.jsx)(yY,{level:e.level,children:(0,V.jsx)(xY,{nodes:e.c,needle:t})});case`para`:return(0,V.jsx)(`p`,{className:sY,children:(0,V.jsx)(xY,{nodes:e.c,needle:t})});case`code`:return(0,V.jsx)(`pre`,{className:dY,children:(0,V.jsx)(`code`,{children:_Y(e.v,t)})});case`quote`:return(0,V.jsx)(`blockquote`,{className:uY,children:(0,V.jsx)(xY,{nodes:e.c,needle:t})});case`hr`:return(0,V.jsx)(`hr`,{className:gY});case`list`:{let n=e.ordered?`ol`:`ul`;return(0,V.jsx)(n,{className:`${lY} ${e.ordered?`list-decimal`:`list-disc`}`,children:bY(e.items,e=>(0,V.jsx)(`li`,{style:{marginLeft:`${e.depth*1.25}rem`},children:(0,V.jsx)(xY,{nodes:e.c,needle:t})}))})}case`table`:return(0,V.jsx)(`table`,{className:mY,children:(0,V.jsx)(`tbody`,{children:bY(e.rows,e=>(0,V.jsx)(`tr`,{children:bY(e,e=>(0,V.jsx)(`td`,{className:hY,children:(0,V.jsx)(xY,{nodes:e,needle:t})}))}))})})}}function CY({source:e,needle:t=``}){let n=(0,g.useMemo)(()=>GJ(e),[e]);return(0,V.jsx)(`div`,{className:oY,children:bY(n,e=>(0,V.jsx)(SY,{block:e,needle:t}))})}function wY(e){if(e instanceof Ov){if(e.code===`TOO_LARGE`){let t=e.detail?.size;return dL(z(`artifact.tooLarge`),{size:typeof t==`number`?`${(t/1048576).toFixed(1)} MB`:`5 MB+`})}if(e.code===`NOT_PREVIEWABLE`)return z(`artifact.notPreviewable`);if(e.code===`NOT_FOUND`)return z(`artifact.gone`)}return dL(z(`artifact.failed`),{error:e instanceof Error?e.message:String(e)})}function TY(e,t,n,r){let[i,a]=(0,g.useState)({kind:`loading`});return(0,g.useEffect)(()=>{let r=!0;return e.client.request(`file.read`,{taskId:t,path:n}).then(e=>r&&a({kind:`ready`,file:e}),e=>r&&a({kind:`failed`,text:wY(e)})),()=>{r=!1}},[e,t,n,r]),i}function EY(e,t){let n=(0,g.useMemo)(()=>e===null?null:URL.createObjectURL(new Blob([OJ(e)],{type:t})),[e,t]);return(0,g.useEffect)(()=>()=>void(n&&URL.revokeObjectURL(n)),[n]),n}function DY({model:e,taskId:t,path:n,kind:r,changeKey:i}){B();let a=TY(e,t,n,i),o=EY(a.kind===`ready`&&(r===`svg`||r===`image`||r===`pdf`)?a.file.base64:null,r===`md`||r===`html`?``:AJ(r,n));return a.kind===`loading`?(0,V.jsx)(`p`,{className:Zt,children:z(`artifact.loading`)}):a.kind===`failed`?(0,V.jsx)(`p`,{className:`${Zt} text-error`,children:a.text}):r===`md`?(0,V.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto px-3 py-2`,children:(0,V.jsx)(CY,{source:kJ(a.file.base64)})}):r===`html`?(0,V.jsx)(`iframe`,{title:n,sandbox:``,srcDoc:MJ(kJ(a.file.base64)),style:{colorScheme:`light`,background:`#fff`},className:`min-h-0 w-full flex-1 border-none`}):o?r===`pdf`?(0,V.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,V.jsx)(`a`,{className:`${an} px-3 py-1 font-mono text-meta`,href:o,target:`_blank`,rel:`noreferrer noopener`,children:z(`artifact.open`)}),(0,V.jsx)(`iframe`,{title:n,src:o,className:`min-h-0 w-full flex-1 border-none`})]}):(0,V.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:(0,V.jsx)(`img`,{src:o,alt:n,className:`max-w-full`})}):null}function OY(e){let[t,n]=(0,g.useState)(0),r=e.open&&e.items.length>0,i=Math.min(t,Math.max(0,e.items.length-1)),a=(0,g.useRef)(null),{onCursor:o}=e;return(0,g.useEffect)(()=>o?.(i),[i,o]),(0,g.useEffect)(()=>{a.current?.scrollIntoView({block:`nearest`})},[i,e.items]),(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(`input`,{className:sn,"data-field":e.field,spellCheck:!1,autoComplete:`off`,autoFocus:e.autoFocus,placeholder:e.placeholder,value:e.value,onChange:t=>{n(0),e.onChange(t.target.value.replace(/[\r\n]+/g,``))},onKeyDown:t=>{if(!t.nativeEvent.isComposing){if(t.key===`ArrowDown`||t.key===`ArrowUp`){if(!r)return;t.preventDefault(),n(Math.max(0,Math.min(e.items.length-1,i+(t.key===`ArrowDown`?1:-1))))}else t.key===`Tab`&&!t.shiftKey&&r&&e.onComplete?.(i)?(t.preventDefault(),n(0)):t.key===`Enter`&&!t.ctrlKey&&!t.metaKey&&(t.preventDefault(),r?((e.onEnterRow??e.onPick)(i),n(0)):e.onEnter?.())}}}),r&&(0,V.jsx)(`ul`,{className:`mx-0 mt-1 mb-0 max-h-47 list-none overflow-y-auto rounded-sm border-hairline border-line bg-inset p-0.5 font-mono text-meta`,children:e.items.map((t,n)=>(0,V.jsx)(`li`,{ref:n===i?a:void 0,children:(0,V.jsxs)(`button`,{type:`button`,tabIndex:-1,"aria-pressed":n===i,className:nn({cursor:n===i,accent:!!t.accent}),onMouseDown:t=>{t.preventDefault(),e.onPick(n)},children:[(0,V.jsx)(`span`,{children:t.text}),t.dim&&(0,V.jsxs)(`span`,{className:`text-muted`,children:[` `,t.dim]})]})},t.key))})]})}function kY(e,t,n){let r=[{ref:null,suggestion:{key:`default`,text:t,dim:z(`review.baseDefault`),accent:!0}}],i=(e,n)=>{for(let i of e)i!==t&&r.push({ref:i,suggestion:{key:`${n}:${i}`,text:i,dim:n}})};i(e?.branches??[],z(`review.baseBranch`)),i(e?.remotes??[],z(`review.baseRemote`)),i(e?.tags??[],z(`review.baseTag`));for(let t of e?.commits??[])r.push({ref:t.sha,suggestion:{key:`commit:${t.sha}`,text:t.sha,dim:t.subject}});let a=n.trim().toLowerCase();if(a===``)return r.slice(0,40);let o=r.filter(e=>`${e.suggestion.text} ${e.suggestion.dim??``}`.toLowerCase().includes(a)),s=e=>e.suggestion.text.toLowerCase()===a?0:1;return o.sort((e,t)=>s(e)-s(t)).slice(0,40)}function AY(e){let[t,n]=(0,g.useState)(!1),[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(null),s=e.model.client;(0,g.useEffect)(()=>{if(!t)return;let n=!0;return sl(s,`diff.refs`,{taskId:e.taskId}).then(e=>n&&o(e),()=>{}),()=>{n=!1}},[t,s,e.taskId]);let c=kY(a,e.base,r),l=t=>{e.onPick(t),n(!1),i(``)},u=e.custom??e.base,d=[{id:`task`,label:z(`review.scopeTask`)},{id:`working`,label:z(`review.scopeWorking`)},{id:`branch`,label:z(`review.scopeBranch`)}],f=d.find(t=>t.id===e.scope)?.label??``;return(0,V.jsxs)(`span`,{className:`relative`,onKeyDown:e=>{e.stopPropagation(),e.key===`Escape`&&t&&n(!1)},children:[(0,V.jsx)(H,{hit:`tight`,"aria-expanded":t,"aria-haspopup":`menu`,onClick:t=>{let r=t.currentTarget.getBoundingClientRect();fn.set({x:r.left,y:r.bottom+2,target:t.currentTarget,items:[...d.map(t=>({label:t.label,section:`scope`,checked:t.id===e.scope,run:()=>e.onScope(t.id)})),{label:z(`review.compareAgainst`,{base:u}),section:`base`,run:()=>n(!0)}]})},children:z(`review.scopeMenu`,{base:u,scope:f})}),t&&(0,V.jsx)(`div`,{className:`absolute top-full left-0 z-3 mt-1 w-64 max-w-full rounded-sm border-hairline border-line-active bg-surface p-1 shadow-popover`,children:(0,V.jsx)(OY,{field:`diff-base`,autoFocus:!0,value:r,onChange:i,items:c.map(e=>e.suggestion),open:!0,placeholder:z(`review.basePlaceholder`),onPick:e=>l(c[e]?.ref??null),onEnter:()=>l(r.trim()===``?null:r.trim())})})]})}var jY=`rove.diffBase`;function MY(){try{let e=JSON.parse(localStorage.getItem(jY)??`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`string`))}catch{return{}}}function NY(e){return MY()[e]??null}function PY(e,t){let n=MY();t===null?delete n[e]:n[e]=t;try{localStorage.setItem(jY,JSON.stringify(n))}catch{}}function FY(e){let[t,n]=(0,g.useState)(()=>NY(e.taskId));return[t,t=>{PY(e.taskId,t),n(t),t!==null&&e.scope!==`task`&&gs({taskId:e.taskId,path:e.path,scope:`task`})}]}var IY={add:`bg-diff-added-bg`,del:`bg-diff-removed-bg`},LY={add:`text-diff-added`,del:`text-diff-removed`};function RY(e,t){let n=t.cursor?`bg-inset group-focus/preview:bg-accent-soft`:t.noted?`bg-inset`:IY[e]??``;return`relative grid ${e===`file`||e===`note`?`cursor-pointer`:`cursor-default`} grid-cols-[4ch_4ch_2ch_minmax(0,1fr)] gap-x-2 gap-y-0 whitespace-pre px-3 group-data-file/preview:grid-cols-[4ch_1ch_minmax(0,1fr)] @max-md/preview:grid-cols-[3ch_3ch_1ch_minmax(0,1fr)] @max-md/preview:gap-x-1 @max-md/preview:px-1.5 @max-md/preview:group-data-file/preview:grid-cols-[3ch_1ch_minmax(0,1fr)] ${n} ${e===`file`?`mt-2 border-t-hairline border-line pt-1 font-bold text-ink`:e===`hunk`||e===`meta`?`text-subtle`:``}`}var zY=`text-right text-subtle`,BY=`${zY} group-data-file/preview:hidden`,VY=(e,t,n=!1)=>t?`text-accent`:n?`text-diff-added`:LY[e]??``,HY=e=>`min-w-0 whitespace-pre-wrap wrap-anywhere ${LY[e]??``}`,UY=`min-w-0 whitespace-pre-wrap wrap-anywhere text-accent`,WY=`col-span-3 flex min-w-0 items-baseline gap-2 overflow-hidden`,GY=(0,g.memo)(function(e){return(0,V.jsxs)(`div`,{className:`flex items-center ${e.viewed?`opacity-60`:``}`,children:[(0,V.jsxs)(H,{variant:`row`,"data-row":e.index,"aria-expanded":!e.closed,"aria-label":z(e.closed?`review.unfold`:`review.fold`,{path:e.name}),className:`${RY(`file`,{cursor:e.cursor,noted:!1})} min-w-0 flex-1 text-left`,onClick:()=>e.onToggleFold(e.index,e.path),children:[(0,V.jsx)(`span`,{className:`grid place-items-center text-subtle`,children:(0,V.jsx)(Ka,{right:e.closed})}),(0,V.jsxs)(`span`,{className:WY,children:[(0,V.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name}),e.added?(0,V.jsxs)(PL,{tone:`added`,children:[`+`,e.added]}):null,e.removed?(0,V.jsxs)(PL,{tone:`removed`,children:[`−`,e.removed]}):null]})]}),e.path!==null&&(0,V.jsx)(H,{hit:`tight`,className:`flex-none px-2`,"aria-pressed":e.viewed,"aria-label":z(e.viewed?`review.unmarkViewed`:`review.markViewed`,{path:e.name}),onClick:()=>e.path!==null&&e.onToggleViewed(e.path),children:e.viewed?z(`review.viewedOn`):z(`review.viewed`)})]})});function KY(e){return(0,V.jsxs)(`div`,{className:`absolute top-full right-3 z-1 flex gap-1.5`,children:[(0,V.jsx)(H,{variant:`floating`,onMouseDown:e=>e.preventDefault(),onClick:t=>{t.stopPropagation(),e.onComment()},children:z(`review.comment`)}),e.showRange&&(0,V.jsx)(H,{variant:`floating`,onClick:t=>{t.stopPropagation(),e.onRange()},children:z(`review.range`)}),e.ranged&&(0,V.jsx)(H,{variant:`floating`,title:z(`preview.askInChatHint`),onMouseDown:e=>e.preventDefault(),onClick:t=>{t.stopPropagation(),e.onAsk()},children:z(`preview.askInChat`)})]})}function qY({note:e,onEdit:t}){return(0,V.jsxs)(H,{variant:`row`,className:`${RY(`note`,{cursor:!1,noted:!1})} w-full text-left`,onClick:t,children:[(0,V.jsx)(`span`,{className:BY}),(0,V.jsx)(`span`,{}),(0,V.jsx)(`span`,{className:`text-accent`,children:`●`}),(0,V.jsx)(`span`,{className:UY,children:e.body})]})}function JY(e){let t=(0,g.useRef)(e);return t.current=e,(0,g.useMemo)(()=>({rowClick:(e,n)=>t.current.rowClick(e,n),fileClick:(e,n)=>t.current.fileClick(e,n),viewedClick:e=>t.current.viewedClick(e),editNote:e=>t.current.editNote(e)}),[])}var YY=2e3,XY=(0,g.memo)(function(e){let{index:t,row:n,noted:r}=e;return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{"data-row":t,className:RY(n.kind,{cursor:e.cursor,noted:r}),onClick:n=>e.onClick(t,n),children:[(0,V.jsx)(`span`,{className:BY,children:n.oldNo??``}),(0,V.jsx)(`span`,{className:zY,children:n.newNo??``}),(0,V.jsx)(`span`,{className:VY(n.kind,r,e.changed),children:n.kind===`add`?`+`:n.kind===`del`?`−`:r?`●`:e.changed?`▎`:` `}),(0,V.jsxs)(`span`,{className:HY(n.kind),children:[n.text.length>YY?n.text.slice(0,YY):n.text,n.text.length>YY&&(0,V.jsxs)(`span`,{className:`text-subtle`,children:[` `,z(`review.lineClipped`,{count:(n.text.length-YY).toLocaleString()})]})]}),e.actions]}),e.notes?.map(t=>t.id===e.editId?(0,V.jsx)(g.Fragment,{children:e.composer},t.id):(0,V.jsx)(qY,{note:t,onEdit:()=>e.onEditNote(t)},t.id)),e.editId===void 0&&e.composer]})});function ZY(e){return(0,V.jsxs)(`div`,{className:`flex flex-none flex-wrap items-center gap-x-3 gap-y-1 px-2 pt-1.5 font-mono text-meta`,children:[e.picker,(0,V.jsx)(H,{hit:`tight`,"aria-pressed":e.ignoreWs,title:z(`review.ignoreWsHint`),className:`opacity-60 aria-pressed:underline aria-pressed:opacity-100`,onClick:e.onToggleWs,children:z(`review.ignoreWs`)}),(0,V.jsxs)(`span`,{className:`flex min-w-0 basis-full flex-wrap items-center gap-x-1.5 text-muted`,children:[z(`review.totals`,{files:e.files,added:e.added,removed:e.removed}),e.shape&&(0,V.jsxs)(`span`,{children:[`· `,e.shape]}),e.files>0&&(0,V.jsxs)(`span`,{className:`whitespace-nowrap`,children:[`· `,z(`review.viewedCount`,{done:e.viewed,files:e.files})]})]}),(0,V.jsxs)(`span`,{className:`ml-auto flex items-center gap-x-3`,children:[e.files>1&&(0,V.jsx)(H,{hit:`tight`,onClick:e.onNextFile,children:z(`review.nextFile`)}),e.onNextComment&&(0,V.jsx)(H,{hit:`tight`,onClick:e.onNextComment,children:z(`review.nextComment`)}),e.files>1&&(0,V.jsx)(H,{hit:`tight`,onClick:e.onFoldAll,children:e.allFolded?z(`review.unfoldAll`):z(`review.foldAll`)})]})]})}var QY=`rove.diffViewed`,$Y=(e,t)=>`${e}\0${t}`,eX=4096;function tX(e){let t=2166136261;for(let n of e){let e=n.text.length>eX?`${n.text.slice(0,eX/2)}${n.text.length}${n.text.slice(-2048)}`:n.text,r=`${n.kind}${e}\n`;for(let e=0;e<r.length;e++)t=Math.imul(t^r.charCodeAt(e),16777619)}return(t>>>0).toString(16)}function nX(e){let t=new Map,n=-1,r=r=>{let i=n>=0?e[n]?.path:null;i&&t.set(i,tX(e.slice(n+1,r)))};return e.forEach((e,t)=>{e.kind===`file`&&(r(t),n=t)}),r(e.length),t}function rX(){try{let e=JSON.parse(localStorage.getItem(QY)??`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`string`))}catch{return{}}}function iX(e){try{localStorage.setItem(QY,JSON.stringify(e))}catch{}}function aX(e,t,n){let r=new Set;for(let[i,a]of n)e[$Y(t,i)]===a&&r.add(i);return r}function oX(e,t,n,r){let i={...e};return r===void 0?delete i[$Y(t,n)]:i[$Y(t,n)]=r,i}function sX(e,t){return e.find(e=>e>t)??e[0]??null}var cX=`rove.diffIgnoreWs`;function lX(){try{return localStorage.getItem(cX)===`1`}catch{return!1}}function uX(e){try{localStorage.setItem(cX,e?`1`:`0`)}catch{}}var dX=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/;function fX(e,t=null,n=!1){let r=[],i=0,a=0,o=t,s=!1;for(let t of e.replace(/\n$/,``).split(`
|
|
139
|
+
`)){if(t.startsWith(`diff --git `)){let e=/ b\/(.+)$/.exec(t);o=e?e[1]:o,s=!1,r.push({kind:`file`,text:o??t,oldNo:null,newNo:null,path:o});continue}let e=dX.exec(t);if(e){i=Number(e[1]),a=Number(e[2]),s=!0,r.push({kind:`hunk`,text:t,oldNo:null,newNo:null,path:o});continue}if(!s){r.push({kind:`meta`,text:t,oldNo:null,newNo:null,path:o});continue}t.startsWith(`+`)?r.push({kind:`add`,text:t.slice(1),oldNo:null,newNo:a++,path:o}):t.startsWith(`-`)?r.push({kind:`del`,text:t.slice(1),oldNo:i++,newNo:null,path:o,...n?{foreignOld:!0}:{}}):t.startsWith(`\\`)?r.push({kind:`meta`,text:t,oldNo:null,newNo:null,path:o}):r.push({kind:`ctx`,text:t.slice(1),oldNo:i++,newNo:a++,path:o})}return r}function pX(e,t){return e.replace(/\n$/,``).split(`
|
|
140
|
+
`).map((e,n)=>({kind:`ctx`,text:e,oldNo:null,newNo:n+1,path:t}))}function mX(e){return e.kind===`del`?e.foreignOld?null:e.oldNo:e.kind===`add`||e.kind===`ctx`?e.newNo:null}function hX(e){let t=e.startLine?`lines ${e.startLine}-${e.line}`:`line ${e.line}`;return`@${e.path} (${t}) `}function gX(e,t,n){let r=e[t],i=r?mX(r):null;if(!r?.path||i===null)return null;if(n===null||n===t)return{path:r.path,line:i};let a=e[Math.min(n,t)],o=e[Math.max(n,t)],s=a?mX(a):null,c=o?mX(o):null;return s===null||c===null||a?.path!==o?.path?{path:r.path,line:i}:s===c?{path:r.path,line:c}:{path:r.path,startLine:Math.min(s,c),line:Math.max(s,c)}}function _X(e,t,n){let r=gX(e,t,n);if(!r)return null;let i=r.startLine!==void 0&&n!==null;return{...r,first:i?Math.min(n,t):t,last:i?Math.max(n,t):t}}function vX(e,t){let n=[],r=!1;return e.forEach((e,i)=>{e.kind===`file`&&(r=e.path!==null&&t.has(e.path)),(!r||e.kind===`file`)&&n.push(i)}),n}function yX(e){let t=new Map,n=-1;return e.forEach((e,r)=>{if(e.kind===`file`){n=r,t.set(r,{added:0,removed:0});return}let i=t.get(n);i&&(e.kind===`add`?i.added++:e.kind===`del`&&i.removed++)}),t}function bX(e){return(0,V.jsx)(`div`,{className:`flex flex-none items-center gap-3 px-2 pt-1.5 font-mono text-meta`,children:(0,V.jsx)(H,{hit:`tight`,onClick:()=>e.file?gs({taskId:e.taskId,path:e.path,scope:`working`}):_s(e.taskId,e.path),children:z(e.file?`preview.modeDiff`:`preview.modeFile`)})})}function xX(e,t,n,r,i){let[a,o]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!r)return;let i=!0;return sl(e,`diff.file`,{taskId:t,path:n,scope:`working`}).then(e=>{if(!i)return;let t=e.kind===`diff`&&typeof e.text==`string`?fX(e.text,n):[];o(new Set(t.flatMap(e=>e.kind===`add`&&e.newNo!==null?[e.newNo]:[])))},()=>i&&o(null)),()=>{i=!1}},[e,t,n,r,i]),r?a:null}var SX=[`source`,`tests`,`config`,`docs`,`generated`],CX=/(^|\/)(bun\.lockb?|package-lock\.json|yarn\.lock|pnpm-lock\.yaml|Cargo\.lock|poetry\.lock|uv\.lock|Gemfile\.lock|go\.sum|composer\.lock)$/,wX=/(^|\/)(dist|build|generated|__generated__|\.next)\/|\.min\.(js|css)$|\.snap$|\.generated\.|\.pb\.go$|\.map$/,TX=/(^|\/)(tests?|__tests__|spec|e2e)\/|\.(test|spec)\.[cm]?[jt]sx?$|_test\.(go|py)$|(^|\/)test_[^/]+\.py$/,EX=/\.(md|mdx|rst|txt)$|(^|\/)docs\//i,DX=/(^|\/)(\.[\w.-]+rc(\.\w+)?|[\w.-]*\.config\.[cm]?[jt]s|tsconfig[\w.-]*\.json|package\.json|biome\.json|Dockerfile|Makefile)$|\.(ya?ml|toml|ini|env)$|(^|\/)\.(github|changeset|vscode)\//,OX=e=>CX.test(e);function kX(e){return CX.test(e)||wX.test(e)?`generated`:TX.test(e)?`tests`:EX.test(e)?`docs`:DX.test(e)?`config`:`source`}var AX=e=>kX(e)===`generated`;function jX(e){let t=e.filter(e=>kX(e.path)!==`generated`),n=t.reduce((e,t)=>e+t.lines,0);return t.length===0?1:((e,t)=>e<=2&&t<=30?1:e<=5&&t<=150?2:e<=10&&t<=400?3:e<=20&&t<=1e3?4:5)(t.length,n)}function MX(e){let t=[],n=(e,n)=>n>0&&t.push({group:e,count:n});for(let t of SX)t===`generated`?(n(`lockfile`,e.filter(OX).length),n(`generated`,e.filter(e=>kX(e)===`generated`&&!OX(e)).length)):n(t,e.filter(e=>kX(e)===t).length);return t}function NX(e){let t=[];for(let n of e)(n.kind===`file`||t.length===0)&&t.push([]),t[t.length-1]?.push(n);let n=e=>SX.indexOf(kX(e[0]?.path??``));return t.map((e,t)=>({file:e,i:t})).sort((e,t)=>n(e.file)-n(t.file)||e.i-t.i).flatMap(({file:e})=>e)}function PX(e){return MX(e.map(e=>e.path)).map(({group:e,count:t})=>({key:e===`lockfile`?t===1?`lockfile`:`lockfiles`:e,count:t}))}function FX(e,t){let n=[...e.entries()].flatMap(([e,n])=>{let r=t[e]?.path;return r?[{path:r,lines:n.added+n.removed}]:[]});return n.length<2?``:[z(`review.shape.effort`,{n:jX(n)}),...PX(n).map(e=>z(`review.shape.${e.key}`,{count:e.count}))].join(` · `)}function IX(e,t,n){if(!e||typeof e!=`object`||!(`kind`in e))return{kind:`text`,text:z(`preview.unknown`)};let r=`text`in e&&typeof e.text==`string`?e.text:``;switch(e.kind){case`diff`:{let e=fX(r,t===`.`?null:t,n);return{kind:`rows`,rows:t===`.`?NX(e):e,diff:!0}}case`code`:return{kind:`rows`,rows:pX(r,t),diff:!1};case`binary`:return{kind:`text`,text:z(`preview.binary`)};case`empty`:return{kind:`text`,text:z(`preview.empty`)};case`error`:return{kind:`text`,text:`message`in e?String(e.message):z(`preview.unknown`),error:!0};default:return{kind:`text`,text:z(`preview.noHunks`,{kind:String(e.kind)})}}}function LX(e){return e instanceof Ov&&e.code===`UNKNOWN_OP`?Error(z(`review.notSupported`)):e instanceof Error?e:Error(String(e))}function RX(e,t){let n=e.tasks.get()?.tasks.find(e=>e.id===t);return n?.workspace?`${n.machine?.id??``}:${n.workspace}`:t}var zX={add:`+`,del:`-`},BX=40,VX=160,HX=e=>`${zX[e.kind]??` `}${e.text.slice(0,VX)}`,UX=e=>e.startLine!==void 0&&e.startLine!==e.line?`${e.filePath}:${e.startLine}-${e.line}`:`${e.filePath}:${e.line}`;function WX(e,t,n){let r=[];for(let i=t;i<=n&&r.length<BX;i++){let t=e[i];t&&mX(t)!==null&&r.push(HX(t))}return r.join(`
|
|
141
|
+
`)}function GX(e,t){let n=e.startLine??e.line,r=t.flatMap((t,n)=>t.path===e.filePath&&mX(t)!==null?[n]:[]);if(!e.code){let i=r.filter(r=>{let i=mX(t[r]);return i>=n&&i<=e.line}),a=i[0],o=i[i.length-1];return a===void 0||o===void 0?null:{first:a,last:o}}let i=e.code.split(`
|
|
142
|
+
`);for(let e=0;e+i.length<=r.length;e++){let a=r.slice(e,e+i.length),o=a[0],s=a[a.length-1];if(o!==void 0&&s!==void 0&&mX(t[o])===n&&a.every((e,n)=>HX(t[e])===i[n]))return{first:o,last:s}}return null}function KX(e,t,n){return GX(e,t)?`ok`:t.some(t=>t.path===e.filePath)||n?`moved`:`unknown`}function qX(e){let[t,n]=(0,g.useState)(null),r=()=>{n(null),e.focusView()},i=async n=>{if(t){if(t.kind===`add`){let{target:r}=t;await e.client.request(`review.add`,{taskId:e.taskId,filePath:r.path,line:r.line,...r.startLine?{startLine:r.startLine}:{},code:WX(e.rows,r.first,r.last),body:n})}else await e.client.request(`review.edit`,{taskId:e.taskId,id:t.note.id,body:n}).catch(e=>{throw LX(e)});e.onSaved(t.kind===`add`),r()}};return{node:t&&(0,V.jsx)(JX,{location:t.kind===`add`?UX({filePath:t.target.path,startLine:t.target.startLine,line:t.target.line}):UX(t.note),...t.kind===`edit`?{initial:t.note.body}:{},onSubmit:i,onCancel:r}),row:t?t.kind===`add`?t.target.last:GX(t.note,e.rows)?.last??-1:null,editId:t?.kind===`edit`?t.note.id:void 0,add:()=>e.target&&n({kind:`add`,target:e.target}),edit:e=>n({kind:`edit`,note:e})}}function JX(e){let[t,n]=(0,g.useState)(e.initial??``),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(null),s=e.initial!==void 0,c=t.trim(),l=async()=>{if(!(!c||r)){i(!0),o(null);try{await e.onSubmit(c)}catch(e){o(e instanceof Error?e.message:String(e)),i(!1)}}};return(0,V.jsxs)(`div`,{className:RY(`note`,{cursor:!1,noted:!1}),onKeyDown:e=>e.stopPropagation(),onMouseUp:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:[(0,V.jsx)(`span`,{className:BY}),(0,V.jsx)(`span`,{}),(0,V.jsx)(`span`,{className:`text-accent`,children:`●`}),(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 whitespace-normal`,children:[(0,V.jsx)(`textarea`,{className:`${sn} ${Fn} font-mono`,"aria-label":z(s?`review.noteEditOn`:`review.noteOn`,{location:e.location}),autoFocus:!0,rows:3,value:t,disabled:r,onChange:e=>n(e.target.value),onFocus:e=>e.currentTarget.setSelectionRange(t.length,t.length),onKeyDown:t=>{t.key===`Enter`&&(t.ctrlKey||t.metaKey)?(t.preventDefault(),l()):t.key===`Escape`&&(t.preventDefault(),e.onCancel())}}),a&&(0,V.jsx)(`p`,{className:`m-0 text-error`,children:a}),(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(H,{hit:`tight`,disabled:r||!c,onClick:()=>void l(),children:z(s?`review.noteSave`:`review.noteAdd`)}),(0,V.jsx)(H,{hit:`tight`,className:`text-muted`,disabled:r,onClick:e.onCancel,children:z(`review.noteCancel`)})]})]})]})}function YX({notes:e,states:t,sending:n,onShow:r,onEdit:i,onDrop:a,onSend:o}){B();let[s,c]=(0,g.useState)(!1);if(e.length===0)return null;let l=e.length;return(0,V.jsxs)(`div`,{className:`flex max-h-2/5 min-h-0 flex-none flex-col border-t-hairline border-line font-mono text-meta`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-1.5 narrow:px-2`,children:[(0,V.jsxs)(H,{variant:`row`,className:`flex min-w-0 flex-1 items-center gap-2 text-left text-ink`,"aria-expanded":s,onClick:()=>c(!s),children:[(0,V.jsx)(Ka,{right:!s}),(0,V.jsx)(`span`,{children:l===1?z(`review.countOne`):z(`review.count`,{count:l})})]}),(0,V.jsx)(H,{disabled:n,onClick:o,children:n?z(`review.sending`):z(`review.send`,{count:l})})]}),s&&(0,V.jsx)(`ul`,{className:`m-0 min-h-0 list-none overflow-y-auto p-0 pb-1`,children:e.map(e=>(0,V.jsxs)(`li`,{className:`flex flex-col gap-0.5 px-3 py-1 narrow:px-2`,children:[(0,V.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,V.jsx)(H,{variant:`row`,className:`min-w-0 flex-1 truncate text-left text-ink hover:underline`,title:z(`review.show`),onClick:()=>r(e),children:UX(e)}),t.get(e.id)===`moved`&&(0,V.jsx)(`span`,{title:z(`review.movedHint`),children:(0,V.jsx)(PL,{tone:`warning`,children:z(`review.moved`)})}),(0,V.jsx)(H,{hit:`tight`,onClick:()=>i(e),children:z(`review.edit`)}),(0,V.jsx)(H,{hit:`tight`,onClick:()=>a(e),children:z(`review.drop`)})]}),(0,V.jsx)(`p`,{className:`m-0 line-clamp-2 whitespace-pre-wrap wrap-anywhere text-muted`,children:e.body})]},e.id))})]})}var XX=[];function ZX({model:e,view:t,active:n,restored:r,onClose:i}){B();let a=Oc(),[o,s]=(0,g.useState)(lX),[c,l]=(0,g.useState)(rX),[u,d]=FY(t),f=t.scope===`task`?u:null,p=f!==null,m=t.file===!0,h={taskId:t.taskId,path:t.path,scope:t.scope,...m?{content:!0}:{},...o?{ignoreWhitespace:!0}:{},...f?{base:f}:{}},_=RX(e,t.taskId),y={...h,taskId:_},[b,x]=(0,g.useState)(()=>{let n=q(e,`diff.file`,y);return n===void 0?null:IX(n,t.path,p)}),[S,C]=(0,g.useState)(()=>q(e,`review.list`,{taskId:t.taskId})?.notes??[]),[w,T]=(0,g.useState)(()=>q(e,`diff.files`,{taskId:_})),[E,D]=(0,g.useState)(0),[O,k]=(0,g.useState)(null),[A,j]=(0,g.useState)(!1),[ee,M]=(0,g.useState)(new Map),[N,P]=(0,g.useState)(!1),[F,I]=(0,g.useState)(0),te=(0,g.useRef)(null),ne=e.client;(0,g.useEffect)(()=>{let e=!0;return ne.request(`diff.file`,h).then(n=>e&&x(IX(ol(ne,`diff.file`,y,n),t.path,p)),t=>{if(e){if(f&&t instanceof Ov&&t.code===`BAD_REF`){d(null),W(t.message,`error`);return}x({kind:`text`,text:t instanceof Error?t.message:String(t),error:!0})}}),()=>{e=!1}},[ne,t.taskId,t.path,t.scope,o,f,F]),(0,g.useEffect)(()=>{let e=!0;return ne.request(`diff.files`,{taskId:t.taskId}).then(t=>e&&T(ol(ne,`diff.files`,{taskId:_},t)),()=>{}),()=>{e=!1}},[ne,t.taskId,F]);let re=()=>void sl(ne,`review.list`,{taskId:t.taskId}).then(e=>C(e.notes));(0,g.useEffect)(re,[ne,t.taskId,F]);let ie=(0,g.useRef)(!1);(0,g.useEffect)(()=>{n&&(ie.current||!r)&&te.current?.focus(),ie.current=!0},[n,r]);let L=b?.kind===`rows`?b.rows:XX,R=b?.kind===`rows`&&b.diff,ae=w?.base??null,oe=t.path!==`.`&&t.scope===`working`&&fJ(w?.files??[],t.path),se=xX(ne,t.taskId,t.path,m&&oe&&!R,F),ce=(0,g.useMemo)(()=>L.map((e,t)=>`row-${t}`),[L]),le=(0,g.useMemo)(()=>yX(L),[L]),ue=(0,g.useMemo)(()=>nX(L),[L]),de=(0,g.useMemo)(()=>aX(c,t.taskId,ue),[c,t.taskId,ue]),fe=(0,g.useMemo)(()=>{let e=new Set;for(let t of ue.keys())(ee.get(t)??(AX(t)||de.has(t)))&&e.add(t);return e},[ue,de,ee]),pe=(e,t)=>M(n=>{let r=new Map(n);for(let n of e)r.set(n,t);return r}),me=(0,g.useMemo)(()=>vX(L,fe),[L,fe]),he=(0,g.useMemo)(()=>S.filter(e=>e.sentAt===void 0),[S]),ge=(0,g.useMemo)(()=>he.map(e=>({note:e,at:GX(e,L)})),[he,L]),_e=(0,g.useMemo)(()=>{let e=new Set;for(let{at:t}of ge)if(t)for(let n=t.first;n<=t.last;n++)e.add(n);return e},[ge]),ve=(0,g.useMemo)(()=>{let e=new Map;for(let{note:t,at:n}of ge)n&&e.set(n.last,[...e.get(n.last)??[],t]);return e},[ge]),ye=t.path===`.`&&b!==null&&!(b.kind===`text`&&b.error),be=(0,g.useMemo)(()=>{let e=new Map;for(let{note:t}of ge)e.set(t.id,KX(t,L,ye));return e},[ge,L,ye]);(0,g.useEffect)(()=>{if(me.includes(E))return;let e=E;for(;e>0&&L[e]?.kind!==`file`;)e--;D(e),k(null)},[me,E,L]);let xe=(0,g.useRef)(!1);(0,g.useEffect)(()=>{if(!xe.current){xe.current=!0;return}te.current?.querySelector(`[data-row="${E}"]`)?.scrollIntoView({block:`nearest`})},[E]);let Se=_X(L,E,O),Ce=e=>pe([e],!fe.has(e)),we=[...le.keys()].flatMap(e=>L[e]?.path?[L[e]?.path]:[]),Te=(0,g.useMemo)(()=>FX(le,L),[le,L]),Ee=we.length>0&&we.every(e=>fe.has(e)),De=[...le.values()].reduce((e,t)=>({added:e.added+t.added,removed:e.removed+t.removed}),{added:0,removed:0}),Oe=e=>{let n=oX(c,t.taskId,e,de.has(e)?void 0:ue.get(e));l(n),iX(n),M(t=>{let n=new Map(t);return n.delete(e),n})},ke=()=>{uX(!o),s(!o)},Ae=qX({client:ne,taskId:t.taskId,rows:L,target:Se,onSaved:e=>{e&&(k(null),j(!1)),re()},focusView:()=>te.current?.focus()}),je=e=>{Fe(e),(t.path===`.`||t.path===e.filePath)&&Ae.edit(e)},Me=e=>void ne.request(`review.remove`,{taskId:t.taskId,id:e.id}).then(re).catch(e=>W(LX(e).message,`error`)),Ne=v(vn),Pe=()=>{let e=gX(L,E,O);if(e){if(!Ne?.startsWith(`${t.taskId}::`)){W(z(`files.mentionNoEngine`),`error`);return}ne.request(`term.input`,{stream:Ne,data:hX(e)}).then(()=>{k(null),va(Ne)?.focus()}).catch(e=>W(e instanceof Error?e.message:String(e),`error`))}},Fe=e=>{let n=GX(e,L),r=L.findIndex(t=>t.kind===`file`&&t.path===e.filePath);n?(pe([e.filePath],!1),D(n.first)):t.path===`.`&&r>=0?D(r):t.path!==e.filePath&&t.path!==`.`&&gs({taskId:t.taskId,path:e.filePath,scope:t.scope}),k(null),j(!1)},Ie=()=>{P(!0),ne.request(`review.send`,e.engineTarget(t.taskId)).then(e=>{W(e.delivered?z(`preview.sent`,{count:e.sent}):z(`preview.notSent`,{reason:e.reason??``}),e.delivered?`info`:`error`),re()}).catch(e=>W(e instanceof Error?e.message:String(e),`error`)).finally(()=>P(!1))},Le=()=>{let e=sX([...le.keys()],E);e!==null&&(D(e),k(null),j(!1))},Re=()=>{let e=sX(ge.flatMap(({at:e})=>e?[e.first]:[]).sort((e,t)=>e-t),E);if(e===null)return;let t=L[e]?.path;t&&pe([t],!1),D(e),k(null),j(!1)},ze=e=>D(t=>{let n=Math.max(0,me.indexOf(t));return me[Math.min(me.length-1,Math.max(0,n+e))]??t}),H=e=>{let t=e.key;if(t===`j`||t===`ArrowDown`)ze(1);else if(t===`k`||t===`ArrowUp`)ze(-1);else if(t===`v`)k(e=>e===null?E:null),j(!0);else if(t===`c`&&!e.ctrlKey)Ae.add();else if(t===`x`){let e=ge.find(({at:e})=>e&&E>=e.first&&E<=e.last);e&&Me(e.note)}else if(t===`s`)Ie();else if(t===`z`){let e=L[E]?.path;e&&R&&Ce(e)}else if(t===`r`)I(e=>e+1);else if(t===`q`||t===`Escape`)i();else if(e.ctrlKey&&!e.metaKey&&t.toLowerCase()===`c`&&!window.getSelection()?.toString())i();else return;e.preventDefault()},Be=()=>{let e=window.getSelection();if(!e||e.isCollapsed)return;let t=e=>(e instanceof Element?e:e?.parentElement)?.closest(`[data-row]`),n=t(e.anchorNode),r=t(e.focusNode);!n||!r||(k(Number(n.dataset.row)),D(Number(r.dataset.row)),j(!0))},Ve=JY({rowClick:(e,t)=>{window.getSelection()?.isCollapsed!==!1&&(t.shiftKey?k(e=>e??E):(!a||O===null)&&k(null),D(e),j(!0))},fileClick:(e,t)=>{D(e),k(null),j(!1),t&&Ce(t)},viewedClick:Oe,editNote:je}),He=O===null?E:Math.min(O,E),Ue=O===null?E:Math.max(O,E);return(0,V.jsxs)(`div`,{className:`group/preview @container/preview flex min-h-0 min-w-0 flex-1 flex-col outline-none`,"data-file":m&&!R?``:void 0,tabIndex:0,ref:te,onKeyDown:H,children:[oe&&(0,V.jsx)(bX,{taskId:t.taskId,path:t.path,file:m}),R&&(0,V.jsx)(ZY,{picker:ae!==null&&(0,V.jsx)(AY,{taskId:t.taskId,model:e,scope:t.scope,onScope:e=>gs({taskId:t.taskId,path:t.path,scope:e}),base:ae,custom:u,onPick:d}),ignoreWs:o,onToggleWs:ke,files:we.length,shape:Te,added:De.added,removed:De.removed,viewed:de.size,allFolded:Ee,onFoldAll:()=>pe(we,!Ee),onNextFile:Le,onNextComment:ge.some(({at:e})=>e)?Re:null}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto py-1.5 font-mono text-meta/normal`,onMouseUp:Be,children:[!b&&(0,V.jsx)(`p`,{className:`mx-2.5 my-3 font-mono text-meta text-subtle`,children:z(`preview.loading`)}),b?.kind===`text`&&(0,V.jsx)(`p`,{className:`mx-2.5 my-3 font-mono text-meta text-subtle ${b.error?`text-error`:``}`,children:b.text}),me.map(e=>{let t=L[e],n=e>=He&&e<=Ue;if(t.kind===`file`){let r=le.get(e),i=t.path;return(0,V.jsx)(GY,{index:e,name:t.text,path:i,closed:i!==null&&fe.has(i),viewed:i!==null&&de.has(i),cursor:n,added:r?.added??0,removed:r?.removed??0,onToggleFold:Ve.fileClick,onToggleViewed:Ve.viewedClick},ce[e])}return(0,V.jsx)(XY,{index:e,row:t,cursor:n,noted:_e.has(e),actions:A&&Se&&!Ae.node&&e===Ue&&(0,V.jsx)(KY,{showRange:a&&O===null,ranged:O!==null,onComment:Ae.add,onRange:()=>k(E),onAsk:Pe}),notes:ve.get(e),changed:t.newNo!==null&&se?.has(t.newNo)===!0,composer:e===Ae.row?Ae.node:void 0,editId:e===Ae.row?Ae.editId:void 0,onClick:Ve.rowClick,onEditNote:Ve.editNote},ce[e])}),Ae.row===-1&&Ae.node]}),(0,V.jsx)(YX,{notes:he,states:be,sending:N,onShow:Fe,onEdit:je,onDrop:Me,onSend:Ie})]})}function QX(e){B();let{model:t,view:n}=e,r=n.path===`.`?null:DJ(n.path),[i,a]=(0,g.useState)(null),o=v(t.tasks);if(!r)return(0,V.jsx)(ZX,{...e});let s=i===n.path,c=JSON.stringify(o?.tasks.find(e=>e.id===n.taskId)?.changes??null);return(0,V.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,V.jsxs)(`div`,{className:`flex gap-x-3 px-2.5 py-1`,children:[(0,V.jsx)(H,{variant:`pill`,hit:`tight`,"aria-current":!s,onClick:()=>a(null),children:`[ ${z(`artifact.preview`)} ]`}),(0,V.jsx)(H,{variant:`pill`,hit:`tight`,"aria-current":s,onClick:()=>a(n.path),children:`[ ${z(`artifact.source`)} ]`})]}),s?(0,V.jsx)(ZX,{...e}):(0,V.jsx)(DY,{model:t,taskId:n.taskId,path:n.path,kind:r,changeKey:c})]})}var $X={entries:[],failed:new Set},eZ=[`command`,`cmd`,`file_path`,`path`,`pattern`,`query`,`url`,`description`,`prompt`],tZ=100;function nZ(e){let t=(e.split(`
|
|
143
|
+
`).find(e=>e.trim()!==``)??``).trim();return t.length>tZ?`${t.slice(0,99)}…`:t}function rZ(e){if(typeof e==`string`)return nZ(e);if(!e||typeof e!=`object`)return``;let t=e,n=e=>typeof e==`string`?e:Array.isArray(e)&&e.every(e=>typeof e==`string`)?e.join(` `):``;for(let e of eZ){let r=n(t[e]);if(r.trim())return nZ(r)}for(let e of Object.values(t)){let t=n(e);if(t.trim())return nZ(t)}return``}function iZ(e){return e===`user`||e===`assistant`||e===`system`?e:null}function aZ(e,t){let n=[],r=[];return e.forEach((e,i)=>{let a=iZ(e.role);if(!a)return;let o=[],s=[];for(let t of e.blocks??[])t.type===`text`&&t.text?.trim()?o.push(t.text.trim()):t.type===`tool_call`?s.push({callId:t.callId??``,name:t.name??`tool`,summary:rZ(t.input)}):t.type===`tool_result`&&t.isError&&t.callId&&r.push(t.callId);(o.length!==0||s.length!==0)&&n.push({index:t+i,role:a,at:e.timestamp??``,text:o.join(`
|
|
144
|
+
|
|
145
|
+
`),tools:s})}),{entries:n,failed:r}}function oZ(e,t,n){let r=aZ(t,n),i=new Map(e.entries.map(e=>[e.index,e]));for(let e of r.entries)i.set(e.index,e);let a=r.failed.length>0?new Set([...e.failed,...r.failed]):e.failed;return{entries:[...i.values()].sort((e,t)=>e.index-t.index),failed:a}}function sZ(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.text.toLowerCase().includes(n)||e.tools.some(e=>`${e.name} ${e.summary}`.toLowerCase().includes(n))).map(e=>e.index):[]}var cZ=e=>e.replace(/[*_`]+/g,``).replace(/[…\s]+/g,` `).trim().toLowerCase();function lZ(e,t){let n=e.find(e=>e.at===t.at&&e.role===t.role);if(n)return n.index;let r=cZ(t.snippet);return r?e.find(e=>e.role===t.role&&cZ(e.text).includes(r))?.index??null:null}function uZ(e,t){let n=e[0];if(!n)return!0;let[r,i]=[Date.parse(n.at),Date.parse(t.at)];return Number.isNaN(r)||Number.isNaN(i)?!0:r>i}function dZ(e,t){let n=e.tools.map(e=>`- \`${e.name}\`${e.summary?` ${e.summary}`:``}${t.has(e.callId)?` (failed)`:``}`);return[e.text,n.join(`
|
|
146
|
+
`)].filter(e=>e!==``).join(`
|
|
147
|
+
|
|
148
|
+
`)}function fZ(e,t){return e.text===``?dZ(e,t):e.text}function pZ(e,t,n,r){return`# ${e}\n\n${t.map(e=>`${`## ${r[e.role]}${e.at?` · ${e.at}`:``}`}\n\n${dZ(e,n)}`).join(`
|
|
149
|
+
|
|
150
|
+
`)}\n`}var mZ=50;function hZ(e,t){let[n,r]=(0,g.useState)({kind:`loading`}),[i,a]=(0,g.useState)(!1),o=(0,g.useRef)(n);o.current=n;let s=(0,g.useRef)(!1),c=(0,g.useRef)(0),l=(0,g.useCallback)(n=>e.client.request(`output.read`,{taskId:t,limit:mZ,...n}),[e,t]),u=(0,g.useCallback)(async()=>{let e=++c.current;s.current=!0;try{let t=await l({});if(e!==c.current)return;if(t.source===`terminal`||!t.history){r({kind:`terminal`,tail:t.terminal?.tail??[]});return}let n=oZ($X,t.history.messages??[],t.history.firstIndex??0);r({kind:`ready`,transcript:n,cursor:t.cursor??null,older:t.olderCursor??null})}catch(t){e===c.current&&r({kind:`error`,message:G(t)})}finally{e===c.current&&(s.current=!1)}},[l]);(0,g.useEffect)(()=>(r({kind:`loading`}),u(),()=>{c.current++,s.current=!1}),[u]);let d=(0,g.useCallback)(async()=>{let e=o.current;if(s.current)return;if(e.kind===`terminal`)return u();if(e.kind!==`ready`||!e.cursor)return;let t=c.current;s.current=!0;try{let n=await l({cursor:e.cursor,source:`history`});if(t!==c.current)return;r(e=>e.kind===`ready`?{...e,transcript:oZ(e.transcript,n.history?.messages??[],n.history?.firstIndex??0),cursor:n.cursor??e.cursor}:e)}catch{t===c.current&&(s.current=!1,await u())}finally{t===c.current&&(s.current=!1)}},[l,u]);return{state:n,paging:i,loadOlder:(0,g.useCallback)(async()=>{let e=o.current;if(s.current||e.kind!==`ready`||!e.older)return;let t=c.current;s.current=!0,a(!0);try{let n=await l({cursor:e.older,source:`history`});if(t!==c.current)return;r(e=>e.kind===`ready`?{...e,transcript:oZ(e.transcript,n.history?.messages??[],n.history?.firstIndex??0),older:n.olderCursor??null}:e)}catch(e){t===c.current&&r({kind:`error`,message:G(e)})}finally{t===c.current&&(s.current=!1,a(!1))}},[l]),loadAll:(0,g.useCallback)(async()=>{let e=o.current;if(e.kind!==`ready`)return null;if(s.current||!e.older)return e.transcript;let t=c.current;s.current=!0,a(!0);let n=[],i=e.transcript;try{for(let r=e.older;r&&t===c.current;){let e=await l({cursor:r,source:`history`}),t={messages:e.history?.messages??[],firstIndex:e.history?.firstIndex??0};n.push(t),i=oZ(i,t.messages,t.firstIndex),r=e.olderCursor??null}return t===c.current?(r(e=>e.kind===`ready`?{...e,transcript:n.reduce((e,t)=>oZ(e,t.messages,t.firstIndex),e.transcript),older:null}:e),i):null}catch(e){return t===c.current&&r({kind:`error`,message:G(e)}),null}finally{t===c.current&&(s.current=!1,a(!1))}},[l]),refresh:d,reload:(0,g.useCallback)(()=>{r({kind:`loading`}),u()},[u])}}var gZ=3e3,_Z=80,vZ=2500;function yZ(e,t){let n=URL.createObjectURL(new Blob([t],{type:`text/markdown;charset=utf-8`})),r=document.createElement(`a`);r.href=n,r.download=e,r.click(),URL.revokeObjectURL(n)}var bZ=e=>{let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})};function xZ(e){let{entry:t}=e,n=z(t.role===`user`?`transcript.you`:t.role===`assistant`?`transcript.agent`:`transcript.system`);return(0,V.jsxs)(`article`,{className:QJ(e),"data-index":t.index,children:[(0,V.jsxs)(`header`,{className:$J,children:[(0,V.jsx)(`span`,{className:eY(t.role),children:n}),(0,V.jsx)(`span`,{className:tY,children:bZ(t.at)}),(0,V.jsx)(H,{className:nY,onClick:e.onCopy,children:z(`transcript.copy`)})]}),t.text!==``&&(0,V.jsx)(CY,{source:t.text,needle:e.needle}),t.tools.map((t,n)=>(0,V.jsxs)(`p`,{className:rY,title:`${t.name} ${t.summary}`,children:[(0,V.jsx)(`span`,{className:iY,children:_Y(t.name,e.needle)}),(0,V.jsx)(`span`,{className:aY,children:_Y(t.summary,e.needle)}),e.failed.has(t.callId)&&(0,V.jsx)(`span`,{className:`flex-none text-error`,children:z(`transcript.failed`)})]},n))]})}function SZ({model:e,task:t,active:n}){B();let r=hZ(e,t.id),{state:i}=r,[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(0),[l,u]=(0,g.useState)(null),d=(0,g.useRef)(null),f=(0,g.useRef)(!0),p=(0,g.useRef)(null),m=v(rj),h=i.kind===`ready`?i:null,_=(0,g.useMemo)(()=>h?.transcript.entries??[],[h?.transcript]),y=h?.transcript.failed??new Set,b=(0,g.useMemo)(()=>sZ(_,a),[_,a]),x=b.length===0?0:Math.min(s,b.length-1),S=b[x]??null,C=e=>{f.current=!1,d.current?.querySelector(`[data-index="${e}"]`)?.scrollIntoView({block:`center`})},w=t.rowStatus?.kind,T=w===`running`||w===`needs-input`,{refresh:E}=r;(0,g.useEffect)(()=>{n&&E()},[n,w,E]),(0,g.useEffect)(()=>{if(!n||!T)return;let e=setInterval(()=>void E(),gZ);return()=>clearInterval(e)},[n,T,E]),(0,g.useLayoutEffect)(()=>{let e=d.current;e&&(p.current?(e.scrollTop=p.current.top+(e.scrollHeight-p.current.height),p.current=null):f.current&&(e.scrollTop=e.scrollHeight))},[_]);let D=async()=>{let e=d.current;e&&(p.current={height:e.scrollHeight,top:e.scrollTop}),await r.loadOlder()};(0,g.useEffect)(()=>{if(!m||m.taskId!==t.id||!h||!n)return;let e=lZ(_,m.hit);e===null?h.older&&uZ(_,m.hit)?D():rj.set(null):(u(e),C(e),rj.set(null))},[m,h,_,n,t.id]),(0,g.useEffect)(()=>{if(l===null)return;let e=setTimeout(()=>u(null),vZ);return()=>clearTimeout(e)},[l]),(0,g.useEffect)(()=>{c(0);let e=sZ(_,a)[0];e!==void 0&&C(e)},[a]);let O=e=>{if(b.length===0)return;let t=(x+e+b.length)%b.length;c(t),C(b[t])},k=e=>{e.key===`Enter`&&!e.nativeEvent.isComposing?(e.preventDefault(),O(e.shiftKey?-1:1)):e.key===`Escape`&&a!==``&&(e.stopPropagation(),o(``))},A=e=>void navigator.clipboard.writeText(fZ(e,y)).then(()=>W(z(`transcript.copied`)),()=>W(z(`menu.copyFailed`),`error`)),j=async()=>{let e=await r.loadAll();if(!e)return;let n={user:z(`transcript.you`),assistant:z(`transcript.agent`),system:z(`transcript.system`)};yZ(`${t.label.replace(/[^\p{L}\p{N}]+/gu,`-`).replace(/^-|-$/g,``)||`conversation`}.md`,pZ(t.label,e.entries,e.failed,n))};return i.kind===`loading`?(0,V.jsx)(`div`,{className:KJ,children:(0,V.jsx)(`p`,{className:XJ,children:z(`transcript.loading`)})}):i.kind===`error`?(0,V.jsxs)(`div`,{className:KJ,children:[(0,V.jsx)(`p`,{className:`${XJ} text-error`,children:z(`transcript.error`,{error:i.message})}),(0,V.jsx)(`p`,{className:XJ,children:(0,V.jsx)(H,{onClick:r.reload,children:z(`transcript.retry`)})})]}):i.kind===`terminal`?(0,V.jsxs)(`div`,{className:KJ,children:[(0,V.jsx)(`p`,{className:XJ,children:z(`transcript.noHistory`)}),(0,V.jsx)(`pre`,{className:`${ZJ} min-h-0 flex-1 overflow-y-auto`,children:i.tail.join(`
|
|
151
|
+
`)})]}):(0,V.jsxs)(`div`,{className:KJ,children:[(0,V.jsxs)(`div`,{className:qJ,children:[(0,V.jsx)(`input`,{className:`${sn} ${JJ}`,value:a,placeholder:z(`transcript.findPlaceholder`),"aria-label":z(`transcript.findPlaceholder`),spellCheck:!1,autoComplete:`off`,onChange:e=>o(e.target.value),onKeyDown:k}),a.trim()!==``&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`whitespace-nowrap text-muted`,children:b.length===0?z(`transcript.findNone`):z(`transcript.findCount`,{at:x+1,total:b.length})}),(0,V.jsx)(H,{onClick:()=>O(-1),disabled:b.length===0,children:z(`transcript.prev`)}),(0,V.jsx)(H,{onClick:()=>O(1),disabled:b.length===0,children:z(`transcript.next`)})]}),(0,V.jsx)(H,{onClick:()=>void j(),disabled:_.length===0,children:z(`transcript.export`)})]}),(0,V.jsxs)(`div`,{ref:d,className:YJ,onScroll:e=>{let t=e.currentTarget;f.current=t.scrollHeight-t.scrollTop-t.clientHeight<_Z,t.scrollTop<_Z&&h?.older&&!r.paging&&D()},children:[h?.older&&(0,V.jsx)(`p`,{className:`m-0 px-3 py-2 font-mono text-meta text-subtle`,children:(0,V.jsx)(H,{onClick:()=>void D(),disabled:r.paging,children:z(`transcript.older`)})}),_.length===0&&(0,V.jsx)(`p`,{className:`m-0 px-3 py-2 font-mono text-meta text-subtle`,children:z(`transcript.empty`)}),_.map(e=>(0,V.jsx)(xZ,{entry:e,failed:y,needle:a,flash:l===e.index,current:S===e.index,onCopy:()=>A(e)},e.index))]})]})}var CZ={working:`review.scopeWorking`,branch:`review.scopeBranch`,task:`review.scopeTask`};function wZ(e){return e.kind===`file`?{text:yo(e.path),hint:e.path}:e.kind===`diff`?e.path===`.`?{text:z(CZ[e.scope]),hint:z(`preview.whole`)}:{text:yo(e.path),hint:e.path}:{text:z(`panel.${e.kind}`),hint:z(`panel.${e.kind}`)}}function TZ({taskId:e,kind:t,expand:n}){B();let r=v(Bo),i=z(r?`panel.restore`:`panel.expand`);return(0,V.jsxs)(V.Fragment,{children:[n&&(0,V.jsx)(`button`,{type:`button`,className:AK({tool:!0}),title:i,"aria-label":i,"aria-pressed":r,onClick:()=>Bo.set(!r),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:r?`M13.5 6.5h-4v-4M2.5 9.5h4v4M9.5 6.5l4-4M6.5 9.5l-4 4`:`M9.5 2.5h4v4M6.5 13.5h-4v-4M13.5 2.5l-4.5 4.5M2.5 13.5 7 9`})})}),(0,V.jsx)(`button`,{type:`button`,className:AK({tool:!0}),title:z(`panel.close`),"aria-label":z(`panel.close`),onClick:()=>bs(e,t),children:(0,V.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,children:(0,V.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`})})})]})}function EZ({taskId:e,column:t,narrow:n}){if(B(),t.kind===`browser`)return(0,V.jsxs)(`div`,{className:IK(n),children:[(0,V.jsx)(cq,{taskId:e,column:t}),!n&&(0,V.jsx)(TZ,{taskId:e,kind:`browser`,expand:!0})]});if(n&&t.kind!==`diff`)return null;let{text:r,hint:i}=wZ(t);return(0,V.jsxs)(`div`,{className:IK(n),children:[(0,V.jsx)(`span`,{className:LK,title:i,children:r}),(0,V.jsx)(TZ,{taskId:e,kind:t.kind,expand:!n})]})}function DZ({model:e,task:t,column:n}){let r=(0,g.useRef)([]);return r.current=po(r.current,n.active,n.tabs),n.tabs.filter(e=>r.current.includes(e.id)).map(r=>(0,V.jsx)(`div`,{className:KK,hidden:r.id!==n.active,children:(0,V.jsx)(Aq,{model:e,tab:r,onNavigate:e=>xs(t.id,t=>oo(t,r.id,e)),onStep:e=>xs(t.id,t=>so(t,r.id,e))})},r.id))}function OZ({model:e,task:t,column:n,narrow:r,restored:i}){return n.kind===`browser`?(0,V.jsx)(DZ,{model:e,task:t,column:n}):(0,V.jsxs)(`div`,{className:KK,children:[n.kind===`files`&&(0,V.jsx)(TJ,{model:e,task:t,narrow:r}),n.kind===`chat`&&(0,V.jsx)(SZ,{model:e,task:t,active:!0}),n.kind===`quota`&&(0,V.jsx)(Kq,{model:e,task:t,active:!0}),n.kind===`file`&&(0,V.jsx)(QX,{model:e,view:{taskId:t.id,path:n.path,scope:`working`,file:!0},active:!0,restored:i,onClose:()=>bs(t.id,`file`)},`${t.id}:file:${n.path}`),n.kind===`diff`&&(0,V.jsx)(QX,{model:e,view:{taskId:t.id,path:n.path,scope:n.scope},active:!0,restored:i,onClose:()=>bs(t.id,`diff`)},`${t.id}:${n.path}:${n.scope}`)]})}function kZ({taskId:e,kinds:t,index:n,body:r,slot:i}){B();let a=(0,g.useRef)(null);return(0,V.jsx)(`div`,{className:GK,style:{gridColumn:i},title:z(`panel.resizeSplit`),onPointerDown:e=>{let n=t.map(e=>r.current?.querySelector(`[data-kind="${e}"]`)?.getBoundingClientRect().width??0);a.current={x:e.clientX,widths:n},r.current?.classList.add(`is-resizing`),e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:t=>{let r=a.current;if(!r)return;let i=No(r.widths,n,t.clientX-r.x,220);ps(e,e=>jo(e,i))},onLostPointerCapture:()=>{a.current=null,r.current?.classList.remove(`is-resizing`)},onDoubleClick:()=>ps(e,Mo)})}function AZ({panel:e}){B();let t=(0,g.useRef)(null);return(0,V.jsx)(lq,{edge:`left`,title:z(`panel.resize`),onPointerDown:n=>{t.current={x:n.clientX,width:e.current?.getBoundingClientRect().width??0},e.current?.classList.add(`is-resizing`),n.currentTarget.setPointerCapture(n.pointerId),Nn(!0)},onPointerMove:e=>{let n=t.current;if(!n||e.clientX===n.x)return;let r=zU.get()?0:UU(RU.get()??280);Ro.set(Vo(n.width-(e.clientX-n.x),r))},onLostPointerCapture:()=>{t.current=null,e.current?.classList.remove(`is-resizing`),Nn(!1)},onDoubleClick:()=>Ro.set(null)})}var jZ=e=>e.kind===`diff`?`diff:${e.path}:${e.scope}`:e.kind===`file`?`file:${e.path}`:e.kind;function MZ({model:e,task:t,narrow:n}){B();let r=ds(t.id),i=v(Fo),a=v(Bo),o=(0,g.useRef)(null),s=(0,g.useRef)(null),c=i===`terminal`?`files`:i,l=n?vo(r,c):void 0;(0,g.useEffect)(()=>{n&&!l&&ps(t.id,e=>Co(e,c))},[n,l,c,t.id]);let u=n?l?[l]:[]:r.columns,d=u.map(e=>e.kind),f=(n?[1]:Ao(r)).map((e,t)=>`${t>0?`var(--divider) `:``}minmax(0, ${e}fr)`).join(` `),p=(0,g.useRef)(u.map(jZ));return(0,V.jsxs)(`aside`,{className:NK(n),ref:o,children:[!n&&!a&&(0,V.jsx)(AZ,{panel:o}),(0,V.jsxs)(`div`,{className:PK,ref:s,style:{gridTemplateColumns:f},children:[u.map(r=>(0,V.jsxs)(`section`,{className:FK,"data-kind":r.kind,style:{gridColumn:2*d.indexOf(r.kind)+1},children:[(0,V.jsx)(EZ,{taskId:t.id,column:r,narrow:n}),(0,V.jsx)(OZ,{model:e,task:t,column:r,narrow:n,restored:p.current.includes(jZ(r))})]},r.kind)),!n&&u.slice(1).map((e,n)=>(0,V.jsx)(kZ,{taskId:t.id,kinds:d,index:n,body:s,slot:2*n+2},`divider:${e.kind}`))]})]})}function NZ({model:e,task:t,remoteHost:n,narrow:r=!1}){let i=v(yn),a=fs(t?.id??null);return!r&&(i||!a)?null:t?(0,V.jsx)(MZ,{model:e,task:t,narrow:r},t.id):n?(0,V.jsx)(`aside`,{className:NK(!1),children:(0,V.jsx)(BD,{host:n,onMachines:()=>NA(e)})}):null}var PZ=1500;function FZ({model:e}){let t=e.client,n=v(t.conn),[r,i]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{if(n.state!==`connecting`)return i(!1);let e=window.setTimeout(()=>i(!0),PZ);return()=>window.clearTimeout(e)},[n.state]),n.state===`open`||n.state===`connecting`&&!r?null:(0,V.jsxs)(`footer`,{className:zt,children:[(0,V.jsx)(`span`,{className:Bt(n.state===`retrying`)}),(0,V.jsx)(`span`,{children:n.state===`retrying`?z(`status.retrying`,{count:n.failures}):z(`status.connecting`)}),n.state===`retrying`&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>t.retryNow(),children:z(`status.retry`)})]})}function IZ({model:e,taskId:t,groupId:n}){B();let r=v(e.tasks),i=r?ZI(r.tasks,n):[];return i.length<2||!i.some(e=>e.id===t)?null:(0,V.jsxs)(`nav`,{className:WL,"aria-label":z(`compare.menu`),children:[i.map((n,r)=>(0,V.jsxs)(H,{variant:`pill`,hit:`tight`,"aria-current":n.id===t,onClick:()=>e.select(n.id),children:[`[ `,(0,V.jsx)(dR,{status:n.rowStatus}),r+1,` `,n.engine?.name??n.label,n.kept&&(0,V.jsx)(`span`,{className:`text-accent`,children:`✓`}),` ]`]},n.id)),(0,V.jsx)(H,{hit:`tight`,className:`ml-auto flex-none whitespace-nowrap`,onClick:()=>Aa(n),children:z(`compare.strip`)})]})}var LZ=new Set,RZ=2e3;function zZ(e){LZ.add(e)}function BZ(e,t=RZ){setTimeout(()=>LZ.delete(e),t)}var VZ=e=>LZ.has(e),HZ=new Map,UZ=new Set,WZ=(e,t)=>`${e}/${t}`,GZ=e=>HZ.get(e)??``;function KZ(e,t){t===``?HZ.delete(e):HZ.set(e,t);for(let e of UZ)e()}function qZ(e){return UZ.add(e),()=>UZ.delete(e)}function JZ(e,t){let n=GZ(e).trimEnd();KZ(e,n===``?t:`${n}\n\n${t}`)}function YZ(e,t,n,r,i,a){let o=n.length-t.length;return{base:n,spans:[...e?.base===t?e.spans.filter(([e,t])=>t<=r||e>=i).map(([e,t])=>e>=i?[e+o,t+o]:[e,t]):[],a]}}async function XZ(e,t,n){if(n===t.base)return;let r;try{r=(await e.request(`voice.learn`,{base:t.base,spans:t.spans,sent:n})).learned??[]}catch{return}r.length!==0&&W(z(`voice.learned`,{pairs:r.map(e=>z(`voice.learnedPair`,{spoken:e.spoken,term:e.term})).join(`, `)}),`info`,{label:z(`voice.undo`),run:()=>void e.request(`voice.unlearn`,{learned:r}).then(()=>W(z(`voice.unlearned`)),()=>W(z(`voice.unlearnFailed`),`error`))})}function ZZ({model:e,taskId:t,tabId:n}){let r=v(e.tasks)?.tasks.find(e=>e.id===t)!==void 0,i=WZ(t,n),a=(0,g.useSyncExternalStore)(qZ,()=>GZ(i)),[o,s]=(0,g.useState)(!1),{attachments:c,attach:l,remove:u,clear:d}=Tc(e,e=>W(e,`error`)),f=(0,g.useRef)(null),p=aA(e.client),[m,h]=(0,g.useState)(!1),_=mk({value:a,onChange:e=>KZ(i,e),area:f,listClassName:`m-0`}),y=(0,g.useRef)(null),b=e=>{let t=f.current,n=t?.selectionStart??a.length,r=t?.selectionEnd??a.length,o=n>0&&!/\s$/.test(a.slice(0,n))?` `:``,s=`${a.slice(0,n)}${o}${e}${a.slice(r)}`;KZ(i,s);let c=n+o.length+e.length;y.current=YZ(y.current,a,s,n,r,[n+o.length,c]),requestAnimationFrame(()=>t?.setSelectionRange(c,c))},x=async e=>{let t=a.trim()?`${a.trimEnd()} ${e}`:e;await C(t)||KZ(i,t)},S=e=>void x(e),C=async(r=a)=>{let o=Cc(r.trim(),c).trim();if(!o)return!1;s(!0);try{let a=await e.client.request(`tab.send`,{taskId:t,tabId:n,prompt:o});return a.delivered?(KZ(i,``),d(),h(!1),y.current&&XZ(e.client,y.current,r),y.current=null,!0):(W(z(`layout.composerNotSent`,{reason:a.reason??``}),`error`),!1)}catch(e){let t=e instanceof Ov?e.code:void 0;return W(t===`UNKNOWN_OP`?z(`layout.composerOldBridge`):t===`AWAITING_PERMISSION`?z(`layout.composerAtMenu`):e instanceof Error?e.message:String(e),`error`),!1}finally{s(!1)}};if(!r)return null;let w=e=>void l(e),T={client:e.client,context:()=>({draft:a,taskId:t,tabId:n}),onText:e=>void b(e),disabled:o},E=p===!0&&!m&&a===``&&c.length===0,D=()=>{(0,DH.flushSync)(()=>h(!0)),f.current?.focus()};return(0,V.jsx)(Lk,{value:a,placeholder:z(`layout.composerPlaceholder`),sendLabel:z(`layout.composerSend`),busy:o,ready:a.trim()!==``||c.length>0,attached:(0,V.jsx)(Ec,{attachments:c,onRemove:u}),attach:(0,V.jsxs)(Sc,{className:Tk,title:z(`layout.composerAttach`),disabled:o,onFiles:w,children:[(0,V.jsx)(`span`,{className:`sr-only`,children:z(`layout.composerAttach`)}),(0,V.jsx)(jk,{})]}),dictate:(0,V.jsx)(oA,{...T,look:Ek,face:e=>(0,V.jsx)(Ik,{state:e})}),voice:E?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(oA,{...T,onSend:S,look:Dk,idle:z(`voice.hold`),face:e=>(0,V.jsx)(Fk,{state:e,idle:z(`voice.hold`),working:z(`voice.working`),slide:z(`voice.slideToSend`),release:z(`voice.tipSend`)})}),(0,V.jsx)(Mk,{label:z(`voice.type`),onClick:D})]}):void 0,composerKey:i,fieldRef:f,suggest:_.list,..._.field,onPaste:xc(w).onPaste,onSend:()=>void C()})}var QZ={up:`layout.termKeyUp`,down:`layout.termKeyDown`,left:`layout.termKeyLeft`,right:`layout.termKeyRight`,interrupt:`layout.termKeyInterrupt`,enter:`layout.termKeyEnter`};function $Z({handle:e,atMenu:t}){B();let[n,r]=(0,g.useState)(!1);(0,g.useEffect)(()=>{e.armCtrl(n?()=>r(!1):null)},[e,n]),(0,g.useEffect)(()=>()=>e.armCtrl(null),[e]);let{term:i}=e,a=e=>(0,V.jsx)(`button`,{type:`button`,className:ot(!1),"aria-label":QZ[e.id]?z(QZ[e.id]):void 0,onClick:()=>{r(!1),i.input(e.bytes(i.modes.applicationCursorKeysMode),!0)},children:e.cap},e.id);return(0,V.jsxs)(`div`,{className:`mono ${at}`,role:`toolbar`,"aria-label":z(`layout.termKeys`),onPointerDown:e=>e.preventDefault(),children:[t&&Wy.map(a),(0,V.jsx)(`button`,{type:`button`,className:ot(n),"aria-pressed":n,onClick:()=>r(!n),children:`ctrl`}),Hy.filter(e=>!(t&&Wy.includes(e))).map(a)]})}function eQ(e){switch(e.kind){case`restored`:return z(`workspace.restored`);case`notLive`:return z(`workspace.tabNotLive`);case`exited`:return z(`workspace.exited`,{code:e.code??`?`});case`failed`:return z(`workspace.attachFailed`,{message:e.message});case`none`:return``}}function tQ(e){B();let{notice:t,engineExit:n,model:r,taskId:i,tabId:a,revive:o}=e,s=t.kind===`none`?n:null,c=t.kind===`none`&&!s&&e.usageLimit===!0&&!o.error;if(t.kind===`none`&&!s&&!c)return null;let l=t.kind===`notLive`||t.kind===`restored`||t.kind===`exited`,u=t.kind===`exited`||s!==null,d=o.error?z(`workspace.reopenFailed`,{message:o.error}):s?z(`workspace.engineExited`,{code:s.code??`?`}):c?z(`workspace.usageLimit`):eQ(t);return(0,V.jsxs)(`div`,{className:Rt(t.kind===`failed`||!!o.error),children:[(0,V.jsx)(`span`,{children:d}),e.onReopen&&(l||s)&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,disabled:o.busy,onClick:()=>e.onReopen?.(s!==null),children:o.busy?z(`workspace.reopening`):z(s?`workspace.retry`:`workspace.reopen`)}),t.kind===`failed`&&e.onRetryAttach&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:e.onRetryAttach,children:z(`workspace.retry`)}),c&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(H,{variant:`link`,hit:`tight`,onClick:()=>U.set((0,V.jsx)(dT,{model:r,taskId:i,context:`continue`,sourceTabId:a})),children:z(`menu.continueEngine`)}),(0,V.jsx)(H,{variant:`link`,hit:`tight`,onClick:e.onDismissLimit,children:z(`workspace.dismiss`)})]}),u&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>U.set((0,V.jsx)(JF,{model:r,section:`engines`})),children:z(`workspace.engineSettings`)}),(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>U.set((0,V.jsx)(dT,{model:r,taskId:i})),children:z(`menu.newChatPick`)}),(0,V.jsx)(H,{variant:`link`,hit:`tight`,onClick:()=>U.set((0,V.jsx)(dT,{model:r,taskId:i,context:`continue`,sourceTabId:a})),children:z(`menu.continueEngine`)})]})]})}function nQ(e){let t=e.split(`
|
|
152
|
+
`).map(e=>e.trimEnd());for(;t[0]===``;)t.shift();for(;t.at(-1)===``;)t.pop();if(t.length===0)return null;let n=Math.max(0,...Array.from(t.join(`
|
|
153
|
+
`).matchAll(/`+/g),e=>e[0].length)),r="`".repeat(Math.max(3,n+1));return`${r}\n${t.join(`
|
|
154
|
+
`)}\n${r}\n`}function rQ(e){let t=document.querySelector(`[data-composer="${CSS.escape(e)}"]`);return t&&t.offsetParent!==null?t:null}function iQ(e,t,n,r){let i=nQ(e.term.getSelection());if(i===null)return!1;let a=WZ(t,n),o=rQ(a);if(o){JZ(a,i),e.term.clearSelection();let t=o.querySelector(`textarea`);return t?.focus(),t?.setSelectionRange(t.value.length,t.value.length),!0}return r?(W(z(`quote.atMenu`),`error`),!1):e.term.modes.bracketedPasteMode?(e.term.paste(i),e.term.clearSelection(),e.term.focus(),!0):(W(z(`quote.notReady`),`error`),!1)}async function aQ(e,t,n){let r=WR(n);r.length<n.length&&W(z(`layout.dropUnsupported`),`error`);for(let n of r)try{t.term.paste(`${await KR(e,n)} `)}catch(e){W(e instanceof Error?e.message:String(e),`error`)}t.term.focus()}async function oQ(){if(!navigator.clipboard?.read)throw Error(z(`layout.pasteNeedsHttps`));let e=[];for(let t of await navigator.clipboard.read())for(let n of t.types)(n.startsWith(`image/`)||n===`application/pdf`)&&e.push(new File([await t.getType(n)],`clipboard`,{type:n}));return WR(e)}async function sQ(e,t){let n;try{n=await oQ()}catch(e){W(z(`layout.pasteNoAccess`,{error:e instanceof Error?e.message:String(e)}),`error`);return}n.length===0?W(z(`layout.pasteNoImage`),`error`):await aQ(e,t,n)}async function cQ(e){try{return await navigator.clipboard.writeText(e),!0}catch{return W(z(`menu.copyFailed`),`error`),!1}}function lQ(e){let{client:t,taskId:n,tabId:r,leafId:i}=e,a=v(e.model.tasks)?.tasks.find(e=>e.id===n)?.tabStatus?.[r]?.kind===`needs-input`;B();let o=(0,g.useRef)(null),[s,c]=(0,g.useState)({kind:`none`}),[l,u]=(0,g.useState)(null),[d,f]=(0,g.useState)(0),[p,m]=(0,g.useState)({busy:!1,error:null}),h=(0,g.useRef)(e);h.current=e,(0,g.useEffect)(()=>{let e=o.current;if(!e)return;let a=null,s=!1,l=[document.fonts.load(`13px "JetBrains Mono"`),document.fonts.load(`bold 13px "JetBrains Mono"`)];document.fonts.load(`13px "${cy}"`,String.fromCodePoint(57504)).catch(()=>{});let d=()=>{s||(a=IE({client:t,host:e,taskId:n,tabId:r,leafId:i,focusOnMount:h.current.focused!==!1},{setNotice:c,onScrolled:f,onFocusChange:e=>{if(!a)return;let{stream:t}=a.handle;e?(h.current.onActivate?.(),ga.set(va(t)??null)):ga.get()?.stream===t&&ga.set(null)},onExit:()=>{VZ(Kw(n,r,i))||h.current.onExit?.()},copyText:cQ,pasteImage:async()=>{a&&await sQ(t,a.handle)}}),u(a.handle))};return FE(t,n,r,i)?d():Promise.allSettled(l).then(d),()=>{s=!0,u(null),a?.release()}},[t,n,r,i]);let[_,y]=(0,g.useState)(!1);(0,g.useEffect)(()=>{if(!l)return;y(l.term.hasSelection());let e=l.term.onSelectionChange(()=>y(l.term.hasSelection()));return()=>{e.dispose(),y(!1)}},[l]),(0,g.useEffect)(()=>{if(!l)return;let{term:e,stream:a}=l,o={stream:a,focus:()=>e.focus(),input:t=>e.input(t,!0),reattach:()=>l.reattach(),scrollPages:e=>l.scrollLines(e*10),hasSelection:()=>e.hasSelection(),copySelection:()=>{let t=e.getSelection();return t.trim().length!==0&&(cQ(t),e.clearSelection(),!0)},reset:()=>{let o={cols:e.cols,rows:e.rows};U.set((0,V.jsx)(xr,{title:Zs(`reset.title`),body:Zs(`reset.body`),confirmLabel:z(`workspace.reset`),onConfirm:async()=>{zZ(a);try{await t.request(`tab.split`,{taskId:n,tabId:r,action:`reset`,leafId:i??`leaf-1`,...o}),await l.reattach(),e.focus()}finally{BZ(a)}}}))},size:()=>({cols:e.cols,rows:e.rows})},s=_a(o);return document.activeElement===e.textarea&&ga.set(o),()=>{s()}},[l,t,n,r,i]),(0,g.useEffect)(()=>{e.focused&&l&&document.activeElement!==l.term.textarea&&l.term.focus()},[e.focused,l]);let b=!i||i===`leaf-1`,[x,S]=(0,g.useState)(null),C=e.engineExit?.since===x,[w,T]=(0,g.useState)(null),E=e.usageLimit&&e.usageLimit.since!==w?e.usageLimit:null,D=(0,g.useRef)(!1),O=async(i,a)=>{if(!D.current){D.current=!0,m({busy:!0,error:null});try{await t.request(`term.revive`,{taskId:n,tabId:r,...a?{restartExited:a}:{}}),await i.reattach(),i.term.focus(),S(e.engineExit?.since??null),m({busy:!1,error:null})}catch(e){m({busy:!1,error:e instanceof Error?e.message:String(e)})}finally{D.current=!1}}};return(0,V.jsxs)(`div`,{className:Mt,"data-stream":Kw(n,r,i),onDragOver:e=>e.dataTransfer.types.includes(`Files`)&&e.preventDefault(),onDrop:e=>{!e.dataTransfer.files.length||!l||(e.preventDefault(),aQ(t,l,Array.from(e.dataTransfer.files)))},onPasteCapture:e=>{if(!l)return;let n=WR(e.clipboardData.files);(n.length!==0||e.clipboardData.getData(`text/plain`)===``)&&(e.preventDefault(),e.stopPropagation(),n.length>0?aQ(t,l,n):sQ(t,l))},children:[(0,V.jsxs)(`div`,{className:Nt,children:[(0,V.jsx)(`div`,{className:Pt,ref:o}),(0,V.jsx)(tQ,{notice:s,engineExit:C?null:e.engineExit??null,model:e.model,taskId:n,tabId:r,revive:p,onReopen:b&&l?e=>void O(l,e):void 0,onRetryAttach:l?()=>void l.reattach():void 0,usageLimit:E!==null,onDismissLimit:E?()=>T(E.since):void 0}),_&&e.composer&&l&&(0,V.jsx)(H,{variant:`floating`,className:`absolute top-2.5 right-2.5 z-4`,title:z(`quote.title`),onClick:()=>iQ(l,n,r,a),children:z(`quote.action`)}),d>0&&l&&(0,V.jsxs)(`div`,{className:`mono absolute right-2.5 bottom-2.5 z-4 flex gap-3 rounded-sm border-hairline border-line bg-inset px-2.5 py-1 text-meta`,children:[(0,V.jsx)(`span`,{className:`text-warning`,children:Zs(`scrolledBack`,{lines:d})}),(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>l.scrollToTop(),children:Zs(`scrollFirst`)}),(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>l.scrollToBottom(),children:Zs(`scrollLatest`)})]})]}),e.composer&&(0,V.jsx)(ZZ,{model:e.model,taskId:n,tabId:r}),l&&(0,V.jsx)($Z,{handle:l,atMenu:a})]})}var uQ=e=>ZH(e)!==null,dQ=e=>qT(ZH(e)?.tab.split);function fQ(e){let t=ZH(e),n=t?.tab.split;return t&&n?{...t,split:n,leaf:JH(t.taskId,t.tab,n)}:null}sa(()=>[{id:`workspace.split.right`,chords:[`ctrl+\\`],prefix:!1,surface:`workspace`,live:uQ,run:e=>{let t=ZH(e);t&&$H(e,t.taskId,t.tab,`right`)}},{id:`workspace.split.down`,chords:[`ctrl+=`],prefix:!1,surface:`workspace`,live:uQ,run:e=>{let t=ZH(e);t&&$H(e,t.taskId,t.tab,`down`)}},{id:`workspace.split.focus-next`,chords:[`f3`],prefix:!1,surface:`workspace`,live:dQ,run:e=>{let t=fQ(e);t&&XH(t.taskId,t.tab,t.split,YT(t.split,t.leaf))}},{id:`workspace.split.close`,chords:[`w`],prefix:!0,surface:`workspace`,live:dQ,run:e=>{let t=fQ(e);t&&eU(e,t.taskId,t.tab,t.leaf)}},{id:`workspace.split.rename`,chords:[`f2`],prefix:!1,surface:`workspace`,live:dQ,run:e=>{let t=fQ(e);t&&tU(e,t.taskId,t.tab,t.leaf)}}]);var pQ=[{id:`leaf-1`,x:0,y:0,w:1,h:1,left:!1,top:!1}];function mQ({model:e,taskId:t,tab:n}){let r=n.split;v(qH);let i=r?JH(t,n,r):`leaf-1`,a=r?XT(r,WT(n)):new Map,o=qT(r),{prefs:s}=ty(),c=v(e.tasks)?.tasks.find(e=>e.id===t)?.tabStatus?.[n.id]??n.status,l=n.kind===`engine`&&c?.reason===`dead`?c.since:null;(0,g.useEffect)(()=>{l!==null&&e.refreshTabsNow()},[l,e]);let u=l!==null&&n.alive!==!1?{code:n.exit?.code??null,since:l}:null,d=n.kind===`engine`&&c?.reason===`rate_limited`?{since:c.since}:null;return(0,V.jsx)(`div`,{className:et,children:(r?JT(r.root):pQ).map(c=>(0,V.jsxs)(`div`,{className:rt(o?s.splitStyle:null,{left:c.left,top:c.top,active:c.id===i}),style:{left:`calc(${c.x*100}% + var(--ml, 0px))`,top:`calc(${c.y*100}% + var(--mt, 0px))`,width:`calc(${c.w*100}% - var(--ml, 0px))`,height:`calc(${c.h*100}% - var(--mt, 0px))`},children:[(0,V.jsx)(lQ,{client:e.client,model:e,engineExit:c.id===`leaf-1`?u:null,usageLimit:c.id===`leaf-1`?d:null,composer:n.kind===`engine`&&c.id===`leaf-1`,taskId:t,tabId:n.id,leafId:c.id,focused:c.id===i,onActivate:()=>r&&YH(t,n.id,r,c.id),onExit:()=>{o?QH(e,{taskId:t,tabId:n.id,action:`close`,leafId:c.id}):n.kind!==`engine`&&e.client.request(`tab.close`,{taskId:t,tabId:n.id}).then(()=>e.refreshTabsNow()).catch(()=>{})}}),o&&(0,V.jsx)(`span`,{className:it(s.splitStyle===`rule`,c.id===i),onContextMenu:r=>CK(r,iU(e,t,n,c.id)),children:a.get(c.id)})]},c.id))})}var hQ=/^[0-9a-f]{7,40}$/i;function gQ(e,t){return t.sharesWorkspaceOf||!t.baseRef?null:e.find(e=>e.id!==t.id&&e.branch!==``&&e.branch===t.baseRef)||(hQ.test(t.baseRef)&&t.parentTaskId?e.find(e=>e.id===t.parentTaskId)??null:null)}function _Q(e,t){let n=[];for(let r=gQ(e,t);r&&n.length<20&&!n.includes(r);r=gQ(e,r))n.unshift(r);let r=e.filter(n=>!n.deleting&&gQ(e,n)?.id===t.id).sort((e,t)=>(e.createdAt??``).localeCompare(t.createdAt??``));if(n.length===0&&r.length===0)return null;let i=n[0]??t,a=i.baseRef&&!hQ.test(i.baseRef)?i.baseRef:null;return{nodes:[...n,t,...r],at:n.length,base:a}}var vQ=e=>e.pr?.lifecycle===`merged`;function yQ(e){return e.nodes.find(e=>!vQ(e))??null}function bQ({model:e,taskId:t}){B();let n=v(e.tasks)?.tasks??[],r=n.find(e=>e.id===t),i=r?_Q(n,r):null;if(!i)return null;let a=yQ(i);return(0,V.jsxs)(`nav`,{className:WL,"aria-label":z(`compare.stackLabel`),children:[i.base&&(0,V.jsxs)(`span`,{className:`text-subtle`,children:[i.base,` ←`]}),i.nodes.map((n,r)=>(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-x-3.5`,children:[r>0&&(0,V.jsx)(`span`,{className:`text-subtle`,children:`←`}),(0,V.jsxs)(H,{variant:`pill`,hit:`tight`,"aria-current":n.id===t,onClick:()=>e.select(n.id),children:[`[ `,(0,V.jsx)(dR,{status:n.rowStatus}),n.label||n.title,vQ(n)?(0,V.jsx)(`span`,{className:`text-accent`,children:`✓`}):n.pr?.number?(0,V.jsx)(`span`,{children:`PR`}):null,` ]`]})]},n.id)),a&&!a.machine&&(0,V.jsx)(H,{hit:`tight`,className:`ml-auto flex-none whitespace-nowrap`,onClick:()=>void nI(e,a),children:z(`compare.landBottom`)})]})}function xQ(e,t){return e===`never`?!1:e!==`multipleOnly`||t>=2}function SQ({taskId:e}){B();let t=ds(e),n=v(yn),r=fs(e)&&!n;return(0,V.jsx)(`div`,{className:WK,children:Po.map(n=>{let i=r&&!!vo(t,n);return(0,V.jsx)(`button`,{type:`button`,className:AK({on:i}),title:z(`panel.${n}`),"aria-label":z(`panel.${n}`),"aria-pressed":i,onClick:()=>hs(e,n),children:(0,V.jsx)(QK,{children:$K[n]})},n)})})}function CQ({model:e,task:t,tabs:n,narrow:r}){let i=v(e.selection),{prefs:a}=ty(),o=!xQ(a.tabStrip,n.length);return(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-0.5 font-mono text-meta/body transition-padding-left duration-220 ease-snap motion-reduce:transition-none rail-folded:min-h-6.5 rail-folded:pl-23`,role:`tablist`,children:[n.map((n,r)=>(0,V.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":n.id===i.tabId,className:`group/tab flex items-center gap-1.5 whitespace-nowrap rounded-sm px-2.5 py-1 active:scale-97 motion-reduce:active:scale-none touch:select-none touch:touch-callout-none ${o?`hidden`:``} ${n.id===i.tabId?`bg-inset text-ink`:`text-muted hover:bg-hover data-menu-open:bg-hover`}`,onClick:()=>e.select(t.id,n.id),onContextMenu:r=>CK(r,un(xU(e,t,n),z(`menu.more`))),children:[(0,V.jsx)(`span`,{className:`text-subtle group-aria-selected/tab:text-accent`,children:r+1}),WT(n)]},n.id)),!r&&(0,V.jsx)(SQ,{taskId:t.id})]})}function wQ(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??e))}function TQ({model:e}){let t=B()===`zh`?Yr:Jr,n=e.client,[r,i]=(0,g.useState)(()=>(q(n,`worktrees.list`,{network:!0})??q(n,`worktrees.list`,{network:!1}))?.projects??null),[a,o]=(0,g.useState)([]),[s,c]=(0,g.useState)(0),[l,u]=(0,g.useState)(0),d=(0,g.useRef)(null);(0,g.useEffect)(()=>{let e=!0,t=!1,r=r=>sl(n,`worktrees.list`,{network:r}).then(n=>{if(!(!e||!r&&t)&&(r&&(t=!0),i(n.projects),r)){let e=new Set(n.projects.flatMap(e=>e.worktrees.map(e=>e.path)));o(t=>t.filter(t=>e.has(t)))}}).catch(()=>{});return r(!1),r(!0),()=>{e=!1}},[n,l]),(0,g.useEffect)(()=>d.current?.focus(),[]);let f=(r??[]).map(e=>({...e,worktrees:e.worktrees.filter(e=>!a.includes(e.path))})),p=f.flatMap(e=>e.worktrees),m=Math.min(s,Math.max(0,p.length-1));(0,g.useEffect)(()=>{d.current?.querySelector(`[data-row="${m}"]`)?.scrollIntoView({block:`nearest`})},[m]);let h=(0,g.useCallback)(()=>u(e=>e+1),[]),_=async(e,r)=>{o(t=>[...t,e.path]);try{let i=await n.request(`worktrees.remove`,{path:e.path,force:r});i.residue&&W(wQ(t.delete.residue,i.residue)),h()}catch(n){o(t=>t.filter(t=>t!==e.path));let i=n&&typeof n==`object`&&`code`in n?n.code:null;if(!r&&i===`DIRTY_WORKTREE`){U.set((0,V.jsx)(xr,{title:t.delete.forceTitle,body:`${wQ(t.delete.forceBody,{branch:e.branch||e.path})}\n\n${wQ(t.delete.forceReason,{reason:G(n)})}`,confirmLabel:t.delete.button,onConfirm:()=>_(e,!0)}));return}W(wQ(t.delete.failed,{error:G(n)}),`error`)}},v=e=>U.set((0,V.jsx)(xr,{title:t.delete.confirmTitle,body:wQ(t.delete.confirmBody,{branch:e.branch||e.path}),confirmLabel:t.delete.button,onConfirm:async()=>{_(e,!1)}})),y=n=>{if(!n.taskId){W(t.land.noTask,`error`);return}nI(e,{id:n.taskId,title:n.branch,branch:n.branch},h)},b=e=>{if(e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key.toLowerCase()===`c`&&!window.getSelection()?.toString())return e.preventDefault(),hn.set(null);if(e.metaKey||e.ctrlKey||e.altKey)return;let t=p[m];if(e.key===`j`||e.key===`ArrowDown`)c(Math.min(p.length-1,m+1));else if(e.key===`k`||e.key===`ArrowUp`)c(Math.max(0,m-1));else if(e.key===`d`&&t)v(t);else if(e.key===`l`&&t)y(t);else if(e.key===`q`||e.key===`Escape`)hn.set(null);else return;e.preventDefault()},x=0;return(0,V.jsxs)(`div`,{className:yN,tabIndex:0,ref:d,onKeyDown:b,children:[(0,V.jsx)(`h1`,{className:bN,children:t.title}),r===null?(0,V.jsx)(`p`,{className:`text-muted`,children:t.loading}):f.length===0?(0,V.jsx)(`p`,{className:`text-muted`,children:t.noProjects}):f.map(e=>{let n=x;return x+=e.worktrees.length,(0,V.jsxs)(`section`,{className:oN,children:[(0,V.jsxs)(`h2`,{className:`mt-1.5 mr-2 mb-1 ml-0 flex items-center gap-1 font-mono text-meta font-semibold normal-nums text-subtle`,children:[(0,V.jsx)(`span`,{children:e.repo}),(0,V.jsx)(`span`,{className:`rule`})]}),e.worktrees.length===0&&(0,V.jsx)(`p`,{className:`mono text-muted`,children:t.noWorktrees}),e.worktrees.map((e,r)=>{let i=n+r;return(0,V.jsxs)(`div`,{"data-row":i,className:sN(i===m),onClick:()=>c(i),children:[(0,V.jsxs)(`div`,{className:cN,children:[(0,V.jsx)(`span`,{className:uN,children:e.branch||t.row.detached}),e.roveManaged&&(0,V.jsx)(`span`,{className:`chip text-muted`,children:t.badge.roveManaged}),e.dirty===!0&&(0,V.jsx)(`span`,{className:`chip text-warning`,children:t.badge.dirty}),e.dirty===null&&(0,V.jsx)(`span`,{className:`chip text-muted`,children:t.badge.dirtyUnknown}),(0,V.jsx)(`span`,{className:`chip ${e.branchOnRemote===!0?`text-success`:e.branchOnRemote===!1?`text-warning`:`text-muted`}`,children:e.branchOnRemote===!0?t.badge.remoteOn:e.branchOnRemote===!1?t.badge.remoteOff:t.badge.remoteUnknown}),e.verdictReason!==`dirty`&&e.verdictReason!==`fresh`&&(0,V.jsx)(`span`,{className:`chip ${e.verdict===`merged`?`text-success`:e.verdict===`stale`?`text-warning`:`text-accent`}`,children:t.verdict[e.verdictReason]??e.verdictReason})]}),(0,V.jsxs)(`div`,{className:`${lN} mono text-muted`,children:[(0,V.jsx)(`span`,{className:dN,children:e.path}),e.createdAtMs>0&&(0,V.jsx)(`span`,{children:wQ(t.row.created,{age:cc(Date.now()-e.createdAtMs)})})]}),i===m&&(0,V.jsxs)(`div`,{className:`flex items-baseline gap-2 text-[length:var(--fs-body)]`,children:[(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>v(e),children:t.delete.button}),e.taskId&&(0,V.jsx)(`button`,{type:`button`,className:`link text-accent [&:hover]:underline touch-hit`,onClick:()=>y(e),children:t.land.button})]})]},e.path)})]},e.repo)}),(0,V.jsx)(`p`,{className:`${fN} mono keys-only text-muted`,children:(0,V.jsx)(YE,{text:`j/k · d ${t.delete.button} · l ${t.land.button} · q/esc`})})]})}function EQ({model:e,narrow:t}){let n=v(e.selection),r=v(e.tabs),i=v(e.tasks),a=v(e.remote),o=a.find(e=>e.id===n.taskId&&!e.machine?.stale),s=Ji(i,n.taskId)??o??null,c=o?void 0:a.find(e=>e.id===n.taskId),l=s?r[s.id]??[]:[],u=s?s.id in r:!1,d=v(hn),f=uP(s?.id),p=s?.rowStatus?.kind===`running`,m=v(bn),h=v(Fo)!==`terminal`&&t&&!!s;return(0,g.useEffect)(()=>{let t=e.selection.get();return e.selection.subscribe(()=>{bn.set(null);let n=e.selection.get();(n.taskId!==t.taskId||n.tabId!==t.tabId)&&Fo.set(`terminal`),t=n})},[e]),(0,g.useEffect)(()=>YI(e),[e]),d===`update`?(0,V.jsxs)(`main`,{className:`${kt} ${Ke}`,children:[t&&(0,V.jsx)(hq,{}),(0,V.jsx)(UN,{client:e.client})]}):d===`worktrees`?(0,V.jsxs)(`main`,{className:`${kt} ${Ke}`,children:[t&&(0,V.jsx)(hq,{}),(0,V.jsx)(TQ,{model:e})]}):d?(0,V.jsxs)(`main`,{className:`${kt} ${Ke}`,children:[t&&(0,V.jsx)(hq,{}),(0,V.jsx)(EH,{model:e,page:d})]}):m?(0,V.jsxs)(`main`,{className:`${kt} ${Ke}`,children:[t&&(0,V.jsx)(hq,{}),(0,V.jsx)(`div`,{className:At,children:(0,V.jsx)(dA,{model:e,seed:m},`${m.machine??``}\0${m.repo??``}\0${m.ungrouped?`u`:``}\0${m.retryOf?.id??``}`)})]}):(0,V.jsxs)(`main`,{className:`${kt} ${Ke}`,children:[t&&(0,V.jsx)(hq,{taskId:s?.id}),s&&(0,V.jsx)(CQ,{model:e,task:s,tabs:l,narrow:t}),s&&!s.groupId&&(0,V.jsx)(bQ,{model:e,taskId:s.id}),s?.groupId&&(0,V.jsx)(IZ,{model:e,taskId:s.id,groupId:s.groupId}),(0,V.jsxs)(`div`,{className:`${At} ${p?jt:``}`,style:f?{"--task-ink":f}:void 0,children:[!t&&!s&&!c&&i&&i.tasks.length+a.length===0&&(0,V.jsx)(SK,{model:e}),!s&&!c&&i&&i.tasks.length+a.length>0&&(0,V.jsx)(`p`,{className:Dt,children:z(`workspace.pickTask`)}),c?.machine&&(0,V.jsx)(`div`,{className:Ot,children:(0,V.jsx)(BD,{host:c.machine.label,onMachines:()=>NA(e)})}),s&&u&&l.length===0&&!h&&(0,V.jsxs)(`div`,{className:Ot,children:[(0,V.jsx)(`p`,{children:z(`workspace.noTabs`)}),(0,V.jsx)(H,{variant:`filled`,onClick:()=>void oT(e,s.id,{kind:`engine`}).catch(e=>W(String(e),`error`)),children:s.engine?z(`workspace.startEngine`,{engine:s.engine.name}):z(`workspace.startSession`)}),` `,(0,V.jsx)(H,{variant:`filled`,onClick:()=>void aT(e,s.id),children:z(`menu.newChat`)}),` `,(0,V.jsx)(H,{variant:`filled`,onClick:()=>U.set((0,V.jsx)(dT,{model:e,taskId:s.id})),children:z(`menu.newChatPick`)})]}),s&&h&&(0,V.jsx)(NZ,{model:e,task:s,narrow:!0}),s&&n.tabId&&l.some(e=>e.id===n.tabId)&&(0,V.jsx)(`div`,{className:`min-w-0 flex-1 ${h?`hidden`:`flex`}`,children:(0,V.jsx)(mQ,{model:e,taskId:s.id,tab:l.find(e=>e.id===n.tabId)??l[0]},`${s.id}::${n.tabId}`)})]})]})}function DQ({model:e}){B();let t=v(e.client.conn);return t.hello===null&&t.failures>=2?(0,V.jsx)(OQ,{}):(0,V.jsx)(kQ,{model:e})}function OQ(){let[e,t]=(0,g.useState)(null);return(0,g.useEffect)(()=>{Va().then(t)},[]),e===null?null:e?(0,V.jsx)(Ga,{}):(0,V.jsx)(ln,{failing:!0})}function kQ({model:e}){EI(e);let t=v(e.client.conn).hello;(0,g.useEffect)(()=>{t&&(VN(e.client),qN(e.client,t.roveVersion))},[t,e.client]),fE(e),lE(e),Ca(),ui(e.client),FI(e),Ci(e.client),PP(e.client),(0,g.useEffect)(()=>{e.onSelect=Da;let t=bn.subscribe(()=>{bn.get()!==null&&Da()});return Cn(),t},[e]),(0,g.useEffect)(()=>pF(e),[e]);let n=v(yn),r=v(e.selection),i=v(e.tasks),a=v(e.remote),o=Fa(),s=v(zU),c=v(BU),l=v(RU),u=v(Ea),d=v(Ro),f=v(Bo),p=v(hn),m=v(An)===`drag`,h=v(bn)!==null,_=a.find(e=>e.id===r.taskId&&!e.machine?.stale),y=Ji(i,r.taskId)??_??null,b=_?void 0:a.find(e=>e.id===r.taskId),x=fs(y?.id??null),S=ds(y?.id??``).columns.length,C=o?Ia(u,!!y||!!b,p!==null||h):null;(0,g.useEffect)(()=>e.setTaskShown(C===null||C===`content`&&p===null&&!h),[e,C,p,h]);let w=UU(l??280),T=s?0:w,E=d===null?Ho(S,T):Vo(d,T),D={"--rail-w":`${s?0:w}px`,"--rail-open-w":`${w}px`,"--panel-w":E===null?void 0:`${E}px`};return(0,V.jsxs)(`div`,{className:Ue,children:[(0,V.jsx)(Ti,{onRefresh:()=>wi(e.client)}),(0,V.jsxs)(`div`,{className:We({zen:n||!x||!y&&!b||o,expanded:f&&!n&&!o,surface:C,folded:s&&!o,peek:s&&c&&!o,dragging:m}),style:o?void 0:D,children:[!o&&(0,V.jsx)(pq,{model:e}),s&&!o&&(0,V.jsx)(`div`,{className:`absolute inset-y-0 left-0 z-5 col-1 row-1 w-2.5`,onMouseEnter:()=>HU(!0),onMouseLeave:()=>HU(!1)}),(0,V.jsx)(wK,{model:e,narrow:o}),(0,V.jsx)(EQ,{model:e,narrow:o}),!o&&(0,V.jsx)(NZ,{model:e,task:y,remoteHost:b?.machine?.label}),(0,V.jsx)(FZ,{model:e}),(0,V.jsx)(Za,{}),(0,V.jsx)(jI,{model:e}),(0,V.jsx)(Qi,{model:e})]})]})}var AQ=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`;function jQ(e){return[...e.querySelectorAll(AQ)].filter(e=>e.tabIndex>=0&&e.offsetParent!==null)}function MQ(){window.addEventListener(`keydown`,e=>{if(e.key!==`Tab`||e.defaultPrevented||e.ctrlKey||e.metaKey||e.altKey)return;let t=[...document.querySelectorAll(`.overlay:not(.is-leaving)`)].at(-1);if(!t)return;let n=jQ(t);if(n.length===0)return;let r=document.activeElement,i=r instanceof HTMLElement&&t.contains(r),a=e.shiftKey?n.filter(e=>i&&!!(r.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)).at(-1)??n.at(-1):n.find(e=>i&&!!(r.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING))??n[0];e.preventDefault(),a?.focus()})}function NQ(e){if(!Dn())for(let t of document.querySelectorAll(`${e}:not(.is-leaving)`)){let e=t.cloneNode(!0);e.classList.add(`is-leaving`),e.inert=!0,e.setAttribute(`aria-hidden`,`true`),document.body.append(e);let n=t.querySelectorAll(`*`),r=e.querySelectorAll(`*`);n.forEach((e,t)=>{let n=r[t];e.scrollTop&&(n.scrollTop=e.scrollTop),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(n.value=e.value)}),window.setTimeout(()=>e.remove(),200)}}function PQ(e){for(let t of document.querySelectorAll(`${e}.is-leaving`))t.remove()}function FQ(){for(let e of document.querySelectorAll(`.overlay:not(.is-leaving)`))for(let t of e.getAnimations())t instanceof CSSAnimation&&t.animationName===`fade-in`&&t.finish()}function IQ(){let e=U.get(),t=-1/0;U.subscribe(()=>{let n=U.get();if(n===null&&e!==null)t=performance.now(),NQ(`.overlay`);else if(n!==null){let n=e!==null||performance.now()-t<140;PQ(`.overlay`),n&&requestAnimationFrame(FQ)}e=n});let n=fn.get();fn.subscribe(()=>{let e=fn.get();e===null&&n!==null?NQ(`.menu`):e!==null&&PQ(`.menu`),n=e});let r=xE.get().guide;xE.subscribe(()=>{let e=xE.get().guide;e===null&&r!==null?NQ(`.prefix-guide`):e!==null&&PQ(`.prefix-guide`),r=e})}var LQ=500,RQ=10,zQ=`input, textarea, select, [contenteditable], .xterm`,BQ=[`mousedown`,`mouseup`,`click`,`contextmenu`];function VQ(){let e=null,t=()=>{e&&window.clearTimeout(e.timer),e=null},n=()=>{let e=e=>{e.preventDefault(),e.stopPropagation()},t=()=>{for(let t of BQ)document.removeEventListener(t,e,!0);document.removeEventListener(`pointerdown`,t,!0),document.removeEventListener(`keydown`,t,!0)};for(let t of BQ)document.addEventListener(t,e,!0);document.addEventListener(`pointerdown`,t,!0),document.addEventListener(`keydown`,t,!0)};document.addEventListener(`pointerdown`,r=>{if(t(),r.pointerType!==`touch`||!(r.target instanceof Element)||r.target.closest(zQ))return;let i=r.target,a={x:r.clientX,y:r.clientY,native:!1,timer:window.setTimeout(()=>{e=null,!(a.native||!i.isConnected)&&(i.dispatchEvent(new MouseEvent(`contextmenu`,{bubbles:!0,cancelable:!0,clientX:a.x,clientY:a.y,button:2})),n())},LQ)};e=a},!0),document.addEventListener(`pointermove`,n=>{e&&Math.hypot(n.clientX-e.x,n.clientY-e.y)>RQ&&t()},!0),document.addEventListener(`pointerup`,t,!0),document.addEventListener(`pointercancel`,t,!0),document.addEventListener(`contextmenu`,t=>{e&&t.isTrusted&&(e.native=!0)},!0)}function HQ(e,t){e.viewingExtras=()=>Go({narrow:Na(),panelOpen:zo.get(),zen:yn.get()});let n=()=>e.reportViewing();zo.subscribe(n),yn.subscribe(n),Pa(n),t.on(`panel`,t=>{Wo(t)&&Cs(t,e.selection.get().taskId)})}function UQ(e){let t=e;return!!t&&typeof t.promptId==`string`&&typeof t.title==`string`}function WQ({client:e,prompt:t}){let n=(B()===`zh`?Tr:wr).prompt,[r,i]=(0,g.useState)(t.initial??``),a=(0,g.useRef)(!1),{busy:o,error:s,submit:c}=yr();return(0,g.useEffect)(()=>()=>{a.current||e.request(`ui.promptReply`,{promptId:t.promptId}).catch(()=>{})},[e,t.promptId]),(0,V.jsx)(vr,{title:t.title,children:(0,V.jsxs)(`form`,{className:Wn,onSubmit:n=>{n.preventDefault(),c(async()=>{await e.request(`ui.promptReply`,{promptId:t.promptId,value:r}),a.current=!0})},children:[(0,V.jsx)(`input`,{className:sn,"aria-label":n.fieldLabel,autoFocus:!0,spellCheck:!1,value:r,placeholder:t.placeholder,onChange:e=>i(e.target.value)}),s&&(0,V.jsx)(`p`,{className:`text-error`,children:s}),(0,V.jsx)(Cr,{busy:o,submitLabel:n.submitLabel})]})})}function GQ(e,t){U.get()||U.set((0,V.jsx)(WQ,{client:e,prompt:t},t.promptId))}var KQ=`rove-web.reloadedFor`;function qQ(e,t,n){return e===null?`adopt`:t===e||t===n?`stay`:`reload`}function JQ(){let e=null;try{e=window.sessionStorage}catch{}return{storage:e,reload:()=>window.location.reload()}}function YQ(e,t=JQ()){let n=null,r=null,i=()=>{try{return t.storage?.getItem(KQ)??r}catch{return r}};return e.conn.subscribe(()=>{let{state:a,hello:o}=e.conn.get();if(a!==`open`||!o)return;let s=qQ(n,o.roveVersion,i());if(s===`adopt`&&(n=o.roveVersion),s===`reload`){r=o.roveVersion;try{t.storage?.setItem(KQ,o.roveVersion)}catch{}t.reload()}})}function XQ(){let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=()=>{t.style.setProperty(`--vvh`,`${e.height*e.scale}px`),t.toggleAttribute(`data-keyboard`,window.innerHeight-e.height*e.scale>120),e.scale===1&&window.scrollY!==0&&window.scrollTo(0,0)};e.addEventListener(`resize`,n),e.addEventListener(`scroll`,n),window.addEventListener(`scroll`,n,{passive:!0}),n()}var ZQ=(0,h.createRoot)(document.getElementById(`root`));XQ(),VQ(),oy(),IQ(),MQ(),QG();var QQ=a();if(!QQ)Va().then(e=>ZQ.render((0,V.jsx)(g.StrictMode,{children:e?(0,V.jsx)(Ga,{}):(0,V.jsx)(ln,{})})));else{let e=new Mv(Nv(),QQ),t=new Xi(e);e.on(`prompt`,t=>{UQ(t)&&GQ(e,t)}),HQ(t,e),YQ(e),e.start(),ZQ.render((0,V.jsx)(g.StrictMode,{children:(0,V.jsx)(DQ,{model:t})}))}
|