@oonacode/win32-x64 0.3.136 → 0.3.137
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.
|
@@ -7,7 +7,8 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
7
7
|
Error generating stack: `+e.message+`
|
|
8
8
|
`+e.stack}}var Ce=Object.prototype.hasOwnProperty,we=t.unstable_scheduleCallback,I=t.unstable_cancelCallback,Te=t.unstable_shouldYield,Ee=t.unstable_requestPaint,De=t.unstable_now,Oe=t.unstable_getCurrentPriorityLevel,L=t.unstable_ImmediatePriority,ke=t.unstable_UserBlockingPriority,Ae=t.unstable_NormalPriority,je=t.unstable_LowPriority,Me=t.unstable_IdlePriority,Ne=t.log,Pe=t.unstable_setDisableYieldValue,Fe=null,Ie=null;function Le(e){if(typeof Ne==`function`&&Pe(e),Ie&&typeof Ie.setStrictMode==`function`)try{Ie.setStrictMode(Fe,e)}catch{}}var Re=Math.clz32?Math.clz32:Ve,ze=Math.log,Be=Math.LN2;function Ve(e){return e>>>=0,e===0?32:31-(ze(e)/Be|0)|0}var He=256,Ue=262144,We=4194304;function Ge(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 Ke(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=Ge(n))):i=Ge(o):i=Ge(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ge(n))):i=Ge(o)):i=Ge(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 qe(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Je(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 Ye(){var e=We;return We<<=1,!(We&62914560)&&(We=4194304),e}function Xe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ze(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-Re(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&&R(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function R(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Re(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function $e(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Re(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function et(e,t){var n=t&-t;return n=n&42?1:tt(n),(n&(e.suspendedLanes|t))===0?n:0}function tt(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 nt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function rt(){var e=P.p;return e===0?(e=window.event,e===void 0?32:hp(e.type)):e}function it(e,t){var n=P.p;try{return P.p=e,t()}finally{P.p=n}}var at=Math.random().toString(36).slice(2),ot=`__reactFiber$`+at,st=`__reactProps$`+at,ct=`__reactContainer$`+at,lt=`__reactEvents$`+at,ut=`__reactListeners$`+at,dt=`__reactHandles$`+at,ft=`__reactResources$`+at,pt=`__reactMarker$`+at;function mt(e){delete e[ot],delete e[st],delete e[lt],delete e[ut],delete e[dt]}function ht(e){var t=e[ot];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ct]||n[ot]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=_f(e);e!==null;){if(n=e[ot])return n;e=_f(e)}return t}e=n,n=e.parentNode}return null}function gt(e){if(e=e[ot]||e[ct]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function _t(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function vt(e){var t=e[ft];return t||=e[ft]={hoistableStyles:new Map,hoistableScripts:new Map},t}function yt(e){e[pt]=!0}var bt=new Set,xt={};function St(e,t){Ct(e,t),Ct(e+`Capture`,t)}function Ct(e,t){for(xt[e]=t,e=0;e<t.length;e++)bt.add(t[e])}var wt=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]*$`),Tt={},Et={};function Dt(e){return Ce.call(Et,e)?!0:Ce.call(Tt,e)?!1:wt.test(e)?Et[e]=!0:(Tt[e]=!0,!1)}function Ot(e,t,n){if(Dt(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 kt(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 At(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 jt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Mt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Nt(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 Pt(e){if(!e._valueTracker){var t=Mt(e)?`checked`:`value`;e._valueTracker=Nt(e,t,``+e[t])}}function Ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Mt(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function It(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 Lt=/[\n"\\]/g;function Rt(e){return e.replace(Lt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function zt(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=``+jt(t)):e.value!==``+jt(t)&&(e.value=``+jt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Vt(e,o,jt(n)):Vt(e,o,jt(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=``+jt(s):e.removeAttribute(`name`)}function Bt(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)){Pt(e);return}n=n==null?``:``+jt(n),t=t==null?n:``+jt(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),Pt(e)}function Vt(e,t,n){t===`number`&&It(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Ht(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=``+jt(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 Ut(e,t,n){if(t!=null&&(t=``+jt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+jt(n)}function Wt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(ne(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=jt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Pt(e)}function Gt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Kt=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 qt(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||Kt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Jt(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&&qt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&qt(e,o,t[o])}function Yt(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 Xt=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`]]),Zt=/^[\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 Qt(e){return Zt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function $t(){}var en=null;function tn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var nn=null,rn=null;function an(e){var t=gt(e);if(t&&(e=t.stateNode)){var n=e[st]||null;a:switch(e=t.stateNode,t.type){case`input`:if(zt(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="`+Rt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[st]||null;if(!a)throw Error(i(90));zt(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&&Ft(r)}break a;case`textarea`:Ut(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Ht(e,!!n.multiple,t,!1)}}}var on=!1;function sn(e,t,n){if(on)return e(t,n);on=!0;try{return e(t)}finally{if(on=!1,(nn!==null||rn!==null)&&(Eu(),nn&&(t=nn,e=rn,rn=nn=null,an(t),e)))for(t=0;t<e.length;t++)an(e[t])}}function cn(e,t){var n=e.stateNode;if(n===null)return null;var r=n[st]||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 ln=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,mn=null;function hn(){if(mn)return mn;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.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 mn=i.slice(e,1<r?1-r:void 0)}function gn(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 _n(){return!0}function vn(){return!1}function yn(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)?_n:vn,this.isPropagationStopped=vn,this}return m(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=_n)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=_n)},persist:function(){},isPersistent:_n}),t}var bn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},xn=yn(bn),Sn=m({},bn,{view:0,detail:0}),Cn=yn(Sn),wn,Tn,En,Dn=m({},Sn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Rn,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!==En&&(En&&e.type===`mousemove`?(wn=e.screenX-En.screenX,Tn=e.screenY-En.screenY):Tn=wn=0,En=e),wn)},movementY:function(e){return`movementY`in e?e.movementY:Tn}}),On=yn(Dn),kn=yn(m({},Dn,{dataTransfer:0})),An=yn(m({},Sn,{relatedTarget:0})),jn=yn(m({},bn,{animationName:0,elapsedTime:0,pseudoElement:0})),Mn=yn(m({},bn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Nn=yn(m({},bn,{data:0})),Pn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Fn={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`},In={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Ln(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=In[e])?!!t[e]:!1}function Rn(){return Ln}var zn=yn(m({},Sn,{key:function(e){if(e.key){var t=Pn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=gn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Fn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Rn,charCode:function(e){return e.type===`keypress`?gn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?gn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Bn=yn(m({},Dn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Vn=yn(m({},Sn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Rn})),Hn=yn(m({},bn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Un=yn(m({},Dn,{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})),Wn=yn(m({},bn,{newState:0,oldState:0})),Gn=[9,13,27,32],Kn=ln&&`CompositionEvent`in window,qn=null;ln&&`documentMode`in document&&(qn=document.documentMode);var Jn=ln&&`TextEvent`in window&&!qn,Yn=ln&&(!Kn||qn&&8<qn&&11>=qn),Xn=` `,Zn=!1;function Qn(e,t){switch(e){case`keyup`:return Gn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function $n(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var er=!1;function tr(e,t){switch(e){case`compositionend`:return $n(t);case`keypress`:return t.which===32?(Zn=!0,Xn):null;case`textInput`:return e=t.data,e===Xn&&Zn?null:e;default:return null}}function nr(e,t){if(er)return e===`compositionend`||!Kn&&Qn(e,t)?(e=hn(),mn=pn=fn=null,er=!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 Yn&&t.locale!==`ko`?null:t.data;default:return null}}var rr={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 ir(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!rr[e.type]:t===`textarea`}function ar(e,t,n,r){nn?rn?rn.push(r):rn=[r]:nn=r,t=Nd(t,`onChange`),0<t.length&&(n=new xn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var or=null,sr=null;function cr(e){Ed(e,0)}function lr(e){if(Ft(_t(e)))return e}function ur(e,t){if(e===`change`)return t}var dr=!1;if(ln){var fr;if(ln){var pr=`oninput`in document;if(!pr){var mr=document.createElement(`div`);mr.setAttribute(`oninput`,`return;`),pr=typeof mr.oninput==`function`}fr=pr}else fr=!1;dr=fr&&(!document.documentMode||9<document.documentMode)}function hr(){or&&(or.detachEvent(`onpropertychange`,gr),sr=or=null)}function gr(e){if(e.propertyName===`value`&&lr(sr)){var t=[];ar(t,sr,e,tn(e)),sn(cr,t)}}function _r(e,t,n){e===`focusin`?(hr(),or=t,sr=n,or.attachEvent(`onpropertychange`,gr)):e===`focusout`&&hr()}function vr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return lr(sr)}function yr(e,t){if(e===`click`)return lr(t)}function br(e,t){if(e===`input`||e===`change`)return lr(t)}function xr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Sr=typeof Object.is==`function`?Object.is:xr;function Cr(e,t){if(Sr(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(!Ce.call(t,i)||!Sr(e[i],t[i]))return!1}return!0}function wr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Tr(e,t){var n=wr(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=wr(n)}}function Er(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Er(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Dr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(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=It(e.document)}return t}function Or(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 kr=ln&&`documentMode`in document&&11>=document.documentMode,Ar=null,jr=null,Mr=null,Nr=!1;function Pr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nr||Ar==null||Ar!==It(r)||(r=Ar,`selectionStart`in r&&Or(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}),Mr&&Cr(Mr,r)||(Mr=r,r=Nd(jr,`onSelect`),0<r.length&&(t=new xn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Ar)))}function Fr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Ir={animationend:Fr(`Animation`,`AnimationEnd`),animationiteration:Fr(`Animation`,`AnimationIteration`),animationstart:Fr(`Animation`,`AnimationStart`),transitionrun:Fr(`Transition`,`TransitionRun`),transitionstart:Fr(`Transition`,`TransitionStart`),transitioncancel:Fr(`Transition`,`TransitionCancel`),transitionend:Fr(`Transition`,`TransitionEnd`)},Lr={},Rr={};ln&&(Rr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Ir.animationend.animation,delete Ir.animationiteration.animation,delete Ir.animationstart.animation),`TransitionEvent`in window||delete Ir.transitionend.transition);function zr(e){if(Lr[e])return Lr[e];if(!Ir[e])return e;var t=Ir[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Rr)return Lr[e]=t[n];return e}var Br=zr(`animationend`),Vr=zr(`animationiteration`),Hr=zr(`animationstart`),Ur=zr(`transitionrun`),Wr=zr(`transitionstart`),Gr=zr(`transitioncancel`),Kr=zr(`transitionend`),qr=new Map,Jr=`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(` `);Jr.push(`scrollEnd`);function Yr(e,t){qr.set(e,t),St(t,[e])}var Xr=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)},Zr=[],Qr=0,$r=0;function ei(){for(var e=Qr,t=$r=Qr=0;t<e;){var n=Zr[t];Zr[t++]=null;var r=Zr[t];Zr[t++]=null;var i=Zr[t];Zr[t++]=null;var a=Zr[t];if(Zr[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&&ii(n,i,a)}}function ti(e,t,n,r){Zr[Qr++]=e,Zr[Qr++]=t,Zr[Qr++]=n,Zr[Qr++]=r,$r|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ni(e,t,n,r){return ti(e,t,n,r),ai(e)}function ri(e,t){return ti(e,null,null,t),ai(e)}function ii(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-Re(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ai(e){if(50<vu)throw vu=0,yu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var oi={};function si(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 ci(e,t,n,r){return new si(e,t,n,r)}function li(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ui(e,t){var n=e.alternate;return n===null?(n=ci(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 di(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 fi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)li(e)&&(s=1);else if(typeof e==`string`)s=Kf(e,n,ce.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=ci(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return pi(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=ci(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=ci(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=ci(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=ci(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function pi(e,t,n,r){return e=ci(7,e,r,t),e.lanes=n,e}function mi(e,t,n){return e=ci(6,e,null,t),e.lanes=n,e}function hi(e){var t=ci(18,null,null,0);return t.stateNode=e,t}function gi(e,t,n){return t=ci(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var _i=new WeakMap;function vi(e,t){if(typeof e==`object`&&e){var n=_i.get(e);return n===void 0?(t={value:e,source:t,stack:Se(t)},_i.set(e,t),t):n}return{value:e,source:t,stack:Se(t)}}var yi=[],bi=0,xi=null,Si=0,Ci=[],wi=0,Ti=null,Ei=1,Di=``;function Oi(e,t){yi[bi++]=Si,yi[bi++]=xi,xi=e,Si=t}function ki(e,t,n){Ci[wi++]=Ei,Ci[wi++]=Di,Ci[wi++]=Ti,Ti=e;var r=Ei;e=Di;var i=32-Re(r)-1;r&=~(1<<i),n+=1;var a=32-Re(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Ei=1<<32-Re(t)+i|n<<i|r,Di=a+e}else Ei=1<<a|n<<i|r,Di=e}function Ai(e){e.return!==null&&(Oi(e,1),ki(e,1,0))}function ji(e){for(;e===xi;)xi=yi[--bi],yi[bi]=null,Si=yi[--bi],yi[bi]=null;for(;e===Ti;)Ti=Ci[--wi],Ci[wi]=null,Di=Ci[--wi],Ci[wi]=null,Ei=Ci[--wi],Ci[wi]=null}function Mi(e,t){Ci[wi++]=Ei,Ci[wi++]=Di,Ci[wi++]=Ti,Ei=t.id,Di=t.overflow,Ti=e}var Ni=null,Pi=null,Fi=!1,Ii=null,Li=!1,Ri=Error(i(519));function zi(e){throw Gi(vi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Ri}function Bi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ot]=e,t[st]=r,n){case`dialog`:G(`cancel`,t),G(`close`,t);break;case`iframe`:case`object`:case`embed`:G(`load`,t);break;case`video`:case`audio`:for(n=0;n<wd.length;n++)G(wd[n],t);break;case`source`:G(`error`,t);break;case`img`:case`image`:case`link`:G(`error`,t),G(`load`,t);break;case`details`:G(`toggle`,t);break;case`input`:G(`invalid`,t),Bt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:G(`invalid`,t);break;case`textarea`:G(`invalid`,t),Wt(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||zd(t.textContent,n)?(r.popover!=null&&(G(`beforetoggle`,t),G(`toggle`,t)),r.onScroll!=null&&G(`scroll`,t),r.onScrollEnd!=null&&G(`scrollend`,t),r.onClick!=null&&(t.onclick=$t),t=!0):t=!1,t||zi(e,!0)}function Vi(e){for(Ni=e.return;Ni;)switch(Ni.tag){case 5:case 31:case 13:Li=!1;return;case 27:case 3:Li=!0;return;default:Ni=Ni.return}}function Hi(e){if(e!==Ni)return!1;if(!Fi)return Vi(e),Fi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Zd(e.type,e.memoizedProps)),n=!n),n&&Pi&&zi(e),Vi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Pi=gf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Pi=gf(e)}else t===27?(t=Pi,af(e.type)?(e=hf,hf=null,Pi=e):Pi=t):Pi=Ni?q(e.stateNode.nextSibling):null;return!0}function Ui(){Pi=Ni=null,Fi=!1}function Wi(){var e=Ii;return e!==null&&(iu===null?iu=e:iu.push.apply(iu,e),Ii=null),e}function Gi(e){Ii===null?Ii=[e]:Ii.push(e)}var Ki=oe(null),qi=null,Ji=null;function Yi(e,t,n){F(Ki,t._currentValue),t._currentValue=n}function Xi(e){e._currentValue=Ki.current,se(Ki)}function Zi(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 Qi(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),Zi(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),Zi(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 $i(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;Sr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===de.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&&Qi(t,e,n,r),t.flags|=262144}function ea(e){for(e=e.firstContext;e!==null;){if(!Sr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ta(e){qi=e,Ji=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function na(e){return ia(qi,e)}function ra(e,t){return qi===null&&ta(e),ia(e,t)}function ia(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Ji===null){if(e===null)throw Error(i(308));Ji=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ji=Ji.next=t;return n}var aa=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()})}},oa=t.unstable_scheduleCallback,sa=t.unstable_NormalPriority,ca={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function la(){return{controller:new aa,data:new Map,refCount:0}}function ua(e){e.refCount--,e.refCount===0&&oa(sa,function(){e.controller.abort()})}var da=null,fa=0,pa=0,ma=null;function ha(e,t){if(da===null){var n=da=[];fa=0,pa=vd(),ma={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return fa++,t.then(ga,ga),t}function ga(){if(--fa===0&&da!==null){ma!==null&&(ma.status=`fulfilled`);var e=da;da=null,pa=0,ma=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function _a(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 va=N.S;N.S=function(e,t){su=De(),typeof t==`object`&&t&&typeof t.then==`function`&&ha(e,t),va!==null&&va(e,t)};var ya=oe(null);function ba(){var e=ya.current;return e===null?Gl.pooledCache:e}function xa(e,t){t===null?F(ya,ya.current):F(ya,t.pool)}function Sa(){var e=ba();return e===null?null:{parent:ca._currentValue,pool:e}}var Ca=Error(i(460)),wa=Error(i(474)),Ta=Error(i(542)),Ea={then:function(){}};function Da(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Oa(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then($t,$t),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ma(e),e;default:if(typeof t.status==`string`)t.then($t,$t);else{if(e=Gl,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,Ma(e),e}throw Aa=t,Ca}}function ka(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Aa=e,Ca):e}}var Aa=null;function ja(){if(Aa===null)throw Error(i(459));var e=Aa;return Aa=null,e}function Ma(e){if(e===Ca||e===Ta)throw Error(i(483))}var Na=null,Pa=0;function Fa(e){var t=Pa;return Pa+=1,Na===null&&(Na=[]),Oa(Na,e,t)}function Ia(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function La(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 Ra(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=ui(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=mi(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&&ka(i)===t.type)?(t=a(t,n.props),Ia(t,n),t.return=e,t):(t=fi(n.type,n.key,n.props,null,e.mode,r),Ia(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=gi(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=pi(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=mi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=fi(t.type,t.key,t.props,null,e.mode,n),Ia(n,t),n.return=e,n;case v:return t=gi(t,e.mode,n),t.return=e,t;case O:return t=ka(t),f(e,t,n)}if(ne(t)||j(t))return t=pi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Fa(t),n);if(t.$$typeof===C)return f(e,ra(e,t),n);La(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=ka(n),p(e,t,n,r)}if(ne(n)||j(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Fa(n),r);if(n.$$typeof===C)return p(e,t,ra(e,n),r);La(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=ka(r),m(e,t,n,r,i)}if(ne(r)||j(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Fa(r),i);if(r.$$typeof===C)return m(e,t,n,ra(t,r),i);La(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),Fi&&Oi(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 Fi&&Oi(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)}),Fi&&Oi(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),Fi&&Oi(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 Fi&&Oi(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)}),Fi&&Oi(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&&ka(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ia(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=pi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=fi(o.type,o.key,o.props,null,e.mode,c),Ia(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=gi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=ka(o),b(e,r,o,c)}if(ne(o))return h(e,r,o,c);if(j(o)){if(l=j(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,Fa(o),c);if(o.$$typeof===C)return b(e,r,ra(e,o),c);La(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=mi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Pa=0;var i=b(e,t,n,r);return Na=null,i}catch(t){if(t===Ca||t===Ta)throw t;var a=ci(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var za=Ra(!0),Ba=Ra(!1),Va=!1;function Ha(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ua(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 Wa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ga(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Wl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ai(e),ii(e,null,n),t}return ti(e,r,t,n),ai(e)}function Ka(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,$e(e,n)}}function qa(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 Ja=!1;function Ya(){if(Ja){var e=ma;if(e!==null)throw e}}function Xa(e,t,n,r){Ja=!1;var i=e.updateQueue;Va=!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?(H&f)===f:(r&f)===f){f!==0&&f===pa&&(Ja=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Va=!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),$l|=o,e.lanes=o,e.memoizedState=d}}function z(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)z(n[e],t)}var Qa=oe(null),$a=oe(0);function eo(e,t){e=Zl,F($a,e),F(Qa,t),Zl=e|t.baseLanes}function to(){F($a,Zl),F(Qa,Qa.current)}function no(){Zl=$a.current,se(Qa),se($a)}var ro=oe(null),io=null;function ao(e){var t=e.alternate;F(uo,uo.current&1),F(ro,e),io===null&&(t===null||Qa.current!==null||t.memoizedState!==null)&&(io=e)}function oo(e){F(uo,uo.current),F(ro,e),io===null&&(io=e)}function so(e){e.tag===22?(F(uo,uo.current),F(ro,e),io===null&&(io=e)):co(e)}function co(){F(uo,uo.current),F(ro,ro.current)}function lo(e){se(ro),io===e&&(io=null),se(uo)}var uo=oe(0);function fo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||ff(n)||pf(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 po=0,B=null,mo=null,ho=null,go=!1,_o=!1,vo=!1,yo=0,bo=0,xo=null,So=0;function Co(){throw Error(i(321))}function wo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Sr(e[n],t[n]))return!1;return!0}function To(e,t,n,r,i,a){return po=a,B=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,N.H=e===null||e.memoizedState===null?Hs:Us,vo=!1,a=n(r,i),vo=!1,_o&&(a=Do(t,n,r,i)),Eo(e),a}function Eo(e){N.H=Vs;var t=mo!==null&&mo.next!==null;if(po=0,ho=mo=B=null,go=!1,bo=0,xo=null,t)throw Error(i(300));e===null||oc||(e=e.dependencies,e!==null&&ea(e)&&(oc=!0))}function Do(e,t,n,r){B=e;var a=0;do{if(_o&&(xo=null),bo=0,_o=!1,25<=a)throw Error(i(301));if(a+=1,ho=mo=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}N.H=Ws,o=t(n,r)}while(_o);return o}function Oo(){var e=N.H,t=e.useState()[0];return t=typeof t.then==`function`?Fo(t):t,e=e.useState()[0],(mo===null?null:mo.memoizedState)!==e&&(B.flags|=1024),t}function ko(){var e=yo!==0;return yo=0,e}function Ao(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function jo(e){if(go){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}go=!1}po=0,ho=mo=B=null,_o=!1,bo=yo=0,xo=null}function Mo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ho===null?B.memoizedState=ho=e:ho=ho.next=e,ho}function No(){if(mo===null){var e=B.alternate;e=e===null?null:e.memoizedState}else e=mo.next;var t=ho===null?B.memoizedState:ho.next;if(t!==null)ho=t,mo=e;else{if(e===null)throw B.alternate===null?Error(i(467)):Error(i(310));mo=e,e={memoizedState:mo.memoizedState,baseState:mo.baseState,baseQueue:mo.baseQueue,queue:mo.queue,next:null},ho===null?B.memoizedState=ho=e:ho=ho.next=e}return ho}function Po(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Fo(e){var t=bo;return bo+=1,xo===null&&(xo=[]),e=Oa(xo,e,t),t=B,(ho===null?t.memoizedState:ho.next)===null&&(t=t.alternate,N.H=t===null||t.memoizedState===null?Hs:Us),e}function Io(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Fo(e);if(e.$$typeof===C)return na(e)}throw Error(i(438,String(e)))}function Lo(e){var t=null,n=B.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=B.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=Po(),B.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 Ro(e,t){return typeof t==`function`?t(e):t}function zo(e){return Bo(No(),mo,e)}function Bo(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?(po&f)===f:(H&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===pa&&(d=!0);else if((po&p)===p){u=u.next,p===pa&&(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,B.lanes|=p,$l|=p;f=u.action,vo&&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,B.lanes|=f,$l|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Sr(o,e.memoizedState)&&(oc=!0,d&&(n=ma,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 Vo(e){var t=No(),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);Sr(o,t.memoizedState)||(oc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Ho(e,t,n){var r=B,a=No(),o=Fi;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Sr((mo||a).memoizedState,n);if(s&&(a.memoizedState=n,oc=!0),a=a.queue,ps(Go.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||ho!==null&&ho.memoizedState.tag&1){if(r.flags|=2048,cs(9,{destroy:void 0},Wo.bind(null,r,a,n,t),null),Gl===null)throw Error(i(349));o||po&127||Uo(r,t,n)}return n}function Uo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=B.updateQueue,t===null?(t=Po(),B.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Wo(e,t,n,r){t.value=n,t.getSnapshot=r,Ko(t)&&qo(e)}function Go(e,t,n){return n(function(){Ko(t)&&qo(e)})}function Ko(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Sr(e,n)}catch{return!0}}function qo(e){var t=ri(e,2);t!==null&&Su(t,e,2)}function Jo(e){var t=Mo();if(typeof e==`function`){var n=e;if(e=n(),vo){Le(!0);try{n()}finally{Le(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ro,lastRenderedState:e},t}function Yo(e,t,n,r){return e.baseState=n,Bo(e,mo,typeof r==`function`?r:Ro)}function Xo(e,t,n,r,a){if(Rs(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)}};N.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Zo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Zo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=N.T,o={};N.T=o;try{var s=n(i,r),c=N.S;c!==null&&c(o,s),Qo(e,t,s)}catch(n){es(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),N.T=a}}else try{a=n(i,r),Qo(e,t,a)}catch(n){es(e,t,n)}}function Qo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){$o(e,t,n)},function(n){return es(e,t,n)}):$o(e,t,n)}function $o(e,t,n){t.status=`fulfilled`,t.value=n,ts(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Zo(e,n)))}function es(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,ts(t),t=t.next;while(t!==r)}e.action=null}function ts(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function ns(e,t){return t}function rs(e,t){if(Fi){var n=Gl.formState;if(n!==null){a:{var r=B;if(Fi){if(Pi){b:{for(var i=Pi,a=Li;i.nodeType!==8;){if(!a){i=null;break b}if(i=q(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Pi=q(i.nextSibling),r=i.data===`F!`;break a}}zi(r)}r=!1}r&&(t=n[0])}}return n=Mo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ns,lastRenderedState:t},n.queue=r,n=Fs.bind(null,B,r),r.dispatch=n,r=Jo(!1),a=Ls.bind(null,B,!1,r.queue),r=Mo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Xo.bind(null,B,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function is(e){return as(No(),mo,e)}function as(e,t,n){if(t=Bo(e,t,ns)[0],e=zo(Ro)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Fo(t)}catch(e){throw e===Ca?Ta:e}else r=t;t=No();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(B.flags|=2048,cs(9,{destroy:void 0},os.bind(null,i,n),null)),[r,a,e]}function os(e,t){e.action=t}function ss(e){var t=No(),n=mo;if(n!==null)return as(t,n,e);No(),t=t.memoizedState,n=No();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function cs(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=B.updateQueue,t===null&&(t=Po(),B.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 ls(){return No().memoizedState}function us(e,t,n,r){var i=Mo();B.flags|=e,i.memoizedState=cs(1|t,{destroy:void 0},n,r===void 0?null:r)}function ds(e,t,n,r){var i=No();r=r===void 0?null:r;var a=i.memoizedState.inst;mo!==null&&r!==null&&wo(r,mo.memoizedState.deps)?i.memoizedState=cs(t,a,n,r):(B.flags|=e,i.memoizedState=cs(1|t,a,n,r))}function fs(e,t){us(8390656,8,e,t)}function ps(e,t){ds(2048,8,e,t)}function ms(e){B.flags|=4;var t=B.updateQueue;if(t===null)t=Po(),B.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function hs(e){var t=No().memoizedState;return ms({ref:t,nextImpl:e}),function(){if(Wl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function gs(e,t){return ds(4,2,e,t)}function _s(e,t){return ds(4,4,e,t)}function vs(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 ys(e,t,n){n=n==null?null:n.concat([e]),ds(4,4,vs.bind(null,t,e),n)}function bs(){}function xs(e,t){var n=No();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&wo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ss(e,t){var n=No();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&wo(t,r[1]))return r[0];if(r=e(),vo){Le(!0);try{e()}finally{Le(!1)}}return n.memoizedState=[r,t],r}function Cs(e,t,n){return n===void 0||po&1073741824&&!(H&261930)?e.memoizedState=t:(e.memoizedState=n,e=xu(),B.lanes|=e,$l|=e,n)}function ws(e,t,n,r){return Sr(n,t)?n:Qa.current===null?!(po&42)||po&1073741824&&!(H&261930)?(oc=!0,e.memoizedState=n):(e=xu(),B.lanes|=e,$l|=e,t):(e=Cs(e,n,r),Sr(e,t)||(oc=!0),e)}function Ts(e,t,n,r,i){var a=P.p;P.p=a!==0&&8>a?a:8;var o=N.T,s={};N.T=s,Ls(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Is(e,t,_a(c,r),bu(e)):Is(e,t,r,bu(e))}catch(n){Is(e,t,{then:function(){},status:`rejected`,reason:n},bu())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function Es(){}function Ds(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Os(e).queue;Ts(e,a,t,re,n===null?Es:function(){return ks(e),n(r)})}function Os(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ro,lastRenderedState:re},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ro,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ks(e){var t=Os(e);t.next===null&&(t=e.alternate.memoizedState),Is(e,t.next.queue,{},bu())}function As(){return na(tp)}function js(){return No().memoizedState}function Ms(){return No().memoizedState}function Ns(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=bu();e=Wa(n);var r=Ga(t,e,n);r!==null&&(Su(r,t,n),Ka(r,t,n)),t={cache:la()},e.payload=t;return}t=t.return}}function Ps(e,t,n){var r=bu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Rs(e)?zs(t,n):(n=ni(e,t,n,r),n!==null&&(Su(n,e,r),Bs(n,t,r)))}function Fs(e,t,n){Is(e,t,n,bu())}function Is(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Rs(e))zs(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,Sr(s,o))return ti(e,t,i,0),Gl===null&&ei(),!1}catch{}if(n=ni(e,t,i,r),n!==null)return Su(n,e,r),Bs(n,t,r),!0}return!1}function Ls(e,t,n,r){if(r={lane:2,revertLane:vd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Rs(e)){if(t)throw Error(i(479))}else t=ni(e,n,r,2),t!==null&&Su(t,e,2)}function Rs(e){var t=e.alternate;return e===B||t!==null&&t===B}function zs(e,t){_o=go=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var Vs={readContext:na,use:Io,useCallback:Co,useContext:Co,useEffect:Co,useImperativeHandle:Co,useLayoutEffect:Co,useInsertionEffect:Co,useMemo:Co,useReducer:Co,useRef:Co,useState:Co,useDebugValue:Co,useDeferredValue:Co,useTransition:Co,useSyncExternalStore:Co,useId:Co,useHostTransitionStatus:Co,useFormState:Co,useActionState:Co,useOptimistic:Co,useMemoCache:Co,useCacheRefresh:Co};Vs.useEffectEvent=Co;var Hs={readContext:na,use:Io,useCallback:function(e,t){return Mo().memoizedState=[e,t===void 0?null:t],e},useContext:na,useEffect:fs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),us(4194308,4,vs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return us(4194308,4,e,t)},useInsertionEffect:function(e,t){us(4,2,e,t)},useMemo:function(e,t){var n=Mo();t=t===void 0?null:t;var r=e();if(vo){Le(!0);try{e()}finally{Le(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Mo();if(n!==void 0){var i=n(t);if(vo){Le(!0);try{n(t)}finally{Le(!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=Ps.bind(null,B,e),[r.memoizedState,e]},useRef:function(e){var t=Mo();return e={current:e},t.memoizedState=e},useState:function(e){e=Jo(e);var t=e.queue,n=Fs.bind(null,B,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:bs,useDeferredValue:function(e,t){return Cs(Mo(),e,t)},useTransition:function(){var e=Jo(!1);return e=Ts.bind(null,B,e.queue,!0,!1),Mo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=B,a=Mo();if(Fi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Gl===null)throw Error(i(349));H&127||Uo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,fs(Go.bind(null,r,o,e),[e]),r.flags|=2048,cs(9,{destroy:void 0},Wo.bind(null,r,o,n,t),null),n},useId:function(){var e=Mo(),t=Gl.identifierPrefix;if(Fi){var n=Di,r=Ei;n=(r&~(1<<32-Re(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=yo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=So++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:As,useFormState:rs,useActionState:rs,useOptimistic:function(e){var t=Mo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ls.bind(null,B,!0,n),n.dispatch=t,[e,t]},useMemoCache:Lo,useCacheRefresh:function(){return Mo().memoizedState=Ns.bind(null,B)},useEffectEvent:function(e){var t=Mo(),n={impl:e};return t.memoizedState=n,function(){if(Wl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Us={readContext:na,use:Io,useCallback:xs,useContext:na,useEffect:ps,useImperativeHandle:ys,useInsertionEffect:gs,useLayoutEffect:_s,useMemo:Ss,useReducer:zo,useRef:ls,useState:function(){return zo(Ro)},useDebugValue:bs,useDeferredValue:function(e,t){return ws(No(),mo.memoizedState,e,t)},useTransition:function(){var e=zo(Ro)[0],t=No().memoizedState;return[typeof e==`boolean`?e:Fo(e),t]},useSyncExternalStore:Ho,useId:js,useHostTransitionStatus:As,useFormState:is,useActionState:is,useOptimistic:function(e,t){return Yo(No(),mo,e,t)},useMemoCache:Lo,useCacheRefresh:Ms};Us.useEffectEvent=hs;var Ws={readContext:na,use:Io,useCallback:xs,useContext:na,useEffect:ps,useImperativeHandle:ys,useInsertionEffect:gs,useLayoutEffect:_s,useMemo:Ss,useReducer:Vo,useRef:ls,useState:function(){return Vo(Ro)},useDebugValue:bs,useDeferredValue:function(e,t){var n=No();return mo===null?Cs(n,e,t):ws(n,mo.memoizedState,e,t)},useTransition:function(){var e=Vo(Ro)[0],t=No().memoizedState;return[typeof e==`boolean`?e:Fo(e),t]},useSyncExternalStore:Ho,useId:js,useHostTransitionStatus:As,useFormState:ss,useActionState:ss,useOptimistic:function(e,t){var n=No();return mo===null?(n.baseState=e,[e,n.queue.dispatch]):Yo(n,mo,e,t)},useMemoCache:Lo,useCacheRefresh:Ms};Ws.useEffectEvent=hs;function Gs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:m({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ks={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=bu(),i=Wa(r);i.payload=t,n!=null&&(i.callback=n),t=Ga(e,i,r),t!==null&&(Su(t,e,r),Ka(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=bu(),i=Wa(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ga(e,i,r),t!==null&&(Su(t,e,r),Ka(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=bu(),r=Wa(n);r.tag=2,t!=null&&(r.callback=t),t=Ga(e,r,n),t!==null&&(Su(t,e,n),Ka(t,e,n))}};function qs(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?!Cr(n,r)||!Cr(i,a):!0}function Js(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&&Ks.enqueueReplaceState(t,t.state,null)}function Ys(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=m({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Xs(e){Xr(e)}function Zs(e){console.error(e)}function Qs(e){Xr(e)}function $s(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function ec(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 tc(e,t,n){return n=Wa(n),n.tag=3,n.payload={element:null},n.callback=function(){$s(e,t)},n}function nc(e){return e=Wa(e),e.tag=3,e}function rc(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(){ec(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){ec(t,n,r),typeof i!=`function`&&(uu===null?uu=new Set([this]):uu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function ic(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&$i(t,n,a,!0),n=ro.current,n!==null){switch(n.tag){case 31:case 13:return io===null?Nu():n.alternate===null&&Ql===0&&(Ql=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ea?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Qu(e,r,a)),!1;case 22:return n.flags|=65536,r===Ea?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)),Qu(e,r,a)),!1}throw Error(i(435,n.tag))}return Qu(e,r,a),Nu(),!1}if(Fi)return t=ro.current,t===null?(r!==Ri&&(t=Error(i(423),{cause:r}),Gi(vi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=vi(r,n),a=tc(e.stateNode,r,a),qa(e,a),Ql!==4&&(Ql=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Ri&&(e=Error(i(422),{cause:r}),Gi(vi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=vi(o,n),ru===null?ru=[o]:ru.push(o),Ql!==4&&(Ql=2),t===null)return!0;r=vi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=tc(n.stateNode,r,e),qa(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`&&(uu===null||!uu.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=nc(a),rc(a,e,n,r),qa(n,a),!1}n=n.return}while(n!==null);return!1}var ac=Error(i(461)),oc=!1;function sc(e,t,n,r){t.child=e===null?Ba(t,null,n,r):za(t,e.child,n,r)}function cc(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 ta(t),r=To(e,t,n,o,a,i),s=ko(),e!==null&&!oc?(Ao(e,t,i),Mc(e,t,i)):(Fi&&s&&Ai(t),t.flags|=1,sc(e,t,r,i),t.child)}function lc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!li(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,uc(e,t,a,r,i)):(e=fi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Nc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Cr:n,n(o,r)&&e.ref===t.ref)return Mc(e,t,i)}return t.flags|=1,e=ui(a,r),e.ref=t.ref,e.return=t,t.child=e}function uc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Cr(a,r)&&e.ref===t.ref){if(oc=!1,t.pendingProps=r=a,Nc(e,i))e.flags&131072&&(oc=!0);else return t.lanes=e.lanes,Mc(e,t,i)}}return vc(e,t,n,r,i)}function dc(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 pc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&xa(t,a===null?null:a.cachePool),a===null?to():eo(t,a),so(t);else return r=t.lanes=536870912,pc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&xa(t,null),to(),co(t)):(xa(t,a.cachePool),eo(t,a),co(t),t.memoizedState=null);return sc(e,t,i,n),t.child}function fc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function pc(e,t,n,r,i){var a=ba();return a=a===null?null:{parent:ca._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&xa(t,null),to(),so(t),e!==null&&$i(e,t,r,!0),t.childLanes=i,null}function mc(e,t){return t=Dc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function hc(e,t,n){return za(t,e.child,null,n),e=mc(t,t.pendingProps),e.flags|=2,lo(t),t.memoizedState=null,e}function gc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(Fi){if(r.mode===`hidden`)return e=mc(t,r),t.lanes=536870912,fc(null,e);if(oo(t),(e=Pi)?(e=df(e,Li),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ti===null?null:{id:Ei,overflow:Di},retryLane:536870912,hydrationErrors:null},n=hi(e),n.return=t,t.child=n,Ni=t,Pi=null)):e=null,e===null)throw zi(t);return t.lanes=536870912,null}return mc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(oo(t),a){if(t.flags&256)t.flags&=-257,t=hc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(oc||$i(e,t,n,!1),a=(n&e.childLanes)!==0,oc||a){if(r=Gl,r!==null&&(s=et(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ri(e,s),Su(r,e,s),ac;Nu(),t=hc(e,t,n)}else e=o.treeContext,Pi=q(s.nextSibling),Ni=t,Fi=!0,Ii=null,Li=!1,e!==null&&Mi(t,e),t=mc(t,r),t.flags|=4096;return t}return e=ui(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function _c(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 vc(e,t,n,r,i){return ta(t),n=To(e,t,n,r,void 0,i),r=ko(),e!==null&&!oc?(Ao(e,t,i),Mc(e,t,i)):(Fi&&r&&Ai(t),t.flags|=1,sc(e,t,n,i),t.child)}function yc(e,t,n,r,i,a){return ta(t),t.updateQueue=null,n=Do(t,r,n,i),Eo(e),r=ko(),e!==null&&!oc?(Ao(e,t,a),Mc(e,t,a)):(Fi&&r&&Ai(t),t.flags|=1,sc(e,t,n,a),t.child)}function bc(e,t,n,r,i){if(ta(t),t.stateNode===null){var a=oi,o=n.contextType;typeof o==`object`&&o&&(a=na(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ks,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ha(t),o=n.contextType,a.context=typeof o==`object`&&o?na(o):oi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Gs(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&&Ks.enqueueReplaceState(a,a.state,null),Xa(t,r,a,i),Ya(),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=Ys(n,s);a.props=c;var l=a.context,u=n.contextType;o=oi,typeof u==`object`&&u&&(o=na(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)&&Js(t,a,r,o),Va=!1;var f=t.memoizedState;a.state=f,Xa(t,r,a,i),Ya(),l=t.memoizedState,s||f!==l||Va?(typeof d==`function`&&(Gs(t,n,d,r),l=t.memoizedState),(c=Va||qs(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,Ua(e,t),o=t.memoizedProps,u=Ys(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=oi,typeof l==`object`&&l&&(c=na(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)&&Js(t,a,r,c),Va=!1,f=t.memoizedState,a.state=f,Xa(t,r,a,i),Ya();var p=t.memoizedState;o!==d||f!==p||Va||e!==null&&e.dependencies!==null&&ea(e.dependencies)?(typeof s==`function`&&(Gs(t,n,s,r),p=t.memoizedState),(u=Va||qs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ea(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,_c(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=za(t,e.child,null,i),t.child=za(t,null,n,i)):sc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Mc(e,t,i),e}function xc(e,t,n,r){return Ui(),t.flags|=256,sc(e,t,n,r),t.child}var Sc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Cc(e){return{baseLanes:e,cachePool:Sa()}}function wc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=U),e}function Tc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(uo.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(Fi){if(a?ao(t):co(t),(e=Pi)?(e=df(e,Li),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ti===null?null:{id:Ei,overflow:Di},retryLane:536870912,hydrationErrors:null},n=hi(e),n.return=t,t.child=n,Ni=t,Pi=null)):e=null,e===null)throw zi(t);return pf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(co(t),a=t.mode,c=Dc({mode:`hidden`,children:c},a),r=pi(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Cc(n),r.childLanes=wc(e,s,n),t.memoizedState=Sc,fc(null,r)):(ao(t),Ec(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(ao(t),t.flags&=-257,t=Oc(e,t,n)):t.memoizedState===null?(co(t),c=r.fallback,a=t.mode,r=Dc({mode:`visible`,children:r.children},a),c=pi(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,za(t,e.child,null,n),r=t.child,r.memoizedState=Cc(n),r.childLanes=wc(e,s,n),t.memoizedState=Sc,t=fc(null,r)):(co(t),t.child=e.child,t.flags|=128,t=null);else if(ao(t),pf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Gi({value:r,source:null,stack:null}),t=Oc(e,t,n)}else if(oc||$i(e,t,n,!1),s=(n&e.childLanes)!==0,oc||s){if(s=Gl,s!==null&&(r=et(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ri(e,r),Su(s,e,r),ac;ff(c)||Nu(),t=Oc(e,t,n)}else ff(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Pi=q(c.nextSibling),Ni=t,Fi=!0,Ii=null,Li=!1,e!==null&&Mi(t,e),t=Ec(t,r.children),t.flags|=4096);return t}return a?(co(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ui(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=pi(c,a,n,null),c.flags|=2):c=ui(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,fc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Cc(n):(a=c.cachePool,a===null?a=Sa():(l=ca._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=wc(e,s,n),t.memoizedState=Sc,fc(e.child,r)):(ao(t),n=e.child,e=n.sibling,n=ui(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 Ec(e,t){return t=Dc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Dc(e,t){return e=ci(22,e,null,t),e.lanes=0,e}function Oc(e,t,n){return za(t,e.child,null,n),e=Ec(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function kc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Zi(e.return,t,n)}function Ac(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 jc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=uo.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,F(uo,o),sc(e,t,r,n),r=Fi?Si:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&kc(e,n,t);else if(e.tag===19)kc(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&&fo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Ac(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&&fo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Ac(t,!0,n,null,a,r);break;case`together`:Ac(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Mc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),$l|=t.lanes,(n&t.childLanes)===0){if(e!==null){if($i(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=ui(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ui(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Nc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&ea(e)))}function Pc(e,t,n){switch(t.tag){case 3:fe(t,t.stateNode.containerInfo),Yi(t,ca,e.memoizedState.cache),Ui();break;case 27:case 5:me(t);break;case 4:fe(t,t.stateNode.containerInfo);break;case 10:Yi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,oo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(ao(t),e=Mc(e,t,n),e===null?null:e.sibling):Tc(e,t,n):(ao(t),t.flags|=128,null);ao(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=($i(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return jc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),F(uo,uo.current),r)break;return null;case 22:return t.lanes=0,dc(e,t,n,t.pendingProps);case 24:Yi(t,ca,e.memoizedState.cache)}return Mc(e,t,n)}function Fc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)oc=!0;else{if(!Nc(e,n)&&!(t.flags&128))return oc=!1,Pc(e,t,n);oc=!!(e.flags&131072)}}else oc=!1,Fi&&t.flags&1048576&&ki(t,Si,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=ka(t.elementType),t.type=e,typeof e==`function`)li(e)?(r=Ys(e,r),t.tag=1,t=bc(null,t,e,r,n)):(t.tag=0,t=vc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=cc(null,t,e,r,n);break a}if(a===D){t.tag=14,t=lc(null,t,e,r,n);break a}}throw t=te(e)||e,Error(i(306,t,``))}}return t;case 0:return vc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Ys(r,t.pendingProps),bc(e,t,r,a,n);case 3:a:{if(fe(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ua(e,t),Xa(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Yi(t,ca,r),r!==o.cache&&Qi(t,[ca],n,!0),Ya(),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=xc(e,t,r,n);break a}if(r!==a){a=vi(Error(i(424)),t),Gi(a),t=xc(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(Pi=q(e.firstChild),Ni=t,Fi=!0,Ii=null,Li=!0,n=Ba(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ui(),r===a){t=Mc(e,t,n);break a}sc(e,t,r,n)}t=t.child}return t;case 26:return _c(e,t),e===null?(n=Mf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Fi||(n=t.type,e=t.pendingProps,r=Jd(ue.current).createElement(n),r[ot]=t,r[st]=e,Hd(r,n,e),yt(r),t.stateNode=r):t.memoizedState=Mf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return me(t),e===null&&Fi&&(r=t.stateNode=vf(t.type,t.pendingProps,ue.current),Ni=t,Li=!0,a=Pi,af(t.type)?(hf=a,Pi=q(r.firstChild)):Pi=a),sc(e,t,t.pendingProps.children,n),_c(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Fi&&((a=r=Pi)&&(r=lf(r,t.type,t.pendingProps,Li),r===null?a=!1:(t.stateNode=r,Ni=t,Pi=q(r.firstChild),Li=!1,a=!0)),a||zi(t)),me(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Zd(a,o)?r=null:s!==null&&Zd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=To(e,t,Oo,null,null,n),tp._currentValue=a),_c(e,t),sc(e,t,r,n),t.child;case 6:return e===null&&Fi&&((e=n=Pi)&&(n=uf(n,t.pendingProps,Li),n===null?e=!1:(t.stateNode=n,Ni=t,Pi=null,e=!0)),e||zi(t)),null;case 13:return Tc(e,t,n);case 4:return fe(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=za(t,null,r,n):sc(e,t,r,n),t.child;case 11:return cc(e,t,t.type,t.pendingProps,n);case 7:return sc(e,t,t.pendingProps,n),t.child;case 8:return sc(e,t,t.pendingProps.children,n),t.child;case 12:return sc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Yi(t,t.type,r.value),sc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,ta(t),a=na(a),r=r(a),t.flags|=1,sc(e,t,r,n),t.child;case 14:return lc(e,t,t.type,t.pendingProps,n);case 15:return uc(e,t,t.type,t.pendingProps,n);case 19:return jc(e,t,n);case 31:return gc(e,t,n);case 22:return dc(e,t,n,t.pendingProps);case 24:return ta(t),r=na(ca),e===null?(a=ba(),a===null&&(a=Gl,o=la(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ha(t),Yi(t,ca,a)):((e.lanes&n)!==0&&(Ua(e,t),Xa(t,null,null,n),Ya()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Yi(t,ca,r),r!==a.cache&&Qi(t,[ca],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Yi(t,ca,r))),sc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Ic(e){e.flags|=4}function Lc(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(Au())e.flags|=8192;else throw Aa=Ea,wa}}else e.flags&=-16777217}function Rc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!qf(t)){if(Au())e.flags|=8192;else throw Aa=Ea,wa}}function zc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ye(),e.lanes|=t,nu|=t)}function Bc(e,t){if(!Fi)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 Vc(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 Hc(e,t,n){var r=t.pendingProps;switch(ji(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vc(t),null;case 1:return Vc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Xi(ca),pe(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Hi(t)?Ic(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Wi())),Vc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Ic(t),o===null?(Vc(t),Lc(t,a,null,r,n)):(Vc(t),Rc(t,o))):o?o===e.memoizedState?(Vc(t),t.flags&=-16777217):(Ic(t),Vc(t),Rc(t,o)):(e=e.memoizedProps,e!==r&&Ic(t),Vc(t),Lc(t,a,e,r,n)),null;case 27:if(he(t),n=ue.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Vc(t),null}e=ce.current,Hi(t)?Bi(t,e):(e=vf(a,r,n),t.stateNode=e,Ic(t))}return Vc(t),null;case 5:if(he(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Vc(t),null}if(o=ce.current,Hi(t))Bi(t,o);else{var s=Jd(ue.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[ot]=t,o[st]=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(Hd(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&&Ic(t)}}return Vc(t),Lc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ue.current,Hi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ni,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||zd(e.nodeValue,n)),e||zi(t,!0)}else e=Jd(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Vc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Hi(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[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Vc(t),e=!1}else n=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(lo(t),t):(lo(t),null);if(t.flags&128)throw Error(i(558))}return Vc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Hi(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[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Vc(t),a=!1}else a=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(lo(t),t):(lo(t),null)}return lo(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),zc(t,t.updateQueue),Vc(t),null);case 4:return pe(),e===null&&kd(t.stateNode.containerInfo),Vc(t),null;case 10:return Xi(t.type),Vc(t),null;case 19:if(se(uo),r=t.memoizedState,r===null)return Vc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Bc(r,!1);else{if(Ql!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=fo(e),o!==null){for(t.flags|=128,Bc(r,!1),e=o.updateQueue,t.updateQueue=e,zc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)di(n,e),n=n.sibling;return F(uo,uo.current&1|2),Fi&&Oi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&De()>cu&&(t.flags|=128,a=!0,Bc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=fo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,zc(t,e),Bc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Fi)return Vc(t),null}else 2*De()-r.renderingStartTime>cu&&n!==536870912&&(t.flags|=128,a=!0,Bc(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?(Vc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=De(),e.sibling=null,n=uo.current,F(uo,a?n&1|2:n&1),Fi&&Oi(t,r.treeForkCount),e);case 22:case 23:return lo(t),no(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Vc(t),t.subtreeFlags&6&&(t.flags|=8192)):Vc(t),n=t.updateQueue,n!==null&&zc(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&&se(ya),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Xi(ca),Vc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Uc(e,t){switch(ji(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xi(ca),pe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return he(t),null;case 31:if(t.memoizedState!==null){if(lo(t),t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return se(uo),null;case 4:return pe(),null;case 10:return Xi(t.type),null;case 22:case 23:return lo(t),no(),e!==null&&se(ya),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Xi(ca),null;case 25:return null;default:return null}}function Wc(e,t){switch(ji(t),t.tag){case 3:Xi(ca),pe();break;case 26:case 27:case 5:he(t);break;case 4:pe();break;case 31:t.memoizedState!==null&&lo(t);break;case 13:lo(t);break;case 19:se(uo);break;case 10:Xi(t.type);break;case 22:case 23:lo(t),no(),e!==null&&se(ya);break;case 24:Xi(ca)}}function Gc(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){Zu(t,t.return,e)}}function Kc(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){Zu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Zu(t,t.return,e)}}function qc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Za(t,n)}catch(t){Zu(e,e.return,t)}}}function Jc(e,t,n){n.props=Ys(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Zu(e,t,n)}}function Yc(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){Zu(e,t,n)}}function Xc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Zu(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){Zu(e,t,n)}else n.current=null}}function Zc(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){Zu(e,e.return,t)}}function Qc(e,t,n){try{var r=e.stateNode;Ud(r,e.type,n,t),r[st]=t}catch(t){Zu(e,e.return,t)}}function $c(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&af(e.type)||e.tag===4}function el(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||$c(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&&af(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 tl(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=$t));else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(tl(e,t,n),e=e.sibling;e!==null;)tl(e,t,n),e=e.sibling}function nl(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&&af(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Hd(t,r,n),t[ot]=e,t[st]=n}catch(t){Zu(e,e.return,t)}}var il=!1,al=!1,ol=!1,sl=typeof WeakSet==`function`?WeakSet:Set,cl=null;function ll(e,t){if(e=e.containerInfo,Kd=lp,e=Dr(e),Or(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(qd={focusedElem:e,selectionRange:n},lp=!1,cl=t;cl!==null;)if(t=cl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,cl=e;else for(;cl!==null;){switch(t=cl,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=Ys(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Zu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)cf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:cf(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,cl=e;break}cl=t.return}}function ul(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Tl(e,n),r&4&&Gc(5,n);break;case 1:if(Tl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Zu(n,n.return,e)}else{var i=Ys(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Zu(n,n.return,e)}}}r&64&&qc(n),r&512&&Yc(n,n.return);break;case 3:if(Tl(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{Za(e,t)}catch(e){Zu(n,n.return,e)}}break;case 27:t===null&&r&4&&rl(n);case 26:case 5:Tl(e,n),t===null&&r&4&&Zc(n),r&512&&Yc(n,n.return);break;case 12:Tl(e,n);break;case 31:Tl(e,n),r&4&&gl(e,n);break;case 13:Tl(e,n),r&4&&_l(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=td.bind(null,n),mf(e,n))));break;case 22:if(r=n.memoizedState!==null||il,!r){t=t!==null&&t.memoizedState!==null||al,i=il;var a=al;il=r,(al=t)&&!a?Dl(e,n,!!(n.subtreeFlags&8772)):Tl(e,n),il=i,al=a}break;case 30:break;default:Tl(e,n)}}function dl(e){var t=e.alternate;t!==null&&(e.alternate=null,dl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&mt(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 fl=null,pl=!1;function ml(e,t,n){for(n=n.child;n!==null;)hl(e,t,n),n=n.sibling}function hl(e,t,n){if(Ie&&typeof Ie.onCommitFiberUnmount==`function`)try{Ie.onCommitFiberUnmount(Fe,n)}catch{}switch(n.tag){case 26:al||Xc(n,t),ml(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:al||Xc(n,t);var r=fl,i=pl;af(n.type)&&(fl=n.stateNode,pl=!1),ml(e,t,n),yf(n.stateNode),fl=r,pl=i;break;case 5:al||Xc(n,t);case 6:if(r=fl,i=pl,fl=null,ml(e,t,n),fl=r,pl=i,fl!==null){if(pl)try{(fl.nodeType===9?fl.body:fl.nodeName===`HTML`?fl.ownerDocument.body:fl).removeChild(n.stateNode)}catch(e){Zu(n,t,e)}else try{fl.removeChild(n.stateNode)}catch(e){Zu(n,t,e)}}break;case 18:fl!==null&&(pl?(e=fl,of(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Pp(e)):of(fl,n.stateNode));break;case 4:r=fl,i=pl,fl=n.stateNode.containerInfo,pl=!0,ml(e,t,n),fl=r,pl=i;break;case 0:case 11:case 14:case 15:Kc(2,n,t),al||Kc(4,n,t),ml(e,t,n);break;case 1:al||(Xc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Jc(n,t,r)),ml(e,t,n);break;case 21:ml(e,t,n);break;case 22:al=(r=al)||n.memoizedState!==null,ml(e,t,n),al=r;break;default:ml(e,t,n)}}function gl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Pp(e)}catch(e){Zu(t,t.return,e)}}}function _l(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Pp(e)}catch(e){Zu(t,t.return,e)}}function vl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new sl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new sl),t;default:throw Error(i(435,e.tag))}}function yl(e,t){var n=vl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=nd.bind(null,e,t);t.then(r,r)}})}function bl(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(af(c.type)){fl=c.stateNode,pl=!1;break a}break;case 5:fl=c.stateNode,pl=!1;break a;case 3:case 4:fl=c.stateNode.containerInfo,pl=!0;break a}c=c.return}if(fl===null)throw Error(i(160));hl(o,s,a),fl=null,pl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Sl(t,e),t=t.sibling}var xl=null;function Sl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:bl(t,e),Cl(e),r&4&&(Kc(3,e,e.return),Gc(3,e),Kc(5,e,e.return));break;case 1:bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),r&64&&il&&(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=xl;if(bl(t,e),Cl(e),r&512&&(al||n===null||Xc(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[pt]||o[ot]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Hd(o,r,n),o[ot]=e,yt(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),Hd(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),Hd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[ot]=e,yt(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&&Qc(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:bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),n!==null&&r&4&&Qc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),e.flags&32){a=e.stateNode;try{Gt(a,``)}catch(t){Zu(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Qc(e,a,n===null?a:n.memoizedProps)),r&1024&&(ol=!0);break;case 6:if(bl(t,e),Cl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Zu(e,e.return,t)}}break;case 3:if(Uf=null,a=xl,xl=Sf(t.containerInfo),bl(t,e),xl=a,Cl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Pp(t.containerInfo)}catch(t){Zu(e,e.return,t)}ol&&(ol=!1,wl(e));break;case 4:r=xl,xl=Sf(e.stateNode.containerInfo),bl(t,e),Cl(e),xl=r;break;case 12:bl(t,e),Cl(e);break;case 31:bl(t,e),Cl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 13:bl(t,e),Cl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(ou=De()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=il,d=al;if(il=u||a,al=d||l,bl(t,e),al=d,il=u,Cl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||il||al||El(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){Zu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Zu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?sf(m,!0):sf(l.stateNode,!1)}catch(e){Zu(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,yl(e,n))));break;case 19:bl(t,e),Cl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 30:break;case 21:break;default:bl(t,e),Cl(e)}}function Cl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if($c(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;nl(e,el(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Gt(o,``),n.flags&=-33),nl(e,el(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;tl(e,el(e),s);break;default:throw Error(i(161))}}catch(t){Zu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function wl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;wl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ul(e,t.alternate,t),t=t.sibling}function El(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Kc(4,t,t.return),El(t);break;case 1:Xc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Jc(t,t.return,n),El(t);break;case 27:yf(t.stateNode);case 26:case 5:Xc(t,t.return),El(t);break;case 22:t.memoizedState===null&&El(t);break;case 30:El(t);break;default:El(t)}e=e.sibling}}function Dl(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:Dl(i,a,n),Gc(4,a);break;case 1:if(Dl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Zu(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++)z(c[i],s)}catch(e){Zu(r,r.return,e)}}n&&o&64&&qc(a),Yc(a,a.return);break;case 27:rl(a);case 26:case 5:Dl(i,a,n),n&&r===null&&o&4&&Zc(a),Yc(a,a.return);break;case 12:Dl(i,a,n);break;case 31:Dl(i,a,n),n&&o&4&&gl(i,a);break;case 13:Dl(i,a,n),n&&o&4&&_l(i,a);break;case 22:a.memoizedState===null&&Dl(i,a,n),Yc(a,a.return);break;case 30:break;default:Dl(i,a,n)}t=t.sibling}}function Ol(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&&ua(n))}function kl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ua(e))}function Al(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)jl(e,t,n,r),t=t.sibling}function jl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Al(e,t,n,r),i&2048&&Gc(9,t);break;case 1:Al(e,t,n,r);break;case 3:Al(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&&ua(e)));break;case 12:if(i&2048){Al(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){Zu(t,t.return,e)}}else Al(e,t,n,r);break;case 31:Al(e,t,n,r);break;case 13:Al(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Al(e,t,n,r):(a._visibility|=2,Ml(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Al(e,t,n,r):Nl(e,t),i&2048&&Ol(o,t);break;case 24:Al(e,t,n,r),i&2048&&kl(t.alternate,t);break;default:Al(e,t,n,r)}}function Ml(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:Ml(a,o,s,c,i),Gc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Ml(a,o,s,c,i)):u._visibility&2?Ml(a,o,s,c,i):Nl(a,o),i&&l&2048&&Ol(o.alternate,o);break;case 24:Ml(a,o,s,c,i),i&&l&2048&&kl(o.alternate,o);break;default:Ml(a,o,s,c,i)}t=t.sibling}}function Nl(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:Nl(n,r),i&2048&&Ol(r.alternate,r);break;case 24:Nl(n,r),i&2048&&kl(r.alternate,r);break;default:Nl(n,r)}t=t.sibling}}var Pl=8192;function Fl(e,t,n){if(e.subtreeFlags&Pl)for(e=e.child;e!==null;)Il(e,t,n),e=e.sibling}function Il(e,t,n){switch(e.tag){case 26:Fl(e,t,n),e.flags&Pl&&e.memoizedState!==null&&Jf(n,xl,e.memoizedState,e.memoizedProps);break;case 5:Fl(e,t,n);break;case 3:case 4:var r=xl;xl=Sf(e.stateNode.containerInfo),Fl(e,t,n),xl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Pl,Pl=16777216,Fl(e,t,n),Pl=r):Fl(e,t,n));break;default:Fl(e,t,n)}}function Ll(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 Rl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];cl=r,Vl(r,e)}Ll(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)zl(e),e=e.sibling}function zl(e){switch(e.tag){case 0:case 11:case 15:Rl(e),e.flags&2048&&Kc(9,e,e.return);break;case 3:Rl(e);break;case 12:Rl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Bl(e)):Rl(e);break;default:Rl(e)}}function Bl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];cl=r,Vl(r,e)}Ll(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Kc(8,t,t.return),Bl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Bl(t));break;default:Bl(t)}e=e.sibling}}function Vl(e,t){for(;cl!==null;){var n=cl;switch(n.tag){case 0:case 11:case 15:Kc(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:ua(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,cl=r;else a:for(n=e;cl!==null;){r=cl;var i=r.sibling,a=r.return;if(dl(r),r===n){cl=null;break a}if(i!==null){i.return=a,cl=i;break a}cl=a}}}var Hl={getCacheForType:function(e){var t=na(ca),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return na(ca).controller.signal}},Ul=typeof WeakMap==`function`?WeakMap:Map,Wl=0,Gl=null,V=null,H=0,Kl=0,ql=null,Jl=!1,Yl=!1,Xl=!1,Zl=0,Ql=0,$l=0,eu=0,tu=0,U=0,nu=0,ru=null,iu=null,au=!1,ou=0,su=0,cu=1/0,lu=null,uu=null,du=0,fu=null,pu=null,mu=0,hu=0,gu=null,_u=null,vu=0,yu=null;function bu(){return Wl&2&&H!==0?H&-H:N.T===null?rt():vd()}function xu(){if(U===0){if(!(H&536870912)||Fi){var e=Ue;Ue<<=1,!(Ue&3932160)&&(Ue=262144),U=e}else U=536870912}return e=ro.current,e!==null&&(e.flags|=32),U}function Su(e,t,n){(e===Gl&&(Kl===2||Kl===9)||e.cancelPendingCommit!==null)&&(Ou(e,0),W(e,H,U,!1)),Ze(e,n),(!(Wl&2)||e!==Gl)&&(e===Gl&&(!(Wl&2)&&(eu|=n),Ql===4&&W(e,H,U,!1)),ud(e))}function Cu(e,t,n){if(Wl&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||qe(e,t),a=r?Iu(e,t):Pu(e,t,!0),o=r;do{if(a===0){Yl&&!r&&W(e,t,0,!1);break}if(n=e.current.alternate,o&&!Tu(n)){a=Pu(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=ru;var l=c.current.memoizedState.isDehydrated;if(l&&(Ou(c,s).flags|=256),s=Pu(c,s,!1),s!==2){if(Xl&&!l){c.errorRecoveryDisabledLanes|=o,eu|=o,a=4;break a}o=iu,iu=a,o!==null&&(iu===null?iu=o:iu.push.apply(iu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Ou(e,0),W(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:W(r,t,U,!Jl);break a;case 2:iu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=ou+300-De(),10<a)){if(W(r,t,U,!Jl),Ke(r,0,!0)!==0)break a;mu=t,r.timeoutHandle=$d(wu.bind(null,r,n,iu,lu,au,t,U,eu,nu,Jl,o,`Throttled`,-0,0),a);break a}wu(r,n,iu,lu,au,t,U,eu,nu,Jl,o,null,-0,0)}break}while(1);ud(e)}function wu(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:$t},Il(t,a,d);var m=(a&62914560)===a?ou-De():(a&4194048)===a?su-De():0;if(m=Xf(d,m),m!==null){mu=a,e.cancelPendingCommit=m(Uu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),W(e,a,o,!l);return}}Uu(e,t,a,n,r,i,o,s,c)}function Tu(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(!Sr(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 W(e,t,n,r){t&=~tu,t&=~eu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Re(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&R(e,n,t)}function Eu(){return Wl&6?!0:(dd(0,!1),!1)}function Du(){if(V!==null){if(Kl===0)var e=V.return;else e=V,Ji=qi=null,jo(e),Na=null,Pa=0,e=V;for(;e!==null;)Wc(e.alternate,e),e=e.return;V=null}}function Ou(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,ef(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),mu=0,Du(),Gl=e,V=n=ui(e.current,null),H=t,Kl=0,ql=null,Jl=!1,Yl=qe(e,t),Xl=!1,nu=U=tu=eu=$l=Ql=0,iu=ru=null,au=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Re(r),a=1<<i;t|=e[i],r&=~a}return Zl=t,ei(),n}function ku(e,t){B=null,N.H=Vs,t===Ca||t===Ta?(t=ja(),Kl=3):t===wa?(t=ja(),Kl=4):Kl=t===ac?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,ql=t,V===null&&(Ql=1,$s(e,vi(t,e.current)))}function Au(){var e=ro.current;return e===null?!0:(H&4194048)===H?io===null:(H&62914560)===H||H&536870912?e===io:!1}function ju(){var e=N.H;return N.H=Vs,e===null?Vs:e}function Mu(){var e=N.A;return N.A=Hl,e}function Nu(){Ql=4,Jl||(H&4194048)!==H&&ro.current!==null||(Yl=!0),!($l&134217727)&&!(eu&134217727)||Gl===null||W(Gl,H,U,!1)}function Pu(e,t,n){var r=Wl;Wl|=2;var i=ju(),a=Mu();(Gl!==e||H!==t)&&(lu=null,Ou(e,t)),t=!1;var o=Ql;a:do try{if(Kl!==0&&V!==null){var s=V,c=ql;switch(Kl){case 8:Du(),o=6;break a;case 3:case 2:case 9:case 6:ro.current===null&&(t=!0);var l=Kl;if(Kl=0,ql=null,Bu(e,s,c,l),n&&Yl){o=0;break a}break;default:l=Kl,Kl=0,ql=null,Bu(e,s,c,l)}}Fu(),o=Ql;break}catch(t){ku(e,t)}while(1);return t&&e.shellSuspendCounter++,Ji=qi=null,Wl=r,N.H=i,N.A=a,V===null&&(Gl=null,H=0,ei()),o}function Fu(){for(;V!==null;)Ru(V)}function Iu(e,t){var n=Wl;Wl|=2;var r=ju(),a=Mu();Gl!==e||H!==t?(lu=null,cu=De()+500,Ou(e,t)):Yl=qe(e,t);a:do try{if(Kl!==0&&V!==null){t=V;var o=ql;b:switch(Kl){case 1:Kl=0,ql=null,Bu(e,t,o,1);break;case 2:case 9:if(Da(o)){Kl=0,ql=null,zu(t);break}t=function(){Kl!==2&&Kl!==9||Gl!==e||(Kl=7),ud(e)},o.then(t,t);break a;case 3:Kl=7;break a;case 4:Kl=5;break a;case 7:Da(o)?(Kl=0,ql=null,zu(t)):(Kl=0,ql=null,Bu(e,t,o,7));break;case 5:var s=null;switch(V.tag){case 26:s=V.memoizedState;case 5:case 27:var c=V;if(s?qf(s):c.stateNode.complete){Kl=0,ql=null;var l=c.sibling;if(l!==null)V=l;else{var u=c.return;u===null?V=null:(V=u,Vu(u))}break b}}Kl=0,ql=null,Bu(e,t,o,5);break;case 6:Kl=0,ql=null,Bu(e,t,o,6);break;case 8:Du(),Ql=6;break a;default:throw Error(i(462))}}Lu();break}catch(t){ku(e,t)}while(1);return Ji=qi=null,N.H=r,N.A=a,Wl=n,V===null?(Gl=null,H=0,ei(),Ql):0}function Lu(){for(;V!==null&&!Te();)Ru(V)}function Ru(e){var t=Fc(e.alternate,e,Zl);e.memoizedProps=e.pendingProps,t===null?Vu(e):V=t}function zu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=yc(n,t,t.pendingProps,t.type,void 0,H);break;case 11:t=yc(n,t,t.pendingProps,t.type.render,t.ref,H);break;case 5:jo(t);default:Wc(n,t),t=V=di(t,Zl),t=Fc(n,t,Zl)}e.memoizedProps=e.pendingProps,t===null?Vu(e):V=t}function Bu(e,t,n,r){Ji=qi=null,jo(t),Na=null,Pa=0;var i=t.return;try{if(ic(e,i,t,n,H)){Ql=1,$s(e,vi(n,e.current)),V=null;return}}catch(t){if(i!==null)throw V=i,t;Ql=1,$s(e,vi(n,e.current)),V=null;return}t.flags&32768?(Fi||r===1?e=!0:Yl||H&536870912?e=!1:(Jl=e=!0,(r===2||r===9||r===3||r===6)&&(r=ro.current,r!==null&&r.tag===13&&(r.flags|=16384))),Hu(t,e)):Vu(t)}function Vu(e){var t=e;do{if(t.flags&32768){Hu(t,Jl);return}e=t.return;var n=Hc(t.alternate,t,Zl);if(n!==null){V=n;return}if(t=t.sibling,t!==null){V=t;return}V=t=e}while(t!==null);Ql===0&&(Ql=5)}function Hu(e,t){do{var n=Uc(e.alternate,e);if(n!==null){n.flags&=32767,V=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){V=e;return}V=e=n}while(e!==null);Ql=6,V=null}function Uu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Ju();while(du!==0);if(Wl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=$r,Qe(e,n,o,s,c,l),e===Gl&&(V=Gl=null,H=0),pu=t,fu=e,mu=n,hu=o,gu=a,_u=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,rd(Ae,function(){return Yu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=N.T,N.T=null,a=P.p,P.p=2,s=Wl,Wl|=4;try{ll(e,t,n)}finally{Wl=s,P.p=a,N.T=r}}du=1,Wu(),Gu(),Ku()}}function Wu(){if(du===1){du=0;var e=fu,t=pu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=N.T,N.T=null;var r=P.p;P.p=2;var i=Wl;Wl|=4;try{Sl(t,e);var a=qd,o=Dr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Er(s.ownerDocument.documentElement,s)){if(c!==null&&Or(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 _=Tr(s,h),v=Tr(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}}lp=!!Kd,qd=Kd=null}finally{Wl=i,P.p=r,N.T=n}}e.current=t,du=2}}function Gu(){if(du===2){du=0;var e=fu,t=pu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=N.T,N.T=null;var r=P.p;P.p=2;var i=Wl;Wl|=4;try{ul(e,t.alternate,t)}finally{Wl=i,P.p=r,N.T=n}}du=3}}function Ku(){if(du===4||du===3){du=0,Ee();var e=fu,t=pu,n=mu,r=_u;t.subtreeFlags&10256||t.flags&10256?du=5:(du=0,pu=fu=null,qu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(uu=null),nt(n),t=t.stateNode,Ie&&typeof Ie.onCommitFiberRoot==`function`)try{Ie.onCommitFiberRoot(Fe,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=N.T,i=P.p,P.p=2,N.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{N.T=t,P.p=i}}mu&3&&Ju(),ud(e),i=e.pendingLanes,n&261930&&i&42?e===yu?vu++:(vu=0,yu=e):vu=0,dd(0,!1)}}function qu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ua(t)))}function Ju(){return Wu(),Gu(),Ku(),Yu()}function Yu(){if(du!==5)return!1;var e=fu,t=hu;hu=0;var n=nt(mu),r=N.T,a=P.p;try{P.p=32>n?32:n,N.T=null,n=gu,gu=null;var o=fu,s=mu;if(du=0,pu=fu=null,mu=0,Wl&6)throw Error(i(331));var c=Wl;if(Wl|=4,zl(o.current),jl(o,o.current,s,n),Wl=c,dd(0,!1),Ie&&typeof Ie.onPostCommitFiberRoot==`function`)try{Ie.onPostCommitFiberRoot(Fe,o)}catch{}return!0}finally{P.p=a,N.T=r,qu(e,t)}}function Xu(e,t,n){t=vi(n,t),t=tc(e.stateNode,t,2),e=Ga(e,t,2),e!==null&&(Ze(e,2),ud(e))}function Zu(e,t,n){if(e.tag===3)Xu(e,e,n);else for(;t!==null;){if(t.tag===3){Xu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(uu===null||!uu.has(r))){e=vi(n,e),n=nc(2),r=Ga(t,n,2),r!==null&&(rc(n,r,t,e),Ze(r,2),ud(r));break}}t=t.return}}function Qu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ul;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)||(Xl=!0,i.add(n),e=$u.bind(null,e,t,n),t.then(e,e))}function $u(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Gl===e&&(H&n)===n&&(Ql===4||Ql===3&&(H&62914560)===H&&300>De()-ou?!(Wl&2)&&Ou(e,0):tu|=n,nu===H&&(nu=0)),ud(e)}function ed(e,t){t===0&&(t=Ye()),e=ri(e,t),e!==null&&(Ze(e,t),ud(e))}function td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ed(e,n)}function nd(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),ed(e,n)}function rd(e,t){return we(e,t)}var id=null,ad=null,od=!1,sd=!1,cd=!1,ld=0;function ud(e){e!==ad&&e.next===null&&(ad===null?id=ad=e:ad=ad.next=e),sd=!0,od||(od=!0,_d())}function dd(e,t){if(!cd&&sd){cd=!0;do for(var n=!1,r=id;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-Re(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,gd(r,a))}else a=H,a=Ke(r,r===Gl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||qe(r,a)||(n=!0,gd(r,a))}r=r.next}while(n);cd=!1}}function fd(){pd()}function pd(){sd=od=!1;var e=0;ld!==0&&Qd()&&(e=ld);for(var t=De(),n=null,r=id;r!==null;){var i=r.next,a=md(r,t);a===0?(r.next=null,n===null?id=i:n.next=i,i===null&&(ad=n)):(n=r,(e!==0||a&3)&&(sd=!0)),r=i}du!==0&&du!==5||dd(e,!1),ld!==0&&(ld=0)}function md(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Re(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Je(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Gl,n=H,n=Ke(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Kl===2||Kl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&I(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||qe(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&I(r),nt(n)){case 2:case 8:n=ke;break;case 32:n=Ae;break;case 268435456:n=Me;break;default:n=Ae}return r=hd.bind(null,e),n=we(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&I(r),e.callbackPriority=2,e.callbackNode=null,2}function hd(e,t){if(du!==0&&du!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Ju()&&e.callbackNode!==n)return null;var r=H;return r=Ke(e,e===Gl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Cu(e,r,t),md(e,De()),e.callbackNode!=null&&e.callbackNode===n?hd.bind(null,e):null)}function gd(e,t){if(Ju())return null;Cu(e,t,!0)}function _d(){nf(function(){Wl&6?we(L,fd):pd()})}function vd(){if(ld===0){var e=pa;e===0&&(e=He,He<<=1,!(He&261888)&&(He=256)),ld=e}return ld}function yd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Qt(``+e)}function bd(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 xd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=yd((i[st]||null).action),o=r.submitter;o&&(t=(t=o[st]||null)?yd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new xn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(ld!==0){var e=o?bd(i,o):new FormData(i);Ds(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?bd(i,o):new FormData(i),Ds(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Sd=0;Sd<Jr.length;Sd++){var Cd=Jr[Sd];Yr(Cd.toLowerCase(),`on`+(Cd[0].toUpperCase()+Cd.slice(1)))}Yr(Br,`onAnimationEnd`),Yr(Vr,`onAnimationIteration`),Yr(Hr,`onAnimationStart`),Yr(`dblclick`,`onDoubleClick`),Yr(`focusin`,`onFocus`),Yr(`focusout`,`onBlur`),Yr(Ur,`onTransitionRun`),Yr(Wr,`onTransitionStart`),Yr(Gr,`onTransitionCancel`),Yr(Kr,`onTransitionEnd`),Ct(`onMouseEnter`,[`mouseout`,`mouseover`]),Ct(`onMouseLeave`,[`mouseout`,`mouseover`]),Ct(`onPointerEnter`,[`pointerout`,`pointerover`]),Ct(`onPointerLeave`,[`pointerout`,`pointerover`]),St(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),St(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),St(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),St(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),St(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),St(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var wd=`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(` `),Td=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(wd));function Ed(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){Xr(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){Xr(e)}i.currentTarget=null,a=c}}}}function G(e,t){var n=t[lt];n===void 0&&(n=t[lt]=new Set);var r=e+`__bubble`;n.has(r)||(Ad(t,e,2,!1),n.add(r))}function Dd(e,t,n){var r=0;t&&(r|=4),Ad(n,e,r,t)}var Od=`_reactListening`+Math.random().toString(36).slice(2);function kd(e){if(!e[Od]){e[Od]=!0,bt.forEach(function(t){t!==`selectionchange`&&(Td.has(t)||Dd(t,!1,e),Dd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Od]||(t[Od]=!0,Dd(`selectionchange`,!1,t))}}function Ad(e,t,n,r){switch(hp(t)){case 2:var i=Q;break;case 8:i=up;break;default:i=dp}n=i.bind(null,t,n,e),i=void 0,!un||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 jd(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=ht(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}sn(function(){var r=a,i=tn(n),s=[];a:{var c=qr.get(e);if(c!==void 0){var l=xn,u=e;switch(e){case`keypress`:if(gn(n)===0)break a;case`keydown`:case`keyup`:l=zn;break;case`focusin`:u=`focus`,l=An;break;case`focusout`:u=`blur`,l=An;break;case`beforeblur`:case`afterblur`:l=An;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=On;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=kn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Vn;break;case Br:case Vr:case Hr:l=jn;break;case Kr:l=Hn;break;case`scroll`:case`scrollend`:l=Cn;break;case`wheel`:l=Un;break;case`copy`:case`cut`:case`paste`:l=Mn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Bn;break;case`toggle`:case`beforetoggle`:l=Wn}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=cn(m,p),g!=null&&d.push(Md(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!==en&&(u=n.relatedTarget||n.fromElement)&&(ht(u)||u[ct]))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?ht(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=On,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Bn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:_t(l),h=u==null?c:_t(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,ht(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=Pd,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&&Fd(s,c,l,d,!1),u!==null&&f!==null&&Fd(s,f,u,d,!0)}}a:{if(c=r?_t(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=ur;else if(ir(c)){if(dr)v=br;else{v=vr;var y=_r}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Yt(r.elementType)&&(v=ur):v=yr;if(v&&=v(e,r)){ar(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Vt(c,`number`,c.value)}switch(y=r?_t(r):window,e){case`focusin`:(ir(y)||y.contentEditable===`true`)&&(Ar=y,jr=r,Mr=null);break;case`focusout`:Mr=jr=Ar=null;break;case`mousedown`:Nr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Nr=!1,Pr(s,n,i);break;case`selectionchange`:if(kr)break;case`keydown`:case`keyup`:Pr(s,n,i)}var b;if(Kn)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 er?Qn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Yn&&n.locale!==`ko`&&(er||x!==`onCompositionStart`?x===`onCompositionEnd`&&er&&(b=hn()):(fn=i,pn=`value`in fn?fn.value:fn.textContent,er=!0)),y=Nd(r,x),0<y.length&&(x=new Nn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=$n(n),b!==null&&(x.data=b)))),(b=Jn?tr(e,n):nr(e,n))&&(x=Nd(r,`onBeforeInput`),0<x.length&&(y=new Nn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),xd(s,e,r,n,i)}Ed(s,t)})}function Md(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Nd(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=cn(e,n),i!=null&&r.unshift(Md(e,i,a)),i=cn(e,t),i!=null&&r.push(Md(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Pd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Fd(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=cn(n,a),l!=null&&o.unshift(Md(n,l,c))):i||(l=cn(n,a),l!=null&&o.push(Md(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Id=/\r\n?/g,Ld=/\u0000|\uFFFD/g;function Rd(e){return(typeof e==`string`?e:``+e).replace(Id,`
|
|
9
9
|
`).replace(Ld,``)}function zd(e,t){return t=Rd(t),Rd(e)===t}function Bd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Gt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Gt(e,``+r);break;case`className`:kt(e,`class`,r);break;case`tabIndex`:kt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:kt(e,n,r);break;case`style`:Jt(e,r,o);break;case`data`:if(t!==`object`){kt(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=Qt(``+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`&&Bd(e,t,`name`,a.name,a,null),Bd(e,t,`formEncType`,a.formEncType,a,null),Bd(e,t,`formMethod`,a.formMethod,a,null),Bd(e,t,`formTarget`,a.formTarget,a,null)):(Bd(e,t,`encType`,a.encType,a,null),Bd(e,t,`method`,a.method,a,null),Bd(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Qt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=$t);break;case`onScroll`:r!=null&&G(`scroll`,e);break;case`onScrollEnd`:r!=null&&G(`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=Qt(``+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`:G(`beforetoggle`,e),G(`toggle`,e),Ot(e,`popover`,r);break;case`xlinkActuate`:At(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:At(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:At(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:At(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:At(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:At(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:At(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Ot(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=Xt.get(n)||n,Ot(e,n,r))}}function Vd(e,t,n,r,a,o){switch(n){case`style`:Jt(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`?Gt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Gt(e,``+r);break;case`onScroll`:r!=null&&G(`scroll`,e);break;case`onScrollEnd`:r!=null&&G(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=$t);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!xt.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[st]||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,``):Ot(e,n,r)}}}function Hd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:G(`error`,e),G(`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:Bd(e,t,o,s,n,null)}}a&&Bd(e,t,`srcSet`,n.srcSet,n,null),r&&Bd(e,t,`src`,n.src,n,null);return;case`input`:G(`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:Bd(e,t,r,d,n,null)}}Bt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in G(`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:Bd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Ht(e,!!r,n,!0):Ht(e,!!r,t,!1);return;case`textarea`:for(s in G(`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:Bd(e,t,s,c,n,null)}Wt(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:Bd(e,t,l,r,n,null)}return;case`dialog`:G(`beforetoggle`,e),G(`toggle`,e),G(`cancel`,e),G(`close`,e);break;case`iframe`:case`object`:G(`load`,e);break;case`video`:case`audio`:for(r=0;r<wd.length;r++)G(wd[r],e);break;case`image`:G(`error`,e),G(`load`,e);break;case`details`:G(`toggle`,e);break;case`embed`:case`source`:case`link`:G(`error`,e),G(`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:Bd(e,t,u,r,n,null)}return;default:if(Yt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Vd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Bd(e,t,c,r,n,null))}function Ud(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)||Bd(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&&Bd(e,t,p,m,r,f)}}zt(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)||Bd(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&&Bd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Ht(e,!!n,n?[]:``,!1):Ht(e,!!n,t,!0)):Ht(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:Bd(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&&Bd(e,t,s,a,r,o)}Ut(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:Bd(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:Bd(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)&&Bd(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:Bd(e,t,u,p,r,m)}return;default:if(Yt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Vd(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||Vd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Bd(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||Bd(e,t,f,p,r,m)}function Wd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Gd(){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&&Wd(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&&Wd(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 Kd=null,qd=null;function Jd(e){return e.nodeType===9?e:e.ownerDocument}function Yd(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 Xd(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 Zd(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 K=null;function Qd(){var e=window.event;return e&&e.type===`popstate`?e!==K&&(K=e,!0):(K=null,!1)}var $d=typeof setTimeout==`function`?setTimeout:void 0,ef=typeof clearTimeout==`function`?clearTimeout:void 0,tf=typeof Promise==`function`?Promise:void 0,nf=typeof queueMicrotask==`function`?queueMicrotask:tf===void 0?$d:function(e){return tf.resolve(null).then(e).catch(rf)};function rf(e){setTimeout(function(){throw e})}function af(e){return e===`head`}function of(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),Pp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)yf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,yf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[pt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&yf(e.ownerDocument.body)}n=i}while(n);Pp(t)}function sf(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 cf(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`:cf(n),mt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function lf(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[pt])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=q(e.nextSibling),e===null)break}return null}function uf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=q(e.nextSibling),e===null))return null;return e}function df(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=q(e.nextSibling),e===null))return null;return e}function ff(e){return e.data===`$?`||e.data===`$~`}function pf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function mf(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 q(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 hf=null;function gf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return q(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function _f(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 vf(e,t,n){switch(t=Jd(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 yf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);mt(e)}var bf=new Map,xf=new Set;function Sf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Cf=P.d;P.d={f:wf,r:Tf,D:Y,C:Df,L:X,m:Of,X:Af,S:kf,M:jf};function wf(){var e=Cf.f(),t=Eu();return e||t}function Tf(e){var t=gt(e);t!==null&&t.tag===5&&t.type===`form`?ks(t):Cf.r(e)}var Ef=typeof document>`u`?null:document;function J(e,t,n){var r=Ef;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),xf.has(i)||(xf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Hd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Y(e){Cf.D(e),J(`dns-prefetch`,e,null)}function Df(e,t){Cf.C(e,t),J(`preconnect`,e,t)}function X(e,t,n){Cf.L(e,t,n);var r=Ef;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=Nf(e);break;case`script`:a=Lf(e)}bf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),bf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Pf(a))||t===`script`&&r.querySelector(Rf(a))||(t=r.createElement(`link`),Hd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Of(e,t){Cf.m(e,t);var n=Ef;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Lf(e)}if(!bf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),bf.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`),Hd(r,`link`,e),yt(r),n.head.appendChild(r)}}}function kf(e,t,n){Cf.S(e,t,n);var r=Ef;if(r&&e){var i=vt(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=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=bf.get(a))&&Vf(e,n);var c=o=r.createElement(`link`);yt(c),Hd(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){Cf.X(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=m({src:e,async:!0},t),(t=bf.get(i))&&Hf(e,t),a=n.createElement(`script`),yt(a),Hd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t){Cf.M(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Lf(e),a=r.get(i);a||(a=n.querySelector(Rf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=bf.get(i))&&Hf(e,t),a=n.createElement(`script`),yt(a),Hd(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=ue.current)?Sf(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=vt(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=vt(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),bf.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},bf.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=vt(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="`+Rt(e)+`"`}function Pf(e){return`link[rel="stylesheet"][`+e+`]`}function Ff(e){return m({},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}),Hd(t,`link`,n),yt(t),e.head.appendChild(t))}function Lf(e){return`[src="`+Rt(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~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var a=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Hd(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,yt(o),o;r=Ff(n),(a=bf.get(a))&&Vf(r,a),o=(e.ownerDocument||e).createElement(`link`),yt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Hd(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,yt(a),a):(r=n,(a=bf.get(o))&&(r=m({},n),Hf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),yt(a),Hd(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[pt]||a[ot]||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,yt(a);return}a=t.ownerDocument||t,r=Ff(r),(i=bf.get(i))&&Vf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Hd(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*Gd());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:re,_currentValue2:re,_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=Xe(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xe(0),this.hiddenUpdates=Xe(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=ci(3,null,null,t),e.current=a,a.stateNode=e,t=la(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ha(a),e}function ip(e){return e?(e=oi,e):oi}function ap(e,t,n,r,i,a){i=ip(i),r.context===null?r.context=i:r.pendingContext=i,r=Wa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ga(e,r,t),n!==null&&(Su(n,e,t),Ka(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 Z(e){if(e.tag===13||e.tag===31){var t=ri(e,67108864);t!==null&&Su(t,e,67108864),sp(e,67108864)}}function cp(e){if(e.tag===13||e.tag===31){var t=bu();t=tt(t);var n=ri(e,t);n!==null&&Su(n,e,t),sp(e,t)}}var lp=!0;function Q(e,t,n,r){var i=N.T;N.T=null;var a=P.p;try{P.p=2,dp(e,t,n,r)}finally{P.p=a,N.T=i}}function up(e,t,n,r){var i=N.T;N.T=null;var a=P.p;try{P.p=8,dp(e,t,n,r)}finally{P.p=a,N.T=i}}function dp(e,t,n,r){if(lp){var i=fp(r);if(i===null)jd(e,t,r,pp,n),wp(e,r);else if(Ep(i,e,t,n,r))r.stopPropagation();else if(wp(e,r),t&4&&-1<Cp.indexOf(e)){for(;i!==null;){var a=gt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Ge(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Re(o);s.entanglements[1]|=c,o&=~c}ud(a),!(Wl&6)&&(cu=De()+500,dd(0,!1))}}break;case 31:case 13:s=ri(a,2),s!==null&&Su(s,a,2),Eu(),sp(a,2)}if(a=fp(r),a===null&&jd(e,t,r,pp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else jd(e,t,r,null,n)}}function fp(e){return e=tn(e),mp(e)}var pp=null;function mp(e){if(pp=null,e=ht(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 pp=e,null}function hp(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(Oe()){case L:return 2;case ke:return 8;case Ae:case je:return 32;case Me:return 268435456;default:return 32}default:return 32}}var gp=!1,_p=null,vp=null,yp=null,bp=new Map,xp=new Map,Sp=[],Cp=`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 wp(e,t){switch(e){case`focusin`:case`focusout`:_p=null;break;case`dragenter`:case`dragleave`:vp=null;break;case`mouseover`:case`mouseout`:yp=null;break;case`pointerover`:case`pointerout`:bp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:xp.delete(t.pointerId)}}function Tp(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=gt(t),t!==null&&Z(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ep(e,t,n,r,i){switch(t){case`focusin`:return _p=Tp(_p,e,t,n,r,i),!0;case`dragenter`:return vp=Tp(vp,e,t,n,r,i),!0;case`mouseover`:return yp=Tp(yp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return bp.set(a,Tp(bp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,xp.set(a,Tp(xp.get(a)||null,e,t,n,r,i)),!0}return!1}function Dp(e){var t=ht(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,it(e.priority,function(){cp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,it(e.priority,function(){cp(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 Op(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=fp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);en=r,n.target.dispatchEvent(r),en=null}else return t=gt(n),t!==null&&Z(t),e.blockedOn=n,!1;t.shift()}return!0}function kp(e,t,n){Op(e)&&n.delete(t)}function Ap(){gp=!1,_p!==null&&Op(_p)&&(_p=null),vp!==null&&Op(vp)&&(vp=null),yp!==null&&Op(yp)&&(yp=null),bp.forEach(kp),xp.forEach(kp)}function jp(e,n){e.blockedOn===n&&(e.blockedOn=null,gp||(gp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ap)))}var Mp=null;function Np(e){Mp!==e&&(Mp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Mp===e&&(Mp=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(mp(r||n)===null)continue;break}var a=gt(n);a!==null&&(e.splice(t,3),t-=3,Ds(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Pp(e){function t(t){return jp(t,e)}_p!==null&&jp(_p,e),vp!==null&&jp(vp,e),yp!==null&&jp(yp,e),bp.forEach(t),xp.forEach(t);for(var n=0;n<Sp.length;n++){var r=Sp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Sp.length&&(n=Sp[0],n.blockedOn===null);)Dp(n),n.blockedOn===null&&Sp.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[st]||null;if(typeof a==`function`)o||Np(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[st]||null)s=o.formAction;else if(mp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Np(n)}}}function Fp(){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 Ip(e){this._internalRoot=e}Lp.prototype.render=Ip.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;ap(n,bu(),e,t,null,null)},Lp.prototype.unmount=Ip.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),Eu(),t[ct]=null}};function Lp(e){this._internalRoot=e}Lp.prototype.unstable_scheduleHydration=function(e){if(e){var t=rt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Sp.length&&t!==0&&t<Sp[n].priority;n++);Sp.splice(n,0,e),n===0&&Dp(e)}};var Rp=n.version;if(Rp!==`19.2.8`)throw Error(i(527,Rp,`19.2.8`));P.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=u(t),e=e===null?null:f(e),e=e===null?null:e.stateNode,e};var zp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:N,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Bp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bp.isDisabled&&Bp.supportsFiber)try{Fe=Bp.inject(zp),Ie=Bp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Xs,s=Zs,c=Qs;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,Fp),e[ct]=t.current,kd(e),new Ip(t)}})),_=o(((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=g()})),v=d(),y=_(),b=`/api/v1/ws`,x=S()??`https://api.oonacode.oonak.ai`;function S(){return typeof OONACODE_GATEWAY_ORIGIN==`string`&&OONACODE_GATEWAY_ORIGIN.trim().length>0?OONACODE_GATEWAY_ORIGIN.trim().replace(/\/+$/,``):null}var C=[],w=`oonacode`;function T(e){return!C.includes(e)}var E=[`openrouter`,`azure-openai`,`ollama`];function D(e){return E.includes(e)}function O(e){return`${e===1?`one chat is`:`${e} chats are`} filed under this project — move or delete ${e===1?`it`:`them`} first`}function k(e){return e===`unverified`||e===`pending`||e===`verified`}function A(e){if(typeof e!=`object`||!e)return!1;let t=e.error;if(typeof t!=`object`||!t)return!1;let{code:n,details:r}=t;if(n!==`email_not_verified`||typeof r!=`object`||!r)return!1;let i=r;return k(i.verification)&&typeof i.email==`string`&&typeof i.resendAfterSec==`number`&&Number.isFinite(i.resendAfterSec)}function ee(e){return e.type===`stream_event`}var j=`This session is being continued from a previous conversation`;function M(e){return typeof e==`string`&&e.length>0&&e!==`<synthetic>`}function te(e){return e.trimStart().startsWith(j)}var ne=`Your response above was cut off mid-stream`;function N(e){return e.trimStart().startsWith(ne)}function P(e){return/^\[Request interrupted by user[^\]]*\]\s*$/.test(e.trim())}var re=[`Continue from where you left off.`,`Ultracode is on`,`workflow-authoring`,`# Workflow authoring reference`,`<system-reminder>`];function ie(e){let t=e.trimStart();return re.some(e=>t.startsWith(e))}function ae(e){let t=e.split(`
|
|
10
|
-
`).map(e=>e.trim()).find(e=>e.length>0);if(!t)return`Engine note`;let n=t.replace(/^#+\s*/,``).replace(/^<system-reminder>\s*/,``);return n.length>96?`${n.slice(0,95)}…`:n||`Engine note`}var oe=/\[Image: (?:source: [^\]\n]+?|original \d+x\d+, displayed at \d+x\d+\. Multiply coordinates by \d+(?:\.\d+)? to map to original image\.)(?:, original \d+x\d+, displayed at \d+x\d+\. Multiply coordinates by \d+(?:\.\d+)? to map to original image\.)?\]/g;function se(e){return e.includes(`[Image: `)?e.replace(oe,``):e}function F(e){if(typeof e!=`object`||!e)return null;let t=e;return t.type!==`queue-operation`||t.operation!==`remove`||typeof t.content!=`string`||t.content.length===0?null:{text:t.content,deliveredAt:typeof t.timestamp==`string`?t.timestamp:null}}function ce(e){if(typeof e!=`object`||!e)return null;let t=e
|
|
10
|
+
`).map(e=>e.trim()).find(e=>e.length>0);if(!t)return`Engine note`;let n=t.replace(/^#+\s*/,``).replace(/^<system-reminder>\s*/,``);return n.length>96?`${n.slice(0,95)}…`:n||`Engine note`}var oe=/\[Image: (?:source: [^\]\n]+?|original \d+x\d+, displayed at \d+x\d+\. Multiply coordinates by \d+(?:\.\d+)? to map to original image\.)(?:, original \d+x\d+, displayed at \d+x\d+\. Multiply coordinates by \d+(?:\.\d+)? to map to original image\.)?\]/g;function se(e){return e.includes(`[Image: `)?e.replace(oe,``):e}function F(e){if(typeof e!=`object`||!e)return null;let t=e;return t.type!==`queue-operation`||t.operation!==`remove`||typeof t.content!=`string`||t.content.length===0?null:{text:t.content,deliveredAt:typeof t.timestamp==`string`?t.timestamp:null}}function ce(e){if(typeof e!=`object`||!e)return null;let t=e;if(t.type!==`attachment`||t.attachment?.type!==`queued_command`)return null;let n=t.attachment.prompt,r;if(typeof n==`string`)r=n;else if(Array.isArray(n))r=se(n.filter(e=>typeof e==`object`&&!!e&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
|
|
11
|
+
`)).trim();else return null;let i=t.attachment.timestamp??t.timestamp;return{text:r,content:n,sourceUuid:typeof t.attachment.source_uuid==`string`?t.attachment.source_uuid:null,timestamp:typeof i==`string`?i:null}}var le=`<task-notification>`;function ue(e){return e.trimStart().startsWith(le)}function de(e,t){let n=RegExp(`<${t}>([\\s\\S]*?)</${t}>`).exec(e);return(n?n[1].trim():``)||null}function fe(e){let t=[le];return e.taskId&&t.push(`<task-id>${e.taskId}</task-id>`),e.toolUseId&&t.push(`<tool-use-id>${e.toolUseId}</tool-use-id>`),e.status&&t.push(`<status>${e.status}</status>`),e.summary&&t.push(`<summary>${e.summary}</summary>`),t.push(`</task-notification>`),t.join(`
|
|
11
12
|
`)}function pe(e){return{taskId:de(e,`task-id`),toolUseId:de(e,`tool-use-id`),status:de(e,`status`),summary:de(e,`summary`),note:de(e,`note`)}}var me=[`low`,`medium`,`high`,`xhigh`,`max`,`ultracode`],he=[`low`,`medium`,`high`,`xhigh`,`max`];function ge(e){return e?Array.isArray(e.effortLevels)?e.effortLevels:e.supportsThinking===!1?[]:he:[]}function _e(e){return e?.supportsTools!==!1}function ve(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function ye(e){return e.replace(/\s+/g,` `).toLowerCase()}function be(e){let t=e.split(` `).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`\\s+`);return new RegExp(t,`gi`)}function xe(e,t,n){let r=ve(t);if(r===``)return[];let i=[];for(let t=0;t<e.length;t++){let a=n(e[t]);a!==``&&ye(a).includes(r)&&i.push(t)}return i}function Se(e,t,n){return n<=0?-1:e<0||e>=n?t>=0?0:n-1:((e+t)%n+n)%n}function Ce(e,t){return t<=0?`no matches`:`${e<0||e>=t?0:e+1}/${t}`}function we(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}var I={health:`/api/v1/health`,info:`/api/v1/info`,sessions:`/api/v1/sessions`,adoptLegacySessions:`/api/v1/sessions/adopt-legacy`,session:e=>`/api/v1/sessions/${e}`,sessionEntries:e=>`/api/v1/sessions/${e}/entries`,sessionSearch:`/api/v1/sessions/search`,sessionMessages:e=>`/api/v1/sessions/${e}/messages`,sessionPrompt:e=>`/api/v1/sessions/${e}/prompt`,sessionInterrupt:e=>`/api/v1/sessions/${e}/interrupt`,sessionQueued:(e,t)=>`/api/v1/sessions/${e}/queued/${encodeURIComponent(t)}`,sessionFork:e=>`/api/v1/sessions/${e}/fork`,sessionExport:e=>`/api/v1/sessions/${e}/export`,sessionsExportArchive:`/api/v1/sessions/export`,sessionProject:e=>`/api/v1/sessions/${e}/project`,importClaude:`/api/v1/import/claude`,sessionLink:e=>`/api/v1/sessions/${e}/link`,sessionSyncDown:e=>`/api/v1/sessions/${e}/sync-down`,projects:`/api/v1/projects`,projectInspect:`/api/v1/projects/inspect`,vaultProjects:`/api/v1/vault/projects`,vaultProject:e=>`/api/v1/vault/projects/${e}`,providers:`/api/v1/providers`,providersActive:`/api/v1/providers/active`,providerTest:e=>`/api/v1/providers/${e}/test`,providerProbe:e=>`/api/v1/providers/${e}/probe`,providerSecret:e=>`/api/v1/providers/${e}/secret`,models:`/api/v1/models`,settings:`/api/v1/settings`,account:`/api/v1/account`,accountLogin:`/api/v1/account/login`,accountLogout:`/api/v1/account/logout`,accountRemoveHost:`/api/v1/account/remove-host`,accountUnlock:`/api/v1/account/unlock`,accountPlan:`/api/v1/account/plan`,accountLock:`/api/v1/account/lock`,accountResendVerification:`/api/v1/account/resend-verification`,accountLinkStart:`/api/v1/account/link/start`,accountLinkStatus:`/api/v1/account/link`,accountLinkCancel:`/api/v1/account/link/cancel`,credentials:`/api/v1/credentials`,credential:e=>`/api/v1/credentials/${e}`,credentialTest:e=>`/api/v1/credentials/${e}/test`,syncNow:`/api/v1/sync/now`,subscriptionClaudeLogin:`/api/v1/subscription/claude/login`,subscriptionClaudeLoginState:`/api/v1/subscription/claude/login/state`,subscriptionClaudeLoginCode:`/api/v1/subscription/claude/login/code`,subscriptionClaudeLoginCancel:`/api/v1/subscription/claude/login/cancel`,subscriptionClaudeStatus:`/api/v1/subscription/claude`,subscriptionOauthLogin:e=>`/api/v1/subscription/oauth/${e}/login`,subscriptionOauthLoginState:e=>`/api/v1/subscription/oauth/${e}/login/state`,subscriptionOauthLoginCancel:e=>`/api/v1/subscription/oauth/${e}/login/cancel`,doctor:`/api/v1/doctor`,hostShutdown:`/api/v1/host/shutdown`,hostVaultUnlock:e=>`/api/v1/hosts/${encodeURIComponent(e)}/vault-unlock`,hosts:`/api/v1/hosts`,host:e=>`/api/v1/hosts/${e}`,hostSessions:e=>`/api/v1/hosts/${e}/sessions`,hostSessionEntries:(e,t)=>`/api/v1/hosts/${e}/sessions/${t}/entries`,hostSession:(e,t)=>`/api/v1/hosts/${e}/sessions/${t}`,ws:`/api/v1/ws`,remoteWs:`/api/v1/relay/ws`,errorReport:`/api/v1/errors`,bugReport:`/api/v1/bug-reports`,sandboxRunToken:`/api/v1/sandbox/run-token`,sessionFiles:e=>`/api/v1/sessions/${e}/files`,sessionFile:e=>`/api/v1/sessions/${e}/files/content`,sandboxRestore:`/api/v1/sandbox/restore`},Te={health:`GET`,info:`GET`,listSessions:`GET`,createSession:`POST`,getSession:`GET`,updateSession:`PATCH`,deleteSession:`DELETE`,listEntries:`GET`,listMessages:`GET`,prompt:`POST`,interrupt:`POST`,cancelQueued:`DELETE`,fork:`POST`,export:`GET`,exportArchive:`POST`,attachSessionProject:`POST`,listProjects:`GET`,scanClaudeSessions:`GET`,importClaudeSessions:`POST`,sessionLink:`GET`,syncSessionDown:`POST`,inspectProject:`GET`,listVaultProjects:`GET`,createVaultProject:`POST`,updateVaultProject:`PATCH`,deleteVaultProject:`DELETE`,listProviders:`GET`,setActiveProvider:`PUT`,providerTest:`POST`,providerProbe:`POST`,revealCredential:`GET`,listModels:`GET`,getSettings:`GET`,updateSettings:`PATCH`,getAccount:`GET`,login:`POST`,logout:`POST`,removeHostFromAccount:`POST`,unlock:`POST`,resendVerification:`POST`,linkStart:`POST`,linkStatus:`GET`,linkCancel:`POST`,listCredentials:`GET`,addCredential:`POST`,deleteCredential:`DELETE`,credentialTest:`POST`,syncNow:`POST`,claudeLogin:`POST`,claudeLoginState:`GET`,claudeLoginCode:`POST`,claudeLoginCancel:`POST`,claudeStatus:`GET`,oauthLogin:`POST`,oauthLoginState:`GET`,oauthLoginCancel:`POST`,doctor:`GET`,hostShutdown:`POST`,listHosts:`GET`,getHost:`GET`,updateHost:`PATCH`,listHostSessions:`GET`,deleteHostSession:`DELETE`,listHostSessionEntries:`GET`,errorReport:`POST`,bugReport:`POST`,listSessionFiles:`GET`,readSessionFile:`GET`,deleteSessionFile:`DELETE`};function Ee(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function De(e){return e===`attached`}var Oe;function L(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var ke=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ae=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Oe=globalThis).__zod_globalConfig??(Oe.__zod_globalConfig={});var je=globalThis.__zod_globalConfig;function Me(e){return e&&Object.assign(je,e),je}function Ne(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Pe(e,t){return typeof t==`bigint`?t.toString():t}function Fe(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Ie(e){return e==null}function Le(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Re(e,t){let n=e/t,r=Math.round(n),i=2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var ze=Symbol(`evaluating`);function Be(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==ze)return r===void 0&&(r=ze,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ve(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function He(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Ue(e){return JSON.stringify(e)}function We(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Ge=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Ke(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var qe=Fe(()=>{if(je.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Je(e){if(Ke(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Ke(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Ye(e){return Je(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Xe=new Set([`string`,`number`,`symbol`]);function Ze(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Qe(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function R(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function $e(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var et={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function tt(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return Qe(e,He(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Ve(this,`shape`,e),e},checks:[]}))}function nt(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return Qe(e,He(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Ve(this,`shape`,r),r},checks:[]}))}function rt(e,t){if(!Je(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Qe(e,He(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ve(this,`shape`,n),n}}))}function it(e,t){if(!Je(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return Qe(e,He(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ve(this,`shape`,n),n}}))}function at(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return Qe(e,He(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ve(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ot(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return Qe(t,He(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Ve(this,`shape`,i),i},checks:[]}))}function st(e,t,n){return Qe(t,He(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Ve(this,`shape`,i),i}}))}function ct(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function lt(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function ut(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function dt(e){return typeof e==`string`?e:e?.message}function ft(e,t,n){let r=e.message?e.message:dt(e.inst?._zod.def?.error?.(e))??dt(t?.error?.(e))??dt(n.customError?.(e))??dt(n.localeError?.(e))??`Invalid input`,{inst:i,continue:a,input:o,...s}=e;return s.path??=[],s.message=r,t?.reportInput&&(s.input=o),s}function pt(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function mt(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var ht=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Pe,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},gt=L(`$ZodError`,ht),_t=L(`$ZodError`,ht,{Parent:Error});function vt(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function yt(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i];i===e.length-1?(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(a))):r[n]=r[n]||{_errors:[]},r=r[n],i++}}}};return r(e),n}var bt=e=>(t,n,r,i)=>{let a=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new ke;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>ft(e,a,Me())));throw Ge(t,i?.callee),t}return o.value},xt=e=>async(t,n,r,i)=>{let a=r?{...r,async:!0}:{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>ft(e,a,Me())));throw Ge(t,i?.callee),t}return o.value},St=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new ke;return a.issues.length?{success:!1,error:new(e??gt)(a.issues.map(e=>ft(e,i,Me())))}:{success:!0,data:a.value}},Ct=St(_t),wt=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>ft(e,i,Me())))}:{success:!0,data:a.value}},Tt=wt(_t),Et=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return bt(e)(t,n,i)},Dt=e=>(t,n,r)=>bt(e)(t,n,r),Ot=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return xt(e)(t,n,i)},kt=e=>async(t,n,r)=>xt(e)(t,n,r),At=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return St(e)(t,n,i)},jt=e=>(t,n,r)=>St(e)(t,n,r),Mt=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return wt(e)(t,n,i)},Nt=e=>async(t,n,r)=>wt(e)(t,n,r),Pt=/^[cC][0-9a-z]{6,}$/,Ft=/^[0-9a-z]+$/,It=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Lt=/^[0-9a-vA-V]{20}$/,Rt=/^[A-Za-z0-9]{27}$/,zt=/^[a-zA-Z0-9_-]{21}$/,Bt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Vt=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ht=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ut=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Wt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Gt(){return new RegExp(Wt,`u`)}var Kt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,qt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Jt=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Yt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Xt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Zt=/^[A-Za-z0-9_-]*$/,Qt=/^https?$/,$t=/^\+[1-9]\d{6,14}$/,en=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,tn=RegExp(`^${en}$`);function nn(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function rn(e){return RegExp(`^${nn(e)}$`)}function an(e){let t=nn({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${en}T(?:${r})$`)}var on=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},sn=/^-?\d+$/,cn=/^-?\d+(?:\.\d+)?$/,ln=/^(?:true|false)$/i,un=/^[^A-Z]*$/,dn=/^[^a-z]*$/,fn=L(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),pn={number:`number`,bigint:`bigint`,object:`date`},mn=L(`$ZodCheckLessThan`,(e,t)=>{fn.init(e,t);let n=pn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),hn=L(`$ZodCheckGreaterThan`,(e,t)=>{fn.init(e,t);let n=pn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),gn=L(`$ZodCheckMultipleOf`,(e,t)=>{fn.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Re(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),_n=L(`$ZodCheckNumberFormat`,(e,t)=>{fn.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=et[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=sn)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),vn=L(`$ZodCheckMaxLength`,(e,t)=>{var n;fn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Ie(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=pt(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),yn=L(`$ZodCheckMinLength`,(e,t)=>{var n;fn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Ie(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=pt(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),bn=L(`$ZodCheckLengthEquals`,(e,t)=>{var n;fn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Ie(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=pt(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),xn=L(`$ZodCheckStringFormat`,(e,t)=>{var n,r;fn.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Sn=L(`$ZodCheckRegex`,(e,t)=>{xn.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Cn=L(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=un,xn.init(e,t)}),wn=L(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=dn,xn.init(e,t)}),Tn=L(`$ZodCheckIncludes`,(e,t)=>{fn.init(e,t);let n=Ze(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),En=L(`$ZodCheckStartsWith`,(e,t)=>{fn.init(e,t);let n=RegExp(`^${Ze(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Dn=L(`$ZodCheckEndsWith`,(e,t)=>{fn.init(e,t);let n=RegExp(`.*${Ze(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),On=L(`$ZodCheckOverwrite`,(e,t)=>{fn.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),kn=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
12
13
|
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
|
|
13
14
|
`))}},An={major:4,minor:4,patch:3},jn=L(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=An;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=ct(e),i;for(let a of t){if(a._zod.def.when){if(lt(e)||!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new ke;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=ct(e,t))});else{if(e.issues.length===t)continue;r||=ct(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(ct(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new ke;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new ke;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Be(e,`~standard`,()=>({validate:t=>{try{let n=Ct(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Tt(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Mn=L(`$ZodString`,(e,t)=>{jn.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??on(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),Nn=L(`$ZodStringFormat`,(e,t)=>{xn.init(e,t),Mn.init(e,t)}),Pn=L(`$ZodGUID`,(e,t)=>{t.pattern??=Vt,Nn.init(e,t)}),Fn=L(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Ht(e)}else t.pattern??=Ht();Nn.init(e,t)}),In=L(`$ZodEmail`,(e,t)=>{t.pattern??=Ut,Nn.init(e,t)}),Ln=L(`$ZodURL`,(e,t)=>{Nn.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===Qt.source&&!/^https?:\/\//i.test(r)){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}let i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),n.value=t.normalize?i.href:r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Rn=L(`$ZodEmoji`,(e,t)=>{t.pattern??=Gt(),Nn.init(e,t)}),zn=L(`$ZodNanoID`,(e,t)=>{t.pattern??=zt,Nn.init(e,t)}),Bn=L(`$ZodCUID`,(e,t)=>{t.pattern??=Pt,Nn.init(e,t)}),Vn=L(`$ZodCUID2`,(e,t)=>{t.pattern??=Ft,Nn.init(e,t)}),Hn=L(`$ZodULID`,(e,t)=>{t.pattern??=It,Nn.init(e,t)}),Un=L(`$ZodXID`,(e,t)=>{t.pattern??=Lt,Nn.init(e,t)}),Wn=L(`$ZodKSUID`,(e,t)=>{t.pattern??=Rt,Nn.init(e,t)}),Gn=L(`$ZodISODateTime`,(e,t)=>{t.pattern??=an(t),Nn.init(e,t)}),Kn=L(`$ZodISODate`,(e,t)=>{t.pattern??=tn,Nn.init(e,t)}),qn=L(`$ZodISOTime`,(e,t)=>{t.pattern??=rn(t),Nn.init(e,t)}),Jn=L(`$ZodISODuration`,(e,t)=>{t.pattern??=Bt,Nn.init(e,t)}),Yn=L(`$ZodIPv4`,(e,t)=>{t.pattern??=Kt,Nn.init(e,t),e._zod.bag.format=`ipv4`}),Xn=L(`$ZodIPv6`,(e,t)=>{t.pattern??=qt,Nn.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Zn=L(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Jt,Nn.init(e,t)}),Qn=L(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Yt,Nn.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function $n(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var er=L(`$ZodBase64`,(e,t)=>{t.pattern??=Xt,Nn.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{$n(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function tr(e){if(!Zt.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return $n(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var nr=L(`$ZodBase64URL`,(e,t)=>{t.pattern??=Zt,Nn.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{tr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),rr=L(`$ZodE164`,(e,t)=>{t.pattern??=$t,Nn.init(e,t)});function ir(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var ar=L(`$ZodJWT`,(e,t)=>{Nn.init(e,t),e._zod.check=n=>{ir(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),or=L(`$ZodNumber`,(e,t)=>{jn.init(e,t),e._zod.pattern=e._zod.bag.pattern??cn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),sr=L(`$ZodNumberFormat`,(e,t)=>{_n.init(e,t),or.init(e,t)}),cr=L(`$ZodBoolean`,(e,t)=>{jn.init(e,t),e._zod.pattern=ln,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),lr=L(`$ZodUnknown`,(e,t)=>{jn.init(e,t),e._zod.parse=e=>e}),ur=L(`$ZodNever`,(e,t)=>{jn.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function dr(e,t,n){e.issues.length&&t.issues.push(...ut(n,e.issues)),t.value[n]=e.value}var fr=L(`$ZodArray`,(e,t)=>{jn.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>dr(t,n,e))):dr(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function pr(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...ut(n,e.issues))}if(!o&&!i){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}function mr(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=$e(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function hr(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin===`optional`,d=c.optout===`optional`;for(let i in t){if(i===`__proto__`||s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>pr(e,n,i,t,u,d))):pr(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var gr=L(`$ZodObject`,(e,t)=>{if(jn.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=Fe(()=>mr(t));Be(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Ke,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optin===`optional`,i=n._zod.optout===`optional`,a=n._zod.run({value:s[e],issues:[]},o);a instanceof Promise?c.push(a.then(n=>pr(n,t,e,s,r,i))):pr(a,t,e,s,r,i)}return i?hr(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),_r=L(`$ZodObjectJIT`,(e,t)=>{gr.init(e,t);let n=e._zod.parse,r=Fe(()=>mr(t)),i=e=>{let t=new kn([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Ue(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Ue(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(`
|
|
@@ -71,11 +72,11 @@ Error generating stack: `+e.message+`
|
|
|
71
72
|
|
|
72
73
|
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Ke,s=!je.jitless,c=s&&qe.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?hr([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function vr(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!ct(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>ft(e,r,Me())))}),t)}var yr=L(`$ZodUnion`,(e,t)=>{jn.init(e,t),Be(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Be(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Be(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Be(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Le(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>vr(t,r,e,i)):vr(o,r,e,i)}}),br=L(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,yr.init(e,t);let n=e._zod.parse;Be(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=Fe(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!Ke(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()),input:o,path:[t.discriminator],inst:e}),i)}}),xr=L(`$ZodIntersection`,(e,t)=>{jn.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Cr(e,t,n)):Cr(e,i,a)}});function Sr(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Je(e)&&Je(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Sr(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Sr(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Cr(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),ct(e))return e;let o=Sr(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var wr=L(`$ZodRecord`,(e,t)=>{jn.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Je(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let c of o)if(typeof c==`string`||typeof c==`number`||typeof c==`symbol`){s.add(typeof c==`number`?c.toString():c);let o=t.keyType._zod.run({value:c,issues:[]},r);if(o instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(o.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:o.issues.map(e=>ft(e,r,Me())),input:c,path:[c],inst:e});continue}let l=o.value,u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?a.push(u.then(e=>{e.issues.length&&n.issues.push(...ut(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...ut(c,u.issues)),n.value[l]=u.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`||!Object.prototype.propertyIsEnumerable.call(i,o))continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&cn.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>ft(e,r,Me())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...ut(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...ut(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),Tr=L(`$ZodEnum`,(e,t)=>{jn.init(e,t);let n=Ne(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Xe.has(typeof e)).map(e=>typeof e==`string`?Ze(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Er=L(`$ZodLiteral`,(e,t)=>{if(jn.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Ze(e):e?Ze(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Dr=L(`$ZodTransform`,(e,t)=>{jn.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ae(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new ke;return n.value=i,n.fallback=!0,n}});function Or(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var kr=L(`$ZodOptional`,(e,t)=>{jn.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Be(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Be(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Le(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>Or(e,r)):Or(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Ar=L(`$ZodExactOptional`,(e,t)=>{kr.init(e,t),Be(e._zod,`values`,()=>t.innerType._zod.values),Be(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),jr=L(`$ZodNullable`,(e,t)=>{jn.init(e,t),Be(e._zod,`optin`,()=>t.innerType._zod.optin),Be(e._zod,`optout`,()=>t.innerType._zod.optout),Be(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Le(e.source)}|null)$`):void 0}),Be(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Mr=L(`$ZodDefault`,(e,t)=>{jn.init(e,t),e._zod.optin=`optional`,Be(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Nr(e,t)):Nr(r,t)}});function Nr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Pr=L(`$ZodPrefault`,(e,t)=>{jn.init(e,t),e._zod.optin=`optional`,Be(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Fr=L(`$ZodNonOptional`,(e,t)=>{jn.init(e,t),Be(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Ir(t,e)):Ir(i,e)}});function Ir(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var Lr=L(`$ZodCatch`,(e,t)=>{jn.init(e,t),e._zod.optin=`optional`,Be(e._zod,`optout`,()=>t.innerType._zod.optout),Be(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>ft(e,n,Me()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>ft(e,n,Me()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),Rr=L(`$ZodPipe`,(e,t)=>{jn.init(e,t),Be(e._zod,`values`,()=>t.in._zod.values),Be(e._zod,`optin`,()=>t.in._zod.optin),Be(e._zod,`optout`,()=>t.out._zod.optout),Be(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>zr(e,t.in,n)):zr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>zr(e,t.out,n)):zr(r,t.out,n)}});function zr(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var Br=L(`$ZodReadonly`,(e,t)=>{jn.init(e,t),Be(e._zod,`propValues`,()=>t.innerType._zod.propValues),Be(e._zod,`values`,()=>t.innerType._zod.values),Be(e._zod,`optin`,()=>t.innerType?._zod?.optin),Be(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Vr):Vr(r)}});function Vr(e){return e.value=Object.freeze(e.value),e}var Hr=L(`$ZodCustom`,(e,t)=>{fn.init(e,t),jn.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Ur(t,n,r,e));Ur(i,n,r,e)}});function Ur(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(mt(e))}}var Wr,Gr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Kr(){return new Gr}(Wr=globalThis).__zod_globalRegistry??(Wr.__zod_globalRegistry=Kr());var qr=globalThis.__zod_globalRegistry;function Jr(e,t){return new e({type:`string`,...R(t)})}function Yr(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...R(t)})}function Xr(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...R(t)})}function Zr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...R(t)})}function Qr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...R(t)})}function $r(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...R(t)})}function ei(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...R(t)})}function ti(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...R(t)})}function ni(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...R(t)})}function ri(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...R(t)})}function ii(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...R(t)})}function ai(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...R(t)})}function oi(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...R(t)})}function si(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...R(t)})}function ci(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...R(t)})}function li(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...R(t)})}function ui(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...R(t)})}function di(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...R(t)})}function fi(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...R(t)})}function pi(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...R(t)})}function mi(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...R(t)})}function hi(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...R(t)})}function gi(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...R(t)})}function _i(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...R(t)})}function vi(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...R(t)})}function yi(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...R(t)})}function bi(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...R(t)})}function xi(e,t){return new e({type:`number`,checks:[],...R(t)})}function Si(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...R(t)})}function Ci(e,t){return new e({type:`boolean`,...R(t)})}function wi(e){return new e({type:`unknown`})}function Ti(e,t){return new e({type:`never`,...R(t)})}function Ei(e,t){return new mn({check:`less_than`,...R(t),value:e,inclusive:!1})}function Di(e,t){return new mn({check:`less_than`,...R(t),value:e,inclusive:!0})}function Oi(e,t){return new hn({check:`greater_than`,...R(t),value:e,inclusive:!1})}function ki(e,t){return new hn({check:`greater_than`,...R(t),value:e,inclusive:!0})}function Ai(e,t){return new gn({check:`multiple_of`,...R(t),value:e})}function ji(e,t){return new vn({check:`max_length`,...R(t),maximum:e})}function Mi(e,t){return new yn({check:`min_length`,...R(t),minimum:e})}function Ni(e,t){return new bn({check:`length_equals`,...R(t),length:e})}function Pi(e,t){return new Sn({check:`string_format`,format:`regex`,...R(t),pattern:e})}function Fi(e){return new Cn({check:`string_format`,format:`lowercase`,...R(e)})}function Ii(e){return new wn({check:`string_format`,format:`uppercase`,...R(e)})}function Li(e,t){return new Tn({check:`string_format`,format:`includes`,...R(t),includes:e})}function Ri(e,t){return new En({check:`string_format`,format:`starts_with`,...R(t),prefix:e})}function zi(e,t){return new Dn({check:`string_format`,format:`ends_with`,...R(t),suffix:e})}function Bi(e){return new On({check:`overwrite`,tx:e})}function Vi(e){return Bi(t=>t.normalize(e))}function Hi(){return Bi(e=>e.trim())}function Ui(){return Bi(e=>e.toLowerCase())}function Wi(){return Bi(e=>e.toUpperCase())}function Gi(){return Bi(e=>We(e))}function Ki(e,t,n){return new e({type:`array`,element:t,...R(n)})}function qi(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...R(n)})}function Ji(e,t){let n=Yi(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(mt(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(mt(r))}},e(t.value,t)),t);return n}function Yi(e,t){let n=new fn({check:`custom`,...R(t)});return n._zod.check=e,n}function Xi(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??qr,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function Zi(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,Zi(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&ea(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Qi(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
|
|
73
74
|
|
|
74
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function $i(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:na(t,`input`,e.processors),output:na(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function ea(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return ea(r.element,n);if(r.type===`set`)return ea(r.valueType,n);if(r.type===`lazy`)return ea(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return ea(r.innerType,n);if(r.type===`intersection`)return ea(r.left,n)||ea(r.right,n);if(r.type===`record`||r.type===`map`)return ea(r.keyType,n)||ea(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:ea(r.in,n)||ea(r.out,n);if(r.type===`object`){for(let e in r.shape)if(ea(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(ea(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(ea(e,n))return!0;return!!(r.rest&&ea(r.rest,n))}return!1}var ta=(e,t={})=>n=>{let r=Xi({...n,processors:t});return Zi(e,r),Qi(r,e),$i(r,e)},na=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Xi({...i??{},target:a,io:t,processors:n});return Zi(e,o),Qi(o,e),$i(o,e)},ra={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},ia=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=ra[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},aa=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},oa=(e,t,n,r)=>{n.type=`boolean`},sa=(e,t,n,r)=>{n.not={}},ca=(e,t,n,r)=>{let i=e._zod.def,a=Ne(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},la=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},ua=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},da=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},fa=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Zi(a.element,t,{...r,path:[...r.path,`items`]})},pa=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Zi(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Zi(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ma=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Zi(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},ha=(e,t,n,r)=>{let i=e._zod.def,a=Zi(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Zi(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},ga=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=Zi(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=Zi(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=Zi(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},_a=(e,t,n,r)=>{let i=e._zod.def,a=Zi(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},va=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ya=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},ba=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},xa=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},Sa=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;Zi(o,t,r);let s=t.seen.get(e);s.ref=o},Ca=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},wa=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Ta=L(`ZodISODateTime`,(e,t)=>{Gn.init(e,t),Za.init(e,t)});function Ea(e){return _i(Ta,e)}var Da=L(`ZodISODate`,(e,t)=>{Kn.init(e,t),Za.init(e,t)});function Oa(e){return vi(Da,e)}var ka=L(`ZodISOTime`,(e,t)=>{qn.init(e,t),Za.init(e,t)});function Aa(e){return yi(ka,e)}var ja=L(`ZodISODuration`,(e,t)=>{Jn.init(e,t),Za.init(e,t)});function Ma(e){return bi(ja,e)}var Na=L(`ZodError`,(e,t)=>{gt.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>yt(e,t)},flatten:{value:t=>vt(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Pe,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Pe,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Pa=bt(Na),Fa=xt(Na),Ia=St(Na),La=wt(Na),Ra=Et(Na),za=Dt(Na),Ba=Ot(Na),Va=kt(Na),Ha=At(Na),Ua=jt(Na),Wa=Mt(Na),Ga=Nt(Na),Ka=new WeakMap;function qa(e,t,n){let r=Object.getPrototypeOf(e),i=Ka.get(r);if(i||(i=new Set,Ka.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Ja=L(`ZodType`,(e,t)=>(jn.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:na(e,`input`),output:na(e,`output`)}}),e.toJSONSchema=ta(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Pa(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Ia(e,t,n),e.parseAsync=async(t,n)=>Fa(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>La(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Ra(e,t,n),e.decode=(t,n)=>za(e,t,n),e.encodeAsync=async(t,n)=>Ba(e,t,n),e.decodeAsync=async(t,n)=>Va(e,t,n),e.safeEncode=(t,n)=>Ha(e,t,n),e.safeDecode=(t,n)=>Ua(e,t,n),e.safeEncodeAsync=async(t,n)=>Wa(e,t,n),e.safeDecodeAsync=async(t,n)=>Ga(e,t,n),qa(e,`ZodType`,{check(...e){let t=this.def;return this.clone(He(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Qe(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(us(e,t))},superRefine(e,t){return this.check(ds(e,t))},overwrite(e){return this.check(Bi(e))},optional(){return Ko(this)},exactOptional(){return Jo(this)},nullable(){return Xo(this)},nullish(){return Ko(Xo(this))},nonoptional(e){return ns(this,e)},array(){return Oo(this)},or(e){return Mo([this,e])},and(e){return Io(this,e)},transform(e){return os(this,Wo(e))},default(e){return Qo(this,e)},prefault(e){return es(this,e)},catch(e){return is(this,e)},pipe(e){return os(this,e)},readonly(){return cs(this)},describe(e){let t=this.clone();return qr.add(t,{description:e}),t},meta(...e){if(e.length===0)return qr.get(this);let t=this.clone();return qr.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return qr.get(e)?.description},configurable:!0}),e)),Ya=L(`_ZodString`,(e,t)=>{Mn.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ia(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,qa(e,`_ZodString`,{regex(...e){return this.check(Pi(...e))},includes(...e){return this.check(Li(...e))},startsWith(...e){return this.check(Ri(...e))},endsWith(...e){return this.check(zi(...e))},min(...e){return this.check(Mi(...e))},max(...e){return this.check(ji(...e))},length(...e){return this.check(Ni(...e))},nonempty(...e){return this.check(Mi(1,...e))},lowercase(e){return this.check(Fi(e))},uppercase(e){return this.check(Ii(e))},trim(){return this.check(Hi())},normalize(...e){return this.check(Vi(...e))},toLowerCase(){return this.check(Ui())},toUpperCase(){return this.check(Wi())},slugify(){return this.check(Gi())}})}),Xa=L(`ZodString`,(e,t)=>{Mn.init(e,t),Ya.init(e,t),e.email=t=>e.check(Yr(Qa,t)),e.url=t=>e.check(ti(to,t)),e.jwt=t=>e.check(gi(go,t)),e.emoji=t=>e.check(ni(no,t)),e.guid=t=>e.check(Xr($a,t)),e.uuid=t=>e.check(Zr(eo,t)),e.uuidv4=t=>e.check(Qr(eo,t)),e.uuidv6=t=>e.check($r(eo,t)),e.uuidv7=t=>e.check(ei(eo,t)),e.nanoid=t=>e.check(ri(ro,t)),e.guid=t=>e.check(Xr($a,t)),e.cuid=t=>e.check(ii(io,t)),e.cuid2=t=>e.check(ai(ao,t)),e.ulid=t=>e.check(oi(oo,t)),e.base64=t=>e.check(pi(B,t)),e.base64url=t=>e.check(mi(mo,t)),e.xid=t=>e.check(si(so,t)),e.ksuid=t=>e.check(ci(co,t)),e.ipv4=t=>e.check(li(lo,t)),e.ipv6=t=>e.check(ui(uo,t)),e.cidrv4=t=>e.check(di(fo,t)),e.cidrv6=t=>e.check(fi(po,t)),e.e164=t=>e.check(hi(ho,t)),e.datetime=t=>e.check(Ea(t)),e.date=t=>e.check(Oa(t)),e.time=t=>e.check(Aa(t)),e.duration=t=>e.check(Ma(t))});function z(e){return Jr(Xa,e)}var Za=L(`ZodStringFormat`,(e,t)=>{Nn.init(e,t),Ya.init(e,t)}),Qa=L(`ZodEmail`,(e,t)=>{In.init(e,t),Za.init(e,t)}),$a=L(`ZodGUID`,(e,t)=>{Pn.init(e,t),Za.init(e,t)}),eo=L(`ZodUUID`,(e,t)=>{Fn.init(e,t),Za.init(e,t)}),to=L(`ZodURL`,(e,t)=>{Ln.init(e,t),Za.init(e,t)}),no=L(`ZodEmoji`,(e,t)=>{Rn.init(e,t),Za.init(e,t)}),ro=L(`ZodNanoID`,(e,t)=>{zn.init(e,t),Za.init(e,t)}),io=L(`ZodCUID`,(e,t)=>{Bn.init(e,t),Za.init(e,t)}),ao=L(`ZodCUID2`,(e,t)=>{Vn.init(e,t),Za.init(e,t)}),oo=L(`ZodULID`,(e,t)=>{Hn.init(e,t),Za.init(e,t)}),so=L(`ZodXID`,(e,t)=>{Un.init(e,t),Za.init(e,t)}),co=L(`ZodKSUID`,(e,t)=>{Wn.init(e,t),Za.init(e,t)}),lo=L(`ZodIPv4`,(e,t)=>{Yn.init(e,t),Za.init(e,t)}),uo=L(`ZodIPv6`,(e,t)=>{Xn.init(e,t),Za.init(e,t)}),fo=L(`ZodCIDRv4`,(e,t)=>{Zn.init(e,t),Za.init(e,t)}),po=L(`ZodCIDRv6`,(e,t)=>{Qn.init(e,t),Za.init(e,t)}),B=L(`ZodBase64`,(e,t)=>{er.init(e,t),Za.init(e,t)}),mo=L(`ZodBase64URL`,(e,t)=>{nr.init(e,t),Za.init(e,t)}),ho=L(`ZodE164`,(e,t)=>{rr.init(e,t),Za.init(e,t)}),go=L(`ZodJWT`,(e,t)=>{ar.init(e,t),Za.init(e,t)}),_o=L(`ZodNumber`,(e,t)=>{or.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>aa(e,t,n,r),qa(e,`ZodNumber`,{gt(e,t){return this.check(Oi(e,t))},gte(e,t){return this.check(ki(e,t))},min(e,t){return this.check(ki(e,t))},lt(e,t){return this.check(Ei(e,t))},lte(e,t){return this.check(Di(e,t))},max(e,t){return this.check(Di(e,t))},int(e){return this.check(bo(e))},safe(e){return this.check(bo(e))},positive(e){return this.check(Oi(0,e))},nonnegative(e){return this.check(ki(0,e))},negative(e){return this.check(Ei(0,e))},nonpositive(e){return this.check(Di(0,e))},multipleOf(e,t){return this.check(Ai(e,t))},step(e,t){return this.check(Ai(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function vo(e){return xi(_o,e)}var yo=L(`ZodNumberFormat`,(e,t)=>{sr.init(e,t),_o.init(e,t)});function bo(e){return Si(yo,e)}var xo=L(`ZodBoolean`,(e,t)=>{cr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oa(e,t,n,r)});function So(e){return Ci(xo,e)}var Co=L(`ZodUnknown`,(e,t)=>{lr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function wo(){return wi(Co)}var To=L(`ZodNever`,(e,t)=>{ur.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sa(e,t,n,r)});function Eo(e){return Ti(To,e)}var Do=L(`ZodArray`,(e,t)=>{fr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fa(e,t,n,r),e.element=t.element,qa(e,`ZodArray`,{min(e,t){return this.check(Mi(e,t))},nonempty(e){return this.check(Mi(1,e))},max(e,t){return this.check(ji(e,t))},length(e,t){return this.check(Ni(e,t))},unwrap(){return this.element}})});function Oo(e,t){return Ki(Do,e,t)}var ko=L(`ZodObject`,(e,t)=>{_r.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pa(e,t,n,r),Be(e,`shape`,()=>t.shape),qa(e,`ZodObject`,{keyof(){return Bo(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:wo()})},loose(){return this.clone({...this._zod.def,catchall:wo()})},strict(){return this.clone({...this._zod.def,catchall:Eo()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return rt(this,e)},safeExtend(e){return it(this,e)},merge(e){return at(this,e)},pick(e){return tt(this,e)},omit(e){return nt(this,e)},partial(...e){return ot(Go,this,e[0])},required(...e){return st(ts,this,e[0])}})});function Ao(e,t){return new ko({type:`object`,shape:e??{},...R(t)})}var jo=L(`ZodUnion`,(e,t)=>{yr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ma(e,t,n,r),e.options=t.options});function Mo(e,t){return new jo({type:`union`,options:e,...R(t)})}var No=L(`ZodDiscriminatedUnion`,(e,t)=>{jo.init(e,t),br.init(e,t)});function Po(e,t,n){return new No({type:`union`,options:t,discriminator:e,...R(n)})}var Fo=L(`ZodIntersection`,(e,t)=>{xr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ha(e,t,n,r)});function Io(e,t){return new Fo({type:`intersection`,left:e,right:t})}var Lo=L(`ZodRecord`,(e,t)=>{wr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ga(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Ro(e,t,n){return!t||!t._zod?new Lo({type:`record`,keyType:z(),valueType:e,...R(t)}):new Lo({type:`record`,keyType:e,valueType:t,...R(n)})}var zo=L(`ZodEnum`,(e,t)=>{Tr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ca(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new zo({...t,checks:[],...R(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new zo({...t,checks:[],...R(r),entries:i})}});function Bo(e,t){return new zo({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...R(t)})}var Vo=L(`ZodLiteral`,(e,t)=>{Er.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>la(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Ho(e,t){return new Vo({type:`literal`,values:Array.isArray(e)?e:[e],...R(t)})}var Uo=L(`ZodTransform`,(e,t)=>{Dr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>da(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ae(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(mt(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(mt(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function Wo(e){return new Uo({type:`transform`,transform:e})}var Go=L(`ZodOptional`,(e,t)=>{kr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ko(e){return new Go({type:`optional`,innerType:e})}var qo=L(`ZodExactOptional`,(e,t)=>{Ar.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jo(e){return new qo({type:`optional`,innerType:e})}var Yo=L(`ZodNullable`,(e,t)=>{jr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_a(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Xo(e){return new Yo({type:`nullable`,innerType:e})}var Zo=L(`ZodDefault`,(e,t)=>{Mr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ya(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Qo(e,t){return new Zo({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ye(t)}})}var $o=L(`ZodPrefault`,(e,t)=>{Pr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ba(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function es(e,t){return new $o({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ye(t)}})}var ts=L(`ZodNonOptional`,(e,t)=>{Fr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>va(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ns(e,t){return new ts({type:`nonoptional`,innerType:e,...R(t)})}var rs=L(`ZodCatch`,(e,t)=>{Lr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function is(e,t){return new rs({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var as=L(`ZodPipe`,(e,t)=>{Rr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Sa(e,t,n,r),e.in=t.in,e.out=t.out});function os(e,t){return new as({type:`pipe`,in:e,out:t})}var ss=L(`ZodReadonly`,(e,t)=>{Br.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ca(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cs(e){return new ss({type:`readonly`,innerType:e})}var ls=L(`ZodCustom`,(e,t)=>{Hr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ua(e,t,n,r)});function us(e,t={}){return qi(ls,e,t)}function ds(e,t){return Ji(e,t)}var fs={artificial_analysis_intelligence_index:{label:`Intelligence index`,scale:`index`},artificial_analysis_coding_index:{label:`Coding index`,scale:`index`},artificial_analysis_math_index:{label:`Math index`,scale:`index`},gpqa:{label:`GPQA Diamond`,scale:`fraction`},hle:{label:`Humanity's Last Exam`,scale:`fraction`},lcr:{label:`Long-context reasoning`,scale:`fraction`},livecodebench:{label:`LiveCodeBench`,scale:`fraction`},scicode:{label:`SciCode`,scale:`fraction`},math_500:{label:`MATH-500`,scale:`fraction`},aime:{label:`AIME`,scale:`fraction`},aime_25:{label:`AIME 2025`,scale:`fraction`},ifbench:{label:`IFBench`,scale:`fraction`},mmlu_pro:{label:`MMLU Pro`,scale:`fraction`},tau2:{label:`τ²-bench (agentic)`,scale:`fraction`},tau_banking:{label:`τ-bench banking`,scale:`fraction`},terminalbench_hard:{label:`Terminal-Bench Hard`,scale:`fraction`},terminalbench_v2_1:{label:`Terminal-Bench 2.1`,scale:`fraction`}};function ps(e){return(e.credentialVariants??[]).filter(e=>!e.operatorOnly)}function ms(e){let t=new Set(e.map(e=>e.definition.id));return e.filter(e=>!e.definition.clientGroup||e.definition.clientGroup===e.definition.id||!t.has(e.definition.clientGroup))}function hs(e,t){return e.filter(e=>e.definition.id===t||e.definition.clientGroup===t&&e.definition.id!==t)}function gs(e){return ms(e).filter(e=>e.definition.enabled&&e.definition.credentialClass!==`none`&&T(e.definition.id)&&!D(e.definition.id))}function _s(e){if(!e)return!1;try{let t=new URL(e).hostname.toLowerCase();return t===`127.0.0.1`||t===`localhost`||t===`::1`||t===`[::1]`}catch{return!1}}function vs(e,t={}){let n=e.displayName,r=t.credentialClass??e.credentialClass,i=t.baseUrl??e.baseUrl;return e.id===`oonacode`?{kind:`pool`,badge:`via OonaCode`,detail:`Runs on OonaCode's own provider accounts, through the OonaCode gateway. Priced models are billed to your account in credits; free models cost nothing on any plan.`,viaGateway:!0}:e.route===`direct`?{kind:`subscription-direct`,badge:`direct to provider`,detail:`Your ${n} subscription runs straight from this PC to the provider — it never passes through the OonaCode gateway.`,viaGateway:!1}:r===`api_key`&&e.kind!==`anthropic-passthrough`?{kind:`own-key-translated`,badge:`direct to provider`,detail:`Your ${n} key stays on this PC: OonaCode translates the request here and calls ${n} from this machine. The gateway sees neither the key nor the traffic.`,viaGateway:!1}:_s(i)?{kind:`local-server`,badge:`on this machine`,detail:`Runs against ${n} on this machine (${i}) — the request never leaves the PC.`,viaGateway:!1}:r===`api_key`&&e.kind===`anthropic-passthrough`&&e.directCapable===!0?{kind:`own-key-direct`,badge:`direct to provider`,detail:`Your ${n} key runs straight from this PC to ${n} — the OonaCode gateway is not in the path.`,viaGateway:!1}:{kind:`gateway`,badge:`via OonaCode`,detail:`Routed to ${n} through the OonaCode gateway.`,viaGateway:!0}}var ys=Po(`type`,[Ao({type:Ho(`oauth-device`),deviceAuthorizationUrl:z().url(),tokenUrl:z().url(),clientId:z().min(1),scopes:Oo(z().min(1)).min(1),signInLabel:z().min(1).optional(),referrer:z().min(1).optional()}),Ao({type:Ho(`openai-device`),deviceAuthorizationUrl:z().url(),pollUrl:z().url(),tokenUrl:z().url(),verificationUri:z().url(),redirectUri:z().url(),clientId:z().min(1),signInLabel:z().min(1).optional()})]),bs=Ao({id:z().min(1),displayName:z().min(1),upstreamId:z().min(1).optional(),servedBy:Oo(z().min(1)).optional(),subscriptionServedBy:Oo(z().min(1)).optional(),contextWindow:vo().int().positive().optional(),maxOutputTokens:vo().int().positive().optional(),supportsTools:So().optional(),supportsThinking:So().optional(),effortLevels:Oo(Bo(me)).optional(),helperModel:z().min(1).optional(),supportsVision:So().optional(),inputPricePerM:vo().nonnegative().optional(),outputPricePerM:vo().nonnegative().optional(),notes:z().optional()}),xs=Ao({id:z().regex(/^[a-z0-9][a-z0-9-]{1,40}$/,`provider id must be lowercase kebab-case`),displayName:z().min(1),kind:Bo([`anthropic-passthrough`,`openai-compatible`,`gemini`]),route:Bo([`gateway`,`direct`]),credentialClass:Bo([`api_key`,`subscription`,`none`]),baseUrl:z().url(),messagesPath:z().startsWith(`/`).optional(),modelsPath:z().startsWith(`/`).optional(),auth:Ao({header:Bo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]),extraHeaders:Ro(z(),z()).optional()}),models:Oo(bs),defaultModel:z().min(1),modelAliases:Ro(z(),z()).optional(),helperModel:z().min(1).optional(),capabilities:Ao({streaming:So(),tools:So(),thinking:So(),vision:So(),countTokens:So(),promptCaching:So(),promptCacheTtlSec:vo().int().positive().optional()}),translate:Ao({maxTokensParam:Bo([`max_tokens`,`max_completion_tokens`]).optional(),reasoningEffortFromBudget:So().optional(),reasoningContentField:z().nullable().optional(),supportsParallelToolCalls:So().optional(),systemRole:Bo([`system`,`developer`]).optional(),streamIncludeUsage:So().optional(),wire:Bo([`chat`,`responses`]).optional()}).optional(),passthrough:Ao({stripCacheControl:So().optional(),cacheChain:So().optional(),toolSchemaRequiredArray:So().optional(),toolDescriptionRequired:So().optional(),allowedBetas:Oo(z()).optional(),anthropicVersion:z().optional()}).optional(),userBaseUrl:So().optional(),engineEnv:Ro(z(),z()).optional(),directCapable:So().optional(),subscriptionLogin:ys.optional(),phase:Mo([Ho(1),Ho(2)]),enabled:So(),docsUrl:z().url().optional(),notes:z().optional(),references:Oo(Ao({label:z().min(1),url:z().url(),kind:Bo([`docs`,`pricing`,`models`,`console`,`status`,`keys`,`signup`,`other`]).optional()})).optional(),keyFormat:z().optional(),credentialVariants:Oo(Ao({id:z().min(1),label:z().min(1),header:Bo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]).optional(),extraHeaders:Ro(z(),z()).optional(),operatorOnly:So().optional(),requiresClaudeCodeIdentity:So().optional(),subscriptionLogin:ys.optional(),claudeCodeShape:Ao({betas:z().min(1),userAgent:z().min(1),billingHeader:z().min(1),headers:Ro(z(),z()).optional()}).optional(),baseUrl:z().url().optional(),keyFormat:z().optional(),notes:z().optional()})).optional(),adminGroup:z().optional(),clientGroup:z().optional(),recordLabel:z().optional(),effortLevels:Oo(Bo(me)).optional()});Ao({version:vo().int().positive(),updatedAt:z(),providers:Oo(xs)});function Ss(e){return/^claude-/i.test(e)}function Cs(e){return e.replace(/\[1m\]$/i,``)}function ws(e,t){return{images:e.models.find(e=>e.id===t)?.supportsVision??e.capabilities.vision,documents:Ss(t)}}function Ts(e,t,n){let r=ws(e,t),i=new Set;for(let e of n){let t=e?.type;(t===`image`||t===`document`)&&i.add(t)}let a=e.models.find(e=>e.id===t)?.displayName??t;return i.has(`image`)&&!r.images?`${a} cannot read images. Remove the image, or pick a model that can — the model details say which.`:i.has(`document`)&&!r.documents?`${a} cannot read PDF documents — only Anthropic's Claude models take a PDF. Attach it as text, or pick a Claude model.`:null}var Es={messages:`/v1/messages`,countTokens:`/v1/messages/count_tokens`,models:`/v1/models`,providerMessages:e=>`/p/${e}/v1/messages`,providerCountTokens:e=>`/p/${e}/v1/messages/count_tokens`,providerModels:e=>`/p/${e}/v1/models`,health:`/api/health`,streamCheck:`/api/stream-check`,register:`/api/auth/register`,login:`/api/auth/login`,refresh:`/api/auth/refresh`,logout:`/api/auth/logout`,me:`/api/auth/me`,prelogin:`/api/auth/prelogin`,tokens:`/api/me/tokens`,token:e=>`/api/me/tokens/${e}`,tokenPurge:e=>`/api/me/tokens/${e}/purge`,tokenUsage:e=>`/api/me/tokens/${e}/usage`,providers:`/api/me/providers`,provider:e=>`/api/me/providers/${e}`,providerTest:e=>`/api/me/providers/${e}/test`,routing:`/api/me/routing`,usage:`/api/me/usage`,usageSession:e=>`/api/me/usage/sessions/${e}`,devices:`/api/me/devices`,pushToken:`/api/me/push-token`,hostNotify:`/api/me/hosts/notify`,device:e=>`/api/me/devices/${e}`,hosts:`/api/me/hosts`,hostHeartbeat:`/api/me/hosts/heartbeat`,hostVaultUnlock:e=>`/api/me/hosts/${encodeURIComponent(e)}/vault-unlock`,host:e=>`/api/me/hosts/${encodeURIComponent(e)}`,vault:`/api/me/vault`,vaultEvents:`/api/me/vault/events`,historySessions:`/api/me/history/sessions`,historySession:e=>`/api/me/history/sessions/${e}`,historyEntries:e=>`/api/me/history/sessions/${e}/entries`,registry:`/api/registry`,releasesLatest:`/api/releases/latest`,releasesHistory:`/api/releases`,team:`/api/me/team`,teamInvites:`/api/me/team/invites`,teamInvite:e=>`/api/me/team/invites/${e}`,teamInviteLookup:`/api/team/invites/lookup`,teamInviteDecline:`/api/team/invites/decline`,teamJoin:`/api/me/team/join`,teamInvitations:`/api/me/team/invitations`,teamInvitationAccept:e=>`/api/me/team/invitations/${e}/accept`,teamInvitationDecline:e=>`/api/me/team/invitations/${e}/decline`,teamMember:e=>`/api/me/team/members/${e}`,teamLeave:`/api/me/team/leave`,teamTransfer:`/api/me/team/transfer`,teamAudit:`/api/me/team/audit`,teamCheckout:`/api/me/team/checkout`,teamTopup:`/api/me/team/topup`,teamSeats:`/api/me/team/seats`,googleConfig:`/api/auth/google/config`,googleStart:`/api/auth/google/start`,googleCallback:`/api/auth/google/callback`,githubConfig:`/api/auth/github/config`,githubStart:`/api/auth/github/start`,githubCallback:`/api/auth/github/callback`,googleUnlink:`/api/me/google`,telegramConfig:`/api/auth/telegram/config`,telegramAuth:`/api/auth/telegram`,telegram:`/api/me/telegram`,telegramWebhook:`/api/webhooks/telegram`,passphraseSetup:`/api/auth/passphrase/setup`,passphraseRekey:`/api/me/passphrase/rekey`,recovery:`/api/me/recovery`,recoveryChallenge:`/api/auth/recovery/challenge`,recoveryConsume:`/api/auth/recovery/consume`,deviceApprovals:`/api/me/device-approvals`,deviceApproval:e=>`/api/me/device-approvals/${e}`,deviceApprovalApprove:e=>`/api/me/device-approvals/${e}/approve`,deviceApprovalDeny:e=>`/api/me/device-approvals/${e}/deny`,passwordResetRequest:`/api/auth/password-reset/request`,passwordResetConfirm:`/api/auth/password-reset/confirm`,vaultRekeyComplete:`/api/me/vault/rekey-complete`,vaultRekeyPending:`/api/me/vault/rekey-pending`,emailVerifySend:`/api/auth/email/verify/send`,emailVerifyConfirm:`/api/auth/email/verify/confirm`,emailVerifyWatch:`/api/auth/email/verify/watch`,twoFactor:`/api/me/2fa`,twoFactorEnroll:`/api/me/2fa/enroll`,twoFactorConfirm:`/api/me/2fa/confirm`,twoFactorDisable:`/api/me/2fa/disable`,twoFactorDisableRequest:`/api/me/2fa/disable/request`,twoFactorRecoveryCodes:`/api/me/2fa/recovery-codes`,twoFactorVerify:`/api/auth/2fa/verify`,deviceLinkStart:`/api/auth/device/start`,deviceLinkPoll:`/api/auth/device/poll`,deviceLinks:`/api/me/device-links`,deviceLink:e=>`/api/me/device-links/${e}`,deviceLinkApprove:e=>`/api/me/device-links/${e}/approve`,deviceLinkDeny:e=>`/api/me/device-links/${e}/deny`,hostLogs:`/api/me/hosts/logs`,errorReport:`/api/me/errors`,bugReports:`/api/me/bug-reports`,plans:`/api/plans`,myPlan:`/api/me/plan`,checkout:`/api/me/plan/checkout`,creditsTopup:`/api/me/credits/topup`,billing:`/api/me/billing`},Ds=2048,Os=16384,ks=8e3,As=5242880,js=12582912;new Set(`BCDFGHJKLMNPQRSTVWXZ`.split(``));var Ms=`discard-my-vault-and-history`,Ns=`Anyone who can use this device can use your saved provider keys without your passphrase. Turn this off on shared or public computers. You can revoke it any time from Devices.`,Ps=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],Fs=/^([01]\d|2[0-3]):[0-5]\d$/;Ao({tz:z().min(1),windows:Oo(Ao({from:z().regex(Fs,`HH:MM`),to:z().regex(Fs,`HH:MM`),days:Oo(Bo(Ps)).optional(),kind:Bo([`peak`,`offpeak`])})),offpeakDiscount:vo().nonnegative().max(1).optional()});var Is=[`priceInputCacheMissPeak`,`priceInputCacheMissOffpeak`,`priceInputCacheHitPeak`,`priceInputCacheHitOffpeak`,`priceCacheWritePeak`,`priceCacheWriteOffpeak`,`priceOutputPeak`,`priceOutputOffpeak`],Ls=Ao({inputCacheMiss:vo().nonnegative(),inputCacheHit:vo().nonnegative().optional(),cacheWrite:vo().nonnegative().optional(),output:vo().nonnegative()});Ao({by:Ho(`prompt_tokens`),tiers:Oo(Ao({upToPromptTokens:vo().int().positive().optional(),price:Ls,cost:Ls.optional()})).min(1),note:z().optional()}).superRefine((e,t)=>{let n=0;e.tiers.forEach((r,i)=>{let a=r.upToPromptTokens;if(a===void 0){i!==e.tiers.length-1&&t.addIssue({code:`custom`,message:`only the LAST tier may omit upToPromptTokens`,path:[`tiers`,i]});return}a<=n&&t.addIssue({code:`custom`,message:`tiers must ascend: ${a} does not exceed ${n}`,path:[`tiers`,i,`upToPromptTokens`]}),n=a})}),[...Is];var Rs={oonacode:{hex:`#000000`,owner:`OonaCode`,d:`M0.72 12a11.28 11.28 0 1 0 22.56 0a11.28 11.28 0 1 0 -22.56 0ZM4.8 12a7.2 7.2 0 1 0 14.4 0a7.2 7.2 0 1 0 -14.4 0ZM7.44 12a4.56 4.56 0 1 0 9.12 0a4.56 4.56 0 1 0 -9.12 0Z`,fillRule:`evenodd`},anthropic:{hex:`#D97757`,owner:`Anthropic`,d:`m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z`},"anthropic-subscription":{hex:`#D97757`,owner:`Anthropic`,d:`m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z`},openai:{hex:`#000000`,owner:`OpenAI`,d:`M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z`},xai:{hex:`#000000`,owner:`xAI`,d:`M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z`},deepseek:{hex:`#5786FE`,owner:`DeepSeek`,d:`M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.004-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.004-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45`},kimi:{hex:`#000000`,owner:`Moonshot`,d:`M21.765.351C22.998.351 24 1.353 24 2.586S22.998 4.82 21.765 4.82h-1.974c-.15 0-.26-.12-.26-.26V2.586A2.237 2.237 0 0 1 21.765.35M9.41 13.388l8.447-8.377c.16-.16.07-.471-.14-.471h-4.55s-.1.02-.14.06l-9.099 9.029c-.14.14-.35.02-.35-.21V4.81c0-.15-.1-.27-.221-.27H.22c-.12 0-.22.12-.22.27v18.57c0 .15.1.27.22.27h3.137c.12 0 .22-.12.22-.27v-3.79c0-.08.03-.16.08-.21l2.826-2.796c.07-.07.16-.08.241-.03l7.546 5.551a8.9 8.9 0 0 0 4.018 1.493c.12.01.23-.11.23-.27V19.76c0-.14-.08-.25-.19-.26a5.8 5.8 0 0 1-2.355-.942l-6.533-4.73c-.14-.09-.15-.32-.03-.441`},qwen:{hex:`#6950EF`,owner:`Alibaba`,d:`M23.919 14.545 20.817 9.17l1.47-2.544a.56.56 0 0 0 0-.566l-1.633-2.83a.57.57 0 0 0-.49-.283h-6.207L12.487.402a.57.57 0 0 0-.49-.284H8.732a.56.56 0 0 0-.49.284L5.139 5.775h-2.94a.56.56 0 0 0-.49.284L.077 8.887a.56.56 0 0 0 0 .567L3.18 14.83l-1.47 2.545a.56.56 0 0 0 0 .566l1.634 2.83a.57.57 0 0 0 .49.283h6.205l1.47 2.545a.57.57 0 0 0 .49.284h3.266a.57.57 0 0 0 .49-.284l3.104-5.375h2.94a.57.57 0 0 0 .49-.283l1.634-2.828a.55.55 0 0 0-.004-.568M8.733.686l1.634 2.828-1.634 2.828H21.8L20.164 9.17H7.425L5.63 6.06Zm1.306 19.801-6.205-.002 1.634-2.83h3.265L2.201 6.344h3.267q3.182 5.517 6.367 11.032zm10.124-5.66L18.53 12l-6.532 11.315-1.634-2.83c2.129-3.673 4.25-7.351 6.373-11.028h3.592l3.102 5.374z`},mimo:{hex:`#FF6900`,owner:`Xiaomi`,d:`M12 0C8.016 0 4.756.255 2.493 2.516.23 4.776 0 8.033 0 12.012c0 3.98.23 7.235 2.494 9.497C4.757 23.77 8.017 24 12 24c3.983 0 7.243-.23 9.506-2.491C23.77 19.247 24 15.99 24 12.012c0-3.984-.233-7.243-2.502-9.504C19.234.252 15.978 0 12 0zM4.906 7.405h5.624c1.47 0 3.007.068 3.764.827.746.746.827 2.233.83 3.676v4.54a.15.15 0 0 1-.152.147h-1.947a.15.15 0 0 1-.152-.148V11.83c-.002-.806-.048-1.634-.464-2.051-.358-.36-1.026-.441-1.72-.458H7.158a.15.15 0 0 0-.151.147v6.98a.15.15 0 0 1-.152.148H4.906a.15.15 0 0 1-.15-.148V7.554a.15.15 0 0 1 .15-.149zm12.131 0h1.949a.15.15 0 0 1 .15.15v8.892a.15.15 0 0 1-.15.148h-1.949a.15.15 0 0 1-.151-.148V7.554a.15.15 0 0 1 .151-.149zM8.92 10.948h2.046c.083 0 .15.066.15.147v5.352a.15.15 0 0 1-.15.148H8.92a.15.15 0 0 1-.152-.148v-5.352a.15.15 0 0 1 .152-.147Z`}};function zs(e){return Rs[e]??null}function Bs(e){let t=e.replace(/\(.*?\)/g,` `).split(/[\s/_-]+/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[1][0]}`.toUpperCase()}var Vs=[`stable`,`dev`];function Hs(e){return typeof e==`string`&&Vs.includes(e)}function Us(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return Hs(t)?t:null}function Ws(e){let t=Us(e)??`stable`;return t===`stable`?Es.releasesLatest:`${Es.releasesLatest}?channel=${encodeURIComponent(t)}`}function Gs(e,t){let n=Us(t)??`stable`;return n===`stable`?e:`${e} (${n})`}var Ks=5e4,qs=[`bg`,`surface`,`surface-2`,`surface-3`,`border`,`fg`,`fg-muted`,`fg-faint`,`accent`,`accent-fg`,`accent-soft`,`project`,`ok`,`ok-soft`,`warn`,`warn-soft`,`danger`,`danger-soft`,`think`,`think-soft`,`code-bg`,`user-bubble`],Js={agentFinished:!1,permissionRequired:!0,errorOccurred:!0},Ys={autoAcceptPermissions:!1,showReasoningSummaries:!0,notifications:Js,showAgentPicker:!0,transcriptWindowSize:500,openTabs:[],draftTabs:[],draftTitles:{},activeTab:null,remoteTabs:{},sessionPanelOpen:!1,explorerOpen:!1,dismissedUpdateVersion:null,lastSeenReleaseNotes:null,claudeImportOffered:!1,claudeImportOffers:0,collapsedProjects:[],themeColors:{light:{},dark:{}}};function Xs(e){return Math.min(Math.max(typeof e==`number`&&Number.isFinite(e)?Math.floor(e):0,0),3)}function Zs(e){return Math.min(Ks,Math.max(100,typeof e==`number`&&Number.isFinite(e)?Math.round(e):500))}function Qs(e,t){return typeof e==`boolean`?e:t}function $s(e){return typeof e==`string`&&e.length>0&&e.length<=64?e:null}function ec(e,t=50){if(!Array.isArray(e))return[];let n=[];for(let r of e)if(!(typeof r!=`string`||r.length===0||r.length>200)&&!n.includes(r)&&(n.push(r),n.length>=t))break;return n}function tc(e,t=50){if(typeof e!=`object`||!e||Array.isArray(e))return{};let n={};for(let[r,i]of Object.entries(e))if(!(r.length===0||r.length>200)&&!(typeof i!=`string`||i.length===0||i.length>200)&&(n[r]=i,Object.keys(n).length>=t))break;return n}function nc(e){if(typeof e!=`string`)return null;let t=e.trim();return/^#[0-9a-fA-F]{6}$/.test(t)?t.toLowerCase():null}function rc(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if(!qs.includes(n))continue;let e=nc(r);e!==null&&(t[n]=e)}return t}function ic(e){let t=typeof e==`object`&&e?e:{};return{light:rc(t.light),dark:rc(t.dark)}}function ac(e){let t=typeof e==`object`&&e?e:{},n=typeof t.notifications==`object`&&t.notifications!==null?t.notifications:{},r=ec(t.openTabs),i=ec(t.draftTabs).filter(e=>!r.includes(e)),a={};for(let[e,n]of Object.entries(tc(t.draftTitles)))i.includes(e)&&(a[e]=n);let o=[...r,...i],s=t.activeTab,c=typeof s==`string`&&o.includes(s)?s:o[o.length-1]??null;return{autoAcceptPermissions:Qs(t.autoAcceptPermissions,Ys.autoAcceptPermissions),showReasoningSummaries:Qs(t.showReasoningSummaries,Ys.showReasoningSummaries),notifications:{agentFinished:Qs(n.agentFinished,Js.agentFinished),permissionRequired:Qs(n.permissionRequired,Js.permissionRequired),errorOccurred:Qs(n.errorOccurred,Js.errorOccurred)},showAgentPicker:Qs(t.showAgentPicker,Ys.showAgentPicker),transcriptWindowSize:Zs(t.transcriptWindowSize),openTabs:r,draftTabs:i,draftTitles:a,activeTab:c,remoteTabs:tc(t.remoteTabs),sessionPanelOpen:Qs(t.sessionPanelOpen,Ys.sessionPanelOpen),explorerOpen:Qs(t.explorerOpen,Ys.explorerOpen),dismissedUpdateVersion:$s(t.dismissedUpdateVersion),lastSeenReleaseNotes:$s(t.lastSeenReleaseNotes),claudeImportOffered:Qs(t.claudeImportOffered,Ys.claudeImportOffered),claudeImportOffers:Xs(t.claudeImportOffers),collapsedProjects:ec(t.collapsedProjects),themeColors:ic(t.themeColors)}}new Set(Object.keys(Ys));var oc=[{version:`0.3.136`,date:`2026-09-24`,added:[`Every model now has its own housekeeper — the small, fast model of the same maker that writes a chat’s titles and reads the web pages it fetches. On the OonaCode pool a MiMo v2.6 Pro chat uses MiMo v2.6 Flash, a Qwen chat Qwen3.8 Flash, a GLM chat GLM-5.3 Flash and a GPT-5 chat GPT-5 mini, instead of doing that work on the big model itself. A free model keeps its own, so it stays free.`],fixed:[]},{version:`0.3.135`,date:`2026-09-24`,added:[],fixed:[`Claude models on the OonaCode pool — Opus 5.5, Opus 5, Sonnet 5 and Fable 5.1 — now use their whole 1M context. A long chat no longer stops to summarise itself every ~170k tokens, and its subagents get the same window.`,`Reading a web page is quick again in a Claude chat: pages are read by Claude Haiku, as in Claude Code, instead of a helper that took about a minute a page.`,`Changing a chat’s model now moves its subagents and background helpers to the new model too; before, they stayed on the old one until the app restarted.`,`MiMo v2.5 and v2.5 Pro chats now use their full 1M context too.`]},{version:`0.3.134`,date:`2026-09-23`,added:[],fixed:[`On the Android app, the model’s questions can be answered again. They come one at a time — “Question 2 of 3” — with Back, Next and Skip, and Answer sends them to your PC. The card used to show only the first question, hide the rest below it and wait for all of them, so it could not be sent.`]},{version:`0.3.133`,date:`2026-09-23`,added:[`Bring your Claude desktop app projects across: File → Import chats from other coding agents now lists every project the Claude app has opened on this PC. Each one arrives as an OonaCode project of the same name — its goal, instructions and what Claude noted about it become the project’s instructions — with its project chat and one chat per thread filed under it, ready to carry on.`,`A Claude Code chat you moved into a Claude app project is filed under that project here too.`,`A thread you never opened in the Claude app still comes across, with its task and every reply the project chat saw; open it once in the Claude app and import again for its whole conversation.`],fixed:[`Cursor chats appear in the import list again — they had been left out since September 10.`]},{version:`0.3.132`,date:`2026-09-23`,added:[`Reply to any part of a chat: select some text (or just right-click a block), choose Reply, and it is quoted in your message box — type your answer under it. A quote from a file the agent read names the file.`,`Right-click in a chat: copy what you selected, copy a whole reply or tool output, copy a code block or a link, find the selected words in the chat, or select a block.`,`Search in a chat opens the block its match is in — a folded tool card, a thought, a finished agent’s work — and scrolls to the words themselves.`,`Search matches are now bright orange, the current one strongest, so they stand out on code too.`,`The file viewer shows pictures (PNG, JPEG, GIF, WebP, SVG and more), plays audio and video, and shows Markdown formatted, with a switch to the source.`,`Right-click a file or folder in the explorer to copy its path or delete it.`],fixed:[`Moving a chat to another folder or project while it was working could delete the folder it was working in, start two agents at once, or send your next message to the old folder.`,`The working line no longer says a chat may be stuck while it waits for your approval or answer, or right after you send a message, and it counts time correctly (no more "4m 60s").`,`A date line no longer says "Today" for yesterday’s messages when the app stays open past midnight.`,"Installing with npm (`npm i -g oonacode`) installs this version again; earlier npm releases carried an old program.",`The What’s new window could open again on the next start, showing the same update a second time.`,`An older OonaCode window or VS Code extension no longer resets settings it does not know about, such as your theme colours or which project groups you folded.`,`A new install no longer opens with a list of changes; this window now appears only after an update.`,`The notification switch for permissions now says it also covers the agent’s questions.`]},{version:`0.3.131`,date:`2026-09-23`,added:[`Claude Opus 5.5 is here — the newest Opus, and cheaper to run than Opus 5. Choose it in the model picker, from the OonaCode pool or on your own Claude subscription. It runs on the newer Claude Code engine (2.1.280) that this update brings.`,`Every block in a chat shows its time at the bottom right, in your local time — hover it for the full date — and a date line marks where each day starts.`,`A running chat tells you how long the agent has been quiet, and after five minutes that it may be stuck and what to do.`,`After every update, OonaCode now opens this window to show you what changed.`],fixed:[`A reply that streamed in live had no time on it until the chat was opened again.`,`Chats open in tabs could fail to come back after a restart if a setting changed while they were being restored.`]}];function sc(e,t){let n=e=>{let[t,...n]=e.trim().replace(/^v/,``).split(`-`);return{nums:(t??``).split(`.`).map(e=>Number.parseInt(e,10)||0),pre:n.length>0?n.join(`-`):null}},r=n(e),i=n(t);for(let e=0;e<Math.max(r.nums.length,i.nums.length);e++){let t=(r.nums[e]??0)-(i.nums[e]??0);if(t!==0)return t}return r.pre===i.pre?0:r.pre===null?1:i.pre===null?-1:cc(r.pre,i.pre)}function cc(e,t){let n=e.split(`.`),r=t.split(`.`);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e],i=r[e];if(t===i)continue;if(t===void 0)return-1;if(i===void 0)return 1;let a=/^\d+$/.test(t),o=/^\d+$/.test(i);if(a&&o){let e=Number(t)-Number(i);if(e!==0)return e;continue}return a===o?t<i?-1:1:a?-1:1}return 0}function lc(e,t,n=oc){if(!e||e===`0.0.0`)return[];let r=n.filter(t=>sc(t.version,e)<=0);return[...t===null?r.filter(t=>sc(t.version,e)===0):r.filter(e=>sc(e.version,t)>0)].sort((e,t)=>sc(t.version,e.version))}function uc(e,t,n,r=oc){if(!e||e===`0.0.0`)return{record:null,show:[]};let i=null;for(let e of r)(i===null||sc(e.version,i)>0)&&(i=e.version);let a=i!==null&&sc(e,i)>0?i:e;return{record:t===null||sc(a,t)>0?a:null,show:t===null&&!n?[]:lc(e,t,r)}}function dc(e,t){if(t==null)return[...e];if(t.length===0)return[];let n=new Set(t),r=e.filter(e=>n.has(e.id));return r.length>0?r:[...e]}var fc=`the user skipped the question`,pc=`(the user skipped this question)`;function mc(e){let t=e?.questions;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.question!=`string`)continue;let r=Array.isArray(t.options)?t.options.map(e=>e&&typeof e==`object`?e:null).filter(e=>e!==null&&typeof e.label==`string`).map(e=>({label:e.label,...typeof e.description==`string`?{description:e.description}:{}})):[];n.push({question:t.question,header:typeof t.header==`string`?t.header:``,options:r,multiSelect:t.multiSelect===!0})}return n}function hc(e,t,n={},r=new Set){let i={};return e.forEach((e,a)=>{if(r.has(a)){i[e.question]=pc;return}let o=[...t[a]??[]],s=(n[a]??``).trim();s&&o.push(s),i[e.question]=o.join(`, `)}),i}function gc(e,t,n){return n?`${e}::${n}::${t}`:`${e}::${t}`}function _c(e,t){return e===`oonacode`?-1:t}function vc(e){return e.filter(e=>e.definition.enabled&&e.configured&&T(e.definition.id)&&!D(e.definition.id)&&e.definition.models.length>0).map((e,t)=>({p:e,order:_c(e.definition.id,t)})).sort((e,t)=>e.order-t.order).map(e=>e.p)}function yc(e){let t=ps(e.definition);if(t.length<2)return[{variantId:null,suffix:``}];let n=new Set((e.credentials??[]).map(e=>e.variantId??`payg`)),r=t.filter(e=>n.has(e.id));return r.length<2?[{variantId:null,suffix:``}]:r.map(e=>({variantId:e.id,suffix:` ${bc(e.id,e.label)}`}))}function bc(e,t){return e===`token-plan`?`Subscription`:e===`payg`||e===`api-key`?`API`:t}function xc(e,t){let n=vc(e),r=e=>{let t=e.definition.clientGroup,r=(t?n.find(e=>e.definition.id===t)?.definition:void 0)?.displayName??e.definition.displayName,i=n.filter(n=>(n.definition.clientGroup??n.definition.id)===(t??e.definition.id));return e.definition.recordLabel&&i.length>1?`${r} ${e.definition.recordLabel}`:r};return n.flatMap(n=>{let i=dc(n.definition.models,t?.[n.definition.id]),a=r(n);return yc(n).map(t=>({providerId:n.definition.id,variantId:t.variantId,label:`${a}${t.suffix}`,route:n.definition.route,models:i.map(r=>({providerId:n.definition.id,variantId:t.variantId,modelId:r.id,label:r.displayName||r.id,value:gc(n.definition.id,r.id,t.variantId),free:r.free===!0,details:{...r.aaIntelligence===void 0?{}:{intelligence:r.aaIntelligence},...r.aaCoding===void 0?{}:{coding:r.aaCoding},...r.aaOutputTps===void 0?{}:{outputTps:r.aaOutputTps},...r.aaTtft===void 0?{}:{ttft:r.aaTtft},...r.contextWindow===void 0?{}:{contextWindow:r.contextWindow},...r.maxOutputTokens===void 0?{}:{maxOutputTokens:r.maxOutputTokens},...r.supportsThinking===void 0?{}:{thinking:r.supportsThinking},...r.supportsVision===void 0?{}:{vision:r.supportsVision},...r.supportsTools===void 0?{}:{tools:r.supportsTools},...r.inputPricePerM===void 0?{}:{inputPricePerM:r.inputPricePerM},...r.outputPricePerM===void 0?{}:{outputPricePerM:r.outputPricePerM},...r.notes===void 0?{}:{notes:r.notes},...r.aa===void 0?{}:{aa:r.aa},...r.servedBy===void 0?{}:{providers:r.servedBy.map(t=>{let n=e.find(e=>e.definition.id===t)?.definition,i=n?.displayName??t;if(!r.subscriptionServedBy?.includes(t))return i;let a=n?.credentialVariants?.find(e=>e.id===`token-plan`)?.label;return`${i} — ${a?a.replace(/\s*\(.*\)\s*$/,``):`subscription`}`})}}}))}))}).filter(e=>e.models.length>0)}function Sc(e,t){let n=xc(e),r=n[0]??null,i=t.providerId??r?.providerId??null,a=t.variantId??(i?n.find(e=>e.providerId===i)?.variantId??null:r?.variantId??null);return i?t.model?{providerId:i,variantId:a,modelId:t.model}:{providerId:i,variantId:a,modelId:e.find(e=>e.definition.id===i)?.definition?.defaultModel||n.find(e=>e.providerId===i)?.models[0]?.modelId||null}:{providerId:null,variantId:a,modelId:t.model??null}}function Cc(e){if(!Number.isFinite(e))return`0 credits`;let t=Math.round(e*1e3)/1e3,n=t.toFixed(3).replace(/\.?0+$/,``);return`${n===``?`0`:n} credit${t===1?``:`s`}`}function wc(e){if(typeof e!=`string`)return null;let t=/^API Error\b:?\s*(?:(\d{3})(?!\d)\s*)?([\s\S]*)$/i.exec(e.trim());return t?{status:t[1]===void 0?null:Number(t[1]),message:(t[2]??``).trim()}:null}function Tc(e){return typeof e!=`string`||e===``?!1:/prompt is too long|maximum context length|context[ _-]?length[ _-]?exceeded|input token count exceeds|too many (?:input )?tokens|exceeds? the (?:maximum|model's) context/i.test(e)}var Ec=`chat too long for this model`;function Dc(e,t){if(Tc(t))return Ec;switch(e){case 400:case 422:return`invalid request`;case 401:return`sign-in needed`;case 402:return`insufficient credits`;case 403:return`not allowed`;case 404:return`model not found`;case 408:case 504:return`timed out`;case 413:return`request too large`;case 429:return`rate limited`;default:return e!==null&&e>=500&&e<=599?`provider error`:`API error`}}var Oc={error_max_turns:`max turns reached`,error_max_budget_usd:`budget reached`,error_during_execution:`error during execution`,error_max_structured_output_retries:`structured output failed`,interrupted:`interrupted`,success:`error`};function kc(e){if(!e.isError)return`turn complete`;let t=wc(e.text);if(t)return Dc(t.status,t.message);let n=Oc[e.subtype];if(n!==void 0)return n;let r=e.subtype.replace(/_/g,` `).trim();return r===``?`error`:r}var Ac={authentication_failed:`sign-in needed`,billing_error:`billing problem`,rate_limit:`rate limited`,invalid_request:`invalid request`,server_error:`provider error`};function jc(e,t){if(typeof e!=`string`)return null;let n=e.trim();if(n===``)return null;if(Tc(t))return Ec;let r=Ac[n];if(r!==void 0)return r;if(n===`unknown`){let e=wc(t);return e?Dc(e.status,e.message):Tc(t)?Ec:`error`}return n.replace(/_/g,` `)}function Mc(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function Nc(e,t){let n=typeof e==`object`&&e?e:{},r={input:Mc(n.input_tokens),cached:Mc(n.cache_read_input_tokens)+Mc(n.cache_creation_input_tokens),output:Mc(n.output_tokens)};if(r.input+r.cached+r.output>0||typeof t!=`object`||!t)return r;let i={input:0,cached:0,output:0};for(let e of Object.values(t)){if(typeof e!=`object`||!e)continue;let t=e;i.input+=Mc(t.inputTokens),i.cached+=Mc(t.cacheReadInputTokens)+Mc(t.cacheCreationInputTokens),i.output+=Mc(t.outputTokens)}return i}function Pc(e,t,n=140){let r=t??{};for(let t of[`command`,`file_path`,`pattern`,`query`,`url`,`path`,`prompt`]){let i=r[t];if(typeof i==`string`&&i.trim().length>0){let t=i.replace(/\s+/g,` `).trim();return`${e}: ${t.length>n?`${t.slice(0,n)}…`:t}`}}return e}var Fc={complete:`/api/v1/account/vault/rekey-complete`,revoke:`/api/v1/account/vault/rekey-revoke`,deviceUnlock:`/api/v1/account/device-unlock`};function Ic(e){return e?.deviceUnlock??`off`}function Lc(e){if(!e?.loggedIn)return null;let t=e;if(t.vaultStatus!==`pending_rekey`)return null;let n=t.vaultRekeyPending??null;return{pending:n,canFinishHere:t.canFinishRekey===!0,trustedDevices:n?.trustedDevices.map(e=>e.label||e.name)??[],since:n?.since??null,from:Rc(n)}}function Rc(e){if(!e)return null;let t=e.requestedFrom.device?.trim()||null,n=e.requestedFrom.ip?.trim()||null;return t&&n?`${t} (${n})`:t??n}function zc(e){if(!e)return`an unknown date`;let t=Date.parse(e);if(Number.isNaN(t))return`an unknown date`;try{return new Date(t).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}catch{return new Date(t).toISOString()}}function Bc(e){let t=e.from?` from ${e.from}`:``;return`A password reset was started on ${zc(e.since)}${t}. Your saved provider keys are still sealed under the old password.`}function Vc(e){return e.trustedDevices.length===0?`No device with "keep me unlocked" is left, so nothing here holds the key from before the reset.`:`Open OonaCode on ${Uc(e.trustedDevices)} to finish the reset — your saved keys are waiting there.`}var Hc=`Either way, your vault Recovery Key still works: sign in on the OonaCode website from any device and finish the reset there. Discarding is the last resort — it deletes your saved provider keys, your mirrored history and that Recovery Key for good.`;function Uc(e){return e.length<=1?e[0]??``:`${e.slice(0,-1).join(`, `)} or ${e[e.length-1]}`}function Wc(e){return e.canFinishHere?`A password reset is waiting: this PC can move your vault to the new password.`:e.trustedDevices.length>0?`A password reset is waiting — your saved keys stay locked until it is finished on ${Uc(e.trustedDevices)}.`:`A password reset is waiting and no PC holds the old key — finish it with your vault Recovery Key on the OonaCode website.`}var Gc=class extends Error{code;status;details;constructor(e,t,n,r){super(n),this.name=`HostApiError`,this.code=e,this.status=t,this.details=r}get isUnauthorized(){return this.status===401||this.code===`unauthorized`}get isEmailNotVerified(){return this.code===`email_not_verified`}};function Kc(e){if(!e)return``;let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}function qc(e){return e.trim().replace(/\/+$/,``)}function Jc(e,t){let n=qc(e.baseUrl),r=t??((e,t)=>fetch(e,t));async function i(t,i,a,o={}){let s={Authorization:`Bearer ${e.token}`,Accept:o.raw||o.bytes?`*/*`:`application/json`},c={method:t,headers:s,credentials:`omit`};a!==void 0&&(s[`Content-Type`]=`application/json`,c.body=JSON.stringify(a));let l;try{l=await r(`${n}${i}`,c)}catch(e){throw new Gc(`network`,0,`Cannot reach the host at ${n}: ${String(e?.message??e)}`)}if(!l.ok){let e=null,t=``;try{t=await l.text(),e=t?JSON.parse(t):null}catch{e=null}let n=e?.error?.code??(l.status===401?`unauthorized`:`internal`),r=e?.error?.message??(t||`${l.status} ${l.statusText}`);throw new Gc(n,l.status,r,e?.error?.details)}if(o.bytes)return await l.arrayBuffer();if(o.raw)return await l.text();if(l.status===204)return;let u=await l.text();if(u)try{return JSON.parse(u)}catch{throw new Gc(`parse`,l.status,`Host returned malformed JSON for ${t} ${i}`)}}let a=Te;return{health:()=>i(a.health,I.health),info:()=>i(a.info,I.info),listSessions:e=>i(a.listSessions,`${I.sessions}${Kc(e)}`),createSession:e=>i(a.createSession,I.sessions,e),getSession:e=>i(a.getSession,I.session(e)),updateSession:(e,t)=>i(a.updateSession,I.session(e),t),deleteSession:e=>i(a.deleteSession,I.session(e)),exportSessionsArchive:async t=>{let i=await r(`${n}${I.sessionsExportArchive}`,{method:`POST`,credentials:`omit`,headers:{Authorization:`Bearer ${e.token}`,Accept:`application/zip`,"Content-Type":`application/json`},body:JSON.stringify({password:t})});if(!i.ok){let e=await i.text().catch(()=>``),t=null;try{t=e?JSON.parse(e):null}catch{t=null}throw new Gc(t?.error?.code??`internal`,i.status,t?.error?.message??e??`the export failed`)}return i.blob()},listEntries:(e,t)=>i(a.listEntries,`${I.sessionEntries(e)}${Kc(t)}`),listMessages:e=>i(a.listMessages,I.sessionMessages(e)),prompt:(e,t)=>i(a.prompt,I.sessionPrompt(e),{...t,stream:!1}),interrupt:e=>i(a.interrupt,I.sessionInterrupt(e),{}),cancelQueued:(e,t)=>i(a.cancelQueued,I.sessionQueued(e,t)),forkSession:(e,t)=>i(a.fork,I.sessionFork(e),t??{}),exportSession:(e,t)=>i(a.export,`${I.sessionExport(e)}${Kc(t)}`,void 0,{raw:!0}),listProjects:()=>i(a.listProjects,I.projects),listVaultProjects:()=>i(a.listVaultProjects,I.vaultProjects),createVaultProject:e=>i(a.createVaultProject,I.vaultProjects,e),updateVaultProject:(e,t)=>i(a.updateVaultProject,I.vaultProject(e),t),deleteVaultProject:e=>i(a.deleteVaultProject,I.vaultProject(e)),scanClaudeSessions:()=>i(a.scanClaudeSessions,I.importClaude),importClaudeSessions:e=>i(a.importClaudeSessions,I.importClaude,e??{}),sessionLink:e=>i(a.sessionLink,I.sessionLink(e)),syncSessionDown:e=>i(a.syncSessionDown,I.sessionSyncDown(e),{}),inspectProject:e=>i(a.inspectProject,`${I.projectInspect}${Kc(e)}`),attachSessionProject:(e,t)=>i(a.attachSessionProject,I.sessionProject(e),t),listProviders:()=>i(a.listProviders,I.providers),setActiveProvider:e=>i(a.setActiveProvider,I.providersActive,e),testProvider:e=>i(a.providerTest,I.providerTest(e),{}),probeCredential:(e,t)=>i(a.providerProbe,I.providerProbe(e),t),listModels:e=>i(a.listModels,`${I.models}${Kc(e)}`),getSettings:()=>i(a.getSettings,I.settings),updateSettings:e=>i(a.updateSettings,I.settings,e),getAccount:()=>i(a.getAccount,I.account),login:e=>i(a.login,I.accountLogin,e),logout:()=>i(a.logout,I.accountLogout,{}),unlock:e=>i(a.unlock,I.accountUnlock,e),lock:()=>i(`POST`,I.accountLock,{reason:`user`}),plan:()=>i(`GET`,I.accountPlan),remoteUnlockHost:(e,t)=>i(`POST`,I.hostVaultUnlock(e),{password:t}),resendVerification:e=>i(a.resendVerification,I.accountResendVerification,e),startAccountLink:e=>i(a.linkStart,I.accountLinkStart,e??{}),accountLinkStatus:()=>i(a.linkStatus,I.accountLinkStatus),cancelAccountLink:()=>i(a.linkCancel,I.accountLinkCancel,{}),completeVaultRekey:e=>i(`POST`,Fc.complete,e),revokeVaultRekey:e=>i(`POST`,Fc.revoke,e),setDeviceUnlock:e=>i(`POST`,Fc.deviceUnlock,e),listCredentials:()=>i(a.listCredentials,I.credentials),addCredential:e=>i(a.addCredential,I.credentials,e),deleteCredential:e=>i(a.deleteCredential,I.credential(e)),testCredential:e=>i(a.credentialTest,I.credentialTest(e),{}),syncNow:()=>i(a.syncNow,I.syncNow,{}),claudeSubscriptionLogin:()=>i(a.claudeLogin,I.subscriptionClaudeLogin,{}),claudeSubscriptionStatus:()=>i(a.claudeStatus,I.subscriptionClaudeStatus),claudeLoginState:()=>i(a.claudeLoginState,I.subscriptionClaudeLoginState),claudeLoginCode:e=>i(a.claudeLoginCode,I.subscriptionClaudeLoginCode,e),claudeLoginCancel:()=>i(a.claudeLoginCancel,I.subscriptionClaudeLoginCancel,{}),oauthLoginStart:e=>i(a.oauthLogin,I.subscriptionOauthLogin(e),{}),oauthLoginState:e=>i(a.oauthLoginState,I.subscriptionOauthLoginState(e)),oauthLoginCancel:e=>i(a.oauthLoginCancel,I.subscriptionOauthLoginCancel(e),{}),doctor:()=>i(a.doctor,I.doctor),listHosts:()=>i(a.listHosts,I.hosts),listHostSessions:e=>i(a.listHostSessions,I.hostSessions(e)),deleteHostSession:(e,t)=>i(a.deleteHostSession,I.hostSession(e,t),{method:`DELETE`}),updateHost:(e,t)=>i(a.updateHost,I.host(e),t),listHostSessionEntries:(e,t,n)=>i(a.listHostSessionEntries,`${I.hostSessionEntries(e,t)}${Kc(n)}`),reportError:e=>i(a.errorReport,I.errorReport,e),sendBugReport:e=>i(a.bugReport,I.bugReport,e),listSessionFiles:(e,t)=>i(a.listSessionFiles,`${I.sessionFiles(e)}${Kc({path:t})}`),readSessionFile:(e,t)=>i(a.readSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`,void 0,{raw:!0}),readSessionFileBytes:(e,t)=>i(a.readSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`,void 0,{bytes:!0}),deleteSessionFile:(e,t)=>i(a.deleteSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`)}}function Yc(e){return e instanceof Gc&&(e.status===404||e.status===501)}var Xc=120;function Zc(){return Xc}function Qc(e){let t=e.batchMs??120,n=e.hiddenBatchMs??1e3,r=e.isHidden??(()=>!1),i=e.now??(()=>Date.now()),a=e.setTimeout??((e,t)=>setTimeout(e,t)),o=e.clearTimeout??(e=>clearTimeout(e)),s=[],c=null,l=-1/0,u=!1,d=()=>{if(c!==null&&(o(c),c=null),s.length===0)return;let t=s;s=[],l=i(),e.deliver(t)};return{push(o){if(u)return;if(s.push(o),!e.isStreamFrame(o)){d();return}let f=r()?n:t;if(f<=0){d();return}if(c!==null)return;let p=i()-l;if(p>=f){d();return}c=a(()=>{c=null,d()},f-p)},flush:d,dispose(){u=!0,c!==null&&o(c),c=null,s=[]}}}function $c(e){return e instanceof Gc&&e.code===`email_not_verified`}function el(e){if(!$c(e))return null;let t={error:{code:e.code,message:e.message,details:e.details}};return A(t)?t.error.details:null}function tl(e){let t=e.trim(),n=t.indexOf(`@`);return n<=0?`***`:`${t.slice(0,1)}***${t.slice(n)}`}function nl(e,t){return e===void 0||!Number.isFinite(e)||e<=0?t:t+Math.ceil(e)*1e3}function rl(e,t){return Math.max(0,Math.ceil((e.resendAt-t)/1e3))}function il(e,t){if(!$c(e))return null;let n=t.now??Date.now(),r=el(e),i=t.email.trim();return{email:i,displayEmail:r?.email||tl(i),verification:r?.verification??`pending`,registered:t.registered===!0,resendAt:nl(r?.resendAfterSec,n)}}function al(e){let t=e.registered?`Account created. `:``;return e.verification===`unverified`?`${t}Confirm your email first — no link is outstanding for ${e.displayEmail}; send a new one.`:`${t}Confirm your email first — we sent a link to ${e.displayEmail}.`}function ol(e=null){return{sessionId:e,session:null,items:[],index:new Map,status:`idle`,activeTurnId:null,init:null,statusText:null,pendingPermissions:[],lastSeq:null,totals:{costUsd:0,inputTokens:0,cachedInputTokens:0,outputTokens:0,turns:0},turnCachedTokens:0,hydrated:!1,agentActivity:{},hasSubagentItems:!1,hasOptimisticUser:!1,lastLocalPromptId:null,lastFrameAt:null,lastLiveUuid:null,engineSince:null,subpathParents:{},seen:new Set,streams:{},nextId:1}}function sl(e,t){let n=e.agentActivity[t.agentId],r={subpath:t.subpath,firstAt:n?Math.min(n.firstAt,t.at):t.at,at:n?Math.max(n.at,t.at):t.at,finished:t.finished,toolUses:(n?.toolUses??0)+t.toolUses};return{...e,agentActivity:{...e.agentActivity,[t.agentId]:r}}}function cl(e,t,n,r,i,a){let o=Ul.exec(t)?.[2];if(!o)return e;let s=i&&Date.parse(i)||0;if(n!==`assistant`)return sl(e,{agentId:o,subpath:t,at:s,finished:e.agentActivity[o]?.finished??!1,toolUses:0});let c=(Array.isArray(r)?r:[]).filter(e=>e.type===`tool_use`),l=c.length===0;return typeof a==`string`&&(l=a===`end_turn`||a===`stop_sequence`),c.some(e=>e.name===`StructuredOutput`)&&(l=!0),sl(e,{agentId:o,subpath:t,at:s,finished:l,toolUses:c.length})}function ll(e,t){switch(t.type){case`frame`:return ul(e,t.frame,t.receivedAt);case`hydrate`:return zl(e,t.messages,t.session??null);case`entries`:return Vl(e,t.entries);case`session`:return Kl(e,t.session);case`local_prompt`:return Jl(e,t);case`local_prompt_failed`:return Yl(e,t.requestId);case`local_permission`:return Rl(e,t.requestId,t.behavior,`local`);case`local_system`:{let n={kind:`system`,id:`sys:${e.nextId}`,uuid:null,parentToolUseId:null,turnId:null,timestamp:null,subtype:t.subtype,text:t.text};return U({...e,nextId:e.nextId+1},n)}case`reset`:return ol(e.sessionId)}}function ul(e,t,n){let r=hl(e,t,n);if(n===void 0||!fl(t,e,r))return r;let i=r.lastFrameAt;return i!==null&&n>=i&&n-i<1e3?r:{...r,lastFrameAt:n}}function dl(e){return e===`running`||e===`waiting_permission`}function fl(e,t,n){switch(e.type){case`agent`:return e.seq===null?e.message.type!==`system`||e.message.subtype!==`local_command`:!1;case`turn_started`:case`turn_finished`:case`prompt_delivered`:case`subagent_activity`:return!0;case`permission_request`:return n!==t;case`permission_resolved`:return!0;default:return!1}}function pl(e){if(e.lastFrameAt!==null||!e.hydrated||!dl(e.status))return e;let t=e.engineSince??0;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n].timestamp,i=r?Date.parse(r):NaN;if(Number.isFinite(i)){i>t&&(t=i);break}}for(let n of Object.values(e.agentActivity))n.at>t&&(t=n.at);return t>0?{...e,lastFrameAt:t}:e}function ml(e,t,n){return t!==null||n===void 0||typeof e.timestamp==`string`?e:{...e,timestamp:new Date(n).toISOString()}}function hl(e,t,n){switch(t.type){case`agent`:{if(t.seq!==null&&e.seen.has(`seq:${t.seq}`))return e;let r=gl(e,ml(t.message,t.seq,n),{turnId:t.turnId,receivedAt:n});return t.seq!==null&&(r=au(r,`seq:${t.seq}`),(r.lastSeq===null||t.seq>r.lastSeq)&&(r={...r,lastSeq:t.seq})),r}case`turn_started`:{let n=`turnstart:${t.turnId}`;if(e.seen.has(n))return e;let r=au(e,n);if(r={...r,activeTurnId:t.turnId,status:`running`,statusText:null,turnCachedTokens:0},t.requestId){let e=r.items.findIndex(e=>e.kind===`user`&&e.requestId===t.requestId);if(e>=0){let n={...r.items[e],turnId:t.turnId,waiting:!1};r=e<r.items.length-1?U(ru(r,new Set([n.id])),n):nu(r,e,n)}}return r}case`turn_finished`:return Nl(e,t.result,t.turnId);case`prompt_delivered`:return kl(e,t.text,t.deliveredAt);case`prompt_cancelled`:{let n=e.items.filter(e=>e.kind===`user`&&!e.failed&&(e.requestId===t.requestId||(e.waiting||e.optimistic)&&e.deliveredAt===null&&e.text===t.text));return ru(e,new Set(n.map(e=>e.id)))}case`subagent_activity`:return sl(e,{agentId:t.agentId,subpath:t.subpath,at:Date.parse(t.at)||Date.now(),finished:t.finished,toolUses:t.toolUses});case`permission_request`:return Ll(e,t.request,t.turnId,t.settled===!0);case`permission_resolved`:return Rl(e,t.requestId,t.behavior,t.resolvedBy);case`session_state`:{let n=t.session;return Kl((n.status===`idle`||n.status===`error`)&&e.pendingPermissions.length===0&&e.activeTurnId!==null?{...e,activeTurnId:null}:e,n)}case`error`:{if(t.code===`replay_truncated`||t.code===`replay_windowed`)return e;let r={kind:`error`,id:`err:${e.nextId}`,uuid:null,parentToolUseId:null,turnId:e.activeTurnId,timestamp:n===void 0?null:new Date(n).toISOString(),code:t.code,message:t.message,requestId:t.requestId??null};return U({...e,nextId:e.nextId+1},r)}default:return e}}function gl(e,t,n){let r=typeof t.uuid==`string`?t.uuid:null,i=t.type===`stream_event`||t.type===`tool_progress`,a=r&&!i?`uuid:${r}`:null;if(i&&r!==null&&r===e.lastLiveUuid)return e;if(a&&e.seen.has(a))return t.type===`assistant`?xl(e,t):e;let o=e;switch(t.type){case`system`:o=_l(e,t,n);break;case`stream_event`:o=vl(e,t,n);break;case`assistant`:o=bl(e,t,n);break;case`user`:o=El(e,t,n);break;case`result`:o=Ml(e,t,n);break;case`tool_progress`:o=Fl(e,t);break;case`auth_status`:o=Il(e,t,n);break;default:return e}return a?o=au(o,a):i&&r!==null&&(o={...o,lastLiveUuid:r}),o}function _l(e,t,n){switch(t.subtype){case`init`:{let r={model:du(t.model),cwd:du(t.cwd),tools:Array.isArray(t.tools)?t.tools.filter(e=>typeof e==`string`):[],permissionMode:du(t.permissionMode),claudeCodeVersion:du(t.claude_code_version),apiKeySource:du(t.apiKeySource),sessionId:du(t.session_id),mcpServers:Array.isArray(t.mcp_servers)?t.mcp_servers:[]};return{...e,init:r,engineSince:n.receivedAt??Date.now()}}case`compact_boundary`:{let r=t.compact_metadata??{},i={kind:`compact`,id:su(e,`compact`,t),uuid:cu(t),parentToolUseId:lu(t),turnId:n.turnId,timestamp:uu(t),trigger:r.trigger===`manual`?`manual`:`auto`,preTokens:typeof r.pre_tokens==`number`?r.pre_tokens:0,postTokens:typeof r.post_tokens==`number`?r.post_tokens:null};return U(ou(e),i)}case`status`:{let n=typeof t.status==`string`?t.status:null;return{...e,statusText:n}}case`task_notification`:{let r=fe({taskId:du(t.task_id)||null,toolUseId:du(t.tool_use_id)||null,status:du(t.status)||null,summary:du(t.summary)||null});if(Ql(e,r))return e;let i=cu(t),a={kind:`user`,id:i?`u:${i}`:`i${e.nextId}`,uuid:i,parentToolUseId:lu(t),turnId:n.turnId,timestamp:uu(t),text:r,attachments:[],requestId:null,optimistic:!1,failed:!1,waiting:!1,deliveredAt:null,compactSummary:!1,taskNotification:!0,engineNote:!1};return e.index.get(a.id)===void 0?U(i?e:ou(e),a):e}case`permission_denied`:{let n=du(t.tool_use_id),r=du(t.message);return iu(e,n,e=>{let t=e.name===`AskUserQuestion`&&r===`the user skipped the question`;return{...e,status:t?`skipped`:`denied`,result:e.result??{content:r||`Permission denied`,isError:!t,structured:null}}})}case`rewind_boundary`:{let n={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:lu(t),turnId:e.activeTurnId,timestamp:uu(t),subtype:`rewind`,text:typeof t.content==`string`&&t.content.trim()?t.content.trim():`Rewound here — the conversation was taken back to this point and continued differently.`};return U({...e,nextId:e.nextId+1},n)}default:{let n=typeof t.content==`string`?t.content.trim():``,r=n?Tl(n):null;if(!r||r.subtype===`caveat`)return e;let i={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:lu(t),turnId:e.activeTurnId,timestamp:uu(t),subtype:r.subtype,text:r.text};return U({...e,nextId:e.nextId+1},i)}}}function vl(e,t,n){let r=t.event;if(!r||typeof r!=`object`)return e;let i=lu(t),a=i??``,o=e.streams[a]??{messageId:null,model:null,blocks:{},unclaimed:[]};switch(r.type){case`message_start`:{let t=r.message,n={messageId:t?.id??null,model:t?.model??null,blocks:{},unclaimed:[]},i=e;for(let e of o.unclaimed)i=yl(i,e);return{...i,streams:{...i.streams,[a]:n}}}case`content_block_start`:{let s=r.content_block,c=e,l;if(s.type===`text`)l={kind:`assistant`,id:`i${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),text:s.text??``,streaming:!0,model:o.model,messageId:o.messageId,error:null,aborted:!1},c=ou(c);else if(s.type===`thinking`||s.type===`redacted_thinking`)l={kind:`thinking`,id:`i${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),text:s.type===`thinking`?s.thinking??``:``,streaming:!0,redacted:s.type===`redacted_thinking`},c=ou(c);else if(s.type===`tool_use`){let c=s;if(e.index.get(c.id)!==void 0){let t={...o.blocks,[r.index]:c.id};return{...e,streams:{...e.streams,[a]:{...o,blocks:t}}}}let u=c.input&&Object.keys(c.input).length>0;l={kind:`tool`,id:c.id,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),toolUseId:c.id,name:c.name,input:u?c.input:null,inputJson:u?JSON.stringify(c.input):``,status:`streaming`,result:null,startedAt:n.receivedAt??null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:o.messageId}}else return e;c=U(c,l);let u={...o.blocks,[r.index]:l.id},d=[...o.unclaimed,l.id];return{...c,streams:{...c.streams,[a]:{...o,blocks:u,unclaimed:d}}}}case`content_block_delta`:{let t=o.blocks[r.index];if(!t)return e;let n=e.index.get(t);if(n===void 0)return e;let i=e.items[n],a=r.delta;return a.type===`text_delta`&&i.kind===`assistant`?nu(e,n,{...i,text:i.text+a.text}):a.type===`thinking_delta`&&i.kind===`thinking`?nu(e,n,{...i,text:i.text+a.thinking}):a.type===`input_json_delta`&&i.kind===`tool`?nu(e,n,{...i,inputJson:i.inputJson+a.partial_json}):e}case`content_block_stop`:{let t=o.blocks[r.index];return t?yl(e,t,n.receivedAt):e}case`message_delta`:case`message_stop`:case`ping`:return e;case`error`:{let a={kind:`error`,id:`err:${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),code:r.error?.type??`stream_error`,message:r.error?.message??`stream error`,requestId:null};return U(ou(e),a)}default:return e}}function yl(e,t,n){let r=e.index.get(t);if(r===void 0)return e;let i=e.items[r];if(i.kind===`assistant`||i.kind===`thinking`)return i.streaming?nu(e,r,{...i,streaming:!1}):e;if(i.kind===`tool`&&i.status===`streaming`){let t=i.input??hu(i.inputJson);return nu(e,r,{...i,input:t,status:`running`,startedAt:i.startedAt??n??null})}return e}function bl(e,t,n){let r=t.message??{},i=pu(r.content),a=lu(t),o=a??``,s=cu(t),c=uu(t),l=typeof t.error==`string`?t.error:null,u=t.aborted===!0,d=e;{let e=fu(r.usage?.cache_read_input_tokens)+fu(r.usage?.cache_creation_input_tokens),t=`usage:${r.id??``}`;e>0&&r.id&&!d.seen.has(t)&&(d={...au(d,t),turnCachedTokens:d.turnCachedTokens+e})}let f=d.streams[o];for(let e of i){let t=f?Sl(d,f,e):null;if(t){let n=d.index.get(t),i=d.items[n];d=nu(d,n,Cl(i,e,{uuid:s,timestamp:c,model:r.model??null,messageId:r.id??null,errorText:l,aborted:u})),f={...f,unclaimed:f.unclaimed.filter(e=>e!==t)},d={...d,streams:{...d.streams,[o]:f}};continue}let i=wl(d,e,{uuid:s,timestamp:c,parentToolUseId:a,turnId:n.turnId,model:r.model??null,messageId:r.id??null,errorText:l,aborted:u,receivedAt:n.receivedAt});i&&(d=i)}if(i.length===0&&l){let e={kind:`error`,id:`err:${d.nextId}`,uuid:s,parentToolUseId:a,turnId:n.turnId,timestamp:c,code:`assistant_error`,message:l,requestId:null};d=U(ou(d),e)}return d}function xl(e,t){let n=lu(t)??``,r=e.streams[n];if(!r||r.unclaimed.length===0)return e;let i=t.message??{},a=new Set,o=e,s=r;for(let e of pu(i.content)){let t=Sl(o,s,e);t&&(a.add(t),s={...s,unclaimed:s.unclaimed.filter(e=>e!==t)},o={...o,streams:{...o.streams,[n]:s}})}return ru(e,a)}function Sl(e,t,n){for(let r of t.unclaimed){let t=e.index.get(r);if(t===void 0)continue;let i=e.items[t];if(!i.uuid&&(n.type===`text`&&i.kind===`assistant`||(n.type===`thinking`||n.type===`redacted_thinking`)&&i.kind===`thinking`||n.type===`tool_use`&&i.kind===`tool`&&i.toolUseId===n.id))return r}return null}function Cl(e,t,n){if(e.kind===`assistant`&&t.type===`text`){let r=t.text??e.text;return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,text:r.length>=e.text.length?r:e.text,streaming:!1,model:n.model??e.model,messageId:n.messageId??e.messageId,error:n.errorText,aborted:n.aborted}}if(e.kind===`thinking`){let r=t.type===`thinking`?t.thinking??e.text:e.text;return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,text:r||e.text,streaming:!1}}if(e.kind===`tool`&&t.type===`tool_use`){let r=t,i=r.input&&Object.keys(r.input).length>0?r.input:e.input??hu(e.inputJson);return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,name:r.name??e.name,input:i,inputJson:e.inputJson||(i?JSON.stringify(i):``),status:e.status===`streaming`?`running`:e.status,messageId:n.messageId??e.messageId}}return e}function wl(e,t,n){let r={uuid:n.uuid,parentToolUseId:n.parentToolUseId,turnId:n.turnId,timestamp:n.timestamp};if(t.type===`text`){let i={kind:`assistant`,id:`i${e.nextId}`,...r,text:t.text??``,streaming:!1,model:n.model,messageId:n.messageId,error:n.errorText,aborted:n.aborted};return U(ou(e),i)}if(t.type===`thinking`||t.type===`redacted_thinking`){let n={kind:`thinking`,id:`i${e.nextId}`,...r,text:t.type===`thinking`?t.thinking??``:``,streaming:!1,redacted:t.type===`redacted_thinking`};return U(ou(e),n)}if(t.type===`tool_use`){let i=t,a=e.index.get(i.id);if(a!==void 0){let r=e.items[a];return nu(e,a,Cl(r,t,n))}let o=i.input&&typeof i.input==`object`?i.input:null;return U(e,{kind:`tool`,id:i.id,...r,toolUseId:i.id,name:i.name,input:o,inputJson:o?JSON.stringify(o):``,status:`running`,result:null,startedAt:n.receivedAt??null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:n.messageId})}return null}function Tl(e){if(/^<local-command-caveat>/.test(e))return{subtype:`caveat`,text:``};let t=/^<local-command-(stdout|stderr)>([\s\S]*?)<\/local-command-\1>$/.exec(e);if(t){let e=t[2].replace(/\u001b\[[0-9;]*m/g,``).trim();return{subtype:t[1]===`stderr`?`local-command-error`:`local-command`,text:e}}let n=/<command-name>([^<]*)<\/command-name>/.exec(e);if(n&&/^<command-/.test(e)){let t=/<command-args>([^<]*)<\/command-args>/.exec(e)?.[1]?.trim()??``;return{subtype:`command`,text:`${n[1].trim()}${t?` `+t:``}`}}return null}function El(e,t,n){let r=t.message??{},i=lu(t),a=cu(t),o=uu(t),s=t.isSynthetic===!0,c=e,l=[],u=[],d=!1;if(typeof r.content==`string`)l.push(r.content);else for(let e of pu(r.content))if(e.type===`text`)l.push(e.text??``);else if(e.type===`tool_result`){d=!0;let r=e;c=Al(c,r.tool_use_id,{content:r.content??``,isError:r.is_error===!0,structured:t.tool_use_result??null},n.receivedAt)}else(e.type===`image`||e.type===`document`)&&u.push(e);let f=se(l.join(`
|
|
75
|
-
`)).trim();if(ue(f)&&Ql(c,f))return c;let p=Tl(f);if(p?.subtype===`caveat`)return c;if(p){let e={kind:`system`,id:`sys:${c.nextId}`,uuid:a,parentToolUseId:i,turnId:c.activeTurnId,timestamp:o,subtype:p.subtype,text:p.text};return U({...c,nextId:c.nextId+1},e)}if(f.length===0&&u.length===0||d&&f.length===0||s&&d)return c;if(i===null&&!s&&c.hasOptimisticUser){let e=c.items.findIndex(e=>e.kind===`user`&&e.optimistic&&!e.failed&&e.text===f);if(e<0&&(c={...c,hasOptimisticUser:!1}),e>=0){let t=c.items[e],r={...t,uuid:a??t.uuid,timestamp:o??t.timestamp,optimistic:!1,turnId:t.turnId??n.turnId};return t.waiting&&e<c.items.length-1?U(ru(c,new Set([t.id])),{...r,waiting:!1}):nu(c,e,r)}}let m=t.isMeta===!0||ie(f),h=t.isCompactSummary===!0||te(f)||ue(f),g={kind:`user`,id:a?`u:${a}`:`i${c.nextId}`,uuid:a,parentToolUseId:i,turnId:n.turnId,timestamp:o,text:f,attachments:u,requestId:null,optimistic:!1,failed:!1,waiting:!s&&!m&&!h&&i===null&&n.turnId!==null&&Dl(c,n.turnId),deliveredAt:null,compactSummary:t.isCompactSummary===!0||te(f),taskNotification:ue(f),engineNote:!te(f)&&!ue(f)&&m};return c.index.get(g.id)===void 0?U(a?c:ou(c),g):c}function Dl(e,t){if(e.status!==`running`)return!1;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n];if((t===null||r.turnId===null||r.turnId===t)&&(r.kind===`assistant`||r.kind===`thinking`||r.kind===`tool`))return!0}return!1}function Ol(e){let t=-1;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n];if(r.kind===`user`&&r.waiting){t=n;break}}if(t<0)return e;let n=e.items.map(e=>e.kind===`user`&&e.waiting?{...e,waiting:!1}:e);return{...e,items:n}}function kl(e,t,n){for(let
|
|
76
|
-
`):``,i=typeof t.error==`string`?t.error:null,a=i?`Authentication error: ${i}`:t.isAuthenticating?`Authenticating…\n${r}`.trim():r;if(!a)return e;let o={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:null,turnId:n.turnId,timestamp:uu(t),subtype:`auth_status`,text:a};return U(ou(e),o)}function Ll(e,t,n,r=!1){let i=`perm:${t.requestId}`;if(e.index.get(i)!==void 0)return e;let a=e.index.get(t.toolUseId),o=a===void 0?void 0:e.items[a],s=U(e,{kind:`permission`,id:i,uuid:null,parentToolUseId:o?.kind===`tool`?o.parentToolUseId:null,turnId:n,timestamp:t.createdAt,request:t,status:`pending`,resolvedBy:null});return s=iu(s,t.toolUseId,e=>({...e,permissionRequestId:t.requestId,status:e.result?e.status:`pending`})),r?{...s,activeTurnId:s.activeTurnId??n}:{...s,pendingPermissions:[...s.pendingPermissions.filter(e=>e.requestId!==t.requestId),t],status:`waiting_permission`,activeTurnId:s.activeTurnId??n}}function Rl(e,t,n,r){let i=`perm:${t}`,a=e.index.get(i),o=e,s=null;if(a!==void 0){let e=o.items[a];s=e.request.toolUseId,e.status===`pending`&&(o=nu(o,a,{...e,status:n===`allow`?`allowed`:`denied`,resolvedBy:r}))}let c=o.pendingPermissions.filter(e=>e.requestId!==t);s&&(o=iu(o,s,e=>e.result?e:{...e,status:n===`allow`?`running`:`denied`}));let l=c.length>0?`waiting_permission`:o.activeTurnId||o.status===`waiting_permission`?`running`:o.status;return{...o,pendingPermissions:c,status:l}}function zl(e,t,n){return eu(e,e=>Bl(e,t,n))}function Bl(e,t,n){let r=e;for(let e of t){let t=e.parentToolUseId;if(e.subpath&&(r=cl(r,e.subpath,e.role,e.content,e.timestamp)),e.subpath&&(t===null||r.index.get(t)===void 0)){let n=H(r,e.subpath);r=n.state,t=n.parentToolUseId}let n={type:e.role===`assistant`?`assistant`:e.role===`user`?`user`:`system`,uuid:e.uuid,parent_tool_use_id:t,timestamp:e.timestamp??void 0};if(e.role===`system`){let t=typeof e.content==`string`?e.content:mu(pu(e.content));if(!t||r.seen.has(`uuid:${e.uuid}`))continue;let n={kind:`system`,id:`sys:${e.uuid}`,uuid:e.uuid,parentToolUseId:e.parentToolUseId,turnId:null,timestamp:e.timestamp,subtype:e.subtype===`rewind_boundary`?`rewind`:`history`,text:t};r.index.get(n.id)===void 0&&(r=au(U(r,n),`uuid:${e.uuid}`));continue}let i=e.role===`assistant`?{id:null,role:`assistant`,model:e.model,content:pu(e.content)}:{role:`user`,content:typeof e.content==`string`?e.content:pu(e.content)};r=gl(r,{...n,message:i},{turnId:null,receivedAt:void 0})}return r={...r,hydrated:!0},r=n?Kl(r,n):ql(r),pl(r)}function Vl(e,t){return eu(e,e=>Hl(e,t))}function Hl(e,t){let n=e;for(let e of t){let t=`seq:${e.seq}`;if(n.seen.has(t))continue;let r=e.entry,i=e.type||String(r.type??``);if(i===`attachment`){let t=ce(r);if(t!==null){let i={type:`user`,uuid:e.uuid??(typeof r.uuid==`string`?r.uuid:void 0),parent_tool_use_id:null,timestamp:e.timestamp??void 0,message:{role:`user`,content:t}};n=gl(n,i,{turnId:null,receivedAt:void 0})}}if(i===`queue-operation`){let e=F(r);e&&(n=kl(n,e.text,e.deliveredAt))}if(i===`user`||i===`assistant`||i===`system`||i===`result`){let t=r.parent_tool_use_id??null;if(e.subpath){let t=r.message;n=cl(n,e.subpath,i,t?.content,e.timestamp,t?.stop_reason)}if(e.subpath&&(t===null||n.index.get(t)===void 0)){let r=H(n,e.subpath);n=r.state,t=r.parentToolUseId}let a={...r,type:i,uuid:e.uuid??(typeof r.uuid==`string`?r.uuid:void 0),parent_tool_use_id:t,timestamp:e.timestamp??void 0};n=gl(n,a,{turnId:null,receivedAt:void 0})}n=au(n,t),(n.lastSeq===null||e.seq>n.lastSeq)&&(n={...n,lastSeq:e.seq})}return pl(ql({...n,hydrated:!0}))}var Ul=/^subagents\/(?:workflows\/([^/]+)\/)?agent-(.+?)(?:\.jsonl)?$/;function Wl(e){return`subagent:${e}`}function Gl(e){return`subagent:workflows/${e}`}function V(e,t,n,r){return{kind:`tool`,id:e,uuid:null,parentToolUseId:r,turnId:null,timestamp:null,toolUseId:e,name:t,input:{description:n},inputJson:``,status:`done`,result:null,startedAt:null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:null}}function H(e,t){if(!t)return{state:e,parentToolUseId:null};let n=e.subpathParents[t];if(n!==void 0&&e.index.get(n)!==void 0)return{state:e,parentToolUseId:n};let r=Ul.exec(t);if(!r)return{state:e,parentToolUseId:null};let i=r[1]??null,a=r[2],o=(e,n)=>({state:$l?(e.subpathParents[t]=n,e):{...e,subpathParents:{...e.subpathParents,[t]:n}},parentToolUseId:n}),s=e.index.get(a);if(s!==void 0){let t=e.items[s];if(t?.kind===`tool`)return o(e,t.toolUseId)}if(i){for(let t of e.items)if(t.kind===`tool`&&t.name===`Workflow`&&t.result!==null&&gu(t.result).includes(i))return o(e,t.toolUseId)}let c=Wl(t);if(e.index.get(c)!==void 0)return o(e,c);let l=a.slice(0,8),u=e,d=null;i&&(d=Gl(i),u.index.get(d)===void 0&&(u=U(u,V(d,`Workflow`,`Workflow run ${i} (transcript)`,null))));let f=V(c,`Agent`,i?`Agent ${l}`:`Agent ${l} (transcript)`,d);return o(U(u,f),c)}function Kl(e,t){let n=e.pendingPermissions.length>0?`waiting_permission`:t.status,r=t.engineSince?Date.parse(t.engineSince):NaN,i=e.hydrated&&e.session!==null&&!dl(e.status)&&dl(n),a=pl(ql({...e,session:t,sessionId:t.id,status:n,engineSince:Number.isFinite(r)?r:e.engineSince,...i?{lastFrameAt:null}:{}}));if(!i)return a;let o=Date.parse(t.updatedAt);return Number.isFinite(o)&&o>(a.lastFrameAt??0)?{...a,lastFrameAt:o}:a}function ql(e){if(e.activeTurnId!==null||e.status!==`idle`&&e.status!==`error`)return e;let t=!1,n=e.items.map(e=>(e.kind===`assistant`||e.kind===`thinking`)&&e.streaming?(t=!0,{...e,streaming:!1}):e.kind===`tool`&&e.result===null&&(e.status===`streaming`||e.status===`running`||e.status===`pending`)?(t=!0,{...e,status:`cancelled`,input:e.input??hu(e.inputJson)}):e);return t?{...e,items:n}:e}function Jl(e,t){let n=(t.attachments??[]).filter(e=>typeof e==`object`&&!!e&&typeof e.type==`string`),r={kind:`user`,id:`req:${t.requestId}`,uuid:null,parentToolUseId:null,turnId:null,timestamp:t.at??null,text:t.text,attachments:n,requestId:t.requestId,optimistic:!0,failed:!1,waiting:e.status===`running`,deliveredAt:null,compactSummary:!1,taskNotification:!1,engineNote:!1};if(e.index.get(r.id)!==void 0)return e;let i=new Set(e.items.filter(e=>e.kind===`user`&&e.failed&&e.text===t.text).map(e=>e.id)),a=!dl(e.status),o=t.at===void 0?NaN:Date.parse(t.at);return{...U(ru(e,i),r),status:`running`,statusText:null,hasOptimisticUser:!0,lastLocalPromptId:r.id,...a?{lastFrameAt:Number.isFinite(o)?o:null}:{}}}function Yl(e,t){let n=e.index.get(`req:${t}`),r=e;if(n!==void 0){let t=e.items[n];t?.kind===`user`&&!t.failed&&(r=nu(e,n,{...t,failed:!0}))}return r.activeTurnId!==null||r.status!==`running`&&r.status!==`waiting_permission`?r:{...r,status:`error`,statusText:null}}function Xl(e,t){let n=new Map,r=new Map;for(let t of e){let e={item:t,children:[]};n.set(t.id,e),t.kind===`tool`&&r.set(t.toolUseId,e)}let i=[];for(let t of e){let e=n.get(t.id),a=t.parentToolUseId?r.get(t.parentToolUseId):void 0;a&&a!==e?a.children.push(e):i.push(e)}if(!t||t.length===0)return i;let a=new Map,o=e=>{for(let t of e)a.set(t.item.id,t),t.children.length>0&&o(t.children)};o(t);let s=new Map;for(let t=e.length-1;t>=0;t--){let r=n.get(e[t].id);for(let e=0;e<r.children.length;e++){let t=s.get(r.children[e]);t&&(r.children[e]=t)}let i=a.get(r.item.id);s.set(r,i&&Zl(i,r)?i:r)}let c=i.map(e=>s.get(e)??e);return c.length===t.length&&c.every((e,n)=>e===t[n])?t:c}function Zl(e,t){if(e.item!==t.item||e.children.length!==t.children.length)return!1;for(let n=0;n<t.children.length;n++)if(e.children[n]!==t.children[n])return!1;return!0}function Ql(e,t){let n=pe(t);if(!n.taskId)return!1;for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];if(r.kind!==`user`||!r.taskNotification)continue;let i=pe(r.text);if(i.taskId===n.taskId&&(i.toolUseId??null)===(n.toolUseId??null))return!0}return!1}var $l=!1;function eu(e,t){if($l)return t(e);$l=!0;try{return t({...e,items:e.items.slice(),index:new Map(e.index),seen:new Set(e.seen),subpathParents:{...e.subpathParents}})}finally{$l=!1}}var tu=new Set([`Task`,`Agent`,`Workflow`]);function U(e,t){let n=e.hasSubagentItems||t.kind===`tool`&&tu.has(t.name);if($l)return e.items.push(t),e.index.set(t.id,e.items.length-1),e.hasSubagentItems=n,e;let r=[...e.items,t];return{...e,items:r,index:new Map(e.index).set(t.id,r.length-1),...n===e.hasSubagentItems?{}:{hasSubagentItems:n}}}function nu(e,t,n){if($l)return e.items[t]=n,e;let r=e.items.slice();return r[t]=n,{...e,items:r}}function ru(e,t){if(t.size===0)return e;let n=e.items.filter(e=>!t.has(e.id)),r=new Map;n.forEach((e,t)=>{r.set(e.id,t)});let i={};for(let[n,r]of Object.entries(e.streams)){let e={};for(let[n,i]of Object.entries(r.blocks))t.has(i)||(e[Number(n)]=i);i[n]={...r,blocks:e,unclaimed:r.unclaimed.filter(e=>!t.has(e))}}return{...e,items:n,index:r,streams:i}}function iu(e,t,n){let r=e.index.get(t);if(r===void 0)return e;let i=e.items[r];if(!i||i.kind!==`tool`)return e;let a=n(i);return a===i?e:nu(e,r,a)}function au(e,t){return e.seen.has(t)?e:$l?(e.seen.add(t),e):{...e,seen:new Set(e.seen).add(t)}}function ou(e){return{...e,nextId:e.nextId+1}}function su(e,t,n){let r=cu(n);return r?`${t}:${r}`:`${t}:${e.nextId}`}function cu(e){return typeof e.uuid==`string`&&e.uuid?e.uuid:null}function lu(e){return typeof e.parent_tool_use_id==`string`&&e.parent_tool_use_id?e.parent_tool_use_id:null}function uu(e){return typeof e.timestamp==`string`?e.timestamp:null}function du(e){return typeof e==`string`?e:``}function fu(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function pu(e){return typeof e==`string`?e?[{type:`text`,text:e}]:[]:Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e&&typeof e.type==`string`):[]}function mu(e){return e.map(e=>e.type===`text`?e.text??``:``).filter(Boolean).join(`
|
|
75
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function $i(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:na(t,`input`,e.processors),output:na(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function ea(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return ea(r.element,n);if(r.type===`set`)return ea(r.valueType,n);if(r.type===`lazy`)return ea(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return ea(r.innerType,n);if(r.type===`intersection`)return ea(r.left,n)||ea(r.right,n);if(r.type===`record`||r.type===`map`)return ea(r.keyType,n)||ea(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:ea(r.in,n)||ea(r.out,n);if(r.type===`object`){for(let e in r.shape)if(ea(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(ea(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(ea(e,n))return!0;return!!(r.rest&&ea(r.rest,n))}return!1}var ta=(e,t={})=>n=>{let r=Xi({...n,processors:t});return Zi(e,r),Qi(r,e),$i(r,e)},na=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Xi({...i??{},target:a,io:t,processors:n});return Zi(e,o),Qi(o,e),$i(o,e)},ra={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},ia=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=ra[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},aa=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},oa=(e,t,n,r)=>{n.type=`boolean`},sa=(e,t,n,r)=>{n.not={}},ca=(e,t,n,r)=>{let i=e._zod.def,a=Ne(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},la=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},ua=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},da=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},fa=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Zi(a.element,t,{...r,path:[...r.path,`items`]})},pa=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Zi(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Zi(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ma=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Zi(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},ha=(e,t,n,r)=>{let i=e._zod.def,a=Zi(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Zi(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},ga=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=Zi(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=Zi(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=Zi(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},_a=(e,t,n,r)=>{let i=e._zod.def,a=Zi(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},va=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ya=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},ba=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},xa=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},Sa=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;Zi(o,t,r);let s=t.seen.get(e);s.ref=o},Ca=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},wa=(e,t,n,r)=>{let i=e._zod.def;Zi(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Ta=L(`ZodISODateTime`,(e,t)=>{Gn.init(e,t),Za.init(e,t)});function Ea(e){return _i(Ta,e)}var Da=L(`ZodISODate`,(e,t)=>{Kn.init(e,t),Za.init(e,t)});function Oa(e){return vi(Da,e)}var ka=L(`ZodISOTime`,(e,t)=>{qn.init(e,t),Za.init(e,t)});function Aa(e){return yi(ka,e)}var ja=L(`ZodISODuration`,(e,t)=>{Jn.init(e,t),Za.init(e,t)});function Ma(e){return bi(ja,e)}var Na=L(`ZodError`,(e,t)=>{gt.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>yt(e,t)},flatten:{value:t=>vt(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Pe,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Pe,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Pa=bt(Na),Fa=xt(Na),Ia=St(Na),La=wt(Na),Ra=Et(Na),za=Dt(Na),Ba=Ot(Na),Va=kt(Na),Ha=At(Na),Ua=jt(Na),Wa=Mt(Na),Ga=Nt(Na),Ka=new WeakMap;function qa(e,t,n){let r=Object.getPrototypeOf(e),i=Ka.get(r);if(i||(i=new Set,Ka.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Ja=L(`ZodType`,(e,t)=>(jn.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:na(e,`input`),output:na(e,`output`)}}),e.toJSONSchema=ta(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Pa(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Ia(e,t,n),e.parseAsync=async(t,n)=>Fa(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>La(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Ra(e,t,n),e.decode=(t,n)=>za(e,t,n),e.encodeAsync=async(t,n)=>Ba(e,t,n),e.decodeAsync=async(t,n)=>Va(e,t,n),e.safeEncode=(t,n)=>Ha(e,t,n),e.safeDecode=(t,n)=>Ua(e,t,n),e.safeEncodeAsync=async(t,n)=>Wa(e,t,n),e.safeDecodeAsync=async(t,n)=>Ga(e,t,n),qa(e,`ZodType`,{check(...e){let t=this.def;return this.clone(He(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Qe(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(us(e,t))},superRefine(e,t){return this.check(ds(e,t))},overwrite(e){return this.check(Bi(e))},optional(){return Ko(this)},exactOptional(){return Jo(this)},nullable(){return Xo(this)},nullish(){return Ko(Xo(this))},nonoptional(e){return ns(this,e)},array(){return Oo(this)},or(e){return Mo([this,e])},and(e){return Io(this,e)},transform(e){return os(this,Wo(e))},default(e){return Qo(this,e)},prefault(e){return es(this,e)},catch(e){return is(this,e)},pipe(e){return os(this,e)},readonly(){return cs(this)},describe(e){let t=this.clone();return qr.add(t,{description:e}),t},meta(...e){if(e.length===0)return qr.get(this);let t=this.clone();return qr.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return qr.get(e)?.description},configurable:!0}),e)),Ya=L(`_ZodString`,(e,t)=>{Mn.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ia(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,qa(e,`_ZodString`,{regex(...e){return this.check(Pi(...e))},includes(...e){return this.check(Li(...e))},startsWith(...e){return this.check(Ri(...e))},endsWith(...e){return this.check(zi(...e))},min(...e){return this.check(Mi(...e))},max(...e){return this.check(ji(...e))},length(...e){return this.check(Ni(...e))},nonempty(...e){return this.check(Mi(1,...e))},lowercase(e){return this.check(Fi(e))},uppercase(e){return this.check(Ii(e))},trim(){return this.check(Hi())},normalize(...e){return this.check(Vi(...e))},toLowerCase(){return this.check(Ui())},toUpperCase(){return this.check(Wi())},slugify(){return this.check(Gi())}})}),Xa=L(`ZodString`,(e,t)=>{Mn.init(e,t),Ya.init(e,t),e.email=t=>e.check(Yr(Qa,t)),e.url=t=>e.check(ti(to,t)),e.jwt=t=>e.check(gi(go,t)),e.emoji=t=>e.check(ni(no,t)),e.guid=t=>e.check(Xr($a,t)),e.uuid=t=>e.check(Zr(eo,t)),e.uuidv4=t=>e.check(Qr(eo,t)),e.uuidv6=t=>e.check($r(eo,t)),e.uuidv7=t=>e.check(ei(eo,t)),e.nanoid=t=>e.check(ri(ro,t)),e.guid=t=>e.check(Xr($a,t)),e.cuid=t=>e.check(ii(io,t)),e.cuid2=t=>e.check(ai(ao,t)),e.ulid=t=>e.check(oi(oo,t)),e.base64=t=>e.check(pi(B,t)),e.base64url=t=>e.check(mi(mo,t)),e.xid=t=>e.check(si(so,t)),e.ksuid=t=>e.check(ci(co,t)),e.ipv4=t=>e.check(li(lo,t)),e.ipv6=t=>e.check(ui(uo,t)),e.cidrv4=t=>e.check(di(fo,t)),e.cidrv6=t=>e.check(fi(po,t)),e.e164=t=>e.check(hi(ho,t)),e.datetime=t=>e.check(Ea(t)),e.date=t=>e.check(Oa(t)),e.time=t=>e.check(Aa(t)),e.duration=t=>e.check(Ma(t))});function z(e){return Jr(Xa,e)}var Za=L(`ZodStringFormat`,(e,t)=>{Nn.init(e,t),Ya.init(e,t)}),Qa=L(`ZodEmail`,(e,t)=>{In.init(e,t),Za.init(e,t)}),$a=L(`ZodGUID`,(e,t)=>{Pn.init(e,t),Za.init(e,t)}),eo=L(`ZodUUID`,(e,t)=>{Fn.init(e,t),Za.init(e,t)}),to=L(`ZodURL`,(e,t)=>{Ln.init(e,t),Za.init(e,t)}),no=L(`ZodEmoji`,(e,t)=>{Rn.init(e,t),Za.init(e,t)}),ro=L(`ZodNanoID`,(e,t)=>{zn.init(e,t),Za.init(e,t)}),io=L(`ZodCUID`,(e,t)=>{Bn.init(e,t),Za.init(e,t)}),ao=L(`ZodCUID2`,(e,t)=>{Vn.init(e,t),Za.init(e,t)}),oo=L(`ZodULID`,(e,t)=>{Hn.init(e,t),Za.init(e,t)}),so=L(`ZodXID`,(e,t)=>{Un.init(e,t),Za.init(e,t)}),co=L(`ZodKSUID`,(e,t)=>{Wn.init(e,t),Za.init(e,t)}),lo=L(`ZodIPv4`,(e,t)=>{Yn.init(e,t),Za.init(e,t)}),uo=L(`ZodIPv6`,(e,t)=>{Xn.init(e,t),Za.init(e,t)}),fo=L(`ZodCIDRv4`,(e,t)=>{Zn.init(e,t),Za.init(e,t)}),po=L(`ZodCIDRv6`,(e,t)=>{Qn.init(e,t),Za.init(e,t)}),B=L(`ZodBase64`,(e,t)=>{er.init(e,t),Za.init(e,t)}),mo=L(`ZodBase64URL`,(e,t)=>{nr.init(e,t),Za.init(e,t)}),ho=L(`ZodE164`,(e,t)=>{rr.init(e,t),Za.init(e,t)}),go=L(`ZodJWT`,(e,t)=>{ar.init(e,t),Za.init(e,t)}),_o=L(`ZodNumber`,(e,t)=>{or.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>aa(e,t,n,r),qa(e,`ZodNumber`,{gt(e,t){return this.check(Oi(e,t))},gte(e,t){return this.check(ki(e,t))},min(e,t){return this.check(ki(e,t))},lt(e,t){return this.check(Ei(e,t))},lte(e,t){return this.check(Di(e,t))},max(e,t){return this.check(Di(e,t))},int(e){return this.check(bo(e))},safe(e){return this.check(bo(e))},positive(e){return this.check(Oi(0,e))},nonnegative(e){return this.check(ki(0,e))},negative(e){return this.check(Ei(0,e))},nonpositive(e){return this.check(Di(0,e))},multipleOf(e,t){return this.check(Ai(e,t))},step(e,t){return this.check(Ai(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function vo(e){return xi(_o,e)}var yo=L(`ZodNumberFormat`,(e,t)=>{sr.init(e,t),_o.init(e,t)});function bo(e){return Si(yo,e)}var xo=L(`ZodBoolean`,(e,t)=>{cr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oa(e,t,n,r)});function So(e){return Ci(xo,e)}var Co=L(`ZodUnknown`,(e,t)=>{lr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function wo(){return wi(Co)}var To=L(`ZodNever`,(e,t)=>{ur.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sa(e,t,n,r)});function Eo(e){return Ti(To,e)}var Do=L(`ZodArray`,(e,t)=>{fr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fa(e,t,n,r),e.element=t.element,qa(e,`ZodArray`,{min(e,t){return this.check(Mi(e,t))},nonempty(e){return this.check(Mi(1,e))},max(e,t){return this.check(ji(e,t))},length(e,t){return this.check(Ni(e,t))},unwrap(){return this.element}})});function Oo(e,t){return Ki(Do,e,t)}var ko=L(`ZodObject`,(e,t)=>{_r.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pa(e,t,n,r),Be(e,`shape`,()=>t.shape),qa(e,`ZodObject`,{keyof(){return Bo(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:wo()})},loose(){return this.clone({...this._zod.def,catchall:wo()})},strict(){return this.clone({...this._zod.def,catchall:Eo()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return rt(this,e)},safeExtend(e){return it(this,e)},merge(e){return at(this,e)},pick(e){return tt(this,e)},omit(e){return nt(this,e)},partial(...e){return ot(Go,this,e[0])},required(...e){return st(ts,this,e[0])}})});function Ao(e,t){return new ko({type:`object`,shape:e??{},...R(t)})}var jo=L(`ZodUnion`,(e,t)=>{yr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ma(e,t,n,r),e.options=t.options});function Mo(e,t){return new jo({type:`union`,options:e,...R(t)})}var No=L(`ZodDiscriminatedUnion`,(e,t)=>{jo.init(e,t),br.init(e,t)});function Po(e,t,n){return new No({type:`union`,options:t,discriminator:e,...R(n)})}var Fo=L(`ZodIntersection`,(e,t)=>{xr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ha(e,t,n,r)});function Io(e,t){return new Fo({type:`intersection`,left:e,right:t})}var Lo=L(`ZodRecord`,(e,t)=>{wr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ga(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Ro(e,t,n){return!t||!t._zod?new Lo({type:`record`,keyType:z(),valueType:e,...R(t)}):new Lo({type:`record`,keyType:e,valueType:t,...R(n)})}var zo=L(`ZodEnum`,(e,t)=>{Tr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ca(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new zo({...t,checks:[],...R(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new zo({...t,checks:[],...R(r),entries:i})}});function Bo(e,t){return new zo({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...R(t)})}var Vo=L(`ZodLiteral`,(e,t)=>{Er.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>la(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Ho(e,t){return new Vo({type:`literal`,values:Array.isArray(e)?e:[e],...R(t)})}var Uo=L(`ZodTransform`,(e,t)=>{Dr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>da(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ae(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(mt(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(mt(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function Wo(e){return new Uo({type:`transform`,transform:e})}var Go=L(`ZodOptional`,(e,t)=>{kr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ko(e){return new Go({type:`optional`,innerType:e})}var qo=L(`ZodExactOptional`,(e,t)=>{Ar.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jo(e){return new qo({type:`optional`,innerType:e})}var Yo=L(`ZodNullable`,(e,t)=>{jr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_a(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Xo(e){return new Yo({type:`nullable`,innerType:e})}var Zo=L(`ZodDefault`,(e,t)=>{Mr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ya(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Qo(e,t){return new Zo({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ye(t)}})}var $o=L(`ZodPrefault`,(e,t)=>{Pr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ba(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function es(e,t){return new $o({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ye(t)}})}var ts=L(`ZodNonOptional`,(e,t)=>{Fr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>va(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ns(e,t){return new ts({type:`nonoptional`,innerType:e,...R(t)})}var rs=L(`ZodCatch`,(e,t)=>{Lr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function is(e,t){return new rs({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var as=L(`ZodPipe`,(e,t)=>{Rr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Sa(e,t,n,r),e.in=t.in,e.out=t.out});function os(e,t){return new as({type:`pipe`,in:e,out:t})}var ss=L(`ZodReadonly`,(e,t)=>{Br.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ca(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cs(e){return new ss({type:`readonly`,innerType:e})}var ls=L(`ZodCustom`,(e,t)=>{Hr.init(e,t),Ja.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ua(e,t,n,r)});function us(e,t={}){return qi(ls,e,t)}function ds(e,t){return Ji(e,t)}var fs={artificial_analysis_intelligence_index:{label:`Intelligence index`,scale:`index`},artificial_analysis_coding_index:{label:`Coding index`,scale:`index`},artificial_analysis_math_index:{label:`Math index`,scale:`index`},gpqa:{label:`GPQA Diamond`,scale:`fraction`},hle:{label:`Humanity's Last Exam`,scale:`fraction`},lcr:{label:`Long-context reasoning`,scale:`fraction`},livecodebench:{label:`LiveCodeBench`,scale:`fraction`},scicode:{label:`SciCode`,scale:`fraction`},math_500:{label:`MATH-500`,scale:`fraction`},aime:{label:`AIME`,scale:`fraction`},aime_25:{label:`AIME 2025`,scale:`fraction`},ifbench:{label:`IFBench`,scale:`fraction`},mmlu_pro:{label:`MMLU Pro`,scale:`fraction`},tau2:{label:`τ²-bench (agentic)`,scale:`fraction`},tau_banking:{label:`τ-bench banking`,scale:`fraction`},terminalbench_hard:{label:`Terminal-Bench Hard`,scale:`fraction`},terminalbench_v2_1:{label:`Terminal-Bench 2.1`,scale:`fraction`}};function ps(e){return(e.credentialVariants??[]).filter(e=>!e.operatorOnly)}function ms(e){let t=new Set(e.map(e=>e.definition.id));return e.filter(e=>!e.definition.clientGroup||e.definition.clientGroup===e.definition.id||!t.has(e.definition.clientGroup))}function hs(e,t){return e.filter(e=>e.definition.id===t||e.definition.clientGroup===t&&e.definition.id!==t)}function gs(e){return ms(e).filter(e=>e.definition.enabled&&e.definition.credentialClass!==`none`&&T(e.definition.id)&&!D(e.definition.id))}function _s(e){if(!e)return!1;try{let t=new URL(e).hostname.toLowerCase();return t===`127.0.0.1`||t===`localhost`||t===`::1`||t===`[::1]`}catch{return!1}}function vs(e,t={}){let n=e.displayName,r=t.credentialClass??e.credentialClass,i=t.baseUrl??e.baseUrl;return e.id===`oonacode`?{kind:`pool`,badge:`via OonaCode`,detail:`Runs on OonaCode's own provider accounts, through the OonaCode gateway. Priced models are billed to your account in credits; free models cost nothing on any plan.`,viaGateway:!0}:e.route===`direct`?{kind:`subscription-direct`,badge:`direct to provider`,detail:`Your ${n} subscription runs straight from this PC to the provider — it never passes through the OonaCode gateway.`,viaGateway:!1}:r===`api_key`&&e.kind!==`anthropic-passthrough`?{kind:`own-key-translated`,badge:`direct to provider`,detail:`Your ${n} key stays on this PC: OonaCode translates the request here and calls ${n} from this machine. The gateway sees neither the key nor the traffic.`,viaGateway:!1}:_s(i)?{kind:`local-server`,badge:`on this machine`,detail:`Runs against ${n} on this machine (${i}) — the request never leaves the PC.`,viaGateway:!1}:r===`api_key`&&e.kind===`anthropic-passthrough`&&e.directCapable===!0?{kind:`own-key-direct`,badge:`direct to provider`,detail:`Your ${n} key runs straight from this PC to ${n} — the OonaCode gateway is not in the path.`,viaGateway:!1}:{kind:`gateway`,badge:`via OonaCode`,detail:`Routed to ${n} through the OonaCode gateway.`,viaGateway:!0}}var ys=Po(`type`,[Ao({type:Ho(`oauth-device`),deviceAuthorizationUrl:z().url(),tokenUrl:z().url(),clientId:z().min(1),scopes:Oo(z().min(1)).min(1),signInLabel:z().min(1).optional(),referrer:z().min(1).optional()}),Ao({type:Ho(`openai-device`),deviceAuthorizationUrl:z().url(),pollUrl:z().url(),tokenUrl:z().url(),verificationUri:z().url(),redirectUri:z().url(),clientId:z().min(1),signInLabel:z().min(1).optional()})]),bs=Ao({id:z().min(1),displayName:z().min(1),upstreamId:z().min(1).optional(),servedBy:Oo(z().min(1)).optional(),subscriptionServedBy:Oo(z().min(1)).optional(),contextWindow:vo().int().positive().optional(),maxOutputTokens:vo().int().positive().optional(),supportsTools:So().optional(),supportsThinking:So().optional(),effortLevels:Oo(Bo(me)).optional(),helperModel:z().min(1).optional(),supportsVision:So().optional(),inputPricePerM:vo().nonnegative().optional(),outputPricePerM:vo().nonnegative().optional(),notes:z().optional()}),xs=Ao({id:z().regex(/^[a-z0-9][a-z0-9-]{1,40}$/,`provider id must be lowercase kebab-case`),displayName:z().min(1),kind:Bo([`anthropic-passthrough`,`openai-compatible`,`gemini`]),route:Bo([`gateway`,`direct`]),credentialClass:Bo([`api_key`,`subscription`,`none`]),baseUrl:z().url(),messagesPath:z().startsWith(`/`).optional(),modelsPath:z().startsWith(`/`).optional(),auth:Ao({header:Bo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]),extraHeaders:Ro(z(),z()).optional()}),models:Oo(bs),defaultModel:z().min(1),modelAliases:Ro(z(),z()).optional(),helperModel:z().min(1).optional(),capabilities:Ao({streaming:So(),tools:So(),thinking:So(),vision:So(),countTokens:So(),promptCaching:So(),promptCacheTtlSec:vo().int().positive().optional()}),translate:Ao({maxTokensParam:Bo([`max_tokens`,`max_completion_tokens`]).optional(),reasoningEffortFromBudget:So().optional(),reasoningContentField:z().nullable().optional(),supportsParallelToolCalls:So().optional(),systemRole:Bo([`system`,`developer`]).optional(),streamIncludeUsage:So().optional(),wire:Bo([`chat`,`responses`]).optional()}).optional(),passthrough:Ao({stripCacheControl:So().optional(),cacheChain:So().optional(),toolSchemaRequiredArray:So().optional(),toolDescriptionRequired:So().optional(),allowedBetas:Oo(z()).optional(),anthropicVersion:z().optional()}).optional(),userBaseUrl:So().optional(),engineEnv:Ro(z(),z()).optional(),directCapable:So().optional(),subscriptionLogin:ys.optional(),phase:Mo([Ho(1),Ho(2)]),enabled:So(),docsUrl:z().url().optional(),notes:z().optional(),references:Oo(Ao({label:z().min(1),url:z().url(),kind:Bo([`docs`,`pricing`,`models`,`console`,`status`,`keys`,`signup`,`other`]).optional()})).optional(),keyFormat:z().optional(),credentialVariants:Oo(Ao({id:z().min(1),label:z().min(1),header:Bo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]).optional(),extraHeaders:Ro(z(),z()).optional(),operatorOnly:So().optional(),requiresClaudeCodeIdentity:So().optional(),subscriptionLogin:ys.optional(),claudeCodeShape:Ao({betas:z().min(1),userAgent:z().min(1),billingHeader:z().min(1),headers:Ro(z(),z()).optional()}).optional(),baseUrl:z().url().optional(),keyFormat:z().optional(),notes:z().optional()})).optional(),adminGroup:z().optional(),clientGroup:z().optional(),recordLabel:z().optional(),effortLevels:Oo(Bo(me)).optional()});Ao({version:vo().int().positive(),updatedAt:z(),providers:Oo(xs)});function Ss(e){return/^claude-/i.test(e)}function Cs(e){return e.replace(/\[1m\]$/i,``)}function ws(e,t){return{images:e.models.find(e=>e.id===t)?.supportsVision??e.capabilities.vision,documents:Ss(t)}}function Ts(e,t,n){let r=ws(e,t),i=new Set;for(let e of n){let t=e?.type;(t===`image`||t===`document`)&&i.add(t)}let a=e.models.find(e=>e.id===t)?.displayName??t;return i.has(`image`)&&!r.images?`${a} cannot read images. Remove the image, or pick a model that can — the model details say which.`:i.has(`document`)&&!r.documents?`${a} cannot read PDF documents — only Anthropic's Claude models take a PDF. Attach it as text, or pick a Claude model.`:null}var Es={messages:`/v1/messages`,countTokens:`/v1/messages/count_tokens`,models:`/v1/models`,providerMessages:e=>`/p/${e}/v1/messages`,providerCountTokens:e=>`/p/${e}/v1/messages/count_tokens`,providerModels:e=>`/p/${e}/v1/models`,health:`/api/health`,streamCheck:`/api/stream-check`,register:`/api/auth/register`,login:`/api/auth/login`,refresh:`/api/auth/refresh`,logout:`/api/auth/logout`,me:`/api/auth/me`,prelogin:`/api/auth/prelogin`,tokens:`/api/me/tokens`,token:e=>`/api/me/tokens/${e}`,tokenPurge:e=>`/api/me/tokens/${e}/purge`,tokenUsage:e=>`/api/me/tokens/${e}/usage`,providers:`/api/me/providers`,provider:e=>`/api/me/providers/${e}`,providerTest:e=>`/api/me/providers/${e}/test`,routing:`/api/me/routing`,usage:`/api/me/usage`,usageSession:e=>`/api/me/usage/sessions/${e}`,devices:`/api/me/devices`,pushToken:`/api/me/push-token`,hostNotify:`/api/me/hosts/notify`,device:e=>`/api/me/devices/${e}`,hosts:`/api/me/hosts`,hostHeartbeat:`/api/me/hosts/heartbeat`,hostVaultUnlock:e=>`/api/me/hosts/${encodeURIComponent(e)}/vault-unlock`,host:e=>`/api/me/hosts/${encodeURIComponent(e)}`,vault:`/api/me/vault`,vaultEvents:`/api/me/vault/events`,historySessions:`/api/me/history/sessions`,historySession:e=>`/api/me/history/sessions/${e}`,historyEntries:e=>`/api/me/history/sessions/${e}/entries`,registry:`/api/registry`,releasesLatest:`/api/releases/latest`,releasesHistory:`/api/releases`,team:`/api/me/team`,teamInvites:`/api/me/team/invites`,teamInvite:e=>`/api/me/team/invites/${e}`,teamInviteLookup:`/api/team/invites/lookup`,teamInviteDecline:`/api/team/invites/decline`,teamJoin:`/api/me/team/join`,teamInvitations:`/api/me/team/invitations`,teamInvitationAccept:e=>`/api/me/team/invitations/${e}/accept`,teamInvitationDecline:e=>`/api/me/team/invitations/${e}/decline`,teamMember:e=>`/api/me/team/members/${e}`,teamLeave:`/api/me/team/leave`,teamTransfer:`/api/me/team/transfer`,teamAudit:`/api/me/team/audit`,teamCheckout:`/api/me/team/checkout`,teamTopup:`/api/me/team/topup`,teamSeats:`/api/me/team/seats`,googleConfig:`/api/auth/google/config`,googleStart:`/api/auth/google/start`,googleCallback:`/api/auth/google/callback`,githubConfig:`/api/auth/github/config`,githubStart:`/api/auth/github/start`,githubCallback:`/api/auth/github/callback`,googleUnlink:`/api/me/google`,telegramConfig:`/api/auth/telegram/config`,telegramAuth:`/api/auth/telegram`,telegram:`/api/me/telegram`,telegramWebhook:`/api/webhooks/telegram`,passphraseSetup:`/api/auth/passphrase/setup`,passphraseRekey:`/api/me/passphrase/rekey`,recovery:`/api/me/recovery`,recoveryChallenge:`/api/auth/recovery/challenge`,recoveryConsume:`/api/auth/recovery/consume`,deviceApprovals:`/api/me/device-approvals`,deviceApproval:e=>`/api/me/device-approvals/${e}`,deviceApprovalApprove:e=>`/api/me/device-approvals/${e}/approve`,deviceApprovalDeny:e=>`/api/me/device-approvals/${e}/deny`,passwordResetRequest:`/api/auth/password-reset/request`,passwordResetConfirm:`/api/auth/password-reset/confirm`,vaultRekeyComplete:`/api/me/vault/rekey-complete`,vaultRekeyPending:`/api/me/vault/rekey-pending`,emailVerifySend:`/api/auth/email/verify/send`,emailVerifyConfirm:`/api/auth/email/verify/confirm`,emailVerifyWatch:`/api/auth/email/verify/watch`,twoFactor:`/api/me/2fa`,twoFactorEnroll:`/api/me/2fa/enroll`,twoFactorConfirm:`/api/me/2fa/confirm`,twoFactorDisable:`/api/me/2fa/disable`,twoFactorDisableRequest:`/api/me/2fa/disable/request`,twoFactorRecoveryCodes:`/api/me/2fa/recovery-codes`,twoFactorVerify:`/api/auth/2fa/verify`,deviceLinkStart:`/api/auth/device/start`,deviceLinkPoll:`/api/auth/device/poll`,deviceLinks:`/api/me/device-links`,deviceLink:e=>`/api/me/device-links/${e}`,deviceLinkApprove:e=>`/api/me/device-links/${e}/approve`,deviceLinkDeny:e=>`/api/me/device-links/${e}/deny`,hostLogs:`/api/me/hosts/logs`,errorReport:`/api/me/errors`,bugReports:`/api/me/bug-reports`,plans:`/api/plans`,myPlan:`/api/me/plan`,checkout:`/api/me/plan/checkout`,creditsTopup:`/api/me/credits/topup`,billing:`/api/me/billing`},Ds=2048,Os=16384,ks=8e3,As=5242880,js=12582912;new Set(`BCDFGHJKLMNPQRSTVWXZ`.split(``));var Ms=`discard-my-vault-and-history`,Ns=`Anyone who can use this device can use your saved provider keys without your passphrase. Turn this off on shared or public computers. You can revoke it any time from Devices.`,Ps=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],Fs=/^([01]\d|2[0-3]):[0-5]\d$/;Ao({tz:z().min(1),windows:Oo(Ao({from:z().regex(Fs,`HH:MM`),to:z().regex(Fs,`HH:MM`),days:Oo(Bo(Ps)).optional(),kind:Bo([`peak`,`offpeak`])})),offpeakDiscount:vo().nonnegative().max(1).optional()});var Is=[`priceInputCacheMissPeak`,`priceInputCacheMissOffpeak`,`priceInputCacheHitPeak`,`priceInputCacheHitOffpeak`,`priceCacheWritePeak`,`priceCacheWriteOffpeak`,`priceOutputPeak`,`priceOutputOffpeak`],Ls=Ao({inputCacheMiss:vo().nonnegative(),inputCacheHit:vo().nonnegative().optional(),cacheWrite:vo().nonnegative().optional(),output:vo().nonnegative()});Ao({by:Ho(`prompt_tokens`),tiers:Oo(Ao({upToPromptTokens:vo().int().positive().optional(),price:Ls,cost:Ls.optional()})).min(1),note:z().optional()}).superRefine((e,t)=>{let n=0;e.tiers.forEach((r,i)=>{let a=r.upToPromptTokens;if(a===void 0){i!==e.tiers.length-1&&t.addIssue({code:`custom`,message:`only the LAST tier may omit upToPromptTokens`,path:[`tiers`,i]});return}a<=n&&t.addIssue({code:`custom`,message:`tiers must ascend: ${a} does not exceed ${n}`,path:[`tiers`,i,`upToPromptTokens`]}),n=a})}),[...Is];var Rs={oonacode:{hex:`#000000`,owner:`OonaCode`,d:`M0.72 12a11.28 11.28 0 1 0 22.56 0a11.28 11.28 0 1 0 -22.56 0ZM4.8 12a7.2 7.2 0 1 0 14.4 0a7.2 7.2 0 1 0 -14.4 0ZM7.44 12a4.56 4.56 0 1 0 9.12 0a4.56 4.56 0 1 0 -9.12 0Z`,fillRule:`evenodd`},anthropic:{hex:`#D97757`,owner:`Anthropic`,d:`m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z`},"anthropic-subscription":{hex:`#D97757`,owner:`Anthropic`,d:`m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z`},openai:{hex:`#000000`,owner:`OpenAI`,d:`M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z`},xai:{hex:`#000000`,owner:`xAI`,d:`M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z`},deepseek:{hex:`#5786FE`,owner:`DeepSeek`,d:`M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.004-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.004-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45`},kimi:{hex:`#000000`,owner:`Moonshot`,d:`M21.765.351C22.998.351 24 1.353 24 2.586S22.998 4.82 21.765 4.82h-1.974c-.15 0-.26-.12-.26-.26V2.586A2.237 2.237 0 0 1 21.765.35M9.41 13.388l8.447-8.377c.16-.16.07-.471-.14-.471h-4.55s-.1.02-.14.06l-9.099 9.029c-.14.14-.35.02-.35-.21V4.81c0-.15-.1-.27-.221-.27H.22c-.12 0-.22.12-.22.27v18.57c0 .15.1.27.22.27h3.137c.12 0 .22-.12.22-.27v-3.79c0-.08.03-.16.08-.21l2.826-2.796c.07-.07.16-.08.241-.03l7.546 5.551a8.9 8.9 0 0 0 4.018 1.493c.12.01.23-.11.23-.27V19.76c0-.14-.08-.25-.19-.26a5.8 5.8 0 0 1-2.355-.942l-6.533-4.73c-.14-.09-.15-.32-.03-.441`},qwen:{hex:`#6950EF`,owner:`Alibaba`,d:`M23.919 14.545 20.817 9.17l1.47-2.544a.56.56 0 0 0 0-.566l-1.633-2.83a.57.57 0 0 0-.49-.283h-6.207L12.487.402a.57.57 0 0 0-.49-.284H8.732a.56.56 0 0 0-.49.284L5.139 5.775h-2.94a.56.56 0 0 0-.49.284L.077 8.887a.56.56 0 0 0 0 .567L3.18 14.83l-1.47 2.545a.56.56 0 0 0 0 .566l1.634 2.83a.57.57 0 0 0 .49.283h6.205l1.47 2.545a.57.57 0 0 0 .49.284h3.266a.57.57 0 0 0 .49-.284l3.104-5.375h2.94a.57.57 0 0 0 .49-.283l1.634-2.828a.55.55 0 0 0-.004-.568M8.733.686l1.634 2.828-1.634 2.828H21.8L20.164 9.17H7.425L5.63 6.06Zm1.306 19.801-6.205-.002 1.634-2.83h3.265L2.201 6.344h3.267q3.182 5.517 6.367 11.032zm10.124-5.66L18.53 12l-6.532 11.315-1.634-2.83c2.129-3.673 4.25-7.351 6.373-11.028h3.592l3.102 5.374z`},mimo:{hex:`#FF6900`,owner:`Xiaomi`,d:`M12 0C8.016 0 4.756.255 2.493 2.516.23 4.776 0 8.033 0 12.012c0 3.98.23 7.235 2.494 9.497C4.757 23.77 8.017 24 12 24c3.983 0 7.243-.23 9.506-2.491C23.77 19.247 24 15.99 24 12.012c0-3.984-.233-7.243-2.502-9.504C19.234.252 15.978 0 12 0zM4.906 7.405h5.624c1.47 0 3.007.068 3.764.827.746.746.827 2.233.83 3.676v4.54a.15.15 0 0 1-.152.147h-1.947a.15.15 0 0 1-.152-.148V11.83c-.002-.806-.048-1.634-.464-2.051-.358-.36-1.026-.441-1.72-.458H7.158a.15.15 0 0 0-.151.147v6.98a.15.15 0 0 1-.152.148H4.906a.15.15 0 0 1-.15-.148V7.554a.15.15 0 0 1 .15-.149zm12.131 0h1.949a.15.15 0 0 1 .15.15v8.892a.15.15 0 0 1-.15.148h-1.949a.15.15 0 0 1-.151-.148V7.554a.15.15 0 0 1 .151-.149zM8.92 10.948h2.046c.083 0 .15.066.15.147v5.352a.15.15 0 0 1-.15.148H8.92a.15.15 0 0 1-.152-.148v-5.352a.15.15 0 0 1 .152-.147Z`}};function zs(e){return Rs[e]??null}function Bs(e){let t=e.replace(/\(.*?\)/g,` `).split(/[\s/_-]+/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[1][0]}`.toUpperCase()}var Vs=[`stable`,`dev`];function Hs(e){return typeof e==`string`&&Vs.includes(e)}function Us(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return Hs(t)?t:null}function Ws(e){let t=Us(e)??`stable`;return t===`stable`?Es.releasesLatest:`${Es.releasesLatest}?channel=${encodeURIComponent(t)}`}function Gs(e,t){let n=Us(t)??`stable`;return n===`stable`?e:`${e} (${n})`}var Ks=5e4,qs=[`bg`,`surface`,`surface-2`,`surface-3`,`border`,`fg`,`fg-muted`,`fg-faint`,`accent`,`accent-fg`,`accent-soft`,`project`,`ok`,`ok-soft`,`warn`,`warn-soft`,`danger`,`danger-soft`,`think`,`think-soft`,`code-bg`,`user-bubble`],Js={agentFinished:!1,permissionRequired:!0,errorOccurred:!0},Ys={autoAcceptPermissions:!1,showReasoningSummaries:!0,notifications:Js,showAgentPicker:!0,transcriptWindowSize:500,openTabs:[],draftTabs:[],draftTitles:{},activeTab:null,remoteTabs:{},sessionPanelOpen:!1,explorerOpen:!1,dismissedUpdateVersion:null,lastSeenReleaseNotes:null,claudeImportOffered:!1,claudeImportOffers:0,collapsedProjects:[],themeColors:{light:{},dark:{}}};function Xs(e){return Math.min(Math.max(typeof e==`number`&&Number.isFinite(e)?Math.floor(e):0,0),3)}function Zs(e){return Math.min(Ks,Math.max(100,typeof e==`number`&&Number.isFinite(e)?Math.round(e):500))}function Qs(e,t){return typeof e==`boolean`?e:t}function $s(e){return typeof e==`string`&&e.length>0&&e.length<=64?e:null}function ec(e,t=50){if(!Array.isArray(e))return[];let n=[];for(let r of e)if(!(typeof r!=`string`||r.length===0||r.length>200)&&!n.includes(r)&&(n.push(r),n.length>=t))break;return n}function tc(e,t=50){if(typeof e!=`object`||!e||Array.isArray(e))return{};let n={};for(let[r,i]of Object.entries(e))if(!(r.length===0||r.length>200)&&!(typeof i!=`string`||i.length===0||i.length>200)&&(n[r]=i,Object.keys(n).length>=t))break;return n}function nc(e){if(typeof e!=`string`)return null;let t=e.trim();return/^#[0-9a-fA-F]{6}$/.test(t)?t.toLowerCase():null}function rc(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if(!qs.includes(n))continue;let e=nc(r);e!==null&&(t[n]=e)}return t}function ic(e){let t=typeof e==`object`&&e?e:{};return{light:rc(t.light),dark:rc(t.dark)}}function ac(e){let t=typeof e==`object`&&e?e:{},n=typeof t.notifications==`object`&&t.notifications!==null?t.notifications:{},r=ec(t.openTabs),i=ec(t.draftTabs).filter(e=>!r.includes(e)),a={};for(let[e,n]of Object.entries(tc(t.draftTitles)))i.includes(e)&&(a[e]=n);let o=[...r,...i],s=t.activeTab,c=typeof s==`string`&&o.includes(s)?s:o[o.length-1]??null;return{autoAcceptPermissions:Qs(t.autoAcceptPermissions,Ys.autoAcceptPermissions),showReasoningSummaries:Qs(t.showReasoningSummaries,Ys.showReasoningSummaries),notifications:{agentFinished:Qs(n.agentFinished,Js.agentFinished),permissionRequired:Qs(n.permissionRequired,Js.permissionRequired),errorOccurred:Qs(n.errorOccurred,Js.errorOccurred)},showAgentPicker:Qs(t.showAgentPicker,Ys.showAgentPicker),transcriptWindowSize:Zs(t.transcriptWindowSize),openTabs:r,draftTabs:i,draftTitles:a,activeTab:c,remoteTabs:tc(t.remoteTabs),sessionPanelOpen:Qs(t.sessionPanelOpen,Ys.sessionPanelOpen),explorerOpen:Qs(t.explorerOpen,Ys.explorerOpen),dismissedUpdateVersion:$s(t.dismissedUpdateVersion),lastSeenReleaseNotes:$s(t.lastSeenReleaseNotes),claudeImportOffered:Qs(t.claudeImportOffered,Ys.claudeImportOffered),claudeImportOffers:Xs(t.claudeImportOffers),collapsedProjects:ec(t.collapsedProjects),themeColors:ic(t.themeColors)}}new Set(Object.keys(Ys));var oc=[{version:`0.3.137`,date:`2026-09-24`,added:[],fixed:[`After a PC restart the app could ask for a "host token" and sign you out: two copies of the OonaCode background service started at once and fought over your session. Only one ever runs now, and the app never shows the token page — if its service is replaced it reconnects by itself.`,`The unlock screen stays put until you unlock, and says what went wrong in place — a wrong password, or a connection it is re-establishing — instead of jumping to another page.`,`A message with a picture sent while the agent was working stayed “queued”, and removing it said it was already sent. It now shows as read the moment the agent takes it, and a reopened chat shows it with its picture.`,`In the model’s questions, typing your own answer now clears the options you had picked, and picking an option clears what you typed — the answer sent is exactly the one you chose. The same on the phone, in the terminal and in Telegram.`]},{version:`0.3.136`,date:`2026-09-24`,added:[`Every model now has its own housekeeper — the small, fast model of the same maker that writes a chat’s titles and reads the web pages it fetches. On the OonaCode pool a MiMo v2.6 Pro chat uses MiMo v2.6 Flash, a Qwen chat Qwen3.8 Flash, a GLM chat GLM-5.3 Flash and a GPT-5 chat GPT-5 mini, instead of doing that work on the big model itself. A free model keeps its own, so it stays free.`],fixed:[]},{version:`0.3.135`,date:`2026-09-24`,added:[],fixed:[`Claude models on the OonaCode pool — Opus 5.5, Opus 5, Sonnet 5 and Fable 5.1 — now use their whole 1M context. A long chat no longer stops to summarise itself every ~170k tokens, and its subagents get the same window.`,`Reading a web page is quick again in a Claude chat: pages are read by Claude Haiku, as in Claude Code, instead of a helper that took about a minute a page.`,`Changing a chat’s model now moves its subagents and background helpers to the new model too; before, they stayed on the old one until the app restarted.`,`MiMo v2.5 and v2.5 Pro chats now use their full 1M context too.`]},{version:`0.3.134`,date:`2026-09-23`,added:[],fixed:[`On the Android app, the model’s questions can be answered again. They come one at a time — “Question 2 of 3” — with Back, Next and Skip, and Answer sends them to your PC. The card used to show only the first question, hide the rest below it and wait for all of them, so it could not be sent.`]},{version:`0.3.133`,date:`2026-09-23`,added:[`Bring your Claude desktop app projects across: File → Import chats from other coding agents now lists every project the Claude app has opened on this PC. Each one arrives as an OonaCode project of the same name — its goal, instructions and what Claude noted about it become the project’s instructions — with its project chat and one chat per thread filed under it, ready to carry on.`,`A Claude Code chat you moved into a Claude app project is filed under that project here too.`,`A thread you never opened in the Claude app still comes across, with its task and every reply the project chat saw; open it once in the Claude app and import again for its whole conversation.`],fixed:[`Cursor chats appear in the import list again — they had been left out since September 10.`]},{version:`0.3.132`,date:`2026-09-23`,added:[`Reply to any part of a chat: select some text (or just right-click a block), choose Reply, and it is quoted in your message box — type your answer under it. A quote from a file the agent read names the file.`,`Right-click in a chat: copy what you selected, copy a whole reply or tool output, copy a code block or a link, find the selected words in the chat, or select a block.`,`Search in a chat opens the block its match is in — a folded tool card, a thought, a finished agent’s work — and scrolls to the words themselves.`,`Search matches are now bright orange, the current one strongest, so they stand out on code too.`,`The file viewer shows pictures (PNG, JPEG, GIF, WebP, SVG and more), plays audio and video, and shows Markdown formatted, with a switch to the source.`,`Right-click a file or folder in the explorer to copy its path or delete it.`],fixed:[`Moving a chat to another folder or project while it was working could delete the folder it was working in, start two agents at once, or send your next message to the old folder.`,`The working line no longer says a chat may be stuck while it waits for your approval or answer, or right after you send a message, and it counts time correctly (no more "4m 60s").`,`A date line no longer says "Today" for yesterday’s messages when the app stays open past midnight.`,"Installing with npm (`npm i -g oonacode`) installs this version again; earlier npm releases carried an old program.",`The What’s new window could open again on the next start, showing the same update a second time.`,`An older OonaCode window or VS Code extension no longer resets settings it does not know about, such as your theme colours or which project groups you folded.`,`A new install no longer opens with a list of changes; this window now appears only after an update.`,`The notification switch for permissions now says it also covers the agent’s questions.`]},{version:`0.3.131`,date:`2026-09-23`,added:[`Claude Opus 5.5 is here — the newest Opus, and cheaper to run than Opus 5. Choose it in the model picker, from the OonaCode pool or on your own Claude subscription. It runs on the newer Claude Code engine (2.1.280) that this update brings.`,`Every block in a chat shows its time at the bottom right, in your local time — hover it for the full date — and a date line marks where each day starts.`,`A running chat tells you how long the agent has been quiet, and after five minutes that it may be stuck and what to do.`,`After every update, OonaCode now opens this window to show you what changed.`],fixed:[`A reply that streamed in live had no time on it until the chat was opened again.`,`Chats open in tabs could fail to come back after a restart if a setting changed while they were being restored.`]}];function sc(e,t){let n=e=>{let[t,...n]=e.trim().replace(/^v/,``).split(`-`);return{nums:(t??``).split(`.`).map(e=>Number.parseInt(e,10)||0),pre:n.length>0?n.join(`-`):null}},r=n(e),i=n(t);for(let e=0;e<Math.max(r.nums.length,i.nums.length);e++){let t=(r.nums[e]??0)-(i.nums[e]??0);if(t!==0)return t}return r.pre===i.pre?0:r.pre===null?1:i.pre===null?-1:cc(r.pre,i.pre)}function cc(e,t){let n=e.split(`.`),r=t.split(`.`);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e],i=r[e];if(t===i)continue;if(t===void 0)return-1;if(i===void 0)return 1;let a=/^\d+$/.test(t),o=/^\d+$/.test(i);if(a&&o){let e=Number(t)-Number(i);if(e!==0)return e;continue}return a===o?t<i?-1:1:a?-1:1}return 0}function lc(e,t,n=oc){if(!e||e===`0.0.0`)return[];let r=n.filter(t=>sc(t.version,e)<=0);return[...t===null?r.filter(t=>sc(t.version,e)===0):r.filter(e=>sc(e.version,t)>0)].sort((e,t)=>sc(t.version,e.version))}function uc(e,t,n,r=oc){if(!e||e===`0.0.0`)return{record:null,show:[]};let i=null;for(let e of r)(i===null||sc(e.version,i)>0)&&(i=e.version);let a=i!==null&&sc(e,i)>0?i:e;return{record:t===null||sc(a,t)>0?a:null,show:t===null&&!n?[]:lc(e,t,r)}}function dc(e,t){if(t==null)return[...e];if(t.length===0)return[];let n=new Set(t),r=e.filter(e=>n.has(e.id));return r.length>0?r:[...e]}var fc=`the user skipped the question`,pc=`(the user skipped this question)`;function mc(e){let t=e?.questions;if(!Array.isArray(t))return[];let n=[];for(let e of t){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.question!=`string`)continue;let r=Array.isArray(t.options)?t.options.map(e=>e&&typeof e==`object`?e:null).filter(e=>e!==null&&typeof e.label==`string`).map(e=>({label:e.label,...typeof e.description==`string`?{description:e.description}:{}})):[];n.push({question:t.question,header:typeof t.header==`string`?t.header:``,options:r,multiSelect:t.multiSelect===!0})}return n}function hc(e,t,n={},r=new Set){let i={};return e.forEach((e,a)=>{if(r.has(a)){i[e.question]=pc;return}let o=(n[a]??``).trim();i[e.question]=o||(t[a]??[]).join(`, `)}),i}function gc(e,t,n){return n?`${e}::${n}::${t}`:`${e}::${t}`}function _c(e,t){return e===`oonacode`?-1:t}function vc(e){return e.filter(e=>e.definition.enabled&&e.configured&&T(e.definition.id)&&!D(e.definition.id)&&e.definition.models.length>0).map((e,t)=>({p:e,order:_c(e.definition.id,t)})).sort((e,t)=>e.order-t.order).map(e=>e.p)}function yc(e){let t=ps(e.definition);if(t.length<2)return[{variantId:null,suffix:``}];let n=new Set((e.credentials??[]).map(e=>e.variantId??`payg`)),r=t.filter(e=>n.has(e.id));return r.length<2?[{variantId:null,suffix:``}]:r.map(e=>({variantId:e.id,suffix:` ${bc(e.id,e.label)}`}))}function bc(e,t){return e===`token-plan`?`Subscription`:e===`payg`||e===`api-key`?`API`:t}function xc(e,t){let n=vc(e),r=e=>{let t=e.definition.clientGroup,r=(t?n.find(e=>e.definition.id===t)?.definition:void 0)?.displayName??e.definition.displayName,i=n.filter(n=>(n.definition.clientGroup??n.definition.id)===(t??e.definition.id));return e.definition.recordLabel&&i.length>1?`${r} ${e.definition.recordLabel}`:r};return n.flatMap(n=>{let i=dc(n.definition.models,t?.[n.definition.id]),a=r(n);return yc(n).map(t=>({providerId:n.definition.id,variantId:t.variantId,label:`${a}${t.suffix}`,route:n.definition.route,models:i.map(r=>({providerId:n.definition.id,variantId:t.variantId,modelId:r.id,label:r.displayName||r.id,value:gc(n.definition.id,r.id,t.variantId),free:r.free===!0,details:{...r.aaIntelligence===void 0?{}:{intelligence:r.aaIntelligence},...r.aaCoding===void 0?{}:{coding:r.aaCoding},...r.aaOutputTps===void 0?{}:{outputTps:r.aaOutputTps},...r.aaTtft===void 0?{}:{ttft:r.aaTtft},...r.contextWindow===void 0?{}:{contextWindow:r.contextWindow},...r.maxOutputTokens===void 0?{}:{maxOutputTokens:r.maxOutputTokens},...r.supportsThinking===void 0?{}:{thinking:r.supportsThinking},...r.supportsVision===void 0?{}:{vision:r.supportsVision},...r.supportsTools===void 0?{}:{tools:r.supportsTools},...r.inputPricePerM===void 0?{}:{inputPricePerM:r.inputPricePerM},...r.outputPricePerM===void 0?{}:{outputPricePerM:r.outputPricePerM},...r.notes===void 0?{}:{notes:r.notes},...r.aa===void 0?{}:{aa:r.aa},...r.servedBy===void 0?{}:{providers:r.servedBy.map(t=>{let n=e.find(e=>e.definition.id===t)?.definition,i=n?.displayName??t;if(!r.subscriptionServedBy?.includes(t))return i;let a=n?.credentialVariants?.find(e=>e.id===`token-plan`)?.label;return`${i} — ${a?a.replace(/\s*\(.*\)\s*$/,``):`subscription`}`})}}}))}))}).filter(e=>e.models.length>0)}function Sc(e,t){let n=xc(e),r=n[0]??null,i=t.providerId??r?.providerId??null,a=t.variantId??(i?n.find(e=>e.providerId===i)?.variantId??null:r?.variantId??null);return i?t.model?{providerId:i,variantId:a,modelId:t.model}:{providerId:i,variantId:a,modelId:e.find(e=>e.definition.id===i)?.definition?.defaultModel||n.find(e=>e.providerId===i)?.models[0]?.modelId||null}:{providerId:null,variantId:a,modelId:t.model??null}}function Cc(e){if(!Number.isFinite(e))return`0 credits`;let t=Math.round(e*1e3)/1e3,n=t.toFixed(3).replace(/\.?0+$/,``);return`${n===``?`0`:n} credit${t===1?``:`s`}`}function wc(e){if(typeof e!=`string`)return null;let t=/^API Error\b:?\s*(?:(\d{3})(?!\d)\s*)?([\s\S]*)$/i.exec(e.trim());return t?{status:t[1]===void 0?null:Number(t[1]),message:(t[2]??``).trim()}:null}function Tc(e){return typeof e!=`string`||e===``?!1:/prompt is too long|maximum context length|context[ _-]?length[ _-]?exceeded|input token count exceeds|too many (?:input )?tokens|exceeds? the (?:maximum|model's) context/i.test(e)}var Ec=`chat too long for this model`;function Dc(e,t){if(Tc(t))return Ec;switch(e){case 400:case 422:return`invalid request`;case 401:return`sign-in needed`;case 402:return`insufficient credits`;case 403:return`not allowed`;case 404:return`model not found`;case 408:case 504:return`timed out`;case 413:return`request too large`;case 429:return`rate limited`;default:return e!==null&&e>=500&&e<=599?`provider error`:`API error`}}var Oc={error_max_turns:`max turns reached`,error_max_budget_usd:`budget reached`,error_during_execution:`error during execution`,error_max_structured_output_retries:`structured output failed`,interrupted:`interrupted`,success:`error`};function kc(e){if(!e.isError)return`turn complete`;let t=wc(e.text);if(t)return Dc(t.status,t.message);let n=Oc[e.subtype];if(n!==void 0)return n;let r=e.subtype.replace(/_/g,` `).trim();return r===``?`error`:r}var Ac={authentication_failed:`sign-in needed`,billing_error:`billing problem`,rate_limit:`rate limited`,invalid_request:`invalid request`,server_error:`provider error`};function jc(e,t){if(typeof e!=`string`)return null;let n=e.trim();if(n===``)return null;if(Tc(t))return Ec;let r=Ac[n];if(r!==void 0)return r;if(n===`unknown`){let e=wc(t);return e?Dc(e.status,e.message):Tc(t)?Ec:`error`}return n.replace(/_/g,` `)}function Mc(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function Nc(e,t){let n=typeof e==`object`&&e?e:{},r={input:Mc(n.input_tokens),cached:Mc(n.cache_read_input_tokens)+Mc(n.cache_creation_input_tokens),output:Mc(n.output_tokens)};if(r.input+r.cached+r.output>0||typeof t!=`object`||!t)return r;let i={input:0,cached:0,output:0};for(let e of Object.values(t)){if(typeof e!=`object`||!e)continue;let t=e;i.input+=Mc(t.inputTokens),i.cached+=Mc(t.cacheReadInputTokens)+Mc(t.cacheCreationInputTokens),i.output+=Mc(t.outputTokens)}return i}function Pc(e,t,n=140){let r=t??{};for(let t of[`command`,`file_path`,`pattern`,`query`,`url`,`path`,`prompt`]){let i=r[t];if(typeof i==`string`&&i.trim().length>0){let t=i.replace(/\s+/g,` `).trim();return`${e}: ${t.length>n?`${t.slice(0,n)}…`:t}`}}return e}var Fc={complete:`/api/v1/account/vault/rekey-complete`,revoke:`/api/v1/account/vault/rekey-revoke`,deviceUnlock:`/api/v1/account/device-unlock`};function Ic(e){return e?.deviceUnlock??`off`}function Lc(e){if(!e?.loggedIn)return null;let t=e;if(t.vaultStatus!==`pending_rekey`)return null;let n=t.vaultRekeyPending??null;return{pending:n,canFinishHere:t.canFinishRekey===!0,trustedDevices:n?.trustedDevices.map(e=>e.label||e.name)??[],since:n?.since??null,from:Rc(n)}}function Rc(e){if(!e)return null;let t=e.requestedFrom.device?.trim()||null,n=e.requestedFrom.ip?.trim()||null;return t&&n?`${t} (${n})`:t??n}function zc(e){if(!e)return`an unknown date`;let t=Date.parse(e);if(Number.isNaN(t))return`an unknown date`;try{return new Date(t).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}catch{return new Date(t).toISOString()}}function Bc(e){let t=e.from?` from ${e.from}`:``;return`A password reset was started on ${zc(e.since)}${t}. Your saved provider keys are still sealed under the old password.`}function Vc(e){return e.trustedDevices.length===0?`No device with "keep me unlocked" is left, so nothing here holds the key from before the reset.`:`Open OonaCode on ${Uc(e.trustedDevices)} to finish the reset — your saved keys are waiting there.`}var Hc=`Either way, your vault Recovery Key still works: sign in on the OonaCode website from any device and finish the reset there. Discarding is the last resort — it deletes your saved provider keys, your mirrored history and that Recovery Key for good.`;function Uc(e){return e.length<=1?e[0]??``:`${e.slice(0,-1).join(`, `)} or ${e[e.length-1]}`}function Wc(e){return e.canFinishHere?`A password reset is waiting: this PC can move your vault to the new password.`:e.trustedDevices.length>0?`A password reset is waiting — your saved keys stay locked until it is finished on ${Uc(e.trustedDevices)}.`:`A password reset is waiting and no PC holds the old key — finish it with your vault Recovery Key on the OonaCode website.`}var Gc=class extends Error{code;status;details;constructor(e,t,n,r){super(n),this.name=`HostApiError`,this.code=e,this.status=t,this.details=r}get isUnauthorized(){return this.status===401||this.code===`unauthorized`}get isEmailNotVerified(){return this.code===`email_not_verified`}};function Kc(e){if(!e)return``;let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}function qc(e){return e.trim().replace(/\/+$/,``)}function Jc(e,t){let n=qc(e.baseUrl),r=t??((e,t)=>fetch(e,t));async function i(t,i,a,o={}){let s={Authorization:`Bearer ${e.token}`,Accept:o.raw||o.bytes?`*/*`:`application/json`},c={method:t,headers:s,credentials:`omit`};a!==void 0&&(s[`Content-Type`]=`application/json`,c.body=JSON.stringify(a));let l;try{l=await r(`${n}${i}`,c)}catch(e){throw new Gc(`network`,0,`Cannot reach the host at ${n}: ${String(e?.message??e)}`)}if(!l.ok){let e=null,t=``;try{t=await l.text(),e=t?JSON.parse(t):null}catch{e=null}let n=e?.error?.code??(l.status===401?`unauthorized`:`internal`),r=e?.error?.message??(t||`${l.status} ${l.statusText}`);throw new Gc(n,l.status,r,e?.error?.details)}if(o.bytes)return await l.arrayBuffer();if(o.raw)return await l.text();if(l.status===204)return;let u=await l.text();if(u)try{return JSON.parse(u)}catch{throw new Gc(`parse`,l.status,`Host returned malformed JSON for ${t} ${i}`)}}let a=Te;return{health:()=>i(a.health,I.health),info:()=>i(a.info,I.info),listSessions:e=>i(a.listSessions,`${I.sessions}${Kc(e)}`),createSession:e=>i(a.createSession,I.sessions,e),getSession:e=>i(a.getSession,I.session(e)),updateSession:(e,t)=>i(a.updateSession,I.session(e),t),deleteSession:e=>i(a.deleteSession,I.session(e)),exportSessionsArchive:async t=>{let i=await r(`${n}${I.sessionsExportArchive}`,{method:`POST`,credentials:`omit`,headers:{Authorization:`Bearer ${e.token}`,Accept:`application/zip`,"Content-Type":`application/json`},body:JSON.stringify({password:t})});if(!i.ok){let e=await i.text().catch(()=>``),t=null;try{t=e?JSON.parse(e):null}catch{t=null}throw new Gc(t?.error?.code??`internal`,i.status,t?.error?.message??e??`the export failed`)}return i.blob()},listEntries:(e,t)=>i(a.listEntries,`${I.sessionEntries(e)}${Kc(t)}`),listMessages:e=>i(a.listMessages,I.sessionMessages(e)),prompt:(e,t)=>i(a.prompt,I.sessionPrompt(e),{...t,stream:!1}),interrupt:e=>i(a.interrupt,I.sessionInterrupt(e),{}),cancelQueued:(e,t)=>i(a.cancelQueued,I.sessionQueued(e,t)),forkSession:(e,t)=>i(a.fork,I.sessionFork(e),t??{}),exportSession:(e,t)=>i(a.export,`${I.sessionExport(e)}${Kc(t)}`,void 0,{raw:!0}),listProjects:()=>i(a.listProjects,I.projects),listVaultProjects:()=>i(a.listVaultProjects,I.vaultProjects),createVaultProject:e=>i(a.createVaultProject,I.vaultProjects,e),updateVaultProject:(e,t)=>i(a.updateVaultProject,I.vaultProject(e),t),deleteVaultProject:e=>i(a.deleteVaultProject,I.vaultProject(e)),scanClaudeSessions:()=>i(a.scanClaudeSessions,I.importClaude),importClaudeSessions:e=>i(a.importClaudeSessions,I.importClaude,e??{}),sessionLink:e=>i(a.sessionLink,I.sessionLink(e)),syncSessionDown:e=>i(a.syncSessionDown,I.sessionSyncDown(e),{}),inspectProject:e=>i(a.inspectProject,`${I.projectInspect}${Kc(e)}`),attachSessionProject:(e,t)=>i(a.attachSessionProject,I.sessionProject(e),t),listProviders:()=>i(a.listProviders,I.providers),setActiveProvider:e=>i(a.setActiveProvider,I.providersActive,e),testProvider:e=>i(a.providerTest,I.providerTest(e),{}),probeCredential:(e,t)=>i(a.providerProbe,I.providerProbe(e),t),listModels:e=>i(a.listModels,`${I.models}${Kc(e)}`),getSettings:()=>i(a.getSettings,I.settings),updateSettings:e=>i(a.updateSettings,I.settings,e),getAccount:()=>i(a.getAccount,I.account),login:e=>i(a.login,I.accountLogin,e),logout:()=>i(a.logout,I.accountLogout,{}),unlock:e=>i(a.unlock,I.accountUnlock,e),lock:()=>i(`POST`,I.accountLock,{reason:`user`}),plan:()=>i(`GET`,I.accountPlan),remoteUnlockHost:(e,t)=>i(`POST`,I.hostVaultUnlock(e),{password:t}),resendVerification:e=>i(a.resendVerification,I.accountResendVerification,e),startAccountLink:e=>i(a.linkStart,I.accountLinkStart,e??{}),accountLinkStatus:()=>i(a.linkStatus,I.accountLinkStatus),cancelAccountLink:()=>i(a.linkCancel,I.accountLinkCancel,{}),completeVaultRekey:e=>i(`POST`,Fc.complete,e),revokeVaultRekey:e=>i(`POST`,Fc.revoke,e),setDeviceUnlock:e=>i(`POST`,Fc.deviceUnlock,e),listCredentials:()=>i(a.listCredentials,I.credentials),addCredential:e=>i(a.addCredential,I.credentials,e),deleteCredential:e=>i(a.deleteCredential,I.credential(e)),testCredential:e=>i(a.credentialTest,I.credentialTest(e),{}),syncNow:()=>i(a.syncNow,I.syncNow,{}),claudeSubscriptionLogin:()=>i(a.claudeLogin,I.subscriptionClaudeLogin,{}),claudeSubscriptionStatus:()=>i(a.claudeStatus,I.subscriptionClaudeStatus),claudeLoginState:()=>i(a.claudeLoginState,I.subscriptionClaudeLoginState),claudeLoginCode:e=>i(a.claudeLoginCode,I.subscriptionClaudeLoginCode,e),claudeLoginCancel:()=>i(a.claudeLoginCancel,I.subscriptionClaudeLoginCancel,{}),oauthLoginStart:e=>i(a.oauthLogin,I.subscriptionOauthLogin(e),{}),oauthLoginState:e=>i(a.oauthLoginState,I.subscriptionOauthLoginState(e)),oauthLoginCancel:e=>i(a.oauthLoginCancel,I.subscriptionOauthLoginCancel(e),{}),doctor:()=>i(a.doctor,I.doctor),listHosts:()=>i(a.listHosts,I.hosts),listHostSessions:e=>i(a.listHostSessions,I.hostSessions(e)),deleteHostSession:(e,t)=>i(a.deleteHostSession,I.hostSession(e,t),{method:`DELETE`}),updateHost:(e,t)=>i(a.updateHost,I.host(e),t),listHostSessionEntries:(e,t,n)=>i(a.listHostSessionEntries,`${I.hostSessionEntries(e,t)}${Kc(n)}`),reportError:e=>i(a.errorReport,I.errorReport,e),sendBugReport:e=>i(a.bugReport,I.bugReport,e),listSessionFiles:(e,t)=>i(a.listSessionFiles,`${I.sessionFiles(e)}${Kc({path:t})}`),readSessionFile:(e,t)=>i(a.readSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`,void 0,{raw:!0}),readSessionFileBytes:(e,t)=>i(a.readSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`,void 0,{bytes:!0}),deleteSessionFile:(e,t)=>i(a.deleteSessionFile,`${I.sessionFile(e)}${Kc({path:t})}`)}}function Yc(e){return e instanceof Gc&&(e.status===404||e.status===501)}var Xc=120;function Zc(){return Xc}function Qc(e){let t=e.batchMs??120,n=e.hiddenBatchMs??1e3,r=e.isHidden??(()=>!1),i=e.now??(()=>Date.now()),a=e.setTimeout??((e,t)=>setTimeout(e,t)),o=e.clearTimeout??(e=>clearTimeout(e)),s=[],c=null,l=-1/0,u=!1,d=()=>{if(c!==null&&(o(c),c=null),s.length===0)return;let t=s;s=[],l=i(),e.deliver(t)};return{push(o){if(u)return;if(s.push(o),!e.isStreamFrame(o)){d();return}let f=r()?n:t;if(f<=0){d();return}if(c!==null)return;let p=i()-l;if(p>=f){d();return}c=a(()=>{c=null,d()},f-p)},flush:d,dispose(){u=!0,c!==null&&o(c),c=null,s=[]}}}function $c(e){return e instanceof Gc&&e.code===`email_not_verified`}function el(e){if(!$c(e))return null;let t={error:{code:e.code,message:e.message,details:e.details}};return A(t)?t.error.details:null}function tl(e){let t=e.trim(),n=t.indexOf(`@`);return n<=0?`***`:`${t.slice(0,1)}***${t.slice(n)}`}function nl(e,t){return e===void 0||!Number.isFinite(e)||e<=0?t:t+Math.ceil(e)*1e3}function rl(e,t){return Math.max(0,Math.ceil((e.resendAt-t)/1e3))}function il(e,t){if(!$c(e))return null;let n=t.now??Date.now(),r=el(e),i=t.email.trim();return{email:i,displayEmail:r?.email||tl(i),verification:r?.verification??`pending`,registered:t.registered===!0,resendAt:nl(r?.resendAfterSec,n)}}function al(e){let t=e.registered?`Account created. `:``;return e.verification===`unverified`?`${t}Confirm your email first — no link is outstanding for ${e.displayEmail}; send a new one.`:`${t}Confirm your email first — we sent a link to ${e.displayEmail}.`}function ol(e=null){return{sessionId:e,session:null,items:[],index:new Map,status:`idle`,activeTurnId:null,init:null,statusText:null,pendingPermissions:[],lastSeq:null,totals:{costUsd:0,inputTokens:0,cachedInputTokens:0,outputTokens:0,turns:0},turnCachedTokens:0,hydrated:!1,agentActivity:{},hasSubagentItems:!1,hasOptimisticUser:!1,lastLocalPromptId:null,lastFrameAt:null,lastLiveUuid:null,engineSince:null,subpathParents:{},seen:new Set,streams:{},nextId:1}}function sl(e,t){let n=e.agentActivity[t.agentId],r={subpath:t.subpath,firstAt:n?Math.min(n.firstAt,t.at):t.at,at:n?Math.max(n.at,t.at):t.at,finished:t.finished,toolUses:(n?.toolUses??0)+t.toolUses};return{...e,agentActivity:{...e.agentActivity,[t.agentId]:r}}}function cl(e,t,n,r,i,a){let o=Ul.exec(t)?.[2];if(!o)return e;let s=i&&Date.parse(i)||0;if(n!==`assistant`)return sl(e,{agentId:o,subpath:t,at:s,finished:e.agentActivity[o]?.finished??!1,toolUses:0});let c=(Array.isArray(r)?r:[]).filter(e=>e.type===`tool_use`),l=c.length===0;return typeof a==`string`&&(l=a===`end_turn`||a===`stop_sequence`),c.some(e=>e.name===`StructuredOutput`)&&(l=!0),sl(e,{agentId:o,subpath:t,at:s,finished:l,toolUses:c.length})}function ll(e,t){switch(t.type){case`frame`:return ul(e,t.frame,t.receivedAt);case`hydrate`:return zl(e,t.messages,t.session??null);case`entries`:return Vl(e,t.entries);case`session`:return Kl(e,t.session);case`local_prompt`:return Jl(e,t);case`local_prompt_failed`:return Yl(e,t.requestId);case`local_permission`:return Rl(e,t.requestId,t.behavior,`local`);case`local_system`:{let n={kind:`system`,id:`sys:${e.nextId}`,uuid:null,parentToolUseId:null,turnId:null,timestamp:null,subtype:t.subtype,text:t.text};return U({...e,nextId:e.nextId+1},n)}case`reset`:return ol(e.sessionId)}}function ul(e,t,n){let r=hl(e,t,n);if(n===void 0||!fl(t,e,r))return r;let i=r.lastFrameAt;return i!==null&&n>=i&&n-i<1e3?r:{...r,lastFrameAt:n}}function dl(e){return e===`running`||e===`waiting_permission`}function fl(e,t,n){switch(e.type){case`agent`:return e.seq===null?e.message.type!==`system`||e.message.subtype!==`local_command`:!1;case`turn_started`:case`turn_finished`:case`prompt_delivered`:case`subagent_activity`:return!0;case`permission_request`:return n!==t;case`permission_resolved`:return!0;default:return!1}}function pl(e){if(e.lastFrameAt!==null||!e.hydrated||!dl(e.status))return e;let t=e.engineSince??0;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n].timestamp,i=r?Date.parse(r):NaN;if(Number.isFinite(i)){i>t&&(t=i);break}}for(let n of Object.values(e.agentActivity))n.at>t&&(t=n.at);return t>0?{...e,lastFrameAt:t}:e}function ml(e,t,n){return t!==null||n===void 0||typeof e.timestamp==`string`?e:{...e,timestamp:new Date(n).toISOString()}}function hl(e,t,n){switch(t.type){case`agent`:{if(t.seq!==null&&e.seen.has(`seq:${t.seq}`))return e;let r=gl(e,ml(t.message,t.seq,n),{turnId:t.turnId,receivedAt:n});return t.seq!==null&&(r=au(r,`seq:${t.seq}`),(r.lastSeq===null||t.seq>r.lastSeq)&&(r={...r,lastSeq:t.seq})),r}case`turn_started`:{let n=`turnstart:${t.turnId}`;if(e.seen.has(n))return e;let r=au(e,n);if(r={...r,activeTurnId:t.turnId,status:`running`,statusText:null,turnCachedTokens:0},t.requestId){let e=r.items.findIndex(e=>e.kind===`user`&&e.requestId===t.requestId);if(e>=0){let n={...r.items[e],turnId:t.turnId,waiting:!1};r=e<r.items.length-1?U(ru(r,new Set([n.id])),n):nu(r,e,n)}}return r}case`turn_finished`:return Nl(e,t.result,t.turnId);case`prompt_delivered`:return kl(e,t.text,t.deliveredAt,t.requestId);case`prompt_cancelled`:{let n=e.items.filter(e=>e.kind===`user`&&!e.failed&&(e.requestId===t.requestId||(e.waiting||e.optimistic)&&e.deliveredAt===null&&e.text===t.text));return ru(e,new Set(n.map(e=>e.id)))}case`subagent_activity`:return sl(e,{agentId:t.agentId,subpath:t.subpath,at:Date.parse(t.at)||Date.now(),finished:t.finished,toolUses:t.toolUses});case`permission_request`:return Ll(e,t.request,t.turnId,t.settled===!0);case`permission_resolved`:return Rl(e,t.requestId,t.behavior,t.resolvedBy);case`session_state`:{let n=t.session;return Kl((n.status===`idle`||n.status===`error`)&&e.pendingPermissions.length===0&&e.activeTurnId!==null?{...e,activeTurnId:null}:e,n)}case`error`:{if(t.code===`replay_truncated`||t.code===`replay_windowed`)return e;let r={kind:`error`,id:`err:${e.nextId}`,uuid:null,parentToolUseId:null,turnId:e.activeTurnId,timestamp:n===void 0?null:new Date(n).toISOString(),code:t.code,message:t.message,requestId:t.requestId??null};return U({...e,nextId:e.nextId+1},r)}default:return e}}function gl(e,t,n){let r=typeof t.uuid==`string`?t.uuid:null,i=t.type===`stream_event`||t.type===`tool_progress`,a=r&&!i?`uuid:${r}`:null;if(i&&r!==null&&r===e.lastLiveUuid)return e;if(a&&e.seen.has(a))return t.type===`assistant`?xl(e,t):e;let o=e;switch(t.type){case`system`:o=_l(e,t,n);break;case`stream_event`:o=vl(e,t,n);break;case`assistant`:o=bl(e,t,n);break;case`user`:o=El(e,t,n);break;case`result`:o=Ml(e,t,n);break;case`tool_progress`:o=Fl(e,t);break;case`auth_status`:o=Il(e,t,n);break;default:return e}return a?o=au(o,a):i&&r!==null&&(o={...o,lastLiveUuid:r}),o}function _l(e,t,n){switch(t.subtype){case`init`:{let r={model:du(t.model),cwd:du(t.cwd),tools:Array.isArray(t.tools)?t.tools.filter(e=>typeof e==`string`):[],permissionMode:du(t.permissionMode),claudeCodeVersion:du(t.claude_code_version),apiKeySource:du(t.apiKeySource),sessionId:du(t.session_id),mcpServers:Array.isArray(t.mcp_servers)?t.mcp_servers:[]};return{...e,init:r,engineSince:n.receivedAt??Date.now()}}case`compact_boundary`:{let r=t.compact_metadata??{},i={kind:`compact`,id:su(e,`compact`,t),uuid:cu(t),parentToolUseId:lu(t),turnId:n.turnId,timestamp:uu(t),trigger:r.trigger===`manual`?`manual`:`auto`,preTokens:typeof r.pre_tokens==`number`?r.pre_tokens:0,postTokens:typeof r.post_tokens==`number`?r.post_tokens:null};return U(ou(e),i)}case`status`:{let n=typeof t.status==`string`?t.status:null;return{...e,statusText:n}}case`task_notification`:{let r=fe({taskId:du(t.task_id)||null,toolUseId:du(t.tool_use_id)||null,status:du(t.status)||null,summary:du(t.summary)||null});if(Ql(e,r))return e;let i=cu(t),a={kind:`user`,id:i?`u:${i}`:`i${e.nextId}`,uuid:i,parentToolUseId:lu(t),turnId:n.turnId,timestamp:uu(t),text:r,attachments:[],requestId:null,optimistic:!1,failed:!1,waiting:!1,deliveredAt:null,compactSummary:!1,taskNotification:!0,engineNote:!1};return e.index.get(a.id)===void 0?U(i?e:ou(e),a):e}case`permission_denied`:{let n=du(t.tool_use_id),r=du(t.message);return iu(e,n,e=>{let t=e.name===`AskUserQuestion`&&r===`the user skipped the question`;return{...e,status:t?`skipped`:`denied`,result:e.result??{content:r||`Permission denied`,isError:!t,structured:null}}})}case`rewind_boundary`:{let n={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:lu(t),turnId:e.activeTurnId,timestamp:uu(t),subtype:`rewind`,text:typeof t.content==`string`&&t.content.trim()?t.content.trim():`Rewound here — the conversation was taken back to this point and continued differently.`};return U({...e,nextId:e.nextId+1},n)}default:{let n=typeof t.content==`string`?t.content.trim():``,r=n?Tl(n):null;if(!r||r.subtype===`caveat`)return e;let i={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:lu(t),turnId:e.activeTurnId,timestamp:uu(t),subtype:r.subtype,text:r.text};return U({...e,nextId:e.nextId+1},i)}}}function vl(e,t,n){let r=t.event;if(!r||typeof r!=`object`)return e;let i=lu(t),a=i??``,o=e.streams[a]??{messageId:null,model:null,blocks:{},unclaimed:[]};switch(r.type){case`message_start`:{let t=r.message,n={messageId:t?.id??null,model:t?.model??null,blocks:{},unclaimed:[]},i=e;for(let e of o.unclaimed)i=yl(i,e);return{...i,streams:{...i.streams,[a]:n}}}case`content_block_start`:{let s=r.content_block,c=e,l;if(s.type===`text`)l={kind:`assistant`,id:`i${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),text:s.text??``,streaming:!0,model:o.model,messageId:o.messageId,error:null,aborted:!1},c=ou(c);else if(s.type===`thinking`||s.type===`redacted_thinking`)l={kind:`thinking`,id:`i${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),text:s.type===`thinking`?s.thinking??``:``,streaming:!0,redacted:s.type===`redacted_thinking`},c=ou(c);else if(s.type===`tool_use`){let c=s;if(e.index.get(c.id)!==void 0){let t={...o.blocks,[r.index]:c.id};return{...e,streams:{...e.streams,[a]:{...o,blocks:t}}}}let u=c.input&&Object.keys(c.input).length>0;l={kind:`tool`,id:c.id,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),toolUseId:c.id,name:c.name,input:u?c.input:null,inputJson:u?JSON.stringify(c.input):``,status:`streaming`,result:null,startedAt:n.receivedAt??null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:o.messageId}}else return e;c=U(c,l);let u={...o.blocks,[r.index]:l.id},d=[...o.unclaimed,l.id];return{...c,streams:{...c.streams,[a]:{...o,blocks:u,unclaimed:d}}}}case`content_block_delta`:{let t=o.blocks[r.index];if(!t)return e;let n=e.index.get(t);if(n===void 0)return e;let i=e.items[n],a=r.delta;return a.type===`text_delta`&&i.kind===`assistant`?nu(e,n,{...i,text:i.text+a.text}):a.type===`thinking_delta`&&i.kind===`thinking`?nu(e,n,{...i,text:i.text+a.thinking}):a.type===`input_json_delta`&&i.kind===`tool`?nu(e,n,{...i,inputJson:i.inputJson+a.partial_json}):e}case`content_block_stop`:{let t=o.blocks[r.index];return t?yl(e,t,n.receivedAt):e}case`message_delta`:case`message_stop`:case`ping`:return e;case`error`:{let a={kind:`error`,id:`err:${e.nextId}`,uuid:null,parentToolUseId:i,turnId:n.turnId,timestamp:uu(t),code:r.error?.type??`stream_error`,message:r.error?.message??`stream error`,requestId:null};return U(ou(e),a)}default:return e}}function yl(e,t,n){let r=e.index.get(t);if(r===void 0)return e;let i=e.items[r];if(i.kind===`assistant`||i.kind===`thinking`)return i.streaming?nu(e,r,{...i,streaming:!1}):e;if(i.kind===`tool`&&i.status===`streaming`){let t=i.input??hu(i.inputJson);return nu(e,r,{...i,input:t,status:`running`,startedAt:i.startedAt??n??null})}return e}function bl(e,t,n){let r=t.message??{},i=pu(r.content),a=lu(t),o=a??``,s=cu(t),c=uu(t),l=typeof t.error==`string`?t.error:null,u=t.aborted===!0,d=e;{let e=fu(r.usage?.cache_read_input_tokens)+fu(r.usage?.cache_creation_input_tokens),t=`usage:${r.id??``}`;e>0&&r.id&&!d.seen.has(t)&&(d={...au(d,t),turnCachedTokens:d.turnCachedTokens+e})}let f=d.streams[o];for(let e of i){let t=f?Sl(d,f,e):null;if(t){let n=d.index.get(t),i=d.items[n];d=nu(d,n,Cl(i,e,{uuid:s,timestamp:c,model:r.model??null,messageId:r.id??null,errorText:l,aborted:u})),f={...f,unclaimed:f.unclaimed.filter(e=>e!==t)},d={...d,streams:{...d.streams,[o]:f}};continue}let i=wl(d,e,{uuid:s,timestamp:c,parentToolUseId:a,turnId:n.turnId,model:r.model??null,messageId:r.id??null,errorText:l,aborted:u,receivedAt:n.receivedAt});i&&(d=i)}if(i.length===0&&l){let e={kind:`error`,id:`err:${d.nextId}`,uuid:s,parentToolUseId:a,turnId:n.turnId,timestamp:c,code:`assistant_error`,message:l,requestId:null};d=U(ou(d),e)}return d}function xl(e,t){let n=lu(t)??``,r=e.streams[n];if(!r||r.unclaimed.length===0)return e;let i=t.message??{},a=new Set,o=e,s=r;for(let e of pu(i.content)){let t=Sl(o,s,e);t&&(a.add(t),s={...s,unclaimed:s.unclaimed.filter(e=>e!==t)},o={...o,streams:{...o.streams,[n]:s}})}return ru(e,a)}function Sl(e,t,n){for(let r of t.unclaimed){let t=e.index.get(r);if(t===void 0)continue;let i=e.items[t];if(!i.uuid&&(n.type===`text`&&i.kind===`assistant`||(n.type===`thinking`||n.type===`redacted_thinking`)&&i.kind===`thinking`||n.type===`tool_use`&&i.kind===`tool`&&i.toolUseId===n.id))return r}return null}function Cl(e,t,n){if(e.kind===`assistant`&&t.type===`text`){let r=t.text??e.text;return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,text:r.length>=e.text.length?r:e.text,streaming:!1,model:n.model??e.model,messageId:n.messageId??e.messageId,error:n.errorText,aborted:n.aborted}}if(e.kind===`thinking`){let r=t.type===`thinking`?t.thinking??e.text:e.text;return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,text:r||e.text,streaming:!1}}if(e.kind===`tool`&&t.type===`tool_use`){let r=t,i=r.input&&Object.keys(r.input).length>0?r.input:e.input??hu(e.inputJson);return{...e,uuid:n.uuid,timestamp:n.timestamp??e.timestamp,name:r.name??e.name,input:i,inputJson:e.inputJson||(i?JSON.stringify(i):``),status:e.status===`streaming`?`running`:e.status,messageId:n.messageId??e.messageId}}return e}function wl(e,t,n){let r={uuid:n.uuid,parentToolUseId:n.parentToolUseId,turnId:n.turnId,timestamp:n.timestamp};if(t.type===`text`){let i={kind:`assistant`,id:`i${e.nextId}`,...r,text:t.text??``,streaming:!1,model:n.model,messageId:n.messageId,error:n.errorText,aborted:n.aborted};return U(ou(e),i)}if(t.type===`thinking`||t.type===`redacted_thinking`){let n={kind:`thinking`,id:`i${e.nextId}`,...r,text:t.type===`thinking`?t.thinking??``:``,streaming:!1,redacted:t.type===`redacted_thinking`};return U(ou(e),n)}if(t.type===`tool_use`){let i=t,a=e.index.get(i.id);if(a!==void 0){let r=e.items[a];return nu(e,a,Cl(r,t,n))}let o=i.input&&typeof i.input==`object`?i.input:null;return U(e,{kind:`tool`,id:i.id,...r,toolUseId:i.id,name:i.name,input:o,inputJson:o?JSON.stringify(o):``,status:`running`,result:null,startedAt:n.receivedAt??null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:n.messageId})}return null}function Tl(e){if(/^<local-command-caveat>/.test(e))return{subtype:`caveat`,text:``};let t=/^<local-command-(stdout|stderr)>([\s\S]*?)<\/local-command-\1>$/.exec(e);if(t){let e=t[2].replace(/\u001b\[[0-9;]*m/g,``).trim();return{subtype:t[1]===`stderr`?`local-command-error`:`local-command`,text:e}}let n=/<command-name>([^<]*)<\/command-name>/.exec(e);if(n&&/^<command-/.test(e)){let t=/<command-args>([^<]*)<\/command-args>/.exec(e)?.[1]?.trim()??``;return{subtype:`command`,text:`${n[1].trim()}${t?` `+t:``}`}}return null}function El(e,t,n){let r=t.message??{},i=lu(t),a=cu(t),o=uu(t),s=t.isSynthetic===!0,c=e,l=[],u=[],d=!1;if(typeof r.content==`string`)l.push(r.content);else for(let e of pu(r.content))if(e.type===`text`)l.push(e.text??``);else if(e.type===`tool_result`){d=!0;let r=e;c=Al(c,r.tool_use_id,{content:r.content??``,isError:r.is_error===!0,structured:t.tool_use_result??null},n.receivedAt)}else(e.type===`image`||e.type===`document`)&&u.push(e);let f=se(l.join(`
|
|
76
|
+
`)).trim();if(ue(f)&&Ql(c,f))return c;let p=Tl(f);if(p?.subtype===`caveat`)return c;if(p){let e={kind:`system`,id:`sys:${c.nextId}`,uuid:a,parentToolUseId:i,turnId:c.activeTurnId,timestamp:o,subtype:p.subtype,text:p.text};return U({...c,nextId:c.nextId+1},e)}if(f.length===0&&u.length===0||d&&f.length===0||s&&d)return c;if(i===null&&!s&&c.hasOptimisticUser){let e=c.items.findIndex(e=>e.kind===`user`&&e.optimistic&&!e.failed&&e.text===f);if(e<0&&(c={...c,hasOptimisticUser:!1}),e>=0){let t=c.items[e],r={...t,uuid:a??t.uuid,timestamp:o??t.timestamp,optimistic:!1,turnId:t.turnId??n.turnId};return t.waiting&&e<c.items.length-1?U(ru(c,new Set([t.id])),{...r,waiting:!1}):nu(c,e,r)}}let m=t.isMeta===!0||ie(f),h=t.isCompactSummary===!0||te(f)||ue(f),g={kind:`user`,id:a?`u:${a}`:`i${c.nextId}`,uuid:a,parentToolUseId:i,turnId:n.turnId,timestamp:o,text:f,attachments:u,requestId:null,optimistic:!1,failed:!1,waiting:!s&&!m&&!h&&i===null&&n.turnId!==null&&Dl(c,n.turnId),deliveredAt:null,compactSummary:t.isCompactSummary===!0||te(f),taskNotification:ue(f),engineNote:!te(f)&&!ue(f)&&m};return c.index.get(g.id)===void 0?U(a?c:ou(c),g):c}function Dl(e,t){if(e.status!==`running`)return!1;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n];if((t===null||r.turnId===null||r.turnId===t)&&(r.kind===`assistant`||r.kind===`thinking`||r.kind===`tool`))return!0}return!1}function Ol(e){let t=-1;for(let n=e.items.length-1;n>=0;n--){let r=e.items[n];if(r.kind===`user`&&r.waiting){t=n;break}}if(t<0)return e;let n=e.items.map(e=>e.kind===`user`&&e.waiting?{...e,waiting:!1}:e);return{...e,items:n}}function kl(e,t,n,r){let i=r!==void 0&&e.items.some(e=>e.kind===`user`&&!e.failed&&e.requestId===r);for(let a=e.items.length-1;a>=0;a--){let o=e.items[a];if(o.kind!==`user`||o.failed||(i?o.requestId!==r:o.text!==t))continue;if(!o.optimistic&&!o.waiting&&o.deliveredAt!==null)return e;let s={...o,optimistic:!1,waiting:!1,deliveredAt:n??o.deliveredAt??new Date().toISOString()};return o.waiting&&a<e.items.length-1?U(ru(e,new Set([o.id])),s):nu(e,a,s)}return e}function Al(e,t,n,r){let i=e.index.get(t);if(i===void 0)return U(e,{kind:`tool`,id:t,uuid:null,parentToolUseId:null,turnId:null,timestamp:null,toolUseId:t,name:`unknown`,input:null,inputJson:``,status:n.isError?`error`:`done`,result:n,startedAt:null,finishedAt:r??null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:null});let a=e.items[i];if(a.result&&a.status!==`running`&&a.status!==`streaming`&&a.status!==`pending`)return e;let o=r??null,s=a.startedAt!==null&&o!==null?Math.max(0,o-a.startedAt):a.durationMs;return nu(e,i,{...a,input:a.input??hu(a.inputJson),result:jl(a.name,n)?{...n,isError:!1}:n,status:jl(a.name,n)?`skipped`:n.isError?`error`:`done`,finishedAt:o,durationMs:s})}function jl(e,t){return!t.isError||e!==`AskUserQuestion`?!1:typeof t.content==`string`&&t.content.includes(`the user skipped the question`)}function Ml(e,t,n){let r=Nc(t.usage,t.modelUsage),i=Array.isArray(t.permission_denials)?t.permission_denials:[],a=n.turnId;return Pl(e,{kind:`result`,id:a?`result:${a}`:cu(t)?`result:${cu(t)}`:`result:${e.nextId}`,uuid:cu(t),parentToolUseId:null,turnId:a,timestamp:uu(t),subtype:typeof t.subtype==`string`?t.subtype:`success`,isError:t.is_error===!0||typeof t.result==`string`&&/^API Error\b/i.test(t.result.trim()),costUsd:fu(t.total_cost_usd),durationMs:fu(t.duration_ms),durationApiMs:typeof t.duration_api_ms==`number`?t.duration_api_ms:null,numTurns:fu(t.num_turns),inputTokens:r.input,cachedInputTokens:r.cached||e.turnCachedTokens,outputTokens:r.output,text:typeof t.result==`string`?t.result:null,errors:Array.isArray(t.errors)?t.errors.map(String):[],stopReason:typeof t.stop_reason==`string`?t.stop_reason:null,structuredOutput:t.structured_output??null},new Set(i.map(e=>e.tool_use_id??``)),n.receivedAt)}function Nl(e,t,n){e=Ol(e);let r=`result:${n}`,i=e.index.get(r),a={kind:`result`,id:r,uuid:i===void 0?null:e.items[i].uuid,parentToolUseId:null,turnId:n,timestamp:i===void 0?null:e.items[i].timestamp,subtype:t.subtype,isError:t.isError,costUsd:t.totalCostUsd,durationMs:t.durationMs,durationApiMs:i===void 0?null:e.items[i].durationApiMs,numTurns:t.numTurns,inputTokens:t.inputTokens,cachedInputTokens:t.cachedInputTokens??(i===void 0?void 0:e.items[i].cachedInputTokens)??e.turnCachedTokens,outputTokens:t.outputTokens,text:t.result,errors:t.errors??[],stopReason:t.stopReason,structuredOutput:t.structuredOutput??null};return Pl(e,a,new Set,void 0)}function Pl(e,t,n,r){let i=e,a=i.index.get(t.id),o=a!==void 0;i=a===void 0?U(ou(i),t):nu(i,a,t);let s=i.items.map(e=>{if((e.kind===`assistant`||e.kind===`thinking`)&&e.streaming)return{...e,streaming:!1};if(e.kind===`tool`&&e.result===null&&(e.status===`streaming`||e.status===`running`||e.status===`pending`)){let t=n.has(e.toolUseId)?`denied`:`cancelled`;return{...e,status:t,input:e.input??hu(e.inputJson),finishedAt:r??null}}return e}),c=o?i.totals:{costUsd:i.totals.costUsd+t.costUsd,inputTokens:i.totals.inputTokens+t.inputTokens,cachedInputTokens:i.totals.cachedInputTokens+(t.cachedInputTokens??0),outputTokens:i.totals.outputTokens+t.outputTokens,turns:i.totals.turns+1};return{...i,items:s,totals:c,status:t.isError?`error`:`idle`,activeTurnId:null,statusText:null,streams:{},pendingPermissions:[]}}function Fl(e,t){let n=du(t.tool_use_id),r=typeof t.elapsed_time_seconds==`number`?t.elapsed_time_seconds:null;return!n||r===null?e:iu(e,n,e=>e.result?e:{...e,elapsedSec:r})}function Il(e,t,n){let r=Array.isArray(t.output)?t.output.map(String).join(`
|
|
77
|
+
`):``,i=typeof t.error==`string`?t.error:null,a=i?`Authentication error: ${i}`:t.isAuthenticating?`Authenticating…\n${r}`.trim():r;if(!a)return e;let o={kind:`system`,id:`sys:${e.nextId}`,uuid:cu(t),parentToolUseId:null,turnId:n.turnId,timestamp:uu(t),subtype:`auth_status`,text:a};return U(ou(e),o)}function Ll(e,t,n,r=!1){let i=`perm:${t.requestId}`;if(e.index.get(i)!==void 0)return e;let a=e.index.get(t.toolUseId),o=a===void 0?void 0:e.items[a],s=U(e,{kind:`permission`,id:i,uuid:null,parentToolUseId:o?.kind===`tool`?o.parentToolUseId:null,turnId:n,timestamp:t.createdAt,request:t,status:`pending`,resolvedBy:null});return s=iu(s,t.toolUseId,e=>({...e,permissionRequestId:t.requestId,status:e.result?e.status:`pending`})),r?{...s,activeTurnId:s.activeTurnId??n}:{...s,pendingPermissions:[...s.pendingPermissions.filter(e=>e.requestId!==t.requestId),t],status:`waiting_permission`,activeTurnId:s.activeTurnId??n}}function Rl(e,t,n,r){let i=`perm:${t}`,a=e.index.get(i),o=e,s=null;if(a!==void 0){let e=o.items[a];s=e.request.toolUseId,e.status===`pending`&&(o=nu(o,a,{...e,status:n===`allow`?`allowed`:`denied`,resolvedBy:r}))}let c=o.pendingPermissions.filter(e=>e.requestId!==t);s&&(o=iu(o,s,e=>e.result?e:{...e,status:n===`allow`?`running`:`denied`}));let l=c.length>0?`waiting_permission`:o.activeTurnId||o.status===`waiting_permission`?`running`:o.status;return{...o,pendingPermissions:c,status:l}}function zl(e,t,n){return eu(e,e=>Bl(e,t,n))}function Bl(e,t,n){let r=e;for(let e of t){let t=e.parentToolUseId;if(e.subpath&&(r=cl(r,e.subpath,e.role,e.content,e.timestamp)),e.subpath&&(t===null||r.index.get(t)===void 0)){let n=H(r,e.subpath);r=n.state,t=n.parentToolUseId}let n={type:e.role===`assistant`?`assistant`:e.role===`user`?`user`:`system`,uuid:e.uuid,parent_tool_use_id:t,timestamp:e.timestamp??void 0};if(e.role===`system`){let t=typeof e.content==`string`?e.content:mu(pu(e.content));if(!t||r.seen.has(`uuid:${e.uuid}`))continue;let n={kind:`system`,id:`sys:${e.uuid}`,uuid:e.uuid,parentToolUseId:e.parentToolUseId,turnId:null,timestamp:e.timestamp,subtype:e.subtype===`rewind_boundary`?`rewind`:`history`,text:t};r.index.get(n.id)===void 0&&(r=au(U(r,n),`uuid:${e.uuid}`));continue}let i=e.role===`assistant`?{id:null,role:`assistant`,model:e.model,content:pu(e.content)}:{role:`user`,content:typeof e.content==`string`?e.content:pu(e.content)};r=gl(r,{...n,message:i},{turnId:null,receivedAt:void 0})}return r={...r,hydrated:!0},r=n?Kl(r,n):ql(r),pl(r)}function Vl(e,t){return eu(e,e=>Hl(e,t))}function Hl(e,t){let n=e;for(let e of t){let t=`seq:${e.seq}`;if(n.seen.has(t))continue;let r=e.entry,i=e.type||String(r.type??``);if(i===`attachment`){let t=ce(r);if(t!==null){let i={type:`user`,uuid:e.uuid??(typeof r.uuid==`string`?r.uuid:void 0),parent_tool_use_id:null,timestamp:e.timestamp??void 0,message:{role:`user`,content:t.content}};n=gl(n,i,{turnId:null,receivedAt:void 0}),typeof t.content!=`string`&&(n=kl(n,t.text,t.timestamp))}}if(i===`queue-operation`){let e=F(r);e&&(n=kl(n,e.text,e.deliveredAt))}if(i===`user`||i===`assistant`||i===`system`||i===`result`){let t=r.parent_tool_use_id??null;if(e.subpath){let t=r.message;n=cl(n,e.subpath,i,t?.content,e.timestamp,t?.stop_reason)}if(e.subpath&&(t===null||n.index.get(t)===void 0)){let r=H(n,e.subpath);n=r.state,t=r.parentToolUseId}let a={...r,type:i,uuid:e.uuid??(typeof r.uuid==`string`?r.uuid:void 0),parent_tool_use_id:t,timestamp:e.timestamp??void 0};n=gl(n,a,{turnId:null,receivedAt:void 0})}n=au(n,t),(n.lastSeq===null||e.seq>n.lastSeq)&&(n={...n,lastSeq:e.seq})}return pl(ql({...n,hydrated:!0}))}var Ul=/^subagents\/(?:workflows\/([^/]+)\/)?agent-(.+?)(?:\.jsonl)?$/;function Wl(e){return`subagent:${e}`}function Gl(e){return`subagent:workflows/${e}`}function V(e,t,n,r){return{kind:`tool`,id:e,uuid:null,parentToolUseId:r,turnId:null,timestamp:null,toolUseId:e,name:t,input:{description:n},inputJson:``,status:`done`,result:null,startedAt:null,finishedAt:null,durationMs:null,elapsedSec:null,permissionRequestId:null,messageId:null}}function H(e,t){if(!t)return{state:e,parentToolUseId:null};let n=e.subpathParents[t];if(n!==void 0&&e.index.get(n)!==void 0)return{state:e,parentToolUseId:n};let r=Ul.exec(t);if(!r)return{state:e,parentToolUseId:null};let i=r[1]??null,a=r[2],o=(e,n)=>({state:$l?(e.subpathParents[t]=n,e):{...e,subpathParents:{...e.subpathParents,[t]:n}},parentToolUseId:n}),s=e.index.get(a);if(s!==void 0){let t=e.items[s];if(t?.kind===`tool`)return o(e,t.toolUseId)}if(i){for(let t of e.items)if(t.kind===`tool`&&t.name===`Workflow`&&t.result!==null&&gu(t.result).includes(i))return o(e,t.toolUseId)}let c=Wl(t);if(e.index.get(c)!==void 0)return o(e,c);let l=a.slice(0,8),u=e,d=null;i&&(d=Gl(i),u.index.get(d)===void 0&&(u=U(u,V(d,`Workflow`,`Workflow run ${i} (transcript)`,null))));let f=V(c,`Agent`,i?`Agent ${l}`:`Agent ${l} (transcript)`,d);return o(U(u,f),c)}function Kl(e,t){let n=e.pendingPermissions.length>0?`waiting_permission`:t.status,r=t.engineSince?Date.parse(t.engineSince):NaN,i=e.hydrated&&e.session!==null&&!dl(e.status)&&dl(n),a=pl(ql({...e,session:t,sessionId:t.id,status:n,engineSince:Number.isFinite(r)?r:e.engineSince,...i?{lastFrameAt:null}:{}}));if(!i)return a;let o=Date.parse(t.updatedAt);return Number.isFinite(o)&&o>(a.lastFrameAt??0)?{...a,lastFrameAt:o}:a}function ql(e){if(e.activeTurnId!==null||e.status!==`idle`&&e.status!==`error`)return e;let t=!1,n=e.items.map(e=>(e.kind===`assistant`||e.kind===`thinking`)&&e.streaming?(t=!0,{...e,streaming:!1}):e.kind===`tool`&&e.result===null&&(e.status===`streaming`||e.status===`running`||e.status===`pending`)?(t=!0,{...e,status:`cancelled`,input:e.input??hu(e.inputJson)}):e);return t?{...e,items:n}:e}function Jl(e,t){let n=(t.attachments??[]).filter(e=>typeof e==`object`&&!!e&&typeof e.type==`string`),r={kind:`user`,id:`req:${t.requestId}`,uuid:null,parentToolUseId:null,turnId:null,timestamp:t.at??null,text:t.text,attachments:n,requestId:t.requestId,optimistic:!0,failed:!1,waiting:e.status===`running`,deliveredAt:null,compactSummary:!1,taskNotification:!1,engineNote:!1};if(e.index.get(r.id)!==void 0)return e;let i=new Set(e.items.filter(e=>e.kind===`user`&&e.failed&&e.text===t.text).map(e=>e.id)),a=!dl(e.status),o=t.at===void 0?NaN:Date.parse(t.at);return{...U(ru(e,i),r),status:`running`,statusText:null,hasOptimisticUser:!0,lastLocalPromptId:r.id,...a?{lastFrameAt:Number.isFinite(o)?o:null}:{}}}function Yl(e,t){let n=e.index.get(`req:${t}`),r=e;if(n!==void 0){let t=e.items[n];t?.kind===`user`&&!t.failed&&(r=nu(e,n,{...t,failed:!0}))}return r.activeTurnId!==null||r.status!==`running`&&r.status!==`waiting_permission`?r:{...r,status:`error`,statusText:null}}function Xl(e,t){let n=new Map,r=new Map;for(let t of e){let e={item:t,children:[]};n.set(t.id,e),t.kind===`tool`&&r.set(t.toolUseId,e)}let i=[];for(let t of e){let e=n.get(t.id),a=t.parentToolUseId?r.get(t.parentToolUseId):void 0;a&&a!==e?a.children.push(e):i.push(e)}if(!t||t.length===0)return i;let a=new Map,o=e=>{for(let t of e)a.set(t.item.id,t),t.children.length>0&&o(t.children)};o(t);let s=new Map;for(let t=e.length-1;t>=0;t--){let r=n.get(e[t].id);for(let e=0;e<r.children.length;e++){let t=s.get(r.children[e]);t&&(r.children[e]=t)}let i=a.get(r.item.id);s.set(r,i&&Zl(i,r)?i:r)}let c=i.map(e=>s.get(e)??e);return c.length===t.length&&c.every((e,n)=>e===t[n])?t:c}function Zl(e,t){if(e.item!==t.item||e.children.length!==t.children.length)return!1;for(let n=0;n<t.children.length;n++)if(e.children[n]!==t.children[n])return!1;return!0}function Ql(e,t){let n=pe(t);if(!n.taskId)return!1;for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];if(r.kind!==`user`||!r.taskNotification)continue;let i=pe(r.text);if(i.taskId===n.taskId&&(i.toolUseId??null)===(n.toolUseId??null))return!0}return!1}var $l=!1;function eu(e,t){if($l)return t(e);$l=!0;try{return t({...e,items:e.items.slice(),index:new Map(e.index),seen:new Set(e.seen),subpathParents:{...e.subpathParents}})}finally{$l=!1}}var tu=new Set([`Task`,`Agent`,`Workflow`]);function U(e,t){let n=e.hasSubagentItems||t.kind===`tool`&&tu.has(t.name);if($l)return e.items.push(t),e.index.set(t.id,e.items.length-1),e.hasSubagentItems=n,e;let r=[...e.items,t];return{...e,items:r,index:new Map(e.index).set(t.id,r.length-1),...n===e.hasSubagentItems?{}:{hasSubagentItems:n}}}function nu(e,t,n){if($l)return e.items[t]=n,e;let r=e.items.slice();return r[t]=n,{...e,items:r}}function ru(e,t){if(t.size===0)return e;let n=e.items.filter(e=>!t.has(e.id)),r=new Map;n.forEach((e,t)=>{r.set(e.id,t)});let i={};for(let[n,r]of Object.entries(e.streams)){let e={};for(let[n,i]of Object.entries(r.blocks))t.has(i)||(e[Number(n)]=i);i[n]={...r,blocks:e,unclaimed:r.unclaimed.filter(e=>!t.has(e))}}return{...e,items:n,index:r,streams:i}}function iu(e,t,n){let r=e.index.get(t);if(r===void 0)return e;let i=e.items[r];if(!i||i.kind!==`tool`)return e;let a=n(i);return a===i?e:nu(e,r,a)}function au(e,t){return e.seen.has(t)?e:$l?(e.seen.add(t),e):{...e,seen:new Set(e.seen).add(t)}}function ou(e){return{...e,nextId:e.nextId+1}}function su(e,t,n){let r=cu(n);return r?`${t}:${r}`:`${t}:${e.nextId}`}function cu(e){return typeof e.uuid==`string`&&e.uuid?e.uuid:null}function lu(e){return typeof e.parent_tool_use_id==`string`&&e.parent_tool_use_id?e.parent_tool_use_id:null}function uu(e){return typeof e.timestamp==`string`?e.timestamp:null}function du(e){return typeof e==`string`?e:``}function fu(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function pu(e){return typeof e==`string`?e?[{type:`text`,text:e}]:[]:Array.isArray(e)?e.filter(e=>typeof e==`object`&&!!e&&typeof e.type==`string`):[]}function mu(e){return e.map(e=>e.type===`text`?e.text??``:``).filter(Boolean).join(`
|
|
77
78
|
`)}function hu(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);return typeof e==`object`&&e&&!Array.isArray(e)?e:null}catch{return null}}function gu(e){return e?typeof e.content==`string`?e.content:e.content.map(e=>e.type===`text`?e.text??``:e.type===`image`?`[image]`:`[${e.type}]`).join(`
|
|
78
|
-
`):``}function _u(e){return!Number.isFinite(e)||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function vu(e){if(e==null||!Number.isFinite(e))return``;if(e<1e3)return`${Math.floor(e)}ms`;if(e<1e4)return`${(Math.floor(e/100)/10).toFixed(1)}s`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60);return n>0?`${n}h ${r}m`:`${r}m ${t%60}s`}function yu(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e4?`${Math.round(e/1e3)}k`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function bu(e,t=Date.now()){if(!e)return``;let n=Date.parse(e);if(!Number.isFinite(n))return``;let r=Math.max(0,t-n),i=Math.floor(r/1e3);if(i<45)return`just now`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);if(o<24)return`${o}h ago`;let s=Math.floor(o/24);return s<30?`${s}d ago`:new Date(n).toLocaleDateString()}function xu(e){if(!e)return;let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleString()}function Su(e){if(!e)return``;let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``}function Cu(e){let t=e.replace(/[\\/]+$/,``),n=t.split(/[\\/]/);return n[n.length-1]||t}function wu(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function Tu(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function W(...e){return e.filter(Boolean).join(` `)}function Eu(e,t=6){let n=e.trim().split(/\s+/).filter(Boolean);return n.length<=t?n.join(` `):`${n.slice(0,t).join(` `)}…`}function Du(e){return e.title?.trim()||e.firstPrompt?.trim().replace(/\s+/g,` `)||`Session ${e.id.slice(0,8)}`}function Ou(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function ku(e,t=Date.now()){return{id:e,title:null,providerId:null,variantId:null,projectId:null,model:null,permissionMode:null,projectDir:null,createdAt:t}}var Au=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function ju(e){return Au.test(e)}function Mu(){let e=new Uint8Array(16),t=globalThis.crypto;if(t&&typeof t.getRandomValues==`function`)return t.getRandomValues(e),e;for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);return e}function Nu(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`){let t=e.randomUUID();if(ju(t))return t}let t=Mu();t[6]=(t[6]??0)&15|64,t[8]=(t[8]??0)&63|128;let n=Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}function Pu(e){return e.title?.trim()||`New chat`}function Fu(e){let t=e.trim().replace(/\s+/g,` `).slice(0,500);return t.length>0?t:null}function Iu(e,t){return typeof t==`string`&&e[t]!==void 0}var Lu=`oonacode.uiPrefs`;function Ru(e){if(!e)return null;try{let t=e.getItem(Lu);return t?ac(JSON.parse(t)):null}catch{return null}}function zu(e,t){if(e)try{e.setItem(Lu,JSON.stringify(t))}catch{}}function Bu(e,t){let n=t.notifications?{...e.notifications,...t.notifications}:e.notifications;return ac({...e,...t,notifications:n})}function Vu(e){let t=e;return!t||typeof t!=`object`?!1:t.status===400||t.status===422||t.code===`bad_request`}function Hu(e=[],t=null){let n=[];for(let t of e)t&&!n.includes(t)&&n.push(t);let r=n.slice(-20);return{ids:r,activeId:t&&r.includes(t)?t:r[r.length-1]??null}}function Uu(e,t){if(!t)return e;if(e.ids.includes(t))return e.activeId===t?e:{ids:e.ids,activeId:t};let n=[...e.ids,t];if(n.length>20){let r=n.find(n=>n!==t&&n!==e.activeId)??n[0];n=n.filter(e=>e!==r)}return{ids:n,activeId:t}}function Wu(e,t){return!e.ids.includes(t)||e.activeId===t?e:{ids:e.ids,activeId:t}}function Gu(e,t){let n=e.ids.indexOf(t);if(n===-1)return e;let r=e.ids.filter(e=>e!==t);return e.activeId===t?{ids:r,activeId:r[n]??r[n-1]??null}:{ids:r,activeId:e.activeId}}function Ku(e,t,n){if(t===n||t<0||t>=e.ids.length)return e;let r=Math.max(0,Math.min(e.ids.length-1,n));if(r===t)return e;let i=[...e.ids],[a]=i.splice(t,1);return a===void 0?e:(i.splice(r,0,a),{ids:i,activeId:e.activeId})}function qu(e,t){let n=t instanceof Set?t:new Set(t),r=e.ids.filter(e=>n.has(e));return r.length===e.ids.length?e:{ids:r,activeId:e.activeId&&r.includes(e.activeId)?e.activeId:r[r.length-1]??null}}function Ju(e,t){if(e.ids.length===0)return e;let n=e.activeId?e.ids.indexOf(e.activeId):-1,r=n===-1?0:n,i=e.ids.length,a=((r+t)%i+i)%i,o=e.ids[a];return o?Wu(e,o):e}function Yu(e,t={},n={}){let r=[],i=[],a={},o={};for(let s of e.ids){let e=n[s];if(e){i.push(s),e.title&&(a[s]=e.title);continue}r.push(s);let c=t[s];c&&(o[s]=c)}return{openTabs:r,draftTabs:i,draftTitles:a,activeTab:e.activeId,remoteTabs:o}}function Xu(e){let t=e?.remoteTabs;if(!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&r.length>0&&(n[e]=r);return n}function Zu(e){let t=e?.draftTabs??[],n=e?.draftTitles??{},r=[];for(let e of t){if(typeof e!=`string`||e.length===0)continue;let t=n[e];r.push({id:e,title:typeof t==`string`&&t.length>0?t:null})}return r}function Qu(e){return Hu([...e.openTabs??[],...e.draftTabs??[]],e.activeTab??null)}function $u(e,t){if(e.length!==t.length)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!0;return!1}function ed(e,t){for(let n of new Set([...Object.keys(e),...Object.keys(t)]))if(e[n]!==t[n])return!0;return!1}function td(e,t,n,r={}){let i=Yu(e,n??{},r);return!!($u(t.openTabs??[],i.openTabs)||$u(t.draftTabs??[],i.draftTabs)||ed(t.draftTitles??{},i.draftTitles)||(t.activeTab??null)!==e.activeId||n&&ed(t.remoteTabs??{},i.remoteTabs))}function nd(e){return!e||e.text.length===0&&e.attachments.length===0}function rd(e,t){return!e||e.text!==t.text||e.attachments.length!==t.attachments.length?!1:e.attachments.every((e,n)=>e===t.attachments[n])}function id(e,t,n){if(nd(n)){if(e[t]===void 0)return e;let{[t]:n,...r}=e;return r}return rd(e[t],n)?e:{...e,[t]:n}}function ad(e,t){let n=Object.keys(e);if(n.length===0)return e;let r=new Set(t);if(n.every(e=>r.has(e)))return e;let i={};for(let t of n)r.has(t)&&(i[t]=e[t]);return i}function od(e=500){let t=sd(e);return{size:t,rendered:t}}function sd(e){return Number.isFinite(e)?Math.max(1,Math.round(e)):500}function cd(e,t){let n=sd(t);return e.size===n&&e.rendered===n?e:{size:n,rendered:n}}function ld(e,t,n=100){let r=Math.max(0,Math.floor(t)),i=Math.max(1,Math.floor(n));if(e.rendered>=r)return e;let a=Math.min(r,e.rendered+i);return a===e.rendered?e:{size:e.size,rendered:a}}function ud(e,t,n){let r=Math.min(Math.max(0,Math.floor(n)),Math.max(0,Math.floor(t)));return r<=e.rendered?e:{size:e.size,rendered:r}}function dd(e){return e.rendered===e.size?e:{size:e.size,rendered:e.size}}function fd(e,t){let n=e.length,r=Math.min(n,Math.max(t.size,t.rendered)),i=Math.max(0,n-r);return{start:i,items:i===0?e.slice():e.slice(i),hiddenAbove:i,hasMore:i>0,total:n}}function pd(e,t=48){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function md(e,t=24){return e.scrollTop<=t}var hd=2e3;function gd(e,t=hd,n=Date.now){let r=-1/0,i=null,a=()=>{i=null,r=n(),e()};return{request(){if(i!==null)return;let e=r+t-n();e<=0?a():i=setTimeout(a,e)},dispose(){i!==null&&(clearTimeout(i),i=null)}}}var _d=3e3;function vd(e){let{balance:t}=e.credits;if(typeof e.credits.plan!=`number`&&typeof e.credits.topup!=`number`)return{balance:t,plan:null,topup:null,hasSplit:!1};let n=e.credits.plan??Math.max(0,t-(e.credits.topup??0));return{balance:t,plan:n,topup:e.credits.topup??Math.max(0,t-n),hasSplit:!0}}function yd(e){return e.credits.monthlyGrant>0?e.credits.monthlyGrant:_d}function bd(e){if(!e)return`ok`;let{balance:t}=e.credits;return t<=0?`empty`:t<=yd(e)*.1?`low`:`ok`}function xd(e){if(!e)return null;let t=bd(e);if(t===`ok`)return null;let n=Sd(e.credits.balance);return t===`empty`?{level:t,text:`No credits left — a priced model will be refused. Free models still run, on every plan.`}:{level:t,text:`Running low: ${n} credits left. Free models still run, on every plan.`}}function Sd(e){return e.toLocaleString(`en-US`,{maximumFractionDigits:0})}function Cd(e,t){return!t||t.providerId!==`oonacode`?!1:(t.poolCredits??0)!==(e?.providerId===`oonacode`?e.poolCredits??0:0)}var wd=[`desktop`,`host`,`cli`,`engine`],Td={desktop:`Desktop app`,host:`Host service`,cli:`oona CLI`,engine:`Agent engine`},Ed={available:!1,components:[],version:``,channel:``,publishedAt:``,notes:``},G=/(\d+(?:\.\d+)*(?:[-+][0-9A-Za-z.-]+)?)\s*$/;function Dd(e){return typeof e.version==`string`&&e.version.trim()?e.version.trim():G.exec(e.name??``)?.[1]??null}function Od(e){let[t=``,n=``]=(e.trim().replace(/^v/i,``).split(`+`)[0]??``).split(`-`,2);return{nums:t.split(`.`).map(e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0}).filter((e,t)=>t<4),pre:n?n.split(`.`):[]}}function kd(e,t){let n=Od(e),r=Od(t),i=Math.max(n.nums.length,r.nums.length);for(let e=0;e<i;e++){let t=n.nums[e]??0,i=r.nums[e]??0;if(t!==i)return t<i?-1:1}if(n.pre.length===0&&r.pre.length===0)return 0;if(n.pre.length===0)return 1;if(r.pre.length===0)return-1;let a=Math.max(n.pre.length,r.pre.length);for(let e=0;e<a;e++){let t=n.pre[e],i=r.pre[e];if(t===i)continue;if(t===void 0)return-1;if(i===void 0)return 1;let a=Number.parseInt(t,10),o=Number.parseInt(i,10);return Number.isFinite(a)&&Number.isFinite(o)&&/^\d+$/.test(t)&&/^\d+$/.test(i)?a<o?-1:1:t<i?-1:1}return 0}function Ad(e,t){return!e||!t?!1:kd(e,t)===1}function jd(e){if(typeof e!=`object`||!e)return null;let t=e,n=typeof t.version==`string`?t.version:``;if(!n)return null;let r=Array.isArray(t.assets)?t.assets.filter(e=>typeof e==`object`&&!!e):[];return{version:n,channel:typeof t.channel==`string`?t.channel:`stable`,publishedAt:typeof t.publishedAt==`string`?t.publishedAt:``,notes:typeof t.notes==`string`?t.notes:``,assets:r}}function Md(e,t){if(!e||!e.version)return Ed;let n=new Map;for(let t of e.assets??[]){let e=typeof t?.kind==`string`?t.kind:``;!e||n.has(e)||n.set(e,t)}let r=[];for(let i of wd){let a=t[i];if(typeof a!=`string`||!a.trim())continue;let o=n.get(i),s=(o?Dd(o):null)??(i===`desktop`?e.version:null);!s||!Ad(s,a)||r.push({component:i,label:Td[i],current:a.trim(),latest:s,url:o?.url?o.url:null,notes:typeof o?.notes==`string`?o.notes:``})}return{available:r.length>0,components:r,version:e.version,channel:e.channel,publishedAt:e.publishedAt,notes:e.notes}}function Nd(e,t=null){return!e||!e.trim()?null:`${e.trim().replace(/\/+$/,``)}${Ws(t)}`}function Pd(e){return e.bridge?.appChannel??e.info?.cliChannel??`stable`}function Fd(e,t){return Gs(e,t)}var Id={phase:`idle`,version:``,percent:0,transferred:0,total:0,bytesPerSecond:0,error:``,notice:``};function Ld(e){return e===`ready`||e===`installing`}function Rd(e,t){let n=t.version||e.version;switch(t.phase){case`checking`:return Ld(e.phase)?e:{...Id,phase:`checking`,version:n};case`available`:return Ld(e.phase)?e:{...Id,phase:`available`,version:n};case`not-available`:return Ld(e.phase)?e:{...Id,version:n};case`downloading`:return{...Id,phase:`downloading`,version:n,percent:Math.max(0,Math.min(100,t.percent)),transferred:t.transferred,total:t.total,bytesPerSecond:t.bytesPerSecond};case`downloaded`:return{...Id,phase:`ready`,version:n,percent:100};case`installing`:return{...Id,phase:`installing`,version:n,percent:100,notice:t.message||(e.phase===`installing`?e.notice:``)};case`error`:return{...Id,phase:`error`,version:n,error:t.message}}}function zd(e){switch(e.install.phase){case`ready`:case`installing`:return`ready`;case`downloading`:return`downloading`;case`available`:return`available`;default:return e.manifestAvailable?`available`:`idle`}}var Bd=[`B`,`KB`,`MB`,`GB`];function Vd(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=e,n=0;for(;t>=1024&&n<Bd.length-1;)t/=1024,n+=1;return`${t>=10||n===0?Math.round(t):t.toFixed(1)} ${Bd[n]}`}function Hd(e){return!Number.isFinite(e)||e<=0?``:`${Vd(e)}/s`}var Ud=[`host`,`cli`,`engine`];function Wd(e,t,n={}){let r=e.length>0,i=n.shellEngaged===!0||e.includes(`desktop`)||!r&&!n.checked,a=r&&e.some(e=>Ud.includes(e)),o=i&&t.desktop,s=a&&t.terminal,c=e.filter(e=>e===`desktop`?i&&!o:a&&!s),l=!i&&!a;return{terminal:s,desktop:o,manual:c,upToDate:l,label:l?`Up to date`:s&&o?`Update everything`:o?`Update and relaunch`:s?`Update now`:`How to update`}}function Gd(e,t){return e===`desktop`?t.desktop?`Downloads here, then OonaCode restarts`:`Run the installer from the website`:t.terminal?`Installed by the oona installer — updated from here`:"Run `oona update` in a terminal"}var Kd={running:!1,message:``,failed:!1};function qd(e,t){switch(e){case`agentFinished`:return t.notifications.agentFinished;case`permissionRequired`:return t.notifications.permissionRequired;case`errorOccurred`:return t.notifications.errorOccurred;default:return!1}}function Jd(e,t){let n=t.sessionTitle||`OonaCode`,r=e=>t.sessionId?{...e,sessionId:t.sessionId}:e;switch(e){case`permissionRequired`:return t.toolName===`AskUserQuestion`?r({title:`Question for you`,body:`${n} — the agent is asking you a question.`,focusOnClick:!0}):r({title:`Permission required`,body:`${n} — the agent wants to run ${t.toolName??`a tool`}.`,focusOnClick:!0});case`errorOccurred`:return r({title:`OonaCode error`,body:`${n} — ${t.detail??`the agent reported an error`}.`,focusOnClick:!0});default:return r({title:t.isError?`Agent needs attention`:`Agent finished`,body:t.isError?`${n} — the turn ended with an error.`:`${n} — turn complete.`,focusOnClick:!0,silent:!t.isError})}}async function Yd(e,t={}){if(t.documentHasFocus?.()===!0)return!1;if(t.bridgeNotify)try{return await t.bridgeNotify(e)}catch{return!1}let n=t.browser;if(!n)return!1;try{if(n.permission===`granted`||n.permission==="default"&&n.requestPermission&&await n.requestPermission()===`granted`)return n.create(e.title,{body:e.body,silent:e.silent===!0}),!0}catch{}return!1}function Xd(){if(typeof window>`u`)return{};let e=window.oonacode,t=globalThis.Notification;return{bridgeNotify:e?.notify?t=>e.notify(t):void 0,browser:t?{permission:t.permission,create:(e,n)=>{new t(e,n)},requestPermission:()=>t.requestPermission()}:void 0,documentHasFocus:()=>typeof document<`u`&&typeof document.hasFocus==`function`&&document.hasFocus()}}var Zd=o((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})),K=o(((e,t)=>{t.exports=Zd()}))(),Qd=2e3,$d=2500;function ef(){return{connection:{status:`idle`,detail:null,hostName:null,hostId:null,appVersion:null},info:null,bundleAppVersion:null,hostUpdatedTo:null,sessions:[],sessionLinks:{},sessionsTotal:0,sessionsLoading:!1,sessionsError:null,sessionListLoaded:!1,search:``,projects:[],vaultProjects:[],assignProjectSessionId:null,projectsStartNew:!1,currentSessionId:null,tabs:Hu(),drafts:{},pendingRouting:{},transcripts:{},transcriptLoading:{},files:{},unsent:{},composerQuote:null,windows:{},modelBoundaries:{},providers:[],activeProviderId:null,models:{},settings:null,prefs:{...Ys},prefsBackend:`unknown`,account:null,plan:null,accountLoaded:!1,accountLink:null,emailVerification:null,recoveryKey:null,credentials:[],claudeSubscription:null,claudeLogin:null,oauthLogin:null,engineDownload:null,importProgress:null,doctor:null,remote:{hosts:[],supported:!0,loading:!1,loaded:!1,sessions:{},sessionOwners:{},tabs:{},reason:null,stale:!1},update:Ed,updateChecking:!1,updateInstall:Id,terminalUpdate:Kd,updateDismissed:null,toasts:[],ui:{sidebarOpen:!0,dialog:`none`,connectProviderId:null,claudeLoginMode:null,oauthLoginProviderId:null,settingsSection:null}}}function tf(e,t){if(t===e.tabs&&t.activeId===e.currentSessionId)return e;let n=e.drafts;for(let r of e.tabs.ids)t.ids.includes(r)||e.drafts[r]===void 0||(n===e.drafts&&(n={...n}),delete n[r]);return{...e,tabs:t,drafts:n,unsent:ad(e.unsent,t.ids),currentSessionId:t.activeId}}function nf(e,t){return e.windows[t]??od(e.prefs.transcriptWindowSize)}function rf(e,t){let n=Object.entries(e);if(n.length===0)return e;let r=!1,i={};for(let[e,a]of n){let n=cd(a,t);n!==a&&(r=!0),i[e]=n}return r?i:e}function af(e,t){return{...e,prefs:t,windows:rf(e.windows,t.transcriptWindowSize)}}function of(e,t){switch(t.type){case`connection`:return{...e,connection:{...e.connection,status:t.status,detail:t.detail??null}};case`welcome`:return{...e,connection:{...e.connection,hostName:t.hostName,hostId:t.hostId,appVersion:t.appVersion}};case`info`:{let n=t.info.account??null,r=e.bundleAppVersion??t.info.appVersion;return{...e,info:t.info,bundleAppVersion:r,hostUpdatedTo:t.info.appVersion===r?null:t.info.appVersion,activeProviderId:t.info.activeProviderId,account:n??e.account,accountLoaded:e.accountLoaded||n!==null,accountLink:n?.link??e.accountLink,connection:{...e.connection,hostName:t.info.hostName,hostId:t.info.hostId,appVersion:t.info.appVersion}}}case`sessions`:return{...e,sessions:t.sessions,sessionsTotal:t.total,sessionsLoading:!1,sessionsError:null,sessionListLoaded:!0,...t.links?{sessionLinks:Object.fromEntries(t.links.map(e=>[e.sessionId,e]))}:{}};case`session_link`:{let n={...e.sessionLinks};return t.link?n[t.sessionId]=t.link:delete n[t.sessionId],{...e,sessionLinks:n}}case`sessions_loading`:return{...e,sessionsLoading:t.loading};case`sessions_error`:return{...e,sessionsError:t.error,sessionsLoading:!1};case`search`:return{...e,search:t.value};case`session_upsert`:{let n=e.sessions.findIndex(e=>e.id===t.session.id),r=n>=0?e.sessions.map(e=>e.id===t.session.id?t.session:e):[t.session,...e.sessions],i=e.transcripts[t.session.id],a=n>=0?e.sessions[n]:void 0,o=a!==void 0&&a.cwd!==t.session.cwd,s=i&&o?ll(i,{type:`local_system`,subtype:`workspace`,text:`Workspace changed to ${t.session.cwd} — the engine restarts there on your next message; the conversation continues.`}):i,c=s?{...e.transcripts,[t.session.id]:ll(s,{type:`session`,session:t.session})}:e.transcripts;return{...e,sessions:r,sessionsTotal:n>=0?e.sessionsTotal:e.sessionsTotal+1,transcripts:c}}case`file_open`:{let n=e.files[t.sessionId]??{open:[],active:null},r=n.open.includes(t.path)?n.open:[...n.open,t.path];return{...e,files:{...e.files,[t.sessionId]:{open:r,active:t.path}}}}case`file_close`:{let n=e.files[t.sessionId];if(!n||!n.open.includes(t.path))return e;let r=n.open.indexOf(t.path),i=n.open.filter(e=>e!==t.path),a=n.active===t.path?i[Math.min(r,i.length-1)]??null:n.active;return{...e,files:{...e.files,[t.sessionId]:{open:i,active:a}}}}case`file_show_chat`:{let n=e.files[t.sessionId];return!n||n.active===null?e:{...e,files:{...e.files,[t.sessionId]:{...n,active:null}}}}case`file_activate`:{let n=e.files[t.sessionId];return!n||!n.open.includes(t.path)||n.active===t.path?e:{...e,files:{...e.files,[t.sessionId]:{...n,active:t.path}}}}case`session_removed`:{let{[t.id]:n,...r}=e.transcripts,{[t.id]:i,...a}=e.files,{[t.id]:o,...s}=e.windows,{[t.id]:c,...l}=e.pendingRouting,{[t.id]:u,...d}=e.remote.tabs,{[t.id]:f,...p}=e.remote.sessionOwners,{[t.id]:m,...h}=e.prefs.remoteTabs,g={...e,sessions:e.sessions.filter(e=>e.id!==t.id),sessionsTotal:Math.max(0,e.sessionsTotal-1),transcripts:r,windows:s,files:a,pendingRouting:l,remote:{...e.remote,tabs:d,sessionOwners:p,sessions:Object.fromEntries(Object.entries(e.remote.sessions).map(([e,n])=>[e,Array.isArray(n)?n.filter(e=>e.id!==t.id):n]))},prefs:{...e.prefs,remoteTabs:h}};return tf(g,Gu(g.tabs,t.id))}case`projects`:return{...e,projects:t.projects};case`vault_projects`:return{...e,vaultProjects:t.projects};case`assign_project_dialog`:return{...e,assignProjectSessionId:t.sessionId,ui:{...e.ui,dialog:t.sessionId?`assign-project`:`none`}};case`select_session`:{let n={...e,ui:{...e.ui,dialog:`none`}};return t.id===null?{...n,currentSessionId:null}:tf(n,Uu(n.tabs,t.id))}case`close_tab`:return tf(e,Gu(e.tabs,t.id));case`unsent`:{if(!e.tabs.ids.includes(t.sessionId)||t.onlyIfEmpty&&!nd(e.unsent[t.sessionId]))return e;let n=id(e.unsent,t.sessionId,t.message);return n===e.unsent?e:{...e,unsent:n}}case`composer_quote`:return{...e,composerQuote:{sessionId:t.sessionId,text:t.text,seq:(e.composerQuote?.seq??0)+1}};case`move_tab`:return tf(e,Ku(e.tabs,t.from,t.to));case`cycle_tab`:return tf(e,Ju(e.tabs,t.delta));case`restore_tabs`:{let n=e.tabs.ids.filter(e=>!t.ids.includes(e)),r={...e.drafts},i=new Set(e.sessions.map(e=>e.id));for(let e of t.drafts)!r[e.id]&&!i.has(e.id)&&(r[e.id]=e);let a=e.currentSessionId??t.activeId;return tf({...e,drafts:r},Hu([...t.ids,...n],a))}case`draft_open`:return tf({...e,drafts:{...e.drafts,[t.draft.id]:t.draft}},Uu(e.tabs,t.draft.id));case`draft_patch`:{let n=e.drafts[t.id];return n?{...e,drafts:{...e.drafts,[t.id]:{...n,...t.patch}}}:e}case`draft_materialized`:{if(!e.drafts[t.id])return e;let{[t.id]:n,...r}=e.drafts;return{...e,drafts:r}}case`pending_routing`:if(t.routing===null){if(!e.pendingRouting[t.sessionId])return e;let{[t.sessionId]:n,...r}=e.pendingRouting;return{...e,pendingRouting:r}}return{...e,pendingRouting:{...e.pendingRouting,[t.sessionId]:t.routing}};case`transcript`:{let n=e.transcripts[t.sessionId]??ol(t.sessionId),r=ll(n,t.action);if(r===n)return e;let i={...e,transcripts:{...e.transcripts,[t.sessionId]:r}};if(r.items.length>n.items.length){let e=nf(i,t.sessionId),n=dd(e);if(n!==e||i.windows[t.sessionId]===void 0)return{...i,windows:{...i.windows,[t.sessionId]:n}}}return i}case`transcript_loading`:return{...e,transcriptLoading:{...e.transcriptLoading,[t.sessionId]:t.loading}};case`window_grow`:{let n=nf(e,t.sessionId),r=ld(n,t.total);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_reveal`:{let n=nf(e,t.sessionId),r=ud(n,t.rendered,t.total);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_trim`:{let n=nf(e,t.sessionId),r=dd(n);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_size`:{let n={};for(let[r,i]of Object.entries(e.windows))n[r]=cd(i,t.size);return{...e,windows:n}}case`model_boundary`:return{...e,modelBoundaries:{...e.modelBoundaries,[t.sessionId]:t.boundary}};case`providers`:return{...e,providers:t.providers,activeProviderId:t.activeProviderId};case`active_provider`:return{...e,activeProviderId:t.activeProviderId};case`models`:return{...e,models:{...e.models,[t.providerId]:t.response}};case`settings`:{let n={...e,settings:t.settings};return t.settings.uiPrefs&&(n=af(n,ac(t.settings.uiPrefs)),n.prefsBackend=`brain`),n}case`prefs`:return af(e,t.prefs);case`prefs_backend`:return{...e,prefsBackend:t.backend};case`plan`:return{...e,plan:t.plan};case`account`:return{...e,account:t.account,accountLoaded:!0,accountLink:t.account.link??e.accountLink,emailVerification:t.account.loggedIn?null:e.emailVerification};case`account_unavailable`:return e.accountLoaded?e:{...e,accountLoaded:!0};case`account_link`:return{...e,accountLink:t.link};case`email_verification`:return{...e,emailVerification:t.pending};case`recovery_key`:return{...e,recoveryKey:t.recoveryKey};case`credentials`:return{...e,credentials:t.credentials};case`claude_subscription`:return{...e,claudeSubscription:t.status};case`claude_login`:return{...e,claudeLogin:t.state};case`oauth_login`:return{...e,oauthLogin:t.state};case`oauth_login_provider`:return{...e,ui:{...e.ui,oauthLoginProviderId:t.providerId}};case`engine_download`:return{...e,engineDownload:t.state};case`import_progress`:return{...e,importProgress:t.progress};case`doctor`:return{...e,doctor:t.checks};case`remote_hosts`:{let n=e.remote.tabs;for(let r of t.hosts){let t=r.label||r.hostName;for(let[i,a]of Object.entries(n))a.hostId===r.hostId&&a.hostName!==t&&(n===e.remote.tabs&&(n={...n}),n[i]={...a,hostName:t})}return{...e,remote:{...e.remote,hosts:t.hosts,tabs:n,loading:!1,loaded:!0,reason:t.reason??null,stale:t.stale??!1}}}case`remote_unsupported`:return{...e,remote:{...e.remote,supported:!1,loading:!1,loaded:!0}};case`remote_loading`:return{...e,remote:{...e.remote,loading:t.loading}};case`remote_loaded`:return{...e,remote:{...e.remote,loading:!1,loaded:!0}};case`remote_sessions`:{let n={...e.remote.sessionOwners};for(let e of t.sessions)n[e.id]=t.hostId;return{...e,remote:{...e.remote,sessions:{...e.remote.sessions,[t.hostId]:t.sessions},sessionOwners:n}}}case`remote_tab`:return{...e,remote:{...e.remote,tabs:{...e.remote.tabs,[t.tab.sessionId]:t.tab},sessionOwners:{...e.remote.sessionOwners,[t.tab.sessionId]:t.tab.hostId}}};case`remote_tab_state`:{let n=e.remote.tabs[t.sessionId];if(!n)return e;let r={...n,state:t.state,detail:t.detail,live:t.state===`attached`,...t.pairingId===void 0?{}:{pairingId:t.pairingId}};return{...e,remote:{...e.remote,tabs:{...e.remote.tabs,[t.sessionId]:r}}}}case`remote_tab_closed`:{if(!e.remote.tabs[t.sessionId])return e;let{[t.sessionId]:n,...r}=e.remote.tabs;return{...e,remote:{...e.remote,tabs:r}}}case`update_status`:return{...e,update:t.status,updateChecking:!1};case`update_checking`:return{...e,updateChecking:t.checking};case`update_event`:{let n=Rd(e.updateInstall,t.event),r=n.phase===`downloading`&&e.ui.dialog===`none`?`update`:e.ui.dialog;return{...e,updateInstall:n,ui:e.ui.dialog===r?e.ui:{...e.ui,dialog:r}}}case`terminal_update`:{let n=t.terminal.running&&e.ui.dialog===`none`?`update`:e.ui.dialog;return{...e,terminalUpdate:t.terminal,ui:e.ui.dialog===n?e.ui:{...e.ui,dialog:n}}}case`update_dismissed`:return{...e,updateDismissed:t.version};case`toast`:{let n=e.toasts.filter(e=>e.id!==t.toast.id);return{...e,toasts:[...n.slice(-4),t.toast]}}case`dismiss_toast`:return{...e,toasts:e.toasts.filter(e=>e.id!==t.id)};case`sidebar`:return{...e,ui:{...e.ui,sidebarOpen:t.open}};case`projects_new`:return{...e,projectsStartNew:!0};case`dialog`:return{...e,projectsStartNew:t.dialog===`projects`&&e.projectsStartNew,ui:{...e.ui,dialog:t.dialog,claudeLoginMode:t.dialog===`claude-login`?e.ui.claudeLoginMode:null,oauthLoginProviderId:t.dialog===`oauth-login`?e.ui.oauthLoginProviderId:null,connectProviderId:t.connectProviderId??null}};case`connect_provider`:return{...e,ui:{...e.ui,connectProviderId:t.providerId}};case`claude_login_mode`:return{...e,ui:{...e.ui,claudeLoginMode:t.mode}};case`settings_section`:return{...e,ui:{...e.ui,settingsSection:t.section}}}}function sf(e){return e.type===`subagent_activity`||e.type===`agent`&&ee(e.message)}function cf(){return typeof document<`u`&&document.visibilityState===`hidden`}function lf(e,t){switch(e.type){case`welcome`:return[{type:`welcome`,hostName:e.hostName,hostId:e.hostId,appVersion:e.appVersion}];case`agent`:case`permission_request`:case`permission_resolved`:case`turn_started`:case`turn_finished`:case`prompt_delivered`:case`subagent_activity`:case`prompt_cancelled`:return[{type:`transcript`,sessionId:e.sessionId,action:{type:`frame`,frame:e,receivedAt:t}}];case`session_state`:return[{type:`session_upsert`,session:e.session},{type:`transcript`,sessionId:e.session.id,action:{type:`frame`,frame:e,receivedAt:t}}];case`claude_login`:return[{type:`claude_login`,state:e.state}];case`engine_download`:return[{type:`engine_download`,state:e.state}];case`import_progress`:return[{type:`import_progress`,progress:e.finished?null:e}];case`pool_notice`:{let t=e.retryAfterSec?` Retrying by itself in ${e.retryAfterSec} s.`:``;return[{type:`toast`,toast:{id:`t-pool-${e.code}`,kind:`info`,text:`${e.message}${t}`}}]}case`error`:return e.sessionId?[{type:`transcript`,sessionId:e.sessionId,action:{type:`frame`,frame:e,receivedAt:t}}]:[{type:`toast`,toast:{id:`t-${t}`,kind:`error`,text:`${e.code}: ${e.message}`}}];default:return[]}}var uf=36e5,df=1500;function ff(e,t,n){if(e.type===`welcome`)return[];let r=`sessionId`in e?e.sessionId:e.type===`session_state`?e.session.id:void 0;return typeof r==`string`&&r!==t?[]:lf(e,n)}function pf(e,t){return e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)}var mf=(0,v.createContext)(null);function q(){let e=(0,v.useContext)(mf);if(!e)throw Error(`useApp must be used inside <AppProvider>`);return e}function hf(){let{state:e}=q();return e.currentSessionId?e.transcripts[e.currentSessionId]??null:null}function gf(){let{state:e}=q(),t=e.currentSessionId;return t?e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)??null:null}function _f(){let{state:e}=q(),t=e.currentSessionId;return t?e.drafts[t]??null:null}function vf(){return typeof window<`u`&&window.oonacode?`desktop`:`host`}var yf=0;function bf(e){return e.status===401&&/password|credential/i.test(e.message)}function xf(){try{return typeof window<`u`?window.localStorage:null}catch{return null}}function Sf({api:e,socket:t,relay:n=null,initialSessionId:r,onUnauthorized:i,storage:a,fetchImpl:o,reportError:s,streamBatchMs:c=Zc(),children:l}){let[u,d]=(0,v.useReducer)(of,void 0,ef),f=(0,v.useRef)(u),p=(0,v.useRef)(!1),m=u.updateInstall.phase,h=u.terminalUpdate.running;(0,v.useEffect)(()=>{h||m!==`downloading`&&m!==`installing`&&(p.current=!1)},[m,h]),f.current=u;let g=(0,v.useRef)(i);g.current=i;let _=(0,v.useRef)(s);_.current=s;let y=(0,v.useRef)(a);y.current=a===void 0?xf():a;let b=(0,v.useRef)(o);b.current=o;let x=(0,v.useRef)(null),S=(0,v.useRef)({tail:Promise.resolve(),latest:0}),C=(0,v.useRef)(new Set),w=(0,v.useRef)(new Set),T=(0,v.useRef)(new Map),E=(0,v.useRef)(new Map),D=(0,v.useRef)(()=>{}),O=(0,v.useRef)(null);O.current===null&&(O.current=gd(()=>D.current())),(0,v.useEffect)(()=>()=>O.current?.dispose(),[]);let k=(0,v.useMemo)(()=>{let r=(e,t)=>{yf+=1,d({type:`toast`,toast:{id:`toast-${yf}`,kind:e,text:t}})},i=(e,t)=>{if(e instanceof Gc&&e.isUnauthorized&&!bf(e)){g.current?.();return}let n=t?`${t}: ${Ou(e)}`:Ou(e);r(`error`,n),_.current?.(e,{source:`action`,...t?{action:t}:{}})},a=e=>r(`error`,`This host build cannot ${e} yet — update OonaCode on this PC`),o=()=>f.current.currentSessionId,s=e=>typeof e==`string`?f.current.drafts[e]??null:null,l=e=>Iu(f.current.drafts,e),u=async t=>{d({type:`sessions_loading`,loading:!0});try{let n=(t??f.current.search).trim(),r=await e.listSessions(n?{search:n,limit:200,links:!0}:{limit:200,links:!0});d({type:`sessions`,sessions:r.sessions,total:r.total,...r.links?{links:r.links}:{}})}catch(e){d({type:`sessions_error`,error:Ou(e)}),i(e,`Sessions`)}},m=async()=>{try{d({type:`vault_projects`,projects:(await e.listVaultProjects()).projects})}catch{f.current.vaultProjects.length===0&&d({type:`vault_projects`,projects:[]})}},h=async()=>{try{d({type:`projects`,projects:(await e.listProjects()).projects})}catch(e){i(e,`Projects`)}await m()},v=async()=>{try{let t=await e.listProviders();d({type:`providers`,providers:t.providers,activeProviderId:t.activeProviderId})}catch(e){i(e,`Providers`)}},C=async t=>{try{d({type:`models`,providerId:t,response:await e.listModels({providerId:t})})}catch(e){i(e,`Models`)}},w=async(t,n,r)=>{try{let i=await e.setActiveProvider({providerId:t,...n?{model:n}:{},...r===void 0?{}:{variantId:r}});d({type:`active_provider`,activeProviderId:i.activeProviderId}),await v()}catch(e){i(e,`Provider`)}},k=async()=>{try{d({type:`settings`,settings:await e.getSettings()})}catch(e){i(e,`Settings`)}},A=async()=>{try{d({type:`account`,account:await e.getAccount()})}catch(e){d({type:`account_unavailable`}),i(e,`Account`)}},ee=async()=>{try{d({type:`credentials`,credentials:(await e.listCredentials()).credentials})}catch(e){if(e instanceof Gc&&(e.code===`vault_locked`||e.status===423)){d({type:`credentials`,credentials:[]});return}i(e,`Credentials`)}},j=async()=>{try{d({type:`claude_subscription`,status:await e.claudeSubscriptionStatus()})}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.(),d({type:`claude_subscription`,status:null})}},M=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginStart(t)})}catch(e){r(`error`,`Sign-in: ${Ou(e)}`)}},te=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginState(t)})}catch{}},ne=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginCancel(t)})}catch(e){r(`error`,`Sign-in: ${Ou(e)}`)}},N=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginState()})}catch{}},P=async()=>{try{let t=await e.claudeSubscriptionLogin();return t.login&&d({type:`claude_login`,state:t.login}),t}catch(e){return r(`error`,`Claude login: ${Ou(e)}`),null}},re=async t=>{try{return d({type:`claude_login`,state:await e.claudeLoginCode({code:t})}),!0}catch(e){return r(`error`,`Claude login: ${Ou(e)}`),!1}},ie=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginCancel()})}catch(e){r(`error`,`Claude login: ${Ou(e)}`)}},ae=async()=>{try{let t=await e.info();x.current=t,d({type:`info`,info:t})}catch(e){i(e,`Host`)}},oe=async()=>{let t=(x.current??f.current.info)?.appVersion??``;for(let n=0;n<8;n++){try{let n=await e.info();if(x.current=n,d({type:`info`,info:n}),n.appVersion!==t)return}catch{}await new Promise(e=>setTimeout(e,df))}},se=async()=>{if(e.plan)try{let{plan:t}=await e.plan();d({type:`plan`,plan:t})}catch{d({type:`plan`,plan:null})}};D.current=()=>void se();let F=()=>{e.plan&&O.current?.request()},ce=async()=>{if(!e.listHosts||!f.current.remote.supported){d({type:`remote_loaded`});return}d({type:`remote_loading`,loading:!0});try{let t=await e.listHosts();d({type:`remote_hosts`,hosts:t.hosts,reason:t.reason??null,stale:t.stale??!1})}catch(e){Yc(e)?d({type:`remote_unsupported`}):(d({type:`remote_loaded`}),e instanceof Gc&&e.isUnauthorized&&g.current?.())}},le=async t=>{if(!e.listHostSessions)return null;try{let n=await e.listHostSessions(t);return d({type:`remote_sessions`,hostId:t,sessions:n.sessions}),n.sessions}catch(e){return Yc(e)?d({type:`remote_unsupported`}):i(e,`Remote sessions`),null}},ue=async e=>{await le(e)},de=e=>{let t=f.current;if(t.drafts[e]||t.remote.tabs[e]||T.current.has(e))return null;let n=t.remote.sessionOwners[e]??t.prefs.remoteTabs[e];if(!n)return null;let r=t.remote.hosts.find(e=>e.hostId===n);return r&&!r.isSelf?n:null},fe=e=>{if(e!==null){let t=de(e);if(t!==null){ve(t,e);return}}d({type:`select_session`,id:e})},pe=e=>e?f.current.remote.tabs[e]??null:null,me=(e,t)=>T.current.get(e)?.send(t)??!1,he=e=>{let t=pe(e);r(`error`,`${t?.hostName??`That PC`} is offline — this transcript is read-only until it comes back.`)},ge=async(t,n)=>{if(e.listHostSessionEntries){d({type:`transcript_loading`,sessionId:n,loading:!0});try{let r=await e.listHostSessionEntries(t,n,{limit:500,tail:1});r.entries.length>0&&d({type:`transcript`,sessionId:n,action:{type:`entries`,entries:r.entries}})}catch(e){e instanceof Gc&&e.isUnauthorized?g.current?.():Yc(e)||i(e,`Remote history`)}finally{d({type:`transcript_loading`,sessionId:n,loading:!1})}}},_e=e=>{E.current.get(e)?.dispose(),E.current.delete(e);let t=T.current.get(e);t&&(T.current.delete(e),t.detach(),d({type:`remote_tab_closed`,sessionId:e}))},ve=async(e,t,r={})=>{let i=f.current,a=i.remote.hosts.find(t=>t.hostId===e)??null,o=a?.label||a?.hostName||e,s=(i.remote.sessions[e]??[]).find(e=>e.id===t);if(r.draft||(s?d({type:`session_upsert`,session:s}):(async()=>{let n=(await le(e))?.find(e=>e.id===t);n&&d({type:`session_upsert`,session:n})})()),d({type:`remote_tab`,tab:{sessionId:t,hostId:e,hostName:o,pairingId:null,state:`unavailable`,detail:null,live:!1}}),r.focus!==!1&&d({type:`select_session`,id:t}),r.draft||ge(e,t),!n){d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:`This window cannot bridge to other PCs yet.`});return}T.current.get(t)?.detach(),E.current.get(t)?.dispose();let l=Qc({isStreamFrame:sf,deliver:e=>{for(let t of e)u(t)},batchMs:c,isHidden:cf});E.current.set(t,l);let u=e=>{let n=Date.now(),r=e.type===`session_state`?pf(f.current,e.session.id):void 0;for(let r of ff(e,t,n))d(r);e.type===`session_state`&&f.current.drafts[e.session.id]&&d({type:`draft_materialized`,id:e.session.id}),e.type===`session_state`&&Cd(r,e.session)&&F()},p=n.attach({hostId:e,sessionId:t,onFrame:e=>l.push(e),onState:e=>{if(d({type:`remote_tab_state`,sessionId:t,state:e.state,detail:e.detail,pairingId:e.pairingId}),e.state!==`attached`)return;let r=f.current.transcripts[t]?.lastSeq??0;n.send(e.pairingId,{type:`subscribe`,sessionId:t,afterSeq:r})}});T.current.set(t,p),d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:null,pairingId:p.pairingId})},ye=async t=>{let n=Bu(f.current.prefs,t);if(f.current={...f.current,prefs:n},d({type:`prefs`,prefs:n}),t.transcriptWindowSize!==void 0&&d({type:`window_size`,size:n.transcriptWindowSize}),f.current.prefsBackend===`local`){zu(y.current,n);return}let r=S.current,i=++r.latest,a=r.tail.then(async()=>{if(i===r.latest)try{let t=await e.updateSettings({uiPrefs:n});i===r.latest&&d({type:`settings`,settings:t}),t.uiPrefs?d({type:`prefs_backend`,backend:`brain`}):zu(y.current,n)}catch(e){if(Vu(e)){d({type:`prefs_backend`,backend:`local`}),zu(y.current,n);return}e instanceof Gc&&e.isUnauthorized?g.current?.():zu(y.current,n)}});r.tail=a.catch(()=>void 0),await a},be=async t=>{let[n,r]=await Promise.all([e.getSession(t),e.listMessages(t)]);d({type:`session_upsert`,session:n}),d({type:`transcript`,sessionId:t,action:{type:`hydrate`,messages:r.messages,session:n}})},xe=e=>{d({type:`session_upsert`,session:e}),fe(e.id),h()},Se=async t=>{try{let n=await e.createSession(t);return xe(n),n}catch(e){return i(e,`New session`),null}},Ce=(e={})=>{let t=ku(Nu()),n=e.title?Fu(e.title):null;d({type:`draft_open`,draft:{...t,...n?{title:n}:{},...e.projectId?{projectId:e.projectId}:{}}})},we=async e=>{let t=f.current.remote.hosts.find(t=>t.hostId===e)??null,n=t?.label||t?.hostName||`That PC`;if(t&&!t.online){r(`error`,`${n} is offline — a new chat has to start on a PC that is awake.`);return}let i=ku(Nu());d({type:`draft_open`,draft:i}),await ve(e,i.id,{draft:!0})},I=async n=>{let r=f.current,i=Sc(r.providers,{providerId:n.providerId??r.activeProviderId,model:n.model??r.info?.activeModel??null,variantId:n.variantId}),a={sessionId:n.id,...n.projectDir?{cwd:n.projectDir}:{},...n.projectId?{projectId:n.projectId}:{},...n.title?{title:n.title}:{},...i.providerId?{providerId:i.providerId}:{},...i.variantId?{variantId:i.variantId}:{},...i.modelId?{model:i.modelId}:{},permissionMode:n.permissionMode??r.settings?.defaultPermissionMode??`default`},o;try{o=await e.createSession(a)}catch(t){let r=await e.getSession(n.id).catch(()=>null);if(!r)throw t;o=r}return d({type:`session_upsert`,session:o}),d({type:`draft_materialized`,id:n.id}),t.subscribe(o.id),h(),o},Te=async()=>e.scanClaudeSessions(),Ee=async(t,n)=>{let r=await e.importClaudeSessions({...t&&t.length>0?{ids:t}:{},...n?{overwrite:!0}:{}});return r.imported.length>0&&(await u(),h()),r},De=async t=>{if(!e.sessionLink)return null;try{let{link:n}=await e.sessionLink(t);return d({type:`session_link`,sessionId:t,link:n}),n}catch{return d({type:`session_link`,sessionId:t,link:null}),null}},Oe=async t=>{if(!e.syncSessionDown)return null;try{let n=await e.syncSessionDown(t);return d({type:`session_link`,sessionId:t,link:n.link}),n.added>0&&(await u(),f.current.tabs.ids.includes(t)&&await be(t)),n}catch(e){return i(e,`Sync`),null}},L=async(e=!1)=>{let t=f.current,n=t.settings?.gatewayUrl??t.account?.gatewayUrl??null,i=typeof window<`u`?window.oonacode:void 0,a=Nd(n,Pd({bridge:i,info:t.info})),o=e&&i?.checkForUpdates?i.checkForUpdates():null;if(o&&o.catch(()=>void 0),!a){e&&!o&&r(`info`,`Set a gateway URL in Settings to check for updates`);return}d({type:`update_checking`,checking:!0});try{let o=i?.fetchLatestRelease?await i.fetchLatestRelease(n):await(async()=>{let e=await(b.current??(e=>fetch(e,{credentials:`omit`})))(a);if(!e.ok)throw Error(`release feed returned ${e.status}`);return e.json()})(),s=x.current??t.info,c=Md(jd(o),{desktop:i?.appVersion??null,host:s?.appVersion??t.connection.appVersion??null,cli:s?.cliVersion??null,engine:s?.engine.version??null});d({type:`update_status`,status:c}),e&&r(c.available?`info`:`success`,c.available?`OonaCode ${c.version} is available (${c.components.length} component${c.components.length===1?``:`s`})`:`Everything is up to date`)}catch(t){d({type:`update_checking`,checking:!1}),e&&r(`error`,`Update check failed: ${Ou(t)}`)}};return{refreshInfo:ae,refreshSessions:u,scanClaudeSessions:Te,importClaudeSessions:Ee,refreshSessionLink:De,syncSessionDown:Oe,refreshProjects:h,refreshProviders:v,refreshModels:C,refreshSettings:k,refreshAccount:A,refreshCredentials:ee,refreshClaudeSubscription:j,startClaudeLogin:P,submitClaudeLoginCode:re,cancelClaudeLogin:ie,refreshClaudeLogin:N,startOauthLogin:M,refreshOauthLogin:te,cancelOauthLogin:ne,refreshHosts:ce,refreshPlan:se,refreshPlanSoon:F,refreshHostSessions:ue,openRemoteSession:ve,newRemoteTab:we,async renameHost(t,n){if(!e.updateHost){r(`error`,`This host build cannot rename devices yet`);return}try{let i=await e.updateHost(t,{label:n});d({type:`remote_hosts`,hosts:f.current.remote.hosts.map(e=>e.hostId===t?i:e),reason:f.current.remote.reason,stale:f.current.remote.stale}),r(`success`,`Device renamed`)}catch(e){Yc(e)?d({type:`remote_unsupported`}):i(e,`Rename device`)}},async runDoctor(){d({type:`doctor`,checks:null});try{d({type:`doctor`,checks:(await e.doctor()).checks})}catch(e){i(e,`Doctor`)}},setSearch(e){d({type:`search`,value:e})},selectSession:fe,closeTab(e){_e(e),d({type:`close_tab`,id:e})},rememberUnsent(e,t,n){d({type:`unsent`,sessionId:e,message:t,onlyIfEmpty:n})},quoteIntoComposer(e,t){d({type:`composer_quote`,sessionId:e,text:t})},moveTab(e,t){d({type:`move_tab`,from:e,to:t})},cycleTab(e){d({type:`cycle_tab`,delta:e})},newTab:Ce,createSession:Se,async deleteSession(n){if(l(n)){d({type:`close_tab`,id:n});return}try{await e.deleteSession(n),t.unsubscribe(n),d({type:`session_removed`,id:n})}catch(e){i(e,`Delete`)}},async deleteRemoteSession(n,r){try{if(!e.deleteHostSession)throw Error(`this PC is running an older OonaCode that cannot delete a chat on another device`);await e.deleteHostSession(n,r),t.unsubscribe(r),d({type:`session_removed`,id:r})}catch(e){i(e,`Delete`)}},async renameSession(t,n){try{d({type:`session_upsert`,session:await e.updateSession(t,{title:n})})}catch(e){i(e,`Rename`)}},refreshVaultProjects:m,async createVaultProject(t,n){try{let r=await e.createVaultProject({name:t,instructions:n});return await m(),r}catch(e){return i(e,`Project`),null}},async updateVaultProject(t,n){try{let r=await e.updateVaultProject(t,n);return await m(),r}catch(e){return i(e,`Project`),null}},async deleteVaultProject(t){try{return await e.deleteVaultProject(t),await m(),await u(),!0}catch(e){return i(e,`Project`),!1}},async setSessionProject(t,n){if(l(t))return d({type:`draft_patch`,id:t,patch:{projectId:n}}),!0;try{return d({type:`session_upsert`,session:await e.updateSession(t,{projectId:n})}),!0}catch(e){return i(e,`Project`),!1}},openNewProject(){d({type:`projects_new`}),d({type:`dialog`,dialog:`projects`})},openAssignProject(e){d({type:`assign_project_dialog`,sessionId:e})},renameTab(t,n){let r=Fu(n);if(l(t)){d({type:`draft_patch`,id:t,patch:{title:r}});return}(async()=>{try{d({type:`session_upsert`,session:await e.updateSession(t,{title:r??``})})}catch(e){i(e,`Rename`)}})()},async forkSession(t){if(l(t)){Ce();return}try{let n=await e.forkSession(t,{});d({type:`session_upsert`,session:n}),fe(n.id)}catch(e){i(e,`Fork`)}},async sendPrompt(n,r=[],a){let c=o();if(!c)return!1;let l=`req-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,u=(e,t)=>(d({type:`transcript`,sessionId:c,action:{type:`frame`,frame:{type:`error`,sessionId:c,requestId:l,code:e,message:t}}}),d({type:`transcript`,sessionId:c,action:{type:`local_prompt_failed`,requestId:l}}),!1);d({type:`transcript`,sessionId:c,action:{type:`local_prompt`,requestId:l,text:n,attachments:r,at:new Date().toISOString()}}),d({type:`window_trim`,sessionId:c});let p=s(c);if(p!==null&&pe(c)!==null&&p)p.model&&me(c,{type:`set_model`,sessionId:c,model:p.model,...p.providerId?{providerId:p.providerId}:{},...p.variantId===null?{}:{variantId:p.variantId}}),p.permissionMode&&me(c,{type:`set_permission_mode`,sessionId:c,mode:p.permissionMode}),p.title&&me(c,{type:`set_title`,sessionId:c,title:p.title});else if(p)try{await I(p)}catch(e){return i(e,`New chat`),u(`session_create_failed`,Ou(e))}let m=f.current.pendingRouting[c];if(m&&(a={...a,providerId:m.providerId,model:a?.model??m.model,...m.variantId===void 0?{}:{variantId:m.variantId}},d({type:`pending_routing`,sessionId:c,routing:null})),pe(c))return me(c,{type:`prompt`,sessionId:c,requestId:l,text:n,...r.length>0?{attachments:r}:{},...a?{options:a}:{}})?!0:(he(c),u(`host_offline`,`That PC is offline — this transcript is read-only.`));try{t.status===`open`?t.prompt(c,n,{attachments:r,options:a,requestId:l}):await e.prompt(c,{text:n,attachments:r,options:a})}catch(e){return i(e,`Send`),u(`send_failed`,Ou(e))}return!0},respondPermission(e,n,i){let a=i??o();if(a&&!l(a)){if(!(pe(a)?me(a,{type:`permission_response`,sessionId:a,requestId:e,decision:n}):t.respondPermission(a,e,n))){r(`error`,`Not connected to the host — cannot answer the permission request`);return}d({type:`transcript`,sessionId:a,action:{type:`local_permission`,requestId:e,behavior:n.behavior}})}},async cancelQueued(t,n){let a=n??o();if(!(!a||l(a))){if(pe(a)){r(`info`,`Withdrawing a queued message is done on the PC that runs the chat`);return}try{(await e.cancelQueued(a,t)).cancelled?d({type:`transcript`,sessionId:a,action:{type:`frame`,frame:{type:`prompt_cancelled`,sessionId:a,requestId:t,text:``}}}):r(`info`,`The agent has already read that message`)}catch(e){i(e,`Withdraw`)}}},async interrupt(n){let r=n??o();if(r&&!l(r)){if(pe(r)){me(r,{type:`interrupt`,sessionId:r})||he(r);return}if(!t.interrupt(r))try{await e.interrupt(r)}catch(e){i(e,`Interrupt`)}}},setSessionModel(e,n,r){let i=o();if(!i)return;if(n&&w(n,e,r),s(i)){d({type:`draft_patch`,id:i,patch:{model:e,...n?{providerId:n}:{},...r===void 0?{}:{variantId:r}}});return}let a=f.current.sessions.find(e=>e.id===i),c=f.current.transcripts[i]?.session?.model??a?.model??null;n!==void 0&&a!==void 0&&n!==(a.providerId??null)||r!==void 0&&a!==void 0&&(r??null)!==(a.variantId??null)?d({type:`pending_routing`,sessionId:i,routing:{providerId:n??a?.providerId??``,model:e,...r===void 0?{}:{variantId:r}}}):pe(i)?me(i,{type:`set_model`,sessionId:i,model:e}):t.setModel(i,e),c!==e&&d({type:`model_boundary`,sessionId:i,boundary:{index:f.current.transcripts[i]?.items.length??0,from:c,to:e}}),a&&d({type:`session_upsert`,session:{...a,model:e,...n?{providerId:n}:{},...r===void 0?{}:{variantId:r}}})},setSessionPermissionMode(e){let n=o();if(!n)return;if(l(n)){d({type:`draft_patch`,id:n,patch:{permissionMode:e}});return}pe(n)?me(n,{type:`set_permission_mode`,sessionId:n,mode:e}):t.setPermissionMode(n,e);let r=f.current.sessions.find(e=>e.id===n);r&&d({type:`session_upsert`,session:{...r,permissionMode:e}})},setSessionEffort(e){let n=o();if(!n||l(n))return;pe(n)?me(n,{type:`set_effort`,sessionId:n,effort:e}):t.setEffort(n,e);let r=f.current.sessions.find(e=>e.id===n);if(r){let{effort:t,...n}=r;d({type:`session_upsert`,session:e?{...n,effort:e}:n})}},setActiveProvider:w,async inspectProject(t){if(!e.inspectProject)return null;try{return await e.inspectProject({dir:t})}catch(e){return Yc(e)||(e instanceof Gc&&e.isUnauthorized?g.current?.():i(e,`Folder`)),null}},async attachProject(t,n){let c=n??o();if(!c)return!1;if(s(c))return d({type:`draft_patch`,id:c,patch:{projectDir:t}}),!0;let l=pe(c);if(l)return r(`error`,`This chat runs on ${l.hostName} — choose its project folder in OonaCode on that PC.`),!1;if(!e.attachSessionProject)return a(`open a chat in one of your project folders`),!1;try{let n=await e.attachSessionProject(c,{dir:t});return d({type:`session_upsert`,session:n.session}),h(),r(`success`,n.appliesOnNextMessage?`Switched to ${n.session.cwd} — the turn in progress finishes where it started, and your next message runs there with that project's CLAUDE.md and settings`:n.restarted?`Switched to ${n.session.cwd} — this chat restarts with that project's CLAUDE.md and settings loaded, and continues where it left off`:`Switched to ${n.session.cwd} — the next message loads that project's CLAUDE.md and settings`),!0}catch(e){return Yc(e)?a(`open a chat in one of your project folders`):i(e,`Project folder`),!1}},async saveSettings(t){try{d({type:`settings`,settings:await e.updateSettings(t)}),r(`success`,`Settings saved`)}catch(e){i(e,`Settings`)}},savePrefs:ye,growTranscript(e,t){d({type:`window_grow`,sessionId:e,total:t})},revealTranscript(e,t,n){d({type:`window_reveal`,sessionId:e,rendered:t,total:n})},trimTranscript(e){d({type:`window_trim`,sessionId:e})},hydrateSession:be,async catchUpEntries(t){if(l(t))return;let n=pe(t);if(n){await ge(n.hostId,t);return}let r=f.current.transcripts[t],i=r?.lastSeq??void 0;if(i===void 0&&r?.hydrated){try{await be(t)}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.()}return}for(let n=0;n<200;n++){let n;try{n=await e.listEntries(t,{limit:500,...i===void 0?{}:{afterSeq:i}})}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.();return}if(n.entries.length>0&&d({type:`transcript`,sessionId:t,action:{type:`entries`,entries:n.entries}}),n.nextSeq===null||n.nextSeq===i)return;i=n.nextSeq}},checkUpdates:L,async installUpdate(){if(p.current)return;p.current=!0;let e=typeof window<`u`?window.oonacode:void 0,t=f.current,n=Wd(t.update.components.map(e=>e.component),{desktop:typeof e?.installUpdate==`function`,terminal:typeof e?.updateTerminalInstall==`function`},{checked:t.update.version!==``,shellEngaged:t.updateInstall.phase!==`idle`&&t.updateInstall.phase!==`checking`});if(n.upToDate){r(`success`,`Everything is up to date`),p.current=!1;return}let i=n.desktop;if(n.terminal&&e?.updateTerminalInstall){d({type:`terminal_update`,terminal:{running:!0,message:``,failed:!1}});try{let t=await e.updateTerminalInstall();if(d({type:`terminal_update`,terminal:{running:!1,message:t.message,failed:!t.ok}}),!t.ok){r(`error`,t.message),p.current=!1;return}t.absent?e.installUpdate&&(i=!0):(r(`success`,t.message),await oe(),await L(!1))}catch(e){let t=Ou(e);d({type:`terminal_update`,terminal:{running:!1,message:t,failed:!0}}),r(`error`,`Updating the CLI and host service failed: ${t}`),p.current=!1;return}}if(!i){n.manual.length>0&&r(`info`,`This window cannot install `+n.manual.map(e=>Td[e]).join(`, `)+" — run the installer from the website, or `oona update` in a terminal"),p.current=!1;return}if(!e?.installUpdate){r(`info`,"This window cannot install the app itself — run the installer again, or `oona update` in a terminal"),p.current=!1;return}try{let t=await e.installUpdate();r(t.started?`info`:`error`,t.message),t.started||(p.current=!1)}catch(e){r(`error`,`Update failed: ${Ou(e)}`),p.current=!1}},dismissUpdate(){let e=f.current.update.version||null;d({type:`update_dismissed`,version:e}),ye({dismissedUpdateVersion:e}),d({type:`dialog`,dialog:`none`})},async login(t){try{return d({type:`account`,account:await e.login(t)}),r(`success`,t.register?`Account created`:`Logged in`),ee(),v(),ce(),`ok`}catch(e){let n=il(e,{email:t.email,registered:t.register===!0});return n?(d({type:`email_verification`,pending:n}),`verification_pending`):(i(e,`Login`),`failed`)}},async startAccountLink(){if(!e.startAccountLink)return a(`sign in through your browser`),null;try{let t=await e.startAccountLink({clientKind:vf()});return d({type:`account_link`,link:t}),t.status===`error`&&r(`error`,t.message??`Could not start the sign-in`),t}catch(e){return Yc(e)?a(`sign in through your browser`):i(e,`Sign in`),null}},async refreshAccountLink(){if(e.accountLinkStatus)try{let t=await e.accountLinkStatus();d({type:`account_link`,link:t}),t.status===`approved`&&(A(),ee(),v())}catch(e){Yc(e)||i(e,`Sign in`)}},async cancelAccountLink(){if(!e.cancelAccountLink){d({type:`account_link`,link:{status:`idle`}});return}try{d({type:`account_link`,link:await e.cancelAccountLink()})}catch(e){d({type:`account_link`,link:{status:`idle`}}),Yc(e)||i(e,`Sign in`)}},async resendVerification(){let t=f.current.emailVerification;if(!t)return!1;try{let n=await e.resendVerification({email:t.email});return d({type:`email_verification`,pending:{...t,verification:`pending`,resendAt:nl(n.resendAfterSec,Date.now())}}),r(`success`,`Confirmation link sent to ${t.displayEmail}`),!0}catch(e){return Yc(e)?r(`error`,`This host build cannot resend the link yet — use "Resend" on the website sign-in page`):i(e,`Resend link`),!1}},dismissEmailVerification(){d({type:`email_verification`,pending:null})},async logout(){try{d({type:`account`,account:await e.logout()}),d({type:`credentials`,credentials:[]})}catch(e){i(e,`Logout`)}},async remoteUnlockHost(t,n){try{let i=await e.remoteUnlockHost(t,n);return i.ok?(r(`info`,`Device unlocked — its sessions are available again.`),ce(),!0):(r(`error`,i.error===`host_too_old`?`That PC runs an older OonaCode — update it first.`:i.error===`wrong_keys`?`Wrong password — the device stays locked.`:`Could not unlock: `+(i.error??`unknown`)),!1)}catch(e){return r(`error`,Ou(e)),!1}},async lockDevice(){try{let t=await e.lock();d({type:`account`,account:t})}catch(e){r(`error`,Ou(e))}},async unlock(t,n={}){try{return d({type:`account`,account:await e.unlock({password:t,...n.keepUnlocked===void 0?{}:{keepUnlocked:n.keepUnlocked}})}),ee(),!0}catch(e){return i(e,`Unlock`),!1}},async completeVaultRekey(t){if(!e.completeVaultRekey)return a(`finish a password reset`),!1;try{let n=await e.completeVaultRekey({password:t});return d({type:`account`,account:n.account}),d({type:`recovery_key`,recoveryKey:{code:n.recoveryCode,devicesSignedOut:n.devicesSignedOut,warning:n.warning??null}}),r(n.warning?`info`:`success`,n.warning?`Vault moved to your new password — with a warning, see your Recovery Key below`:`Vault moved to your new password`),ee(),v(),!0}catch(e){return Yc(e)?a(`finish a password reset`):i(e,`Move vault`),!1}},async revokeVaultRekey(t){if(!e.revokeVaultRekey)return a(`abandon a password reset`),!1;try{let n=await e.revokeVaultRekey({acknowledgeDataLoss:Ms,password:t});return d({type:`account`,account:n.account}),d({type:`credentials`,credentials:[]}),r(`info`,`Vault discarded — every saved key and ${n.discarded.historySessions} mirrored session(s) are gone. Unlock with your new password to start a fresh vault.`),!0}catch(e){return Yc(e)?a(`abandon a password reset`):i(e,`Discard vault`),!1}},dismissRecoveryKey(){d({type:`recovery_key`,recoveryKey:null})},async setDeviceUnlock(t,n){if(!e.setDeviceUnlock)return a(`keep itself unlocked`),!1;try{let i=await e.setDeviceUnlock({enabled:t,...n?{password:n}:{}});return d({type:`account`,account:i}),r(`success`,t?`This PC will stay unlocked after a restart`:`This PC will ask for your password after a restart`),!0}catch(e){return Yc(e)?a(`keep itself unlocked`):i(e,`Keep me unlocked`),!1}},async probeCredential(t,n){try{let r=await e.probeCredential(t,n);return{ok:r.ok,...r.error?{error:r.error}:{}}}catch(e){return{ok:!1,error:Ou(e)}}},async addCredential(t){try{return await e.addCredential(t),r(`success`,`Credential saved to your vault`),await ee(),v(),!0}catch(e){return i(e,`Add credential`),!1}},async deleteCredential(t){try{await e.deleteCredential(t),r(`info`,`Credential revoked on all devices`),await ee(),v()}catch(e){i(e,`Revoke`)}},async testCredential(t){try{let n=await e.testCredential(t);r(n.ok?`success`:`error`,n.ok?`Credential works (${n.latencyMs??`?`} ms)`:`Test failed: ${n.error??`unknown error`}`)}catch(e){i(e,`Test`)}},async testProvider(t){try{let n=await e.testProvider(t);r(n.ok?`success`:`error`,n.ok?`${t} reachable (${n.latencyMs??`?`} ms)`:`${t}: ${n.error??`test failed`}`),v()}catch(e){i(e,`Test`)}},async syncNow(){try{let t=await e.syncNow();r(t.ok?`success`:`error`,t.ok?`Vault synced (rev ${t.rev??`?`})`:`Sync failed: ${t.error??`unknown`}`),A(),ee()}catch(e){i(e,`Sync`)}},async claudeLogin(){d({type:`claude_login_mode`,mode:`open`}),d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`claude-login`})},toast:r,dismissToast(e){d({type:`dismiss_toast`,id:e})},openDialog(e,t){d({type:`dialog`,dialog:e,connectProviderId:t??null})},openProviderConnect(e){d({type:`connect_provider`,providerId:e})},openSettings(e){d({type:`settings_section`,section:e}),d({type:`dialog`,dialog:`settings`})},openClaudeLogin(e){d({type:`claude_login_mode`,mode:e}),d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`claude-login`})},openOauthLogin(e){d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`oauth-login`}),d({type:`oauth_login_provider`,providerId:e})},setSidebar(e){d({type:`sidebar`,open:e})},openFile(e){let t=f.current.currentSessionId;t&&d({type:`file_open`,sessionId:t,path:e})},closeFile(e){let t=f.current.currentSessionId;t&&d({type:`file_close`,sessionId:t,path:e})},activateFile(e){let t=f.current.currentSessionId;t&&d({type:`file_activate`,sessionId:t,path:e})},showChat(e){let t=e??f.current.currentSessionId;t&&d({type:`file_show_chat`,sessionId:t})}}},[e,t,n]);(0,v.useEffect)(()=>{let e=Ru(y.current);e&&d({type:`prefs`,prefs:e})},[]),(0,v.useEffect)(()=>{let e=!1,n=t.onStatus((t,n)=>{d({type:`connection`,status:t,detail:n??null}),t===`open`&&e&&(k.refreshInfo(),k.refreshVaultProjects()),t===`open`&&(e=!0)}),r=(e,t)=>{qd(e,f.current.prefs)&&Yd(Jd(e,t),Xd())},i=e=>{let t=f.current.transcripts[e]?.session??f.current.sessions.find(t=>t.id===e);return t?Du(t):`OonaCode session`},a=e=>{let t=Date.now(),n=e.type===`session_state`?pf(f.current,e.session.id):void 0;for(let n of lf(e,t))d(n);if(e.type===`session_state`&&Cd(n,e.session)&&k.refreshPlanSoon(),e.type===`permission_request`){let t=`${e.sessionId}:${e.request.requestId}`;if(w.current.has(t)||(w.current.size>=Qd&&w.current.clear(),w.current.add(t),e.settled===!0))return;r(`permissionRequired`,{sessionTitle:i(e.sessionId),toolName:e.request.toolName,sessionId:e.sessionId})}else if(e.type===`turn_finished`)r(`agentFinished`,{sessionTitle:i(e.sessionId),isError:e.result.isError,sessionId:e.sessionId});else if(e.type===`error`)r(`errorOccurred`,{sessionTitle:e.sessionId?i(e.sessionId):`OonaCode`,detail:e.code,...e.sessionId?{sessionId:e.sessionId}:{}});else if(e.type===`session_list_changed`)k.refreshSessions(),e.reason===`deleted`&&d({type:`session_removed`,id:e.sessionId});else if(e.type===`account_changed`)k.refreshAccount(),k.refreshPlan(),k.refreshProviders(),k.refreshInfo(),e.reason!==`provider`&&k.refreshCredentials(),e.reason!==`provider`&&(k.refreshHosts(),k.refreshClaudeSubscription(),k.refreshVaultProjects());else if(e.type===`welcome`){k.refreshSessions();let e=f.current.currentSessionId;e&&k.catchUpEntries(e)}},o=Qc({isStreamFrame:sf,deliver:e=>{for(let t of e)a(t)},batchMs:c,isHidden:cf}),s=t.onAny(e=>o.push(e)),l=()=>{cf()||o.flush()};return typeof document<`u`&&document.addEventListener(`visibilitychange`,l),t.connect(),()=>{n(),s(),typeof document<`u`&&document.removeEventListener(`visibilitychange`,l),o.dispose(),t.close()}},[t,k,c]),(0,v.useEffect)(()=>{if(typeof window>`u`||typeof document>`u`)return;let e=()=>k.refreshPlanSoon(),t=()=>{document.visibilityState===`visible`&&k.refreshPlanSoon()};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,t)}},[k]),(0,v.useEffect)(()=>{k.refreshInfo(),k.refreshPlan(),k.refreshSessions(),k.refreshProjects(),k.refreshProviders(),k.refreshSettings(),k.refreshAccount(),k.refreshCredentials(),k.refreshHosts()},[k]),(0,v.useEffect)(()=>{r&&d({type:`select_session`,id:r})},[r]);let A=(0,v.useRef)(!1),ee=(0,v.useRef)(!1),j=(0,v.useRef)(null),M=(0,v.useRef)(!0);(0,v.useEffect)(()=>(M.current=!0,()=>{M.current=!1}),[]);let te=u.sessionListLoaded,ne=u.remote.loaded,N=u.settings!==null,[P,re]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(ne&&N||P)return;let e=setTimeout(()=>re(!0),$d);return()=>clearTimeout(e)},[ne,N,P]),(0,v.useEffect)(()=>{if(A.current||!te||!N||!ne&&!P)return;A.current=!0;let t=Qu(u.prefs),n=new Set(u.sessions.map(e=>e.id)),r=Zu(u.prefs).filter(({id:e})=>!n.has(e)).map(({id:e,title:t},n)=>({...ku(e,n),title:t})),i=new Set(r.map(e=>e.id));if(t.ids.length===0)return;let a=Xu(u.prefs),o=t.ids.filter(e=>a[e]!==void 0),s=e=>{let n=qu(t,[...u.sessions.map(e=>e.id),...o,...i,...e]),s=[...n.ids],c=f.current.currentSessionId;if(c&&!s.includes(c)&&s.push(c),s.length!==0){j.current=f.current.tabs,d({type:`restore_tabs`,ids:s,activeId:c??n.activeId,drafts:r.filter(e=>s.includes(e.id))});for(let e of s){let t=a[e];t!==void 0&&k.openRemoteSession(t,e,{focus:!1})}}},c=t.ids.filter(e=>!n.has(e)&&a[e]===void 0&&!i.has(e));if(c.length===0){s([]);return}ee.current=!0,Promise.all(c.map(t=>e.getSession(t).then(()=>t,e=>e instanceof Gc&&e.status===404?null:t))).then(e=>{ee.current=!1,M.current&&s(e.filter(e=>e!==null))})},[te,ne,P,N,u.prefs,u.sessions,e,k]);let ie=u.tabs,ae=u.prefs,oe=u.remote.tabs,se=u.drafts,F=u.settings!==null;(0,v.useEffect)(()=>{if(!F||!A.current||ee.current)return;if(j.current!==null){if(ie===j.current)return;j.current=null}let e={};for(let t of ie.ids){let n=oe[t];n&&(e[t]=n.hostId)}td(ie,ae,e,se)&&(A.current=!0,k.savePrefs(Yu(ie,e,se)))},[ie,ae,oe,se,F,te,k]);let ce=u.tabs.ids.join(`,`);(0,v.useEffect)(()=>{let e=ce?ce.split(`,`):[];for(let n of e){if(f.current.remote.tabs[n]||f.current.drafts[n])continue;let e=f.current.transcripts[n];t.subscribe(n,e?.lastSeq??void 0),!e?.hydrated&&(d({type:`transcript_loading`,sessionId:n,loading:!0}),(async()=>{try{await k.hydrateSession(n),C.current.add(n)}catch(e){e instanceof Gc&&e.isUnauthorized?g.current?.():k.toast(`error`,`Could not load session: ${Ou(e)}`)}finally{d({type:`transcript_loading`,sessionId:n,loading:!1})}})())}return()=>{for(let n of e){if(f.current.tabs.ids.includes(n)||f.current.remote.tabs[n])continue;let e=f.current.transcripts[n];(!e||e.status===`idle`||e.status===`error`)&&t.unsubscribe(n)}}},[ce,e,t,k]),(0,v.useEffect)(()=>{if(n)return()=>n.close()},[n]);let le=u.settings?.theme??`system`,ue=u.prefs.themeColors;(0,v.useEffect)(()=>{if(typeof document>`u`)return;let e=document.documentElement,t=typeof window.matchMedia==`function`?window.matchMedia(`(prefers-color-scheme: dark)`):null,n=()=>{let n=le===`dark`?`dark`:le===`light`?`light`:t?.matches?`dark`:`light`,r=ue[n];for(let t of qs){let n=r[t];n?e.style.setProperty(`--${t}`,n):e.style.removeProperty(`--${t}`)}};if(n(),!(le!==`system`||!t||typeof t.addEventListener!=`function`))return t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[le,ue]),(0,v.useEffect)(()=>{if(typeof document>`u`)return;let e=document.documentElement;le===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,le),window.oonacode?.setTheme?.(le)},[le]);let de=u.settings?.gatewayUrl??u.account?.gatewayUrl??null,fe=k.checkUpdates,pe=(0,v.useRef)(0);(0,v.useEffect)(()=>{if(!de)return;let e=()=>{pe.current=Date.now(),fe(!1)};e();let t=setInterval(e,uf),n=()=>{typeof document<`u`&&document.visibilityState===`hidden`||Date.now()-pe.current<3e5||e()};return window.addEventListener(`focus`,n),document.addEventListener(`visibilitychange`,n),()=>{clearInterval(t),window.removeEventListener(`focus`,n),document.removeEventListener(`visibilitychange`,n)}},[de,fe]);let me=k.openDialog,he=k.newTab,ge=k.savePrefs,_e=(0,v.useCallback)(e=>{switch(e){case`sign-in`:f.current.account?.loggedIn&&me(`account`);break;case`settings`:me(`settings`);break;case`new-tab`:he();break;case`new-project`:f.current.account?.loggedIn&&(d({type:`projects_new`}),me(`projects`));break;case`check-updates`:fe(!0);break;case`import-chats`:f.current.account?.loggedIn&&me(`import-claude`);break;case`toggle-session-panel`:ge({sessionPanelOpen:!f.current.prefs.sessionPanelOpen})}},[me,he,fe,ge]);(0,v.useEffect)(()=>{let e=typeof window<`u`?window.oonacode:void 0;if(e?.onMenuCommand)return e.onMenuCommand(_e)},[_e]),(0,v.useEffect)(()=>{let e=window.oonacode;if(e?.onOpenSession)return e.onOpenSession(e=>{if(f.current.remote.tabs[e]||f.current.drafts[e]){k.selectSession(e);return}!f.current.sessions.some(t=>t.id===e)&&!f.current.transcripts[e]||k.selectSession(e)})},[k]),(0,v.useEffect)(()=>{let e=typeof window<`u`?window.oonacode:void 0;if(e?.onUpdateEvent)return e.onUpdateEvent(e=>d({type:`update_event`,event:e}))},[]);let ve=(0,v.useMemo)(()=>({state:u,dispatch:d,actions:k,api:e,socket:t}),[u,k,e,t]);return(0,K.jsx)(mf.Provider,{value:ve,children:l})}var Cf=h(),wf=`inline-block shrink-0`;function Tf(e){return!!e&&/(^|\s)(w-|h-|size-|min-w-|min-h-)/.test(e)}var Ef=`w-4 h-4`;function J(e,{className:t,title:n},r=`0 0 24 24`){return(0,K.jsxs)(`svg`,{className:W(wf,Tf(t)?``:Ef,t),width:`1em`,height:`1em`,viewBox:r,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!n||void 0,role:n?`img`:void 0,children:[n?(0,K.jsx)(`title`,{children:n}):null,e]})}var Y={Menu:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`3`,y1:`6`,x2:`21`,y2:`6`}),(0,K.jsx)(`line`,{x1:`3`,y1:`12`,x2:`21`,y2:`12`}),(0,K.jsx)(`line`,{x1:`3`,y1:`18`,x2:`21`,y2:`18`})]}),e),More:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.6`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.6`})]}),e),Plus:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,K.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})]}),e),Send:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),(0,K.jsx)(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})]}),e),Stop:e=>J((0,K.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),Chevron:e=>J((0,K.jsx)(`polyline`,{points:e.open?`6 9 12 15 18 9`:`9 6 15 12 9 18`}),e),Settings:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,K.jsx)(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})]}),e),User:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`7`,r:`4`})]}),e),Stethoscope:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6 6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3`}),(0,K.jsx)(`path`,{d:`M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4`}),(0,K.jsx)(`circle`,{cx:`20`,cy:`10`,r:`2`})]}),e),Copy:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,K.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),Check:e=>J((0,K.jsx)(`polyline`,{points:`20 6 9 17 4 12`}),e),Reply:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`9 17 4 12 9 7`}),(0,K.jsx)(`path`,{d:`M20 18v-2a4 4 0 0 0-4-4H4`})]}),e),Clock:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`polyline`,{points:`12 7 12 12 15 14`})]}),e),X:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,K.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),Alert:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,K.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,K.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]}),e),Bug:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M8 2l1.88 1.88`}),(0,K.jsx)(`path`,{d:`M14.12 3.88L16 2`}),(0,K.jsx)(`path`,{d:`M9 7.13v-1a3.003 3.003 0 1 1 6 0v1`}),(0,K.jsx)(`path`,{d:`M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6z`}),(0,K.jsx)(`path`,{d:`M12 20v-9`}),(0,K.jsx)(`path`,{d:`M6.53 9C4.6 8.8 3 7.1 3 5`}),(0,K.jsx)(`path`,{d:`M6 13H2`}),(0,K.jsx)(`path`,{d:`M3 21c0-2.1 1.7-3.9 3.8-4`}),(0,K.jsx)(`path`,{d:`M20.97 5c0 2.1-1.6 3.8-3.5 4`}),(0,K.jsx)(`path`,{d:`M22 13h-4`}),(0,K.jsx)(`path`,{d:`M17.2 17c2.1.1 3.8 1.9 3.8 4`})]}),e),Spinner:e=>J((0,K.jsx)(`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`}),{...e,className:W(`spin`,e.className??`w-4 h-4`)}),Tool:e=>J((0,K.jsx)(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`}),e),Brain:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M9.5 2a2.5 2.5 0 0 1 2.5 2.5V20a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 2 14v-1a2.5 2.5 0 0 1 2.5-2.5V9A2.5 2.5 0 0 1 7 6.5V4.5A2.5 2.5 0 0 1 9.5 2z`}),(0,K.jsx)(`path`,{d:`M14.5 2A2.5 2.5 0 0 0 12 4.5V20a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 2.5-2.5v-1A2.5 2.5 0 0 0 22 14v-1a2.5 2.5 0 0 0-2.5-2.5V9A2.5 2.5 0 0 0 17 6.5V4.5A2.5 2.5 0 0 0 14.5 2z`})]}),e),ArrowDown:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,K.jsx)(`polyline`,{points:`19 12 12 19 5 12`})]}),e),Paperclip:e=>J((0,K.jsx)(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`}),e),Folder:e=>J((0,K.jsx)(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`}),e),Project:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polygon`,{points:`12 2 2 7 12 12 22 7 12 2`}),(0,K.jsx)(`polyline`,{points:`2 17 12 22 22 17`}),(0,K.jsx)(`polyline`,{points:`2 12 12 17 22 12`})]}),e),File:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),(0,K.jsx)(`polyline`,{points:`14 2 14 8 20 8`})]}),e),ChevronRight:e=>J((0,K.jsx)(`polyline`,{points:`9 18 15 12 9 6`}),e),ExpandAll:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`7 5 12 10 17 5`}),(0,K.jsx)(`polyline`,{points:`7 13 12 18 17 13`})]}),e),CollapseAll:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`7 11 12 6 17 11`}),(0,K.jsx)(`polyline`,{points:`7 19 12 14 17 19`})]}),e),Palette:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 3a9 9 0 1 0 0 18c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1-.3-.3-.4-.7-.4-1.1 0-.9.7-1.6 1.6-1.6H16a5 5 0 0 0 5-5c0-3.9-4-7.6-9-7.6Z`}),(0,K.jsx)(`circle`,{cx:`7.5`,cy:`11.5`,r:`1`}),(0,K.jsx)(`circle`,{cx:`10.5`,cy:`7.5`,r:`1`}),(0,K.jsx)(`circle`,{cx:`15.5`,cy:`8.5`,r:`1`})]}),e),Bot:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`10`,rx:`2`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`5`,r:`2`}),(0,K.jsx)(`path`,{d:`M12 7v4`}),(0,K.jsx)(`line`,{x1:`8`,y1:`16`,x2:`8`,y2:`16`}),(0,K.jsx)(`line`,{x1:`16`,y1:`16`,x2:`16`,y2:`16`})]}),e),Trash:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`3 6 5 6 21 6`}),(0,K.jsx)(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),(0,K.jsx)(`path`,{d:`M10 11v6M14 11v6`}),(0,K.jsx)(`path`,{d:`M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2`})]}),e),Refresh:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`23 4 23 10 17 10`}),(0,K.jsx)(`path`,{d:`M20.49 15a9 9 0 1 1-2.12-9.36L23 10`})]}),e),Search:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,K.jsx)(`line`,{x1:`21`,y1:`21`,x2:`16.65`,y2:`16.65`})]}),e),Shield:e=>J((0,K.jsx)(`path`,{d:`M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z`}),e),Coins:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`ellipse`,{cx:`8`,cy:`6`,rx:`5`,ry:`2.5`}),(0,K.jsx)(`path`,{d:`M3 6v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V6`}),(0,K.jsx)(`path`,{d:`M3 10v4c0 1.4 2.2 2.5 5 2.5 1 0 1.9-.13 2.7-.36`}),(0,K.jsx)(`circle`,{cx:`16`,cy:`15`,r:`5`}),(0,K.jsx)(`path`,{d:`M16 13v4M14.5 15h3`})]}),e),Lock:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`5`,y:`11`,width:`14`,height:`9`,rx:`2`}),(0,K.jsx)(`path`,{d:`M8 11V7a4 4 0 0 1 8 0v4`})]}),e),Fork:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`18`,r:`3`}),(0,K.jsx)(`circle`,{cx:`6`,cy:`6`,r:`3`}),(0,K.jsx)(`circle`,{cx:`18`,cy:`6`,r:`3`}),(0,K.jsx)(`path`,{d:`M18 9a9 9 0 0 1-9 9M6 9a9 9 0 0 0 9 9`})]}),e),Edit:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,K.jsx)(`path`,{d:`M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z`})]}),e),Upload:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,K.jsx)(`polyline`,{points:`17 8 12 3 7 8`}),(0,K.jsx)(`line`,{x1:`12`,y1:`3`,x2:`12`,y2:`15`})]}),e),Download:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,K.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,K.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),e),Info:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,K.jsx)(`line`,{x1:`12`,y1:`16`,x2:`12`,y2:`12`}),(0,K.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12.01`,y2:`8`})]}),e),Panel:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,K.jsx)(`line`,{x1:`15`,y1:`3`,x2:`15`,y2:`21`})]}),e),LogIn:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`}),(0,K.jsx)(`polyline`,{points:`10 17 15 12 10 7`}),(0,K.jsx)(`line`,{x1:`15`,y1:`12`,x2:`3`,y2:`12`})]}),e),Globe:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,K.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,K.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),e),Monitor:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,K.jsx)(`line`,{x1:`8`,y1:`21`,x2:`16`,y2:`21`}),(0,K.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12`,y2:`21`})]}),e),Bell:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9`}),(0,K.jsx)(`path`,{d:`M13.73 21a2 2 0 0 1-3.46 0`})]}),e),Sliders:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`4`,y1:`21`,x2:`4`,y2:`14`}),(0,K.jsx)(`line`,{x1:`4`,y1:`10`,x2:`4`,y2:`3`}),(0,K.jsx)(`line`,{x1:`12`,y1:`21`,x2:`12`,y2:`12`}),(0,K.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`3`}),(0,K.jsx)(`line`,{x1:`20`,y1:`21`,x2:`20`,y2:`16`}),(0,K.jsx)(`line`,{x1:`20`,y1:`12`,x2:`20`,y2:`3`}),(0,K.jsx)(`line`,{x1:`1`,y1:`14`,x2:`7`,y2:`14`}),(0,K.jsx)(`line`,{x1:`9`,y1:`8`,x2:`15`,y2:`8`}),(0,K.jsx)(`line`,{x1:`17`,y1:`16`,x2:`23`,y2:`16`})]}),e),Plug:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 22v-5`}),(0,K.jsx)(`path`,{d:`M9 7V2M15 7V2`}),(0,K.jsx)(`path`,{d:`M6 7h12v4a6 6 0 0 1-12 0z`})]}),e),Key:e=>J((0,K.jsx)(`path`,{d:`M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3`}),e)},Df={primary:`bg-accent text-accent-fg hover:opacity-90 border-transparent`,inverse:`bg-inverse-bg text-inverse-fg hover:opacity-90 border-transparent`,secondary:`bg-surface-2 text-fg hover:bg-surface-3 border-border`,ghost:`bg-transparent text-fg-muted hover:bg-surface-2 hover:text-fg border-transparent`,danger:`bg-danger-soft text-danger hover:opacity-90 border-transparent`,success:`bg-ok-soft text-ok hover:opacity-90 border-transparent`};function X({variant:e=`secondary`,size:t=`md`,busy:n,className:r,children:i,disabled:a,...o}){return(0,K.jsxs)(`button`,{type:`button`,...o,disabled:a||n,className:W(`inline-flex items-center gap-1.5 rounded-md border font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,t===`sm`?`px-2 py-1 text-xs`:`px-3 py-1.5 text-sm`,Df[e],r),children:[n?(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}):null,i]})}function Of({label:e,className:t,children:n,...r}){return(0,K.jsx)(`button`,{type:`button`,"aria-label":e,title:e,...r,className:W(`inline-flex items-center justify-center rounded-md p-1.5 text-fg-muted hover:bg-surface-2 hover:text-fg disabled:opacity-50`,t),children:n})}function kf({label:e,hint:t,children:n,className:r}){return(0,K.jsxs)(`label`,{className:W(`flex flex-col gap-1 text-sm`,r),children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:e}),n,t?(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:t}):null]})}var Af=`w-full rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-fg placeholder:text-fg-faint focus:border-accent focus:outline-none`,jf=Af;function Mf({tone:e=`neutral`,children:t,className:n}){return(0,K.jsx)(`span`,{className:W(`inline-flex items-center rounded px-1.5 py-0.5 text-[11px] font-medium leading-4`,{neutral:`bg-surface-2 text-fg-muted`,ok:`bg-ok-soft text-ok`,warn:`bg-warn-soft text-warn`,danger:`bg-danger-soft text-danger`,accent:`bg-accent-soft text-accent`,think:`bg-think-soft text-think`}[e],n),children:t})}function Nf({open:e,title:t,onClose:n,children:r,footer:i,wide:a}){let o=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(!e)return;let t=document.activeElement,r=o.current;(r?.querySelector(`input, select, textarea, button:not([data-close])`)??r)?.focus();let i=e=>{e.key===`Escape`&&(e.stopPropagation(),n())};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),t?.focus?.()}},[e,n]),e?(0,Cf.createPortal)((0,K.jsx)(`div`,{className:`fixed inset-0 z-40 flex items-end sm:items-center justify-center bg-black/40 p-0 sm:p-4`,onMouseDown:e=>e.target===e.currentTarget&&n(),children:(0,K.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-label":t,tabIndex:-1,className:W(`flex max-h-[95vh] w-full flex-col rounded-t-xl sm:rounded-xl border border-border bg-surface shadow-lg outline-none`,a?`sm:max-w-3xl`:`sm:max-w-lg`),children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-3`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold`,children:t}),(0,K.jsx)(Of,{label:`Close`,"data-close":!0,onClick:n,children:(0,K.jsx)(Y.X,{})})]}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto px-4 py-3`,children:r}),i?(0,K.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-t border-border px-4 py-3`,children:i}):null]})}),document.body):null}function Pf({checked:e,onChange:t,label:n,hint:r,disabled:i}){return(0,K.jsxs)(`label`,{className:W(`flex items-start justify-between gap-3 py-2`,i&&`opacity-60`),children:[(0,K.jsxs)(`span`,{className:`min-w-0`,children:[(0,K.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:n}),r?(0,K.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:r}):null]}),(0,K.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:i,onClick:()=>t(!e),className:W(`relative mt-0.5 h-5 w-9 shrink-0 rounded-full border transition-colors`,e?`border-accent bg-accent`:`border-border bg-surface-2`),children:(0,K.jsx)(`span`,{className:W(`absolute top-0.5 h-3.5 w-3.5 rounded-full bg-surface transition-all`,e?`left-[1.15rem]`:`left-0.5`)})})]})}function Ff({value:e,options:t,onChange:n,label:r}){return(0,K.jsx)(`div`,{className:`inline-flex rounded-md border border-border bg-surface-2 p-0.5`,role:`radiogroup`,"aria-label":r,children:t.map(t=>(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===t.value,onClick:()=>n(t.value),className:W(`rounded px-2.5 py-1 text-xs font-medium transition-colors`,e===t.value?`bg-surface text-fg shadow-sm`:`text-fg-muted hover:text-fg`),children:t.label},t.value))})}function If({icon:e,title:t,hint:n,action:r}){return(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 p-8 text-center text-fg-muted`,children:[e?(0,K.jsx)(`div`,{className:`text-fg-faint`,children:e}):null,(0,K.jsx)(`div`,{className:`text-base font-medium text-fg`,children:t}),n?(0,K.jsx)(`div`,{className:`max-w-md text-sm`,children:n}):null,r?(0,K.jsx)(`div`,{className:`mt-2`,children:r}):null]})}function Lf({open:e,title:t,message:n,confirmLabel:r=`Delete`,danger:i=!0,onConfirm:a,onClose:o}){return(0,K.jsx)(Nf,{open:e,title:t,onClose:o,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{"data-close":!0,onClick:o,children:`Cancel`}),(0,K.jsx)(X,{variant:i?`danger`:`primary`,"data-testid":`confirm-dialog-accept`,onClick:()=>{a(),o()},children:r})]}),children:(0,K.jsx)(`div`,{className:`text-sm text-fg-muted`,children:n})})}function Rf({open:e,title:t,label:n,initialValue:r=``,password:i=!1,submitLabel:a=`Save`,onSubmit:o,onClose:s}){let[c,l]=(0,v.useState)(r);(0,v.useEffect)(()=>{e&&l(r)},[e,r]);let u=()=>{let e=c.trim();e&&(o(e),s())};return(0,K.jsx)(Nf,{open:e,title:t,onClose:s,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{"data-close":!0,onClick:s,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,"data-testid":`prompt-dialog-submit`,onClick:u,children:a})]}),children:(0,K.jsx)(kf,{label:n,children:(0,K.jsx)(`input`,{className:Af,type:i?`password`:`text`,value:c,"data-testid":`prompt-dialog-input`,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),u())}})})})}function zf({checked:e,onChange:t}){let{state:n}=q();return Ic(n.account)===`unavailable`?null:(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e,onChange:e=>t(e.target.checked),"data-testid":`keep-unlocked`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`block`,children:`Keep me unlocked on this PC`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:Ns})]})]})}function Bf({view:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),f=async()=>{if(n){a(!0);try{await t.completeVaultRekey(n)&&r(``)}finally{a(!1)}}},p=async()=>{if(!(c.trim()!==`discard-my-vault-and-history`||!u)){a(!0);try{await t.revokeVaultRekey(u)&&d(``)}finally{a(!1),l(``)}}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`vault-rekey-pending`,className:`space-y-3 rounded-md border border-warn/50 bg-warn-soft p-3 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:Bc(e)}),e.canFinishHere?(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`This PC still holds the key from before the reset, so it can move your vault to the new password. Nothing is lost. Type your new password to confirm; you will get a new vault Recovery Key.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:Vc(e)}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`rekey-recovery-exit`,children:Hc})]})]})]}),e.canFinishHere?(0,K.jsxs)(`form`,{className:`flex items-end gap-2`,onSubmit:e=>{e.preventDefault(),f()},children:[(0,K.jsx)(kf,{label:`New password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:n,onChange:e=>r(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:i,disabled:!n,"data-testid":`rekey-finish`,children:`Move my vault to the new password`})]}):null,o?(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border border-danger/40 bg-surface p-3`,children:[(0,K.jsxs)(`p`,{className:`text-xs text-danger`,children:[`Discarding permanently deletes every saved provider key, the mirrored session history on the server, and the vault Recovery Key that could still have moved them. There is no undo. Type `,(0,K.jsx)(`span`,{className:`font-mono`,children:Ms}),` and your current password to confirm.`]}),(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Your new password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:u,onChange:e=>d(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-discard-password`})}),(0,K.jsx)(kf,{label:`Confirmation`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,value:c,onChange:e=>l(e.target.value),autoComplete:`off`,spellCheck:!1,"data-testid":`rekey-discard-ack`})}),(0,K.jsx)(X,{variant:`danger`,busy:i,disabled:c.trim()!==`discard-my-vault-and-history`||!u,onClick:()=>void p(),"data-testid":`rekey-discard-confirm`,children:`Discard vault and history`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>s(!1),children:`Cancel`})]})]}):(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>s(!0),"data-testid":`rekey-discard`,children:e.canFinishHere?`This was not me — discard the vault instead`:`Last resort: discard the vault`})]})}function Vf(){let{state:e,actions:t}=q(),n=e.recoveryKey,[r,i]=(0,v.useState)(!1);if(!n)return null;let a=async()=>{try{await navigator.clipboard?.writeText(n.code),i(!0)}catch{t.toast(`error`,`Could not copy — select the code and copy it by hand`)}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`recovery-key`,className:`space-y-2 rounded-md border border-ok/50 bg-ok-soft p-3 text-sm`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:`Your new vault Recovery Key`}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Write it down now — this is the only copy, and OonaCode does not store it. It unlocks your vault data if you ever forget the password. It is not a 2FA backup code.`}),(0,K.jsx)(`div`,{className:`select-all rounded-md border border-border bg-surface px-3 py-2 font-mono text-base tracking-wider`,"data-testid":`recovery-key-code`,children:n.code}),n.devicesSignedOut>0?(0,K.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[n.devicesSignedOut,` other device`,n.devicesSignedOut===1?` was`:`s were`,` signed out; sign in there with the new password.`]}):null,n.warning?(0,K.jsx)(`p`,{className:`rounded-md border border-warn/50 bg-warn-soft px-2 py-1.5 text-xs text-fg`,"data-testid":`recovery-key-warning`,children:n.warning}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,K.jsxs)(X,{size:`sm`,onClick:()=>void a(),children:[(0,K.jsx)(Y.Copy,{className:`w-3.5 h-3.5`}),` `,r?`Copied`:`Copy`]}),(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>t.dismissRecoveryKey(),"data-testid":`recovery-key-done`,children:`I have saved it`})]})]})}function Hf(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(``),[o,s]=(0,v.useState)(!1),c=Ic(e.account);if(c===`unavailable`||c===`pending_rekey`)return null;let l=async e=>{s(!0);try{await t.setDeviceUnlock(e,e?i:void 0)&&(r(!1),a(``))}finally{s(!1)}};return c===`armed`?(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,"data-testid":`device-unlock`,children:[(0,K.jsx)(Mf,{tone:`ok`,children:`stays unlocked on this PC`}),(0,K.jsx)(X,{size:`sm`,busy:o,onClick:()=>void l(!1),children:`Turn off`})]}):n?(0,K.jsxs)(`form`,{className:`space-y-2 rounded-md border border-border bg-surface-2 p-3`,"data-testid":`device-unlock`,onSubmit:e=>{e.preventDefault(),l(!0)},children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,children:Ns}),(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:i,onChange:e=>a(e.target.value),autoComplete:`current-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:o,disabled:!i,children:`Keep me unlocked`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>r(!1),children:`Cancel`})]})]}):(0,K.jsx)(X,{size:`sm`,onClick:()=>r(!0),"data-testid":`device-unlock`,children:`Keep me unlocked on this PC…`})}function Uf({pending:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(()=>Date.now()),[i,a]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(r(Date.now()),e.resendAt<=Date.now())return;let t=setInterval(()=>{let n=Date.now();r(n),n>=e.resendAt&&clearInterval(t)},1e3);return()=>clearInterval(t)},[e.resendAt]);let o=rl(e,n),s=async()=>{a(!0);try{await t.resendVerification()}finally{a(!1)}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`email-verification`,className:`space-y-2 rounded-md border border-warn/50 bg-warn-soft p-3 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:al(e)}),(0,K.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:`Open the link on any device, then log in again here. Check the spam folder if it does not arrive.`})]})]}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(X,{size:`sm`,variant:`primary`,busy:i,disabled:o>0,onClick:()=>void s(),"data-testid":`resend-verification`,children:o>0?`Resend link (${o}s)`:`Resend link`}),(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>t.dismissEmailVerification(),children:`Dismiss`})]})]})}function Wf(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(e.settings?.gatewayUrl||x),[i,a]=(0,v.useState)(``),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(e.connection.hostName??``),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!0),[m,h]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e.settings?.gatewayUrl&&n===x&&r(e.settings.gatewayUrl)},[e.settings?.gatewayUrl,n]);let g=async()=>{if(!(!n.trim()||!i.trim()||!o)){h(!0);try{await t.login({gatewayUrl:n.trim(),email:i.trim(),password:o,register:u,...c.trim()?{deviceName:c.trim()}:{},keepUnlocked:f})!==`verification_pending`&&s(``)}finally{h(!1)}}};return(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),g()},children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`Log in to sync your credentials across your own devices (zero-knowledge: the server only ever sees ciphertext) and to route API-key providers through your gateway.`}),e.emailVerification?(0,K.jsx)(Uf,{pending:e.emailVerification}):null,(0,K.jsx)(kf,{label:`Gateway URL`,children:(0,K.jsx)(`input`,{className:Af,value:n,onChange:e=>r(e.target.value),placeholder:x,autoComplete:`url`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Email`,children:(0,K.jsx)(`input`,{className:Af,type:`email`,value:i,onChange:e=>a(e.target.value),autoComplete:`username`})}),(0,K.jsx)(kf,{label:`Password`,hint:`Also unlocks your vault. It never leaves this PC; only a derived proof is sent.`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:o,onChange:e=>s(e.target.value),autoComplete:u?`new-password`:`current-password`})}),(0,K.jsx)(kf,{label:`Device name`,children:(0,K.jsx)(`input`,{className:Af,value:c,onChange:e=>l(e.target.value),placeholder:`Office PC`})}),(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),` `,`Create a new account`]}),(0,K.jsx)(zf,{checked:f,onChange:p}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:m,disabled:!n.trim()||!i.trim()||!o,children:u?`Register`:`Log in`})]})}function Gf(){let{actions:e}=q(),[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(!0),[a,o]=(0,v.useState)(!1);return(0,K.jsxs)(`form`,{className:`space-y-2`,onSubmit:i=>{i.preventDefault(),o(!0),e.unlock(t,{keepUnlocked:r}).finally(()=>{o(!1),n(``)})},children:[(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Vault locked — enter your password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:t,onChange:e=>n(e.target.value),autoComplete:`current-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:a,disabled:!t,children:`Unlock`})]}),(0,K.jsx)(zf,{checked:r,onChange:i})]})}function Kf(){let{state:e}=q(),t=e.plan,n=e=>e.toLocaleString(void 0,{maximumFractionDigits:0});return(0,K.jsxs)(`section`,{className:`space-y-2`,"data-testid":`account-plan`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-semibold`,children:`Plan & credits`}),t===null?(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Sign in to see your plan and credit balance.`}):(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border px-3 py-2.5 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,K.jsxs)(`span`,{className:`font-medium`,children:[t.planName,t.status===`none`?` (lapsed)`:``]})]}),(0,K.jsx)(`div`,{className:`h-px bg-border`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,K.jsx)(`span`,{className:`font-semibold tabular-nums`,"data-testid":`account-credits`,children:n(t.credits.balance)})]}),(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[t.credits.monthlyGrant>0?`Tops up to ${n(t.credits.monthlyGrant)} each 30-day period. `:`No monthly top-up on this plan; the signup gift and anything you buy never expire. `,`Free models never draw on it.`]})]})]})}function qf({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.account,a=Lc(i);return(0,v.useEffect)(()=>{e&&(r.refreshAccount(),r.refreshPlan())},[e,r]),(0,K.jsx)(Nf,{open:e,title:`Account`,onClose:t,children:(0,K.jsxs)(`div`,{className:`space-y-5`,children:[i?.loggedIn?(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(Vf,{}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:i.email}),a?(0,K.jsx)(Mf,{tone:`warn`,children:`vault waiting for a password reset to finish`}):(0,K.jsx)(Mf,{tone:i.vaultUnlocked?`ok`:`warn`,children:i.vaultUnlocked?`vault unlocked`:`vault locked`}),(0,K.jsxs)(Mf,{tone:i.syncStatus===`error`?`danger`:i.syncStatus===`offline`?`warn`:`neutral`,children:[`sync: `,i.syncStatus]}),i.vaultRev===null?null:(0,K.jsxs)(Mf,{children:[`rev `,i.vaultRev]})]}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[i.gatewayUrl,` · device `,i.deviceId?.slice(0,8)??`?`,` · last sync`,` `,i.lastSyncAt?bu(i.lastSyncAt):`never`,i.syncError?(0,K.jsxs)(`span`,{className:`text-danger`,children:[` · `,i.syncError]}):null]}),a?(0,K.jsx)(Bf,{view:a}):null,!a&&!i.vaultUnlocked?(0,K.jsx)(Gf,{}):null,i.vaultUnlocked?(0,K.jsx)(Hf,{}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,K.jsxs)(X,{onClick:()=>void r.syncNow(),disabled:!i.vaultUnlocked,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Sync now`]}),(0,K.jsx)(X,{variant:`danger`,onClick:()=>void r.logout(),children:`Log out`})]})]}):(0,K.jsx)(Wf,{}),(0,K.jsx)(Kf,{})]})})}function Jf(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var Yf=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Xf=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Zf={};function Qf(e,t){return((t||Zf).jsx?Xf:Yf).test(e)}var $f=/[ \t\n\f\r]/g;function ep(e){return typeof e==`object`?e.type===`text`&&tp(e.value):tp(e)}function tp(e){return e.replace($f,``)===``}var np=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};np.prototype.normal={},np.prototype.property={},np.prototype.space=void 0;function rp(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new np(n,r,t)}function ip(e){return e.toLowerCase()}var ap=class{constructor(e,t){this.attribute=t,this.property=e}};ap.prototype.attribute=``,ap.prototype.booleanish=!1,ap.prototype.boolean=!1,ap.prototype.commaOrSpaceSeparated=!1,ap.prototype.commaSeparated=!1,ap.prototype.defined=!1,ap.prototype.mustUseProperty=!1,ap.prototype.number=!1,ap.prototype.overloadedBoolean=!1,ap.prototype.property=``,ap.prototype.spaceSeparated=!1,ap.prototype.space=void 0;var op=s({boolean:()=>Z,booleanish:()=>cp,commaOrSpaceSeparated:()=>fp,commaSeparated:()=>dp,number:()=>Q,overloadedBoolean:()=>lp,spaceSeparated:()=>up}),sp=0,Z=pp(),cp=pp(),lp=pp(),Q=pp(),up=pp(),dp=pp(),fp=pp();function pp(){return 2**++sp}var mp=Object.keys(op),hp=class extends ap{constructor(e,t,n,r){let i=-1;if(super(e,t),gp(this,`space`,r),typeof n==`number`)for(;++i<mp.length;){let e=mp[i];gp(this,mp[i],(n&op[e])===op[e])}}};hp.prototype.defined=!0;function gp(e,t,n){n&&(e[t]=n)}function _p(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new hp(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ip(r)]=r,n[ip(a.attribute)]=r}return new np(t,n,e.space)}var vp=_p({properties:{ariaActiveDescendant:null,ariaAtomic:cp,ariaAutoComplete:null,ariaBusy:cp,ariaChecked:cp,ariaColCount:Q,ariaColIndex:Q,ariaColSpan:Q,ariaControls:up,ariaCurrent:null,ariaDescribedBy:up,ariaDetails:null,ariaDisabled:cp,ariaDropEffect:up,ariaErrorMessage:null,ariaExpanded:cp,ariaFlowTo:up,ariaGrabbed:cp,ariaHasPopup:null,ariaHidden:cp,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:up,ariaLevel:Q,ariaLive:null,ariaModal:cp,ariaMultiLine:cp,ariaMultiSelectable:cp,ariaOrientation:null,ariaOwns:up,ariaPlaceholder:null,ariaPosInSet:Q,ariaPressed:cp,ariaReadOnly:cp,ariaRelevant:null,ariaRequired:cp,ariaRoleDescription:up,ariaRowCount:Q,ariaRowIndex:Q,ariaRowSpan:Q,ariaSelected:cp,ariaSetSize:Q,ariaSort:null,ariaValueMax:Q,ariaValueMin:Q,ariaValueNow:Q,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function yp(e,t){return t in e?e[t]:t}function bp(e,t){return yp(e,t.toLowerCase())}var xp=_p({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:dp,acceptCharset:up,accessKey:up,action:null,allow:null,allowFullScreen:Z,allowPaymentRequest:Z,allowUserMedia:Z,alpha:Z,alt:null,as:null,async:Z,autoCapitalize:null,autoComplete:up,autoFocus:Z,autoPlay:Z,blocking:up,capture:null,charSet:null,checked:Z,cite:null,className:up,closedBy:null,colorSpace:null,cols:Q,colSpan:Q,command:null,commandFor:null,content:null,contentEditable:cp,controls:Z,controlsList:up,coords:Q|dp,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Z,defer:Z,dir:null,dirName:null,disabled:Z,download:lp,draggable:cp,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Z,formTarget:null,headers:up,height:Q,hidden:lp,high:Q,href:null,hrefLang:null,htmlFor:up,httpEquiv:up,id:null,imageSizes:null,imageSrcSet:null,inert:Z,inputMode:null,integrity:null,is:null,isMap:Z,itemId:null,itemProp:up,itemRef:up,itemScope:Z,itemType:up,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Z,low:Q,manifest:null,max:null,maxLength:Q,media:null,method:null,min:null,minLength:Q,multiple:Z,muted:Z,name:null,nonce:null,noModule:Z,noValidate:Z,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Z,optimum:Q,pattern:null,ping:up,placeholder:null,playsInline:Z,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Z,referrerPolicy:null,rel:up,required:Z,reversed:Z,rows:Q,rowSpan:Q,sandbox:up,scope:null,scoped:Z,seamless:Z,selected:Z,shadowRootClonable:Z,shadowRootCustomElementRegistry:Z,shadowRootDelegatesFocus:Z,shadowRootMode:null,shadowRootSerializable:Z,shape:null,size:Q,sizes:null,slot:null,span:Q,spellCheck:cp,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Q,step:null,style:null,tabIndex:Q,target:null,title:null,translate:null,type:null,typeMustMatch:Z,useMap:null,value:cp,width:Q,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:up,axis:null,background:null,bgColor:null,border:Q,borderColor:null,bottomMargin:Q,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Z,declare:Z,event:null,face:null,frame:null,frameBorder:null,hSpace:Q,leftMargin:Q,link:null,longDesc:null,lowSrc:null,marginHeight:Q,marginWidth:Q,noResize:Z,noHref:Z,noShade:Z,noWrap:Z,object:null,profile:null,prompt:null,rev:null,rightMargin:Q,rules:null,scheme:null,scrolling:cp,standby:null,summary:null,text:null,topMargin:Q,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Q,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Z,disablePictureInPicture:Z,disableRemotePlayback:Z,exportParts:dp,part:up,prefix:null,property:null,results:Q,security:null,unselectable:null},space:`html`,transform:bp}),Sp=_p({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,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`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,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`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,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`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:fp,accentHeight:Q,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Q,amplitude:Q,arabicForm:null,ascent:Q,attributeName:null,attributeType:null,azimuth:Q,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Q,by:null,calcMode:null,capHeight:Q,className:up,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Q,diffuseConstant:Q,direction:null,display:null,dur:null,divisor:Q,dominantBaseline:null,download:Z,dx:null,dy:null,edgeMode:null,editable:null,elevation:Q,enableBackground:null,end:null,event:null,exponent:Q,externalResourcesRequired:null,fill:null,fillOpacity:Q,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:dp,g2:dp,glyphName:dp,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Q,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Q,horizOriginX:Q,horizOriginY:Q,id:null,ideographic:Q,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Q,k:Q,k1:Q,k2:Q,k3:Q,k4:Q,kernelMatrix:fp,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Q,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Q,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Q,overlineThickness:Q,paintOrder:null,panose1:null,path:null,pathLength:Q,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:up,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Q,pointsAtY:Q,pointsAtZ:Q,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:fp,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:fp,rev:fp,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:fp,requiredFeatures:fp,requiredFonts:fp,requiredFormats:fp,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Q,specularExponent:Q,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Q,strikethroughThickness:Q,string:null,stroke:null,strokeDashArray:fp,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Q,strokeOpacity:Q,strokeWidth:null,style:null,surfaceScale:Q,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:fp,tabIndex:Q,tableValues:null,target:null,targetX:Q,targetY:Q,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:fp,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Q,underlineThickness:Q,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Q,values:null,vAlphabetic:Q,vMathematical:Q,vectorEffect:null,vHanging:Q,vIdeographic:Q,version:null,vertAdvY:Q,vertOriginX:Q,vertOriginY:Q,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Q,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:yp}),Cp=_p({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),wp=_p({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:bp}),Tp=_p({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Ep={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},Dp=/[A-Z]/g,Op=/-[a-z]/g,kp=/^data[-\w.:]+$/i;function Ap(e,t){let n=ip(t),r=t,i=ap;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&kp.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Op,Mp);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Op.test(e)){let n=e.replace(Dp,jp);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=hp}return new i(r,t)}function jp(e){return`-`+e.toLowerCase()}function Mp(e){return e.charAt(1).toUpperCase()}var Np=rp([vp,xp,Cp,wp,Tp],`html`),Pp=rp([vp,Sp,Cp,wp,Tp],`svg`);function Fp(e){return e.join(` `).trim()}var Ip=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
|
|
79
|
+
`):``}function _u(e){return!Number.isFinite(e)||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function vu(e){if(e==null||!Number.isFinite(e))return``;if(e<1e3)return`${Math.floor(e)}ms`;if(e<1e4)return`${(Math.floor(e/100)/10).toFixed(1)}s`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/3600),r=Math.floor(t%3600/60);return n>0?`${n}h ${r}m`:`${r}m ${t%60}s`}function yu(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e4?`${Math.round(e/1e3)}k`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function bu(e,t=Date.now()){if(!e)return``;let n=Date.parse(e);if(!Number.isFinite(n))return``;let r=Math.max(0,t-n),i=Math.floor(r/1e3);if(i<45)return`just now`;let a=Math.floor(i/60);if(a<60)return`${a}m ago`;let o=Math.floor(a/60);if(o<24)return`${o}h ago`;let s=Math.floor(o/24);return s<30?`${s}d ago`:new Date(n).toLocaleDateString()}function xu(e){if(!e)return;let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleString()}function Su(e){if(!e)return``;let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``}function Cu(e){let t=e.replace(/[\\/]+$/,``),n=t.split(/[\\/]/);return n[n.length-1]||t}function wu(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function Tu(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function W(...e){return e.filter(Boolean).join(` `)}function Eu(e,t=6){let n=e.trim().split(/\s+/).filter(Boolean);return n.length<=t?n.join(` `):`${n.slice(0,t).join(` `)}…`}function Du(e){return e.title?.trim()||e.firstPrompt?.trim().replace(/\s+/g,` `)||`Session ${e.id.slice(0,8)}`}function Ou(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function ku(e,t=Date.now()){return{id:e,title:null,providerId:null,variantId:null,projectId:null,model:null,permissionMode:null,projectDir:null,createdAt:t}}var Au=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function ju(e){return Au.test(e)}function Mu(){let e=new Uint8Array(16),t=globalThis.crypto;if(t&&typeof t.getRandomValues==`function`)return t.getRandomValues(e),e;for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);return e}function Nu(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`){let t=e.randomUUID();if(ju(t))return t}let t=Mu();t[6]=(t[6]??0)&15|64,t[8]=(t[8]??0)&63|128;let n=Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}function Pu(e){return e.title?.trim()||`New chat`}function Fu(e){let t=e.trim().replace(/\s+/g,` `).slice(0,500);return t.length>0?t:null}function Iu(e,t){return typeof t==`string`&&e[t]!==void 0}var Lu=`oonacode.uiPrefs`;function Ru(e){if(!e)return null;try{let t=e.getItem(Lu);return t?ac(JSON.parse(t)):null}catch{return null}}function zu(e,t){if(e)try{e.setItem(Lu,JSON.stringify(t))}catch{}}function Bu(e,t){let n=t.notifications?{...e.notifications,...t.notifications}:e.notifications;return ac({...e,...t,notifications:n})}function Vu(e){let t=e;return!t||typeof t!=`object`?!1:t.status===400||t.status===422||t.code===`bad_request`}function Hu(e=[],t=null){let n=[];for(let t of e)t&&!n.includes(t)&&n.push(t);let r=n.slice(-20);return{ids:r,activeId:t&&r.includes(t)?t:r[r.length-1]??null}}function Uu(e,t){if(!t)return e;if(e.ids.includes(t))return e.activeId===t?e:{ids:e.ids,activeId:t};let n=[...e.ids,t];if(n.length>20){let r=n.find(n=>n!==t&&n!==e.activeId)??n[0];n=n.filter(e=>e!==r)}return{ids:n,activeId:t}}function Wu(e,t){return!e.ids.includes(t)||e.activeId===t?e:{ids:e.ids,activeId:t}}function Gu(e,t){let n=e.ids.indexOf(t);if(n===-1)return e;let r=e.ids.filter(e=>e!==t);return e.activeId===t?{ids:r,activeId:r[n]??r[n-1]??null}:{ids:r,activeId:e.activeId}}function Ku(e,t,n){if(t===n||t<0||t>=e.ids.length)return e;let r=Math.max(0,Math.min(e.ids.length-1,n));if(r===t)return e;let i=[...e.ids],[a]=i.splice(t,1);return a===void 0?e:(i.splice(r,0,a),{ids:i,activeId:e.activeId})}function qu(e,t){let n=t instanceof Set?t:new Set(t),r=e.ids.filter(e=>n.has(e));return r.length===e.ids.length?e:{ids:r,activeId:e.activeId&&r.includes(e.activeId)?e.activeId:r[r.length-1]??null}}function Ju(e,t){if(e.ids.length===0)return e;let n=e.activeId?e.ids.indexOf(e.activeId):-1,r=n===-1?0:n,i=e.ids.length,a=((r+t)%i+i)%i,o=e.ids[a];return o?Wu(e,o):e}function Yu(e,t={},n={}){let r=[],i=[],a={},o={};for(let s of e.ids){let e=n[s];if(e){i.push(s),e.title&&(a[s]=e.title);continue}r.push(s);let c=t[s];c&&(o[s]=c)}return{openTabs:r,draftTabs:i,draftTitles:a,activeTab:e.activeId,remoteTabs:o}}function Xu(e){let t=e?.remoteTabs;if(!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&r.length>0&&(n[e]=r);return n}function Zu(e){let t=e?.draftTabs??[],n=e?.draftTitles??{},r=[];for(let e of t){if(typeof e!=`string`||e.length===0)continue;let t=n[e];r.push({id:e,title:typeof t==`string`&&t.length>0?t:null})}return r}function Qu(e){return Hu([...e.openTabs??[],...e.draftTabs??[]],e.activeTab??null)}function $u(e,t){if(e.length!==t.length)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!0;return!1}function ed(e,t){for(let n of new Set([...Object.keys(e),...Object.keys(t)]))if(e[n]!==t[n])return!0;return!1}function td(e,t,n,r={}){let i=Yu(e,n??{},r);return!!($u(t.openTabs??[],i.openTabs)||$u(t.draftTabs??[],i.draftTabs)||ed(t.draftTitles??{},i.draftTitles)||(t.activeTab??null)!==e.activeId||n&&ed(t.remoteTabs??{},i.remoteTabs))}function nd(e){return!e||e.text.length===0&&e.attachments.length===0}function rd(e,t){return!e||e.text!==t.text||e.attachments.length!==t.attachments.length?!1:e.attachments.every((e,n)=>e===t.attachments[n])}function id(e,t,n){if(nd(n)){if(e[t]===void 0)return e;let{[t]:n,...r}=e;return r}return rd(e[t],n)?e:{...e,[t]:n}}function ad(e,t){let n=Object.keys(e);if(n.length===0)return e;let r=new Set(t);if(n.every(e=>r.has(e)))return e;let i={};for(let t of n)r.has(t)&&(i[t]=e[t]);return i}function od(e=500){let t=sd(e);return{size:t,rendered:t}}function sd(e){return Number.isFinite(e)?Math.max(1,Math.round(e)):500}function cd(e,t){let n=sd(t);return e.size===n&&e.rendered===n?e:{size:n,rendered:n}}function ld(e,t,n=100){let r=Math.max(0,Math.floor(t)),i=Math.max(1,Math.floor(n));if(e.rendered>=r)return e;let a=Math.min(r,e.rendered+i);return a===e.rendered?e:{size:e.size,rendered:a}}function ud(e,t,n){let r=Math.min(Math.max(0,Math.floor(n)),Math.max(0,Math.floor(t)));return r<=e.rendered?e:{size:e.size,rendered:r}}function dd(e){return e.rendered===e.size?e:{size:e.size,rendered:e.size}}function fd(e,t){let n=e.length,r=Math.min(n,Math.max(t.size,t.rendered)),i=Math.max(0,n-r);return{start:i,items:i===0?e.slice():e.slice(i),hiddenAbove:i,hasMore:i>0,total:n}}function pd(e,t=48){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function md(e,t=24){return e.scrollTop<=t}var hd=2e3;function gd(e,t=hd,n=Date.now){let r=-1/0,i=null,a=()=>{i=null,r=n(),e()};return{request(){if(i!==null)return;let e=r+t-n();e<=0?a():i=setTimeout(a,e)},dispose(){i!==null&&(clearTimeout(i),i=null)}}}var _d=3e3;function vd(e){let{balance:t}=e.credits;if(typeof e.credits.plan!=`number`&&typeof e.credits.topup!=`number`)return{balance:t,plan:null,topup:null,hasSplit:!1};let n=e.credits.plan??Math.max(0,t-(e.credits.topup??0));return{balance:t,plan:n,topup:e.credits.topup??Math.max(0,t-n),hasSplit:!0}}function yd(e){return e.credits.monthlyGrant>0?e.credits.monthlyGrant:_d}function bd(e){if(!e)return`ok`;let{balance:t}=e.credits;return t<=0?`empty`:t<=yd(e)*.1?`low`:`ok`}function xd(e){if(!e)return null;let t=bd(e);if(t===`ok`)return null;let n=Sd(e.credits.balance);return t===`empty`?{level:t,text:`No credits left — a priced model will be refused. Free models still run, on every plan.`}:{level:t,text:`Running low: ${n} credits left. Free models still run, on every plan.`}}function Sd(e){return e.toLocaleString(`en-US`,{maximumFractionDigits:0})}function Cd(e,t){return!t||t.providerId!==`oonacode`?!1:(t.poolCredits??0)!==(e?.providerId===`oonacode`?e.poolCredits??0:0)}var wd=[`desktop`,`host`,`cli`,`engine`],Td={desktop:`Desktop app`,host:`Host service`,cli:`oona CLI`,engine:`Agent engine`},Ed={available:!1,components:[],version:``,channel:``,publishedAt:``,notes:``},G=/(\d+(?:\.\d+)*(?:[-+][0-9A-Za-z.-]+)?)\s*$/;function Dd(e){return typeof e.version==`string`&&e.version.trim()?e.version.trim():G.exec(e.name??``)?.[1]??null}function Od(e){let[t=``,n=``]=(e.trim().replace(/^v/i,``).split(`+`)[0]??``).split(`-`,2);return{nums:t.split(`.`).map(e=>{let t=Number.parseInt(e,10);return Number.isFinite(t)?t:0}).filter((e,t)=>t<4),pre:n?n.split(`.`):[]}}function kd(e,t){let n=Od(e),r=Od(t),i=Math.max(n.nums.length,r.nums.length);for(let e=0;e<i;e++){let t=n.nums[e]??0,i=r.nums[e]??0;if(t!==i)return t<i?-1:1}if(n.pre.length===0&&r.pre.length===0)return 0;if(n.pre.length===0)return 1;if(r.pre.length===0)return-1;let a=Math.max(n.pre.length,r.pre.length);for(let e=0;e<a;e++){let t=n.pre[e],i=r.pre[e];if(t===i)continue;if(t===void 0)return-1;if(i===void 0)return 1;let a=Number.parseInt(t,10),o=Number.parseInt(i,10);return Number.isFinite(a)&&Number.isFinite(o)&&/^\d+$/.test(t)&&/^\d+$/.test(i)?a<o?-1:1:t<i?-1:1}return 0}function Ad(e,t){return!e||!t?!1:kd(e,t)===1}function jd(e){if(typeof e!=`object`||!e)return null;let t=e,n=typeof t.version==`string`?t.version:``;if(!n)return null;let r=Array.isArray(t.assets)?t.assets.filter(e=>typeof e==`object`&&!!e):[];return{version:n,channel:typeof t.channel==`string`?t.channel:`stable`,publishedAt:typeof t.publishedAt==`string`?t.publishedAt:``,notes:typeof t.notes==`string`?t.notes:``,assets:r}}function Md(e,t){if(!e||!e.version)return Ed;let n=new Map;for(let t of e.assets??[]){let e=typeof t?.kind==`string`?t.kind:``;!e||n.has(e)||n.set(e,t)}let r=[];for(let i of wd){let a=t[i];if(typeof a!=`string`||!a.trim())continue;let o=n.get(i),s=(o?Dd(o):null)??(i===`desktop`?e.version:null);!s||!Ad(s,a)||r.push({component:i,label:Td[i],current:a.trim(),latest:s,url:o?.url?o.url:null,notes:typeof o?.notes==`string`?o.notes:``})}return{available:r.length>0,components:r,version:e.version,channel:e.channel,publishedAt:e.publishedAt,notes:e.notes}}function Nd(e,t=null){return!e||!e.trim()?null:`${e.trim().replace(/\/+$/,``)}${Ws(t)}`}function Pd(e){return e.bridge?.appChannel??e.info?.cliChannel??`stable`}function Fd(e,t){return Gs(e,t)}var Id={phase:`idle`,version:``,percent:0,transferred:0,total:0,bytesPerSecond:0,error:``,notice:``};function Ld(e){return e===`ready`||e===`installing`}function Rd(e,t){let n=t.version||e.version;switch(t.phase){case`checking`:return Ld(e.phase)?e:{...Id,phase:`checking`,version:n};case`available`:return Ld(e.phase)?e:{...Id,phase:`available`,version:n};case`not-available`:return Ld(e.phase)?e:{...Id,version:n};case`downloading`:return{...Id,phase:`downloading`,version:n,percent:Math.max(0,Math.min(100,t.percent)),transferred:t.transferred,total:t.total,bytesPerSecond:t.bytesPerSecond};case`downloaded`:return{...Id,phase:`ready`,version:n,percent:100};case`installing`:return{...Id,phase:`installing`,version:n,percent:100,notice:t.message||(e.phase===`installing`?e.notice:``)};case`error`:return{...Id,phase:`error`,version:n,error:t.message}}}function zd(e){switch(e.install.phase){case`ready`:case`installing`:return`ready`;case`downloading`:return`downloading`;case`available`:return`available`;default:return e.manifestAvailable?`available`:`idle`}}var Bd=[`B`,`KB`,`MB`,`GB`];function Vd(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=e,n=0;for(;t>=1024&&n<Bd.length-1;)t/=1024,n+=1;return`${t>=10||n===0?Math.round(t):t.toFixed(1)} ${Bd[n]}`}function Hd(e){return!Number.isFinite(e)||e<=0?``:`${Vd(e)}/s`}var Ud=[`host`,`cli`,`engine`];function Wd(e,t,n={}){let r=e.length>0,i=n.shellEngaged===!0||e.includes(`desktop`)||!r&&!n.checked,a=r&&e.some(e=>Ud.includes(e)),o=i&&t.desktop,s=a&&t.terminal,c=e.filter(e=>e===`desktop`?i&&!o:a&&!s),l=!i&&!a;return{terminal:s,desktop:o,manual:c,upToDate:l,label:l?`Up to date`:s&&o?`Update everything`:o?`Update and relaunch`:s?`Update now`:`How to update`}}function Gd(e,t){return e===`desktop`?t.desktop?`Downloads here, then OonaCode restarts`:`Run the installer from the website`:t.terminal?`Installed by the oona installer — updated from here`:"Run `oona update` in a terminal"}var Kd={running:!1,message:``,failed:!1};function qd(e,t){switch(e){case`agentFinished`:return t.notifications.agentFinished;case`permissionRequired`:return t.notifications.permissionRequired;case`errorOccurred`:return t.notifications.errorOccurred;default:return!1}}function Jd(e,t){let n=t.sessionTitle||`OonaCode`,r=e=>t.sessionId?{...e,sessionId:t.sessionId}:e;switch(e){case`permissionRequired`:return t.toolName===`AskUserQuestion`?r({title:`Question for you`,body:`${n} — the agent is asking you a question.`,focusOnClick:!0}):r({title:`Permission required`,body:`${n} — the agent wants to run ${t.toolName??`a tool`}.`,focusOnClick:!0});case`errorOccurred`:return r({title:`OonaCode error`,body:`${n} — ${t.detail??`the agent reported an error`}.`,focusOnClick:!0});default:return r({title:t.isError?`Agent needs attention`:`Agent finished`,body:t.isError?`${n} — the turn ended with an error.`:`${n} — turn complete.`,focusOnClick:!0,silent:!t.isError})}}async function Yd(e,t={}){if(t.documentHasFocus?.()===!0)return!1;if(t.bridgeNotify)try{return await t.bridgeNotify(e)}catch{return!1}let n=t.browser;if(!n)return!1;try{if(n.permission===`granted`||n.permission==="default"&&n.requestPermission&&await n.requestPermission()===`granted`)return n.create(e.title,{body:e.body,silent:e.silent===!0}),!0}catch{}return!1}function Xd(){if(typeof window>`u`)return{};let e=window.oonacode,t=globalThis.Notification;return{bridgeNotify:e?.notify?t=>e.notify(t):void 0,browser:t?{permission:t.permission,create:(e,n)=>{new t(e,n)},requestPermission:()=>t.requestPermission()}:void 0,documentHasFocus:()=>typeof document<`u`&&typeof document.hasFocus==`function`&&document.hasFocus()}}var Zd=o((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})),K=o(((e,t)=>{t.exports=Zd()}))(),Qd=2e3,$d=2500;function ef(){return{connection:{status:`idle`,detail:null,hostName:null,hostId:null,appVersion:null},info:null,bundleAppVersion:null,hostUpdatedTo:null,sessions:[],sessionLinks:{},sessionsTotal:0,sessionsLoading:!1,sessionsError:null,sessionListLoaded:!1,search:``,projects:[],vaultProjects:[],assignProjectSessionId:null,projectsStartNew:!1,currentSessionId:null,tabs:Hu(),drafts:{},pendingRouting:{},transcripts:{},transcriptLoading:{},files:{},unsent:{},composerQuote:null,windows:{},modelBoundaries:{},providers:[],activeProviderId:null,models:{},settings:null,prefs:{...Ys},prefsBackend:`unknown`,account:null,plan:null,accountLoaded:!1,accountLink:null,emailVerification:null,recoveryKey:null,credentials:[],claudeSubscription:null,claudeLogin:null,oauthLogin:null,engineDownload:null,importProgress:null,doctor:null,remote:{hosts:[],supported:!0,loading:!1,loaded:!1,sessions:{},sessionOwners:{},tabs:{},reason:null,stale:!1},update:Ed,updateChecking:!1,updateInstall:Id,terminalUpdate:Kd,updateDismissed:null,toasts:[],ui:{sidebarOpen:!0,dialog:`none`,connectProviderId:null,claudeLoginMode:null,oauthLoginProviderId:null,settingsSection:null}}}function tf(e,t){if(t===e.tabs&&t.activeId===e.currentSessionId)return e;let n=e.drafts;for(let r of e.tabs.ids)t.ids.includes(r)||e.drafts[r]===void 0||(n===e.drafts&&(n={...n}),delete n[r]);return{...e,tabs:t,drafts:n,unsent:ad(e.unsent,t.ids),currentSessionId:t.activeId}}function nf(e,t){return e.windows[t]??od(e.prefs.transcriptWindowSize)}function rf(e,t){let n=Object.entries(e);if(n.length===0)return e;let r=!1,i={};for(let[e,a]of n){let n=cd(a,t);n!==a&&(r=!0),i[e]=n}return r?i:e}function af(e,t){return{...e,prefs:t,windows:rf(e.windows,t.transcriptWindowSize)}}function of(e,t){switch(t.type){case`connection`:return{...e,connection:{...e.connection,status:t.status,detail:t.detail??null}};case`welcome`:return{...e,connection:{...e.connection,hostName:t.hostName,hostId:t.hostId,appVersion:t.appVersion}};case`info`:{let n=t.info.account??null,r=e.bundleAppVersion??t.info.appVersion;return{...e,info:t.info,bundleAppVersion:r,hostUpdatedTo:t.info.appVersion===r?null:t.info.appVersion,activeProviderId:t.info.activeProviderId,account:n??e.account,accountLoaded:e.accountLoaded||n!==null,accountLink:n?.link??e.accountLink,connection:{...e.connection,hostName:t.info.hostName,hostId:t.info.hostId,appVersion:t.info.appVersion}}}case`sessions`:return{...e,sessions:t.sessions,sessionsTotal:t.total,sessionsLoading:!1,sessionsError:null,sessionListLoaded:!0,...t.links?{sessionLinks:Object.fromEntries(t.links.map(e=>[e.sessionId,e]))}:{}};case`session_link`:{let n={...e.sessionLinks};return t.link?n[t.sessionId]=t.link:delete n[t.sessionId],{...e,sessionLinks:n}}case`sessions_loading`:return{...e,sessionsLoading:t.loading};case`sessions_error`:return{...e,sessionsError:t.error,sessionsLoading:!1};case`search`:return{...e,search:t.value};case`session_upsert`:{let n=e.sessions.findIndex(e=>e.id===t.session.id),r=n>=0?e.sessions.map(e=>e.id===t.session.id?t.session:e):[t.session,...e.sessions],i=e.transcripts[t.session.id],a=n>=0?e.sessions[n]:void 0,o=a!==void 0&&a.cwd!==t.session.cwd,s=i&&o?ll(i,{type:`local_system`,subtype:`workspace`,text:`Workspace changed to ${t.session.cwd} — the engine restarts there on your next message; the conversation continues.`}):i,c=s?{...e.transcripts,[t.session.id]:ll(s,{type:`session`,session:t.session})}:e.transcripts;return{...e,sessions:r,sessionsTotal:n>=0?e.sessionsTotal:e.sessionsTotal+1,transcripts:c}}case`file_open`:{let n=e.files[t.sessionId]??{open:[],active:null},r=n.open.includes(t.path)?n.open:[...n.open,t.path];return{...e,files:{...e.files,[t.sessionId]:{open:r,active:t.path}}}}case`file_close`:{let n=e.files[t.sessionId];if(!n||!n.open.includes(t.path))return e;let r=n.open.indexOf(t.path),i=n.open.filter(e=>e!==t.path),a=n.active===t.path?i[Math.min(r,i.length-1)]??null:n.active;return{...e,files:{...e.files,[t.sessionId]:{open:i,active:a}}}}case`file_show_chat`:{let n=e.files[t.sessionId];return!n||n.active===null?e:{...e,files:{...e.files,[t.sessionId]:{...n,active:null}}}}case`file_activate`:{let n=e.files[t.sessionId];return!n||!n.open.includes(t.path)||n.active===t.path?e:{...e,files:{...e.files,[t.sessionId]:{...n,active:t.path}}}}case`session_removed`:{let{[t.id]:n,...r}=e.transcripts,{[t.id]:i,...a}=e.files,{[t.id]:o,...s}=e.windows,{[t.id]:c,...l}=e.pendingRouting,{[t.id]:u,...d}=e.remote.tabs,{[t.id]:f,...p}=e.remote.sessionOwners,{[t.id]:m,...h}=e.prefs.remoteTabs,g={...e,sessions:e.sessions.filter(e=>e.id!==t.id),sessionsTotal:Math.max(0,e.sessionsTotal-1),transcripts:r,windows:s,files:a,pendingRouting:l,remote:{...e.remote,tabs:d,sessionOwners:p,sessions:Object.fromEntries(Object.entries(e.remote.sessions).map(([e,n])=>[e,Array.isArray(n)?n.filter(e=>e.id!==t.id):n]))},prefs:{...e.prefs,remoteTabs:h}};return tf(g,Gu(g.tabs,t.id))}case`projects`:return{...e,projects:t.projects};case`vault_projects`:return{...e,vaultProjects:t.projects};case`assign_project_dialog`:return{...e,assignProjectSessionId:t.sessionId,ui:{...e.ui,dialog:t.sessionId?`assign-project`:`none`}};case`select_session`:{let n={...e,ui:{...e.ui,dialog:`none`}};return t.id===null?{...n,currentSessionId:null}:tf(n,Uu(n.tabs,t.id))}case`close_tab`:return tf(e,Gu(e.tabs,t.id));case`unsent`:{if(!e.tabs.ids.includes(t.sessionId)||t.onlyIfEmpty&&!nd(e.unsent[t.sessionId]))return e;let n=id(e.unsent,t.sessionId,t.message);return n===e.unsent?e:{...e,unsent:n}}case`composer_quote`:return{...e,composerQuote:{sessionId:t.sessionId,text:t.text,seq:(e.composerQuote?.seq??0)+1}};case`move_tab`:return tf(e,Ku(e.tabs,t.from,t.to));case`cycle_tab`:return tf(e,Ju(e.tabs,t.delta));case`restore_tabs`:{let n=e.tabs.ids.filter(e=>!t.ids.includes(e)),r={...e.drafts},i=new Set(e.sessions.map(e=>e.id));for(let e of t.drafts)!r[e.id]&&!i.has(e.id)&&(r[e.id]=e);let a=e.currentSessionId??t.activeId;return tf({...e,drafts:r},Hu([...t.ids,...n],a))}case`draft_open`:return tf({...e,drafts:{...e.drafts,[t.draft.id]:t.draft}},Uu(e.tabs,t.draft.id));case`draft_patch`:{let n=e.drafts[t.id];return n?{...e,drafts:{...e.drafts,[t.id]:{...n,...t.patch}}}:e}case`draft_materialized`:{if(!e.drafts[t.id])return e;let{[t.id]:n,...r}=e.drafts;return{...e,drafts:r}}case`pending_routing`:if(t.routing===null){if(!e.pendingRouting[t.sessionId])return e;let{[t.sessionId]:n,...r}=e.pendingRouting;return{...e,pendingRouting:r}}return{...e,pendingRouting:{...e.pendingRouting,[t.sessionId]:t.routing}};case`transcript`:{let n=e.transcripts[t.sessionId]??ol(t.sessionId),r=ll(n,t.action);if(r===n)return e;let i={...e,transcripts:{...e.transcripts,[t.sessionId]:r}};if(r.items.length>n.items.length){let e=nf(i,t.sessionId),n=dd(e);if(n!==e||i.windows[t.sessionId]===void 0)return{...i,windows:{...i.windows,[t.sessionId]:n}}}return i}case`transcript_loading`:return{...e,transcriptLoading:{...e.transcriptLoading,[t.sessionId]:t.loading}};case`window_grow`:{let n=nf(e,t.sessionId),r=ld(n,t.total);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_reveal`:{let n=nf(e,t.sessionId),r=ud(n,t.rendered,t.total);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_trim`:{let n=nf(e,t.sessionId),r=dd(n);return r===n&&e.windows[t.sessionId]!==void 0?e:{...e,windows:{...e.windows,[t.sessionId]:r}}}case`window_size`:{let n={};for(let[r,i]of Object.entries(e.windows))n[r]=cd(i,t.size);return{...e,windows:n}}case`model_boundary`:return{...e,modelBoundaries:{...e.modelBoundaries,[t.sessionId]:t.boundary}};case`providers`:return{...e,providers:t.providers,activeProviderId:t.activeProviderId};case`active_provider`:return{...e,activeProviderId:t.activeProviderId};case`models`:return{...e,models:{...e.models,[t.providerId]:t.response}};case`settings`:{let n={...e,settings:t.settings};return t.settings.uiPrefs&&(n=af(n,ac(t.settings.uiPrefs)),n.prefsBackend=`brain`),n}case`prefs`:return af(e,t.prefs);case`prefs_backend`:return{...e,prefsBackend:t.backend};case`plan`:return{...e,plan:t.plan};case`account`:return{...e,account:t.account,accountLoaded:!0,accountLink:t.account.link??e.accountLink,emailVerification:t.account.loggedIn?null:e.emailVerification};case`account_unavailable`:return e.accountLoaded?e:{...e,accountLoaded:!0};case`account_link`:return{...e,accountLink:t.link};case`email_verification`:return{...e,emailVerification:t.pending};case`recovery_key`:return{...e,recoveryKey:t.recoveryKey};case`credentials`:return{...e,credentials:t.credentials};case`claude_subscription`:return{...e,claudeSubscription:t.status};case`claude_login`:return{...e,claudeLogin:t.state};case`oauth_login`:return{...e,oauthLogin:t.state};case`oauth_login_provider`:return{...e,ui:{...e.ui,oauthLoginProviderId:t.providerId}};case`engine_download`:return{...e,engineDownload:t.state};case`import_progress`:return{...e,importProgress:t.progress};case`doctor`:return{...e,doctor:t.checks};case`remote_hosts`:{let n=e.remote.tabs;for(let r of t.hosts){let t=r.label||r.hostName;for(let[i,a]of Object.entries(n))a.hostId===r.hostId&&a.hostName!==t&&(n===e.remote.tabs&&(n={...n}),n[i]={...a,hostName:t})}return{...e,remote:{...e.remote,hosts:t.hosts,tabs:n,loading:!1,loaded:!0,reason:t.reason??null,stale:t.stale??!1}}}case`remote_unsupported`:return{...e,remote:{...e.remote,supported:!1,loading:!1,loaded:!0}};case`remote_loading`:return{...e,remote:{...e.remote,loading:t.loading}};case`remote_loaded`:return{...e,remote:{...e.remote,loading:!1,loaded:!0}};case`remote_sessions`:{let n={...e.remote.sessionOwners};for(let e of t.sessions)n[e.id]=t.hostId;return{...e,remote:{...e.remote,sessions:{...e.remote.sessions,[t.hostId]:t.sessions},sessionOwners:n}}}case`remote_tab`:return{...e,remote:{...e.remote,tabs:{...e.remote.tabs,[t.tab.sessionId]:t.tab},sessionOwners:{...e.remote.sessionOwners,[t.tab.sessionId]:t.tab.hostId}}};case`remote_tab_state`:{let n=e.remote.tabs[t.sessionId];if(!n)return e;let r={...n,state:t.state,detail:t.detail,live:t.state===`attached`,...t.pairingId===void 0?{}:{pairingId:t.pairingId}};return{...e,remote:{...e.remote,tabs:{...e.remote.tabs,[t.sessionId]:r}}}}case`remote_tab_closed`:{if(!e.remote.tabs[t.sessionId])return e;let{[t.sessionId]:n,...r}=e.remote.tabs;return{...e,remote:{...e.remote,tabs:r}}}case`update_status`:return{...e,update:t.status,updateChecking:!1};case`update_checking`:return{...e,updateChecking:t.checking};case`update_event`:{let n=Rd(e.updateInstall,t.event),r=n.phase===`downloading`&&e.ui.dialog===`none`?`update`:e.ui.dialog;return{...e,updateInstall:n,ui:e.ui.dialog===r?e.ui:{...e.ui,dialog:r}}}case`terminal_update`:{let n=t.terminal.running&&e.ui.dialog===`none`?`update`:e.ui.dialog;return{...e,terminalUpdate:t.terminal,ui:e.ui.dialog===n?e.ui:{...e.ui,dialog:n}}}case`update_dismissed`:return{...e,updateDismissed:t.version};case`toast`:{let n=e.toasts.filter(e=>e.id!==t.toast.id);return{...e,toasts:[...n.slice(-4),t.toast]}}case`dismiss_toast`:return{...e,toasts:e.toasts.filter(e=>e.id!==t.id)};case`sidebar`:return{...e,ui:{...e.ui,sidebarOpen:t.open}};case`projects_new`:return{...e,projectsStartNew:!0};case`dialog`:return{...e,projectsStartNew:t.dialog===`projects`&&e.projectsStartNew,ui:{...e.ui,dialog:t.dialog,claudeLoginMode:t.dialog===`claude-login`?e.ui.claudeLoginMode:null,oauthLoginProviderId:t.dialog===`oauth-login`?e.ui.oauthLoginProviderId:null,connectProviderId:t.connectProviderId??null}};case`connect_provider`:return{...e,ui:{...e.ui,connectProviderId:t.providerId}};case`claude_login_mode`:return{...e,ui:{...e.ui,claudeLoginMode:t.mode}};case`settings_section`:return{...e,ui:{...e.ui,settingsSection:t.section}}}}function sf(e){return e.type===`subagent_activity`||e.type===`agent`&&ee(e.message)}function cf(){return typeof document<`u`&&document.visibilityState===`hidden`}function lf(e,t){switch(e.type){case`welcome`:return[{type:`welcome`,hostName:e.hostName,hostId:e.hostId,appVersion:e.appVersion}];case`agent`:case`permission_request`:case`permission_resolved`:case`turn_started`:case`turn_finished`:case`prompt_delivered`:case`subagent_activity`:case`prompt_cancelled`:return[{type:`transcript`,sessionId:e.sessionId,action:{type:`frame`,frame:e,receivedAt:t}}];case`session_state`:return[{type:`session_upsert`,session:e.session},{type:`transcript`,sessionId:e.session.id,action:{type:`frame`,frame:e,receivedAt:t}}];case`claude_login`:return[{type:`claude_login`,state:e.state}];case`engine_download`:return[{type:`engine_download`,state:e.state}];case`import_progress`:return[{type:`import_progress`,progress:e.finished?null:e}];case`pool_notice`:{let t=e.retryAfterSec?` Retrying by itself in ${e.retryAfterSec} s.`:``;return[{type:`toast`,toast:{id:`t-pool-${e.code}`,kind:`info`,text:`${e.message}${t}`}}]}case`error`:return e.sessionId?[{type:`transcript`,sessionId:e.sessionId,action:{type:`frame`,frame:e,receivedAt:t}}]:[{type:`toast`,toast:{id:`t-${t}`,kind:`error`,text:`${e.code}: ${e.message}`}}];default:return[]}}var uf=36e5,df=1500;function ff(e,t,n){if(e.type===`welcome`)return[];let r=`sessionId`in e?e.sessionId:e.type===`session_state`?e.session.id:void 0;return typeof r==`string`&&r!==t?[]:lf(e,n)}function pf(e,t){return e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)}var mf=(0,v.createContext)(null);function q(){let e=(0,v.useContext)(mf);if(!e)throw Error(`useApp must be used inside <AppProvider>`);return e}function hf(){let{state:e}=q();return e.currentSessionId?e.transcripts[e.currentSessionId]??null:null}function gf(){let{state:e}=q(),t=e.currentSessionId;return t?e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)??null:null}function _f(){let{state:e}=q(),t=e.currentSessionId;return t?e.drafts[t]??null:null}function vf(){return typeof window<`u`&&window.oonacode?`desktop`:`host`}var yf=0;function bf(e){return e.status===401&&/password|credential/i.test(e.message)}function xf(){try{return typeof window<`u`?window.localStorage:null}catch{return null}}function Sf({api:e,socket:t,relay:n=null,initialSessionId:r,onUnauthorized:i,storage:a,fetchImpl:o,reportError:s,streamBatchMs:c=Zc(),children:l}){let[u,d]=(0,v.useReducer)(of,void 0,ef),f=(0,v.useRef)(u),p=(0,v.useRef)(!1),m=u.updateInstall.phase,h=u.terminalUpdate.running;(0,v.useEffect)(()=>{h||m!==`downloading`&&m!==`installing`&&(p.current=!1)},[m,h]),f.current=u;let g=(0,v.useRef)(i);g.current=i;let _=(0,v.useRef)(s);_.current=s;let y=(0,v.useRef)(a);y.current=a===void 0?xf():a;let b=(0,v.useRef)(o);b.current=o;let x=(0,v.useRef)(null),S=(0,v.useRef)({tail:Promise.resolve(),latest:0}),C=(0,v.useRef)(new Set),w=(0,v.useRef)(new Set),T=(0,v.useRef)(new Map),E=(0,v.useRef)(new Map),D=(0,v.useRef)(()=>{}),O=(0,v.useRef)(null);O.current===null&&(O.current=gd(()=>D.current())),(0,v.useEffect)(()=>()=>O.current?.dispose(),[]);let k=(0,v.useMemo)(()=>{let r=(e,t)=>{yf+=1,d({type:`toast`,toast:{id:`toast-${yf}`,kind:e,text:t}})},i=(e,t)=>{if(e instanceof Gc&&e.isUnauthorized&&!bf(e)){g.current?.();return}let n=t?`${t}: ${Ou(e)}`:Ou(e);r(`error`,n),_.current?.(e,{source:`action`,...t?{action:t}:{}})},a=e=>r(`error`,`This host build cannot ${e} yet — update OonaCode on this PC`),o=()=>f.current.currentSessionId,s=e=>typeof e==`string`?f.current.drafts[e]??null:null,l=e=>Iu(f.current.drafts,e),u=async t=>{d({type:`sessions_loading`,loading:!0});try{let n=(t??f.current.search).trim(),r=await e.listSessions(n?{search:n,limit:200,links:!0}:{limit:200,links:!0});d({type:`sessions`,sessions:r.sessions,total:r.total,...r.links?{links:r.links}:{}})}catch(e){d({type:`sessions_error`,error:Ou(e)}),i(e,`Sessions`)}},m=async()=>{try{d({type:`vault_projects`,projects:(await e.listVaultProjects()).projects})}catch{f.current.vaultProjects.length===0&&d({type:`vault_projects`,projects:[]})}},h=async()=>{try{d({type:`projects`,projects:(await e.listProjects()).projects})}catch(e){i(e,`Projects`)}await m()},v=async()=>{try{let t=await e.listProviders();d({type:`providers`,providers:t.providers,activeProviderId:t.activeProviderId})}catch(e){i(e,`Providers`)}},C=async t=>{try{d({type:`models`,providerId:t,response:await e.listModels({providerId:t})})}catch(e){i(e,`Models`)}},w=async(t,n,r)=>{try{let i=await e.setActiveProvider({providerId:t,...n?{model:n}:{},...r===void 0?{}:{variantId:r}});d({type:`active_provider`,activeProviderId:i.activeProviderId}),await v()}catch(e){i(e,`Provider`)}},k=async()=>{try{d({type:`settings`,settings:await e.getSettings()})}catch(e){i(e,`Settings`)}},A=async()=>{try{d({type:`account`,account:await e.getAccount()})}catch(e){d({type:`account_unavailable`}),i(e,`Account`)}},ee=async()=>{try{d({type:`credentials`,credentials:(await e.listCredentials()).credentials})}catch(e){if(e instanceof Gc&&(e.code===`vault_locked`||e.status===423)){d({type:`credentials`,credentials:[]});return}i(e,`Credentials`)}},j=async()=>{try{d({type:`claude_subscription`,status:await e.claudeSubscriptionStatus()})}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.(),d({type:`claude_subscription`,status:null})}},M=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginStart(t)})}catch(e){r(`error`,`Sign-in: ${Ou(e)}`)}},te=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginState(t)})}catch{}},ne=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginCancel(t)})}catch(e){r(`error`,`Sign-in: ${Ou(e)}`)}},N=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginState()})}catch{}},P=async()=>{try{let t=await e.claudeSubscriptionLogin();return t.login&&d({type:`claude_login`,state:t.login}),t}catch(e){return r(`error`,`Claude login: ${Ou(e)}`),null}},re=async t=>{try{return d({type:`claude_login`,state:await e.claudeLoginCode({code:t})}),!0}catch(e){return r(`error`,`Claude login: ${Ou(e)}`),!1}},ie=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginCancel()})}catch(e){r(`error`,`Claude login: ${Ou(e)}`)}},ae=async()=>{try{let t=await e.info();x.current=t,d({type:`info`,info:t})}catch(e){i(e,`Host`)}},oe=async()=>{let t=(x.current??f.current.info)?.appVersion??``;for(let n=0;n<8;n++){try{let n=await e.info();if(x.current=n,d({type:`info`,info:n}),n.appVersion!==t)return}catch{}await new Promise(e=>setTimeout(e,df))}},se=async()=>{if(e.plan)try{let{plan:t}=await e.plan();d({type:`plan`,plan:t})}catch{d({type:`plan`,plan:null})}};D.current=()=>void se();let F=()=>{e.plan&&O.current?.request()},ce=async()=>{if(!e.listHosts||!f.current.remote.supported){d({type:`remote_loaded`});return}d({type:`remote_loading`,loading:!0});try{let t=await e.listHosts();d({type:`remote_hosts`,hosts:t.hosts,reason:t.reason??null,stale:t.stale??!1})}catch(e){Yc(e)?d({type:`remote_unsupported`}):(d({type:`remote_loaded`}),e instanceof Gc&&e.isUnauthorized&&g.current?.())}},le=async t=>{if(!e.listHostSessions)return null;try{let n=await e.listHostSessions(t);return d({type:`remote_sessions`,hostId:t,sessions:n.sessions}),n.sessions}catch(e){return Yc(e)?d({type:`remote_unsupported`}):i(e,`Remote sessions`),null}},ue=async e=>{await le(e)},de=e=>{let t=f.current;if(t.drafts[e]||t.remote.tabs[e]||T.current.has(e))return null;let n=t.remote.sessionOwners[e]??t.prefs.remoteTabs[e];if(!n)return null;let r=t.remote.hosts.find(e=>e.hostId===n);return r&&!r.isSelf?n:null},fe=e=>{if(e!==null){let t=de(e);if(t!==null){ve(t,e);return}}d({type:`select_session`,id:e})},pe=e=>e?f.current.remote.tabs[e]??null:null,me=(e,t)=>T.current.get(e)?.send(t)??!1,he=e=>{let t=pe(e);r(`error`,`${t?.hostName??`That PC`} is offline — this transcript is read-only until it comes back.`)},ge=async(t,n)=>{if(e.listHostSessionEntries){d({type:`transcript_loading`,sessionId:n,loading:!0});try{let r=await e.listHostSessionEntries(t,n,{limit:500,tail:1});r.entries.length>0&&d({type:`transcript`,sessionId:n,action:{type:`entries`,entries:r.entries}})}catch(e){e instanceof Gc&&e.isUnauthorized?g.current?.():Yc(e)||i(e,`Remote history`)}finally{d({type:`transcript_loading`,sessionId:n,loading:!1})}}},_e=e=>{E.current.get(e)?.dispose(),E.current.delete(e);let t=T.current.get(e);t&&(T.current.delete(e),t.detach(),d({type:`remote_tab_closed`,sessionId:e}))},ve=async(e,t,r={})=>{let i=f.current,a=i.remote.hosts.find(t=>t.hostId===e)??null,o=a?.label||a?.hostName||e,s=(i.remote.sessions[e]??[]).find(e=>e.id===t);if(r.draft||(s?d({type:`session_upsert`,session:s}):(async()=>{let n=(await le(e))?.find(e=>e.id===t);n&&d({type:`session_upsert`,session:n})})()),d({type:`remote_tab`,tab:{sessionId:t,hostId:e,hostName:o,pairingId:null,state:`unavailable`,detail:null,live:!1}}),r.focus!==!1&&d({type:`select_session`,id:t}),r.draft||ge(e,t),!n){d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:`This window cannot bridge to other PCs yet.`});return}T.current.get(t)?.detach(),E.current.get(t)?.dispose();let l=Qc({isStreamFrame:sf,deliver:e=>{for(let t of e)u(t)},batchMs:c,isHidden:cf});E.current.set(t,l);let u=e=>{let n=Date.now(),r=e.type===`session_state`?pf(f.current,e.session.id):void 0;for(let r of ff(e,t,n))d(r);e.type===`session_state`&&f.current.drafts[e.session.id]&&d({type:`draft_materialized`,id:e.session.id}),e.type===`session_state`&&Cd(r,e.session)&&F()},p=n.attach({hostId:e,sessionId:t,onFrame:e=>l.push(e),onState:e=>{if(d({type:`remote_tab_state`,sessionId:t,state:e.state,detail:e.detail,pairingId:e.pairingId}),e.state!==`attached`)return;let r=f.current.transcripts[t]?.lastSeq??0;n.send(e.pairingId,{type:`subscribe`,sessionId:t,afterSeq:r})}});T.current.set(t,p),d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:null,pairingId:p.pairingId})},ye=async t=>{let n=Bu(f.current.prefs,t);if(f.current={...f.current,prefs:n},d({type:`prefs`,prefs:n}),t.transcriptWindowSize!==void 0&&d({type:`window_size`,size:n.transcriptWindowSize}),f.current.prefsBackend===`local`){zu(y.current,n);return}let r=S.current,i=++r.latest,a=r.tail.then(async()=>{if(i===r.latest)try{let t=await e.updateSettings({uiPrefs:n});i===r.latest&&d({type:`settings`,settings:t}),t.uiPrefs?d({type:`prefs_backend`,backend:`brain`}):zu(y.current,n)}catch(e){if(Vu(e)){d({type:`prefs_backend`,backend:`local`}),zu(y.current,n);return}e instanceof Gc&&e.isUnauthorized?g.current?.():zu(y.current,n)}});r.tail=a.catch(()=>void 0),await a},be=async t=>{let[n,r]=await Promise.all([e.getSession(t),e.listMessages(t)]);d({type:`session_upsert`,session:n}),d({type:`transcript`,sessionId:t,action:{type:`hydrate`,messages:r.messages,session:n}})},xe=e=>{d({type:`session_upsert`,session:e}),fe(e.id),h()},Se=async t=>{try{let n=await e.createSession(t);return xe(n),n}catch(e){return i(e,`New session`),null}},Ce=(e={})=>{let t=ku(Nu()),n=e.title?Fu(e.title):null;d({type:`draft_open`,draft:{...t,...n?{title:n}:{},...e.projectId?{projectId:e.projectId}:{}}})},we=async e=>{let t=f.current.remote.hosts.find(t=>t.hostId===e)??null,n=t?.label||t?.hostName||`That PC`;if(t&&!t.online){r(`error`,`${n} is offline — a new chat has to start on a PC that is awake.`);return}let i=ku(Nu());d({type:`draft_open`,draft:i}),await ve(e,i.id,{draft:!0})},I=async n=>{let r=f.current,i=Sc(r.providers,{providerId:n.providerId??r.activeProviderId,model:n.model??r.info?.activeModel??null,variantId:n.variantId}),a={sessionId:n.id,...n.projectDir?{cwd:n.projectDir}:{},...n.projectId?{projectId:n.projectId}:{},...n.title?{title:n.title}:{},...i.providerId?{providerId:i.providerId}:{},...i.variantId?{variantId:i.variantId}:{},...i.modelId?{model:i.modelId}:{},permissionMode:n.permissionMode??r.settings?.defaultPermissionMode??`default`},o;try{o=await e.createSession(a)}catch(t){let r=await e.getSession(n.id).catch(()=>null);if(!r)throw t;o=r}return d({type:`session_upsert`,session:o}),d({type:`draft_materialized`,id:n.id}),t.subscribe(o.id),h(),o},Te=async()=>e.scanClaudeSessions(),Ee=async(t,n)=>{let r=await e.importClaudeSessions({...t&&t.length>0?{ids:t}:{},...n?{overwrite:!0}:{}});return r.imported.length>0&&(await u(),h()),r},De=async t=>{if(!e.sessionLink)return null;try{let{link:n}=await e.sessionLink(t);return d({type:`session_link`,sessionId:t,link:n}),n}catch{return d({type:`session_link`,sessionId:t,link:null}),null}},Oe=async t=>{if(!e.syncSessionDown)return null;try{let n=await e.syncSessionDown(t);return d({type:`session_link`,sessionId:t,link:n.link}),n.added>0&&(await u(),f.current.tabs.ids.includes(t)&&await be(t)),n}catch(e){return i(e,`Sync`),null}},L=async(e=!1)=>{let t=f.current,n=t.settings?.gatewayUrl??t.account?.gatewayUrl??null,i=typeof window<`u`?window.oonacode:void 0,a=Nd(n,Pd({bridge:i,info:t.info})),o=e&&i?.checkForUpdates?i.checkForUpdates():null;if(o&&o.catch(()=>void 0),!a){e&&!o&&r(`info`,`Set a gateway URL in Settings to check for updates`);return}d({type:`update_checking`,checking:!0});try{let o=i?.fetchLatestRelease?await i.fetchLatestRelease(n):await(async()=>{let e=await(b.current??(e=>fetch(e,{credentials:`omit`})))(a);if(!e.ok)throw Error(`release feed returned ${e.status}`);return e.json()})(),s=x.current??t.info,c=Md(jd(o),{desktop:i?.appVersion??null,host:s?.appVersion??t.connection.appVersion??null,cli:s?.cliVersion??null,engine:s?.engine.version??null});d({type:`update_status`,status:c}),e&&r(c.available?`info`:`success`,c.available?`OonaCode ${c.version} is available (${c.components.length} component${c.components.length===1?``:`s`})`:`Everything is up to date`)}catch(t){d({type:`update_checking`,checking:!1}),e&&r(`error`,`Update check failed: ${Ou(t)}`)}};return{refreshInfo:ae,refreshSessions:u,scanClaudeSessions:Te,importClaudeSessions:Ee,refreshSessionLink:De,syncSessionDown:Oe,refreshProjects:h,refreshProviders:v,refreshModels:C,refreshSettings:k,refreshAccount:A,refreshCredentials:ee,refreshClaudeSubscription:j,startClaudeLogin:P,submitClaudeLoginCode:re,cancelClaudeLogin:ie,refreshClaudeLogin:N,startOauthLogin:M,refreshOauthLogin:te,cancelOauthLogin:ne,refreshHosts:ce,refreshPlan:se,refreshPlanSoon:F,refreshHostSessions:ue,openRemoteSession:ve,newRemoteTab:we,async renameHost(t,n){if(!e.updateHost){r(`error`,`This host build cannot rename devices yet`);return}try{let i=await e.updateHost(t,{label:n});d({type:`remote_hosts`,hosts:f.current.remote.hosts.map(e=>e.hostId===t?i:e),reason:f.current.remote.reason,stale:f.current.remote.stale}),r(`success`,`Device renamed`)}catch(e){Yc(e)?d({type:`remote_unsupported`}):i(e,`Rename device`)}},async runDoctor(){d({type:`doctor`,checks:null});try{d({type:`doctor`,checks:(await e.doctor()).checks})}catch(e){i(e,`Doctor`)}},setSearch(e){d({type:`search`,value:e})},selectSession:fe,closeTab(e){_e(e),d({type:`close_tab`,id:e})},rememberUnsent(e,t,n){d({type:`unsent`,sessionId:e,message:t,onlyIfEmpty:n})},quoteIntoComposer(e,t){d({type:`composer_quote`,sessionId:e,text:t})},moveTab(e,t){d({type:`move_tab`,from:e,to:t})},cycleTab(e){d({type:`cycle_tab`,delta:e})},newTab:Ce,createSession:Se,async deleteSession(n){if(l(n)){d({type:`close_tab`,id:n});return}try{await e.deleteSession(n),t.unsubscribe(n),d({type:`session_removed`,id:n})}catch(e){i(e,`Delete`)}},async deleteRemoteSession(n,r){try{if(!e.deleteHostSession)throw Error(`this PC is running an older OonaCode that cannot delete a chat on another device`);await e.deleteHostSession(n,r),t.unsubscribe(r),d({type:`session_removed`,id:r})}catch(e){i(e,`Delete`)}},async renameSession(t,n){try{d({type:`session_upsert`,session:await e.updateSession(t,{title:n})})}catch(e){i(e,`Rename`)}},refreshVaultProjects:m,async createVaultProject(t,n){try{let r=await e.createVaultProject({name:t,instructions:n});return await m(),r}catch(e){return i(e,`Project`),null}},async updateVaultProject(t,n){try{let r=await e.updateVaultProject(t,n);return await m(),r}catch(e){return i(e,`Project`),null}},async deleteVaultProject(t){try{return await e.deleteVaultProject(t),await m(),await u(),!0}catch(e){return i(e,`Project`),!1}},async setSessionProject(t,n){if(l(t))return d({type:`draft_patch`,id:t,patch:{projectId:n}}),!0;try{return d({type:`session_upsert`,session:await e.updateSession(t,{projectId:n})}),!0}catch(e){return i(e,`Project`),!1}},openNewProject(){d({type:`projects_new`}),d({type:`dialog`,dialog:`projects`})},openAssignProject(e){d({type:`assign_project_dialog`,sessionId:e})},renameTab(t,n){let r=Fu(n);if(l(t)){d({type:`draft_patch`,id:t,patch:{title:r}});return}(async()=>{try{d({type:`session_upsert`,session:await e.updateSession(t,{title:r??``})})}catch(e){i(e,`Rename`)}})()},async forkSession(t){if(l(t)){Ce();return}try{let n=await e.forkSession(t,{});d({type:`session_upsert`,session:n}),fe(n.id)}catch(e){i(e,`Fork`)}},async sendPrompt(n,r=[],a){let c=o();if(!c)return!1;let l=`req-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,u=(e,t)=>(d({type:`transcript`,sessionId:c,action:{type:`frame`,frame:{type:`error`,sessionId:c,requestId:l,code:e,message:t}}}),d({type:`transcript`,sessionId:c,action:{type:`local_prompt_failed`,requestId:l}}),!1);d({type:`transcript`,sessionId:c,action:{type:`local_prompt`,requestId:l,text:n,attachments:r,at:new Date().toISOString()}}),d({type:`window_trim`,sessionId:c});let p=s(c);if(p!==null&&pe(c)!==null&&p)p.model&&me(c,{type:`set_model`,sessionId:c,model:p.model,...p.providerId?{providerId:p.providerId}:{},...p.variantId===null?{}:{variantId:p.variantId}}),p.permissionMode&&me(c,{type:`set_permission_mode`,sessionId:c,mode:p.permissionMode}),p.title&&me(c,{type:`set_title`,sessionId:c,title:p.title});else if(p)try{await I(p)}catch(e){return i(e,`New chat`),u(`session_create_failed`,Ou(e))}let m=f.current.pendingRouting[c];if(m&&(a={...a,providerId:m.providerId,model:a?.model??m.model,...m.variantId===void 0?{}:{variantId:m.variantId}},d({type:`pending_routing`,sessionId:c,routing:null})),pe(c))return me(c,{type:`prompt`,sessionId:c,requestId:l,text:n,...r.length>0?{attachments:r}:{},...a?{options:a}:{}})?!0:(he(c),u(`host_offline`,`That PC is offline — this transcript is read-only.`));try{t.status===`open`?t.prompt(c,n,{attachments:r,options:a,requestId:l}):await e.prompt(c,{text:n,attachments:r,options:a})}catch(e){return i(e,`Send`),u(`send_failed`,Ou(e))}return!0},respondPermission(e,n,i){let a=i??o();if(a&&!l(a)){if(!(pe(a)?me(a,{type:`permission_response`,sessionId:a,requestId:e,decision:n}):t.respondPermission(a,e,n))){r(`error`,`Not connected to the host — cannot answer the permission request`);return}d({type:`transcript`,sessionId:a,action:{type:`local_permission`,requestId:e,behavior:n.behavior}})}},async cancelQueued(t,n){let a=n??o();if(!(!a||l(a))){if(pe(a)){r(`info`,`Withdrawing a queued message is done on the PC that runs the chat`);return}try{(await e.cancelQueued(a,t)).cancelled?d({type:`transcript`,sessionId:a,action:{type:`frame`,frame:{type:`prompt_cancelled`,sessionId:a,requestId:t,text:``}}}):r(`info`,`The agent has already read that message`)}catch(e){i(e,`Withdraw`)}}},async interrupt(n){let r=n??o();if(r&&!l(r)){if(pe(r)){me(r,{type:`interrupt`,sessionId:r})||he(r);return}if(!t.interrupt(r))try{await e.interrupt(r)}catch(e){i(e,`Interrupt`)}}},setSessionModel(e,n,r){let i=o();if(!i)return;if(n&&w(n,e,r),s(i)){d({type:`draft_patch`,id:i,patch:{model:e,...n?{providerId:n}:{},...r===void 0?{}:{variantId:r}}});return}let a=f.current.sessions.find(e=>e.id===i),c=f.current.transcripts[i]?.session?.model??a?.model??null;n!==void 0&&a!==void 0&&n!==(a.providerId??null)||r!==void 0&&a!==void 0&&(r??null)!==(a.variantId??null)?d({type:`pending_routing`,sessionId:i,routing:{providerId:n??a?.providerId??``,model:e,...r===void 0?{}:{variantId:r}}}):pe(i)?me(i,{type:`set_model`,sessionId:i,model:e}):t.setModel(i,e),c!==e&&d({type:`model_boundary`,sessionId:i,boundary:{index:f.current.transcripts[i]?.items.length??0,from:c,to:e}}),a&&d({type:`session_upsert`,session:{...a,model:e,...n?{providerId:n}:{},...r===void 0?{}:{variantId:r}}})},setSessionPermissionMode(e){let n=o();if(!n)return;if(l(n)){d({type:`draft_patch`,id:n,patch:{permissionMode:e}});return}pe(n)?me(n,{type:`set_permission_mode`,sessionId:n,mode:e}):t.setPermissionMode(n,e);let r=f.current.sessions.find(e=>e.id===n);r&&d({type:`session_upsert`,session:{...r,permissionMode:e}})},setSessionEffort(e){let n=o();if(!n||l(n))return;pe(n)?me(n,{type:`set_effort`,sessionId:n,effort:e}):t.setEffort(n,e);let r=f.current.sessions.find(e=>e.id===n);if(r){let{effort:t,...n}=r;d({type:`session_upsert`,session:e?{...n,effort:e}:n})}},setActiveProvider:w,async inspectProject(t){if(!e.inspectProject)return null;try{return await e.inspectProject({dir:t})}catch(e){return Yc(e)||(e instanceof Gc&&e.isUnauthorized?g.current?.():i(e,`Folder`)),null}},async attachProject(t,n){let c=n??o();if(!c)return!1;if(s(c))return d({type:`draft_patch`,id:c,patch:{projectDir:t}}),!0;let l=pe(c);if(l)return r(`error`,`This chat runs on ${l.hostName} — choose its project folder in OonaCode on that PC.`),!1;if(!e.attachSessionProject)return a(`open a chat in one of your project folders`),!1;try{let n=await e.attachSessionProject(c,{dir:t});return d({type:`session_upsert`,session:n.session}),h(),r(`success`,n.appliesOnNextMessage?`Switched to ${n.session.cwd} — the turn in progress finishes where it started, and your next message runs there with that project's CLAUDE.md and settings`:n.restarted?`Switched to ${n.session.cwd} — this chat restarts with that project's CLAUDE.md and settings loaded, and continues where it left off`:`Switched to ${n.session.cwd} — the next message loads that project's CLAUDE.md and settings`),!0}catch(e){return Yc(e)?a(`open a chat in one of your project folders`):i(e,`Project folder`),!1}},async saveSettings(t){try{d({type:`settings`,settings:await e.updateSettings(t)}),r(`success`,`Settings saved`)}catch(e){i(e,`Settings`)}},savePrefs:ye,growTranscript(e,t){d({type:`window_grow`,sessionId:e,total:t})},revealTranscript(e,t,n){d({type:`window_reveal`,sessionId:e,rendered:t,total:n})},trimTranscript(e){d({type:`window_trim`,sessionId:e})},hydrateSession:be,async catchUpEntries(t){if(l(t))return;let n=pe(t);if(n){await ge(n.hostId,t);return}let r=f.current.transcripts[t],i=r?.lastSeq??void 0;if(i===void 0&&r?.hydrated){try{await be(t)}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.()}return}for(let n=0;n<200;n++){let n;try{n=await e.listEntries(t,{limit:500,...i===void 0?{}:{afterSeq:i}})}catch(e){e instanceof Gc&&e.isUnauthorized&&g.current?.();return}if(n.entries.length>0&&d({type:`transcript`,sessionId:t,action:{type:`entries`,entries:n.entries}}),n.nextSeq===null||n.nextSeq===i)return;i=n.nextSeq}},checkUpdates:L,async installUpdate(){if(p.current)return;p.current=!0;let e=typeof window<`u`?window.oonacode:void 0,t=f.current,n=Wd(t.update.components.map(e=>e.component),{desktop:typeof e?.installUpdate==`function`,terminal:typeof e?.updateTerminalInstall==`function`},{checked:t.update.version!==``,shellEngaged:t.updateInstall.phase!==`idle`&&t.updateInstall.phase!==`checking`});if(n.upToDate){r(`success`,`Everything is up to date`),p.current=!1;return}let i=n.desktop;if(n.terminal&&e?.updateTerminalInstall){d({type:`terminal_update`,terminal:{running:!0,message:``,failed:!1}});try{let t=await e.updateTerminalInstall();if(d({type:`terminal_update`,terminal:{running:!1,message:t.message,failed:!t.ok}}),!t.ok){r(`error`,t.message),p.current=!1;return}t.absent?e.installUpdate&&(i=!0):(r(`success`,t.message),await oe(),await L(!1))}catch(e){let t=Ou(e);d({type:`terminal_update`,terminal:{running:!1,message:t,failed:!0}}),r(`error`,`Updating the CLI and host service failed: ${t}`),p.current=!1;return}}if(!i){n.manual.length>0&&r(`info`,`This window cannot install `+n.manual.map(e=>Td[e]).join(`, `)+" — run the installer from the website, or `oona update` in a terminal"),p.current=!1;return}if(!e?.installUpdate){r(`info`,"This window cannot install the app itself — run the installer again, or `oona update` in a terminal"),p.current=!1;return}try{let t=await e.installUpdate();r(t.started?`info`:`error`,t.message),t.started||(p.current=!1)}catch(e){r(`error`,`Update failed: ${Ou(e)}`),p.current=!1}},dismissUpdate(){let e=f.current.update.version||null;d({type:`update_dismissed`,version:e}),ye({dismissedUpdateVersion:e}),d({type:`dialog`,dialog:`none`})},async login(t){try{return d({type:`account`,account:await e.login(t)}),r(`success`,t.register?`Account created`:`Logged in`),ee(),v(),ce(),`ok`}catch(e){let n=il(e,{email:t.email,registered:t.register===!0});return n?(d({type:`email_verification`,pending:n}),`verification_pending`):(i(e,`Login`),`failed`)}},async startAccountLink(){if(!e.startAccountLink)return a(`sign in through your browser`),null;try{let t=await e.startAccountLink({clientKind:vf()});return d({type:`account_link`,link:t}),t.status===`error`&&r(`error`,t.message??`Could not start the sign-in`),t}catch(e){return Yc(e)?a(`sign in through your browser`):i(e,`Sign in`),null}},async refreshAccountLink(){if(e.accountLinkStatus)try{let t=await e.accountLinkStatus();d({type:`account_link`,link:t}),t.status===`approved`&&(A(),ee(),v())}catch(e){Yc(e)||i(e,`Sign in`)}},async cancelAccountLink(){if(!e.cancelAccountLink){d({type:`account_link`,link:{status:`idle`}});return}try{d({type:`account_link`,link:await e.cancelAccountLink()})}catch(e){d({type:`account_link`,link:{status:`idle`}}),Yc(e)||i(e,`Sign in`)}},async resendVerification(){let t=f.current.emailVerification;if(!t)return!1;try{let n=await e.resendVerification({email:t.email});return d({type:`email_verification`,pending:{...t,verification:`pending`,resendAt:nl(n.resendAfterSec,Date.now())}}),r(`success`,`Confirmation link sent to ${t.displayEmail}`),!0}catch(e){return Yc(e)?r(`error`,`This host build cannot resend the link yet — use "Resend" on the website sign-in page`):i(e,`Resend link`),!1}},dismissEmailVerification(){d({type:`email_verification`,pending:null})},async logout(){try{d({type:`account`,account:await e.logout()}),d({type:`credentials`,credentials:[]})}catch(e){i(e,`Logout`)}},async remoteUnlockHost(t,n){try{let i=await e.remoteUnlockHost(t,n);return i.ok?(r(`info`,`Device unlocked — its sessions are available again.`),ce(),!0):(r(`error`,i.error===`host_too_old`?`That PC runs an older OonaCode — update it first.`:i.error===`wrong_keys`?`Wrong password — the device stays locked.`:`Could not unlock: `+(i.error??`unknown`)),!1)}catch(e){return r(`error`,Ou(e)),!1}},async lockDevice(){try{let t=await e.lock();d({type:`account`,account:t})}catch(e){r(`error`,Ou(e))}},async unlock(t,n={}){try{return d({type:`account`,account:await e.unlock({password:t,...n.keepUnlocked===void 0?{}:{keepUnlocked:n.keepUnlocked}})}),ee(),!0}catch(e){if(!n.onError)return i(e,`Unlock`),!1;let t=e instanceof Gc&&e.isUnauthorized&&!bf(e);return t&&g.current?.(),n.onError(e instanceof Gc&&bf(e)?`Wrong password — the vault stays locked.`:t?`Reconnecting to the OonaCode host — press Unlock again in a moment.`:`Could not unlock: ${Ou(e)}`),e instanceof Gc&&e.isUnauthorized||_.current?.(e,{source:`action`,action:`Unlock`}),!1}},async completeVaultRekey(t){if(!e.completeVaultRekey)return a(`finish a password reset`),!1;try{let n=await e.completeVaultRekey({password:t});return d({type:`account`,account:n.account}),d({type:`recovery_key`,recoveryKey:{code:n.recoveryCode,devicesSignedOut:n.devicesSignedOut,warning:n.warning??null}}),r(n.warning?`info`:`success`,n.warning?`Vault moved to your new password — with a warning, see your Recovery Key below`:`Vault moved to your new password`),ee(),v(),!0}catch(e){return Yc(e)?a(`finish a password reset`):i(e,`Move vault`),!1}},async revokeVaultRekey(t){if(!e.revokeVaultRekey)return a(`abandon a password reset`),!1;try{let n=await e.revokeVaultRekey({acknowledgeDataLoss:Ms,password:t});return d({type:`account`,account:n.account}),d({type:`credentials`,credentials:[]}),r(`info`,`Vault discarded — every saved key and ${n.discarded.historySessions} mirrored session(s) are gone. Unlock with your new password to start a fresh vault.`),!0}catch(e){return Yc(e)?a(`abandon a password reset`):i(e,`Discard vault`),!1}},dismissRecoveryKey(){d({type:`recovery_key`,recoveryKey:null})},async setDeviceUnlock(t,n){if(!e.setDeviceUnlock)return a(`keep itself unlocked`),!1;try{let i=await e.setDeviceUnlock({enabled:t,...n?{password:n}:{}});return d({type:`account`,account:i}),r(`success`,t?`This PC will stay unlocked after a restart`:`This PC will ask for your password after a restart`),!0}catch(e){return Yc(e)?a(`keep itself unlocked`):i(e,`Keep me unlocked`),!1}},async probeCredential(t,n){try{let r=await e.probeCredential(t,n);return{ok:r.ok,...r.error?{error:r.error}:{}}}catch(e){return{ok:!1,error:Ou(e)}}},async addCredential(t){try{return await e.addCredential(t),r(`success`,`Credential saved to your vault`),await ee(),v(),!0}catch(e){return i(e,`Add credential`),!1}},async deleteCredential(t){try{await e.deleteCredential(t),r(`info`,`Credential revoked on all devices`),await ee(),v()}catch(e){i(e,`Revoke`)}},async testCredential(t){try{let n=await e.testCredential(t);r(n.ok?`success`:`error`,n.ok?`Credential works (${n.latencyMs??`?`} ms)`:`Test failed: ${n.error??`unknown error`}`)}catch(e){i(e,`Test`)}},async testProvider(t){try{let n=await e.testProvider(t);r(n.ok?`success`:`error`,n.ok?`${t} reachable (${n.latencyMs??`?`} ms)`:`${t}: ${n.error??`test failed`}`),v()}catch(e){i(e,`Test`)}},async syncNow(){try{let t=await e.syncNow();r(t.ok?`success`:`error`,t.ok?`Vault synced (rev ${t.rev??`?`})`:`Sync failed: ${t.error??`unknown`}`),A(),ee()}catch(e){i(e,`Sync`)}},async claudeLogin(){d({type:`claude_login_mode`,mode:`open`}),d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`claude-login`})},toast:r,dismissToast(e){d({type:`dismiss_toast`,id:e})},openDialog(e,t){d({type:`dialog`,dialog:e,connectProviderId:t??null})},openProviderConnect(e){d({type:`connect_provider`,providerId:e})},openSettings(e){d({type:`settings_section`,section:e}),d({type:`dialog`,dialog:`settings`})},openClaudeLogin(e){d({type:`claude_login_mode`,mode:e}),d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`claude-login`})},openOauthLogin(e){d({type:`connect_provider`,providerId:null}),d({type:`dialog`,dialog:`oauth-login`}),d({type:`oauth_login_provider`,providerId:e})},setSidebar(e){d({type:`sidebar`,open:e})},openFile(e){let t=f.current.currentSessionId;t&&d({type:`file_open`,sessionId:t,path:e})},closeFile(e){let t=f.current.currentSessionId;t&&d({type:`file_close`,sessionId:t,path:e})},activateFile(e){let t=f.current.currentSessionId;t&&d({type:`file_activate`,sessionId:t,path:e})},showChat(e){let t=e??f.current.currentSessionId;t&&d({type:`file_show_chat`,sessionId:t})}}},[e,t,n]);(0,v.useEffect)(()=>{let e=Ru(y.current);e&&d({type:`prefs`,prefs:e})},[]),(0,v.useEffect)(()=>{let e=!1,n=t.onStatus((t,n)=>{d({type:`connection`,status:t,detail:n??null}),t===`open`&&e&&(k.refreshInfo(),k.refreshVaultProjects()),t===`open`&&(e=!0)}),r=(e,t)=>{qd(e,f.current.prefs)&&Yd(Jd(e,t),Xd())},i=e=>{let t=f.current.transcripts[e]?.session??f.current.sessions.find(t=>t.id===e);return t?Du(t):`OonaCode session`},a=e=>{let t=Date.now(),n=e.type===`session_state`?pf(f.current,e.session.id):void 0;for(let n of lf(e,t))d(n);if(e.type===`session_state`&&Cd(n,e.session)&&k.refreshPlanSoon(),e.type===`permission_request`){let t=`${e.sessionId}:${e.request.requestId}`;if(w.current.has(t)||(w.current.size>=Qd&&w.current.clear(),w.current.add(t),e.settled===!0))return;r(`permissionRequired`,{sessionTitle:i(e.sessionId),toolName:e.request.toolName,sessionId:e.sessionId})}else if(e.type===`turn_finished`)r(`agentFinished`,{sessionTitle:i(e.sessionId),isError:e.result.isError,sessionId:e.sessionId});else if(e.type===`error`)r(`errorOccurred`,{sessionTitle:e.sessionId?i(e.sessionId):`OonaCode`,detail:e.code,...e.sessionId?{sessionId:e.sessionId}:{}});else if(e.type===`session_list_changed`)k.refreshSessions(),e.reason===`deleted`&&d({type:`session_removed`,id:e.sessionId});else if(e.type===`account_changed`)k.refreshAccount(),k.refreshPlan(),k.refreshProviders(),k.refreshInfo(),e.reason!==`provider`&&k.refreshCredentials(),e.reason!==`provider`&&(k.refreshHosts(),k.refreshClaudeSubscription(),k.refreshVaultProjects());else if(e.type===`welcome`){k.refreshSessions();let e=f.current.currentSessionId;e&&k.catchUpEntries(e)}},o=Qc({isStreamFrame:sf,deliver:e=>{for(let t of e)a(t)},batchMs:c,isHidden:cf}),s=t.onAny(e=>o.push(e)),l=()=>{cf()||o.flush()};return typeof document<`u`&&document.addEventListener(`visibilitychange`,l),t.connect(),()=>{n(),s(),typeof document<`u`&&document.removeEventListener(`visibilitychange`,l),o.dispose(),t.close()}},[t,k,c]),(0,v.useEffect)(()=>{if(typeof window>`u`||typeof document>`u`)return;let e=()=>k.refreshPlanSoon(),t=()=>{document.visibilityState===`visible`&&k.refreshPlanSoon()};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,t)}},[k]),(0,v.useEffect)(()=>{k.refreshInfo(),k.refreshPlan(),k.refreshSessions(),k.refreshProjects(),k.refreshProviders(),k.refreshSettings(),k.refreshAccount(),k.refreshCredentials(),k.refreshHosts()},[k]),(0,v.useEffect)(()=>{r&&d({type:`select_session`,id:r})},[r]);let A=(0,v.useRef)(!1),ee=(0,v.useRef)(!1),j=(0,v.useRef)(null),M=(0,v.useRef)(!0);(0,v.useEffect)(()=>(M.current=!0,()=>{M.current=!1}),[]);let te=u.sessionListLoaded,ne=u.remote.loaded,N=u.settings!==null,[P,re]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(ne&&N||P)return;let e=setTimeout(()=>re(!0),$d);return()=>clearTimeout(e)},[ne,N,P]),(0,v.useEffect)(()=>{if(A.current||!te||!N||!ne&&!P)return;A.current=!0;let t=Qu(u.prefs),n=new Set(u.sessions.map(e=>e.id)),r=Zu(u.prefs).filter(({id:e})=>!n.has(e)).map(({id:e,title:t},n)=>({...ku(e,n),title:t})),i=new Set(r.map(e=>e.id));if(t.ids.length===0)return;let a=Xu(u.prefs),o=t.ids.filter(e=>a[e]!==void 0),s=e=>{let n=qu(t,[...u.sessions.map(e=>e.id),...o,...i,...e]),s=[...n.ids],c=f.current.currentSessionId;if(c&&!s.includes(c)&&s.push(c),s.length!==0){j.current=f.current.tabs,d({type:`restore_tabs`,ids:s,activeId:c??n.activeId,drafts:r.filter(e=>s.includes(e.id))});for(let e of s){let t=a[e];t!==void 0&&k.openRemoteSession(t,e,{focus:!1})}}},c=t.ids.filter(e=>!n.has(e)&&a[e]===void 0&&!i.has(e));if(c.length===0){s([]);return}ee.current=!0,Promise.all(c.map(t=>e.getSession(t).then(()=>t,e=>e instanceof Gc&&e.status===404?null:t))).then(e=>{ee.current=!1,M.current&&s(e.filter(e=>e!==null))})},[te,ne,P,N,u.prefs,u.sessions,e,k]);let ie=u.tabs,ae=u.prefs,oe=u.remote.tabs,se=u.drafts,F=u.settings!==null;(0,v.useEffect)(()=>{if(!F||!A.current||ee.current)return;if(j.current!==null){if(ie===j.current)return;j.current=null}let e={};for(let t of ie.ids){let n=oe[t];n&&(e[t]=n.hostId)}td(ie,ae,e,se)&&(A.current=!0,k.savePrefs(Yu(ie,e,se)))},[ie,ae,oe,se,F,te,k]);let ce=u.tabs.ids.join(`,`);(0,v.useEffect)(()=>{let e=ce?ce.split(`,`):[];for(let n of e){if(f.current.remote.tabs[n]||f.current.drafts[n])continue;let e=f.current.transcripts[n];t.subscribe(n,e?.lastSeq??void 0),!e?.hydrated&&(d({type:`transcript_loading`,sessionId:n,loading:!0}),(async()=>{try{await k.hydrateSession(n),C.current.add(n)}catch(e){e instanceof Gc&&e.isUnauthorized?g.current?.():k.toast(`error`,`Could not load session: ${Ou(e)}`)}finally{d({type:`transcript_loading`,sessionId:n,loading:!1})}})())}return()=>{for(let n of e){if(f.current.tabs.ids.includes(n)||f.current.remote.tabs[n])continue;let e=f.current.transcripts[n];(!e||e.status===`idle`||e.status===`error`)&&t.unsubscribe(n)}}},[ce,e,t,k]),(0,v.useEffect)(()=>{if(n)return()=>n.close()},[n]);let le=u.settings?.theme??`system`,ue=u.prefs.themeColors;(0,v.useEffect)(()=>{if(typeof document>`u`)return;let e=document.documentElement,t=typeof window.matchMedia==`function`?window.matchMedia(`(prefers-color-scheme: dark)`):null,n=()=>{let n=le===`dark`?`dark`:le===`light`?`light`:t?.matches?`dark`:`light`,r=ue[n];for(let t of qs){let n=r[t];n?e.style.setProperty(`--${t}`,n):e.style.removeProperty(`--${t}`)}};if(n(),!(le!==`system`||!t||typeof t.addEventListener!=`function`))return t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[le,ue]),(0,v.useEffect)(()=>{if(typeof document>`u`)return;let e=document.documentElement;le===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,le),window.oonacode?.setTheme?.(le)},[le]);let de=u.settings?.gatewayUrl??u.account?.gatewayUrl??null,fe=k.checkUpdates,pe=(0,v.useRef)(0);(0,v.useEffect)(()=>{if(!de)return;let e=()=>{pe.current=Date.now(),fe(!1)};e();let t=setInterval(e,uf),n=()=>{typeof document<`u`&&document.visibilityState===`hidden`||Date.now()-pe.current<3e5||e()};return window.addEventListener(`focus`,n),document.addEventListener(`visibilitychange`,n),()=>{clearInterval(t),window.removeEventListener(`focus`,n),document.removeEventListener(`visibilitychange`,n)}},[de,fe]);let me=k.openDialog,he=k.newTab,ge=k.savePrefs,_e=(0,v.useCallback)(e=>{switch(e){case`sign-in`:f.current.account?.loggedIn&&me(`account`);break;case`settings`:me(`settings`);break;case`new-tab`:he();break;case`new-project`:f.current.account?.loggedIn&&(d({type:`projects_new`}),me(`projects`));break;case`check-updates`:fe(!0);break;case`import-chats`:f.current.account?.loggedIn&&me(`import-claude`);break;case`toggle-session-panel`:ge({sessionPanelOpen:!f.current.prefs.sessionPanelOpen})}},[me,he,fe,ge]);(0,v.useEffect)(()=>{let e=typeof window<`u`?window.oonacode:void 0;if(e?.onMenuCommand)return e.onMenuCommand(_e)},[_e]),(0,v.useEffect)(()=>{let e=window.oonacode;if(e?.onOpenSession)return e.onOpenSession(e=>{if(f.current.remote.tabs[e]||f.current.drafts[e]){k.selectSession(e);return}!f.current.sessions.some(t=>t.id===e)&&!f.current.transcripts[e]||k.selectSession(e)})},[k]),(0,v.useEffect)(()=>{let e=typeof window<`u`?window.oonacode:void 0;if(e?.onUpdateEvent)return e.onUpdateEvent(e=>d({type:`update_event`,event:e}))},[]);let ve=(0,v.useMemo)(()=>({state:u,dispatch:d,actions:k,api:e,socket:t}),[u,k,e,t]);return(0,K.jsx)(mf.Provider,{value:ve,children:l})}var Cf=h(),wf=`inline-block shrink-0`;function Tf(e){return!!e&&/(^|\s)(w-|h-|size-|min-w-|min-h-)/.test(e)}var Ef=`w-4 h-4`;function J(e,{className:t,title:n},r=`0 0 24 24`){return(0,K.jsxs)(`svg`,{className:W(wf,Tf(t)?``:Ef,t),width:`1em`,height:`1em`,viewBox:r,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!n||void 0,role:n?`img`:void 0,children:[n?(0,K.jsx)(`title`,{children:n}):null,e]})}var Y={Menu:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`3`,y1:`6`,x2:`21`,y2:`6`}),(0,K.jsx)(`line`,{x1:`3`,y1:`12`,x2:`21`,y2:`12`}),(0,K.jsx)(`line`,{x1:`3`,y1:`18`,x2:`21`,y2:`18`})]}),e),More:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.6`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.6`})]}),e),Plus:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,K.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})]}),e),Send:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),(0,K.jsx)(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})]}),e),Stop:e=>J((0,K.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),Chevron:e=>J((0,K.jsx)(`polyline`,{points:e.open?`6 9 12 15 18 9`:`9 6 15 12 9 18`}),e),Settings:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,K.jsx)(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})]}),e),User:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`7`,r:`4`})]}),e),Stethoscope:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6 6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3`}),(0,K.jsx)(`path`,{d:`M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4`}),(0,K.jsx)(`circle`,{cx:`20`,cy:`10`,r:`2`})]}),e),Copy:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,K.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]}),e),Check:e=>J((0,K.jsx)(`polyline`,{points:`20 6 9 17 4 12`}),e),Reply:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`9 17 4 12 9 7`}),(0,K.jsx)(`path`,{d:`M20 18v-2a4 4 0 0 0-4-4H4`})]}),e),Clock:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,K.jsx)(`polyline`,{points:`12 7 12 12 15 14`})]}),e),X:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,K.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),Alert:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,K.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,K.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]}),e),Bug:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M8 2l1.88 1.88`}),(0,K.jsx)(`path`,{d:`M14.12 3.88L16 2`}),(0,K.jsx)(`path`,{d:`M9 7.13v-1a3.003 3.003 0 1 1 6 0v1`}),(0,K.jsx)(`path`,{d:`M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6z`}),(0,K.jsx)(`path`,{d:`M12 20v-9`}),(0,K.jsx)(`path`,{d:`M6.53 9C4.6 8.8 3 7.1 3 5`}),(0,K.jsx)(`path`,{d:`M6 13H2`}),(0,K.jsx)(`path`,{d:`M3 21c0-2.1 1.7-3.9 3.8-4`}),(0,K.jsx)(`path`,{d:`M20.97 5c0 2.1-1.6 3.8-3.5 4`}),(0,K.jsx)(`path`,{d:`M22 13h-4`}),(0,K.jsx)(`path`,{d:`M17.2 17c2.1.1 3.8 1.9 3.8 4`})]}),e),Spinner:e=>J((0,K.jsx)(`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`}),{...e,className:W(`spin`,e.className??`w-4 h-4`)}),Tool:e=>J((0,K.jsx)(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`}),e),Brain:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M9.5 2a2.5 2.5 0 0 1 2.5 2.5V20a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1-2.5-2.5v-1A2.5 2.5 0 0 1 2 14v-1a2.5 2.5 0 0 1 2.5-2.5V9A2.5 2.5 0 0 1 7 6.5V4.5A2.5 2.5 0 0 1 9.5 2z`}),(0,K.jsx)(`path`,{d:`M14.5 2A2.5 2.5 0 0 0 12 4.5V20a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 2.5-2.5v-1A2.5 2.5 0 0 0 22 14v-1a2.5 2.5 0 0 0-2.5-2.5V9A2.5 2.5 0 0 0 17 6.5V4.5A2.5 2.5 0 0 0 14.5 2z`})]}),e),ArrowDown:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,K.jsx)(`polyline`,{points:`19 12 12 19 5 12`})]}),e),Paperclip:e=>J((0,K.jsx)(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`}),e),Folder:e=>J((0,K.jsx)(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`}),e),Project:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polygon`,{points:`12 2 2 7 12 12 22 7 12 2`}),(0,K.jsx)(`polyline`,{points:`2 17 12 22 22 17`}),(0,K.jsx)(`polyline`,{points:`2 12 12 17 22 12`})]}),e),File:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),(0,K.jsx)(`polyline`,{points:`14 2 14 8 20 8`})]}),e),ChevronRight:e=>J((0,K.jsx)(`polyline`,{points:`9 18 15 12 9 6`}),e),ExpandAll:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`7 5 12 10 17 5`}),(0,K.jsx)(`polyline`,{points:`7 13 12 18 17 13`})]}),e),CollapseAll:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`7 11 12 6 17 11`}),(0,K.jsx)(`polyline`,{points:`7 19 12 14 17 19`})]}),e),Palette:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 3a9 9 0 1 0 0 18c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1-.3-.3-.4-.7-.4-1.1 0-.9.7-1.6 1.6-1.6H16a5 5 0 0 0 5-5c0-3.9-4-7.6-9-7.6Z`}),(0,K.jsx)(`circle`,{cx:`7.5`,cy:`11.5`,r:`1`}),(0,K.jsx)(`circle`,{cx:`10.5`,cy:`7.5`,r:`1`}),(0,K.jsx)(`circle`,{cx:`15.5`,cy:`8.5`,r:`1`})]}),e),Bot:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`10`,rx:`2`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`5`,r:`2`}),(0,K.jsx)(`path`,{d:`M12 7v4`}),(0,K.jsx)(`line`,{x1:`8`,y1:`16`,x2:`8`,y2:`16`}),(0,K.jsx)(`line`,{x1:`16`,y1:`16`,x2:`16`,y2:`16`})]}),e),Trash:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`3 6 5 6 21 6`}),(0,K.jsx)(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),(0,K.jsx)(`path`,{d:`M10 11v6M14 11v6`}),(0,K.jsx)(`path`,{d:`M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2`})]}),e),Refresh:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`polyline`,{points:`23 4 23 10 17 10`}),(0,K.jsx)(`path`,{d:`M20.49 15a9 9 0 1 1-2.12-9.36L23 10`})]}),e),Search:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,K.jsx)(`line`,{x1:`21`,y1:`21`,x2:`16.65`,y2:`16.65`})]}),e),Shield:e=>J((0,K.jsx)(`path`,{d:`M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z`}),e),Coins:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`ellipse`,{cx:`8`,cy:`6`,rx:`5`,ry:`2.5`}),(0,K.jsx)(`path`,{d:`M3 6v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V6`}),(0,K.jsx)(`path`,{d:`M3 10v4c0 1.4 2.2 2.5 5 2.5 1 0 1.9-.13 2.7-.36`}),(0,K.jsx)(`circle`,{cx:`16`,cy:`15`,r:`5`}),(0,K.jsx)(`path`,{d:`M16 13v4M14.5 15h3`})]}),e),Lock:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`5`,y:`11`,width:`14`,height:`9`,rx:`2`}),(0,K.jsx)(`path`,{d:`M8 11V7a4 4 0 0 1 8 0v4`})]}),e),Fork:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`18`,r:`3`}),(0,K.jsx)(`circle`,{cx:`6`,cy:`6`,r:`3`}),(0,K.jsx)(`circle`,{cx:`18`,cy:`6`,r:`3`}),(0,K.jsx)(`path`,{d:`M18 9a9 9 0 0 1-9 9M6 9a9 9 0 0 0 9 9`})]}),e),Edit:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),(0,K.jsx)(`path`,{d:`M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z`})]}),e),Upload:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,K.jsx)(`polyline`,{points:`17 8 12 3 7 8`}),(0,K.jsx)(`line`,{x1:`12`,y1:`3`,x2:`12`,y2:`15`})]}),e),Download:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,K.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,K.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),e),Info:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,K.jsx)(`line`,{x1:`12`,y1:`16`,x2:`12`,y2:`12`}),(0,K.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12.01`,y2:`8`})]}),e),Panel:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,K.jsx)(`line`,{x1:`15`,y1:`3`,x2:`15`,y2:`21`})]}),e),LogIn:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`}),(0,K.jsx)(`polyline`,{points:`10 17 15 12 10 7`}),(0,K.jsx)(`line`,{x1:`15`,y1:`12`,x2:`3`,y2:`12`})]}),e),Globe:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,K.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,K.jsx)(`path`,{d:`M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z`})]}),e),Monitor:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,K.jsx)(`line`,{x1:`8`,y1:`21`,x2:`16`,y2:`21`}),(0,K.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12`,y2:`21`})]}),e),Bell:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9`}),(0,K.jsx)(`path`,{d:`M13.73 21a2 2 0 0 1-3.46 0`})]}),e),Sliders:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`line`,{x1:`4`,y1:`21`,x2:`4`,y2:`14`}),(0,K.jsx)(`line`,{x1:`4`,y1:`10`,x2:`4`,y2:`3`}),(0,K.jsx)(`line`,{x1:`12`,y1:`21`,x2:`12`,y2:`12`}),(0,K.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`3`}),(0,K.jsx)(`line`,{x1:`20`,y1:`21`,x2:`20`,y2:`16`}),(0,K.jsx)(`line`,{x1:`20`,y1:`12`,x2:`20`,y2:`3`}),(0,K.jsx)(`line`,{x1:`1`,y1:`14`,x2:`7`,y2:`14`}),(0,K.jsx)(`line`,{x1:`9`,y1:`8`,x2:`15`,y2:`8`}),(0,K.jsx)(`line`,{x1:`17`,y1:`16`,x2:`23`,y2:`16`})]}),e),Plug:e=>J((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{d:`M12 22v-5`}),(0,K.jsx)(`path`,{d:`M9 7V2M15 7V2`}),(0,K.jsx)(`path`,{d:`M6 7h12v4a6 6 0 0 1-12 0z`})]}),e),Key:e=>J((0,K.jsx)(`path`,{d:`M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3`}),e)},Df={primary:`bg-accent text-accent-fg hover:opacity-90 border-transparent`,inverse:`bg-inverse-bg text-inverse-fg hover:opacity-90 border-transparent`,secondary:`bg-surface-2 text-fg hover:bg-surface-3 border-border`,ghost:`bg-transparent text-fg-muted hover:bg-surface-2 hover:text-fg border-transparent`,danger:`bg-danger-soft text-danger hover:opacity-90 border-transparent`,success:`bg-ok-soft text-ok hover:opacity-90 border-transparent`};function X({variant:e=`secondary`,size:t=`md`,busy:n,className:r,children:i,disabled:a,...o}){return(0,K.jsxs)(`button`,{type:`button`,...o,disabled:a||n,className:W(`inline-flex items-center gap-1.5 rounded-md border font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap`,t===`sm`?`px-2 py-1 text-xs`:`px-3 py-1.5 text-sm`,Df[e],r),children:[n?(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}):null,i]})}function Of({label:e,className:t,children:n,...r}){return(0,K.jsx)(`button`,{type:`button`,"aria-label":e,title:e,...r,className:W(`inline-flex items-center justify-center rounded-md p-1.5 text-fg-muted hover:bg-surface-2 hover:text-fg disabled:opacity-50`,t),children:n})}function kf({label:e,hint:t,children:n,className:r}){return(0,K.jsxs)(`label`,{className:W(`flex flex-col gap-1 text-sm`,r),children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:e}),n,t?(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:t}):null]})}var Af=`w-full rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-fg placeholder:text-fg-faint focus:border-accent focus:outline-none`,jf=Af;function Mf({tone:e=`neutral`,children:t,className:n}){return(0,K.jsx)(`span`,{className:W(`inline-flex items-center rounded px-1.5 py-0.5 text-[11px] font-medium leading-4`,{neutral:`bg-surface-2 text-fg-muted`,ok:`bg-ok-soft text-ok`,warn:`bg-warn-soft text-warn`,danger:`bg-danger-soft text-danger`,accent:`bg-accent-soft text-accent`,think:`bg-think-soft text-think`}[e],n),children:t})}function Nf({open:e,title:t,onClose:n,children:r,footer:i,wide:a}){let o=(0,v.useRef)(null);return(0,v.useEffect)(()=>{if(!e)return;let t=document.activeElement,r=o.current;(r?.querySelector(`input, select, textarea, button:not([data-close])`)??r)?.focus();let i=e=>{e.key===`Escape`&&(e.stopPropagation(),n())};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),t?.focus?.()}},[e,n]),e?(0,Cf.createPortal)((0,K.jsx)(`div`,{className:`fixed inset-0 z-40 flex items-end sm:items-center justify-center bg-black/40 p-0 sm:p-4`,onMouseDown:e=>e.target===e.currentTarget&&n(),children:(0,K.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-label":t,tabIndex:-1,className:W(`flex max-h-[95vh] w-full flex-col rounded-t-xl sm:rounded-xl border border-border bg-surface shadow-lg outline-none`,a?`sm:max-w-3xl`:`sm:max-w-lg`),children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-3`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold`,children:t}),(0,K.jsx)(Of,{label:`Close`,"data-close":!0,onClick:n,children:(0,K.jsx)(Y.X,{})})]}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto px-4 py-3`,children:r}),i?(0,K.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-t border-border px-4 py-3`,children:i}):null]})}),document.body):null}function Pf({checked:e,onChange:t,label:n,hint:r,disabled:i}){return(0,K.jsxs)(`label`,{className:W(`flex items-start justify-between gap-3 py-2`,i&&`opacity-60`),children:[(0,K.jsxs)(`span`,{className:`min-w-0`,children:[(0,K.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:n}),r?(0,K.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:r}):null]}),(0,K.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:i,onClick:()=>t(!e),className:W(`relative mt-0.5 h-5 w-9 shrink-0 rounded-full border transition-colors`,e?`border-accent bg-accent`:`border-border bg-surface-2`),children:(0,K.jsx)(`span`,{className:W(`absolute top-0.5 h-3.5 w-3.5 rounded-full bg-surface transition-all`,e?`left-[1.15rem]`:`left-0.5`)})})]})}function Ff({value:e,options:t,onChange:n,label:r}){return(0,K.jsx)(`div`,{className:`inline-flex rounded-md border border-border bg-surface-2 p-0.5`,role:`radiogroup`,"aria-label":r,children:t.map(t=>(0,K.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===t.value,onClick:()=>n(t.value),className:W(`rounded px-2.5 py-1 text-xs font-medium transition-colors`,e===t.value?`bg-surface text-fg shadow-sm`:`text-fg-muted hover:text-fg`),children:t.label},t.value))})}function If({icon:e,title:t,hint:n,action:r}){return(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 p-8 text-center text-fg-muted`,children:[e?(0,K.jsx)(`div`,{className:`text-fg-faint`,children:e}):null,(0,K.jsx)(`div`,{className:`text-base font-medium text-fg`,children:t}),n?(0,K.jsx)(`div`,{className:`max-w-md text-sm`,children:n}):null,r?(0,K.jsx)(`div`,{className:`mt-2`,children:r}):null]})}function Lf({open:e,title:t,message:n,confirmLabel:r=`Delete`,danger:i=!0,onConfirm:a,onClose:o}){return(0,K.jsx)(Nf,{open:e,title:t,onClose:o,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{"data-close":!0,onClick:o,children:`Cancel`}),(0,K.jsx)(X,{variant:i?`danger`:`primary`,"data-testid":`confirm-dialog-accept`,onClick:()=>{a(),o()},children:r})]}),children:(0,K.jsx)(`div`,{className:`text-sm text-fg-muted`,children:n})})}function Rf({open:e,title:t,label:n,initialValue:r=``,password:i=!1,submitLabel:a=`Save`,onSubmit:o,onClose:s}){let[c,l]=(0,v.useState)(r);(0,v.useEffect)(()=>{e&&l(r)},[e,r]);let u=()=>{let e=c.trim();e&&(o(e),s())};return(0,K.jsx)(Nf,{open:e,title:t,onClose:s,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{"data-close":!0,onClick:s,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,"data-testid":`prompt-dialog-submit`,onClick:u,children:a})]}),children:(0,K.jsx)(kf,{label:n,children:(0,K.jsx)(`input`,{className:Af,type:i?`password`:`text`,value:c,"data-testid":`prompt-dialog-input`,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),u())}})})})}function zf({checked:e,onChange:t}){let{state:n}=q();return Ic(n.account)===`unavailable`?null:(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e,onChange:e=>t(e.target.checked),"data-testid":`keep-unlocked`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`block`,children:`Keep me unlocked on this PC`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:Ns})]})]})}function Bf({view:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),f=async()=>{if(n){a(!0);try{await t.completeVaultRekey(n)&&r(``)}finally{a(!1)}}},p=async()=>{if(!(c.trim()!==`discard-my-vault-and-history`||!u)){a(!0);try{await t.revokeVaultRekey(u)&&d(``)}finally{a(!1),l(``)}}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`vault-rekey-pending`,className:`space-y-3 rounded-md border border-warn/50 bg-warn-soft p-3 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:Bc(e)}),e.canFinishHere?(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`This PC still holds the key from before the reset, so it can move your vault to the new password. Nothing is lost. Type your new password to confirm; you will get a new vault Recovery Key.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:Vc(e)}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`rekey-recovery-exit`,children:Hc})]})]})]}),e.canFinishHere?(0,K.jsxs)(`form`,{className:`flex items-end gap-2`,onSubmit:e=>{e.preventDefault(),f()},children:[(0,K.jsx)(kf,{label:`New password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:n,onChange:e=>r(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:i,disabled:!n,"data-testid":`rekey-finish`,children:`Move my vault to the new password`})]}):null,o?(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border border-danger/40 bg-surface p-3`,children:[(0,K.jsxs)(`p`,{className:`text-xs text-danger`,children:[`Discarding permanently deletes every saved provider key, the mirrored session history on the server, and the vault Recovery Key that could still have moved them. There is no undo. Type `,(0,K.jsx)(`span`,{className:`font-mono`,children:Ms}),` and your current password to confirm.`]}),(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Your new password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:u,onChange:e=>d(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-discard-password`})}),(0,K.jsx)(kf,{label:`Confirmation`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,value:c,onChange:e=>l(e.target.value),autoComplete:`off`,spellCheck:!1,"data-testid":`rekey-discard-ack`})}),(0,K.jsx)(X,{variant:`danger`,busy:i,disabled:c.trim()!==`discard-my-vault-and-history`||!u,onClick:()=>void p(),"data-testid":`rekey-discard-confirm`,children:`Discard vault and history`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>s(!1),children:`Cancel`})]})]}):(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>s(!0),"data-testid":`rekey-discard`,children:e.canFinishHere?`This was not me — discard the vault instead`:`Last resort: discard the vault`})]})}function Vf(){let{state:e,actions:t}=q(),n=e.recoveryKey,[r,i]=(0,v.useState)(!1);if(!n)return null;let a=async()=>{try{await navigator.clipboard?.writeText(n.code),i(!0)}catch{t.toast(`error`,`Could not copy — select the code and copy it by hand`)}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`recovery-key`,className:`space-y-2 rounded-md border border-ok/50 bg-ok-soft p-3 text-sm`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:`Your new vault Recovery Key`}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Write it down now — this is the only copy, and OonaCode does not store it. It unlocks your vault data if you ever forget the password. It is not a 2FA backup code.`}),(0,K.jsx)(`div`,{className:`select-all rounded-md border border-border bg-surface px-3 py-2 font-mono text-base tracking-wider`,"data-testid":`recovery-key-code`,children:n.code}),n.devicesSignedOut>0?(0,K.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[n.devicesSignedOut,` other device`,n.devicesSignedOut===1?` was`:`s were`,` signed out; sign in there with the new password.`]}):null,n.warning?(0,K.jsx)(`p`,{className:`rounded-md border border-warn/50 bg-warn-soft px-2 py-1.5 text-xs text-fg`,"data-testid":`recovery-key-warning`,children:n.warning}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,K.jsxs)(X,{size:`sm`,onClick:()=>void a(),children:[(0,K.jsx)(Y.Copy,{className:`w-3.5 h-3.5`}),` `,r?`Copied`:`Copy`]}),(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>t.dismissRecoveryKey(),"data-testid":`recovery-key-done`,children:`I have saved it`})]})]})}function Hf(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(``),[o,s]=(0,v.useState)(!1),c=Ic(e.account);if(c===`unavailable`||c===`pending_rekey`)return null;let l=async e=>{s(!0);try{await t.setDeviceUnlock(e,e?i:void 0)&&(r(!1),a(``))}finally{s(!1)}};return c===`armed`?(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,"data-testid":`device-unlock`,children:[(0,K.jsx)(Mf,{tone:`ok`,children:`stays unlocked on this PC`}),(0,K.jsx)(X,{size:`sm`,busy:o,onClick:()=>void l(!1),children:`Turn off`})]}):n?(0,K.jsxs)(`form`,{className:`space-y-2 rounded-md border border-border bg-surface-2 p-3`,"data-testid":`device-unlock`,onSubmit:e=>{e.preventDefault(),l(!0)},children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,children:Ns}),(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:i,onChange:e=>a(e.target.value),autoComplete:`current-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:o,disabled:!i,children:`Keep me unlocked`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>r(!1),children:`Cancel`})]})]}):(0,K.jsx)(X,{size:`sm`,onClick:()=>r(!0),"data-testid":`device-unlock`,children:`Keep me unlocked on this PC…`})}function Uf({pending:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(()=>Date.now()),[i,a]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(r(Date.now()),e.resendAt<=Date.now())return;let t=setInterval(()=>{let n=Date.now();r(n),n>=e.resendAt&&clearInterval(t)},1e3);return()=>clearInterval(t)},[e.resendAt]);let o=rl(e,n),s=async()=>{a(!0);try{await t.resendVerification()}finally{a(!1)}};return(0,K.jsxs)(`div`,{role:`status`,"data-testid":`email-verification`,className:`space-y-2 rounded-md border border-warn/50 bg-warn-soft p-3 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`font-medium text-fg`,children:al(e)}),(0,K.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:`Open the link on any device, then log in again here. Check the spam folder if it does not arrive.`})]})]}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(X,{size:`sm`,variant:`primary`,busy:i,disabled:o>0,onClick:()=>void s(),"data-testid":`resend-verification`,children:o>0?`Resend link (${o}s)`:`Resend link`}),(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>t.dismissEmailVerification(),children:`Dismiss`})]})]})}function Wf(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(e.settings?.gatewayUrl||x),[i,a]=(0,v.useState)(``),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(e.connection.hostName??``),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!0),[m,h]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e.settings?.gatewayUrl&&n===x&&r(e.settings.gatewayUrl)},[e.settings?.gatewayUrl,n]);let g=async()=>{if(!(!n.trim()||!i.trim()||!o)){h(!0);try{await t.login({gatewayUrl:n.trim(),email:i.trim(),password:o,register:u,...c.trim()?{deviceName:c.trim()}:{},keepUnlocked:f})!==`verification_pending`&&s(``)}finally{h(!1)}}};return(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),g()},children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`Log in to sync your credentials across your own devices (zero-knowledge: the server only ever sees ciphertext) and to route API-key providers through your gateway.`}),e.emailVerification?(0,K.jsx)(Uf,{pending:e.emailVerification}):null,(0,K.jsx)(kf,{label:`Gateway URL`,children:(0,K.jsx)(`input`,{className:Af,value:n,onChange:e=>r(e.target.value),placeholder:x,autoComplete:`url`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Email`,children:(0,K.jsx)(`input`,{className:Af,type:`email`,value:i,onChange:e=>a(e.target.value),autoComplete:`username`})}),(0,K.jsx)(kf,{label:`Password`,hint:`Also unlocks your vault. It never leaves this PC; only a derived proof is sent.`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:o,onChange:e=>s(e.target.value),autoComplete:u?`new-password`:`current-password`})}),(0,K.jsx)(kf,{label:`Device name`,children:(0,K.jsx)(`input`,{className:Af,value:c,onChange:e=>l(e.target.value),placeholder:`Office PC`})}),(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),` `,`Create a new account`]}),(0,K.jsx)(zf,{checked:f,onChange:p}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:m,disabled:!n.trim()||!i.trim()||!o,children:u?`Register`:`Log in`})]})}function Gf(){let{actions:e}=q(),[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(!0),[a,o]=(0,v.useState)(!1);return(0,K.jsxs)(`form`,{className:`space-y-2`,onSubmit:i=>{i.preventDefault(),o(!0),e.unlock(t,{keepUnlocked:r}).finally(()=>{o(!1),n(``)})},children:[(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(kf,{label:`Vault locked — enter your password`,className:`flex-1`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:t,onChange:e=>n(e.target.value),autoComplete:`current-password`})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:a,disabled:!t,children:`Unlock`})]}),(0,K.jsx)(zf,{checked:r,onChange:i})]})}function Kf(){let{state:e}=q(),t=e.plan,n=e=>e.toLocaleString(void 0,{maximumFractionDigits:0});return(0,K.jsxs)(`section`,{className:`space-y-2`,"data-testid":`account-plan`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-semibold`,children:`Plan & credits`}),t===null?(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Sign in to see your plan and credit balance.`}):(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border px-3 py-2.5 text-sm`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,K.jsxs)(`span`,{className:`font-medium`,children:[t.planName,t.status===`none`?` (lapsed)`:``]})]}),(0,K.jsx)(`div`,{className:`h-px bg-border`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,K.jsx)(`span`,{className:`font-semibold tabular-nums`,"data-testid":`account-credits`,children:n(t.credits.balance)})]}),(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[t.credits.monthlyGrant>0?`Tops up to ${n(t.credits.monthlyGrant)} each 30-day period. `:`No monthly top-up on this plan; the signup gift and anything you buy never expire. `,`Free models never draw on it.`]})]})]})}function qf({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.account,a=Lc(i);return(0,v.useEffect)(()=>{e&&(r.refreshAccount(),r.refreshPlan())},[e,r]),(0,K.jsx)(Nf,{open:e,title:`Account`,onClose:t,children:(0,K.jsxs)(`div`,{className:`space-y-5`,children:[i?.loggedIn?(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(Vf,{}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:i.email}),a?(0,K.jsx)(Mf,{tone:`warn`,children:`vault waiting for a password reset to finish`}):(0,K.jsx)(Mf,{tone:i.vaultUnlocked?`ok`:`warn`,children:i.vaultUnlocked?`vault unlocked`:`vault locked`}),(0,K.jsxs)(Mf,{tone:i.syncStatus===`error`?`danger`:i.syncStatus===`offline`?`warn`:`neutral`,children:[`sync: `,i.syncStatus]}),i.vaultRev===null?null:(0,K.jsxs)(Mf,{children:[`rev `,i.vaultRev]})]}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[i.gatewayUrl,` · device `,i.deviceId?.slice(0,8)??`?`,` · last sync`,` `,i.lastSyncAt?bu(i.lastSyncAt):`never`,i.syncError?(0,K.jsxs)(`span`,{className:`text-danger`,children:[` · `,i.syncError]}):null]}),a?(0,K.jsx)(Bf,{view:a}):null,!a&&!i.vaultUnlocked?(0,K.jsx)(Gf,{}):null,i.vaultUnlocked?(0,K.jsx)(Hf,{}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,K.jsxs)(X,{onClick:()=>void r.syncNow(),disabled:!i.vaultUnlocked,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Sync now`]}),(0,K.jsx)(X,{variant:`danger`,onClick:()=>void r.logout(),children:`Log out`})]})]}):(0,K.jsx)(Wf,{}),(0,K.jsx)(Kf,{})]})})}function Jf(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var Yf=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Xf=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Zf={};function Qf(e,t){return((t||Zf).jsx?Xf:Yf).test(e)}var $f=/[ \t\n\f\r]/g;function ep(e){return typeof e==`object`?e.type===`text`&&tp(e.value):tp(e)}function tp(e){return e.replace($f,``)===``}var np=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};np.prototype.normal={},np.prototype.property={},np.prototype.space=void 0;function rp(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new np(n,r,t)}function ip(e){return e.toLowerCase()}var ap=class{constructor(e,t){this.attribute=t,this.property=e}};ap.prototype.attribute=``,ap.prototype.booleanish=!1,ap.prototype.boolean=!1,ap.prototype.commaOrSpaceSeparated=!1,ap.prototype.commaSeparated=!1,ap.prototype.defined=!1,ap.prototype.mustUseProperty=!1,ap.prototype.number=!1,ap.prototype.overloadedBoolean=!1,ap.prototype.property=``,ap.prototype.spaceSeparated=!1,ap.prototype.space=void 0;var op=s({boolean:()=>Z,booleanish:()=>cp,commaOrSpaceSeparated:()=>fp,commaSeparated:()=>dp,number:()=>Q,overloadedBoolean:()=>lp,spaceSeparated:()=>up}),sp=0,Z=pp(),cp=pp(),lp=pp(),Q=pp(),up=pp(),dp=pp(),fp=pp();function pp(){return 2**++sp}var mp=Object.keys(op),hp=class extends ap{constructor(e,t,n,r){let i=-1;if(super(e,t),gp(this,`space`,r),typeof n==`number`)for(;++i<mp.length;){let e=mp[i];gp(this,mp[i],(n&op[e])===op[e])}}};hp.prototype.defined=!0;function gp(e,t,n){n&&(e[t]=n)}function _p(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new hp(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ip(r)]=r,n[ip(a.attribute)]=r}return new np(t,n,e.space)}var vp=_p({properties:{ariaActiveDescendant:null,ariaAtomic:cp,ariaAutoComplete:null,ariaBusy:cp,ariaChecked:cp,ariaColCount:Q,ariaColIndex:Q,ariaColSpan:Q,ariaControls:up,ariaCurrent:null,ariaDescribedBy:up,ariaDetails:null,ariaDisabled:cp,ariaDropEffect:up,ariaErrorMessage:null,ariaExpanded:cp,ariaFlowTo:up,ariaGrabbed:cp,ariaHasPopup:null,ariaHidden:cp,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:up,ariaLevel:Q,ariaLive:null,ariaModal:cp,ariaMultiLine:cp,ariaMultiSelectable:cp,ariaOrientation:null,ariaOwns:up,ariaPlaceholder:null,ariaPosInSet:Q,ariaPressed:cp,ariaReadOnly:cp,ariaRelevant:null,ariaRequired:cp,ariaRoleDescription:up,ariaRowCount:Q,ariaRowIndex:Q,ariaRowSpan:Q,ariaSelected:cp,ariaSetSize:Q,ariaSort:null,ariaValueMax:Q,ariaValueMin:Q,ariaValueNow:Q,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function yp(e,t){return t in e?e[t]:t}function bp(e,t){return yp(e,t.toLowerCase())}var xp=_p({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:dp,acceptCharset:up,accessKey:up,action:null,allow:null,allowFullScreen:Z,allowPaymentRequest:Z,allowUserMedia:Z,alpha:Z,alt:null,as:null,async:Z,autoCapitalize:null,autoComplete:up,autoFocus:Z,autoPlay:Z,blocking:up,capture:null,charSet:null,checked:Z,cite:null,className:up,closedBy:null,colorSpace:null,cols:Q,colSpan:Q,command:null,commandFor:null,content:null,contentEditable:cp,controls:Z,controlsList:up,coords:Q|dp,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Z,defer:Z,dir:null,dirName:null,disabled:Z,download:lp,draggable:cp,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Z,formTarget:null,headers:up,height:Q,hidden:lp,high:Q,href:null,hrefLang:null,htmlFor:up,httpEquiv:up,id:null,imageSizes:null,imageSrcSet:null,inert:Z,inputMode:null,integrity:null,is:null,isMap:Z,itemId:null,itemProp:up,itemRef:up,itemScope:Z,itemType:up,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Z,low:Q,manifest:null,max:null,maxLength:Q,media:null,method:null,min:null,minLength:Q,multiple:Z,muted:Z,name:null,nonce:null,noModule:Z,noValidate:Z,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Z,optimum:Q,pattern:null,ping:up,placeholder:null,playsInline:Z,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Z,referrerPolicy:null,rel:up,required:Z,reversed:Z,rows:Q,rowSpan:Q,sandbox:up,scope:null,scoped:Z,seamless:Z,selected:Z,shadowRootClonable:Z,shadowRootCustomElementRegistry:Z,shadowRootDelegatesFocus:Z,shadowRootMode:null,shadowRootSerializable:Z,shape:null,size:Q,sizes:null,slot:null,span:Q,spellCheck:cp,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Q,step:null,style:null,tabIndex:Q,target:null,title:null,translate:null,type:null,typeMustMatch:Z,useMap:null,value:cp,width:Q,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:up,axis:null,background:null,bgColor:null,border:Q,borderColor:null,bottomMargin:Q,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Z,declare:Z,event:null,face:null,frame:null,frameBorder:null,hSpace:Q,leftMargin:Q,link:null,longDesc:null,lowSrc:null,marginHeight:Q,marginWidth:Q,noResize:Z,noHref:Z,noShade:Z,noWrap:Z,object:null,profile:null,prompt:null,rev:null,rightMargin:Q,rules:null,scheme:null,scrolling:cp,standby:null,summary:null,text:null,topMargin:Q,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Q,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Z,disablePictureInPicture:Z,disableRemotePlayback:Z,exportParts:dp,part:up,prefix:null,property:null,results:Q,security:null,unselectable:null},space:`html`,transform:bp}),Sp=_p({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,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`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,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`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,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`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:fp,accentHeight:Q,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Q,amplitude:Q,arabicForm:null,ascent:Q,attributeName:null,attributeType:null,azimuth:Q,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Q,by:null,calcMode:null,capHeight:Q,className:up,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Q,diffuseConstant:Q,direction:null,display:null,dur:null,divisor:Q,dominantBaseline:null,download:Z,dx:null,dy:null,edgeMode:null,editable:null,elevation:Q,enableBackground:null,end:null,event:null,exponent:Q,externalResourcesRequired:null,fill:null,fillOpacity:Q,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:dp,g2:dp,glyphName:dp,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Q,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Q,horizOriginX:Q,horizOriginY:Q,id:null,ideographic:Q,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Q,k:Q,k1:Q,k2:Q,k3:Q,k4:Q,kernelMatrix:fp,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Q,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Q,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Q,overlineThickness:Q,paintOrder:null,panose1:null,path:null,pathLength:Q,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:up,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Q,pointsAtY:Q,pointsAtZ:Q,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:fp,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:fp,rev:fp,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:fp,requiredFeatures:fp,requiredFonts:fp,requiredFormats:fp,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Q,specularExponent:Q,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Q,strikethroughThickness:Q,string:null,stroke:null,strokeDashArray:fp,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Q,strokeOpacity:Q,strokeWidth:null,style:null,surfaceScale:Q,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:fp,tabIndex:Q,tableValues:null,target:null,targetX:Q,targetY:Q,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:fp,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Q,underlineThickness:Q,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Q,values:null,vAlphabetic:Q,vMathematical:Q,vectorEffect:null,vHanging:Q,vIdeographic:Q,version:null,vertAdvY:Q,vertOriginX:Q,vertOriginY:Q,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Q,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:yp}),Cp=_p({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),wp=_p({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:bp}),Tp=_p({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Ep={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},Dp=/[A-Z]/g,Op=/-[a-z]/g,kp=/^data[-\w.:]+$/i;function Ap(e,t){let n=ip(t),r=t,i=ap;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&kp.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Op,Mp);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Op.test(e)){let n=e.replace(Dp,jp);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=hp}return new i(r,t)}function jp(e){return`-`+e.toLowerCase()}function Mp(e){return e.charAt(1).toUpperCase()}var Np=rp([vp,xp,Cp,wp,Tp],`html`),Pp=rp([vp,Sp,Cp,wp,Tp],`svg`);function Fp(e){return e.join(` `).trim()}var Ip=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
|
|
79
80
|
`);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(e.charAt(0)==`/`&&e.charAt(1)==`*`){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function x(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),x()}function d(e){return e?e.replace(l,``):``}t.exports=u})),Lp=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(Ip());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),Rp=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),zp=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(Lp()),r=Rp();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),Bp=Hp(`end`),Vp=Hp(`start`);function Hp(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function Up(e){let t=Vp(e),n=Bp(e);if(t&&n)return{start:t,end:n}}function Wp(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?Kp(e.position):`start`in e||`end`in e?Kp(e):`line`in e||`column`in e?Gp(e):``}function Gp(e){return qp(e&&e.line)+`:`+qp(e&&e.column)}function Kp(e){return Gp(e&&e.start)+`-`+Gp(e&&e.end)}function qp(e){return e&&typeof e==`number`?e:1}var Jp=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=Wp(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};Jp.prototype.file=``,Jp.prototype.name=``,Jp.prototype.reason=``,Jp.prototype.message=``,Jp.prototype.stack=``,Jp.prototype.column=void 0,Jp.prototype.line=void 0,Jp.prototype.ancestors=void 0,Jp.prototype.cause=void 0,Jp.prototype.fatal=void 0,Jp.prototype.place=void 0,Jp.prototype.ruleId=void 0,Jp.prototype.source=void 0;var Yp=l(zp(),1),Xp={}.hasOwnProperty,Zp=new Map,Qp=/[A-Z]/g,$p=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),em=new Set([`td`,`th`]),tm=`https://github.com/syntax-tree/hast-util-to-jsx-runtime`;function nm(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=pm(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=fm(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?Pp:Np,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=rm(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function rm(e,t,n){if(t.type===`element`)return im(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return am(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return sm(e,t,n);if(t.type===`mdxjsEsm`)return om(e,t);if(t.type===`root`)return cm(e,t,n);if(t.type===`text`)return lm(e,t)}function im(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=Pp,e.schema=i),e.ancestors.push(t);let a=ym(e,t.tagName,!1),o=mm(e,t),s=gm(e,t);return $p.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!ep(e)})),um(e,o,a,t),dm(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function am(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}bm(e,t.position)}function om(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);bm(e,t.position)}function sm(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=Pp,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:ym(e,t.name,!0),o=hm(e,t),s=gm(e,t);return um(e,o,a,t),dm(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function cm(e,t,n){let r={};return dm(r,gm(e,t)),e.create(t,e.Fragment,r,n)}function lm(e,t){return t.value}function um(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function dm(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function fm(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function pm(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=Vp(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function mm(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&Xp.call(t.properties,i)){let a=_m(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&em.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function hm(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else bm(e,t.position)}else{let i=r.name,a;if(r.value&&typeof r.value==`object`){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else bm(e,t.position)}else a=r.value===null||r.value;n[i]=a}return n}function gm(e,t){let n=[],r=-1,i=e.passKeys?new Map:Zp;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=rm(e,a,o);s!==void 0&&n.push(s)}return n}function _m(e,t,n){let r=Ap(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?Jf(n):Fp(n)),r.property===`style`){let t=typeof n==`object`?n:vm(e,String(n));return e.stylePropertyNameCase===`css`&&(t=xm(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?Ep[r.property]||r.property:r.attribute,n]}}function vm(e,t){try{return(0,Yp.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new Jp("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=tm+`#cannot-parse-style-attribute`,r}}function ym(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=Qf(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}r=i}else r=Qf(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return Xp.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);bm(e)}function bm(e,t){let n=new Jp("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=tm+`#cannot-handle-mdx-estrees-without-createevaluater`,n}function xm(e){let t={},n;for(n in e)Xp.call(e,n)&&(t[Sm(n)]=e[n]);return t}function Sm(e){let t=e.replace(Qp,Cm);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function Cm(e){return`-`+e.toLowerCase()}var wm={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]},Tm={};function Em(e,t){let n=t||Tm;return Dm(e,typeof n.includeImageAlt!=`boolean`||n.includeImageAlt,typeof n.includeHtml!=`boolean`||n.includeHtml)}function Dm(e,t,n){if(km(e)){if(`value`in e)return e.type===`html`&&!n?``:e.value;if(t&&`alt`in e&&e.alt)return e.alt;if(`children`in e)return Om(e.children,t,n)}return Array.isArray(e)?Om(e,t,n):``}function Om(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=Dm(e[i],t,n);return r.join(``)}function km(e){return!!(e&&typeof e==`object`)}var Am=document.createElement(`i`);function jm(e){let t=`&`+e+`;`;Am.innerHTML=t;let n=Am.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`?!1:n!==t&&n}function Mm(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function Nm(e,t){return e.length>0?(Mm(e,e.length,0,t),e):t}var Pm={}.hasOwnProperty;function Fm(e){let t={},n=-1;for(;++n<e.length;)Im(t,e[n]);return t}function Im(e,t){let n;for(n in t){let r=(Pm.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){Pm.call(r,a)||(r[a]=[]);let e=i[a];Lm(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Lm(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);Mm(e,0,0,r)}function Rm(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function zm(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Bm=Zm(/[A-Za-z]/),Vm=Zm(/[\dA-Za-z]/),Hm=Zm(/[#-'*+\--9=?A-Z^-~]/);function Um(e){return e!==null&&(e<32||e===127)}var Wm=Zm(/\d/),Gm=Zm(/[\dA-Fa-f]/),Km=Zm(/[!-/:-@[-`{-~]/);function $(e){return e!==null&&e<-2}function qm(e){return e!==null&&(e<0||e===32)}function Jm(e){return e===-2||e===-1||e===32}var Ym=Zm(/\p{P}|\p{S}/u),Xm=Zm(/\s/);function Zm(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Qm(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Vm(e.charCodeAt(n+1))&&Vm(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function $m(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Jm(r)?(e.enter(n),s(r)):t(r)}function s(r){return Jm(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var eh={tokenize:th};function th(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),$m(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return $(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var nh={tokenize:ih},rh={tokenize:ah};function ih(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return Mm(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(rh,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(rh,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i||=t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return $(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;Mm(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-->r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function ah(e,t,n){return $m(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function oh(e){if(e===null||qm(e)||Xm(e))return 1;if(Ym(e))return 2}function sh(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var ch={name:`attention`,resolveAll:lh,tokenize:uh};function lh(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};dh(d,-c),dh(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=Nm(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=Nm(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=Nm(l,sh(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=Nm(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=Nm(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,Mm(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function uh(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=oh(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=oh(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function dh(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var fh={name:`autolink`,tokenize:ph};function ph(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Bm(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Vm(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||Vm(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||Um(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Hm(t)?(e.consume(t),l):n(t)}function u(e){return Vm(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||Vm(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var mh={partial:!0,tokenize:hh};function hh(e,t,n){return r;function r(t){return Jm(t)?$m(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||$(e)?t(e):n(e)}}var gh={continuation:{tokenize:vh},exit:yh,name:`blockQuote`,tokenize:_h};function _h(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||=(e.enter(`blockQuote`,{_container:!0}),!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return Jm(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function vh(e,t,n){let r=this;return i;function i(t){return Jm(t)?$m(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(gh,t,n)(r)}}function yh(e){e.exit(`blockQuote`)}var bh={name:`characterEscape`,tokenize:xh};function xh(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return Km(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var Sh={name:`characterReference`,tokenize:Ch};function Ch(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=Vm,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=Gm,u):(e.enter(`characterReferenceValue`),a=7,o=Wm,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Vm&&!jm(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var wh={partial:!0,tokenize:Dh},Th={concrete:!0,name:`codeFenced`,tokenize:Eh};function Eh(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),Jm(t)?$m(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||$(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(wh,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||$(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):Jm(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),$m(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||$(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||$(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&Jm(t)?$m(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||$(t)?e.check(wh,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||$(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Jm(t)?$m(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Jm(t)?$m(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||$(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function Dh(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var Oh={name:`codeIndented`,tokenize:Ah},kh={partial:!0,tokenize:jh};function Ah(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),$m(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):$(t)?e.attempt(kh,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||$(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function jh(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):$(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):$m(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):$(e)?i(e):n(e)}}var Mh={name:`codeText`,previous:Ph,resolve:Nh,tokenize:Fh};function Nh(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Ph(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function Fh(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):$(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||$(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var Ih=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&Lh(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),Lh(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Lh(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0)){if(e<this.left.length){let t=this.left.splice(e,1/0);Lh(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);Lh(this.left,t.reverse())}}}};function Lh(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Rh(e){let t={},n=-1,r,i,a,o,s,c,l,u=new Ih(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,zh(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(o[1].type!==`linePrefix`&&o[1].type!==`listItemIndent`)break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Mm(e,0,1/0,u.slice(0)),!l}function zh(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var Bh={resolve:Hh,tokenize:Uh},Vh={partial:!0,tokenize:Wh};function Hh(e){return Rh(e),e}function Uh(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):$(t)?e.check(Vh,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function Wh(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),$m(e,a,`linePrefix`)}function a(i){if(i===null||$(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function Gh(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||Um(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||$(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||qm(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||Um(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function Kh(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):$(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||$(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!Jm(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function qh(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):$(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),$m(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||$(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function Jh(e,t){let n;return r;function r(i){return $(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Jm(i)?$m(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Yh={name:`definition`,tokenize:Zh},Xh={partial:!0,tokenize:Qh};function Zh(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return Kh.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=zm(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return qm(t)?Jh(e,l)(t):l(t)}function l(t){return Gh(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(Xh,d,d)(t)}function d(t){return Jm(t)?$m(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||$(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function Qh(e,t,n){return r;function r(t){return qm(t)?Jh(e,i)(t):n(t)}function i(t){return qh(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Jm(t)?$m(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||$(e)?t(e):n(e)}}var $h={name:`hardBreakEscape`,tokenize:eg};function eg(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return $(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var tg={name:`headingAtx`,resolve:ng,tokenize:rg};function ng(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},Mm(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function rg(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||qm(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||$(n)?(e.exit(`atxHeading`),t(n)):Jm(n)?$m(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||qm(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var ig=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),ag=[`pre`,`script`,`style`,`textarea`],og={concrete:!0,name:`htmlFlow`,resolveTo:lg,tokenize:ug},sg={partial:!0,tokenize:fg},cg={partial:!0,tokenize:dg};function lg(e){let t=e.length;for(;t--&&(e[t][0]!==`enter`||e[t][1].type!==`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function ug(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:N):Bm(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Bm(a)?(e.consume(a),i=4,r.interrupt?t:N):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:N):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return Bm(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||qm(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&ag.includes(l)?(i=1,r.interrupt?t(s):O(s)):ig.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||Vm(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return Jm(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||Bm(t)?(e.consume(t),b):Jm(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Vm(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):Jm(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):Jm(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||$(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||qm(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||Jm(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||$(t)?O(t):Jm(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),j):t===60&&i===1?(e.consume(t),M):t===62&&i===4?(e.consume(t),P):t===63&&i===3?(e.consume(t),N):t===93&&i===5?(e.consume(t),ne):$(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(sg,re,k)(t)):t===null||$(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(cg,A,re)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ee}function ee(t){return t===null||$(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function j(t){return t===45?(e.consume(t),N):O(t)}function M(t){return t===47?(e.consume(t),o=``,te):O(t)}function te(t){if(t===62){let n=o.toLowerCase();return ag.includes(n)?(e.consume(t),P):O(t)}return Bm(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),te):O(t)}function ne(t){return t===93?(e.consume(t),N):O(t)}function N(t){return t===62?(e.consume(t),P):t===45&&i===2?(e.consume(t),N):O(t)}function P(t){return t===null||$(t)?(e.exit(`htmlFlowData`),re(t)):(e.consume(t),P)}function re(n){return e.exit(`htmlFlow`),t(n)}}function dg(e,t,n){let r=this;return i;function i(t){return $(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function fg(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(mh,t,n)}}var pg={name:`htmlText`,tokenize:mg};function mg(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):Bm(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Bm(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):$(t)?(o=d,M(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?j(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):$(t)?(o=h,M(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?j(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?j(t):$(t)?(o=v,M(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):$(t)?(o=y,M(t)):(e.consume(t),y)}function b(e){return e===62?j(e):y(e)}function x(t){return Bm(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Vm(t)?(e.consume(t),S):C(t)}function C(t){return $(t)?(o=C,M(t)):Jm(t)?(e.consume(t),C):j(t)}function w(t){return t===45||Vm(t)?(e.consume(t),w):t===47||t===62||qm(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),j):t===58||t===95||Bm(t)?(e.consume(t),E):$(t)?(o=T,M(t)):Jm(t)?(e.consume(t),T):j(t)}function E(t){return t===45||t===46||t===58||t===95||Vm(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):$(t)?(o=D,M(t)):Jm(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):$(t)?(o=O,M(t)):Jm(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,ee):t===null?n(t):$(t)?(o=k,M(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||qm(t)?T(t):(e.consume(t),A)}function ee(e){return e===47||e===62||qm(e)?T(e):n(e)}function j(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function M(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return Jm(t)?$m(e,ne,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ne(t)}function ne(t){return e.enter(`htmlTextData`),o(t)}}var hg={name:`labelEnd`,resolveAll:yg,resolveTo:bg,tokenize:xg},gg={tokenize:Sg},_g={tokenize:Cg},vg={tokenize:wg};function yg(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&Mm(e,0,e.length,n),e}function bg(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=Nm(s,e.slice(a+1,a+r+3)),s=Nm(s,[[`enter`,u,t]]),s=Nm(s,sh(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=Nm(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=Nm(s,e.slice(o+1)),s=Nm(s,[[`exit`,c,t]]),Mm(e,a,e.length,s),e}function xg(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(zm(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(gg,u,o?u:d)(t):t===91?e.attempt(_g,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(vg,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function Sg(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return qm(t)?Jh(e,a)(t):a(t)}function a(t){return t===41?u(t):Gh(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return qm(t)?Jh(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?qh(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return qm(t)?Jh(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function Cg(e,t,n){let r=this;return i;function i(t){return Kh.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(zm(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function wg(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var Tg={name:`labelStartImage`,resolveAll:hg.resolveAll,tokenize:Eg};function Eg(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Dg={name:`labelStartLink`,resolveAll:hg.resolveAll,tokenize:Og};function Og(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var kg={name:`lineEnding`,tokenize:Ag};function Ag(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),$m(e,t,`linePrefix`)}}var jg={name:`thematicBreak`,tokenize:Mg};function Mg(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||$(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Jm(t)?$m(e,s,`whitespace`)(t):s(t))}}var Ng={continuation:{tokenize:Lg},exit:zg,name:`list`,tokenize:Ig},Pg={partial:!0,tokenize:Bg},Fg={partial:!0,tokenize:Rg};function Ig(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:Wm(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(jg,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return Wm(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(mh,r.interrupt?n:u,e.attempt(Pg,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Jm(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function Lg(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(mh,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,$m(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Jm(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Fg,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,$m(e,e.attempt(Ng,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function Rg(e,t,n){let r=this;return $m(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function zg(e){e.exit(this.containerState.type)}function Bg(e,t,n){let r=this;return $m(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Jm(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var Vg={name:`setextUnderline`,resolveTo:Hg,tokenize:Ug};function Hg(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function Ug(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Jm(t)?$m(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||$(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Wg={tokenize:Gg};function Gg(e){let t=this,n=e.attempt(mh,r,e.attempt(this.parser.constructs.flowInitial,i,$m(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Bh,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Kg={resolveAll:Xg()},qg=Yg(`string`),Jg=Yg(`text`);function Yg(e){return{resolveAll:Xg(e===`text`?Zg:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function Xg(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function Zg(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var Qg=s({attentionMarkers:()=>o_,contentInitial:()=>e_,disable:()=>s_,document:()=>$g,flow:()=>n_,flowInitial:()=>t_,insideSpan:()=>a_,string:()=>r_,text:()=>i_}),$g={42:Ng,43:Ng,45:Ng,48:Ng,49:Ng,50:Ng,51:Ng,52:Ng,53:Ng,54:Ng,55:Ng,56:Ng,57:Ng,62:gh},e_={91:Yh},t_={[-2]:Oh,[-1]:Oh,32:Oh},n_={35:tg,42:jg,45:[Vg,jg],60:og,61:Vg,95:jg,96:Th,126:Th},r_={38:Sh,92:bh},i_={[-5]:kg,[-4]:kg,[-3]:kg,33:Tg,38:Sh,42:ch,60:[fh,pg],91:Dg,92:[$h,bh],93:hg,95:ch,96:Mh},a_={null:[ch,Kg]},o_={null:[42,95]},s_={null:[]};function c_(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=Nm(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=sh(a,l.events,l),l.events):[]}function f(e,t){return u_(p(e),t)}function p(e){return l_(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){$(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&Mm(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function l_(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function u_(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\r`;break;case-4:o=`
|
|
80
81
|
`;break;case-3:o=`\r
|
|
81
82
|
`;break;case-2:o=t?` `:` `;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function d_(e){let t={constructs:Fm([Qg,...(e||{}).extensions||[]]),content:n(eh),defined:[],document:n(nh),flow:n(Wg),lazy:{},string:n(qg),text:n(Jg)};return t;function n(e){return n;function n(n){return c_(t,e,n)}}}function f_(e){for(;!Rh(e););return e}var p_=/[\0\t\n\r]/g;function m_(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&=(i.charCodeAt(0)===65279&&u++,void 0);u<i.length;){if(p_.lastIndex=u,c=p_.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&=(s.push(-5),void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}var h_=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function g_(e){return e.replace(h_,__)}function __(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return Rm(n.slice(t?2:1),t?16:10)}return jm(n)||e}var v_={}.hasOwnProperty;function y_(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),b_(n)(f_(d_(n).document().write(m_()(e,t,!0))))}function b_(e){let t={transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:a(ye),autolinkProtocol:T,autolinkEmail:T,atxHeading:a(he),blockQuote:a(ue),characterEscape:T,characterReference:T,codeFenced:a(de),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:a(de,o),codeText:a(fe,o),codeTextData:T,data:T,codeFlowValue:T,definition:a(pe),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:a(me),hardBreakEscape:a(ge),hardBreakTrailing:a(ge),htmlFlow:a(_e,o),htmlFlowData:T,htmlText:a(_e,o),htmlTextData:T,image:a(ve),label:o,link:a(ye),listItem:a(xe),listItemValue:f,listOrdered:a(be,d),listUnordered:a(be),paragraph:a(Se),reference:ie,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:a(he),strong:a(Ce),thematicBreak:a(I)},exit:{atxHeading:c(),atxHeadingSequence:x,autolink:c(),autolinkEmail:le,autolinkProtocol:ce,blockQuote:c(),characterEscapeValue:E,characterReferenceMarkerHexadecimal:oe,characterReferenceMarkerNumeric:oe,characterReferenceValue:se,characterReference:F,codeFenced:c(g),codeFencedFence:h,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:E,codeIndented:c(_),codeText:c(ee),codeTextData:E,data:E,definition:c(),definitionDestinationString:b,definitionLabelString:v,definitionTitleString:y,emphasis:c(),hardBreakEscape:c(O),hardBreakTrailing:c(O),htmlFlow:c(k),htmlFlowData:E,htmlText:c(A),htmlTextData:E,image:c(M),label:ne,labelText:te,lineEnding:D,link:c(j),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:ae,resourceDestinationString:N,resourceTitleString:P,resource:re,setextHeading:c(w),setextHeadingLineSequence:C,setextHeadingText:S,strong:c(),thematicBreak:c()}};S_(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(e){let r={type:`root`,children:[]},a={stack:[r],tokenStack:[],config:t,enter:s,exit:l,buffer:o,resume:u,data:n},c=[],d=-1;for(;++d<e.length;)(e[d][1].type===`listOrdered`||e[d][1].type===`listUnordered`)&&(e[d][0]===`enter`?c.push(d):d=i(e,c.pop(),d));for(d=-1;++d<e.length;){let n=t[e[d][0]];v_.call(n,e[d][1].type)&&n[e[d][1].type].call(Object.assign({sliceSerialize:e[d][2].sliceSerialize},a),e[d][1])}if(a.tokenStack.length>0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||w_).call(a,void 0,e[0])}for(r.position={start:x_(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:x_(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d<t.transforms.length;)r=t.transforms[d](r)||r;return r}function i(e,t,n){let r=t-1,i=-1,a=!1,o,s,c,l;for(;++r<=n;){let t=e[r];switch(t[1].type){case`listUnordered`:case`listOrdered`:case`blockQuote`:t[0]===`enter`?i++:i--,l=void 0;break;case`lineEndingBlank`:t[0]===`enter`&&(o&&!l&&!i&&!c&&(c=r),l=void 0);break;case`linePrefix`:case`listItemValue`:case`listItemMarker`:case`listItemPrefix`:case`listItemPrefixWhitespace`:break;default:l=void 0}if(!i&&t[0]===`enter`&&t[1].type===`listItemPrefix`||i===-1&&t[0]===`exit`&&(t[1].type===`listUnordered`||t[1].type===`listOrdered`)){if(o){let i=r;for(s=void 0;i--;){let t=e[i];if(t[1].type===`lineEnding`||t[1].type===`lineEndingBlank`){if(t[0]===`exit`)continue;s&&(e[s][1].type=`lineEndingBlank`,a=!0),t[1].type=`lineEnding`,s=i}else if(t[1].type!==`linePrefix`&&t[1].type!==`blockQuotePrefix`&&t[1].type!==`blockQuotePrefixWhitespace`&&t[1].type!==`blockQuoteMarker`&&t[1].type!==`listItemIndent`)break}c&&(!s||c<s)&&(o._spread=!0),o.end=Object.assign({},s?e[s][1].start:t[1].end),e.splice(s||r,0,[`exit`,o,t[2]]),r++,n++}if(t[1].type===`listItemPrefix`){let i={type:`listItem`,_spread:!1,start:Object.assign({},t[1].start),end:void 0};o=i,e.splice(r,0,[`enter`,i,t[2]]),r++,n++,c=void 0,l=!0}}}return e[t][1]._spread=a,n}function a(e,t){return n;function n(n){s.call(this,e(n),n),t&&t.call(this,n)}}function o(){this.stack.push({type:`fragment`,children:[]})}function s(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:x_(t.start),end:void 0}}function c(e){return t;function t(t){e&&e.call(this,t),l.call(this,t)}}function l(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||w_).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+Wp({start:e.start,end:e.end})+`): it’s not open`);n.position.end=x_(e.end)}function u(){return Em(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function f(e){if(this.data.expectingFirstListItemValue){let t=this.stack[this.stack.length-2];t.start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function p(){let e=this.resume(),t=this.stack[this.stack.length-1];t.lang=e}function m(){let e=this.resume(),t=this.stack[this.stack.length-1];t.meta=e}function h(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,``),this.data.flowCodeInside=void 0}function _(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/(\r?\n|\r)$/g,``)}function v(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=zm(this.sliceSerialize(e)).toLowerCase()}function y(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function b(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function x(e){let t=this.stack[this.stack.length-1];t.depth||=this.sliceSerialize(e).length}function S(){this.data.setextHeadingSlurpLineEnding=!0}function C(e){let t=this.stack[this.stack.length-1];t.depth=this.sliceSerialize(e).codePointAt(0)===61?1:2}function w(){this.data.setextHeadingSlurpLineEnding=void 0}function T(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];(!n||n.type!==`text`)&&(n=we(),n.position={start:x_(e.start),end:void 0},t.push(n)),this.stack.push(n)}function E(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=x_(e.end)}function D(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){let t=n.children[n.children.length-1];t.position.end=x_(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(T.call(this,e),E.call(this,e))}function O(){this.data.atHardBreak=!0}function k(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function A(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function ee(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function j(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function M(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function te(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=g_(t),n.identifier=zm(t).toLowerCase()}function ne(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,n.type===`link`?n.children=e.children:n.alt=t}function N(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function P(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function re(){this.data.inReference=void 0}function ie(){this.data.referenceType=`collapsed`}function ae(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=zm(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function oe(e){this.data.characterReferenceType=e.type}function se(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=Rm(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=jm(t);let i=this.stack[this.stack.length-1];i.value+=r}function F(e){let t=this.stack.pop();t.position.end=x_(e.end)}function ce(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function le(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function ue(){return{type:`blockquote`,children:[]}}function de(){return{type:`code`,lang:null,meta:null,value:``}}function fe(){return{type:`inlineCode`,value:``}}function pe(){return{type:`definition`,identifier:``,label:null,title:null,url:``}}function me(){return{type:`emphasis`,children:[]}}function he(){return{type:`heading`,depth:0,children:[]}}function ge(){return{type:`break`}}function _e(){return{type:`html`,value:``}}function ve(){return{type:`image`,title:null,url:``,alt:null}}function ye(){return{type:`link`,title:null,url:``,children:[]}}function be(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[]}}function xe(e){return{type:`listItem`,spread:e._spread,checked:null,children:[]}}function Se(){return{type:`paragraph`,children:[]}}function Ce(){return{type:`strong`,children:[]}}function we(){return{type:`text`,value:``}}function I(){return{type:`thematicBreak`}}}function x_(e){return{line:e.line,column:e.column,offset:e.offset}}function S_(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?S_(e,r):C_(e,r)}}function C_(e,t){let n;for(n in t)if(v_.call(t,n))switch(n){case`canContainEols`:{let r=t[n];r&&e[n].push(...r);break}case`transforms`:{let r=t[n];r&&e[n].push(...r);break}case`enter`:case`exit`:{let r=t[n];r&&Object.assign(e[n],r);break}}}function w_(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+Wp({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Wp({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+Wp({start:t.start,end:t.end})+`) is still open`)}function T_(e){let t=this;t.parser=n;function n(n){return y_(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function E_(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function D_(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
|
|
@@ -117,12 +118,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
117
118
|
`)}function kw(e,t){let n=e.replace(/\s+$/,``);return n===``?`${t}\n\n`:`${n}\n\n${t}\n\n`}function Aw(e){let t=e.split(`
|
|
118
119
|
`),n=0;for(;n<t.length&&/^>( |$)/.test(t[n]);)n++;if(n===0)return null;let r=t.slice(0,n).map(e=>e.replace(/^> ?/,``)).join(`
|
|
119
120
|
`).trim(),i=t.slice(n).join(`
|
|
120
|
-
`).trim();return r===``?null:{quote:r,reply:i}}function jw(e){let t=e.trim();if(t.length<=300)return t;let n=t.slice(0,299),r=n.lastIndexOf(` `);return`${(r>150?n.slice(0,r):n).trimEnd()}…`}function Mw(e){if(!e)return null;for(let t of[`file_path`,`notebook_path`,`path`]){let n=e[t];if(typeof n==`string`&&n.trim()!==``)return n}return null}var Nw=`data-pin-message`;function Pw(e,t,n){let r=0,i=e-1,a=-1;for(;r<=i;){let e=r+i>>1;t(e)<n?(a=e,r=e+1):i=e-1}return a}function Fw(e,t=240){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,t-1)}…`}var Iw=null,Lw=460,Rw=8;function zw(e,t){if(typeof window>`u`)return e;let n=t?.offsetWidth??Lw,r=t?.offsetHeight??200;return{left:Math.min(Math.max(Rw,e.left),Math.max(Rw,window.innerWidth-n-Rw)),top:Math.min(Math.max(Rw,e.top),Math.max(Rw,window.innerHeight-r-Rw))}}function Bw(e,t,n,r){return e===t?`current`:r[e]?`skipped`:n[e]?`answered`:`open`}function Vw({item:e,onDecide:t,busy:n,cardRef:r,stackIndex:i=0}){let a=e.request,o=mc(a.input),[s,c]=(0,v.useState)(0),[l,u]=(0,v.useState)({}),[d,f]=(0,v.useState)({}),[p,m]=(0,v.useState)({}),[h,g]=(0,v.useState)(Iw),_=(0,v.useRef)(null),y=(0,v.useRef)(null),b=o[s],x=s===o.length-1,S=e=>(l[e]??[]).length>0||(d[e]??``).trim().length>0,C={};o.forEach((e,t)=>{C[t]=S(t)});let w=new Set(Object.entries(p).filter(([,e])=>e).map(([e])=>Number(e))),T=hc(o,l,d,w),E=o.every((e,t)=>C[t]||p[t]),D=o.some((e,t)=>C[t]&&!p[t]),O=(e,t,n)=>{m(t=>t[e]?{...t,[e]:!1}:t),u(r=>{let i=r[e]??[];return n?{...r,[e]:i.includes(t)?i.filter(e=>e!==t):[...i,t]}:{...r,[e]:i[0]===t?[]:[t]}})},k=(0,v.useCallback)(()=>{if(E){if(!D){t({behavior:`deny`,message:fc});return}t({behavior:`allow`,updatedInput:{...a.input,answers:T}})}},[E,D,t,a.input,T]),A=()=>{b&&(!C[s]&&!p[s]||(x?k():c(s+1)))},ee=()=>{if(m(e=>({...e,[s]:!0})),u(e=>({...e,[s]:[]})),f(e=>({...e,[s]:``})),x){let e=new Set([...w,s]);if(!o.some((t,n)=>C[n]&&!e.has(n))){t({behavior:`deny`,message:fc});return}let n={...l,[s]:[]},r={...d,[s]:``};t({behavior:`allow`,updatedInput:{...a.input,answers:hc(o,n,r,e)}});return}c(s+1)},j=e=>{if(e.button!==0)return;let t=r.current;if(!t)return;let n=t.getBoundingClientRect();_.current={dx:e.clientX-n.left,dy:e.clientY-n.top},e.preventDefault();let i=e=>{let t=_.current;if(!t)return;let n=zw({left:e.clientX-t.dx,top:e.clientY-t.dy},r.current);Iw=n,g(n)},a=()=>{_.current=null,document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)};if((0,v.useEffect)(()=>{if(h){let e=zw(h,r.current);(e.left!==h.left||e.top!==h.top)&&g(e)}},[]),typeof document>`u`||o.length===0)return null;let M=h?{left:h.left+i*24,top:h.top+i*24}:{right:16+i*24,bottom:132+i*24};return(0,Cf.createPortal)((0,K.jsxs)(`div`,{ref:r,className:`fixed z-30 flex max-h-[70vh] w-[460px] max-w-[calc(100vw-16px)] flex-col rounded-xl border border-accent/50 bg-surface text-sm shadow-xl`,style:M,role:`group`,"aria-label":`The model has a question`,"data-permission-pending":`true`,"data-testid":`question-${a.requestId}`,children:[(0,K.jsxs)(`div`,{className:`flex cursor-move select-none items-center gap-2 rounded-t-xl border-b border-border bg-accent-soft/40 px-3 py-2`,onMouseDown:j,"data-testid":`question-drag-handle`,title:`Drag to move`,children:[(0,K.jsx)(Y.Info,{className:`w-4 h-4 text-accent`}),(0,K.jsx)(`span`,{className:`font-semibold`,children:o.length>1?`The model has questions`:`The model has a question`}),a.agentId?(0,K.jsx)(Mf,{tone:`think`,children:`subagent`}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsxs)(`span`,{className:`text-[11px] text-fg-faint`,"data-testid":`question-step`,children:[s+1,` of `,o.length]})]}),o.length>1?(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1 border-b border-border px-3 py-1.5`,role:`tablist`,"data-testid":`question-tabs`,children:o.map((e,t)=>{let r=Bw(t,s,C,p);return(0,K.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===s,disabled:n,onClick:()=>c(t),"data-testid":`question-tab`,"data-state":r,title:e.question,className:`flex items-center gap-1 rounded-md border px-2 py-0.5 text-[11px] transition `+(t===s?`border-accent bg-accent text-accent-fg`:`border-border bg-surface text-fg-muted hover:border-accent/60`),children:[r===`answered`?(0,K.jsx)(Y.Check,{className:`w-3 h-3`}):null,r===`skipped`?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`–`}):null,e.header||`Q${t+1}`]},t)})}):null,b?(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-2.5`,"data-testid":`question-body`,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[b.header?(0,K.jsx)(Mf,{tone:`accent`,children:b.header}):null,(0,K.jsx)(`span`,{className:`font-medium`,children:b.question})]}),(0,K.jsx)(`div`,{className:`space-y-1`,role:b.multiSelect?`group`:`radiogroup`,"aria-label":b.multiSelect?`choose any`:`choose one`,children:b.options.map(e=>{let t=(l[s]??[]).includes(e.label);return(0,K.jsxs)(`button`,{type:`button`,role:b.multiSelect?`checkbox`:`radio`,"aria-checked":t,disabled:n,onClick:()=>O(s,e.label,b.multiSelect),"data-testid":`question-option`,"data-label":e.label,className:`flex w-full items-start gap-2.5 rounded-md border px-2.5 py-1.5 text-left transition `+(t?`border-accent bg-accent-soft/60`:`border-border bg-surface hover:border-accent/60`),children:[(0,K.jsx)(`span`,{"aria-hidden":!0,className:`mt-0.5 flex h-3.5 w-3.5 shrink-0 items-center justify-center border `+(b.multiSelect?`rounded-sm `:`rounded-full `)+(t?`border-accent bg-accent text-accent-fg`:`border-fg-faint`),children:t?(0,K.jsx)(Y.Check,{className:`w-2.5 h-2.5`}):null}),(0,K.jsxs)(`span`,{className:`min-w-0`,children:[(0,K.jsx)(`span`,{className:`block text-sm`,children:e.label}),e.description?(0,K.jsx)(`span`,{className:`block text-[11px] leading-snug text-fg-muted`,children:e.description}):null]})]},e.label)})}),(0,K.jsx)(`input`,{ref:y,className:Af+` mt-2 text-xs`,value:d[s]??``,onChange:e=>{let t=e.target.value;f(e=>({...e,[s]:t})),t.trim()&&m(e=>e[s]?{...e,[s]:!1}:e)},placeholder:b.options.length>0?`Other — type your own answer`:`Type your answer`,autoComplete:`off`,"data-testid":`question-custom`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),A())}}),b.multiSelect?(0,K.jsx)(`div`,{className:`mt-1 text-[11px] text-fg-faint`,children:`Choose any that apply.`}):null]}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t border-border px-3 py-2`,children:[(0,K.jsx)(X,{size:`sm`,variant:`ghost`,disabled:n||s===0,onClick:()=>c(s-1),"data-testid":`question-back`,children:`Back`}),(0,K.jsx)(X,{size:`sm`,disabled:n,onClick:ee,"data-testid":`question-skip`,children:`Skip`}),(0,K.jsx)(`span`,{className:`flex-1`}),x?(0,K.jsx)(X,{size:`sm`,variant:`primary`,busy:n,disabled:!E,onClick:k,"data-testid":`question-answer`,children:`Answer`}):(0,K.jsxs)(X,{size:`sm`,variant:`primary`,busy:n,disabled:!C[s]&&!p[s],onClick:A,"data-testid":`question-next`,children:[`Next `,(0,K.jsx)(Y.ChevronRight,{className:`w-3.5 h-3.5`})]})]})]}),document.body)}function Hw(e){if(!e)return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e instanceof HTMLElement&&e.isContentEditable}function Uw(e,t,n){if(!e||!n||n.querySelector(`[role="dialog"][aria-modal="true"]`))return!1;let r=t instanceof Element?t:null;if(r&&Hw(r)&&!e.contains(r)&&r.closest(`[data-testid="composer"]`)===null)return!1;let i=n.querySelector(`[data-permission-pending="true"]`);return i===null||i===e}var Ww=(0,v.memo)(function({item:e,agentName:t}){let n=e.request,[r,i]=(0,v.useState)(!1),a=e.status===`allowed`,o=(0,v.useMemo)(()=>Pc(n.toolName,n.input,110),[n]),s=n.agentId?t??`background agent`:null;return(0,K.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-${n.requestId}`,children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>i(e=>!e),className:`flex w-full min-w-0 items-center gap-2 rounded px-1 py-0.5 text-left hover:bg-surface-2`,children:[a?(0,K.jsx)(Y.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,K.jsx)(Y.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,K.jsxs)(`span`,{className:`shrink-0`,children:[a?`Allowed`:`Denied`,` `,n.displayName??n.toolName,e.resolvedBy===`auto`?` (automatically)`:e.resolvedBy&&e.resolvedBy!==`local`?` (by ${e.resolvedBy})`:``]}),o?(0,K.jsx)(`span`,{className:`min-w-0 truncate font-mono text-fg-muted`,"data-testid":`permission-summary`,children:o}):null,s?(0,K.jsx)(`span`,{title:n.agentId??void 0,className:`shrink-0`,children:(0,K.jsx)(Mf,{tone:`think`,children:s})}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:r,className:`w-3 h-3 shrink-0`})]}),r?(0,K.jsx)(`div`,{className:`ml-5 mt-1`,children:(0,K.jsx)(ew,{name:n.toolName,input:n.input})}):null]})});function Gw({items:e,agentNameOf:t}){let[n,r]=(0,v.useState)(!1),i=YC((0,v.useMemo)(()=>e.map(e=>e.id),[e]),r),{allowed:a,denied:o,tools:s,who:c}=(0,v.useMemo)(()=>{let n=e.filter(e=>e.status===`allowed`).length,r=new Map,i=new Set;for(let n of e){let e=n.request.displayName??n.request.toolName;r.set(e,(r.get(e)??0)+1),n.request.agentId&&i.add(t(n.request.agentId)??`background agent`)}return{allowed:n,denied:e.length-n,tools:[...r.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>t>1?`${e} ×${t}`:e).join(`, `),who:[...i]}},[e,t]);return(0,K.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-run`,children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":n||i,onClick:()=>r(e=>!e),className:`flex w-full min-w-0 items-center gap-2 rounded px-1 py-0.5 text-left hover:bg-surface-2`,children:[o===0?(0,K.jsx)(Y.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,K.jsx)(Y.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,K.jsxs)(`span`,{className:`shrink-0`,children:[a>0?`Allowed ${a}`:``,a>0&&o>0?` · `:``,o>0?`Denied ${o}`:``]}),(0,K.jsx)(`span`,{className:`min-w-0 truncate text-fg-muted`,"data-testid":`permission-run-tools`,children:s}),c.length>0?(0,K.jsx)(`span`,{className:`shrink-0`,children:(0,K.jsx)(Mf,{tone:`think`,children:c.length===1?c[0]:`${c.length} agents`})}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:n||i,className:`w-3 h-3 shrink-0`})]}),n||i?(0,K.jsx)(`div`,{className:`ml-3`,children:e.map(e=>(0,K.jsx)(Ww,{item:e,agentName:e.request.agentId?t(e.request.agentId):null},e.id))}):null]})}function Kw({item:e,onDecide:t,busy:n,stackIndex:r,agentName:i}){let a=e.request,[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(``),u=a.title??`Allow ${a.displayName??a.toolName}?`,d=(0,v.useRef)(t);d.current=t;let f=(0,v.useRef)(n);f.current=n;let p=(0,v.useRef)(null),m=e.status===`pending`;return(0,v.useEffect)(()=>{if(m&&typeof document<`u`){let e=e=>{e.key!==`Escape`||f.current||Uw(p.current,e.target,document)&&(e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),d.current({behavior:`deny`}))};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)}},[m]),e.status===`pending`?a.toolName===`AskUserQuestion`?(0,K.jsx)(Vw,{item:e,onDecide:t,busy:n,cardRef:p,...r===void 0?{}:{stackIndex:r}}):(0,K.jsxs)(`div`,{ref:p,className:`my-2 rounded-lg border border-warn/60 bg-warn-soft/40 p-3 text-sm shadow-sm`,role:`group`,"aria-label":`Permission request`,"data-permission-pending":`true`,"data-testid":`permission-${a.requestId}`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Shield,{className:`mt-0.5 w-4 h-4 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-semibold`,children:u}),(0,K.jsx)(Mf,{tone:`warn`,children:a.toolName}),a.agentId?(0,K.jsx)(Mf,{tone:`think`,children:`subagent`}):null]}),a.description?(0,K.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:a.description}):null,a.decisionReason?(0,K.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-faint`,children:a.decisionReason}):null,a.blockedPath?(0,K.jsxs)(`div`,{className:`mt-0.5 font-mono text-xs text-danger`,children:[`Blocked path: `,a.blockedPath]}):null]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(ew,{name:a.toolName,input:a.input})}),o?(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(`input`,{className:Af,placeholder:`Optional: tell the agent why (sent as the tool result)`,value:c,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&t(c.trim()?{behavior:`deny`,message:c.trim()}:{behavior:`deny`})}})}):null,(0,K.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,K.jsxs)(X,{variant:`inverse`,busy:n,onClick:()=>t({behavior:`allow`}),autoFocus:!0,children:[(0,K.jsx)(Y.Check,{className:`w-3.5 h-3.5`}),` Allow`]}),(0,K.jsx)(X,{variant:`secondary`,busy:n,title:`Allow and remember this rule for the session/project`,onClick:()=>t({behavior:`allow`,remember:!0}),children:`Allow always`}),o?(0,K.jsx)(X,{variant:`secondary`,busy:n,onClick:()=>t(c.trim()?{behavior:`deny`,message:c.trim()}:{behavior:`deny`}),children:`Confirm deny`}):(0,K.jsxs)(X,{variant:`ghost`,busy:n,onClick:()=>s(!0),children:[(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),` Deny`]}),(0,K.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`Enter = allow · Esc = deny`})]})]}):(0,K.jsx)(Ww,{item:e,agentName:i??null})}function qw(e){let t=[],n=0;for(;n<e.length;){let r=e[n].item;if(r.kind===`permission`&&r.status!==`pending`){let r=[],i=n;for(;i<e.length;){let t=e[i].item;if(t.kind!==`permission`||t.status===`pending`)break;r.push(t),i+=1}if(r.length>=3){t.push({run:r}),n=i;continue}}t.push(e[n]),n+=1}return t}function Jw(e){if(!e)return{flow:void 0,queued:[]};let t=[];for(let n of e)n.kind===`user`&&n.waiting&&!n.failed&&t.push(n);if(t.length===0)return{flow:e,queued:t};let n=new Set(t.map(e=>e.id));return{flow:e.filter(e=>!n.has(e.id)),queued:t}}function Yw({items:e,onCancel:t}){let n=(0,v.useRef)(null),r=e.length;return(0,v.useEffect)(()=>{let e=n.current;e&&(e.scrollTop=e.scrollHeight)},[r]),e.length===0?null:(0,K.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface px-3 pb-1 pt-2 sm:px-6`,"data-testid":`queued-strip`,children:[(0,K.jsxs)(`div`,{className:`mb-0.5 text-right text-[11px] text-fg-faint`,children:[e.length===1?`Queued`:`${e.length} queued`,` — the agent reads this at its next step`]}),(0,K.jsx)(`div`,{ref:n,className:`max-h-[200px] overflow-y-auto`,"data-testid":`queued-strip-list`,children:e.map(e=>(0,K.jsxs)(`div`,{className:`relative`,[WS]:e.id,children:[(0,K.jsx)(Qw,{item:e}),t&&e.requestId?(0,K.jsx)(`button`,{type:`button`,onClick:()=>t(e),title:`Withdraw this message — the agent has not read it yet`,"aria-label":`Withdraw this message`,"data-testid":`queued-cancel-${e.requestId}`,className:`absolute right-1 top-1 rounded-full border border-border bg-surface p-0.5 text-fg-muted shadow-sm hover:bg-surface-2 hover:text-fg`,children:(0,K.jsx)(Y.X,{className:`h-3 w-3`})}):null]},e.id))})]})}function Xw(e){return e.failed?`failed`:e.optimistic||e.waiting?`pending`:`delivered`}function Zw(e){return!e.compactSummary&&!e.taskNotification&&!e.engineNote&&!N(e.text)&&!P(e.text)}var Qw=(0,v.memo)(function({item:e}){if(P(e.text))return(0,K.jsx)(tT,{item:e});if(e.compactSummary)return(0,K.jsx)(aT,{item:e});if(e.taskNotification)return(0,K.jsx)(iT,{item:e});if(N(e.text))return(0,K.jsx)(nT,{item:e});if(e.engineNote)return(0,K.jsx)(eT,{item:e});let t=Xw(e);return(0,K.jsx)(`div`,{className:`my-2 flex justify-end`,"data-testid":`user-bubble`,"data-delivery":t,children:(0,K.jsxs)(`div`,{className:W(`max-w-[85%] rounded-2xl rounded-br-md bg-user-bubble px-3.5 py-2 text-sm`,t===`pending`&&`opacity-70`,e.failed&&`border border-danger/50`),children:[e.attachments.length>0?(0,K.jsx)(`div`,{className:`mb-1 flex flex-wrap gap-1`,children:e.attachments.map((e,t)=>{let n=e.source,r=n?.type===`base64`&&n.data?`data:${n.media_type??`image/png`};base64,${n.data}`:null;return r&&e.type===`image`?(0,K.jsx)(`img`,{src:r,alt:`attachment`,className:`max-h-40 rounded border border-border`},t):(0,K.jsx)(Mf,{children:e.type},t)})}):null,(0,K.jsx)($w,{text:e.text}),e.failed?(0,K.jsx)(`div`,{className:`mt-1 text-right text-[10px] text-danger`,"data-testid":`user-not-sent`,children:`Not sent — send it again`}):null,(0,K.jsxs)(`div`,{className:`mt-0.5 flex items-center justify-end gap-1 text-[10px] text-fg-muted`,"data-testid":`user-time`,children:[e.timestamp?(0,K.jsx)(`span`,{title:xu(e.timestamp),children:Su(e.timestamp)}):null,t===`pending`?(0,K.jsx)(`span`,{"data-testid":`user-waiting`,title:e.waiting?`Handed to the agent — it reads this at its next step`:`Sending…`,"aria-label":`not read yet`,children:(0,K.jsx)(Y.Clock,{className:`h-3 w-3`})}):t===`delivered`?(0,K.jsx)(`span`,{"data-testid":`user-delivered`,title:e.deliveredAt?`Read by the agent at ${xu(e.deliveredAt)}`:`Sent to the model`,"aria-label":`read by the agent`,children:(0,K.jsx)(Y.Check,{className:`h-3 w-3`})}):null]})]})})});function $w({text:e}){let t=Aw(e);return t?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-1.5 line-clamp-6 border-l-2 border-accent/70 pl-2 text-xs text-fg-muted pre-wrap`,"data-testid":`user-reply-quote`,children:t.quote}),t.reply===``?null:(0,K.jsx)(`div`,{className:`pre-wrap`,children:t.reply})]}):(0,K.jsx)(`div`,{className:`pre-wrap`,children:e})}var eT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`engine-note`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Engine note`}),(0,K.jsxs)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:[ae(e.text),r>40?` · ${r.toLocaleString()} words`:``]}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),tT=(0,v.memo)(function({item:e}){return(0,K.jsxs)(`div`,{className:`my-2 flex items-center gap-2 text-xs text-fg-faint`,"data-testid":`interrupt-marker`,title:xu(e.timestamp),children:[(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2.5 py-0.5`,children:[(0,K.jsx)(Y.Stop,{className:`h-3 w-3 text-danger`}),(0,K.jsx)(`span`,{className:`font-medium text-fg-muted`,children:`User requested stop`})]}),(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`})]})}),nT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);return YC(e.id,n),(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`stream-cut`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Reply cut off`}),(0,K.jsx)(`span`,{className:`text-xs opacity-70`,children:`the stream broke mid-answer; the engine asked the model to resume where it stopped`}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),rT=(0,v.memo)(function({item:e}){let t=jc(e.error,e.text),n=WC(e.text,e.streaming);return(0,K.jsxs)(`div`,{className:`my-2 text-sm`,"data-testid":`assistant-bubble`,title:xu(e.timestamp),children:[(0,K.jsx)(`div`,{className:W(e.streaming&&`caret`),children:e.streaming?(0,K.jsx)(HS,{text:n}):(0,K.jsx)(zS,{text:n})}),t?(0,K.jsx)(`div`,{className:`mt-1 text-xs text-danger`,"data-testid":`assistant-error`,children:t}):null,e.aborted?(0,K.jsx)(Mf,{tone:`warn`,className:`mt-1`,children:`interrupted`}):null]})}),iT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=pe(e.text),i=r.status??`ended`,a=i===`completed`?`text-ok`:i===`failed`?`text-danger`:`text-warn`;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`task-notification`,"data-status":i,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Background task`}),(0,K.jsx)(`span`,{className:`text-xs font-medium ${a}`,children:i}),r.summary?(0,K.jsx)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:r.summary}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsxs)(`div`,{className:`border-t border-border px-3 py-2 text-xs text-fg-muted`,children:[r.note?(0,K.jsx)(`p`,{className:`mb-2`,children:r.note}):null,(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-[11px] text-fg-faint`,children:e.text})]}):null]})}),aT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`compact-summary`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Context compacted`}),(0,K.jsxs)(`span`,{className:`text-xs opacity-70`,children:[`the engine summarised the conversation so far to make room · `,r.toLocaleString(),` `,`words`]}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),oT=(0,v.memo)(function({item:e}){let t=[vu(e.durationMs),`${yu(e.inputTokens)} in${(e.cachedInputTokens??0)>0?` (+${yu(e.cachedInputTokens??0)} cached)`:``} / ${yu(e.outputTokens)} out`,`${e.numTurns} step${e.numTurns===1?``:`s`}`],n=e.isError?kc(e):`turn complete`;return(0,K.jsxs)(`div`,{className:W(`my-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11px]`,e.isError?`text-danger`:`text-fg-faint`),"data-testid":`result-line`,title:xu(e.timestamp),children:[e.isError?(0,K.jsx)(Y.Alert,{className:`w-3 h-3`}):(0,K.jsx)(Y.Check,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:n}),(0,K.jsx)(`span`,{children:`·`}),(0,K.jsx)(`span`,{children:t.join(` · `)}),e.errors.length>0?(0,K.jsx)(`span`,{className:`w-full pre-wrap font-mono`,children:e.errors.join(`
|
|
121
|
+
`).trim();return r===``?null:{quote:r,reply:i}}function jw(e){let t=e.trim();if(t.length<=300)return t;let n=t.slice(0,299),r=n.lastIndexOf(` `);return`${(r>150?n.slice(0,r):n).trimEnd()}…`}function Mw(e){if(!e)return null;for(let t of[`file_path`,`notebook_path`,`path`]){let n=e[t];if(typeof n==`string`&&n.trim()!==``)return n}return null}var Nw=`data-pin-message`;function Pw(e,t,n){let r=0,i=e-1,a=-1;for(;r<=i;){let e=r+i>>1;t(e)<n?(a=e,r=e+1):i=e-1}return a}function Fw(e,t=240){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,t-1)}…`}var Iw=null,Lw=460,Rw=8;function zw(e,t){if(typeof window>`u`)return e;let n=t?.offsetWidth??Lw,r=t?.offsetHeight??200;return{left:Math.min(Math.max(Rw,e.left),Math.max(Rw,window.innerWidth-n-Rw)),top:Math.min(Math.max(Rw,e.top),Math.max(Rw,window.innerHeight-r-Rw))}}function Bw(e,t,n,r){return e===t?`current`:r[e]?`skipped`:n[e]?`answered`:`open`}function Vw({item:e,onDecide:t,busy:n,cardRef:r,stackIndex:i=0}){let a=e.request,o=mc(a.input),[s,c]=(0,v.useState)(0),[l,u]=(0,v.useState)({}),[d,f]=(0,v.useState)({}),[p,m]=(0,v.useState)({}),[h,g]=(0,v.useState)(Iw),_=(0,v.useRef)(null),y=(0,v.useRef)(null),b=o[s],x=s===o.length-1,S=e=>(l[e]??[]).length>0||(d[e]??``).trim().length>0,C={};o.forEach((e,t)=>{C[t]=S(t)});let w=new Set(Object.entries(p).filter(([,e])=>e).map(([e])=>Number(e))),T=hc(o,l,d,w),E=o.every((e,t)=>C[t]||p[t]),D=o.some((e,t)=>C[t]&&!p[t]),O=(e,t,n)=>{m(t=>t[e]?{...t,[e]:!1}:t),f(t=>t[e]?{...t,[e]:``}:t),u(r=>{let i=r[e]??[];return n?{...r,[e]:i.includes(t)?i.filter(e=>e!==t):[...i,t]}:{...r,[e]:i[0]===t?[]:[t]}})},k=(0,v.useCallback)(()=>{if(E){if(!D){t({behavior:`deny`,message:fc});return}t({behavior:`allow`,updatedInput:{...a.input,answers:T}})}},[E,D,t,a.input,T]),A=()=>{b&&(!C[s]&&!p[s]||(x?k():c(s+1)))},ee=()=>{if(m(e=>({...e,[s]:!0})),u(e=>({...e,[s]:[]})),f(e=>({...e,[s]:``})),x){let e=new Set([...w,s]);if(!o.some((t,n)=>C[n]&&!e.has(n))){t({behavior:`deny`,message:fc});return}let n={...l,[s]:[]},r={...d,[s]:``};t({behavior:`allow`,updatedInput:{...a.input,answers:hc(o,n,r,e)}});return}c(s+1)},j=e=>{if(e.button!==0)return;let t=r.current;if(!t)return;let n=t.getBoundingClientRect();_.current={dx:e.clientX-n.left,dy:e.clientY-n.top},e.preventDefault();let i=e=>{let t=_.current;if(!t)return;let n=zw({left:e.clientX-t.dx,top:e.clientY-t.dy},r.current);Iw=n,g(n)},a=()=>{_.current=null,document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)};if((0,v.useEffect)(()=>{if(h){let e=zw(h,r.current);(e.left!==h.left||e.top!==h.top)&&g(e)}},[]),typeof document>`u`||o.length===0)return null;let M=h?{left:h.left+i*24,top:h.top+i*24}:{right:16+i*24,bottom:132+i*24};return(0,Cf.createPortal)((0,K.jsxs)(`div`,{ref:r,className:`fixed z-30 flex max-h-[70vh] w-[460px] max-w-[calc(100vw-16px)] flex-col rounded-xl border border-accent/50 bg-surface text-sm shadow-xl`,style:M,role:`group`,"aria-label":`The model has a question`,"data-permission-pending":`true`,"data-testid":`question-${a.requestId}`,children:[(0,K.jsxs)(`div`,{className:`flex cursor-move select-none items-center gap-2 rounded-t-xl border-b border-border bg-accent-soft/40 px-3 py-2`,onMouseDown:j,"data-testid":`question-drag-handle`,title:`Drag to move`,children:[(0,K.jsx)(Y.Info,{className:`w-4 h-4 text-accent`}),(0,K.jsx)(`span`,{className:`font-semibold`,children:o.length>1?`The model has questions`:`The model has a question`}),a.agentId?(0,K.jsx)(Mf,{tone:`think`,children:`subagent`}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsxs)(`span`,{className:`text-[11px] text-fg-faint`,"data-testid":`question-step`,children:[s+1,` of `,o.length]})]}),o.length>1?(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1 border-b border-border px-3 py-1.5`,role:`tablist`,"data-testid":`question-tabs`,children:o.map((e,t)=>{let r=Bw(t,s,C,p);return(0,K.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t===s,disabled:n,onClick:()=>c(t),"data-testid":`question-tab`,"data-state":r,title:e.question,className:`flex items-center gap-1 rounded-md border px-2 py-0.5 text-[11px] transition `+(t===s?`border-accent bg-accent text-accent-fg`:`border-border bg-surface text-fg-muted hover:border-accent/60`),children:[r===`answered`?(0,K.jsx)(Y.Check,{className:`w-3 h-3`}):null,r===`skipped`?(0,K.jsx)(`span`,{"aria-hidden":!0,children:`–`}):null,e.header||`Q${t+1}`]},t)})}):null,b?(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-2.5`,"data-testid":`question-body`,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[b.header?(0,K.jsx)(Mf,{tone:`accent`,children:b.header}):null,(0,K.jsx)(`span`,{className:`font-medium`,children:b.question})]}),(0,K.jsx)(`div`,{className:`space-y-1`,role:b.multiSelect?`group`:`radiogroup`,"aria-label":b.multiSelect?`choose any`:`choose one`,children:b.options.map(e=>{let t=(l[s]??[]).includes(e.label);return(0,K.jsxs)(`button`,{type:`button`,role:b.multiSelect?`checkbox`:`radio`,"aria-checked":t,disabled:n,onClick:()=>O(s,e.label,b.multiSelect),"data-testid":`question-option`,"data-label":e.label,className:`flex w-full items-start gap-2.5 rounded-md border px-2.5 py-1.5 text-left transition `+(t?`border-accent bg-accent-soft/60`:`border-border bg-surface hover:border-accent/60`),children:[(0,K.jsx)(`span`,{"aria-hidden":!0,className:`mt-0.5 flex h-3.5 w-3.5 shrink-0 items-center justify-center border `+(b.multiSelect?`rounded-sm `:`rounded-full `)+(t?`border-accent bg-accent text-accent-fg`:`border-fg-faint`),children:t?(0,K.jsx)(Y.Check,{className:`w-2.5 h-2.5`}):null}),(0,K.jsxs)(`span`,{className:`min-w-0`,children:[(0,K.jsx)(`span`,{className:`block text-sm`,children:e.label}),e.description?(0,K.jsx)(`span`,{className:`block text-[11px] leading-snug text-fg-muted`,children:e.description}):null]})]},e.label)})}),(0,K.jsx)(`input`,{ref:y,className:Af+` mt-2 text-xs`,value:d[s]??``,onChange:e=>{let t=e.target.value;f(e=>({...e,[s]:t})),t.trim()&&(m(e=>e[s]?{...e,[s]:!1}:e),u(e=>(e[s]??[]).length>0?{...e,[s]:[]}:e))},placeholder:b.options.length>0?`Other — type your own answer`:`Type your answer`,autoComplete:`off`,"data-testid":`question-custom`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),A())}}),b.multiSelect?(0,K.jsx)(`div`,{className:`mt-1 text-[11px] text-fg-faint`,children:`Choose any that apply.`}):null]}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t border-border px-3 py-2`,children:[(0,K.jsx)(X,{size:`sm`,variant:`ghost`,disabled:n||s===0,onClick:()=>c(s-1),"data-testid":`question-back`,children:`Back`}),(0,K.jsx)(X,{size:`sm`,disabled:n,onClick:ee,"data-testid":`question-skip`,children:`Skip`}),(0,K.jsx)(`span`,{className:`flex-1`}),x?(0,K.jsx)(X,{size:`sm`,variant:`primary`,busy:n,disabled:!E,onClick:k,"data-testid":`question-answer`,children:`Answer`}):(0,K.jsxs)(X,{size:`sm`,variant:`primary`,busy:n,disabled:!C[s]&&!p[s],onClick:A,"data-testid":`question-next`,children:[`Next `,(0,K.jsx)(Y.ChevronRight,{className:`w-3.5 h-3.5`})]})]})]}),document.body)}function Hw(e){if(!e)return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e instanceof HTMLElement&&e.isContentEditable}function Uw(e,t,n){if(!e||!n||n.querySelector(`[role="dialog"][aria-modal="true"]`))return!1;let r=t instanceof Element?t:null;if(r&&Hw(r)&&!e.contains(r)&&r.closest(`[data-testid="composer"]`)===null)return!1;let i=n.querySelector(`[data-permission-pending="true"]`);return i===null||i===e}var Ww=(0,v.memo)(function({item:e,agentName:t}){let n=e.request,[r,i]=(0,v.useState)(!1),a=e.status===`allowed`,o=(0,v.useMemo)(()=>Pc(n.toolName,n.input,110),[n]),s=n.agentId?t??`background agent`:null;return(0,K.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-${n.requestId}`,children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>i(e=>!e),className:`flex w-full min-w-0 items-center gap-2 rounded px-1 py-0.5 text-left hover:bg-surface-2`,children:[a?(0,K.jsx)(Y.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,K.jsx)(Y.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,K.jsxs)(`span`,{className:`shrink-0`,children:[a?`Allowed`:`Denied`,` `,n.displayName??n.toolName,e.resolvedBy===`auto`?` (automatically)`:e.resolvedBy&&e.resolvedBy!==`local`?` (by ${e.resolvedBy})`:``]}),o?(0,K.jsx)(`span`,{className:`min-w-0 truncate font-mono text-fg-muted`,"data-testid":`permission-summary`,children:o}):null,s?(0,K.jsx)(`span`,{title:n.agentId??void 0,className:`shrink-0`,children:(0,K.jsx)(Mf,{tone:`think`,children:s})}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:r,className:`w-3 h-3 shrink-0`})]}),r?(0,K.jsx)(`div`,{className:`ml-5 mt-1`,children:(0,K.jsx)(ew,{name:n.toolName,input:n.input})}):null]})});function Gw({items:e,agentNameOf:t}){let[n,r]=(0,v.useState)(!1),i=YC((0,v.useMemo)(()=>e.map(e=>e.id),[e]),r),{allowed:a,denied:o,tools:s,who:c}=(0,v.useMemo)(()=>{let n=e.filter(e=>e.status===`allowed`).length,r=new Map,i=new Set;for(let n of e){let e=n.request.displayName??n.request.toolName;r.set(e,(r.get(e)??0)+1),n.request.agentId&&i.add(t(n.request.agentId)??`background agent`)}return{allowed:n,denied:e.length-n,tools:[...r.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>t>1?`${e} ×${t}`:e).join(`, `),who:[...i]}},[e,t]);return(0,K.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-run`,children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":n||i,onClick:()=>r(e=>!e),className:`flex w-full min-w-0 items-center gap-2 rounded px-1 py-0.5 text-left hover:bg-surface-2`,children:[o===0?(0,K.jsx)(Y.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,K.jsx)(Y.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,K.jsxs)(`span`,{className:`shrink-0`,children:[a>0?`Allowed ${a}`:``,a>0&&o>0?` · `:``,o>0?`Denied ${o}`:``]}),(0,K.jsx)(`span`,{className:`min-w-0 truncate text-fg-muted`,"data-testid":`permission-run-tools`,children:s}),c.length>0?(0,K.jsx)(`span`,{className:`shrink-0`,children:(0,K.jsx)(Mf,{tone:`think`,children:c.length===1?c[0]:`${c.length} agents`})}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:n||i,className:`w-3 h-3 shrink-0`})]}),n||i?(0,K.jsx)(`div`,{className:`ml-3`,children:e.map(e=>(0,K.jsx)(Ww,{item:e,agentName:e.request.agentId?t(e.request.agentId):null},e.id))}):null]})}function Kw({item:e,onDecide:t,busy:n,stackIndex:r,agentName:i}){let a=e.request,[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(``),u=a.title??`Allow ${a.displayName??a.toolName}?`,d=(0,v.useRef)(t);d.current=t;let f=(0,v.useRef)(n);f.current=n;let p=(0,v.useRef)(null),m=e.status===`pending`;return(0,v.useEffect)(()=>{if(m&&typeof document<`u`){let e=e=>{e.key!==`Escape`||f.current||Uw(p.current,e.target,document)&&(e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),d.current({behavior:`deny`}))};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)}},[m]),e.status===`pending`?a.toolName===`AskUserQuestion`?(0,K.jsx)(Vw,{item:e,onDecide:t,busy:n,cardRef:p,...r===void 0?{}:{stackIndex:r}}):(0,K.jsxs)(`div`,{ref:p,className:`my-2 rounded-lg border border-warn/60 bg-warn-soft/40 p-3 text-sm shadow-sm`,role:`group`,"aria-label":`Permission request`,"data-permission-pending":`true`,"data-testid":`permission-${a.requestId}`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Shield,{className:`mt-0.5 w-4 h-4 text-warn`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-semibold`,children:u}),(0,K.jsx)(Mf,{tone:`warn`,children:a.toolName}),a.agentId?(0,K.jsx)(Mf,{tone:`think`,children:`subagent`}):null]}),a.description?(0,K.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:a.description}):null,a.decisionReason?(0,K.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-faint`,children:a.decisionReason}):null,a.blockedPath?(0,K.jsxs)(`div`,{className:`mt-0.5 font-mono text-xs text-danger`,children:[`Blocked path: `,a.blockedPath]}):null]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(ew,{name:a.toolName,input:a.input})}),o?(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(`input`,{className:Af,placeholder:`Optional: tell the agent why (sent as the tool result)`,value:c,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&t(c.trim()?{behavior:`deny`,message:c.trim()}:{behavior:`deny`})}})}):null,(0,K.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,K.jsxs)(X,{variant:`inverse`,busy:n,onClick:()=>t({behavior:`allow`}),autoFocus:!0,children:[(0,K.jsx)(Y.Check,{className:`w-3.5 h-3.5`}),` Allow`]}),(0,K.jsx)(X,{variant:`secondary`,busy:n,title:`Allow and remember this rule for the session/project`,onClick:()=>t({behavior:`allow`,remember:!0}),children:`Allow always`}),o?(0,K.jsx)(X,{variant:`secondary`,busy:n,onClick:()=>t(c.trim()?{behavior:`deny`,message:c.trim()}:{behavior:`deny`}),children:`Confirm deny`}):(0,K.jsxs)(X,{variant:`ghost`,busy:n,onClick:()=>s(!0),children:[(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),` Deny`]}),(0,K.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`Enter = allow · Esc = deny`})]})]}):(0,K.jsx)(Ww,{item:e,agentName:i??null})}function qw(e){let t=[],n=0;for(;n<e.length;){let r=e[n].item;if(r.kind===`permission`&&r.status!==`pending`){let r=[],i=n;for(;i<e.length;){let t=e[i].item;if(t.kind!==`permission`||t.status===`pending`)break;r.push(t),i+=1}if(r.length>=3){t.push({run:r}),n=i;continue}}t.push(e[n]),n+=1}return t}function Jw(e){if(!e)return{flow:void 0,queued:[]};let t=[];for(let n of e)n.kind===`user`&&n.waiting&&!n.failed&&t.push(n);if(t.length===0)return{flow:e,queued:t};let n=new Set(t.map(e=>e.id));return{flow:e.filter(e=>!n.has(e.id)),queued:t}}function Yw({items:e,onCancel:t}){let n=(0,v.useRef)(null),r=e.length;return(0,v.useEffect)(()=>{let e=n.current;e&&(e.scrollTop=e.scrollHeight)},[r]),e.length===0?null:(0,K.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface px-3 pb-1 pt-2 sm:px-6`,"data-testid":`queued-strip`,children:[(0,K.jsxs)(`div`,{className:`mb-0.5 text-right text-[11px] text-fg-faint`,children:[e.length===1?`Queued`:`${e.length} queued`,` — the agent reads this at its next step`]}),(0,K.jsx)(`div`,{ref:n,className:`max-h-[200px] overflow-y-auto`,"data-testid":`queued-strip-list`,children:e.map(e=>(0,K.jsxs)(`div`,{className:`relative`,[WS]:e.id,children:[(0,K.jsx)(Qw,{item:e}),t&&e.requestId?(0,K.jsx)(`button`,{type:`button`,onClick:()=>t(e),title:`Withdraw this message — the agent has not read it yet`,"aria-label":`Withdraw this message`,"data-testid":`queued-cancel-${e.requestId}`,className:`absolute right-1 top-1 rounded-full border border-border bg-surface p-0.5 text-fg-muted shadow-sm hover:bg-surface-2 hover:text-fg`,children:(0,K.jsx)(Y.X,{className:`h-3 w-3`})}):null]},e.id))})]})}function Xw(e){return e.failed?`failed`:e.optimistic||e.waiting?`pending`:`delivered`}function Zw(e){return!e.compactSummary&&!e.taskNotification&&!e.engineNote&&!N(e.text)&&!P(e.text)}var Qw=(0,v.memo)(function({item:e}){if(P(e.text))return(0,K.jsx)(tT,{item:e});if(e.compactSummary)return(0,K.jsx)(aT,{item:e});if(e.taskNotification)return(0,K.jsx)(iT,{item:e});if(N(e.text))return(0,K.jsx)(nT,{item:e});if(e.engineNote)return(0,K.jsx)(eT,{item:e});let t=Xw(e);return(0,K.jsx)(`div`,{className:`my-2 flex justify-end`,"data-testid":`user-bubble`,"data-delivery":t,children:(0,K.jsxs)(`div`,{className:W(`max-w-[85%] rounded-2xl rounded-br-md bg-user-bubble px-3.5 py-2 text-sm`,t===`pending`&&`opacity-70`,e.failed&&`border border-danger/50`),children:[e.attachments.length>0?(0,K.jsx)(`div`,{className:`mb-1 flex flex-wrap gap-1`,children:e.attachments.map((e,t)=>{let n=e.source,r=n?.type===`base64`&&n.data?`data:${n.media_type??`image/png`};base64,${n.data}`:null;return r&&e.type===`image`?(0,K.jsx)(`img`,{src:r,alt:`attachment`,className:`max-h-40 rounded border border-border`},t):(0,K.jsx)(Mf,{children:e.type},t)})}):null,(0,K.jsx)($w,{text:e.text}),e.failed?(0,K.jsx)(`div`,{className:`mt-1 text-right text-[10px] text-danger`,"data-testid":`user-not-sent`,children:`Not sent — send it again`}):null,(0,K.jsxs)(`div`,{className:`mt-0.5 flex items-center justify-end gap-1 text-[10px] text-fg-muted`,"data-testid":`user-time`,children:[e.timestamp?(0,K.jsx)(`span`,{title:xu(e.timestamp),children:Su(e.timestamp)}):null,t===`pending`?(0,K.jsx)(`span`,{"data-testid":`user-waiting`,title:e.waiting?`Handed to the agent — it reads this at its next step`:`Sending…`,"aria-label":`not read yet`,children:(0,K.jsx)(Y.Clock,{className:`h-3 w-3`})}):t===`delivered`?(0,K.jsx)(`span`,{"data-testid":`user-delivered`,title:e.deliveredAt?`Read by the agent at ${xu(e.deliveredAt)}`:`Sent to the model`,"aria-label":`read by the agent`,children:(0,K.jsx)(Y.Check,{className:`h-3 w-3`})}):null]})]})})});function $w({text:e}){let t=Aw(e);return t?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-1.5 line-clamp-6 border-l-2 border-accent/70 pl-2 text-xs text-fg-muted pre-wrap`,"data-testid":`user-reply-quote`,children:t.quote}),t.reply===``?null:(0,K.jsx)(`div`,{className:`pre-wrap`,children:t.reply})]}):(0,K.jsx)(`div`,{className:`pre-wrap`,children:e})}var eT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`engine-note`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Engine note`}),(0,K.jsxs)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:[ae(e.text),r>40?` · ${r.toLocaleString()} words`:``]}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),tT=(0,v.memo)(function({item:e}){return(0,K.jsxs)(`div`,{className:`my-2 flex items-center gap-2 text-xs text-fg-faint`,"data-testid":`interrupt-marker`,title:xu(e.timestamp),children:[(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2.5 py-0.5`,children:[(0,K.jsx)(Y.Stop,{className:`h-3 w-3 text-danger`}),(0,K.jsx)(`span`,{className:`font-medium text-fg-muted`,children:`User requested stop`})]}),(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`})]})}),nT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);return YC(e.id,n),(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`stream-cut`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Reply cut off`}),(0,K.jsx)(`span`,{className:`text-xs opacity-70`,children:`the stream broke mid-answer; the engine asked the model to resume where it stopped`}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),rT=(0,v.memo)(function({item:e}){let t=jc(e.error,e.text),n=WC(e.text,e.streaming);return(0,K.jsxs)(`div`,{className:`my-2 text-sm`,"data-testid":`assistant-bubble`,title:xu(e.timestamp),children:[(0,K.jsx)(`div`,{className:W(e.streaming&&`caret`),children:e.streaming?(0,K.jsx)(HS,{text:n}):(0,K.jsx)(zS,{text:n})}),t?(0,K.jsx)(`div`,{className:`mt-1 text-xs text-danger`,"data-testid":`assistant-error`,children:t}):null,e.aborted?(0,K.jsx)(Mf,{tone:`warn`,className:`mt-1`,children:`interrupted`}):null]})}),iT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=pe(e.text),i=r.status??`ended`,a=i===`completed`?`text-ok`:i===`failed`?`text-danger`:`text-warn`;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`task-notification`,"data-status":i,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Background task`}),(0,K.jsx)(`span`,{className:`text-xs font-medium ${a}`,children:i}),r.summary?(0,K.jsx)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:r.summary}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsxs)(`div`,{className:`border-t border-border px-3 py-2 text-xs text-fg-muted`,children:[r.note?(0,K.jsx)(`p`,{className:`mb-2`,children:r.note}):null,(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-[11px] text-fg-faint`,children:e.text})]}):null]})}),aT=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);YC(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,K.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`compact-summary`,title:xu(e.timestamp),children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-fg-muted hover:bg-surface-2`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`font-medium`,children:`Context compacted`}),(0,K.jsxs)(`span`,{className:`text-xs opacity-70`,children:[`the engine summarised the conversation so far to make room · `,r.toLocaleString(),` `,`words`]}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(Y.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,K.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,K.jsx)(zS,{text:e.text})}):null]})}),oT=(0,v.memo)(function({item:e}){let t=[vu(e.durationMs),`${yu(e.inputTokens)} in${(e.cachedInputTokens??0)>0?` (+${yu(e.cachedInputTokens??0)} cached)`:``} / ${yu(e.outputTokens)} out`,`${e.numTurns} step${e.numTurns===1?``:`s`}`],n=e.isError?kc(e):`turn complete`;return(0,K.jsxs)(`div`,{className:W(`my-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11px]`,e.isError?`text-danger`:`text-fg-faint`),"data-testid":`result-line`,title:xu(e.timestamp),children:[e.isError?(0,K.jsx)(Y.Alert,{className:`w-3 h-3`}):(0,K.jsx)(Y.Check,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:n}),(0,K.jsx)(`span`,{children:`·`}),(0,K.jsx)(`span`,{children:t.join(` · `)}),e.errors.length>0?(0,K.jsx)(`span`,{className:`w-full pre-wrap font-mono`,children:e.errors.join(`
|
|
121
122
|
`)}):null]})}),sT=(0,v.memo)(function({item:e}){return(0,K.jsxs)(`div`,{className:`my-3 flex items-center gap-2 text-[11px] text-fg-faint`,children:[(0,K.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,K.jsxs)(`span`,{children:[`Context compacted (`,e.trigger,`) · `,yu(e.preTokens),e.postTokens===null?``:` → ${yu(e.postTokens)}`,` tokens`]}),(0,K.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}),cT=(0,v.memo)(function({item:e}){let t=e.subtype===`local-command`||e.subtype===`local-command-error`,n=e.subtype===`command`;return e.subtype===`rewind`?(0,K.jsxs)(`div`,{className:`my-3 flex items-center gap-2 text-[11px] text-fg-faint`,"data-testid":`rewind-boundary`,children:[(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,K.jsxs)(`span`,{className:`whitespace-nowrap rounded border border-border bg-surface-2 px-2 py-0.5`,children:[`⟲ `,e.text]}),(0,K.jsx)(`span`,{className:`h-px flex-1 bg-border`})]}):(0,K.jsx)(`div`,{className:W(`my-2 rounded-md border border-border bg-surface-2 px-3 py-1.5 text-xs`,e.subtype===`local-command-error`?`text-danger`:t?`text-fg`:`text-fg-muted`),"data-testid":t||n?`command-echo`:void 0,children:n?(0,K.jsx)(`span`,{className:`font-mono`,children:e.text}):(0,K.jsx)(`span`,{className:W(`pre-wrap`,t&&`font-semibold`),children:e.text})})}),lT=(0,v.memo)(function({item:e}){return(0,K.jsxs)(`div`,{className:`my-2 flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-3.5 h-3.5`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`font-mono`,children:e.code}),`: `,e.message]})]})});function uT({label:e,lastFrameAt:t=null}){let n=mT(t),r=n!==null&&n>=3e4,i=n!==null&&n>=3e5;return(0,K.jsxs)(`div`,{className:`my-2 flex flex-wrap items-center gap-2 text-xs text-fg-muted`,"data-testid":`working`,role:`status`,"aria-live":`polite`,children:[(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{className:`blink`,children:e}),(0,K.jsxs)(`span`,{className:`thinking-dots`,"aria-hidden":!0,children:[(0,K.jsx)(`span`,{children:`.`}),(0,K.jsx)(`span`,{children:`.`}),(0,K.jsx)(`span`,{children:`.`})]}),r&&t!==null?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`span`,{"data-testid":`working-quiet`,"aria-hidden":`true`,className:i?`inline-flex items-center gap-1 text-fg`:void 0,title:`Last activity at ${gT.format(t)}`,children:[i?(0,K.jsx)(Y.Alert,{className:`h-3.5 w-3.5 shrink-0 text-warn`}):null,`· nothing from the agent for ${vu(n)}`,i?` — it may be stuck: press Stop, then send a message to continue`:``]}),(0,K.jsx)(`span`,{className:`sr-only`,"data-testid":`working-quiet-sr`,children:i?`Nothing from the agent for over five minutes. It may be stuck: press Stop, then send a message to continue.`:`Nothing from the agent for over thirty seconds.`})]}):null]})}function dT(e){if(typeof requestAnimationFrame==`function`){let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)}let t=setTimeout(e,16);return()=>clearTimeout(t)}function fT(e){let t=e?.pendingPermissions??[];return t.length===0?null:t.some(e=>e.toolName===`AskUserQuestion`)?`answer`:`approval`}function pT(e){return!e||e.status!==`running`||e.pendingPermissions.length>0?null:e.lastFrameAt}function mT(e){let[t,n]=(0,v.useState)(()=>Date.now());return(0,v.useEffect)(()=>{if(e===null)return;n(Date.now());let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),e===null?null:Math.max(0,t-e)}var hT=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),gT=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),_T=new Intl.DateTimeFormat(void 0,{dateStyle:`full`,timeStyle:`long`}),vT=new Intl.DateTimeFormat(void 0,{weekday:`long`,day:`numeric`,month:`long`}),yT=new Intl.DateTimeFormat(void 0,{dateStyle:`full`});function bT(e){let t=Date.parse(e);if(!Number.isFinite(t))return null;let n=new Date(t);return`${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`}function xT(e,t=new Date){let n=bT(e);if(n===null)return``;if(n===bT(t.toISOString()))return`Today`;let r=new Date(t);if(r.setDate(r.getDate()-1),n===bT(r.toISOString()))return`Yesterday`;let i=Date.parse(e);return(new Date(i).getFullYear()===t.getFullYear()?vT:yT).format(i)}function ST(){let[e,t]=(0,v.useState)(0),n=bT(new Date().toISOString())??``;return(0,v.useEffect)(()=>{let e=new Date,n=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1,0,0,1),r=setTimeout(()=>t(e=>e+1),n.getTime()-e.getTime());return()=>clearTimeout(r)},[n,e]),n}var CT=(0,v.memo)(function({iso:e}){let t=e?Date.parse(e):NaN,n=Number.isFinite(t);return(0,K.jsx)(`span`,{"data-testid":`item-time`,className:`mb-2 min-w-11 shrink-0 select-none whitespace-nowrap text-right text-[10px] tabular-nums text-fg-muted`,title:n?_T.format(t):void 0,children:n?hT.format(t):``})}),wT=(0,v.memo)(function({iso:e}){return(0,K.jsx)(`div`,{className:`my-3 flex justify-center`,"data-testid":`day-separator`,children:(0,K.jsx)(`span`,{className:`rounded-full border border-border bg-surface px-2.5 py-0.5 text-[11px] text-fg-muted`,children:xT(e)})})});function TT({hasProject:e}){let{actions:t}=q();return(0,K.jsxs)(`div`,{className:`py-10 text-center`,"data-testid":`draft-intro`,children:[(0,K.jsx)(`div`,{className:`text-sm text-fg-muted`,children:`Send a message to start this chat.`}),e?null:(0,K.jsxs)(`div`,{className:`mx-auto mt-2 max-w-md text-xs text-fg-faint`,children:[`It runs in a folder OonaCode makes for it. The agent can still read and write anywhere on this PC — it just asks first.`,` `,(0,K.jsx)(`button`,{type:`button`,className:`underline hover:text-fg`,onClick:()=>t.openDialog(`project`),children:`Use one of your project folders`}),` `,`to load its `,(0,K.jsx)(`code`,{children:`CLAUDE.md`}),` and settings instead.`]})]})}function ET(e,t,n){return e===`waiting_permission`&&!n?`Waiting for your approval`:t??`thinking`}var DT={open:!1,query:``,currentId:null,focusSeq:0},OT=[];function kT(){let{state:e,actions:t}=q(),n=hf(),r=gf(),i=_f(),a=(0,v.useRef)(null),[o,s]=(0,v.useState)(!0),c=(0,v.useRef)(null),l=e.currentSessionId,u=l&&!i?e.transcriptLoading[l]===!0:!1,d=e.prefs.showReasoningSummaries,f=n?.items,{flow:p,queued:m}=(0,v.useMemo)(()=>Jw(f),[f]),h=(0,v.useRef)([]),g=(0,v.useMemo)(()=>{let e=p?Xl(p,h.current):[];return h.current=e,e},[p]),_=l?e.windows[l]:void 0,y=(0,v.useMemo)(()=>_??od(e.prefs.transcriptWindowSize),[_,e.prefs.transcriptWindowSize]),b=(0,v.useMemo)(()=>fd(g,y),[g,y]),[x,S]=(0,v.useState)(DT),C=(0,v.useMemo)(()=>x.open&&p?fw(p,x.query,{showReasoning:d}):OT,[p,x.open,x.query,d]),T=x.currentId===null?-1:C.findIndex(e=>e.id===x.currentId),E=T>=0?C[T]??null:null,D=(0,v.useCallback)(()=>S(e=>({...e,open:!0,focusSeq:e.focusSeq+1})),[]),O=(0,v.useCallback)(()=>S(DT),[]),k=(0,v.useCallback)(e=>S(t=>({...t,query:e,currentId:null})),[]),A=(0,v.useRef)(null),ee=(0,v.useCallback)(e=>{A.current=null,S(t=>{let n=Se(t.currentId===null?-1:C.findIndex(e=>e.id===t.currentId),e,C.length);return{...t,currentId:C[n]?.id??null}})},[C]);(0,v.useEffect)(()=>{if(!x.open||x.currentId!==null&&C.some(e=>e.id===x.currentId))return;let e=C.length>0?C[C.length-1]?.id??null:null;e!==x.currentId&&S(t=>({...t,currentId:e}))},[C,x.open,x.currentId]),(0,v.useEffect)(()=>{if(!l||typeof window>`u`)return;let e=e=>{!(e.ctrlKey||e.metaKey)||e.altKey||e.key!==`f`&&e.key!==`F`||(e.preventDefault(),D())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l,D]);let j=(0,v.useMemo)(()=>KC(),[]),M=E?[...E.path,E.id].join(`
|
|
122
123
|
`):``;(0,v.useLayoutEffect)(()=>{j.set(new Set(M===``?[]:M.split(`
|
|
123
124
|
`)))},[M,j]),(0,v.useEffect)(()=>{if(!E||!l){A.current=null;return}if(A.current===E.id)return;let e=g.findIndex(e=>e.item.id===E.rootId);if(e<0)return;if(e<b.start){t.revealTranscript(l,g.length-e,g.length);return}let n=a.current;if(n)return dT(()=>{let e=n.querySelector(GS(E.id))??n.querySelector(GS(E.rootId));if(!(e instanceof HTMLElement))return;A.current=E.id,s(!1);let t=QS(e,x.query);t?$S(t,n):typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`center`})})},[E,g,b.start,l,t,x.query]),(0,v.useEffect)(()=>{let e=a.current;if(!x.open||!e){ZS();return}let t=()=>XS(e,C,E?.id??null,x.query);t();let n=dT(t);return()=>{n(),ZS()}},[x.open,x.query,C,E,b.items]);let te=E?.id??null,[ne,N]=(0,v.useState)(null),P=Dw(),re=l!==null&&!P,ie=(0,v.useCallback)(()=>N(null),[]),ae=(0,v.useCallback)(e=>{if(e.shiftKey)return;let t=a.current;if(!t)return;let n=e.target instanceof Element?e.target:null;n?.closest(`input, textarea, select, [contenteditable="true"]`)||(e.preventDefault(),N({at:{x:e.clientX,y:e.clientY},target:mw(n,t)}))},[]),oe=(0,v.useMemo)(()=>{let e=ne?.target.itemId;if(!e||!n)return null;let t=n.index.get(e);return t===void 0?null:n.items[t]??null},[ne,n]),se=(0,v.useMemo)(()=>{if(!ne)return[];let{target:e}=ne,n=e=>void NS(e).then(e=>t.toast(e?`success`:`error`,e?`Copied`:`Could not copy to the clipboard`)),r={reply:()=>{if(!l)return;let n=e.selection.trim()===``?jw(oe?hw(oe):``):e.selection;if(n.trim()===``)return;let r=oe?.kind===`tool`?Mw(oe.input):null;t.quoteIntoComposer(l,Ow(n,r))},copy:()=>n(e.selection),"copy-code":()=>n(e.code??``),"copy-link":()=>n(e.link??``),"open-link":()=>{let t=vw(e.link);if(!t)return;let n=typeof window<`u`?window.oonacode:void 0;n?.openExternal?n.openExternal(t):window.open(t,`_blank`,`noopener,noreferrer`)},"copy-item":()=>n(oe?hw(oe):``),find:()=>S(t=>({...t,open:!0,query:e.selection.trim(),currentId:null,focusSeq:t.focusSeq+1})),"select-block":()=>{let t=e.itemId?a.current?.querySelector(GS(e.itemId)):null,n=t?.firstElementChild??t,r=window.getSelection();if(!n||!r)return;let i=document.createRange();i.selectNodeContents(n),r.removeAllRanges(),r.addRange(i)}},i={reply:(0,K.jsx)(Y.Reply,{className:`h-3.5 w-3.5`}),copy:(0,K.jsx)(Y.Copy,{className:`h-3.5 w-3.5`}),"copy-code":(0,K.jsx)(Y.Copy,{className:`h-3.5 w-3.5`}),"copy-item":(0,K.jsx)(Y.Copy,{className:`h-3.5 w-3.5`}),"copy-link":(0,K.jsx)(Y.Globe,{className:`h-3.5 w-3.5`}),"open-link":(0,K.jsx)(Y.Globe,{className:`h-3.5 w-3.5`}),find:(0,K.jsx)(Y.Search,{className:`h-3.5 w-3.5`})};return yw(e,oe,{canReply:re}).map(e=>({key:e.key,label:e.label,hint:e.hint,disabled:e.disabled,separated:e.separated,icon:i[e.key]??(0,K.jsx)(`span`,{}),testId:`chat-menu-${e.key}`,onSelect:r[e.key]}))},[ne,oe,t,l,re]),F=(0,v.useCallback)(()=>{if(!l||!b.hasMore)return;let e=a.current;e&&(c.current=e.scrollHeight-e.scrollTop),t.growTranscript(l,b.total)},[l,b.hasMore,b.total,t]),[ce,le]=(0,v.useState)(null),ue=(0,v.useRef)(null),de=(0,v.useCallback)(()=>{let e=a.current;if(!e){le(null);return}let t=e.querySelectorAll(`[${Nw}]`),n=e.getBoundingClientRect().top,r=ue.current?.offsetHeight??0,i=Pw(t.length,e=>t[e].getBoundingClientRect().top-n,r),o=i<0?null:t[i].getAttribute(Nw);le(e=>e===o?e:o)},[]),fe=(0,v.useCallback)(()=>{let e=a.current;if(!e)return;let n={scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight},r=pd(n);s(r),de(),r&&l?t.trimTranscript(l):md(n)&&b.hasMore&&F()},[l,b.hasMore,F,t,de]),pe=(0,v.useCallback)(()=>{let e=a.current;if(!e||!ce)return;let t=e.querySelector(GS(ce));if(!(t instanceof HTMLElement))return;let n=t.getBoundingClientRect().top-e.getBoundingClientRect().top;s(!1),e.scrollTo({top:e.scrollTop+n-(ue.current?.offsetHeight??0)})},[ce]),me=(0,v.useCallback)(()=>{let e=a.current;e&&e.scrollTo({top:e.scrollHeight}),s(!0),l&&t.trimTranscript(l)},[l,t]);(0,v.useLayoutEffect)(()=>{let e=a.current;if(e){if(c.current!==null){e.scrollTop=Math.max(0,e.scrollHeight-c.current),c.current=null;return}o&&(e.scrollTop=e.scrollHeight)}},[b.items,o]),(0,v.useLayoutEffect)(()=>{de()},[b.items,de]);let he=n?.lastLocalPromptId??null;(0,v.useEffect)(()=>{he!==null&&me()},[he,me]),(0,v.useEffect)(()=>{s(!0),c.current=null,le(null),S(DT)},[l]);let ge=r?.providerId===w,_e=n?.hasSubagentItems===!0||r?.hasSubagents===!0||Object.keys(n?.agentActivity??{}).length>0,ve=(0,v.useMemo)(()=>{let e=new Map;if(!_e)return e;for(let t of VC(p??[]))e.set(t.agentId,t.name);return e},[p,_e]),ye=(0,v.useRef)(ve);ye.current=ve;let be=(0,v.useCallback)(e=>ye.current.get(e)??null,[]),xe=ST(),Ce=(0,v.useCallback)((e,n=!1)=>{let r=[],i=null;for(let t of qw(e)){let e=`run`in t?t.run[0]:t.item,o=`run`in t?t.run[t.run.length-1].timestamp:t.item.timestamp;if(n&&o){let t=bT(o);t!==null&&t!==i&&(r.push((0,K.jsx)(wT,{iso:o,today:xe},`day:${e.id}`)),i=t)}let s=a(t);s!==null&&r.push(s)}return r;function a(e){if(`run`in e){let t=e.run[0];return(0,K.jsxs)(`div`,{[WS]:t.id,className:`flex items-end gap-2`,children:[(0,K.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,K.jsx)(Gw,{items:e.run,agentNameOf:be})}),(0,K.jsx)(CT,{iso:e.run[e.run.length-1].timestamp})]},`run:${t.id}`)}let r=e.item,i=(()=>{switch(r.kind){case`user`:return(0,K.jsx)(Qw,{item:r},r.id);case`assistant`:return(0,K.jsx)(rT,{item:r},r.id);case`thinking`:return d?(0,K.jsx)(cw,{item:r},r.id):null;case`tool`:return(0,K.jsx)(sw,{node:e,renderChildren:Ce},r.id);case`result`:return(0,K.jsx)(oT,{item:r,hideCost:ge},r.id);case`compact`:return(0,K.jsx)(sT,{item:r},r.id);case`permission`:return r.status===`pending`?null:(0,K.jsx)(Kw,{item:r,agentName:r.request.agentId?be(r.request.agentId):null,onDecide:e=>t.respondPermission(r.request.requestId,e)},r.id);case`system`:return(0,K.jsx)(cT,{item:r},r.id);case`error`:return(0,K.jsx)(lT,{item:r},r.id)}})();if(i===null)return null;let a=r.kind===`user`&&Zw(r);return(0,K.jsxs)(`div`,{[WS]:r.id,...n&&a?{[Nw]:r.id}:{},className:W(`flex items-end gap-2`,r.id===te&&`chat-search-current`),children:[(0,K.jsx)(`div`,{className:`min-w-0 flex-1`,children:i}),a?null:(0,K.jsx)(CT,{iso:r.timestamp})]},r.id)}},[t,d,ge,te,be,xe]),we=(0,v.useMemo)(()=>{if(ce===null||!p)return null;let e=p.find(e=>e.id===ce);if(!e||e.kind!==`user`)return null;let t=Aw(e.text);return Fw(t&&t.reply!==``?t.reply:e.text)},[p,ce]);if(!l)return(0,K.jsx)(If,{icon:(0,K.jsx)(Y.Edit,{className:`w-8 h-8`}),title:`No session selected`,hint:`Open a chat tab or pick a session from the sidebar. Sessions run on this PC and are stored in the host's SQLite database.`,action:(0,K.jsxs)(X,{variant:`primary`,onClick:()=>t.newTab(),children:[(0,K.jsx)(Y.Plus,{className:`w-4 h-4`}),` New chat`]})});let I=n?.init,Te=n?.status===`running`||n?.status===`waiting_permission`,Ee=fT(n),De=Ee===`answer`?`Waiting for your answer`:Ee===`approval`?`Waiting for your approval`:ET(n?.status,n?.statusText,e.prefs.autoAcceptPermissions);return(0,K.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[x.open?(0,K.jsx)(US,{query:x.query,index:T,count:C.length,focusSeq:x.focusSeq,onQuery:k,onStep:ee,onClose:O}):null,(0,K.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[we===null?null:(0,K.jsx)(`div`,{ref:ue,className:`pointer-events-none absolute inset-x-0 top-0 z-10 px-3 pr-12 pt-2 sm:px-6 sm:pr-14`,children:(0,K.jsxs)(`button`,{type:`button`,onClick:pe,title:`Go to this message`,"data-testid":`pinned-user-message`,"data-pinned-id":ce,className:`pointer-events-auto flex w-full items-center gap-2 rounded-lg border border-border bg-surface px-3 py-1.5 text-left text-xs text-fg-muted shadow-md hover:bg-surface-2 hover:text-fg`,children:[(0,K.jsx)(Y.User,{className:`h-3 w-3 shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:we})]})}),(0,K.jsx)(`div`,{ref:a,onScroll:fe,onContextMenu:ae,className:`flex-1 overflow-y-auto px-3 py-3 sm:px-6`,"data-testid":`transcript`,children:(0,K.jsx)(qC.Provider,{value:j,children:(0,K.jsxs)(`div`,{className:`w-full`,children:[i&&i.projectDir?(0,K.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-faint`,children:[(0,K.jsx)(Y.Folder,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:`font-mono`,children:i.projectDir}),(0,K.jsx)(Mf,{tone:`accent`,children:`project attached`})]}):null,r||I?(0,K.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-faint`,children:[(0,K.jsx)(Y.Folder,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:`font-mono`,children:I?.cwd??r?.cwd}),I?.model??r?.model?(0,K.jsx)(Mf,{children:Cs(I?.model??r?.model??``)}):null,r?.providerId?(0,K.jsx)(Mf,{tone:`accent`,children:r.providerId}):null,(0,K.jsx)(Mf,{children:I?.permissionMode??r?.permissionMode??`default`}),I?(0,K.jsxs)(`span`,{children:[I.tools.length,` tools · engine `,I.claudeCodeVersion]}):null,r?.mirrored?(0,K.jsx)(Mf,{tone:`think`,children:`mirrored`}):null]}):null,b.hasMore?(0,K.jsx)(`div`,{className:`mb-2 flex items-center justify-center`,"data-testid":`window-more`,children:(0,K.jsxs)(X,{size:`sm`,onClick:F,children:[(0,K.jsx)(Y.ArrowDown,{className:`w-3 h-3 rotate-180`}),` Load `,100,` `,`older lines (`,b.hiddenAbove,` hidden)`]})}):null,u&&(!n||n.items.length===0)?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{}),` Loading transcript…`]}):null,!u&&(n?.items.length??0)===0?i?(0,K.jsx)(TT,{hasProject:i.projectDir!==null}):n?(0,K.jsx)(`div`,{className:`py-10 text-center text-sm text-fg-muted`,children:`Send a message to start this session.`}):null:null,Ce(b.items,!0),Te?(0,K.jsx)(uT,{label:De,lastFrameAt:pT(n)}):null,(0,K.jsx)(`div`,{className:`h-2`})]})})}),(0,K.jsx)(Sw,{open:ne!==null,at:ne?.at??{x:0,y:0},items:se,onClose:ie,label:`Chat`,testId:`chat-context-menu`})]}),(0,K.jsx)(Yw,{items:m,onCancel:e=>{e.requestId&&t.cancelQueued(e.requestId)}}),x.open?null:(0,K.jsx)(Of,{label:`Find in this chat (Ctrl+F)`,onClick:D,className:`absolute right-5 top-2 border border-border bg-surface shadow-md`,"data-testid":`chat-search-open`,children:(0,K.jsx)(Y.Search,{className:`w-3.5 h-3.5`})}),o?null:(0,K.jsxs)(`button`,{type:`button`,onClick:me,className:`absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full border border-border bg-surface px-3 py-1 text-xs shadow-md hover:bg-surface-2`,"data-testid":`chat-jump-latest`,children:[(0,K.jsx)(Y.ArrowDown,{className:`mr-1 inline w-3 h-3`}),` Jump to latest`]})]})}function AT(e){let t=e.toLowerCase();return t===`#000000`||t===`#000`?void 0:e}function jT({providerId:e,displayName:t,size:n=14,className:r}){let i=zs(e);if(!i)return(0,K.jsx)(`span`,{"aria-hidden":`true`,"data-provider-mark":e,className:W(`inline-flex flex-shrink-0 items-center justify-center rounded-sm bg-fg/10 font-semibold text-fg-muted`,r),style:{width:n,height:n,fontSize:Math.round(n*.55),lineHeight:1},children:Bs(t)});let a=AT(i.hex);return(0,K.jsx)(`svg`,{"aria-hidden":`true`,"data-provider-mark":e,viewBox:`0 0 24 24`,width:n,height:n,className:W(`flex-shrink-0`,a?void 0:`text-fg`,r),style:{width:n,height:n},children:(0,K.jsx)(`path`,{d:i.d,fill:a??`currentColor`,fillRule:i.fillRule})})}function MT(e){if(e>=1e6){let t=e/1e6;return`${Number.isInteger(t)?t:t.toFixed(1)}M`}return e>=1e3?`${Math.round(e/1e3)}K`:String(e)}function NT({m:e}){let{intelligence:t,coding:n,outputTps:r,contextWindow:i,thinking:a,vision:o}=e.details;return t===void 0&&n===void 0&&r===void 0&&i===void 0&&!a&&!o?null:(0,K.jsxs)(`span`,{className:`ml-auto flex flex-shrink-0 items-center gap-2 pl-3 text-[10px] leading-none tabular-nums`,children:[a?(0,K.jsx)(`span`,{className:`text-think`,title:`Reasoning / extended thinking`,children:`✦`}):null,o?(0,K.jsx)(`span`,{className:`text-fg-faint`,title:`Accepts images`,children:`◉`}):null,i===void 0?null:(0,K.jsx)(`span`,{className:`text-fg-faint`,title:`${i.toLocaleString()} token context`,children:MT(i)}),t===void 0?null:(0,K.jsxs)(`span`,{className:`rounded-sm bg-fg/10 px-1 py-px font-semibold text-fg-muted`,title:`Artificial Analysis intelligence index — their measurement, not ours`,children:[`IQ `,Math.round(t)]}),n===void 0?null:(0,K.jsxs)(`span`,{className:`rounded-sm bg-accent/15 px-1 py-px font-semibold text-accent`,title:`Artificial Analysis coding index — their measurement, not ours`,children:[`</>`,` `,Math.round(n)]}),r===void 0?null:(0,K.jsxs)(`span`,{className:`text-fg-faint`,title:`Artificial Analysis median output speed, tokens per second`,children:[Math.round(r),` t/s`]})]})}function PT({label:e,value:t,hint:n}){return t===null?null:(0,K.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,K.jsx)(`span`,{className:`text-fg-faint`,children:e}),(0,K.jsx)(`span`,{className:`text-right font-mono tabular-nums text-fg-muted`,title:n,children:t})]})}function FT({m:e,group:t,side:n}){let r=e.details,i=e=>e===void 0?null:e===0?`free`:`$${e<1?e.toFixed(3):e.toFixed(2)}`,a=[{label:`thinking`,on:r.thinking===!0},{label:`tools`,on:r.tools===!0},{label:`vision`,on:r.vision===!0}],o=r.intelligence!==void 0||r.coding!==void 0||r.outputTps!==void 0||r.ttft!==void 0,s=Object.entries(r.aa?.benchmarks??{}).filter(([e])=>e!==`artificial_analysis_intelligence_index`&&e!==`artificial_analysis_coding_index`).map(([e,t])=>({id:e,value:t,meta:fs[e]})).sort((e,t)=>(e.meta?.label??e.id).localeCompare(t.meta?.label??t.id)),c=r.aa?.fetchedAt?new Date(r.aa.fetchedAt):null;return(0,K.jsxs)(`div`,{"data-testid":`model-details`,className:W(`absolute top-0 z-10 max-h-[22rem] w-[19rem] overflow-y-auto rounded-lg border border-border bg-surface p-3 shadow-lg`,n===`right`?`left-full ml-2`:`right-full mr-2`),children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(jT,{providerId:e.providerId,displayName:t,size:13}),(0,K.jsx)(`span`,{className:`truncate text-xs font-semibold text-fg`,children:e.label}),e.free?(0,K.jsx)(RT,{}):null]}),(0,K.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-fg-faint`,title:e.modelId,children:e.modelId}),(0,K.jsxs)(`div`,{className:`text-[10px] text-fg-faint`,children:[t,r.aa?.creator?` · by ${r.aa.creator}`:``,r.aa?.releaseDate?` · released ${r.aa.releaseDate}`:``]}),(0,K.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1 border-t border-border pt-2`,children:a.map(e=>(0,K.jsx)(`span`,{"data-testid":`cap-${e.label}`,"data-on":e.on,className:W(`rounded px-1.5 py-0.5 text-[10px]`,e.on?`bg-ok/15 text-ok`:`bg-fg/5 text-fg-faint line-through`),children:e.label},e.label))}),(0,K.jsxs)(`div`,{className:`mt-2 space-y-1 border-t border-border pt-2 text-[11px]`,children:[(0,K.jsx)(PT,{label:`Context`,value:r.contextWindow===void 0?null:MT(r.contextWindow),hint:r.contextWindow===void 0?void 0:`${r.contextWindow.toLocaleString()} tokens`}),(0,K.jsx)(PT,{label:`Max output`,value:r.maxOutputTokens===void 0?null:MT(r.maxOutputTokens),hint:r.maxOutputTokens===void 0?void 0:`${r.maxOutputTokens.toLocaleString()} tokens`}),(0,K.jsx)(PT,{label:r.providers&&r.providers.length>1?`Providers`:`Provider`,value:r.providers&&r.providers.length>0?r.providers.join(`, `):null,hint:`Which backend the pool sends this model to — the subscription lane first, whichever provider holds it.`}),(0,K.jsx)(PT,{label:`Input / 1M`,value:i(r.inputPricePerM)}),(0,K.jsx)(PT,{label:`Output / 1M`,value:i(r.outputPricePerM)})]}),o||s.length>0?(0,K.jsxs)(`div`,{className:`mt-2 border-t border-border pt-2`,"data-testid":`model-details-aa`,children:[(0,K.jsxs)(`div`,{className:`mb-1 flex items-baseline justify-between gap-2`,children:[(0,K.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-fg-faint`,children:`Independent ratings`}),(0,K.jsxs)(`span`,{className:`text-[10px] text-fg-faint`,children:[`Artificial Analysis`,c?` · ${c.toLocaleDateString()}`:``]})]}),(0,K.jsx)(IT,{label:`Intelligence`,value:r.intelligence}),(0,K.jsx)(IT,{label:`Coding`,value:r.coding}),(0,K.jsxs)(`div`,{className:`mt-1 space-y-1 text-[11px]`,children:[(0,K.jsx)(PT,{label:`Speed`,value:r.outputTps===void 0?null:`${Math.round(r.outputTps)} tok/s`,hint:`Median output tokens per second`}),(0,K.jsx)(PT,{label:`First answer`,value:r.ttft===void 0?null:`${r.ttft.toFixed(2)}s`,hint:`Median time to the first answer token — after reasoning, which is what you wait for`})]}),s.length>0?(0,K.jsx)(`div`,{className:`mt-1.5 space-y-1 border-t border-border pt-1.5 text-[11px]`,children:s.map(e=>(0,K.jsx)(PT,{label:e.meta?.label??e.id,value:LT(e.value,e.meta?.scale),hint:e.meta?void 0:`Reported by Artificial Analysis as "${e.id}"`},e.id))}):null]}):null,r.notes?(0,K.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 text-[10px] leading-snug text-fg-muted`,children:r.notes}):null]})}function IT({label:e,value:t}){if(t===void 0)return null;let n=Math.max(0,Math.min(100,t));return(0,K.jsxs)(`div`,{className:`mb-1`,"data-testid":`score-${e.toLowerCase()}`,children:[(0,K.jsxs)(`div`,{className:`flex items-baseline justify-between text-[11px]`,children:[(0,K.jsx)(`span`,{className:`text-fg-faint`,children:e}),(0,K.jsx)(`span`,{className:`font-mono tabular-nums text-fg-muted`,children:t.toFixed(1)})]}),(0,K.jsx)(`div`,{className:`mt-0.5 h-1 w-full overflow-hidden rounded-full bg-fg/10`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full bg-accent`,style:{width:`${n}%`}})})]})}function LT(e,t){return t===`index`?e.toFixed(1):t===`fraction`||e>0&&e<=1?`${(e*100).toFixed(1)}%`:e.toFixed(2)}function RT({className:e}){return(0,K.jsx)(`span`,{"data-testid":`model-free-badge`,title:`Free on every plan — served from the operator's own capacity, and never billed to you.`,className:W(`rounded-sm bg-ok/15 px-1 py-px text-[10px] leading-none font-semibold tracking-wide text-ok uppercase`,e),children:`Free`})}function zT({disabled:e,className:t}){let{state:n,actions:r}=q(),i=gf(),a=_f(),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(0),f=(0,v.useRef)(null),p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=n.settings?.modelVisibility??null,g=(0,v.useMemo)(()=>xc(n.providers,h),[n.providers,h]),_=n.currentSessionId?n.pendingRouting[n.currentSessionId]:void 0,y=Sc(n.providers,{providerId:_?.providerId??a?.providerId??i?.providerId??n.activeProviderId,model:_?.model??a?.model??i?.model??n.info?.activeModel,variantId:_?.variantId??a?.variantId??i?.variantId??null}),b=y.providerId&&y.modelId?gc(y.providerId,y.modelId,y.variantId):``,x=g.flatMap(e=>e.models).find(e=>e.value===b)??null,S=!x&&b?y.modelId:null,C=(0,v.useMemo)(()=>{let e=c.trim().toLowerCase();return e?g.map(t=>({...t,models:t.models.filter(n=>n.label.toLowerCase().includes(e)||n.modelId.toLowerCase().includes(e)||t.label.toLowerCase().includes(e))})).filter(e=>e.models.length>0):g},[g,c]),w=(0,v.useMemo)(()=>C.flatMap(e=>e.models.map(t=>({m:t,group:e.label}))),[C]);(0,v.useEffect)(()=>{if(!o)return;let e=w.findIndex(e=>e.m.value===b);d(e>=0?e:0)},[o,w,b]),(0,v.useEffect)(()=>{if(!o)return;let e=e=>{f.current&&!f.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[o]);let T=(e=!0)=>{s(!1),l(``),e&&p.current?.focus()},E=e=>{r.setSessionModel(e.modelId,e.providerId,e.variantId),T()},D=e=>{if(e.key===`Escape`){e.preventDefault(),T();return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),w.length===0)return;let t=e.key===`ArrowDown`?1:-1;d(e=>(e+t+w.length)%w.length);return}if(e.key===`Home`||e.key===`End`){e.preventDefault(),d(e.key===`Home`?0:Math.max(0,w.length-1));return}if(e.key===`Enter`){e.preventDefault();let t=w[u];t&&E(t.m)}},[O,k]=(0,v.useState)(`right`),[A,ee]=(0,v.useState)(!0);(0,v.useEffect)(()=>{if(!o)return;let e=()=>{let e=f.current?.getBoundingClientRect();if(!e)return;let t=e.left+480;k(t+312<=window.innerWidth?`right`:`left`);let n=window.innerHeight-e.bottom,r=e.top;ee(n>=420?!1:r>n)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[o]),(0,v.useEffect)(()=>{o&&(m.current?.querySelector(`[data-cursor="true"]`))?.scrollIntoView({block:`nearest`})},[o,u]);let j=x?.label??S??`No model`,M=x?.providerId??y.providerId??``,te=g.find(e=>e.providerId===M)?.label??M;return(0,K.jsxs)(`span`,{ref:f,className:`relative inline-flex items-center gap-1.5`,children:[(0,K.jsxs)(`button`,{type:`button`,ref:p,"aria-label":`Model`,"aria-haspopup":`listbox`,"aria-expanded":o,"data-testid":`model-picker`,disabled:e,className:W(`flex max-w-[22rem] min-w-[9rem] items-center gap-1.5 rounded px-1 py-0.5 text-xs text-fg hover:bg-fg/5 disabled:opacity-50`,t),onClick:()=>o?T():s(!0),onKeyDown:e=>{!o&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s(!0))},children:[M?(0,K.jsx)(jT,{providerId:M,displayName:te,size:13}):null,(0,K.jsx)(`span`,{className:`truncate`,children:j}),x?.free?(0,K.jsx)(RT,{}):null,(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`text-fg-faint`,children:`▾`})]}),o?(0,K.jsxs)(`div`,{"data-testid":`model-picker-panel`,className:W(`absolute left-0 z-50 w-[30rem] max-w-[calc(100vw-2rem)]`,A?`bottom-full mb-1`:`top-full mt-1`),onKeyDown:D,children:[(0,K.jsxs)(`div`,{"data-testid":`model-picker-chrome`,className:`max-h-[26rem] overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,K.jsx)(`div`,{className:`border-b border-border p-1.5`,children:(0,K.jsx)(`input`,{autoFocus:!0,type:`text`,"data-testid":`model-search`,placeholder:`Search models…`,className:`w-full rounded border-0 bg-transparent px-1.5 py-1 text-xs text-fg outline-none placeholder:text-fg-faint`,value:c,onChange:e=>l(e.target.value)})}),(0,K.jsxs)(`div`,{ref:m,role:`listbox`,"aria-label":`Model`,className:`max-h-80 overflow-y-auto`,children:[g.length===0?(0,K.jsx)(`div`,{className:`px-3 py-6 text-center text-xs text-fg-muted`,children:`No provider configured — add one in Settings → Providers`}):C.length===0?(0,K.jsxs)(`div`,{className:`px-3 py-6 text-center text-xs text-fg-muted`,children:[`Nothing matches “`,c,`”`]}):null,C.map(e=>(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`sticky top-0 flex items-center gap-1.5 bg-surface-2 px-2 py-1 text-[10px] font-semibold tracking-wide text-fg-muted uppercase`,children:[(0,K.jsx)(jT,{providerId:e.providerId,displayName:e.label,size:12}),e.label,e.route===`direct`?(0,K.jsx)(`span`,{className:`ml-auto normal-case`,title:`Runs straight from this PC to the provider — never through our servers.`,children:`direct`}):null]}),e.models.map(e=>{let t=w.findIndex(t=>t.m===e);return(0,K.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e.value===b,"data-testid":`model-option-${e.value}`,"data-value":e.value,"data-free":e.free?`true`:void 0,"data-cursor":t===u?`true`:void 0,className:W(`flex w-full items-center gap-1.5 px-2 py-1.5 text-left text-xs`,t===u?`bg-accent/10`:`hover:bg-fg/5`,e.value===b?`text-accent`:`text-fg`),onMouseEnter:()=>d(t),onClick:()=>E(e),children:[(0,K.jsx)(`span`,{className:W(`truncate`,e.free?`font-semibold`:void 0),children:e.label}),e.free?(0,K.jsx)(RT,{}):null,(0,K.jsx)(NT,{m:e})]},e.value)})]},`${e.providerId}:${e.variantId??``}`))]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3 border-t border-border px-2 py-1.5 text-[11px]`,children:[(0,K.jsx)(`button`,{type:`button`,"data-testid":`manage-models-entry`,className:`text-fg-muted hover:text-fg`,onClick:()=>{T(!1),r.openDialog(`manage-models`)},children:`Manage models…`}),(0,K.jsx)(`button`,{type:`button`,"data-testid":`manage-providers-entry`,className:`text-fg-muted hover:text-fg`,onClick:()=>{T(!1),r.openSettings(`providers`)},children:`Manage providers…`}),(0,K.jsx)(`a`,{href:`https://artificialanalysis.ai/`,target:`_blank`,rel:`noreferrer noopener`,className:`ml-auto text-fg-faint hover:text-fg-muted`,title:`IQ and coding scores are Artificial Analysis's measurements`,children:`ratings by Artificial Analysis`})]})]}),w[u]?(0,K.jsx)(FT,{m:w[u].m,group:w[u].group,side:O}):null]}):null]})}var BT=1e3,VT=6e4;function HT(){let e=hf(),t=gf(),n=e?.items,[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(()=>Date.now()),s=(0,v.useRef)(null),c=e?.agentActivity,l=e?.status===`running`||e?.status===`waiting_permission`,u=e?.engineSince??null,d=e?.hasSubagentItems===!0||t?.hasSubagents===!0||Object.keys(c??{}).length>0,f=(0,v.useMemo)(()=>n&&d?VC(n,a,c??{},{alive:l,since:u}):[],[n,d,a,c,l,u]),p=f.filter(e=>e.running).length,[m,h]=(0,v.useState)(!1),g=(0,v.useMemo)(()=>m?f:f.filter(e=>e.running||e.endedAt!==null&&a-e.endedAt<VT),[f,a,m]),_=f.length-g.length;if((0,v.useEffect)(()=>{if(!r)return;let e=setInterval(()=>o(Date.now()),BT);return()=>clearInterval(e)},[r]),(0,v.useEffect)(()=>{if(!r)return;let e=e=>{s.current?.contains(e.target)||i(!1)},t=e=>{e.key===`Escape`&&i(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[r]),(0,v.useEffect)(()=>{i(!1),h(!1)},[e?.sessionId]),f.length===0)return null;let y=p>0?`${p} working`:`${f.length} ${f.length===1?`agent`:`agents`} finished`;return(0,K.jsxs)(`span`,{ref:s,className:`relative inline-flex items-center`,children:[(0,K.jsxs)(`button`,{type:`button`,"aria-label":y,title:y,"aria-haspopup":`dialog`,"aria-expanded":r,"data-testid":`subagents-badge`,onClick:()=>{o(Date.now()),i(e=>!e)},className:W(`flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-0.5 text-xs hover:bg-fg/5`,p>0?`text-accent`:`text-fg-muted`),children:[(0,K.jsx)(Y.Bot,{className:`w-3.5 h-3.5`}),(0,K.jsxs)(`span`,{children:[f.length,` `,f.length===1?`agent`:`agents`]}),p>0?(0,K.jsxs)(`span`,{className:`text-fg-faint`,children:[`· `,p,` working`]}):null,p>0?(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 animate-pulse rounded-full bg-accent`,"data-testid":`subagents-running`}):null]}),r?(0,K.jsx)(`div`,{role:`dialog`,"aria-label":`Subagents of this chat`,"data-testid":`subagents-panel`,className:`absolute bottom-full left-0 z-50 mb-1 w-[24rem] max-w-[calc(100vw-2rem)]`,children:(0,K.jsxs)(`div`,{className:`max-h-[22rem] overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-2.5 py-1.5 text-[11px] uppercase tracking-wide text-fg-muted`,children:[(0,K.jsx)(Y.Bot,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`flex-1`,children:`Subagents`}),(0,K.jsx)(`span`,{className:`normal-case tracking-normal text-fg-faint`,children:y})]}),(0,K.jsxs)(`ul`,{className:`max-h-[19rem] overflow-y-auto py-1`,children:[kC(g).map(e=>(0,K.jsx)(UT,{agent:e,onJump:()=>i(!1)},e.id)),g.length===0?(0,K.jsx)(`li`,{className:`px-2.5 py-2 text-xs text-fg-faint`,children:`Nothing is working now.`}):null]}),_>0||m?(0,K.jsx)(`button`,{type:`button`,onClick:()=>h(e=>!e),"data-testid":`subagents-toggle-finished`,className:`w-full border-t border-border px-2.5 py-1.5 text-left text-[11px] text-fg-faint hover:bg-surface-2 hover:text-fg`,children:m?`Hide finished agents`:`${_} finished ${_===1?`agent`:`agents`} hidden — show`}):null]})}):null]})}function UT({agent:e,onJump:t}){let n=()=>{document.querySelector(`[data-testid="tool-${e.id}"]`)?.scrollIntoView({block:`center`,behavior:`smooth`}),t()},r=e.status===`error`||e.status===`denied`,i=r?`danger`:e.running?`accent`:`neutral`,a=e.running?`working`:e.status,o=!e.running;return(0,K.jsx)(`li`,{children:(0,K.jsxs)(`button`,{type:`button`,onClick:n,"data-testid":`subagent-${e.id}`,"data-state":e.running?`working`:r?`failed`:`done`,title:`Show this subagent's card in the chat`,className:W(`flex w-full flex-col gap-0.5 px-2.5 py-1.5 text-left hover:bg-surface-2`,o&&!r&&`opacity-60 hover:opacity-100`),style:e.depth?{paddingLeft:`${.625+e.depth*.75}rem`}:void 0,children:[(0,K.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.running?(0,K.jsx)(Y.Spinner,{className:`w-3 h-3 text-accent`}):(0,K.jsx)(Y.Bot,{className:`w-3 h-3 text-fg-faint`}),(0,K.jsx)(`span`,{className:W(`min-w-0 flex-1 truncate text-sm font-medium`,o?`text-fg-muted`:`text-fg`),children:e.name}),(0,K.jsx)(Mf,{tone:i,children:a})]}),(0,K.jsxs)(`span`,{className:`flex items-center gap-3 pl-5 text-[11px] text-fg-faint`,children:[e.type&&e.type!==e.name?(0,K.jsx)(`span`,{className:`font-mono`,children:e.type}):null,e.model?(0,K.jsx)(`span`,{className:`font-mono`,"data-testid":`subagent-model-${e.agentId}`,children:e.model}):null,e.runs>1?(0,K.jsxs)(`span`,{children:[`resumed ×`,e.runs-1]}):null,e.durationMs===null?null:(0,K.jsx)(`span`,{children:vu(e.durationMs)}),e.tokens===null?null:(0,K.jsxs)(`span`,{children:[yu(e.tokens),` tokens`]}),(0,K.jsxs)(`span`,{children:[e.toolCalls,` `,e.toolCalls===1?`tool call`:`tool calls`]}),e.nested>0?(0,K.jsxs)(`span`,{children:[e.nested,` `,e.nested===1?`subagent`:`subagents`]}):null]})]})})}function WT(){let{state:e}=q(),t=gf(),n=_f(),r=e.currentSessionId?e.pendingRouting[e.currentSessionId]:void 0;return(0,v.useMemo)(()=>{let i=Sc(e.providers,{providerId:r?.providerId??n?.providerId??t?.providerId??e.activeProviderId,model:r?.model??n?.model??t?.model??e.info?.activeModel,variantId:r?.variantId??n?.variantId??t?.variantId??null}),a=(e.providers.find(e=>e.definition.id===i.providerId)?.definition)?.models.find(e=>e.id===i.modelId)??null;return{...i,option:a}},[e.providers,e.activeProviderId,e.info?.activeModel,r?.providerId,r?.model,r?.variantId,n?.providerId,n?.model,n?.variantId,t?.providerId,t?.model,t?.variantId])}var GT=6e4;function KT(e){return Math.ceil(Math.max(0,e)/3)*4}function qT(e,t){return t?Math.min(e.size,GT):KT(e.size)}function JT(e){return e>=1048576?`${(e/1048576).toFixed(1)} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${Math.max(0,Math.round(e))} B`}function YT(e,t={}){let n=t.budget??6291456,r=t.isText??(()=>!1),i=Math.max(0,t.usedBytes??0),a=[],o=[],s=0;for(let t of e){let e=qT(t,r(t));if(e>n){o.push({name:t.name,reason:`too large — ${JT(t.size)} becomes ${JT(e)} once encoded (limit ${JT(n)})`});continue}if(i+e>n){o.push({name:t.name,reason:`would exceed the ${JT(n)} attachment budget — send the staged files first`});continue}i+=e,s+=e,a.push(t)}return{accepted:a,rejected:o,addedBytes:s}}var XT=3e3;function ZT(e,t,n){return e?.providerId!==`oonacode`||(n?.priceUsdMonthly??0)>0?null:t?.free===!0?`free`:`pool`}function QT(e){switch(e){case`free`:return`Waiting for a free-lane slot — free requests are paced, so the first reply can take a few seconds.`;case`pool`:return`Waiting for a slot on the OonaCode pool — the request is queued behind the provider’s rate limits.`;default:return null}}function $T(e,t,n=XT){let[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{if(i(!1),!e)return;let t=setTimeout(()=>i(!0),n);return()=>clearTimeout(t)},[e,t,n]),r}function eE(e){let t=Math.floor(e/6e4);if(t<60)return`${Math.max(1,t)}m`;let n=Math.floor(t/60);if(n<24)return`${n}h ${t-n*60}m`;let r=Math.floor(n/24);return`${r}d ${n-r*24}h`}function tE(e){return e>=1e5||e>=1e4?`${Math.round(e/1e3)}k`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(Math.round(e))}function nE(e){let{lastTurnEndedAt:t,now:n,ttlSec:r,contextTokens:i,running:a}=e;if(a||t===null||r===null||r<=0||i!==null&&i<1024)return null;let o=n-t;if(!Number.isFinite(o)||o<r*1e3)return null;let s=i===null?`the whole conversation`:`about ${tE(i)} tokens`;return`Idle ${eE(o)}. The prompt cache has likely expired, so your next message will re-cache ${s}.`}var rE=[{value:`default`,label:`Ask (default)`},{value:`acceptEdits`,label:`Accept edits`},{value:`plan`,label:`Plan`},{value:`auto`,label:`Auto`},{value:`dontAsk`,label:`Don't ask`},{value:`bypassPermissions`,label:`Bypass permissions`}],iE=`Ask anything — build, fix, explain…`,aE=[{id:`build`,label:`Build`,mode:null},{id:`plan`,label:`Plan`,mode:`plan`},{id:`ask`,label:`Ask first`,mode:`default`},{id:`auto`,label:`Autonomous`,mode:`acceptEdits`}],oE=`build`;function sE(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`read failed`)),r.onload=()=>{let e=String(r.result??``);t(e.slice(e.indexOf(`,`)+1))},r.readAsDataURL(e)})}function cE(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`read failed`)),r.onload=()=>t(String(r.result??``)),r.readAsText(e)})}function lE(e){return e.type.startsWith(`image/`)?`image`:e.type===`application/pdf`?`document`:`text`}function uE(e){return e.map(e=>e.kind===`image`?{type:`image`,source:{type:`base64`,media_type:e.mediaType,data:e.data}}:e.kind===`document`?{type:`document`,source:{type:`base64`,media_type:e.mediaType||`application/pdf`,data:e.data}}:{type:`text`,text:`Attached file ${e.name}:\n\n\`\`\`\n${e.data}\n\`\`\``})}function dE(){let{state:e,actions:t}=q(),n=gf(),r=_f(),i=hf(),a=e.currentSessionId,o=a?e.unsent[a]:void 0,[s,c]=(0,v.useState)(()=>o?.text??``),[l,u]=(0,v.useState)(()=>[...o?.attachments??[]]),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(oE),[h,g]=(0,v.useState)(!1),_=(0,v.useRef)(null),y=(0,v.useRef)(null),b=(0,v.useRef)(0),x=(0,v.useRef)(!0),S=(0,v.useRef)({text:s,attachments:l});S.current={text:s,attachments:l},(0,v.useEffect)(()=>(x.current=!0,()=>{x.current=!1}),[]),(0,v.useEffect)(()=>{if(a)return()=>t.rememberUnsent(a,S.current)},[a,t]),(0,v.useEffect)(()=>{o&&(c(e=>e.length===0?o.text:e),u(e=>e.length===0?[...o.attachments]:e))},[o]);let C=e.composerQuote,w=(0,v.useRef)(C?.seq??0);(0,v.useEffect)(()=>{if(!C||C.seq<=w.current||(w.current=C.seq,C.sessionId!==a))return;c(e=>kw(e,C.text));let e=_.current;if(!e)return;e.focus();let t=()=>{let t=e.value.length;e.setSelectionRange(t,t),e.scrollTop=e.scrollHeight};typeof requestAnimationFrame==`function`?requestAnimationFrame(t):setTimeout(t,0)},[C,a]);let T=n?.effort??``;(0,v.useEffect)(()=>{f(T)},[a,T]);let E=i?.status===`running`||i?.status===`waiting_permission`,D=e.connection.status===`open`,O=Dw(),k=!a||O,A=WT(),ee=_e(A.option),j=e.prefs.showAgentPicker&&ee,M=(0,v.useMemo)(()=>{let e=ge(A.option);return e.length===0?[]:T&&!e.includes(T)?[...e,T]:e},[A.option,T]),te=M.length>0,ne=(0,v.useMemo)(()=>e.providers.find(e=>e.definition.id===A.providerId)?.definition,[e.providers,A.providerId]);(0,v.useEffect)(()=>{let e=_.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,240)}px`)},[s]),(0,v.useEffect)(()=>{_.current?.focus()},[a]);let N=e.settings?.defaultPermissionMode??`default`,P=r?.permissionMode??n?.permissionMode??N,re=P===N?oE:aE.find(e=>e.mode===P)?.id??`build`;(0,v.useEffect)(()=>{m(j?re:oE)},[j,re,a]);let ie=(0,v.useMemo)(()=>l.reduce((e,t)=>e+t.data.length,0),[l]),ae=(0,v.useRef)(ie);ae.current=ie;let oe=(0,v.useCallback)(async e=>{let n=Array.from(e);if(n.length===0)return;let r=YT(n,{usedBytes:ae.current,isText:e=>lE(e)===`text`});for(let e of r.rejected)t.toast(`error`,`${e.name} was not attached: ${e.reason}`);let i=[];for(let e of r.accepted){let n=lE(e);if(n!==`text`&&ne&&A.modelId){let r=Ts(ne,A.modelId,[{type:n}]);if(r){t.toast(`error`,`${e.name||`File`} was not attached: ${r}`);continue}}try{let t=n===`text`?(await cE(e)).slice(0,GT):await sE(e);i.push({id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:e.name||(n===`image`?`image`:`file`),mediaType:e.type||(n===`text`?`text/plain`:`application/octet-stream`),data:t,kind:n,size:e.size})}catch{t.toast(`error`,`${e.name||`File`} could not be read — nothing was attached`)}}i.length>0&&u(e=>[...e,...i])},[t,ne,A.modelId]),se=(0,v.useMemo)(()=>aE.find(e=>e.id===p)?.mode??null,[p]),F=(0,v.useCallback)(()=>{let e=s.trim();if(!a||!e&&l.length===0)return;let n=e||`Please look at the attached file(s).`,r=l,i=uE(r),o={};d&&(o.effort=d),se&&(o.permissionMode=se);let f=a;c(``),u([]),t.sendPrompt(n,i,Object.keys(o).length>0?o:void 0).then(e=>{if(!e){if(x.current){c(e=>e.length===0?s:e),u(e=>e.length===0?r:e);return}t.rememberUnsent(f,{text:s,attachments:r},!0)}})},[s,l,a,t,d,se]),ce=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing?(e.preventDefault(),F()):e.key===`Escape`&&E&&(e.preventDefault(),t.interrupt())},le=e=>{let t=Array.from(e.clipboardData?.files??[]);t.length>0&&(e.preventDefault(),oe(t))},ue=e=>{e.preventDefault(),b.current=0,g(!1),e.dataTransfer?.files?.length&&oe(e.dataTransfer.files)},de=e=>{e.dataTransfer?.types?.includes(`Files`)&&(b.current+=1,g(!0))},fe=()=>{b.current=Math.max(0,b.current-1),b.current===0&&g(!1)},pe=e=>{e.target.files&&oe(e.target.files),e.target.value=``},{pendingQuestions:me,pendingPermissions:he}=(0,v.useMemo)(()=>{let e=[],t=[],n=[];for(let r of i?.items??[])r.kind===`permission`&&r.status===`pending`&&(e.push(r),r.request.toolName===`AskUserQuestion`?t.push(r):n.push(r));return{pendingQuestions:t,pendingPermissions:n}},[i?.items]),ve=ZT(n,A.option,e.plan),ye=$T(i?.status===`running`,i?.items.length??0)&&ve?QT(ve):null,[be,xe]=(0,v.useState)(()=>Date.now());(0,v.useEffect)(()=>{let e=setInterval(()=>xe(Date.now()),6e4);return()=>clearInterval(e)},[]);let Se=(0,v.useMemo)(()=>{if(!i||!n)return null;let t=i.items,r=null;for(let e=t.length-1;e>=0;e--)if(t[e].kind===`result`){r=t[e];break}if(!r||r.kind!==`result`){if(t.length===0)return null;let r=e.providers.find(e=>e.definition.id===A.providerId)?.definition.capabilities.promptCacheTtlSec??null,i=Date.parse(n.updatedAt),a=n.inputTokens+n.outputTokens;return nE({lastTurnEndedAt:Number.isFinite(i)?i:null,now:be,ttlSec:r,contextTokens:a>0?a:null,running:E})}let a=r.timestamp?Date.parse(r.timestamp):Date.parse(n.updatedAt),o=e.providers.find(e=>e.definition.id===A.providerId)?.definition.capabilities.promptCacheTtlSec??null;return nE({lastTurnEndedAt:Number.isFinite(a)?a:null,now:be,ttlSec:o,contextTokens:r.inputTokens+(r.cachedInputTokens??0)+r.outputTokens,running:E})},[i,n,e.providers,A.providerId,be,E]);return(0,K.jsxs)(`div`,{className:`relative border-t border-border bg-surface px-3 py-2 sm:px-6`,onDrop:ue,onDragOver:e=>e.preventDefault(),onDragEnter:de,onDragLeave:fe,"data-testid":`composer`,children:[h?(0,K.jsxs)(`div`,{className:`pointer-events-none absolute inset-1 z-10 flex items-center justify-center rounded-xl border-2 border-dashed border-accent bg-accent-soft/70 text-sm font-medium text-accent`,"data-testid":`drop-overlay`,children:[(0,K.jsx)(Y.Upload,{className:`mr-2 w-4 h-4`}),` Drop files to attach`]}):null,(0,K.jsxs)(`div`,{className:`w-full`,children:[he.length>0?(0,K.jsx)(`div`,{className:`mb-2 max-h-[45vh] space-y-2 overflow-y-auto`,"data-testid":`composer-pending`,children:he.map(e=>(0,K.jsx)(Kw,{item:e,onDecide:n=>t.respondPermission(e.request.requestId,n,a??void 0)},e.id))}):null,me.map((e,n)=>(0,K.jsx)(Kw,{item:e,stackIndex:n,onDecide:n=>t.respondPermission(e.request.requestId,n,a??void 0)},e.id)),Se&&!ye?(0,K.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 rounded-md bg-surface-2 px-2.5 py-1.5 text-[11px] text-fg-muted`,"data-testid":`idle-cache-hint`,children:[(0,K.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-fg-faint`}),Se]}):null,ye?(0,K.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 rounded-md bg-surface-2 px-2.5 py-1.5 text-[11px] text-fg-muted`,"data-testid":`pacing-hint`,"data-lane":ve??void 0,children:[(0,K.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 shrink-0 animate-pulse rounded-full bg-warn`}),ye]}):null,!D&&a?(0,K.jsx)(`div`,{className:`mb-2 text-xs text-fg-faint`,children:e.connection.status===`unauthorized`?`The host rejected this token.`:`Not connected to the host — messages will be sent over HTTP when possible.`}):null,l.length>0?(0,K.jsx)(`div`,{className:`mb-2 flex flex-wrap gap-2`,"data-testid":`attachments`,children:l.map(e=>(0,K.jsxs)(`div`,{className:`relative`,children:[e.kind===`image`?(0,K.jsx)(`img`,{src:`data:${e.mediaType};base64,${e.data}`,alt:e.name,className:`h-14 w-14 rounded border border-border object-cover`}):(0,K.jsxs)(`div`,{className:`flex h-14 min-w-[7rem] max-w-[12rem] flex-col justify-center rounded border border-border bg-surface-2 px-2 text-[11px]`,children:[(0,K.jsx)(`span`,{className:`truncate font-medium`,children:wu(e.name,22)}),(0,K.jsxs)(`span`,{className:`text-fg-faint`,children:[e.kind===`document`?`PDF`:`text`,` · `,Math.ceil(e.size/1024),` KB`]})]}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,onClick:()=>u(t=>t.filter(t=>t.id!==e.id)),className:`absolute -right-1.5 -top-1.5 rounded-full border border-border bg-surface p-0.5 text-fg-muted hover:text-danger`,children:(0,K.jsx)(Y.X,{className:`w-3 h-3`})})]},e.id))}):null,(0,K.jsxs)(`div`,{className:W(`flex flex-col gap-1 rounded-xl border bg-bg px-2 py-1.5`,k?`border-border opacity-60`:`border-border`),children:[(0,K.jsx)(`textarea`,{ref:_,"aria-label":`Message`,rows:1,value:s,disabled:k,placeholder:O?`This session runs on a PC that is offline — read-only`:k?`Open a chat to start`:E?`Agent is working — a message sent now is handed to it and read at its next step (Esc to stop)`:iE,onChange:e=>c(e.target.value),onKeyDown:ce,onPaste:le,className:`max-h-60 min-h-[2.25rem] w-full resize-none bg-transparent px-1 py-1.5 text-sm outline-none placeholder:text-fg-faint`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(`input`,{ref:y,type:`file`,multiple:!0,className:`hidden`,onChange:pe,"data-testid":`file-input`}),(0,K.jsx)(Of,{label:`Attach files or images`,disabled:k,onClick:()=>y.current?.click(),children:(0,K.jsx)(Y.Upload,{className:`w-4 h-4`})}),(0,K.jsx)(zT,{disabled:k}),(0,K.jsx)(HT,{}),j?(0,K.jsx)(`select`,{"aria-label":`Agent`,"data-testid":`agent-picker`,className:W(jf,`w-auto border-0 bg-transparent px-1 py-0.5 text-xs`),value:p,disabled:k,onChange:e=>{m(e.target.value);let n=aE.find(t=>t.id===e.target.value)?.mode??N;t.setSessionPermissionMode(n)},children:aE.map(e=>(0,K.jsx)(`option`,{value:e.id,children:e.label},e.id))}):null,j||!ee?null:(0,K.jsx)(`select`,{"aria-label":`Permission mode`,className:W(jf,`hidden w-auto border-0 bg-transparent px-1 py-0.5 text-xs sm:block`),value:r?.permissionMode??n?.permissionMode??e.settings?.defaultPermissionMode??`default`,disabled:k,onChange:e=>t.setSessionPermissionMode(e.target.value),children:rE.map(e=>(0,K.jsx)(`option`,{value:e.value,children:e.label},e.value))}),te?(0,K.jsxs)(`select`,{"aria-label":`Effort`,className:W(jf,`hidden w-auto border-0 bg-transparent px-1 py-0.5 text-xs lg:block`),value:d,disabled:k,onChange:e=>{let n=e.target.value;f(n),t.setSessionEffort(n||null)},children:[(0,K.jsx)(`option`,{value:``,children:`effort: default`}),M.map(e=>(0,K.jsxs)(`option`,{value:e,children:[`effort: `,e]},e))]}):null,(0,K.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[E?(0,K.jsxs)(X,{variant:`danger`,size:`sm`,onClick:()=>void t.interrupt(),title:`Interrupt (Esc)`,"aria-label":`Interrupt`,"data-testid":`stop-button`,children:[(0,K.jsx)(Y.Stop,{className:`w-3.5 h-3.5`}),` Stop`]}):null,(0,K.jsxs)(X,{variant:`primary`,size:`sm`,onClick:F,disabled:k||!s.trim()&&l.length===0,"aria-label":E?`Queue message`:`Send`,title:E?`Queue this message — it runs when the current turn ends`:void 0,children:[(0,K.jsx)(Y.Send,{className:`w-3.5 h-3.5`}),` `,E?`Queue`:`Send`]})]})]})]}),i&&i.totals.turns>0?(0,K.jsxs)(`div`,{className:`mt-1 text-right text-[11px] text-fg-faint`,children:[i.totals.turns,` turn`,i.totals.turns===1?``:`s`,` ·`,` `,n?.providerId===`oonacode`?Cc(n.poolCredits??0):`$${i.totals.costUsd.toFixed(4)}`]}):null]})]})}function fE(e){return(e/1048576).toFixed(e>=104857600?0:1)+` MB`}function pE(e){switch(e.phase){case`download`:return e.totalBytes?`Downloading the coding engine (v${e.version}) — ${fE(e.receivedBytes)} of ${fE(e.totalBytes)}…`:`Downloading the coding engine (v${e.version}) — ${fE(e.receivedBytes)}…`;case`verify`:return`Verifying the coding engine…`;case`extract`:return`Unpacking the coding engine…`;case`failed`:return`The coding engine could not be downloaded: ${e.error??`unknown error`}. The next message tries again.`;default:return null}}function mE(){let{state:e}=q(),t=e.engineDownload;if(!t)return null;let n=pE(t);if(!n)return null;let r=t.phase===`failed`,i=t.phase===`download`&&t.totalBytes?Math.min(100,Math.round(t.receivedBytes/t.totalBytes*100)):null;return(0,K.jsxs)(`div`,{className:`mx-4 mb-2 rounded-md border px-3 py-2 text-xs `+(r?`border-danger/40 bg-danger/10 text-danger`:`border-accent/40 bg-accent/10 text-fg`),role:`status`,"data-testid":`engine-download`,children:[(0,K.jsx)(`div`,{children:n}),i===null?null:(0,K.jsx)(`div`,{className:`mt-1 h-1 w-full overflow-hidden rounded bg-fg/10`,children:(0,K.jsx)(`div`,{className:`h-full bg-accent`,style:{width:i+`%`}})})]})}function hE({open:e,onClose:t}){let{state:n,actions:r}=q();(0,v.useEffect)(()=>{e&&r.runDoctor()},[e,r]);let i=n.doctor,a=i?.filter(e=>!e.ok).length??0;return(0,K.jsxs)(Nf,{open:e,title:`Doctor`,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(X,{onClick:()=>void r.runDoctor(),children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Run again`]}),(0,K.jsx)(X,{variant:`primary`,onClick:t,children:`Close`})]}),children:[n.info?(0,K.jsxs)(`div`,{className:`mb-3 grid grid-cols-1 gap-x-4 gap-y-0.5 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,K.jsxs)(`div`,{children:[`Host: `,n.info.hostName,` (`,n.info.platform,`/`,n.info.arch,`)`]}),(0,K.jsxs)(`div`,{children:[`App: `,Fd(n.info.appVersion,n.info.cliChannel),n.info.cliChannel&&n.info.cliChannel!==`stable`?` — ${n.info.cliChannel} channel (updates stay within it)`:``]}),(0,K.jsxs)(`div`,{className:`truncate`,title:n.info.engine.binaryPath,children:[`Engine: `,n.info.engine.version??`unknown`,` — `,n.info.engine.binaryPath]}),(0,K.jsxs)(`div`,{className:`truncate`,title:n.info.engine.configDir,children:[`Isolated config dir: `,n.info.engine.configDir]}),(0,K.jsxs)(`div`,{children:[`Listening: `,n.info.addresses.join(`, `),`:`,n.info.port]})]}):null,i===null?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{}),` Running checks…`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-2 text-sm`,children:a===0?(0,K.jsxs)(`span`,{className:`text-ok`,children:[`All `,i.length,` checks passed.`]}):(0,K.jsxs)(`span`,{className:`text-danger`,children:[a,` of `,i.length,` checks need attention.`]})}),(0,K.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:i.map(e=>(0,K.jsxs)(`li`,{className:`flex items-start gap-2 px-3 py-2 text-sm`,children:[e.ok?(0,K.jsx)(Y.Check,{className:`mt-0.5 text-ok`}):(0,K.jsx)(Y.Alert,{className:`mt-0.5 text-danger`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium`,children:e.label}),(0,K.jsx)(`div`,{className:`pre-wrap text-xs text-fg-muted`,children:e.detail}),!e.ok&&e.fix?(0,K.jsx)(`div`,{className:`mt-1 pre-wrap rounded bg-surface-2 px-2 py-1 font-mono text-xs`,children:e.fix}):null]})]},e.id))})]})]})}function gE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=gf(),a=_f(),o=n.currentSessionId,[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(null);(0,v.useEffect)(()=>{e&&(c(a?.projectDir??i?.projectDir??``),m(null),u(!1),f(!1))},[e,a?.projectDir,i?.projectDir]);let h=(0,v.useCallback)(async e=>{let t=e.trim();if(t){u(!0),m(null);try{m(await r.inspectProject(t))}finally{u(!1)}}},[r]),g=(0,v.useCallback)(async()=>{let e=typeof window<`u`?window.oonacode:void 0;if(!e?.pickDirectory)return;let t=await e.pickDirectory({title:`Choose a project folder`});t&&(c(t),await h(t))},[h]),_=(0,v.useCallback)(async()=>{if(!(!p||!o)){f(!0);try{await r.attachProject(p.dir,o)&&t()}finally{f(!1)}}},[p,o,r,t]),y=o===null?null:n.remote.tabs[o]??null,b=o!==null&&y===null&&p!==null&&p.exists&&p.isDirectory&&p.anchorable;return(0,K.jsx)(Nf,{open:e,title:`Use a project folder`,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,children:b?`Not now`:`Close`}),b?(0,K.jsx)(X,{variant:`primary`,busy:d,onClick:()=>void _(),"data-testid":`project-switch`,children:`Switch to this project`}):null]}),children:y?(0,K.jsxs)(vE,{tone:`warn`,testId:`project-remote`,children:[`This chat runs on `,(0,K.jsx)(`strong`,{children:y.hostName}),`, and a project folder is a folder on that PC. Open OonaCode there and choose it from that window — this one can only see this machine's disk, and the folder has to be where the agent actually works.`]}):(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),h(s)},children:[(0,K.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-fg-muted space-y-1.5`,children:[(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`strong`,{className:`text-fg`,children:`What a project folder is.`}),` It tells this chat which folder on this PC it is working in. The agent then loads that folder's`,(0,K.jsx)(`span`,{className:`font-mono`,children:` CLAUDE.md`}),` and`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`.claude/`}),` settings, and — the part you noticed — it stops asking permission for edits and commands inside that folder, because you have said "this is the project, go ahead here".`]}),(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`strong`,{className:`text-fg`,children:`Where it is used.`}),` Every message in this chat runs with that folder as the working directory: relative paths resolve there, the file tools default there, and its project rules apply. Each chat has its own folder; other chats are unaffected. The chat still keeps running in the app-private workspace until you attach one.`]}),(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`strong`,{className:`text-fg`,children:`Good folders:`}),` the root of a code project you own — a repository or app directory, usually the one with a`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`CLAUDE.md`}),` or a`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`.claude/`}),` folder, a`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`.git`}),` repo, or a`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`package.json`}),`.`]}),(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`strong`,{className:`text-fg`,children:`Do not set:`}),` your whole home directory, a drive root (`,(0,K.jsx)(`span`,{className:`font-mono`,children:`C:`}),`),`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`Desktop`}),`,`,(0,K.jsx)(`span`,{className:`font-mono`,children:` Downloads`}),`, a system or Program Files folder, or a cloud-synced root — attaching there gives the agent silent, unprompted edit access across far more than a project, which is exactly what the permission prompts exist to prevent. OonaCode already refuses the home directory and drive roots for this reason.`]}),(0,K.jsxs)(`p`,{children:[`A folder buys `,(0,K.jsx)(`strong`,{className:`text-fg`,children:`silence and context, never access`}),`: the agent can already read and write anywhere with your approval — outside a project it just asks first.`]})]}),(0,K.jsx)(kf,{label:`Folder on this PC`,hint:`An absolute path. Only this machine can see it, so OonaCode asks the host what is there.`,children:(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(`input`,{className:Af,value:s,onChange:e=>{c(e.target.value),m(null)},placeholder:`D:\\projects\\my-app`,"aria-label":`Project folder`,autoFocus:!0,spellCheck:!1}),window.oonacode?.pickDirectory?(0,K.jsxs)(X,{onClick:()=>void g(),children:[(0,K.jsx)(Y.Folder,{className:`w-4 h-4`}),` Browse`]}):null,(0,K.jsx)(X,{busy:l,disabled:s.trim().length===0,onClick:()=>void h(s),"data-testid":`project-check`,children:`Check`})]})}),p?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_E,{result:p,restarts:i!==null}),o===null?(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Open a chat first — a folder is attached to one chat, not to the app.`}):null]}):(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`A chat does not need a folder. It already has every file tool, everywhere — outside a project it simply asks before touching a file. Naming a project adds that project's configuration and context; it never adds access that was missing.`})]})})}function _E({result:e,restarts:t}){return!e.exists||!e.isDirectory?(0,K.jsxs)(vE,{tone:`danger`,testId:`project-verdict`,children:[(0,K.jsx)(`strong`,{className:`font-mono`,children:e.dir}),` is not a folder on this PC.`]}):e.anchorable?e.looksLikeProject?(0,K.jsxs)(vE,{tone:`accent`,testId:`project-verdict`,children:[(0,K.jsxs)(`div`,{className:`font-medium`,children:[`Switching this chat to `,e.dir,` loads:`]}),(0,K.jsxs)(`ul`,{className:`mt-1 list-disc space-y-0.5 pl-4`,children:[(0,K.jsxs)(`li`,{children:[`its `,(0,K.jsx)(`code`,{children:e.hasClaudeMd?`CLAUDE.md`:`CLAUDE.md (none at the root)`}),` and the ones above it`]}),(0,K.jsxs)(`li`,{children:[(0,K.jsx)(`code`,{children:`.claude/settings.json`}),` and `,(0,K.jsx)(`code`,{children:`settings.local.json`}),e.hasClaudeDir?``:` (none yet)`]}),(0,K.jsx)(`li`,{children:`that project's skills, sub-agents, slash commands and hooks`}),(0,K.jsx)(`li`,{children:`silence: file operations inside it stop raising a permission card`})]}),(0,K.jsx)(`div`,{className:`mt-1.5`,children:t?`The agent restarts once to pick them up and resumes this conversation exactly where it is — nothing is lost.`:`Your first message starts the chat there.`})]}):(0,K.jsxs)(vE,{tone:`accent`,testId:`project-verdict`,children:[(0,K.jsxs)(`div`,{className:`font-medium`,children:[`Switching this chat to `,e.dir,`:`]}),(0,K.jsxs)(`ul`,{className:`mt-1 list-disc space-y-0.5 pl-4`,children:[(0,K.jsxs)(`li`,{children:[`it has no `,(0,K.jsx)(`code`,{children:`CLAUDE.md`}),` and no `,(0,K.jsx)(`code`,{children:`.claude/`}),` folder yet, so nothing is loaded from it — add them later and the next restart picks them up`]}),(0,K.jsx)(`li`,{children:`silence: file operations inside it stop raising a permission card`})]}),(0,K.jsx)(`div`,{className:`mt-1.5`,children:t?`The agent restarts once and resumes this conversation exactly where it is — nothing is lost.`:`Your first message starts the chat there.`})]}):(0,K.jsxs)(vE,{tone:`danger`,testId:`project-verdict`,children:[`OonaCode will not use `,(0,K.jsx)(`strong`,{className:`font-mono`,children:e.dir}),` as a project:`,` `,e.reason??`it is not a usable project directory`,`.`]})}function vE({tone:e,testId:t,children:n}){return(0,K.jsx)(`div`,{className:`rounded-md border px-3 py-2 text-xs ${e===`danger`?`border-danger/40 bg-danger-soft text-danger`:e===`warn`?`border-warn/50 bg-warn-soft text-warn`:`border-accent/40 bg-accent-soft text-fg`}`,"data-testid":t,children:n})}var yE=`__new__`;function bE({open:e,startNew:t=!1,onClose:n}){let{state:r,actions:i}=q(),a=r.vaultProjects,[o,s]=(0,v.useState)(yE),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e&&(i.refreshVaultProjects(),s(t?yE:a[0]?.id??yE),h(!1))},[e]);let g=o===yE?null:a.find(e=>e.id===o)??null;(0,v.useEffect)(()=>{l(g?.name??``),d(g?.instructions??``),h(!1)},[g?.id,g?.updatedAt]);let _=g===null?c.trim().length>0||u.length>0:c.trim()!==g.name||u!==g.instructions;async function y(){let e=c.trim();if(e){p(!0);try{if(g===null){let t=await i.createVaultProject(e,u);t&&s(t.id)}else await i.updateVaultProject(g.id,{name:e,instructions:u})}finally{p(!1)}}}async function b(){if(g){if(!m){h(!0);return}p(!0);try{await i.deleteVaultProject(g.id)&&s(yE)}finally{p(!1)}}}let x=e=>r.sessions.filter(t=>t.projectId===e).length,S=e=>e.sessionCount??x(e.id),C=g?S(g):0;return(0,K.jsx)(Nf,{open:e,title:`Projects`,onClose:n,wide:!0,footer:(0,K.jsxs)(K.Fragment,{children:[g?C>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-xs text-fg-muted`,"data-testid":`project-delete-reason`,children:O(C)}),(0,K.jsx)(X,{variant:`ghost`,disabled:!0,"data-testid":`project-delete`,children:`Delete project`})]}):(0,K.jsx)(X,{variant:m?`danger`:`ghost`,onClick:b,disabled:f,"data-testid":`project-delete`,children:m?`Delete ${g.name}?`:`Delete project`}):null,(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(X,{variant:`ghost`,onClick:n,children:`Close`}),(0,K.jsx)(X,{variant:`primary`,onClick:y,disabled:f||!_||c.trim().length===0,"data-testid":`project-save`,children:g===null?`Create project`:`Save`})]}),children:(0,K.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-[180px_1fr]`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`projects-list`,children:[(0,K.jsxs)(`button`,{type:`button`,className:W(`flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,o===yE?`bg-accent-soft text-fg`:`hover:bg-surface-2 text-fg-muted`),onClick:()=>s(yE),"data-testid":`project-new`,children:[(0,K.jsx)(Y.Plus,{className:`w-3.5 h-3.5`}),` New project`]}),a.map(e=>(0,K.jsxs)(`button`,{type:`button`,className:W(`flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,o===e.id?`bg-accent-soft text-fg`:`hover:bg-surface-2 text-fg`),onClick:()=>s(e.id),"data-testid":`project-item-${e.id}`,children:[(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),(0,K.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:S(e)})]},e.id))]}),(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(kf,{label:`Name`,children:(0,K.jsx)(`input`,{className:Af,value:c,onChange:e=>l(e.target.value),placeholder:`My app`,maxLength:120,"data-testid":`project-name`})}),(0,K.jsx)(kf,{label:`Instructions for the agent (optional)`,children:(0,K.jsx)(`textarea`,{className:W(Af,`h-48 font-mono text-xs`),value:u,onChange:e=>d(e.target.value),placeholder:`Standing rules for every chat in this project — e.g.
|
|
124
125
|
- push to the feature branch, never to main
|
|
125
126
|
- run the tests before saying a change is done
|
|
126
127
|
- use the browser on port 9170 for anything on the web`,maxLength:2e4,"data-testid":`project-instructions`})}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`These lines are added to the agent's system prompt for every chat filed under this project, on the chat's next start. Projects live in your vault: only your own devices can read them.`})]})]})})}function xE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.assignProjectSessionId,a=i?n.sessions.find(e=>e.id===i)??null:null,o=i?n.drafts[i]??null:null,s=a?.projectId??o?.projectId??null,[c,l]=(0,v.useState)(s),[u,d]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e&&l(s)},[e,s]);let f=a?.status===`running`||a?.status===`waiting_permission`,p=Eu(a?Du(a):o?.title??`New chat`);async function m(){if(i){d(!0);try{await r.setSessionProject(i,c)&&t()}finally{d(!1)}}}return(0,K.jsxs)(Nf,{open:e,title:`Move “${p}” to a project`,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{variant:`ghost`,onClick:()=>{t(),r.openDialog(`projects`)},children:`Manage projects…`}),(0,K.jsx)(`span`,{className:`flex-1`}),(0,K.jsx)(X,{variant:`ghost`,onClick:t,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,onClick:m,disabled:u||c===s,"data-testid":`assign-project-apply`,children:`Apply`})]}),children:[(0,K.jsxs)(`div`,{className:`flex flex-col gap-0.5`,role:`radiogroup`,"aria-label":`Project`,children:[(0,K.jsx)(SE,{selected:c===null,onSelect:()=>l(null),label:`No project`,testId:`assign-project-none`}),n.vaultProjects.map(e=>(0,K.jsx)(SE,{selected:c===e.id,onSelect:()=>l(e.id),label:e.name,hint:e.instructions.trim()?`has instructions`:void 0,testId:`assign-project-${e.id}`},e.id)),n.vaultProjects.length===0?(0,K.jsxs)(`p`,{className:`px-2 py-2 text-xs text-fg-muted`,children:[`No projects yet — create one under `,(0,K.jsx)(`em`,{children:`Manage projects…`}),`.`]}):null]}),f?(0,K.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,"data-testid":`assign-project-busy`,children:`This chat is mid-turn — it moves now and the turn is left alone. The project's instructions reach the agent at your next message.`}):(0,K.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:`The project's instructions reach the agent on the chat's next start — nothing in the conversation is lost.`})]})}function SE({selected:e,onSelect:t,label:n,hint:r,disabled:i=!1,testId:a}){return(0,K.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":e,onClick:t,disabled:i,className:W(`flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,e?`bg-accent-soft text-fg`:`hover:bg-surface-2 text-fg`,i&&`cursor-not-allowed opacity-50`),"data-testid":a,children:[(0,K.jsx)(`span`,{className:W(`inline-block h-3 w-3 rounded-full border`,e?`border-accent bg-accent`:`border-border`)}),(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n}),r?(0,K.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:r}):null]})}function CE(e,t){let n=e.definition.displayName;return!t||t.id===`payg`||t.id===`api-key`?[`Sign in to the ${n} console.`,`Create an API key (or copy an existing one).`,`Paste it below — OonaCode encrypts it into your vault before it leaves this PC.`]:[`Open the ${n} console and pick the ${t.label} plan.`,t.notes??`Complete the provider’s subscription/token flow in the browser.`,`Copy the token it issues${t.keyFormat?` (looks like ${t.keyFormat})`:``} and paste it below.`]}function wE(e,t){let n=e.find(e=>e.definition.id===t);if(!n)return[];let r=n.definition.clientGroup??n.definition.id,i=e.find(e=>e.definition.id===r);return i?[i,...e.filter(e=>e.definition.clientGroup===r)]:[n]}function TE(e){let t=[];for(let n of e){let e=n.definition,r=ps(e),i=e.credentialClass===`subscription`;if(r.length>1)for(let i of r)t.push({key:`${e.id}:${i.id}`,label:i.id===`token-plan`?`Subscription`:i.id===`payg`?`API`:i.label,provider:n,variantId:i.id,variant:i,isSubscription:!1,hasLoginFlow:!1,loginKind:null,keyFormat:i.keyFormat??e.keyFormat});else t.push({key:e.id,label:e.recordLabel??(i?`Subscription`:`API`),provider:n,variantId:r[0]?.id??null,variant:r[0]??null,isSubscription:i,hasLoginFlow:i&&e.route===`direct`,loginKind:i&&e.route===`direct`?e.subscriptionLogin?`oauth`:`claude`:null,keyFormat:r[0]?.keyFormat??e.keyFormat})}return t}function EE(e){let t=(e.provider.credentials??[]).filter(e=>e.class!==`none`);return(e.variantId?t.filter(t=>(t.variantId??`payg`)===e.variantId):t).slice(0,1)}function DE({open:e,providerId:t,onClose:n}){let{state:r,actions:i}=q(),a=(0,v.useMemo)(()=>t?wE(r.providers,t):[],[r.providers,t]),o=(0,v.useMemo)(()=>TE(a),[a]),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``),[h,g]=(0,v.useState)(!1),[_,y]=(0,v.useState)(null),b=o.find(e=>e.key===s)??o[0]??null;if((0,v.useEffect)(()=>{if(!e)return;let n=o.find(e=>e.provider.definition.id===t);c((n??o[0])?.key??``),u(``),m(``),y(null)},[e,t,o]),(0,v.useEffect)(()=>{if(!e||!b)return;let t=b.provider.definition;f(t.userBaseUrl?b.variant?.baseUrl??t.baseUrl:``)},[e,b,b?.key]),!b)return null;let x=b.provider.definition,S=a[0]?.definition?.displayName??x.displayName,C=EE(b),w=a.some(e=>(e.credentials??[]).some(e=>e.class!==`none`)),T=x.credentialClass!==`none`,E=vs(x,{credentialClass:b.isSubscription?`subscription`:x.credentialClass,...x.userBaseUrl&&d.trim()?{baseUrl:d.trim()}:{}}),D=!h&&(!T||l.trim().length>0),O=async()=>{g(!0),y(null);try{if(!T){await i.setActiveProvider(x.id),n();return}let e=await i.probeCredential(x.id,{secret:l.trim(),variantId:b.variantId,...x.userBaseUrl&&d.trim()?{baseUrl:d.trim()}:{}});if(!e.ok){y(e.error??`${S} rejected this key — check it and try again.`);return}let t={};b.variantId&&(t.variant=b.variantId),x.userBaseUrl&&d.trim()&&(t.baseUrl=d.trim()),await i.addCredential({class:b.isSubscription?`subscription`:`api_key`,providerId:x.id,secret:l.trim(),...p.trim()?{label:p.trim()}:{},...Object.keys(t).length>0?{meta:t}:{}})&&(u(``),n())}finally{g(!1)}};return(0,K.jsx)(Nf,{open:e,title:`${w?`Manage`:`Connect`} ${S}`,onClose:n,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:n,children:`Cancel`}),b.loginKind===`oauth`?(0,K.jsxs)(X,{onClick:()=>i.openOauthLogin(b.provider.definition.id),"data-testid":`connect-oauth-signin`,children:[(0,K.jsx)(Y.LogIn,{className:`w-4 h-4`}),` `,b.provider.definition.subscriptionLogin?.signInLabel??`Sign in instead`]}):b.loginKind===`claude`?(0,K.jsxs)(X,{onClick:()=>i.openClaudeLogin(null),"data-testid":`connect-claude-signin`,children:[(0,K.jsx)(Y.LogIn,{className:`w-4 h-4`}),` Sign in instead`]}):null,(0,K.jsx)(X,{variant:`primary`,busy:h,disabled:!D,onClick:()=>void O(),children:h?`Checking…`:T?`Save key`:`Use this provider`})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[o.length>1?(0,K.jsx)(`div`,{className:`flex gap-1 border-b border-border`,role:`tablist`,children:o.map(e=>{let t=EE(e)[0];return(0,K.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e.key===b.key,"data-testid":`record-tab-${e.key}`,onClick:()=>c(e.key),className:e.key===b.key?`rounded-t-md border border-b-0 border-border bg-surface-2 px-3 py-1.5 text-sm font-medium`:`px-3 py-1.5 text-sm text-fg-muted hover:text-fg`,children:[e.label,t?(0,K.jsx)(`span`,{className:`ml-1.5 font-mono text-[11px] text-ok`,children:t.masked}):null]},e.key)})}):null,C.length>0?(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:`Connected`}),C.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border px-2.5 py-1.5`,"data-testid":`stored-credential-${e.id}`,children:[(0,K.jsx)(Mf,{tone:e.class===`subscription`?`accent`:`ok`,children:b.label}),(0,K.jsx)(`span`,{className:`font-mono text-xs`,children:e.masked}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-fg-faint`,children:e.label}),(0,K.jsx)(X,{size:`sm`,onClick:()=>void i.testCredential(e.id),children:`Test`}),(0,K.jsx)(X,{size:`sm`,variant:`danger`,onClick:()=>void i.deleteCredential(e.id),children:`Remove`})]},e.id))]}):null,(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,K.jsx)(Mf,{tone:E.viaGateway?`accent`:`ok`,children:E.badge}),(0,K.jsx)(Mf,{children:x.kind}),b.keyFormat?(0,K.jsxs)(`span`,{className:`text-fg-faint`,children:[`key format `,b.keyFormat]}):null]}),(0,K.jsxs)(`div`,{className:E.viaGateway?`rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-fg-muted`:`rounded-md border border-ok/40 bg-ok-soft px-3 py-2 text-xs text-ok`,"data-testid":`connect-route`,children:[E.detail,T&&!E.viaGateway?` The key is stored in your zero-knowledge vault.`:null]}),T?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`ol`,{className:`ml-4 list-decimal space-y-1 text-xs text-fg-muted`,children:b.loginKind===`oauth`?[`Press “${b.provider.definition.subscriptionLogin?.signInLabel??`Sign in`}”: a short code opens in your browser, you approve it, and the subscription is stored by itself — nothing to paste.`,`The token refreshes on its own; sign in again only if the provider says it expired.`,`Or paste an access token below, if you have one from elsewhere.`].map((e,t)=>(0,K.jsx)(`li`,{children:e},t)):b.hasLoginFlow?[`Press “Sign in instead” to get a token through the genuine engine — the fastest way.`,"Or run `claude setup-token` yourself and complete the sign-in in your browser.",`Paste the token it prints below (it looks like sk-ant-oat01-…).`].map((e,t)=>(0,K.jsx)(`li`,{children:e},t)):CE(b.provider,b.variant).map((e,t)=>(0,K.jsx)(`li`,{children:e},t))}),(0,K.jsx)(kf,{label:b.isSubscription?`Subscription token`:`API key`,hint:`Tried against the provider before it is saved, then encrypted on this PC with your vault key.`,children:(0,K.jsx)(`input`,{className:Af,type:`password`,autoComplete:`off`,spellCheck:!1,value:l,placeholder:b.keyFormat??`sk-…`,onChange:e=>{u(e.target.value),y(null)}})}),_?(0,K.jsx)(`div`,{className:`rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-xs text-danger`,"data-testid":`connect-probe-error`,children:_}):null,x.userBaseUrl?(0,K.jsx)(kf,{label:`Base URL`,hint:`Point this at your own server if it is not the default. Each record has its own endpoint.`,children:(0,K.jsx)(`input`,{className:Af,value:d,spellCheck:!1,onChange:e=>f(e.target.value),placeholder:b.variant?.baseUrl??x.baseUrl})}):null,(0,K.jsx)(kf,{label:`Label (optional)`,children:(0,K.jsx)(`input`,{className:Af,value:p,onChange:e=>m(e.target.value),placeholder:`${S} ${b.label.toLowerCase()} key`})})]}):(0,K.jsxs)(`div`,{className:`rounded-md bg-surface-2 px-3 py-2 text-xs text-fg-muted`,children:[x.displayName,` needs no credential.`]})]})})}function OE(e){let t=typeof window<`u`?window.oonacode:void 0;t?.openExternal?t.openExternal(e):window.open(e,`_blank`,`noopener,noreferrer`)}function kE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.claudeLogin,a=n.ui.claudeLoginMode,[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(null),g=(0,v.useRef)(null),[_,y]=(0,v.useState)(0),[b,x]=(0,v.useState)(null),S=i?.phase===`starting`||i?.phase===`awaiting_browser`||i?.phase===`awaiting_code`,C=i!=null&&(S||b!==null&&i.id===b),w=C?i:null,T=C&&S,E=w?.phase??`idle`,D=T?w?.url??w?.fallbackUrl??null:null,O=E===`connected`,k=O||E===`failed`||E===`cancelled`,A=!a&&!S&&!m,ee=k&&!A;(0,v.useEffect)(()=>{if(!e)return;s(``),h(null),p(!1),x(null),g.current=null,r.refreshClaudeLogin();let t=setInterval(()=>void r.refreshClaudeLogin(),2e3);return()=>clearInterval(t)},[e,r]),(0,v.useEffect)(()=>{if(!e||!a)return;let t=!1;return(async()=>{let e=await r.startClaudeLogin();t||!e||(e.login?x(e.login.id):h(e))})(),()=>{t=!0}},[e,a,_,r]),(0,v.useEffect)(()=>{!e||!D||!a||g.current===D||!T||(g.current=D,a===`open`?OE(D):navigator.clipboard?navigator.clipboard.writeText(D).then(()=>{d(!0),r.toast(`info`,`Sign-in link copied — paste it into the browser where you are signed in to Claude`),setTimeout(()=>d(!1),2500)}).catch(()=>r.toast(`error`,`Could not copy — use the Copy button below`)):r.toast(`error`,`Could not copy — select the link and copy it by hand`))},[e,D,a,T,r]),(0,v.useEffect)(()=>{w?.phase===`connected`&&r.refreshClaudeSubscription()},[w?.phase,r]);let j=m?.command?`${m.command.file} ${m.command.args.join(` `)}`:null,M=async()=>{if(D)try{await navigator.clipboard.writeText(D),d(!0),setTimeout(()=>d(!1),1500)}catch{r.toast(`error`,`Could not copy — select the link and copy it by hand`)}},te=async()=>{if(o.trim()){l(!0);try{await r.submitClaudeLoginCode(o)&&s(``)}finally{l(!1)}}},ne=A?(0,K.jsxs)(`div`,{className:`flex w-full flex-wrap items-center justify-end gap-2`,children:[(0,K.jsx)(X,{onClick:t,"data-testid":`claude-login-close`,children:`Close`}),(0,K.jsxs)(X,{onClick:()=>r.openClaudeLogin(`copy`),"data-testid":`claude-login-copy-mode`,children:[(0,K.jsx)(Y.Copy,{className:`w-4 h-4`}),` Copy link`]}),(0,K.jsxs)(X,{variant:`primary`,onClick:()=>r.openClaudeLogin(`open`),"data-testid":`claude-login-open-mode`,children:[(0,K.jsx)(Y.LogIn,{className:`w-4 h-4`}),` Sign in with my subscription`]})]}):ee||m?(0,K.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[O?null:(0,K.jsx)(X,{onClick:()=>{g.current=null,h(null),x(null),a||r.openClaudeLogin(`open`),y(e=>e+1)},"data-testid":`claude-login-retry`,children:`Try again`}),(0,K.jsx)(X,{variant:`primary`,onClick:t,"data-testid":`claude-login-close`,children:`Close`})]}):(0,K.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[(0,K.jsx)(X,{onClick:t,children:`Keep in background`}),(0,K.jsx)(X,{variant:`danger`,onClick:()=>void r.cancelClaudeLogin(),"data-testid":`claude-login-cancel`,children:`Cancel sign-in`})]});return(0,K.jsx)(Nf,{open:e,title:`Connect your Claude subscription`,onClose:t,footer:ne,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`Your Claude Pro/Max login runs the genuine Claude Code engine directly against api.anthropic.com — never through the gateway. The token it stores lasts a year and syncs to every PC you sign in to.`}),A?(0,K.jsxs)(`div`,{className:`space-y-2 text-sm`,"data-testid":`claude-login-choose`,children:[(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Sign in with my subscription`}),` opens the Claude sign-in page in this PC's browser.`]}),(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Copy link`}),` copies the same page's link for the browser where you are already signed in to Claude — any browser on this PC works.`]}),(0,K.jsx)(`p`,{className:`text-fg-faint`,children:`Either way this window connects by itself when you finish signing in.`})]}):null,A?null:(0,K.jsx)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-xs`,"data-testid":`claude-login-wait`,children:D?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:a===`copy`?`Sign-in link (copied):`:`Sign-in link (opened in your browser):`}),(0,K.jsx)(`div`,{className:`break-all font-mono select-all`,"data-testid":`claude-login-url`,children:D}),(0,K.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,K.jsxs)(X,{size:`sm`,onClick:()=>void M(),"data-testid":`claude-login-copy`,children:[(0,K.jsx)(Y.Copy,{className:`w-3 h-3`}),` `,u?`Copied`:`Copy link`]}),(0,K.jsx)(X,{size:`sm`,onClick:()=>OE(D),children:`Open in browser`})]})]}):O?null:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{className:`w-4 h-4 animate-spin`}),` Preparing your sign-in link…`]})}),(0,K.jsx)(`div`,{className:W(`text-sm`,O?`text-ok`:E===`failed`?`text-danger`:`text-fg-muted`),"data-testid":`claude-login-status`,children:A?null:O?`Connected — your Claude subscription is stored in the vault and runs from this PC.`:T&&D?w?.message??`Waiting for you to finish in the browser…`:w?.message??m?.instructions??`Starting the Claude sign-in…`}),T&&D?(0,K.jsx)(`div`,{className:`text-xs`,children:f?(0,K.jsx)(kf,{label:`The page showed a code instead? Paste it here`,children:(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(`input`,{className:Af,value:o,onChange:e=>s(e.target.value),placeholder:`paste the code here`,autoComplete:`off`,spellCheck:!1,"data-testid":`claude-login-code`,onKeyDown:e=>{e.key===`Enter`&&te()}}),(0,K.jsx)(X,{variant:`primary`,busy:c,disabled:!o.trim(),onClick:()=>void te(),"data-testid":`claude-login-submit`,children:`Continue`})]})}):(0,K.jsx)(`button`,{type:`button`,className:`text-fg-faint underline hover:text-fg`,onClick:()=>p(!0),"data-testid":`claude-login-show-code`,children:`The page showed a code instead? Paste it here`})}):null,j?(0,K.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-xs`,children:[(0,K.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:`This host cannot open a terminal for the engine. Run this in a terminal on this PC, then add the printed token as a subscription credential:`}),(0,K.jsx)(FS,{code:j,language:`powershell`})]}):null]})})}function AE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.ui.oauthLoginProviderId,a=i?n.providers.find(e=>e.definition.id===i)??null:null,o=n.oauthLogin&&n.oauthLogin.providerId===i?n.oauthLogin:null,[s,c]=(0,v.useState)(0),[l,u]=(0,v.useState)(!1),d=(0,v.useRef)(null),f=a?.definition.displayName??i??`the provider`,p=a?.definition.subscriptionLogin?.signInLabel??`Sign in to ${f}`,m=o?.phase===`awaiting_approval`,h=m?o?.verificationUriComplete??o?.verificationUri??null:null;(0,v.useEffect)(()=>{if(!e||!i)return;d.current=null,r.startOauthLogin(i);let t=setInterval(()=>void r.refreshOauthLogin(i),2e3);return()=>clearInterval(t)},[e,i,s,r]),(0,v.useEffect)(()=>{!e||!h||!o?.id||d.current===o.id||(d.current=o.id,OE(h))},[e,h,o?.id]),(0,v.useEffect)(()=>{e&&o?.phase===`connected`&&r.refreshCredentials()},[e,o?.phase,r]);let g=e=>{if(!navigator.clipboard){r.toast(`error`,`Could not copy — select it and copy by hand`);return}navigator.clipboard.writeText(e).then(()=>{u(!0),setTimeout(()=>u(!1),2e3)}).catch(()=>r.toast(`error`,`Could not copy`))},_=o?.phase===`connected`||o?.phase===`failed`||o?.phase===`expired`||o?.phase===`cancelled`;return(0,K.jsx)(Nf,{open:e,title:p,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[m?(0,K.jsx)(X,{onClick:()=>i&&void r.cancelOauthLogin(i),"data-testid":`oauth-login-cancel`,children:`Cancel sign-in`}):null,_&&o?.phase!==`connected`?(0,K.jsx)(X,{onClick:()=>c(e=>e+1),"data-testid":`oauth-login-retry`,children:`Try again`}):null,(0,K.jsx)(X,{variant:`primary`,onClick:t,children:o?.phase===`connected`?`Done`:`Close`})]}),children:(0,K.jsx)(`div`,{className:`space-y-3 text-sm`,"data-testid":`oauth-login-dialog`,children:m&&o?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`p`,{children:[`A sign-in page for `,f,` opened in your browser. If it did not, open the link below on any device and enter this code:`]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`code`,{className:`text-lg font-mono px-2 py-1 rounded border border-border`,"data-testid":`oauth-user-code`,children:o.userCode}),(0,K.jsxs)(X,{onClick:()=>o.userCode&&g(o.userCode),children:[(0,K.jsx)(Y.Copy,{className:`w-4 h-4`}),` `,l?`Copied`:`Copy code`]})]}),h?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 break-all`,children:[(0,K.jsx)(`a`,{className:`underline`,href:h,onClick:e=>{e.preventDefault(),OE(h)},children:h}),(0,K.jsxs)(X,{onClick:()=>g(h),children:[(0,K.jsx)(Y.Copy,{className:`w-4 h-4`}),` Copy link`]})]}):null,(0,K.jsxs)(`p`,{className:`text-fg-muted`,children:[`Waiting for your approval… the code expires`,o.expiresAt?` at ${new Date(o.expiresAt).toLocaleTimeString()}`:` soon`,`. The subscription is stored in your vault the moment `,f,` confirms it.`]})]}):o?.phase===`connected`?(0,K.jsxs)(`p`,{"data-testid":`oauth-login-connected`,children:[`Signed in. Your `,f,` subscription is stored in your vault and synced to your other machines; chats on it run from this PC straight to the provider.`]}):_?(0,K.jsx)(`p`,{className:`text-danger`,"data-testid":`oauth-login-ended`,children:o?.message??`The sign-in did not complete.`}):(0,K.jsx)(`p`,{children:`Starting the sign-in…`})})})}function jE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=(0,v.useMemo)(()=>vc(n.providers),[n.providers]),[a,o]=(0,v.useState)({}),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1);(0,v.useEffect)(()=>{e&&(o({...n.settings?.modelVisibility??{}}),c(``))},[e]);let d=(e,t)=>a[e]??t,f=(e,t,n)=>d(e,n).includes(t),p=(e,t,n)=>{o(r=>{let i=r[e]??n,a=i.includes(t)?i.filter(e=>e!==t):n.filter(e=>e===t||i.includes(e));return{...r,[e]:a}})},m=(e,t,n)=>{o(r=>({...r,[e]:t?[...n]:[]}))},h=async()=>{u(!0);try{let e={};for(let t of i){let n=t.definition.models.map(e=>e.id),r=a[t.definition.id];r&&r.length!==n.length&&(e[t.definition.id]=r)}await r.saveSettings({modelVisibility:e}),t()}finally{u(!1)}},g=s.trim().toLowerCase();return(0,K.jsx)(Nf,{open:e,title:`Manage models`,onClose:t,wide:!0,footer:(0,K.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-2`,children:[(0,K.jsxs)(X,{onClick:()=>{t(),r.openSettings(`providers`)},"data-testid":`manage-models-add-provider`,children:[(0,K.jsx)(Y.Plus,{className:`w-3.5 h-3.5`}),` Add provider`]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(X,{onClick:t,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,busy:l,onClick:()=>void h(),"data-testid":`manage-models-save`,children:`Save`})]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`Choose which models the chat's picker offers. A provider with every model checked shows all of them — including ones it adds later.`}),(0,K.jsx)(`input`,{className:Af,value:s,onChange:e=>c(e.target.value),placeholder:`Filter models…`,"data-testid":`manage-models-filter`}),i.length===0?(0,K.jsxs)(`div`,{className:`text-sm text-fg-faint`,children:[`No provider is connected yet — use `,(0,K.jsx)(`strong`,{children:`Add provider`}),` below to connect one.`]}):null,i.map(e=>{let t=e.definition.models.map(e=>e.id),n=e.definition.models.filter(e=>!g||e.id.toLowerCase().includes(g)||(e.displayName??``).toLowerCase().includes(g)),r=d(e.definition.id,t).length;return(0,K.jsxs)(`div`,{className:`rounded-md border border-border p-3`,"data-testid":`manage-models-${e.definition.id}`,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:e.definition.displayName}),(0,K.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[r===t.length?`all`:r,` of `,t.length,` shown`]}),(0,K.jsxs)(`span`,{className:`ml-auto flex gap-1`,children:[(0,K.jsx)(X,{size:`sm`,onClick:()=>m(e.definition.id,!0,t),children:`All`}),(0,K.jsx)(X,{size:`sm`,onClick:()=>m(e.definition.id,!1,t),children:`None`})]})]}),(0,K.jsxs)(`div`,{className:`grid gap-1 sm:grid-cols-2`,children:[n.map(n=>(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:f(e.definition.id,n.id,t),onChange:()=>p(e.definition.id,n.id,t),"data-testid":`manage-model-${n.id}`}),(0,K.jsxs)(`span`,{className:`truncate`,title:n.id,children:[n.displayName??n.id,n.displayName&&n.displayName!==n.id?(0,K.jsxs)(`span`,{className:`text-fg-faint`,children:[` · `,n.id]}):null]})]},n.id)),n.length===0?(0,K.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[(0,K.jsx)(Y.Info,{className:`mr-1 inline w-3 h-3`}),` No model matches the filter.`]}):null]})]},e.definition.id)})]})})}function ME(e){return e?e.replace(/[\\/]+$/,``).split(/[\\/]/).length<=2?e:`…${e.slice(-40)}`:`no folder recorded`}function NE(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function PE(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):``}function FE(e){return e.alreadyImported&&e.upToDate===!0}function IE(e){return!e.alreadyImported&&e.deletedHere===!0}function LE(e){return typeof e.unavailable==`string`&&e.unavailable.length>0}function RE(e){if(!e.some(e=>e.projectName))return e;let t=[],n=new Map;for(let r of e){let e=r.projectName??``;n.has(e)||(n.set(e,[]),t.push(e)),n.get(e).push(r)}return t.flatMap(e=>n.get(e))}function zE({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.importProgress,[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(new Set),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(null),b=(0,v.useMemo)(()=>d??[],[d]),x=(0,v.useMemo)(()=>b.filter(e=>!e.alreadyImported&&!IE(e)&&!LE(e)),[b]),S=(0,v.useMemo)(()=>b.filter(e=>e.alreadyImported),[b]),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(!1),D=(0,v.useMemo)(()=>b.filter(FE),[b]),O=(0,v.useMemo)(()=>b.filter(IE),[b]),k=(0,v.useMemo)(()=>b.filter(e=>(C||!FE(e))&&(T||!IE(e))),[b,C,T]),A=(0,v.useMemo)(()=>b.filter(e=>e.alreadyImported&&p.has(e.id)),[b,p]),ee=(0,v.useMemo)(()=>{let e=[...new Set(b.map(e=>e.agentName??`Claude Code`))];return e.length===1?e[0]:`coding-agent`},[b]),j=(0,v.useMemo)(()=>{let e=new Map;for(let t of b){let n=t.agentName??`Claude Code`,r=t.agentId??`claude-code`,i=e.get(r)??{name:n,chats:[]};i.chats.push(t),e.set(r,i)}return[...e.entries()].map(([e,t])=>({key:e,...t,chats:RE(t.chats)}))},[b]);(0,v.useEffect)(()=>{h===null&&j.length>0&&g(new Set([j[0].key]))},[j,h]),(0,v.useEffect)(()=>{e&&(u(null),y(null),g(null),o(!0),r.scanClaudeSessions().then(e=>{f(e.sessions),m(new Set(e.sessions.filter(e=>!e.alreadyImported&&!IE(e)&&!LE(e)).map(e=>e.id)))}).catch(e=>u(e instanceof Error?e.message:String(e))).finally(()=>o(!1)))},[e]);let M=e=>m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),te=()=>{n.prefs.claudeImportOffered||r.savePrefs({claudeImportOffered:!0}),t()},ne=async()=>{c(!0),u(null);try{let e=await r.importClaudeSessions([...p],A.length>0);y({imported:e.imported.length,replaced:e.replaced?.length??0,entries:e.imported.reduce((e,t)=>e+t.entries,0)+(e.replaced??[]).reduce((e,t)=>e+t.entries,0),failed:e.failed.length,filed:e.filed?.length??0,projectsMade:(e.projects??[]).filter(e=>e.created).map(e=>e.name),warnings:e.warnings??[]}),n.prefs.claudeImportOffered||r.savePrefs({claudeImportOffered:!0}),await r.refreshSessions()}catch(e){u(e instanceof Error?e.message:String(e))}finally{c(!1)}};return(0,K.jsx)(Nf,{open:e,title:`Import your ${ee} chats`,onClose:te,wide:!0,footer:(0,K.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-2`,children:[(0,K.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:A.length>0?(0,K.jsxs)(`span`,{className:`text-warn`,children:[A.length,` already-imported `,A.length===1?`chat`:`chats`,` `,`will be REPLACED — the OonaCode copy is rebuilt from the original, and anything added here is lost.`]}):`Your other apps stay exactly as they are — this copies, it never moves or deletes.`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(X,{onClick:te,"data-testid":`import-claude-close`,children:_?`Done`:`Not now`}),_?null:(0,K.jsxs)(X,{variant:`primary`,busy:s,disabled:p.size===0,onClick:()=>void ne(),"data-testid":`import-claude-run`,children:[`Import `,p.size>0?p.size:``]})]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3`,"data-testid":`import-claude-body`,children:[a?(0,K.jsx)(`div`,{className:`text-sm text-fg-muted`,children:`Looking for chats on this PC…`}):null,i&&!_?(0,K.jsxs)(`div`,{className:`space-y-2`,"data-testid":`import-claude-progress`,children:[(0,K.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,K.jsxs)(`span`,{children:[`Importing `,(0,K.jsx)(`strong`,{children:i.done}),` of `,(0,K.jsx)(`strong`,{children:i.total}),`…`]}),(0,K.jsxs)(`span`,{className:`text-[11px] text-fg-faint`,children:[Math.round(i.done/Math.max(i.total,1)*100),`%`]})]}),(0,K.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded bg-surface-2`,children:(0,K.jsx)(`div`,{className:`h-full bg-accent transition-[width] duration-200`,style:{width:`${Math.round(i.done/Math.max(i.total,1)*100)}%`}})}),i.current?(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,title:i.current,children:[`reading: `,i.current]}):null,(0,K.jsxs)(`div`,{className:`flex gap-3 text-[11px] text-fg-faint`,children:[(0,K.jsxs)(`span`,{children:[i.imported,` imported`]}),i.skipped>0?(0,K.jsxs)(`span`,{children:[i.skipped,` already in`]}):null,i.failed>0?(0,K.jsxs)(`span`,{className:`text-warn`,children:[i.failed,` could not be read`]}):null]}),(0,K.jsx)(`p`,{className:`text-[11px] text-fg-faint`,children:`A big chat takes a moment — the largest here are over 100 MB. Your Claude Code is only being read.`})]}):null,l?(0,K.jsx)(`div`,{className:`rounded border border-danger/40 bg-danger/10 p-2 text-sm text-danger`,children:l}):null,_?(0,K.jsxs)(`div`,{className:`text-sm`,"data-testid":`import-claude-done`,children:[(0,K.jsxs)(`p`,{children:[`Imported `,(0,K.jsx)(`strong`,{children:_.imported}),` `,_.imported===1?`chat`:`chats`,_.replaced>0?(0,K.jsxs)(K.Fragment,{children:[` and rebuilt `,(0,K.jsx)(`strong`,{children:_.replaced}),` that `,_.replaced===1?`was`:`were`,` already here`]}):null,` `,`(`,_.entries.toLocaleString(),` entries). They are in your sessions list now, and you can carry on typing in them.`]}),_.projectsMade.length>0?(0,K.jsxs)(`p`,{className:`mt-1`,"data-testid":`import-claude-projects-made`,children:[_.projectsMade.length===1?`Created the project `:`Created the projects `,_.projectsMade.map((e,t)=>(0,K.jsxs)(`span`,{children:[t>0?`, `:``,(0,K.jsx)(`strong`,{children:e})]},e)),` `,`and filed `,_.projectsMade.length===1?`its`:`their`,` chats under`,` `,_.projectsMade.length===1?`it`:`them`,`.`]}):null,_.filed>0?(0,K.jsxs)(`p`,{className:`mt-1 text-fg-muted`,"data-testid":`import-claude-filed`,children:[_.filed,` `,_.filed===1?`chat that was`:`chats that were`,` already here`,` `,_.filed===1?`is`:`are`,` now filed under`,` `,_.filed===1?`its`:`their`,` project.`]}):null,_.failed>0?(0,K.jsxs)(`p`,{className:`mt-1 text-warn`,children:[_.failed,` could not be read and were left alone.`]}):null,_.warnings.map(e=>(0,K.jsx)(`p`,{className:`mt-1 text-warn`,children:e},e))]}):null,!a&&!_&&!i&&d!==null&&d.length>0?(0,K.jsxs)(`div`,{className:`space-y-0.5 text-sm`,"data-testid":`import-claude-tally`,children:[(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`strong`,{children:d.length}),` `,d.length===1?`chat`:`chats`,` on this PC`,j.length>0?` — `:``,j.map((e,t)=>(0,K.jsxs)(`span`,{children:[t>0?`, `:``,(0,K.jsx)(`strong`,{children:e.chats.length}),` `,e.name]},e.key))]}),(0,K.jsxs)(`p`,{className:`text-fg-muted`,children:[S.length>0?`${S.length} already imported · `:``,(0,K.jsx)(`strong`,{className:`text-fg`,children:x.length}),` new`]}),D.length>0?(0,K.jsxs)(`p`,{className:`text-[11px] text-fg-faint`,children:[D.length,` imported and up to date `,C?`shown`:`hidden`,` —`,` `,(0,K.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>w(e=>!e),"data-testid":`import-claude-toggle-uptodate`,children:C?`hide`:`show`})]}):null,O.length>0?(0,K.jsxs)(`p`,{className:`text-[11px] text-fg-faint`,"data-testid":`import-claude-deleted-line`,children:[O.length,` you deleted here `,T?`shown`:`hidden`,` —`,` `,(0,K.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>E(e=>!e),"data-testid":`import-claude-toggle-deleted`,children:T?`hide`:`show`})]}):null]}):null,!a&&!_&&!i&&d!==null&&x.length===0?(0,K.jsx)(`div`,{className:`text-sm text-fg-muted`,"data-testid":`import-claude-empty`,children:d.length===0?`No Claude Code chats were found on this PC.`:`All ${d.length} of them are already imported — they are in your sessions list.`}):null,!_&&!i&&b.length>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`These are the chats the coding agents on this PC have, newest first. Importing copies them into OonaCode so you can read them here — and continue them, in the folder each one ran in.`}),(0,K.jsx)(`div`,{className:`max-h-96 space-y-3 overflow-y-auto`,children:j.map(e=>{let t=e.chats.filter(e=>k.includes(e)),n=t.filter(e=>!LE(e)).map(e=>e.id),r=n.filter(e=>p.has(e)).length,i=h?.has(e.key)??!1,a=e.chats.filter(e=>!e.alreadyImported&&!IE(e)&&!LE(e)).length,o=e.chats.length-t.length;return t.length===0?null:(0,K.jsxs)(`div`,{className:`rounded border border-border`,"data-testid":`import-group-${e.key}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border bg-surface-2 px-2 py-1.5`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,onClick:()=>g(t=>{let n=new Set(t??[]);return n.has(e.key)?n.delete(e.key):n.add(e.key),n}),"aria-expanded":i,"data-testid":`import-group-header-${e.key}`,children:[(0,K.jsx)(Y.Chevron,{open:i,className:`w-3 h-3 shrink-0`}),e.name,(0,K.jsxs)(`span`,{className:`font-normal text-fg-faint`,children:[e.chats.length,` `,e.chats.length===1?`chat`:`chats`,a>0?` · ${a} new`:` · all imported`,o>0?` · ${o} up to date hidden`:``,r>0?` · ${r} selected`:``]})]}),(0,K.jsx)(`button`,{type:`button`,className:`shrink-0 text-[11px] underline text-fg-faint`,onClick:()=>m(e=>{let t=new Set(e),r=n.every(e=>t.has(e));for(let e of n)r?t.delete(e):t.add(e);return t}),"data-testid":`import-group-toggle-${e.key}`,children:n.every(e=>p.has(e))?`none`:`all`})]}),i?t.map(e=>(0,K.jsxs)(`label`,{className:`flex items-start gap-2 border-b border-border p-2 last:border-b-0 ${LE(e)?`cursor-default opacity-60`:`cursor-pointer hover:bg-surface-2`}`,"data-testid":`import-row-${e.id}`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:p.has(e.id),disabled:LE(e),onChange:()=>M(e.id),"aria-label":e.title??e.firstPrompt??e.id}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`span`,{className:`block truncate text-sm`,children:e.title??e.firstPrompt??(0,K.jsx)(`span`,{className:`text-fg-faint`,children:`(no prompt)`})}),(0,K.jsxs)(`span`,{className:`mt-0.5 block truncate text-[11px] text-fg-faint`,children:[e.projectName?(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,K.jsx)(Y.Project,{className:`w-3 h-3`}),e.projectName]}):(0,K.jsxs)(K.Fragment,{children:[ME(e.cwd),e.cwd&&!e.cwdExists?` · folder is gone`:``]}),` `,`· `,e.entryCount,` entries`,e.bytes>0?` · ${NE(e.bytes)}`:``,` ·`,` `,PE(e.lastEntryAt??e.updatedAt),e.model?` · ${e.model}`:``]}),e.unavailable||e.note?(0,K.jsx)(`span`,{className:`mt-0.5 block text-[11px] ${e.unavailable?`text-warn`:`text-fg-faint`}`,"data-testid":`import-row-note-${e.id}`,children:e.unavailable??e.note}):null]}),e.supersedes&&e.supersedes.length>0?(0,K.jsx)(`span`,{className:`mt-0.5 shrink-0 rounded bg-surface-2 px-1 text-[11px] text-fg-faint`,title:`Rewound — replaces ${e.supersedes.length} earlier ${e.supersedes.length===1?`branch`:`branches`} of this chat`,children:`rewound`}):null,e.alreadyImported?(0,K.jsxs)(`span`,{className:`mt-0.5 flex shrink-0 items-center gap-1 text-[11px] text-fg-faint`,children:[(0,K.jsx)(Y.Check,{className:`w-3 h-3 text-ok`}),`imported`,e.upToDate===!1?(0,K.jsxs)(`span`,{className:`ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-warn-soft px-1 text-[10px] font-medium leading-4 text-warn`,title:`The original has newer messages than the OonaCode copy — importing again brings them in`,"data-testid":`import-behind-${e.id}`,"aria-label":`behind its original`,children:[(0,K.jsx)(Y.ArrowDown,{className:`w-2.5 h-2.5`}),`behind`]}):null]}):null]},e.id)):null]},e.key)})}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3 text-[11px] text-fg-faint`,children:[(0,K.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>m(new Set(k.filter(e=>!LE(e)).map(e=>e.id))),"data-testid":`import-claude-select-all`,children:`Select all`}),(0,K.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>m(new Set),"data-testid":`import-claude-select-none`,children:`Select none`})]})]}):null]})})}var BE={model:null,previousModel:null,costUsd:0,inputTokens:0,outputTokens:0,turns:0,durationMs:0,contextTokens:0,contextWindow:null,contextUsed:null,costSource:`engine`,credits:null,resetAtIndex:null,didReset:!1,countedResults:0};function VE(e,t){let n=t?Cs(t):null,r=null,i=null;for(let t=0;t<e.length;t++){let a=e[t];if(!a||a.kind!==`assistant`||!M(a.model))continue;let o=Cs(a.model);n!==null&&o!==n&&(r=t,i=n),n=o}return{index:r,from:i,to:n}}function HE(e){let{items:t,session:n=null,initModel:r=null,boundary:i=null,models:a}=e;if(t.length===0&&!n)return BE;let o=VE(t,r),s=i&&i.index>=0?Math.min(i.index,t.length):null,c=null,l=null;o.index!==null&&(s===null||o.index>=s)?(c=o.index,l=o.from):s!==null&&(c=s,l=i?.from??o.from);let u=c??0,d=0,f=0,p=0,m=0,h=0,g=0,_=0;for(let e=u;e<t.length;e++){let n=t[e];!n||n.kind!==`result`||(_+=1,d+=n.costUsd,f+=n.inputTokens,p+=n.outputTokens,m+=n.numTurns,h+=n.durationMs,n.inputTokens>0&&(g=n.inputTokens))}_===0&&c===null&&n&&(d=n.totalCostUsd,f=n.inputTokens,p=n.outputTokens,g=n.inputTokens);let v=`engine`,y=null;n&&n.providerId===`oonacode`&&(d=n.totalCostUsd,y=n.poolCredits??null,v=`gateway`);let b=r?Cs(r):null,x=i&&s!==null&&c===s?i.to:o.to??n?.model??b??null,S=[x,n?.model??null,b].filter(e=>typeof e==`string`&&e.length>0),C=(a?S.map(e=>a.find(t=>t.id===e)).find(e=>e?.contextWindow!=null):void 0)?.contextWindow??null;return{model:x,previousModel:l,costUsd:d,inputTokens:f,outputTokens:p,turns:m,durationMs:h,contextTokens:g,contextWindow:C,contextUsed:C&&C>0?Math.min(1,g/C):null,resetAtIndex:c,didReset:c!==null,countedResults:_,costSource:v,credits:y}}function UE({label:e,icon:t,children:n}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,K.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-xs text-fg-faint`,children:[t?(0,K.jsx)(`span`,{className:`shrink-0 text-fg-faint`,"aria-hidden":`true`,children:t}):null,e]}),(0,K.jsx)(`span`,{className:`min-w-0 truncate text-right text-xs font-medium text-fg`,children:n})]})}function WE({label:e,icon:t}){return(0,K.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,children:t}),e]})}var GE={provider:(0,K.jsx)(Y.Plug,{className:`w-3.5 h-3.5`}),route:(0,K.jsx)(Y.Globe,{className:`w-3.5 h-3.5`}),model:(0,K.jsx)(Y.Bot,{className:`w-3.5 h-3.5`}),permission:(0,K.jsx)(Y.Shield,{className:`w-3.5 h-3.5`}),context:(0,K.jsx)(Y.Brain,{className:`w-3.5 h-3.5`}),window:(0,K.jsx)(Y.Panel,{className:`w-3.5 h-3.5`}),compactions:(0,K.jsx)(Y.CollapseAll,{className:`w-3.5 h-3.5`}),usage:(0,K.jsx)(Y.Coins,{className:`w-3.5 h-3.5`}),tokensIn:(0,K.jsx)(Y.Download,{className:`w-3.5 h-3.5`}),tokensOut:(0,K.jsx)(Y.Upload,{className:`w-3.5 h-3.5`}),duration:(0,K.jsx)(Y.Clock,{className:`w-3.5 h-3.5`}),turns:(0,K.jsx)(Y.Send,{className:`w-3.5 h-3.5`}),session:(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5`}),status:(0,K.jsx)(Y.Monitor,{className:`w-3.5 h-3.5`}),updated:(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),entries:(0,K.jsx)(Y.Menu,{className:`w-3.5 h-3.5`}),mirror:(0,K.jsx)(Y.Copy,{className:`w-3.5 h-3.5`}),project:(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5`}),folder:(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5`})};function KE({used:e}){let t=Math.round(e*100);return(0,K.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-3`,role:`progressbar`,"aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`Context used`,children:(0,K.jsx)(`div`,{className:W(`h-full rounded-full`,t>=90?`bg-danger`:t>=70?`bg-warn`:`bg-accent`),style:{width:`${t}%`}})})}function qE(){let{state:e,actions:t}=q(),n=gf(),r=n?e.remote.tabs[n.id]!==void 0:!1,i=hf(),a=e.currentSessionId,o=n?.projectId?e.vaultProjects.find(e=>e.id===n.projectId):void 0,s=o?.instructions.trim()??``,c=n?.providerId??e.activeProviderId,l=e.providers.find(e=>e.definition.id===c),u=l?.definition.models??(c?e.models[c]?.models:void 0),d=(0,v.useMemo)(()=>{let e=l?.definition;return e?vs(e,{credentialClass:(l.credentials.find(e=>e.variantId===n?.variantId)??l.credentials[0])?.class??null}):null},[l,n?.variantId]),f=(0,v.useMemo)(()=>HE({items:i?.items??[],session:n,initModel:i?.init?.model??null,boundary:a?e.modelBoundaries[a]??null:null,models:u}),[i?.items,i?.init?.model,n,a,e.modelBoundaries,u]),p=(0,v.useMemo)(()=>(i?.items??[]).filter(e=>e.kind===`user`&&e.compactSummary).length,[i?.items]);return(0,K.jsxs)(`aside`,{className:`flex w-72 shrink-0 flex-col border-l border-border bg-surface`,"aria-label":`Session info`,"data-testid":`session-panel`,children:[(0,K.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`flex-1 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:`Session info`}),(0,K.jsx)(Of,{label:`Hide session info`,className:`p-1`,onClick:()=>void t.savePrefs({sessionPanelOpen:!1}),children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]}),n?(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-2`,children:[f.didReset?(0,K.jsxs)(`div`,{className:`mb-2 rounded-md bg-accent-soft px-2 py-1.5 text-[11px] text-accent`,"data-testid":`stats-reset`,children:[`Statistics restarted at the model change`,f.previousModel?` (was ${f.previousModel})`:``,`.`]}):null,(0,K.jsxs)(`div`,{className:`mb-2`,children:[(0,K.jsx)(WE,{label:`Model`,icon:GE.model}),(0,K.jsx)(UE,{label:`Provider`,icon:GE.provider,children:l?.definition.displayName??c??`—`}),(0,K.jsx)(UE,{label:`Route`,icon:GE.route,children:d?(0,K.jsx)(Mf,{tone:d.viaGateway?`accent`:`ok`,children:d.badge}):`—`}),d?(0,K.jsx)(`div`,{className:`pb-1 text-[11px] leading-snug text-fg-faint`,children:d.detail}):null,(0,K.jsx)(UE,{label:`Model`,icon:GE.model,children:f.model??n.model??`—`}),(0,K.jsx)(UE,{label:`Permission mode`,icon:GE.permission,children:(0,K.jsx)(Mf,{children:n.permissionMode})})]}),(0,K.jsxs)(`div`,{className:`mb-2`,children:[(0,K.jsx)(WE,{label:`Context`,icon:GE.context}),f.contextUsed===null?(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-muted`,children:[yu(f.contextTokens),` tokens in the last turn (window unknown)`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(KE,{used:f.contextUsed}),(0,K.jsxs)(`div`,{className:`mt-1 text-[11px] text-fg-muted`,children:[yu(f.contextTokens),` / `,yu(f.contextWindow??0),` `,`tokens (`,Math.round(f.contextUsed*100),`%)`]})]}),(0,K.jsx)(UE,{label:`Context window`,icon:GE.window,children:(0,K.jsx)(`span`,{"data-testid":`context-window`,children:f.contextWindow?`${yu(f.contextWindow)} tokens`:`unknown`})}),(0,K.jsx)(UE,{label:`Compactions`,icon:GE.compactions,children:(0,K.jsx)(`span`,{"data-testid":`compaction-count`,children:p})})]}),(0,K.jsxs)(`div`,{className:`mb-2`,children:[(0,K.jsx)(WE,{label:`Usage`,icon:GE.usage}),(0,K.jsx)(UE,{label:`Tokens in`,icon:GE.tokensIn,children:yu(f.inputTokens)}),(0,K.jsx)(UE,{label:`Tokens out`,icon:GE.tokensOut,children:yu(f.outputTokens)}),f.credits===null?null:(0,K.jsx)(UE,{label:`Credits used`,icon:GE.usage,children:f.credits.toLocaleString(`en-US`,{maximumFractionDigits:2})}),(0,K.jsx)(UE,{label:`Duration`,icon:GE.duration,children:vu(f.durationMs)||`—`}),(0,K.jsx)(UE,{label:`Turns`,icon:GE.turns,children:f.turns})]}),(0,K.jsxs)(`div`,{className:`mb-2`,children:[(0,K.jsx)(WE,{label:`Session`,icon:GE.session}),(0,K.jsx)(UE,{label:`Status`,icon:GE.status,children:(0,K.jsx)(Mf,{tone:i?.status===`error`?`danger`:i?.status===`running`?`accent`:i?.status===`waiting_permission`?`warn`:`neutral`,children:i?.status??n.status})}),(0,K.jsx)(UE,{label:`Updated`,icon:GE.updated,children:bu(n.updatedAt)}),(0,K.jsx)(UE,{label:`Entries`,icon:GE.entries,children:n.entryCount}),(0,K.jsx)(UE,{label:`History mirror`,icon:GE.mirror,children:n.mirrored?`on`:`off`}),(0,K.jsx)(UE,{label:`Project`,icon:GE.project,children:(0,K.jsx)(`span`,{"data-testid":`session-project`,children:o?o.name:`—`})}),s?(0,K.jsx)(`div`,{className:`whitespace-pre-wrap break-words pb-1 text-[11px] leading-snug text-fg-faint`,"data-testid":`session-project-instructions`,children:s.length>300?`${s.slice(0,300)}\u2026`:s}):null,r?null:(0,K.jsx)(`button`,{type:`button`,className:`text-[11px] text-accent hover:underline`,onClick:()=>t.openAssignProject(n.id),"data-testid":`session-change-project`,children:o?`Move to another project…`:`Move to a project…`}),(0,K.jsx)(UE,{label:`Folder`,icon:GE.folder,children:n.projectDir?`project`:`own workspace`}),(0,K.jsx)(`div`,{className:`mt-1 break-all font-mono text-[10px] text-fg-faint`,"data-testid":`session-folder`,children:n.cwd}),r?null:(0,K.jsx)(`button`,{type:`button`,className:`mt-1 text-[11px] text-accent hover:underline`,onClick:()=>t.openDialog(`project`),"data-testid":`session-change-folder`,children:`Change folder…`})]}),i?.init?(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[`engine `,i.init.claudeCodeVersion,` · `,i.init.tools.length,` tools`]}):null]}):(0,K.jsx)(`div`,{className:`p-4 text-xs text-fg-faint`,children:`Open a chat to see its statistics.`})]})}function JE(e){let t=e=>e.type===`dir`?0:1;return[...e].sort((e,n)=>t(e)-t(n)||e.name.localeCompare(n.name))}function YE(e){let t=[];return e.target.type===`file`&&t.push({key:`open`,label:`Open`,icon:(0,K.jsx)(Y.File,{className:`w-3.5 h-3.5`}),onSelect:e.onOpen,testId:`files-menu-open`}),t.push({key:`copy-path`,label:`Copy path`,icon:(0,K.jsx)(Y.Copy,{className:`w-3.5 h-3.5`}),disabled:!e.canCopyPath,onSelect:e.onCopyPath,testId:`files-menu-copy-path`},{key:`copy-relative-path`,label:`Copy relative path`,icon:(0,K.jsx)(Y.Copy,{className:`w-3.5 h-3.5`}),onSelect:e.onCopyRelativePath,testId:`files-menu-copy-relative-path`}),!e.remote&&e.canDelete&&t.push({key:`delete`,label:`Delete…`,icon:(0,K.jsx)(Y.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:e.onDelete,testId:`files-menu-delete`}),t}function XE(e,t){return t instanceof Gc&&t.status===404&&/^no route for /.test(t.message)?`This host is too old to delete files — update it from the title bar.`:`Could not delete ${nC(e.path)}: ${t instanceof Error?t.message:String(t)}`}function ZE(){let{state:e,dispatch:t,actions:n,api:r}=q(),i=gf(),a=hf(),o=i?.id??null,s=o?e.remote.tabs[o]!==void 0:!1,c=a?.status===`running`||a?.status===`waiting_permission`,l=o?e.files[o]?.active??null:null,u=e.info?.platform??null,d=i?.cwd??``,[f,p]=(0,v.useState)({}),[m,h]=(0,v.useState)(()=>new Set),[g,_]=(0,v.useState)(!1),y=(0,v.useRef)(f);y.current=f;let b=(0,v.useRef)(m);b.current=m;let x=(0,v.useRef)(o);x.current=o;let S=(0,v.useRef)(e.files);S.current=e.files;let[C,w]=(0,v.useState)(null),T=(0,v.useCallback)(()=>w(null),[]),E=(0,v.useCallback)((e,t,n)=>w({target:e,at:t,el:n}),[]),[D,O]=(0,v.useState)(null),[k,A]=(0,v.useState)(!1),ee=(0,v.useCallback)(()=>O(null),[]),j=(0,v.useCallback)(async e=>{if(!o||!r.listSessionFiles)return;let t=o;p(t=>({...t,[e]:{...t[e]??{entries:null},loading:!0,error:null}}));try{let n=await r.listSessionFiles(t,e);if(x.current!==t)return;_(!1),p(t=>({...t,[e]:{entries:JE(n.entries),loading:!1,error:null}}))}catch(n){if(x.current!==t)return;Yc(n)&&_(!0);let r=n instanceof Error?n.message:String(n);p(t=>({...t,[e]:{entries:t[e]?.entries??null,loading:!1,error:r}}))}},[r,o]);(0,v.useEffect)(()=>{p({}),h(new Set),_(!1),w(null),O(null),o&&!s&&j(``)},[o,s,j]);let M=(0,v.useRef)(c);(0,v.useEffect)(()=>{if(M.current&&!c&&o&&!s)for(let e of Object.keys(y.current))(e===``||b.current.has(e))&&j(e);M.current=c},[c,o,s,j]);let te=e=>{h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),y.current[e]?.entries||j(e)),n})},ne=()=>{if(o){j(``);for(let e of m)j(e)}},N=(e,t)=>{NS(e).then(e=>n.toast(e?`success`:`error`,e?t:`Could not copy to the clipboard`))},P=async()=>{let e=D,i=o;if(!(!e||!i||!r.deleteSessionFile)){A(!0);try{await r.deleteSessionFile(i,e.path);for(let n of S.current[i]?.open??[])aC(n,e.path)&&t({type:`file_close`,sessionId:i,path:n});x.current===i&&(h(t=>new Set([...t].filter(t=>!aC(t,e.path)))),p(t=>Object.fromEntries(Object.entries(t).filter(([t])=>!aC(t,e.path)))),j(iC(e.path))),n.toast(`success`,`Deleted ${nC(e.path)}`)}catch(t){n.toast(`error`,XE(e,t)),x.current===i&&j(iC(e.path))}finally{A(!1),O(null)}}},re=C?YE({target:C.target,remote:s,canDelete:typeof r.deleteSessionFile==`function`,canCopyPath:d!==``,onOpen:()=>n.openFile(C.target.path),onCopyPath:()=>N(cC(d,C.target.path,u),`Path copied`),onCopyRelativePath:()=>N(sC(C.target.path,oC(d,u)),`Relative path copied`),onDelete:()=>O(C.target)}):[],ie=()=>void n.savePrefs({explorerOpen:!1}),ae=i?.cwd?nC(i.cwd)||i.cwd:`Files`,oe=f[``],se=C?.target.path??null,F=(0,v.useMemo)(()=>o?s?(0,K.jsx)($E,{children:`This chat runs on another PC; its files can be browsed there.`}):g?(0,K.jsx)($E,{children:`This host is too old to list files — update it from the title bar.`}):oe?.error&&!oe.entries?(0,K.jsx)($E,{tone:`danger`,children:oe.error}):oe?.entries?oe.entries.length===0?(0,K.jsx)($E,{children:`The folder is empty.`}):(0,K.jsx)(`ul`,{role:`tree`,"aria-label":`Workspace files`,className:`py-1`,children:(0,K.jsx)(nD,{rel:``,depth:0,tree:f,expanded:m,activeFile:l,menuPath:se,onToggle:te,onOpen:e=>n.openFile(e),onMenu:E})}):(0,K.jsx)($E,{children:`Listing…`}):(0,K.jsx)($E,{children:`Open a chat to browse the folder it works in.`}),[o,s,g,oe,f,m,l,se,n]);return(0,K.jsxs)(`aside`,{className:`flex w-64 shrink-0 flex-col border-r border-border bg-surface`,"aria-label":`Files`,"data-testid":`file-explorer`,children:[(0,K.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-semibold uppercase tracking-wide text-fg-muted`,title:i?.cwd??void 0,children:ae}),(0,K.jsx)(Of,{label:`Refresh files`,className:`p-1`,onClick:ne,disabled:!o||s,"data-testid":`file-explorer-refresh`,children:(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`})}),(0,K.jsx)(Of,{label:`Hide files`,className:`p-1`,onClick:ie,children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]}),(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:F}),(0,K.jsx)(Sw,{open:C!==null,at:C?.at??{x:0,y:0},anchorEl:C?.el??null,label:`File actions`,testId:`files-context-menu`,onClose:T,items:re}),(0,K.jsx)(QE,{target:D,absolute:D?d?cC(d,D.path,u):D.path:``,platform:u,busy:k,onConfirm:()=>void P(),onClose:ee})]})}function QE({target:e,absolute:t,platform:n,busy:r,onConfirm:i,onClose:a}){let o=e?.type===`dir`;return(0,K.jsx)(Nf,{open:e!==null,title:o?`Delete this folder?`:`Delete this file?`,onClose:a,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:a,disabled:r,"data-testid":`files-delete-cancel`,children:`Cancel`}),(0,K.jsx)(X,{variant:`danger`,busy:r,onClick:i,"data-testid":`files-delete-confirm`,children:`Delete permanently`})]}),children:(0,K.jsxs)(`div`,{className:`space-y-2 text-sm text-fg-muted`,"data-testid":`files-delete-dialog`,children:[(0,K.jsx)(`p`,{className:`break-all rounded bg-surface-2 px-2 py-1 font-mono text-xs text-fg`,children:t}),(0,K.jsxs)(`p`,{children:[o?`This folder and everything inside it will be deleted from the disk permanently.`:`This file will be deleted from the disk permanently.`,` `,`It does not go to the `,n===`win32`?`Recycle Bin`:`Trash`,`, and it cannot be undone.`]})]})})}function $E({children:e,tone:t}){return(0,K.jsx)(`div`,{className:W(`p-4 text-xs`,t===`danger`?`text-danger`:`text-fg-faint`),children:e})}function eD(e){let t=e.getBoundingClientRect();return{x:t.left+24,y:t.bottom}}function tD(e,t){return{onContextMenu:n=>{n.preventDefault();let r=n.currentTarget;t(e,n.clientX===0&&n.clientY===0?eD(r):{x:n.clientX,y:n.clientY},r)},onKeyDown:n=>{(n.key===`ContextMenu`||n.shiftKey&&n.key===`F10`)&&(n.preventDefault(),t(e,eD(n.currentTarget),n.currentTarget))}}}function nD({rel:e,depth:t,tree:n,expanded:r,activeFile:i,menuPath:a,onToggle:o,onOpen:s,onMenu:c}){let l=n[e];return l?l.error&&!l.entries?(0,K.jsx)(`li`,{className:`px-2 py-1 text-[11px] text-danger`,style:{paddingLeft:`${.5+t*.75}rem`},children:l.error}):l.entries?(0,K.jsx)(K.Fragment,{children:l.entries.map(l=>{let u=rC(e,l.name),d=a===u;if(l.type===`dir`){let e=r.has(u);return(0,K.jsxs)(`li`,{role:`treeitem`,"aria-expanded":e,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>o(u),...tD({path:u,type:`dir`},c),"data-testid":`explorer-dir-${u}`,className:W(`flex w-full items-center gap-1 py-0.5 pr-2 text-left text-xs text-fg hover:bg-surface-2`,d&&`bg-surface-2`),style:{paddingLeft:`${.5+t*.75}rem`},children:[(0,K.jsx)(Y.ChevronRight,{className:W(`w-3 h-3 shrink-0 text-fg-faint transition-transform`,e&&`rotate-90`)}),(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,K.jsx)(`span`,{className:`truncate`,children:l.name})]}),e?(0,K.jsx)(`ul`,{role:`group`,children:(0,K.jsx)(nD,{rel:u,depth:t+1,tree:n,expanded:r,activeFile:i,menuPath:a,onToggle:o,onOpen:s,onMenu:c})}):null]},u)}let f=i===u;return(0,K.jsx)(`li`,{role:`treeitem`,"aria-selected":f,children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>s(u),...tD({path:u,type:l.type},c),disabled:l.type!==`file`,"data-testid":`explorer-file-${u}`,title:`${u} · ${DC(l.size)}`,className:W(`flex w-full items-center gap-1 py-0.5 pr-2 text-left text-xs hover:bg-surface-2 disabled:opacity-50`,f?`bg-accent-soft text-accent`:d?`bg-surface-2 text-fg`:`text-fg`),style:{paddingLeft:`${.5+t*.75+.9}rem`},children:[(0,K.jsx)(Y.File,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:l.name}),(0,K.jsx)(`span`,{className:`shrink-0 text-[10px] text-fg-faint`,children:DC(l.size)})]})},u)})}):(0,K.jsx)(`li`,{className:`px-2 py-1 text-[11px] text-fg-faint`,style:{paddingLeft:`${.5+t*.75}rem`},children:`Listing…`}):null}var rD=524288,iD={shown:null,bytes:0,pixels:null,error:null,loading:!1},aD=[{value:`source`,label:`Source`},{value:`preview`,label:`Preview`}],oD=`preview`;function sD(){let{state:e,actions:t,api:n}=q(),r=hf(),i=e.currentSessionId,a=i?e.files[i]:void 0,o=a?.active??null,s=r?.status===`running`||r?.status===`waiting_permission`,[c,l]=(0,v.useState)({sessionId:i,files:{}}),u=c.sessionId===i?c.files:{},[d,f]=(0,v.useState)(oD),p=e=>{oD=e,f(e)},m=(0,v.useRef)(i);m.current=i;let h=(e,t,n)=>l(r=>{let i=r.sessionId===e?r.files:{};return{sessionId:e,files:{...i,[t]:n(i[t]??iD)}}}),g=async e=>{if(!i)return;let t=i;h(t,e,e=>({...e,loading:!0,error:null}));try{let r=await cD(n,t,e);if(m.current!==t)return;h(t,e,e=>{let t=e.shown!==null&&dD(e.shown,r.shown);return{shown:t?e.shown:r.shown,bytes:r.bytes,pixels:t?e.pixels:null,error:null,loading:!1}})}catch(n){if(m.current!==t)return;let r=n instanceof Error?n.message:String(n);h(t,e,e=>({...e,error:r,loading:!1}))}},_=(e,t,n)=>{if(!i||t<=0||n<=0)return;let r=i;l(i=>{let a=i.sessionId===r?i.files[e]:void 0;return!a||a.pixels?.w===t&&a.pixels.h===n?i:{...i,files:{...i.files,[e]:{...a,pixels:{w:t,h:n}}}}})},y=JSON.stringify(a?.open??[]);(0,v.useEffect)(()=>{let e=new Set(JSON.parse(y));l(t=>{let n=Object.keys(t.files).filter(t=>e.has(t));return n.length===Object.keys(t.files).length?t:{...t,files:Object.fromEntries(n.map(e=>[e,t.files[e]]))}})},[y]);let b=(0,v.useRef)(s);if((0,v.useEffect)(()=>{let e=b.current&&!s;b.current=s,o&&(e||!u[o])&&g(o)},[o,s,i]),!i||!a||!o)return null;let x=u[o],S=x?.shown??null,C=S?.kind===`text`&&S.markdown;return(0,K.jsxs)(`section`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-bg`,"aria-label":`File viewer`,"data-testid":`file-viewer`,children:[(0,K.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-2 border-b border-border px-3 font-mono text-[11px] text-fg-faint`,children:[(0,K.jsx)(Y.File,{className:`w-3.5 h-3.5 shrink-0`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:o,children:o}),x?.pixels?(0,K.jsxs)(`span`,{className:`shrink-0`,"data-testid":`file-viewer-pixels`,children:[x.pixels.w,` × `,x.pixels.h]}):null,S?(0,K.jsx)(`span`,{className:`shrink-0`,children:DC(x.bytes)}):null,C?(0,K.jsx)(`span`,{className:`shrink-0 font-sans`,children:(0,K.jsx)(Ff,{label:`Markdown view`,value:d,options:aD,onChange:p})}):null,(0,K.jsx)(`span`,{className:`shrink-0 rounded bg-surface-2 px-1 text-[10px] uppercase tracking-wide`,children:`read-only`}),(0,K.jsx)(Of,{label:`Re-read this file`,className:`p-1`,onClick:()=>void g(o),"data-testid":`file-viewer-refresh`,children:(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`})}),(0,K.jsx)(Of,{label:`Back to the chat`,className:`p-1`,onClick:()=>t.showChat(),"data-testid":`file-viewer-back`,children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]}),(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto px-3 py-2`,"data-testid":`file-viewer-body`,children:(0,K.jsx)(fD,{path:o,loaded:x,markdownMode:d,onPixels:(e,t)=>_(o,e,t)},`${i}\n${o}`)})]})}async function cD(e,t,n){let r=hC(n),i=e.readSessionFileBytes?async()=>new Uint8Array(await e.readSessionFileBytes(t,n)):null;if(i&&r.mime!==null){let e=await i();return{shown:lD(r.kind,r.mime,e),bytes:e.byteLength}}if(i&&r.kind===`unknown`)return uD(await i(),!1);if(!e.readSessionFile)throw Error(`This host cannot read files — update it.`);let a=await e.readSessionFile(t,n),o=r.kind===`markdown`;return wC(a)?i?uD(await i(),o):{shown:{kind:`binary`},bytes:a.length}:{shown:{kind:`text`,text:a,markdown:o},bytes:a.length}}function lD(e,t,n){return e===`pdf`?{kind:`pdf`}:{kind:e,blob:new Blob([n],{type:t}),digest:EC(n)}}function uD(e,t){let n=xC(e);if(n)return{shown:lD(n.kind,n.mime,e),bytes:e.length};let r=TC(e);return{shown:r===null?{kind:`binary`}:{kind:`text`,text:r,markdown:t},bytes:e.length}}function dD(e,t){return`digest`in e&&`digest`in t&&e.kind===t.kind&&e.digest===t.digest}function fD({path:e,loaded:t,markdownMode:n,onPixels:r}){if(!t||t.loading&&t.shown===null)return(0,K.jsx)(pD,{children:`Reading…`});if(t.error&&t.shown===null)return(0,K.jsx)(pD,{tone:`danger`,testId:`file-viewer-error`,children:t.error});let i=t.shown;if(!i)return null;let a=nC(e),o=DC(t.bytes);switch(i.kind){case`image`:return(0,K.jsx)(_D,{blob:i.blob,name:a,onPixels:r},i.digest);case`audio`:case`video`:return(0,K.jsx)(vD,{kind:i.kind,blob:i.blob,name:a,size:o},i.digest);case`pdf`:return(0,K.jsxs)(pD,{testId:`file-viewer-pdf`,children:[a,` is a PDF document (`,o,`). The viewer cannot show PDF files — copy its path from the file list to open it in a PDF reader.`]});case`binary`:return(0,K.jsxs)(pD,{testId:`file-viewer-binary`,children:[a,` is not a text file (`,o,`), and not a picture or a clip the viewer can show.`]});case`text`:return(0,K.jsx)(mD,{path:e,text:i.text,markdown:i.markdown,mode:n})}}function pD({children:e,tone:t,testId:n}){return(0,K.jsx)(`div`,{className:t===`danger`?`py-4 text-xs text-danger`:`py-4 text-xs text-fg-faint`,"data-testid":n,children:e})}function mD({path:e,text:t,markdown:n,mode:r}){let i=t.length>rD,a=i?t.slice(0,rD):t;return(0,K.jsxs)(K.Fragment,{children:[n&&r===`preview`?(0,K.jsx)(`div`,{className:`max-w-3xl py-2 text-sm`,"data-testid":`file-viewer-markdown`,children:(0,K.jsx)(zS,{text:a})}):(0,K.jsx)(FS,{code:a,language:pC(e)}),i?(0,K.jsxs)(`div`,{className:`pb-2 text-[11px] text-fg-faint`,children:[`Showing the first `,DC(rD),` of `,DC(t.length),`.`]}):null]})}function hD(e){let[t,n]=(0,v.useState)(null);return(0,v.useEffect)(()=>{let t=URL.createObjectURL(e);return n(t),()=>URL.revokeObjectURL(t)},[e]),t}var gD={backgroundImage:`repeating-conic-gradient(rgb(128 128 128 / 0.22) 0% 25%, transparent 0% 50%)`,backgroundSize:`16px 16px`};function _D({blob:e,name:t,onPixels:n}){let r=hD(e),[i,a]=(0,v.useState)(!1);return i?(0,K.jsxs)(pD,{testId:`file-viewer-image-error`,children:[t,` could not be drawn — it may be damaged, or not the kind of picture its name says.`]}):r?(0,K.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,K.jsx)(`img`,{src:r,alt:t,draggable:!1,"data-testid":`file-viewer-image`,className:`block max-h-full max-w-full object-contain`,style:gD,onLoad:e=>n(e.currentTarget.naturalWidth,e.currentTarget.naturalHeight),onError:()=>a(!0)})}):null}function vD({kind:e,blob:t,name:n,size:r}){let i=hD(t),[a,o]=(0,v.useState)(null);if((0,v.useEffect)(()=>{let e=e=>{e.effectiveDirective===`media-src`&&e.blockedURI.startsWith(`blob`)&&o(`policy`)};return document.addEventListener(`securitypolicyviolation`,e),()=>document.removeEventListener(`securitypolicyviolation`,e)},[]),a)return(0,K.jsx)(pD,{testId:`file-viewer-media-error`,children:a===`policy`?`${n} (${r}) cannot be played in this window: its security policy does not allow audio or video yet.`:`${n} (${r}) cannot be played here: its format or codec is not one Chromium plays.`});if(!i)return null;let s=()=>o(e=>e??`format`);return e===`audio`?(0,K.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,K.jsx)(`audio`,{src:i,controls:!0,preload:`metadata`,onError:s,"data-testid":`file-viewer-audio`,className:`w-full max-w-xl`})}):(0,K.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,K.jsx)(`video`,{src:i,controls:!0,preload:`metadata`,onError:s,"data-testid":`file-viewer-video`,className:`block max-h-full max-w-full bg-black`})})}var yD=[{id:`general`,label:`General`,icon:Y.Settings},{id:`theme`,label:`Theme`,icon:Y.Palette},{id:`advanced`,label:`Advanced`,icon:Y.Sliders},{id:`providers`,label:`Providers`,icon:Y.Plug},{id:`devices`,label:`Devices`,icon:Y.Monitor},{id:`host`,label:`Host`,icon:Y.Stethoscope}];function bD(e){let{allowedOrigins:t,telemetry:n,uiPrefs:r,...i}=e;return{...i,allowedOrigins:t.join(`
|
|
127
|
-
`)}}function xD(){let{state:e,actions:t}=q(),n=e.prefs,r=e.settings?.theme??`system`;return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(Pf,{label:`Auto-accept permissions`,hint:`Answer every permission request with Allow. Off by default — leave it off unless you fully trust the working directory.`,checked:n.autoAcceptPermissions,onChange:e=>void t.savePrefs({autoAcceptPermissions:e})}),(0,K.jsx)(Pf,{label:`Show reasoning summaries in the timeline`,hint:`Render the model's thinking blocks between messages.`,checked:n.showReasoningSummaries,onChange:e=>void t.savePrefs({showReasoningSummaries:e})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border py-3`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:`Colour scheme`}),(0,K.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:`System follows Windows' light/dark setting.`})]}),(0,K.jsx)(Ff,{label:`Colour scheme`,value:r,options:[{value:`system`,label:`System`},{value:`dark`,label:`Dark`},{value:`light`,label:`Light`}],onChange:e=>void t.saveSettings({theme:e})})]}),(0,K.jsxs)(`div`,{className:`border-t border-border pt-2`,children:[(0,K.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,K.jsx)(Y.Bell,{className:`w-3 h-3`}),` Notifications`]}),(0,K.jsx)(Pf,{label:`Agent finished or needs attention`,checked:n.notifications.agentFinished,onChange:e=>void t.savePrefs({notifications:{...n.notifications,agentFinished:e}})}),(0,K.jsx)(Pf,{label:`Permission or question waiting for you`,hint:`Includes the agent’s questions. With auto-accept on, those are the only prompts that still wait for you.`,checked:n.notifications.permissionRequired,onChange:e=>void t.savePrefs({notifications:{...n.notifications,permissionRequired:e}})}),(0,K.jsx)(Pf,{label:`Error occurred`,checked:n.notifications.errorOccurred,onChange:e=>void t.savePrefs({notifications:{...n.notifications,errorOccurred:e}})})]}),e.prefsBackend===`local`?(0,K.jsx)(`div`,{className:`mt-2 rounded-md bg-warn-soft px-3 py-2 text-xs text-warn`,children:`This host does not store UI preferences yet, so they are kept on this device only.`}):null]})}function SD(e){let t=e.replace(/-/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)}function CD(e){let t={};if(typeof document>`u`||typeof getComputedStyle!=`function`)return t;let n=document.documentElement,r=n.getAttribute(`data-theme`),i=[];for(let e of qs){let t=n.style.getPropertyValue(`--${e}`);t&&i.push([e,t]),n.style.removeProperty(`--${e}`)}n.setAttribute(`data-theme`,e);let a=getComputedStyle(n);for(let e of qs){let n=a.getPropertyValue(`--${e}`).trim();t[e]=/^#[0-9a-fA-F]{6}$/.test(n)?n.toLowerCase():`#808080`}r===null?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r);for(let[e,t]of i)n.style.setProperty(`--${e}`,t);return t}function wD(){let{state:e,actions:t}=q(),n=e.prefs,[r,i]=(0,v.useState)(`dark`),a=(0,v.useMemo)(()=>CD(r),[r]),[o,s]=(0,v.useState)({}),c=(0,v.useRef)(o);c.current=o;let l=(0,v.useRef)(n.themeColors);l.current=n.themeColors;let u=(0,v.useRef)(null),d=()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)};(0,v.useEffect)(()=>d,[]);let f=e=>{d();let n=c.current;Object.keys(n).length!==0&&(s({}),t.savePrefs({themeColors:{...l.current,[e]:{...l.current[e],...n}}}))},p=(e,t)=>{s(n=>({...n,[e]:t})),c.current={...c.current,[e]:t},d(),u.current=window.setTimeout(()=>f(r),300)},m={...l.current[r],...o},h=Object.keys(m).length,g=e=>{d(),s({});let n={...m};delete n[e],t.savePrefs({themeColors:{...l.current,[r]:n}})};return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:`Theme colours`}),(0,K.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-faint`,children:`Choose any colour for any element. A colour you do not choose keeps the theme's own value. Your colours follow your account to every PC.`})]}),(0,K.jsx)(Ff,{label:`Edit colour scheme`,value:r,options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}],onChange:e=>{f(r),i(e)}})]}),(0,K.jsx)(`div`,{className:`grid grid-cols-1 gap-x-4 sm:grid-cols-2`,children:qs.map(e=>{let t=m[e]!==void 0,n=m[e]??a[e]??`#808080`;return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-border py-1.5`,"data-testid":`theme-color-row-${r}-${e}`,children:[(0,K.jsx)(`input`,{type:`color`,className:`h-6 w-9 shrink-0 cursor-pointer rounded border border-border bg-transparent p-0.5`,value:n,onChange:t=>p(e,t.target.value),"aria-label":`${SD(e)} colour (${r} scheme)`,"data-testid":`theme-color-${r}-${e}`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-fg-muted`,children:SD(e)}),(0,K.jsx)(`span`,{className:`w-16 shrink-0 text-right font-mono text-[10px] text-fg-faint`,children:t?m[e]:`default`}),t?(0,K.jsx)(Of,{label:`Reset ${SD(e)} to the theme colour`,className:`p-0.5`,"data-testid":`theme-color-clear-${r}-${e}`,onClick:()=>g(e),children:(0,K.jsx)(Y.Refresh,{className:`w-3 h-3`})}):null]},e)})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-2`,children:[(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,"data-testid":`theme-colors-count`,children:h===0?`No custom colours in the ${r} scheme.`:`${h} custom colour${h===1?``:`s`} in the ${r} scheme.`}),(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{d(),s({}),t.savePrefs({themeColors:{...l.current,[r]:{}}})},disabled:h===0,"data-testid":`theme-reset-${r}`,children:`Reset all`})]})]})}function TD(){let{state:e,actions:t}=q(),n=e.prefs,[r,i]=(0,v.useState)(String(n.transcriptWindowSize));return(0,v.useEffect)(()=>i(String(n.transcriptWindowSize)),[n.transcriptWindowSize]),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(Pf,{label:`Show the agent picker in the composer`,hint:`When hidden, new messages go to the default Build agent.`,checked:n.showAgentPicker,onChange:e=>void t.savePrefs({showAgentPicker:e})}),(0,K.jsx)(`div`,{className:`border-t border-border pt-3`,children:(0,K.jsx)(kf,{label:`Transcript window size`,hint:`How many transcript lines stay rendered — older ones are dropped from the top like a stack. Scrolling to the top reveals 100 more. 100–${Ks}, default 500.`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{className:W(Af,`w-32`),type:`number`,min:100,max:Ks,step:100,value:r,onChange:e=>i(e.target.value),onBlur:()=>{let e=Number.parseInt(r,10);Number.isFinite(e)&&t.savePrefs({transcriptWindowSize:e})},"aria-label":`Transcript window size`}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:`lines`})]})})})]})}function ED(){let{state:e,actions:t}=q(),n=(0,v.useMemo)(()=>gs(e.providers),[e.providers]);return(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[n.length===0?(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`No providers in the registry.`}):null,n.map(n=>{let r=n.definition,i=e.activeProviderId===r.id,a=hs(e.providers,r.id),o=a.some(e=>e.configured),s=[...new Set(a.flatMap(e=>(e.credentials??[]).map(e=>e.class)))].filter(e=>e!==`none`);return(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,"data-testid":`provider-${r.id}`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:r.displayName}),i?(0,K.jsx)(Mf,{tone:`accent`,children:`active`}):null,r.route===`direct`?(0,K.jsx)(Mf,{tone:`ok`,children:`direct`}):null,s.length>0?s.map(e=>(0,K.jsxs)(Mf,{tone:`ok`,children:[e===`subscription`?`subscription`:`API key`,` connected`]},e)):o?(0,K.jsx)(Mf,{tone:`ok`,children:`connected`}):(0,K.jsx)(Mf,{tone:`warn`,children:`not connected`})]}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[r.models.length,` model`,r.models.length===1?``:`s`,r.credentialVariants?.length?` · ${r.credentialVariants.map(e=>e.label).join(` / `)}`:``]})]}),(0,K.jsxs)(X,{size:`sm`,variant:o?`secondary`:`primary`,onClick:()=>t.openProviderConnect(r.id),children:[(0,K.jsx)(Y.Plus,{className:`w-3 h-3`}),` `,o?`Manage…`:`Connect`]})]},r.id)})]})}function DD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(``);return(0,v.useEffect)(()=>{t.refreshHosts()},[t]),e.account?.loggedIn?e.remote.supported?(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[e.remote.loading?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-4 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{}),` Loading devices…`]}):null,e.remote.hosts.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,children:[(0,K.jsx)(Y.Monitor,{className:`w-4 h-4 shrink-0 text-fg-faint`}),(0,K.jsx)(`div`,{className:`min-w-0 flex-1`,children:n===e.hostId?(0,K.jsx)(`input`,{className:Af,value:i,autoFocus:!0,"aria-label":`Label for ${e.hostName}`,onChange:e=>a(e.target.value),onKeyDown:n=>{n.key===`Enter`&&i.trim()?(t.renameHost(e.hostId,i.trim()),r(null)):n.key===`Escape`&&r(null)}}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium`,children:[e.label||e.hostName,e.isSelf?(0,K.jsx)(Mf,{tone:`accent`,children:`this PC`}):null,(0,K.jsx)(Mf,{tone:e.online?`ok`:`neutral`,children:e.online?`online`:`offline`})]}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[e.platform,e.appVersion?` · v${e.appVersion}`:``,e.lastSeenAt?` · seen ${bu(e.lastSeenAt)}`:``]})]})}),n===e.hostId?(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>{i.trim()&&t.renameHost(e.hostId,i.trim()),r(null)},children:`Save`}):(0,K.jsxs)(X,{size:`sm`,onClick:()=>{r(e.hostId),a(e.label||e.hostName)},children:[(0,K.jsx)(Y.Edit,{className:`w-3 h-3`}),` Rename`]})]},e.hostId)),!e.remote.loading&&e.remote.hosts.length===0?(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`No devices reported yet.`}):null]}):(0,K.jsxs)(`div`,{className:`rounded-md border border-border px-3 py-3 text-sm text-fg-muted`,children:[`This host build cannot list your account's devices yet (the relay lands with the server phase). This PC is `,(0,K.jsx)(`strong`,{children:e.connection.hostName??`unknown`}),`.`]}):(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`Sign in to see the devices on your account.`})}function OD({draft:e,set:t}){let n=e=>e.trim()?e.trim():null;return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(kf,{label:`Default permission mode`,children:(0,K.jsx)(`select`,{className:jf,value:e.defaultPermissionMode,onChange:e=>t(`defaultPermissionMode`,e.target.value),children:rE.map(e=>(0,K.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),(0,K.jsx)(kf,{label:`Default working directory`,hint:`Pre-filled when a new chat needs a folder.`,children:(0,K.jsx)(`input`,{className:Af,value:e.defaultCwd??``,onChange:e=>t(`defaultCwd`,n(e.target.value)),placeholder:`D:\\projects`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Gateway URL`,hint:`Your OonaCode server: the account, the pooled models it bills in credits, and the update feed. Your own keys and subscriptions never go through it.`,children:(0,K.jsx)(`input`,{className:Af,value:e.gatewayUrl??``,onChange:e=>t(`gatewayUrl`,n(e.target.value)),placeholder:x,spellCheck:!1})}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.mirrorHistory,onChange:e=>t(`mirrorHistory`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Mirror session history to my account`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Encrypted on this PC with your vault key before upload; the server only stores ciphertext. Lets you browse history from other devices even when this PC is offline.`})]})]}),(0,K.jsx)(AD,{}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.relayEnabled??!0,onChange:e=>t(`relayEnabled`,e.target.checked),"data-testid":`settings-relay`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Remote access — let my other devices reach this PC`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Keeps an outbound, end-to-end encrypted channel to the gateway while you are signed in and the vault is unlocked, so a session that runs here can be continued from your other PCs and the website. On by default; off means history only.`})]})]}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.keepUnlockedOnExit??!1,onChange:e=>t(`keepUnlockedOnExit`,e.target.checked),"data-testid":`settings-keep-unlocked-exit`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Keep the vault unlocked when the app closes`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Off by default (owner, 2026-08-30): closing the desktop app locks this device — chats close and keys become unreadable until you unlock. Turn this on to leave the vault open on exit, e.g. on a PC only you use.`})]})]}),(0,K.jsx)(kf,{label:`Git Bash path (Windows)`,hint:`Custom bash.exe for the engine (writes CLAUDE_CODE_GIT_BASH_PATH for the agent process only).`,children:(0,K.jsx)(`input`,{className:Af,value:e.gitBashPath??``,onChange:e=>t(`gitBashPath`,n(e.target.value)),placeholder:`C:\\Program Files\\Git\\bin\\bash.exe`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Claude engine binary override`,hint:`Leave empty to use the bundled, pinned engine.`,children:(0,K.jsx)(`input`,{className:Af,value:e.claudeBinaryOverride??``,onChange:e=>t(`claudeBinaryOverride`,n(e.target.value)),placeholder:`C:\\path\\to\\claude.exe`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Extra allowed origins`,hint:`One per line. Loopback is always allowed; everything else is rejected by the host.`,children:(0,K.jsx)(`textarea`,{className:Af,rows:3,value:e.allowedOrigins,onChange:e=>t(`allowedOrigins`,e.target.value),spellCheck:!1})}),(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`Telemetry: off (not configurable — OonaCode never sends usage data).`})]})}function kD({open:e,onClose:t}){let{state:n,actions:r}=q(),[i,a]=(0,v.useState)(`general`),o=n.ui.settingsSection;(0,v.useEffect)(()=>{e&&o&&a(o)},[e,o]);let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(!e){c(null);return}if(!n.settings){r.refreshSettings();return}let t=n.settings;c(e=>e??bD(t))},[e,n.settings,r]);let d=(e,t)=>c(n=>n&&{...n,[e]:t}),f=async()=>{if(s){u(!0);try{await r.saveSettings({defaultPermissionMode:s.defaultPermissionMode,defaultCwd:s.defaultCwd,mirrorHistory:s.mirrorHistory,relayEnabled:s.relayEnabled??!0,keepUnlockedOnExit:s.keepUnlockedOnExit??!1,gitBashPath:s.gitBashPath,claudeBinaryOverride:s.claudeBinaryOverride,gatewayUrl:s.gatewayUrl,theme:s.theme,allowedOrigins:s.allowedOrigins.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),telemetry:!1}),t()}finally{u(!1)}}};return(0,K.jsx)(Nf,{open:e,title:`Settings`,onClose:t,wide:!0,footer:i===`host`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,busy:l,disabled:!s,onClick:()=>void f(),children:`Save`})]}):(0,K.jsx)(X,{onClick:t,children:`Done`}),children:(0,K.jsxs)(`div`,{className:`flex min-h-[22rem] gap-4`,children:[(0,K.jsxs)(`nav`,{className:`w-36 shrink-0 space-y-0.5`,"aria-label":`Settings sections`,children:[yD.map(e=>{let t=e.icon;return(0,K.jsxs)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-current":i===e.id?`true`:void 0,className:W(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,i===e.id?`bg-accent-soft font-medium text-accent`:`text-fg-muted hover:bg-surface-2`),children:[(0,K.jsx)(t,{className:`w-3.5 h-3.5`}),e.label]},e.id)}),(0,K.jsxs)(`div`,{className:`pt-3 text-[11px] text-fg-faint`,children:[`OonaCode Desktop v`,Fd(typeof window<`u`&&window.oonacode?.appVersion||n.connection.appVersion||`0.0.0`,Pd({bridge:typeof window<`u`?window.oonacode:void 0,info:n.info}))]})]}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[i===`general`?(0,K.jsx)(xD,{}):null,i===`theme`?(0,K.jsx)(wD,{}):null,i===`advanced`?(0,K.jsx)(TD,{}):null,i===`providers`?(0,K.jsx)(ED,{}):null,i===`devices`?(0,K.jsx)(DD,{}):null,i===`host`?s?(0,K.jsx)(OD,{draft:s,set:d}):(0,K.jsx)(`div`,{className:`py-6 text-sm text-fg-muted`,children:`Loading settings…`}):null]})]})})}function AD(){let{api:e,state:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(0),f=t.sessionsTotal||t.sessions.length;(0,v.useEffect)(()=>{if(!i){d(0);return}let e=Date.now(),t=setInterval(()=>d(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[i]);let p=async()=>{if(!e.exportSessionsArchive){s(`this PC is running an older OonaCode that cannot export chats`);return}a(!0),s(null);try{let t=await e.exportSessionsArchive(n),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=`oonacode-chats-${new Date().toISOString().slice(0,10)}.zip`,a.click(),URL.revokeObjectURL(i),r(``),l(!1)}catch(e){s(e instanceof Error?e.message:`the export failed`)}finally{a(!1)}};return(0,K.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,K.jsx)(Nf,{open:i,title:`Exporting your chats`,onClose:()=>void 0,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(Y.Spinner,{className:`mt-0.5 w-5 h-5 shrink-0 text-accent`}),(0,K.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[(0,K.jsxs)(`div`,{className:`font-medium`,children:[`Packing`,` `,f>0?`${f} chat${f===1?``:`s`}`:`your chats`,`…`]}),(0,K.jsxs)(`div`,{className:`mt-1 tabular text-fg-muted`,children:[Math.floor(u/60),`:`,String(u%60).padStart(2,`0`),` elapsed`]}),(0,K.jsx)(`p`,{className:`mt-2 text-xs text-fg-faint`,children:`Your PC writes the whole archive before the download starts, so nothing appears in your downloads until it is finished. A long history can take a minute or two — this is normal, and you do not need to press anything again.`})]})]})}),(0,K.jsx)(`div`,{className:`text-sm font-medium`,children:`Export my chats`}),(0,K.jsxs)(`p`,{className:`mt-1 text-xs text-fg-faint`,children:[`One zip with a plain `,(0,K.jsx)(`code`,{children:`.txt`}),` of every conversation on this PC, plus an index. It is for reading and copying from — there is no way to load it back in.`]}),(0,K.jsx)(`p`,{className:`mt-1 text-xs text-warn`,children:`The zip is not encrypted: anyone who opens it can read every conversation in it.`}),c?(0,K.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`password`,autoFocus:!0,className:Af+` max-w-[16rem]`,placeholder:`Account password`,value:n,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&n&&p()},"data-testid":`export-chats-password`}),(0,K.jsx)(X,{onClick:()=>void p(),disabled:i||!n,children:i?`Exporting…`:`Export`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>{l(!1),r(``),s(null)},children:`Cancel`})]}):(0,K.jsx)(X,{className:`mt-2`,onClick:()=>l(!0),"data-testid":`export-chats`,children:`Export chats…`}),o?(0,K.jsx)(`div`,{className:`mt-2 text-xs text-danger`,children:o}):null]})}function jD({toast:e}){let{actions:t}=q();(0,v.useEffect)(()=>{let n=setTimeout(()=>t.dismissToast(e.id),e.kind===`error`?9e3:5e3);return()=>clearTimeout(n)},[e.id,e.kind,t]);let n=e.kind===`error`?`border-danger/50 bg-danger-soft text-danger`:e.kind===`success`?`border-ok/50 bg-ok-soft text-ok`:`border-border bg-surface text-fg`;return(0,K.jsxs)(`div`,{role:e.kind===`error`?`alert`:`status`,className:W(`pointer-events-auto flex max-w-sm items-start gap-2 rounded-md border px-3 py-2 text-sm shadow-md`,n),children:[e.kind===`error`?(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4`}):e.kind===`success`?(0,K.jsx)(Y.Check,{className:`mt-0.5 w-4 h-4`}):null,(0,K.jsx)(`div`,{className:`pre-wrap min-w-0 flex-1`,children:e.text}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`opacity-60 hover:opacity-100`,onClick:()=>t.dismissToast(e.id),children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]})}function MD(){let{state:e}=q();return e.toasts.length===0?null:(0,K.jsx)(`div`,{className:`pointer-events-none fixed bottom-4 right-4 z-50 flex flex-col gap-2`,children:e.toasts.map(e=>(0,K.jsx)(jD,{toast:e},e.id))})}var ND=2e3;function PD(e){if(!FD(e))return;let t=typeof window<`u`?window.oonacode:void 0;if(t?.openExternal){t.openExternal(e).catch(()=>void 0);return}typeof window<`u`&&window.open(e,`_blank`,`noopener,noreferrer`)}function FD(e){if(typeof e!=`string`||e===``)return!1;try{let{protocol:t}=new URL(e);return t===`http:`||t===`https:`}catch{return!1}}function ID(e){if(e.message)return e.message;switch(e.status){case`denied`:return`That request was denied in the browser. Start again if it was you.`;case`expired`:return`The code expired before it was approved. Start again for a fresh one.`;default:return`The sign-in could not be started. Check that this PC can reach the gateway.`}}function LD({children:e,testId:t}){let{state:n}=q(),r=n.connection.hostName??n.info?.hostName??null;return(0,K.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,"data-testid":t,children:[(0,K.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface px-3`,children:[(0,K.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),r?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-fg-faint`,children:`/`}),(0,K.jsx)(`span`,{className:`truncate text-sm text-fg-muted`,"data-testid":`frame-host-name`,children:r})]}):null]}),(0,K.jsx)(`main`,{className:`flex min-h-0 flex-1 items-start justify-center overflow-y-auto p-6`,children:(0,K.jsx)(`div`,{className:`w-full max-w-md py-6`,children:e})}),(0,K.jsx)(MD,{})]})}function RD(){return(0,K.jsx)(LD,{testId:`account-loading`,children:(0,K.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{className:`w-4 h-4`}),(0,K.jsx)(`span`,{children:`Checking your account…`})]})})}function zD({link:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(!1),i=e.verificationUrl??``,a=e.verificationUrlComplete??i,o=FD(a),s=t.refreshAccountLink;return(0,v.useEffect)(()=>{let e=setInterval(()=>void s(),ND);return()=>clearInterval(e)},[s]),(0,K.jsxs)(`div`,{className:`space-y-3`,"data-testid":`link-waiting`,children:[(0,K.jsxs)(`ol`,{className:`space-y-2 text-sm`,children:[(0,K.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`1. Open`}),o?(0,K.jsx)(`a`,{className:`break-all font-medium text-accent underline`,href:a,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`link-url`,onClick:e=>{window.oonacode?.openExternal&&(e.preventDefault(),PD(a))},children:i}):(0,K.jsx)(`span`,{className:`break-all font-medium`,"data-testid":`link-url`,children:i})]}),(0,K.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`2. Enter`}),(0,K.jsx)(`span`,{className:`select-all rounded-md border border-border bg-surface-2 px-2.5 py-1 font-mono text-base tracking-widest`,"data-testid":`link-user-code`,children:e.userCode})]})]}),(0,K.jsxs)(`p`,{className:`flex items-center gap-2 text-xs text-fg-muted`,role:`status`,children:[(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{children:`Waiting for approval in your browser…`})]}),(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,children:`Approve this code only if you are looking at it on your own screen right now. It is good for a few minutes and can be used once.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[o?(0,K.jsxs)(X,{size:`sm`,onClick:()=>PD(a),"data-testid":`link-reopen`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),` Open the browser again`]}):null,(0,K.jsx)(X,{size:`sm`,variant:`ghost`,busy:n,"data-testid":`link-cancel`,onClick:()=>{r(!0),t.cancelAccountLink().finally(()=>r(!1))},children:`Cancel`})]})]})}function BD(e){if(typeof e!=`string`||e===``)return null;try{let t=new URL(e).hostname;if(!t)return null;let n=/^api(?:-([a-z0-9-]+))?.(.+)$/i.exec(t),r=n?.[2];return n&&r?n[1]?n[1]+`.`+r:r:t}catch{return null}}function VD(){let{state:e,actions:t}=q(),n=e.accountLink,r=BD(n?.verificationUrl??e.settings?.gatewayUrl??e.account?.gatewayUrl??null),[i,a]=(0,v.useState)(!1),o=(0,v.useCallback)(async()=>{a(!0);try{let e=await t.startAccountLink();e?.status===`waiting`&&PD(e.verificationUrlComplete??e.verificationUrl??``)}finally{a(!1)}},[t]);if(n?.status===`waiting`)return(0,K.jsx)(zD,{link:n});let s=n&&(n.status===`denied`||n.status===`expired`);return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[s?(0,K.jsx)(`p`,{role:`status`,"data-testid":`link-refused`,className:`rounded-md border border-warn/50 bg-warn-soft px-3 py-2 text-xs text-fg`,children:ID(n)}):null,(0,K.jsxs)(X,{variant:`primary`,busy:i,onClick:()=>void o(),"data-testid":`link-start`,className:`w-full justify-center`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),s?`Try again in your browser`:`Sign in with your browser`]}),(0,K.jsxs)(`p`,{className:`text-xs text-fg-faint`,"data-testid":`link-site-note`,children:[`Opens `,r??`your account page`,` and shows a short code to confirm. Your password is never typed on this machine, and this PC never sees anyone else's.`]})]})}function HD(){let{state:e}=q(),[t,n]=(0,v.useState)(!1),r=t||e.emailVerification!==null;return(0,K.jsx)(LD,{testId:`sign-in-view`,children:(0,K.jsxs)(`div`,{className:`space-y-5`,children:[(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight`,children:`Sign in to use OonaCode`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`OonaCode runs the agent on this PC, with your own providers — but it needs an OonaCode account. There is no guest mode.`})]}),(0,K.jsx)(VD,{}),(0,K.jsx)(`div`,{className:W(`space-y-3 border-t border-border pt-4`,r?``:`text-center`),children:r?(0,K.jsx)(Wf,{}):(0,K.jsx)(X,{size:`sm`,variant:`ghost`,"data-testid":`use-password`,onClick:()=>n(!0),children:`Use an email and password instead`})})]})})}function UD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!0),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),u=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>u.current?.focus();e();let t=setTimeout(e,60);return()=>clearTimeout(t)},[]),(0,K.jsxs)(`div`,{className:`flex min-h-screen items-center justify-center bg-surface-1 p-6`,"data-testid":`locked-view`,onMouseDown:()=>u.current?.focus(),children:[(0,K.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),!(!n||o)&&(s(!0),l(!1),t.unlock(n,{keepUnlocked:i}).then(e=>{s(!1),e?r(``):l(!0)}))},className:`w-full max-w-sm space-y-4 text-center`,children:[(0,K.jsx)(Y.Lock,{className:`mx-auto h-10 w-10 text-fg-faint`}),(0,K.jsx)(`h1`,{className:`text-lg font-semibold`,children:`This device is locked`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`The vault, your keys and every session on this PC stay unreadable until you unlock — with your account password here, or remotely from another of your devices.`}),(0,K.jsx)(`input`,{ref:u,type:`password`,className:Af,value:n,onChange:e=>r(e.target.value),onMouseDown:e=>e.stopPropagation(),placeholder:`Account password`,autoFocus:!0,"data-testid":`locked-password`}),(0,K.jsxs)(`label`,{className:`flex items-start justify-center gap-2 text-sm text-fg-muted`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:i,onChange:e=>a(e.target.checked),"data-testid":`locked-keep-unlocked`}),(0,K.jsx)(`span`,{children:`Keep me unlocked on this PC`})]}),c?(0,K.jsx)(`div`,{className:`text-sm text-danger`,"data-testid":`locked-error`,children:`Wrong password — the vault stays locked.`}):null,(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:o,disabled:!n,children:`Unlock`}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[`Signed in as `,e.account?.email??`this account`,` ·`,` `,(0,K.jsx)(`button`,{type:`button`,className:`underline hover:text-fg`,onClick:()=>void t.logout(),children:`Sign out`})]})]}),(0,K.jsx)(MD,{})]})}function WD({name:e,state:t,behind:n,detail:r}){return(0,K.jsxs)(`div`,{"data-testid":`sync-side`,className:`min-w-0 flex-1 rounded-md border p-3 ${n?`border-warn bg-warn-soft/40`:`border-border bg-surface-2`}`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-sm font-medium`,children:[(0,K.jsx)(`span`,{className:`min-w-0 truncate`,children:e}),n?(0,K.jsx)(`span`,{className:`shrink-0 text-[11px] font-normal text-warn`,children:`behind`}):null]}),(0,K.jsx)(`div`,{className:`mt-1 text-[11px] text-fg-faint`,children:t.entryCount===null?`size not read`:`${t.entryCount} ${t.entryCount===1?`entry`:`entries`}`}),(0,K.jsx)(`div`,{className:`text-[11px] text-fg-faint`,title:xu(t.lastEntryAt),children:t.lastEntryAt?`last message ${bu(t.lastEntryAt)}`:`no timestamps`}),r?(0,K.jsx)(`div`,{className:`mt-1 break-all text-[11px] text-fg-faint`,children:r}):null]})}function GD({sessionId:e,sessionTitle:t,onClose:n}){let{actions:r}=q(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),f=(0,v.useCallback)(async()=>{if(e){s(!0);try{a(await r.refreshSessionLink(e))}finally{s(!1)}}},[e,r]);(0,v.useEffect)(()=>{d(null),a(null),f()},[f]);let p=async()=>{if(e){l(!0);try{let t=await r.syncSessionDown(e);d(t),t&&a(t.link)}finally{l(!1)}}},m=i?.status===`ours-behind`,h=i?.status===`theirs-behind`;return(0,K.jsx)(Nf,{open:e!==null,title:`Sync with the original chat`,onClose:n,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{variant:`ghost`,onClick:n,children:`Close`}),(0,K.jsx)(X,{variant:`primary`,busy:c,onClick:()=>void p(),disabled:!i?.canDownstream||o,"data-testid":`sync-down-confirm`,children:c?`Syncing…`:m?`Bring the new messages in`:`Check again`})]}),children:o&&!i?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{className:`w-4 h-4 spin`}),` Reading the original…`]}):i?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,K.jsx)(WD,{name:`OonaCode · ${t}`,state:i.ours,behind:m}),(0,K.jsx)(WD,{name:i.agentName,state:i.theirs,behind:h,detail:i.file})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`sync-explanation`,children:m?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`strong`,{children:[i.agentName,` has newer messages.`]}),` Bringing them in adds them to this chat — nothing here is replaced or removed, and `,i.agentName,` is not written to.`]}):h?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`strong`,{children:`This chat is the newer one.`}),` Nothing is sent back: OonaCode never writes into your `,i.agentName,` install, so the copy over there stays as it is.`]}):(0,K.jsx)(K.Fragment,{children:`Both copies are at the same point. There is nothing to bring in.`})}),u?(0,K.jsx)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-sm`,"data-testid":`sync-result`,children:u.added>0?`${u.added} new ${u.added===1?`message`:`messages`} added to this chat.`:`Already up to date — nothing to bring in.`}):null]}):(0,K.jsx)(`p`,{className:`py-4 text-sm text-fg-muted`,children:`This PC no longer has the chat this one was imported from, so there is nothing to compare it with. Nothing is wrong with the chat itself — it stays exactly as it is.`})})}function KD({status:e}){return(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 shrink-0 rounded-full`,e===`running`?`bg-accent animate-pulse`:e===`waiting_permission`?`bg-warn animate-pulse`:e===`error`?`bg-danger`:`bg-transparent`),"aria-hidden":!0})}function qD(e){return e.some(e=>e.status===`running`)?`running`:e.some(e=>e.status===`waiting_permission`)?`waiting_permission`:`idle`}function JD({sessions:e,testId:t}){let n=qD(e);if(n===`idle`)return null;let r=e.filter(e=>e.status===`running`||e.status===`waiting_permission`).length;return(0,K.jsx)(`span`,{className:`inline-flex shrink-0 items-center`,title:n===`running`?`${r} chat${r===1?``:`s`} working`:`${r} chat${r===1?``:`s`} waiting for permission`,"aria-label":`${r} active chat${r===1?``:`s`}`,"data-testid":t,children:(0,K.jsx)(KD,{status:n})})}var YD=`flex w-full items-center gap-1 rounded px-2 py-1 text-left text-[11px] font-semibold uppercase tracking-wide text-fg-faint hover:bg-surface-2`,XD=`flex w-full items-center gap-1.5 rounded border-l-2 border-project/70 bg-surface-2/40 px-2 py-1.5 text-left text-[13px] font-semibold tracking-normal text-fg hover:bg-surface-2`;function ZD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)({}),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(()=>d(null),[]),h=eO(),g=e=>r(t=>({...t,[e]:t[e]!==!0})),_=e=>n[e]===!0,y=e.prefs.collapsedProjects,b=e=>y.includes(e),x=e=>{let n=b(e)?y.filter(t=>t!==e):[...y,e];t.savePrefs({collapsedProjects:n})},S=e=>{t.savePrefs({collapsedProjects:e?C.map(e=>e.key):[]})},C=(0,v.useMemo)(()=>{let t=new Map;for(let n of e.vaultProjects)t.set(n.id,{name:n.name,sessions:[]});let n=[];for(let r of e.sessions){if(e.remote.tabs[r.id])continue;let i=r.projectId?t.get(r.projectId):void 0;i?i.sessions.push(r):n.push(r)}let r=[...t.entries()].map(([e,t])=>({key:e,name:t.name,projectId:e,sessions:t.sessions.slice().sort((e,t)=>t.mtime-e.mtime)}));return r.sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),(n.length>0||r.length===0)&&r.push({key:`none`,name:`No project`,projectId:null,sessions:n.slice().sort((e,t)=>t.mtime-e.mtime)}),r},[e.sessions,e.vaultProjects,e.remote.tabs]),w=(0,v.useMemo)(()=>e.remote.hosts.filter(e=>!e.isSelf),[e.remote.hosts]),T=()=>{let e=_(`remote`);g(`remote`),e&&t.refreshHosts()},E=e=>{t.setSearch(e),t.refreshSessions(e)},D=e.sessions.length,O=e.connection.hostName??`This PC`;return(0,K.jsxs)(`nav`,{className:`flex h-full w-full flex-col bg-surface`,"aria-label":`Sessions`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border p-2`,children:[(0,K.jsxs)(`div`,{className:`relative flex-1`,children:[(0,K.jsx)(Y.Search,{className:`pointer-events-none absolute left-2 top-2 w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`input`,{"aria-label":`Search sessions`,className:W(Af,`pl-7`),placeholder:`Search sessions`,value:e.search,onChange:e=>E(e.target.value)})]}),(0,K.jsx)(Of,{label:`Refresh sessions`,onClick:()=>{t.refreshSessions(),t.refreshHosts()},children:(0,K.jsx)(Y.Refresh,{className:e.sessionsLoading?`spin`:``})}),e.account?.loggedIn?(0,K.jsx)(Of,{label:`Import chats from your other coding agents`,onClick:()=>t.openDialog(`import-claude`),"data-testid":`open-import-claude`,children:(0,K.jsx)(Y.Download,{})}):null,(0,K.jsx)(Of,{label:`Collapse all projects`,onClick:()=>S(!0),"data-testid":`projects-collapse-all`,children:(0,K.jsx)(Y.CollapseAll,{})}),(0,K.jsx)(Of,{label:`Expand all projects`,onClick:()=>S(!1),"data-testid":`projects-expand-all`,children:(0,K.jsx)(Y.ExpandAll,{})}),(0,K.jsx)(Of,{label:`Projects`,onClick:()=>t.openDialog(`projects`),"data-testid":`open-projects`,children:(0,K.jsx)(Y.Project,{})})]}),(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:[(0,K.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-local`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:()=>g(`local`),"aria-expanded":!_(`local`),title:O,children:[(0,K.jsx)(Y.Chevron,{open:!_(`local`),className:`w-3 h-3`}),(0,K.jsx)(Y.Monitor,{className:`w-3 h-3`}),(0,K.jsxs)(`span`,{className:`truncate`,children:[`Local · `,O]}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:D})]}),_(`local`)?null:(0,K.jsxs)(K.Fragment,{children:[e.sessionsError?(0,K.jsx)(`div`,{className:`px-2 py-2 text-xs text-danger`,children:e.sessionsError}):null,!e.sessionsLoading&&D===0&&!e.sessionsError?(0,K.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-fg-faint`,children:e.search?`No sessions match.`:`No sessions yet — press + to start one.`}):null,C.map(n=>{let r=`local:${n.key}`;return(0,K.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`project-group-${n.key}`,children:[(0,K.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,K.jsx)(iO,{group:n,collapsed:b(n.key),onToggle:()=>x(n.key)}),n.projectId?(0,K.jsx)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:(0,K.jsx)(Of,{label:`New chat in ${n.name}`,className:`p-1`,"data-testid":`project-new-chat-${n.key}`,onClick:e=>{e.stopPropagation(),t.newTab({projectId:n.projectId})},children:(0,K.jsx)(Y.Plus,{className:`w-3.5 h-3.5`})})}):null]}),b(n.key)?null:n.sessions.map(t=>(0,K.jsx)(cO,{session:t,active:t.id===e.currentSessionId,link:e.sessionLinks[t.id]??null,onMenu:(e,n)=>d({session:t,at:e,el:n})},t.id))]},r)})]})]}),(0,K.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-remote`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:T,"aria-expanded":!_(`remote`),children:[(0,K.jsx)(Y.Chevron,{open:!_(`remote`),className:`w-3 h-3`}),(0,K.jsx)(Y.Globe,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:`truncate`,children:`Remote`}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:w.length})]}),_(`remote`)?null:(0,K.jsxs)(K.Fragment,{children:[!e.remote.supported||e.remote.reason===`logged_out`?(0,K.jsx)(`div`,{className:`px-3 py-3 text-xs text-fg-faint`,children:`Sign in to see the sessions of your other devices.`}):w.length===0?(0,K.jsx)(`div`,{className:`px-3 py-3 text-xs text-fg-faint`,children:e.remote.loading?`Looking for your other devices…`:`No other devices yet.`}):null,w.map(e=>(0,K.jsx)(QD,{host:e,collapsed:_(`host:${e.hostId}`)||n[`host:${e.hostId}`]===void 0,onToggle:()=>{let i=`host:${e.hostId}`,a=n[i]===void 0||n[i]===!0;r(e=>({...e,[i]:!a})),a&&t.refreshHostSessions(e.hostId)}},e.hostId))]})]})]}),(0,K.jsx)(`div`,{className:`shrink-0 border-t border-border px-3 py-2 text-[11px] text-fg-faint`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,"data-testid":`app-version`,title:`What's new in this version`,className:`truncate hover:text-fg hover:underline`,onClick:()=>t.openDialog(`whats-new`),children:[`OonaCode Desktop v`,h]}),(0,K.jsx)(Of,{label:`Lock this device — vault and sessions`,className:`p-1`,"data-testid":`lock-device`,onClick:()=>l(!0),children:(0,K.jsx)(Y.Lock,{className:`h-3.5 w-3.5`})})]})}),(0,K.jsx)(Sw,{open:u!==null,at:u?.at??{x:0,y:0},anchorEl:u?.el??null,label:`Chat actions`,onClose:m,items:u?tO({session:u.session,link:e.sessionLinks[u.session.id]??null,actions:t,onSync:()=>p(u.session),onRename:()=>s(u.session),onDelete:()=>a(u.session)}):[]}),(0,K.jsx)(GD,{sessionId:f?.id??null,sessionTitle:f?Du(f):``,onClose:()=>p(null)}),(0,K.jsx)(Lf,{open:i!==null,title:`Delete this chat?`,message:`Its conversation is removed from this PC and from your account, so it stops showing on your other devices and on the website. Your files, folder and code are not touched — only the chat is deleted.`,onConfirm:()=>{i&&t.deleteSession(i.id)},onClose:()=>a(null)}),(0,K.jsx)(Rf,{open:o!==null,title:`Rename chat`,label:`Session title`,initialValue:o?Du(o):``,onSubmit:e=>{o&&e!==Du(o)&&t.renameSession(o.id,e)},onClose:()=>s(null)}),(0,K.jsx)(Lf,{open:c,title:`Lock this device?`,confirmLabel:`Lock`,message:`Every chat closes and nothing on this PC can be read or run until you unlock — here with your password, or remotely from another device.`,onConfirm:()=>void t.lockDevice(),onClose:()=>l(!1)})]})}function QD({host:e,collapsed:t,onToggle:n}){let{state:r,actions:i}=q(),a=e.label||e.hostName,o=r.remote.sessions[e.hostId],[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null);return(0,K.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`remote-host-${e.hostId}`,children:[(0,K.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:n,"aria-expanded":!t,title:e.online?`${a} — online`:`${a} — offline (read-only history)`,children:[(0,K.jsx)(Y.Chevron,{open:!t,className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 shrink-0 rounded-full`,e.online?`bg-ok`:`bg-fg-faint`),"aria-label":e.online?`online`:`offline`}),(0,K.jsx)(`span`,{className:`truncate normal-case`,children:a}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:o?o.length:``})]}),(0,K.jsxs)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:[(0,K.jsx)(Of,{label:e.online?`New chat on ${a}`:`${a} is offline — a new chat has to start on a PC that is awake`,className:`p-1`,disabled:!e.online,"data-testid":`remote-new-chat-${e.hostId}`,onClick:()=>void i.newRemoteTab(e.hostId),children:(0,K.jsx)(Y.Plus,{className:`w-3 h-3`})}),(0,K.jsx)(Of,{label:`Unlock this device`,className:`p-1`,"data-testid":`remote-unlock-${e.hostId}`,onClick:()=>c(`unlock`),children:(0,K.jsx)(Y.Lock,{className:`w-3 h-3`})}),(0,K.jsx)(Of,{label:`Rename device`,className:`p-1`,onClick:()=>c(`rename`),children:(0,K.jsx)(Y.Edit,{className:`w-3 h-3`})})]}),(0,K.jsx)(Rf,{open:s===`unlock`,title:`Unlock "${a}" remotely`,label:`Your account password — it never leaves this PC: the keys are sealed to that device and the server cannot read them.`,password:!0,submitLabel:`Unlock`,onSubmit:t=>void i.remoteUnlockHost(e.hostId,t),onClose:()=>c(null)}),(0,K.jsx)(Rf,{open:s===`rename`,title:`Rename device`,label:`Device name`,initialValue:a,onSubmit:t=>{t!==a&&i.renameHost(e.hostId,t)},onClose:()=>c(null)})]}),t?null:o===void 0?(0,K.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`Loading…`}):o.length===0?(0,K.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`No sessions on this device.`}):o.map(t=>(0,K.jsx)($D,{host:e,session:t,active:t.id===r.currentSessionId,onConfirmDelete:()=>u(t)},t.id)),(0,K.jsx)(Lf,{open:l!==null,title:`Delete this chat?`,message:`Its conversation is removed from ${e.hostName} and from your account, so it stops showing here and on the website. Files, folders and code on that PC are not touched — only the chat is deleted.`,onConfirm:()=>{l&&i.deleteRemoteSession(e.hostId,l.id)},onClose:()=>u(null)})]})}function $D({host:e,session:t,active:n,onConfirmDelete:r}){let{actions:i}=q(),a=Du(t);return(0,K.jsxs)(`div`,{className:W(`group flex items-center rounded-md`,n?`bg-accent-soft`:`hover:bg-surface-2`),children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{i.openRemoteSession(e.hostId,t.id),window.innerWidth<768&&i.setSidebar(!1)},className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left`,"aria-current":n?`true`:void 0,"data-testid":`remote-session-${t.id}`,title:e.online?void 0:`Read-only until that PC is online`,children:[(0,K.jsx)(KD,{status:t.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:W(`truncate text-sm`,n?`font-medium`:``),children:a}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[bu(t.updatedAt),t.model?` · ${t.model}`:``,e.online?``:` · read-only`]})]})]}),(0,K.jsx)(`div`,{className:`mr-1 hidden items-center gap-0.5 rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:(0,K.jsx)(Of,{label:e.online?`Delete this chat`:`That PC is asleep — a chat can only be deleted while the PC that holds it is online`,className:`p-1 hover:text-danger disabled:opacity-40`,disabled:!e.online,"data-testid":`remote-session-delete-${t.id}`,onClick:()=>{r()},children:(0,K.jsx)(Y.Trash,{className:`w-3.5 h-3.5`})})})]})}function eO(){let{state:e}=q(),t=typeof window<`u`?window.oonacode:void 0;return Fd(t?.appVersion??e.bundleAppVersion??e.connection.appVersion??e.info?.appVersion??`0.0.0`,Pd({bridge:t,info:e.info}))}function tO({session:e,link:t,actions:n,onSync:r,onRename:i,onDelete:a}){let o=[];return t?.status===`ours-behind`&&o.push({key:`sync`,label:`Sync with ${t.agentName}…`,hint:`behind`,icon:(0,K.jsx)(Y.Download,{className:`w-3.5 h-3.5`}),onSelect:r,testId:`session-menu-sync`}),o.push({key:`project`,label:`Move to Project`,icon:(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5`}),separated:o.length>0,onSelect:()=>n.openAssignProject(e.id),testId:`session-menu-project`},{key:`folder`,label:`Change folder…`,icon:(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.openDialog(`project`)},testId:`session-menu-folder`},{key:`details`,label:`Details`,icon:(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.savePrefs({sessionPanelOpen:!0})},testId:`session-menu-details`},{key:`files`,label:`Files`,icon:(0,K.jsx)(Y.File,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.savePrefs({explorerOpen:!0})},testId:`session-menu-files`},{key:`rename`,label:`Rename…`,icon:(0,K.jsx)(Y.Edit,{className:`w-3.5 h-3.5`}),onSelect:i,testId:`session-menu-rename`},{key:`fork`,label:`Fork`,icon:(0,K.jsx)(Y.Fork,{className:`w-3.5 h-3.5`}),onSelect:()=>void n.forkSession(e.id),testId:`session-menu-fork`},{key:`delete`,label:`Delete`,icon:(0,K.jsx)(Y.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:a,testId:`session-menu-delete`}),o}function nO({link:e}){return e?.status===`ours-behind`?(0,K.jsxs)(`span`,{className:`ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-warn-soft px-1 text-[10px] font-medium leading-4 text-warn`,title:`${e.agentName} has newer messages in this chat — right-click to bring them in`,"data-testid":`session-behind-${e.sessionId}`,"aria-label":`behind its original`,children:[(0,K.jsx)(Y.ArrowDown,{className:`w-2.5 h-2.5`}),`behind`]}):null}var rO={idle:`idle`,running:`working`,waiting_permission:`waiting for permission`,error:`error`};function iO({group:e,collapsed:t,onToggle:n}){let r=(0,v.useRef)(null),i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null),s=(0,v.useCallback)(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);return(0,v.useEffect)(()=>{if(a===null)return;let e=e=>{bw(e.target,r.current)&&s()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[a,s]),(0,v.useEffect)(()=>()=>{i.current!==null&&clearTimeout(i.current)},[]),(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{ref:r,type:`button`,className:XD,onClick:()=>{s(),n()},onMouseEnter:()=>{i.current!==null&&clearTimeout(i.current),i.current=setTimeout(()=>{i.current=null,r.current&&o(r.current.getBoundingClientRect())},450)},onMouseLeave:s,"aria-expanded":!t,"data-testid":`project-header-${e.key}`,children:[(0,K.jsx)(Y.Chevron,{open:!t,className:`w-3 h-3 shrink-0`}),(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,K.jsx)(`span`,{className:`truncate`,children:e.name}),(0,K.jsx)(JD,{sessions:e.sessions,testId:`project-busy-${e.key}`}),(0,K.jsx)(`span`,{className:`ml-auto shrink-0 rounded-full bg-surface-3 px-1.5 py-px text-[10px] font-semibold normal-case tracking-normal text-fg-muted`,"data-testid":`project-count-${e.key}`,children:e.sessions.length})]}),a===null?null:(0,K.jsx)(aO,{group:e,anchor:a})]})}function aO({group:e,anchor:t}){let{state:n}=q(),r=e.projectId?n.vaultProjects.find(t=>t.id===e.projectId):void 0,i=e.sessions.filter(e=>e.status===`running`||e.status===`waiting_permission`).length,a=e.sessions.reduce((e,t)=>e===null||t.updatedAt>e?t.updatedAt:e,null),o=[...new Set(e.sessions.map(e=>e.projectDir??e.cwd).filter(e=>typeof e==`string`&&e.length>0))],s=r?.instructions?.trim()??``,c=Math.max(8,Math.min(t.right+8,window.innerWidth-304-8)),l=Math.max(8,Math.min(t.top,window.innerHeight-320));return(0,Cf.createPortal)((0,K.jsxs)(`div`,{role:`tooltip`,"data-testid":`project-details-${e.key}`,className:`fixed z-50 max-h-[20rem] w-[19rem] overflow-y-auto rounded-lg border border-border bg-surface p-3 text-xs shadow-lg`,style:{left:c,top:l},children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5`,children:[(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,K.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.name})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(oO,{label:`Chats`,value:String(e.sessions.length)}),(0,K.jsx)(oO,{label:`Working now`,value:i>0?String(i):null}),(0,K.jsx)(oO,{label:`Last activity`,value:a?bu(a):null}),(0,K.jsx)(oO,{label:o.length>1?`Folders`:`Folder`,value:o.length>1?`${o.length} folders`:o[0]??null})]}),e.projectId?(0,K.jsxs)(`div`,{className:`mt-2 border-t border-border pt-2`,children:[(0,K.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:`Standing instructions`}),s?(0,K.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-fg`,"data-testid":`project-instructions-${e.key}`,children:s.length>400?`${s.slice(0,400)}…`:s}):(0,K.jsx)(`div`,{className:`text-fg-faint`,children:`None — chats here start with nothing extra.`})]}):(0,K.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 text-fg-faint`,children:`Chats filed under no project.`})]}),document.body)}function oO({label:e,value:t}){return t==null||t===``?null:(0,K.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,K.jsx)(`span`,{className:`shrink-0 text-fg-faint`,children:e}),(0,K.jsx)(`span`,{className:`min-w-0 truncate text-right text-fg`,title:t,children:t})]})}function sO({session:e,anchor:t}){let{state:n}=q(),r=n.providers.find(t=>t.definition.id===e.providerId)?.definition,i=r?.models.find(t=>t.id===e.model),a=e.projectId?n.vaultProjects.find(t=>t.id===e.projectId):void 0,o=rE.find(t=>t.value===e.permissionMode)?.label??e.permissionMode,s=_u(e.totalCostUsd)+(e.poolCredits!==void 0&&e.poolCredits!==null?` · ${e.poolCredits} credits`:``),c=Math.max(8,Math.min(t.right+8,window.innerWidth-304-8)),l=Math.max(8,Math.min(t.top,window.innerHeight-360));return(0,Cf.createPortal)((0,K.jsxs)(`div`,{role:`tooltip`,"data-testid":`session-details-${e.id}`,className:`fixed z-50 max-h-[22rem] w-[19rem] overflow-y-auto rounded-lg border border-border bg-surface p-3 text-xs shadow-lg`,style:{left:c,top:l},children:[(0,K.jsx)(`div`,{className:`mb-2 truncate text-sm font-medium text-fg`,children:Du(e)}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(oO,{label:`Model`,value:r&&e.model?`${e.model} · ${r.displayName}`:e.model}),(0,K.jsx)(oO,{label:`Effort`,value:e.effort??`default`}),(0,K.jsx)(oO,{label:`Mode`,value:o}),(0,K.jsx)(oO,{label:`Status`,value:rO[e.status]}),(0,K.jsx)(oO,{label:`Context window`,value:i?.contextWindow?`${yu(i.contextWindow)} tokens`:null}),(0,K.jsx)(oO,{label:`Tokens`,value:`${yu(e.inputTokens)} in · ${yu(e.outputTokens)} out`}),(0,K.jsx)(oO,{label:`Cost`,value:s}),(0,K.jsx)(oO,{label:`Messages`,value:String(e.entryCount)}),(0,K.jsx)(oO,{label:`Folder`,value:e.projectDir??e.cwd}),(0,K.jsx)(oO,{label:`Project`,value:a?.name??null}),(0,K.jsx)(oO,{label:`Created`,value:xu(e.createdAt)}),(0,K.jsx)(oO,{label:`Updated`,value:xu(e.updatedAt)}),(0,K.jsx)(oO,{label:`Forked from`,value:e.forkedFrom}),(0,K.jsx)(oO,{label:`Subagents`,value:e.hasSubagents?`yes`:null}),(0,K.jsx)(oO,{label:`Mirrored`,value:e.mirrored?`yes`:null}),(0,K.jsx)(oO,{label:`Engine since`,value:xu(e.engineSince)})]})]}),document.body)}function cO({session:e,active:t,link:n,onMenu:r}){let{actions:i}=q(),a=Du(e),o=e=>{let t=e.currentTarget.getBoundingClientRect();r({x:t.left,y:t.bottom+2},s.current)},s=(0,v.useRef)(null),c=(0,v.useRef)(null),[l,u]=(0,v.useState)(null),d=(0,v.useCallback)(()=>{c.current!==null&&(clearTimeout(c.current),c.current=null),u(null)},[]);return(0,v.useEffect)(()=>{if(l===null)return;let e=e=>{bw(e.target,s.current)&&d()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[l,d]),(0,v.useEffect)(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]),(0,K.jsxs)(`div`,{ref:s,className:W(`group relative flex items-center rounded-md`,t?`bg-accent-soft`:`hover:bg-surface-2`),onMouseEnter:()=>{c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,s.current&&u(s.current.getBoundingClientRect())},450)},onMouseLeave:d,onClick:d,onContextMenu:e=>{e.preventDefault(),d(),r({x:e.clientX,y:e.clientY},s.current)},children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{i.selectSession(e.id),window.innerWidth<768&&i.setSidebar(!1)},className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left`,"aria-current":t?`true`:void 0,"data-testid":`session-${e.id}`,children:[(0,K.jsx)(KD,{status:e.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,K.jsx)(`span`,{className:W(`min-w-0 flex-1 truncate text-sm`,t?`text-fg font-medium`:`text-fg`),children:a})}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center text-[11px] text-fg-faint`,children:[(0,K.jsxs)(`span`,{className:`truncate`,children:[bu(e.updatedAt),e.model?` · ${e.model}`:``,` · ${Cu(e.projectDir??e.cwd)}`]}),(0,K.jsx)(nO,{link:n})]})]})]}),(0,K.jsx)(Of,{label:`Chat actions`,className:`absolute right-1 hidden bg-surface/90 p-1 group-hover:flex group-focus-within:flex`,"data-testid":`session-menu-${e.id}`,onClick:e=>{e.stopPropagation(),o(e)},children:(0,K.jsx)(Y.More,{className:`w-3.5 h-3.5`})}),l===null?null:(0,K.jsx)(sO,{session:e,anchor:l})]})}function lO(e,t){return t.scrollWidth<=t.clientWidth||Math.abs(e.deltaX)>Math.abs(e.deltaY)||e.deltaY===0?0:e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.clientWidth:e.deltaY}function uO(e){let t=e.split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e}function dO(){let{state:e,actions:t}=q(),n=_f(),r=gf(),i=n?.projectDir??(r?.projectDir?r.cwd:null)??null,a=i?uO(i):`no folder`,[o,s]=(0,v.useState)(null),c=e.currentSessionId?e.files[e.currentSessionId]:void 0,l=c?.active??null,[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(()=>p(null),[]),h=(0,v.useRef)(null);(0,v.useEffect)(()=>{h.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[l]);let g=e.tabs.ids,_=f?f.kind===`chat`?[{key:`rename`,label:`Rename…`,icon:(0,K.jsx)(Y.Edit,{className:`w-3.5 h-3.5`}),onSelect:()=>{t.selectSession(f.id),d(f.id)},testId:`tab-menu-rename`},{key:`close`,label:`Close`,icon:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),separated:!0,onSelect:()=>t.closeTab(f.id),testId:`tab-menu-close`},{key:`close-others`,label:`Close other tabs`,disabled:g.length<2,onSelect:()=>{for(let e of g)e!==f.id&&t.closeTab(e)},testId:`tab-menu-close-others`},{key:`close-all`,label:`Close all tabs`,onSelect:()=>{for(let e of g)t.closeTab(e)},testId:`tab-menu-close-all`}]:[{key:`close`,label:`Close`,icon:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),onSelect:()=>t.closeFile(f.path),testId:`tab-menu-close`},{key:`close-others`,label:`Close other files`,disabled:(c?.open.length??0)<2,onSelect:()=>{for(let e of c?.open??[])e!==f.path&&t.closeFile(e)},testId:`tab-menu-close-others`},{key:`close-all`,label:`Close all files`,onSelect:()=>{for(let e of c?.open??[])t.closeFile(e)},testId:`tab-menu-close-all`}]:[],y=(0,v.useMemo)(()=>e.tabs.ids.map(t=>{let n=e.drafts[t],r=e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)??null,i=e.transcripts[t]?.status??r?.status??`idle`;return{id:t,draft:n!==void 0,title:n?Pu(n):r?Du(r):`Session ${t.slice(0,8)}`,customTitle:n?n.title??``:r?.title??``,cwd:n?n.projectDir??``:r?.cwd??``,running:i===`running`||i===`waiting_permission`,waiting:i===`waiting_permission`,error:i===`error`}}),[e.tabs.ids,e.drafts,e.transcripts,e.sessions]),b=(0,v.useCallback)((e,n)=>{d(null),t.renameTab(e,n)},[t]),x=e.currentSessionId?e.remote.tabs[e.currentSessionId]??null:null,S=(0,v.useRef)(null),C=e.tabs.activeId;(0,v.useEffect)(()=>{S.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[C]);let w=(0,v.useRef)(null),T=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=w.current;if(!e)return;let t=e=>{let t=T.current;if(!t)return;let n=lO(e,t);n!==0&&(e.preventDefault(),t.scrollLeft+=n)},n=e=>{e.button===1&&e.preventDefault()};return e.addEventListener(`wheel`,t,{passive:!1}),e.addEventListener(`mousedown`,n),()=>{e.removeEventListener(`wheel`,t),e.removeEventListener(`mousedown`,n)}},[]),(0,K.jsxs)(`div`,{ref:w,className:`flex h-9 shrink-0 items-stretch gap-1 border-b border-border bg-surface px-1`,role:`tablist`,"aria-label":`Open chats`,"data-testid":`tab-bar`,children:[(0,K.jsxs)(`div`,{ref:T,className:`flex min-w-0 flex-1 items-stretch gap-1 overflow-x-auto`,"data-testid":`tabs-scroller`,children:[y.map((n,r)=>{let i=n.id===e.tabs.activeId&&l===null,a=u===n.id;return(0,K.jsxs)(`div`,{ref:n.id===e.tabs.activeId?S:void 0,role:`tab`,"aria-selected":i,tabIndex:i?0:-1,draggable:!a,onDragStart:()=>s(r),onDragOver:e=>{o!==null&&e.preventDefault()},onDrop:e=>{o!==null&&(e.preventDefault(),t.moveTab(o,r),s(null))},onDragEnd:()=>s(null),onContextMenu:e=>{e.preventDefault(),p({kind:`chat`,id:n.id,title:n.title,at:{x:e.clientX,y:e.clientY},el:e.currentTarget})},onAuxClick:e=>{e.button===1&&(e.preventDefault(),t.closeTab(n.id))},className:W(`group relative flex min-w-[7rem] max-w-[15rem] shrink-0 items-center gap-1.5 rounded-t-md border-b-2 px-2 text-xs`,i?`border-accent bg-surface-2 text-fg`:`border-transparent text-fg-muted hover:bg-surface-2`),"data-testid":`tab-${n.id}`,children:[a?(0,K.jsx)(fO,{initial:n.customTitle,placeholder:n.title,onCommit:e=>b(n.id,e),onCancel:()=>d(null)}):(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{t.selectSession(n.id),t.showChat(n.id)},onDoubleClick:()=>d(n.id),title:n.cwd?`${n.title}\n${n.cwd}`:`${n.title}\nDouble-click to rename`,className:`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left`,children:[n.running?(0,K.jsx)(Y.Spinner,{className:W(`w-3 h-3 shrink-0`,n.waiting?`text-warn`:`text-accent`),title:`Agent running`}):n.error?(0,K.jsx)(Y.Alert,{className:`w-3 h-3 shrink-0 text-danger`}):(0,K.jsx)(`span`,{className:`w-3 shrink-0`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`truncate`,children:wu(n.title,28)})]}),(0,K.jsx)(Of,{label:`Close ${n.title}`,className:`p-0.5 opacity-0 group-hover:opacity-100 focus:opacity-100`,onClick:()=>t.closeTab(n.id),children:(0,K.jsx)(Y.X,{className:`w-3 h-3`})})]},n.id)}),c?.open.map(e=>{let n=l===e,r=nC(e);return(0,K.jsxs)(`div`,{ref:n?h:void 0,role:`tab`,"aria-selected":n,tabIndex:n?0:-1,title:e,onContextMenu:t=>{t.preventDefault(),p({kind:`file`,path:e,at:{x:t.clientX,y:t.clientY},el:t.currentTarget})},onAuxClick:n=>{n.button===1&&(n.preventDefault(),t.closeFile(e))},className:W(`group relative flex min-w-[6rem] max-w-[14rem] shrink-0 items-center gap-1.5 rounded-t-md border-b-2 px-2 text-xs`,n?`border-accent bg-surface-2 text-fg`:`border-transparent text-fg-muted hover:bg-surface-2`),"data-testid":`file-tab-${e}`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>t.activateFile(e),className:`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left`,children:[(0,K.jsx)(Y.File,{className:`w-3 h-3 shrink-0 text-fg-faint`}),(0,K.jsx)(`span`,{className:`truncate`,children:wu(r,28)})]}),(0,K.jsx)(Of,{label:`Close ${r}`,className:`p-0.5 opacity-0 group-hover:opacity-100 focus:opacity-100`,onClick:()=>t.closeFile(e),"data-testid":`file-tab-close-${e}`,children:(0,K.jsx)(Y.X,{className:`w-3 h-3`})})]},`file:${e}`)})]}),(0,K.jsx)(Sw,{open:f!==null,at:f?.at??{x:0,y:0},anchorEl:f?.el??null,label:`Tab actions`,onClose:m,items:_.map(e=>({...e,onSelect:()=>{m(),e.onSelect()}}))}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 pl-1`,children:[(0,K.jsx)(Of,{label:`New chat`,onClick:()=>t.newTab(),"data-testid":`new-tab`,children:(0,K.jsx)(Y.Plus,{className:`w-4 h-4`})}),(0,K.jsxs)(`button`,{type:`button`,title:x?`Choose a project folder in OonaCode on ${x.hostName}`:i?`${i} — click to change the folder`:`No project folder: this chat runs in its own workspace. Click to use one of your folders.`,"aria-label":x?`Choose a project folder in OonaCode on ${x.hostName}`:`Use a project folder…`,disabled:x!==null,onClick:()=>t.openDialog(`project`),className:`flex max-w-[220px] items-center gap-1 rounded-md border border-border px-2 py-1 text-xs text-fg-muted hover:border-accent/60 hover:text-fg disabled:opacity-50`,"data-testid":`open-project-dialog`,children:[(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5 shrink-0`}),(0,K.jsx)(`span`,{className:`hidden truncate sm:inline`,"data-testid":`folder-chip`,children:a})]})]})]})}function fO({initial:e,placeholder:t,onCommit:n,onCancel:r}){let[i,a]=(0,v.useState)(e),o=(0,v.useRef)(null),s=(0,v.useRef)(!1);return(0,v.useEffect)(()=>{o.current?.focus(),o.current?.select()},[]),(0,K.jsx)(`input`,{ref:o,"aria-label":`Rename tab`,"data-testid":`tab-title-input`,className:`min-w-0 flex-1 rounded border border-accent bg-bg px-1 py-0.5 text-xs outline-none`,value:i,maxLength:500,placeholder:t,spellCheck:!1,onChange:e=>a(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`?(e.preventDefault(),n(i)):e.key===`Escape`&&(e.preventDefault(),s.current=!0,r())},onBlur:()=>{s.current||n(i)}})}function pO(){let e=typeof window<`u`?window.oonacode:void 0;return{desktop:typeof e?.installUpdate==`function`,terminal:typeof e?.updateTerminalInstall==`function`}}function mO(e){if(e.upToDate)return`Everything on this PC is up to date — the app, the host service and the oona CLI.`;let t=[];return e.terminal&&t.push(`OonaCode updates the oona CLI and the host service in place — the service restarts and your chats come back with it.`),e.desktop&&t.push(e.terminal?`Then it downloads the app, installs it and relaunches, restoring your open tabs.`:`OonaCode downloads the update, installs it and relaunches. Your open chat tabs are restored afterwards.`),t.length===0?t.push("This window cannot install updates by itself — run the installer again, or `oona update` in a terminal. Your open chat tabs are stored in the host and come back automatically."):e.manual.length>0&&t.push(e.manual.includes(`desktop`)?`The app itself needs the installer from the website.`:"The rest needs `oona update` in a terminal."),t.join(` `)}var hO=2*Math.PI*10;function gO(){return typeof window<`u`&&window.oonacode!==void 0}function _O(){let{state:e,actions:t}=q(),n=e.update,r=e.updateInstall,i=e.prefs.dismissedUpdateVersion,a=n.version!==``&&(e.updateDismissed===n.version||i===n.version);if(!gO())return null;let o=zd({install:r,manifestAvailable:n.available&&!a}),s=e.terminalUpdate.running,c=e.updateChecking||r.phase===`checking`||s,l=n.components.length,u=Math.round(r.percent),d=s?`Updating the CLI and host service`:o===`ready`?`Restart to finish updating`:o===`downloading`?`Downloading update (${u}%)`:o===`available`?`Update available (${l})`:`Check for updates`,f=s?`Updating the oona CLI and the host service…`:o===`ready`?`An update is ready — restart to finish`:o===`downloading`?`Downloading OonaCode ${r.version||`update`} — ${u}%`:o===`available`?`${l} component${l===1?``:`s`} can be updated`:`Check for updates`;return(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{if(o===`idle`){t.checkUpdates(!0);return}if(o===`ready`){t.installUpdate();return}t.openDialog(`update`)},title:f,"aria-label":d,"aria-busy":c||void 0,"data-testid":`update-badge`,"data-state":o,className:W(`relative inline-flex h-7 w-7 items-center justify-center rounded-full border transition-transform hover:scale-105`,o===`idle`?`border-border bg-surface-2 text-fg-muted hover:text-fg`:`border-accent bg-accent-soft text-accent`),children:[o===`downloading`?(0,K.jsxs)(`svg`,{viewBox:`0 0 24 24`,"data-testid":`update-badge-progress`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u,className:`absolute inset-0 h-full w-full -rotate-90`,children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,className:`stroke-border`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:hO,strokeDashoffset:hO*(1-Math.max(0,Math.min(100,u))/100),className:`stroke-accent`})]}):null,c&&o!==`downloading`&&o!==`ready`?(0,K.jsx)(`span`,{"data-testid":`update-badge-checking`,className:`inline-flex`,children:(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`})}):o===`ready`?(0,K.jsx)(`span`,{"data-testid":`update-badge-ready`,className:`inline-flex`,children:(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`})}):o===`downloading`?(0,K.jsx)(`span`,{"data-testid":`update-badge-downloading`,className:`text-[9px] font-semibold`,children:u}):(0,K.jsx)(`span`,{"data-testid":o===`available`?`update-badge-available`:`update-badge-idle`,className:`inline-flex`,children:(0,K.jsx)(Y.Download,{className:`w-3.5 h-3.5`})}),o===`available`?(0,K.jsx)(`span`,{className:`absolute -right-0.5 -top-0.5 h-2 w-2 rounded-full bg-accent`,"aria-hidden":!0}):null]})}function vO(){let{state:e,actions:t}=q(),n=e.updateInstall,r=Math.round(Math.max(0,Math.min(100,n.percent))),i=Hd(n.bytesPerSecond);if(n.phase===`error`)return(0,K.jsxs)(`div`,{className:`rounded-md border border-danger-soft bg-danger-soft px-3 py-2 text-xs text-danger`,"data-testid":`update-error`,role:`alert`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium`,children:`The update could not be downloaded.`}),(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.error})]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsxs)(X,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`update-retry`,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]});let a=n.phase===`installing`;return(0,K.jsxs)(`div`,{className:`space-y-1.5`,"data-testid":`update-progress`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:a?`Installing and restarting…`:n.phase===`ready`?`Downloaded — restart to install`:`Downloading OonaCode ${n.version||``}`.trim()}),a?null:(0,K.jsxs)(`span`,{className:`text-fg-muted`,children:[r,`%`]})]}),n.notice?(0,K.jsx)(`div`,{className:`pre-wrap text-xs text-warn`,"data-testid":`update-notice`,role:`status`,children:n.notice}):null,(0,K.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-2`,children:(0,K.jsx)(`div`,{className:W(`h-full rounded-full bg-accent`,a&&`animate-pulse`),style:{width:`${a?100:r}%`},"data-testid":`update-progress-bar`})}),a?(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`The host service stops for a few seconds while the installer runs, then OonaCode starts again with your chat tabs.`}):(0,K.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-fg-faint`,children:[(0,K.jsxs)(`span`,{children:[Vd(n.transferred),n.total>0?` of ${Vd(n.total)}`:``]}),i?(0,K.jsx)(`span`,{children:i}):null]})]})}function yO(){let{state:e,actions:t}=q(),n=e.terminalUpdate;return n.running?(0,K.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs`,"data-testid":`terminal-update-running`,role:`status`,children:[(0,K.jsx)(Y.Spinner,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium text-fg`,children:`Updating the oona CLI and host service...`}),(0,K.jsx)(`div`,{className:`mt-0.5 text-fg-faint`,children:`The host service stops for a few seconds while its installer runs. Your chats are in the database and come back with it.`})]})]}):n.failed?(0,K.jsxs)(`div`,{className:`rounded-md border border-danger-soft bg-danger-soft px-3 py-2 text-xs text-danger`,"data-testid":`terminal-update-error`,role:`alert`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium`,children:`The CLI and host service could not be updated.`}),(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.message})]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsxs)(X,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`terminal-update-retry`,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]}):null}function bO({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.update,a=n.updateInstall,o=r.checkUpdates,s=a.phase===`downloading`||a.phase===`installing`||a.phase===`ready`;(0,v.useEffect)(()=>{!e||s||o(!1)},[e,s,o]);let c=pO(),l=Wd(i.components.map(e=>e.component),c,{checked:i.version!==``,shellEngaged:a.phase!==`idle`&&a.phase!==`checking`}),u=i.version||a.version,d=a.phase===`ready`,f=a.phase===`downloading`||a.phase===`installing`||d||a.phase===`error`,p=n.terminalUpdate.running,m=n.updateChecking||a.phase===`checking`||p;return(0,K.jsx)(Nf,{open:e,title:`Update OonaCode`,onClose:t,footer:d?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,children:`Later`}),(0,K.jsxs)(X,{variant:`primary`,onClick:()=>void r.installUpdate(),"data-testid":`update-restart`,children:[(0,K.jsx)(Y.Refresh,{className:`w-4 h-4`}),`Restart and install`]})]}):f?(0,K.jsx)(X,{onClick:t,children:`Close`}):l.upToDate?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(X,{onClick:()=>void r.checkUpdates(!0),busy:m,disabled:m,"data-testid":`update-check-again`,children:[(0,K.jsx)(Y.Refresh,{className:`w-4 h-4`}),`Check again`]}),(0,K.jsx)(X,{variant:`primary`,onClick:t,children:`Close`})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:()=>r.dismissUpdate(),children:`Skip this version`}),(0,K.jsx)(X,{onClick:t,children:`Later`}),(0,K.jsxs)(X,{variant:`primary`,busy:m,disabled:m,onClick:()=>void r.installUpdate(),children:[(0,K.jsx)(Y.Download,{className:`w-4 h-4`}),l.label]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[u?(0,K.jsxs)(`span`,{className:`font-medium`,children:[`Release `,u]}):null,i.channel?(0,K.jsx)(Mf,{children:i.channel}):null,n.updateChecking?(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,"data-testid":`update-rechecking`,children:`checking for a newer one…`}):null,i.publishedAt?(0,K.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`published `,new Date(i.publishedAt).toLocaleDateString()]}):null]}),f?(0,K.jsx)(vO,{}):null,(0,K.jsx)(yO,{}),i.components.length>0?(0,K.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:i.components.map(e=>(0,K.jsxs)(`li`,{className:`flex items-start gap-3 px-3 py-2`,children:[(0,K.jsx)(Y.Download,{className:`mt-0.5 w-3.5 h-3.5 shrink-0 text-accent`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium`,children:e.label}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[e.current,` → `,(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:e.latest})]}),(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,"data-testid":`update-how-${e.component}`,children:Gd(e.component,c)}),e.notes?(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap text-xs text-fg-faint`,children:e.notes}):null]})]},e.component))}):null,i.notes?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Release notes`}),(0,K.jsx)(`div`,{className:`max-h-48 overflow-y-auto rounded-md bg-surface-2 px-3 py-2 pre-wrap text-xs text-fg-muted`,children:i.notes})]}):null,f?null:(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,"data-testid":`update-plan-note`,children:mO(l)})]})})}function xO(e){switch(e){case`open`:return{cls:`bg-ok`,label:`Connected`};case`connecting`:case`reconnecting`:return{cls:`bg-warn animate-pulse`,label:e===`connecting`?`Connecting…`:`Reconnecting…`};case`unauthorized`:return{cls:`bg-danger`,label:`Unauthorized`};case`closed`:return{cls:`bg-danger`,label:`Disconnected`};default:return{cls:`bg-fg-faint`,label:`Idle`}}}function SO(){let{state:e,actions:t}=q(),n=xO(e.connection.status),r=e.account?.loggedIn===!0,i=typeof window<`u`&&window.oonacode?.host===`vscode`;return(0,K.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface px-2 sm:px-3`,children:[i?null:(0,K.jsx)(Of,{label:`Toggle sidebar`,className:`md:hidden`,onClick:()=>t.setSidebar(!e.ui.sidebarOpen),children:(0,K.jsx)(Y.Menu,{})}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[i?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),(0,K.jsx)(`span`,{className:`hidden text-fg-faint sm:inline`,children:`/`})]}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>t.openDialog(`session-picker`),title:`Open a session on this PC or another device`,className:`hidden min-w-0 truncate text-sm text-fg-muted hover:text-fg sm:inline`,"data-testid":`host-name`,children:e.connection.hostName??`host`}),(0,K.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-fg-muted`,title:e.connection.detail??n.label,"data-testid":`connection-status`,children:[(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 rounded-full`,n.cls),"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`hidden sm:inline`,children:n.label})]})]}),(0,K.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>t.openDialog(`bug-report`),title:`Bug Report...`,"aria-label":`Bug Report...`,"data-testid":`bug-report-button`,className:`inline-flex h-7 w-7 items-center justify-center rounded-full border border-border bg-surface-2 text-fg-muted transition-transform hover:scale-105 hover:text-fg`,children:(0,K.jsx)(Y.Bug,{className:`w-3.5 h-3.5`})}),(0,K.jsx)(_O,{}),e.hostUpdatedTo?(0,K.jsxs)(X,{size:`sm`,variant:`primary`,onClick:()=>window.location.reload(),title:`This window still runs the previous version; the host is now v${e.hostUpdatedTo}`,"data-testid":`reload-for-update`,children:[`Reload for v`,e.hostUpdatedTo]}):null,r?null:(0,K.jsxs)(X,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),"data-testid":`sign-in`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),` Sign in`]}),(0,K.jsx)(Of,{label:e.prefs.explorerOpen?`Hide files`:`Show files`,onClick:()=>void t.savePrefs({explorerOpen:!e.prefs.explorerOpen}),className:e.prefs.explorerOpen?`bg-surface-2 text-fg`:void 0,"data-testid":`toggle-explorer`,children:(0,K.jsx)(Y.Folder,{})}),(0,K.jsx)(Of,{label:e.prefs.sessionPanelOpen?`Hide session info`:`Show session info`,onClick:()=>void t.savePrefs({sessionPanelOpen:!e.prefs.sessionPanelOpen}),className:e.prefs.sessionPanelOpen?`bg-surface-2 text-fg`:void 0,"data-testid":`toggle-session-panel`,children:(0,K.jsx)(Y.Panel,{})}),(0,K.jsx)(Of,{label:`Doctor`,onClick:()=>t.openDialog(`doctor`),children:(0,K.jsx)(Y.Stethoscope,{})}),r?(0,K.jsx)(CO,{}):null,(0,K.jsx)(Of,{label:`Account`,onClick:()=>t.openDialog(`account`),children:(0,K.jsxs)(`span`,{className:`relative`,children:[(0,K.jsx)(Y.User,{}),r?(0,K.jsx)(`span`,{className:W(`absolute -right-0.5 -top-0.5 h-1.5 w-1.5 rounded-full`,e.account?.vaultUnlocked?`bg-ok`:`bg-warn`)}):null]})}),(0,K.jsx)(Of,{label:`Settings`,onClick:()=>t.openDialog(`settings`),children:(0,K.jsx)(Y.Settings,{})})]})]})}function CO(){let{state:e}=q(),[t,n]=(0,v.useState)(!1),r=(0,v.useRef)(null),i=e.plan;(0,v.useEffect)(()=>{if(!t)return;let e=e=>{r.current&&!r.current.contains(e.target)&&n(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[t]);let a=i?i.credits.balance:null,o=i?vd(i):null,s=xd(i),c=Sd;return(0,K.jsxs)(`div`,{className:`relative`,ref:r,children:[(0,K.jsx)(Of,{label:s?`Credits and plan — ${s.text}`:`Credits and plan`,onClick:()=>n(e=>!e),"data-testid":`balance-badge`,className:t?`bg-surface-2 text-fg`:void 0,children:(0,K.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(Y.Coins,{}),a===null?null:(0,K.jsx)(`span`,{className:W(`hidden text-xs tabular-nums sm:inline`,s?s.level===`empty`?`text-danger`:`text-warn`:void 0),"data-testid":`balance-credits`,"data-level":s?.level??`ok`,children:c(a)})]})}),t?(0,K.jsx)(`div`,{className:`absolute right-0 top-full z-50 mt-1 w-64 rounded-md border border-border bg-surface p-3 text-sm shadow-lg`,"data-testid":`balance-popover`,children:i===null||o===null?(0,K.jsx)(`div`,{className:`text-fg-muted`,children:`Balance is unavailable — the gateway can't be reached.`}):(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,K.jsxs)(`span`,{className:`font-medium`,children:[i.planName,i.status===`none`?` (lapsed)`:``]})]}),(0,K.jsx)(`div`,{className:`h-px bg-border`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Credits`}),(0,K.jsx)(`span`,{className:`font-semibold tabular-nums`,children:c(o.balance)})]}),s?(0,K.jsx)(`div`,{className:W(`rounded-sm px-2 py-1 text-[11px]`,s.level===`empty`?`bg-danger-soft text-danger`:`bg-warn-soft text-warn`),"data-testid":`balance-warning`,children:s.text}):null,o.hasSplit?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,K.jsx)(`span`,{className:`tabular-nums`,children:c(o.plan??0)})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Top-up credits`}),(0,K.jsx)(`span`,{className:`tabular-nums`,children:c(o.topup??0)})]})]}):null,(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[i.credits.monthlyGrant>0?`Plan credits top up to ${c(i.credits.monthlyGrant)} each 30-day period and expire with it; top-ups never do.`:`This plan pays no monthly credits — the signup gift and anything you buy never expire.`,` `,`Free models never draw on this balance.`]})]})}):null]})}function wO(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`could not read the file`)),r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):``)},r.readAsDataURL(e)})}function TO(e,t){let n=[],r=e.length,i=e.reduce((e,t)=>e+t.size,0);for(let e of t){if(r>=5)return{accepted:n,refused:`At most 5 files per report.`};if(e.size>5242880)return{accepted:n,refused:`${e.name} is ${Vd(e.size)}; a file may be at most ${Vd(As)}.`};if(i+e.size>12582912)return{accepted:n,refused:`All files together may be at most ${Vd(js)}.`};n.push(e),r+=1,i+=e.size}return{accepted:n,refused:null}}function EO(e){return e instanceof Gc?e.code===`account_required`||e.status===401?`Sign in to OonaCode first — a report is filed under your account so we can answer it.`:Yc(e)?`This host build cannot send bug reports yet — update OonaCode on this PC.`:e.status===429?`Too many reports in a minute — wait a moment and send again.`:e.status===413?`The attachments are too large for one report.`:e.message||`The report could not be sent.`:e instanceof Error&&e.message?e.message:`The report could not be sent.`}var DO=0;function OO({open:e,onClose:t}){let{state:n,actions:r,api:i}=q(),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)([]),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(!1),h=(0,v.useRef)(null);(0,v.useEffect)(()=>{e&&(o(``),c([]),u(!1),f(null))},[e]);let g=n.account?.loggedIn===!0,_=typeof i.sendBugReport==`function`,y=typeof window<`u`?window.oonacode:void 0,b=y?y.host===`vscode`?`vscode`:`desktop`:`browser`,x=n.currentSessionId?n.sessions.find(e=>e.id===n.currentSessionId)??null:null,S=(0,v.useCallback)(async e=>{let t=Array.from(e);if(t.length===0)return;let{accepted:n,refused:r}=TO(s,t);f(r);let i=t.filter(e=>n.includes(e));if(i.length!==0){m(!0);try{let e=[];for(let t of i){let n=await wO(t);if(!n)continue;let r=t.type||`application/octet-stream`;DO+=1,e.push({key:`f${DO}`,name:t.name,contentType:r,dataBase64:n,size:t.size,preview:r.startsWith(`image/`)?`data:${r};base64,${n}`:null})}c(t=>[...t,...e])}catch(e){f(e instanceof Error?e.message:`could not read the file`)}finally{m(!1)}}},[s]),C=e=>{let t=e.target.files;t&&S(t),e.target.value=``},w=e=>c(t=>t.filter(t=>t.key!==e)),T=async()=>{let e=a.trim();if(!e||l)return;if(!_){f(`This host build cannot send bug reports yet — update OonaCode on this PC.`);return}u(!0),f(null);let o={message:e.slice(0,ks),...s.length>0?{attachments:s.map(({name:e,contentType:t,dataBase64:n})=>({name:e,contentType:t,dataBase64:n}))}:{},...n.currentSessionId?{sessionId:n.currentSessionId}:{},detail:{embedded:b,connection:n.connection.status,...y?.appVersion?{appVersion:y.appVersion}:{},...n.bundleAppVersion?{uiVersion:n.bundleAppVersion}:{},...n.info?.appVersion?{hostVersion:n.info.appVersion}:{},...n.info?.engine?.version?{engineVersion:n.info.engine.version}:{},...x?.status?{sessionStatus:x.status}:{}}};try{let e=await i.sendBugReport(o);r.toast(`success`,`Bug report #${e.id} sent — thank you.`),t()}catch(e){f(EO(e))}finally{u(!1)}},E=ks-a.length;return(0,K.jsx)(Nf,{open:e,title:`Bug Report`,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,disabled:l,children:`Cancel`}),(0,K.jsxs)(X,{variant:`primary`,busy:l,disabled:!a.trim()||p,onClick:()=>void T(),"data-testid":`bug-report-send`,children:[(0,K.jsx)(Y.Bug,{className:`w-4 h-4`}),`Send report`]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3 text-sm`,"data-testid":`bug-report-dialog`,children:[(0,K.jsxs)(`p`,{className:`text-fg-muted`,children:[`Tell us what went wrong and what you expected. Screenshots help. The report is filed under your account with this PC's versions`,x?` and the open chat’s model`:``,`; the chat itself is never sent.`]}),g?null:(0,K.jsx)(`div`,{className:`rounded-md border border-warn/40 bg-warn-soft px-3 py-2 text-xs text-warn`,children:`Sign in to OonaCode to send a report — it is filed under your account so we can answer it.`}),(0,K.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:`What happened?`}),(0,K.jsx)(`textarea`,{name:`message`,className:W(Af,`min-h-32 resize-y`),value:a,maxLength:ks,placeholder:`The answer stopped after a few seconds with “API error”. I was using…`,onChange:e=>o(e.target.value),"data-testid":`bug-report-message`}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:E<500?`${E} characters left`:``})]}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{ref:h,type:`file`,multiple:!0,className:`hidden`,onChange:C,"data-testid":`bug-report-files`}),(0,K.jsxs)(X,{size:`sm`,onClick:()=>h.current?.click(),disabled:l||p||s.length>=5,children:[(0,K.jsx)(Y.Paperclip,{className:`w-3.5 h-3.5`}),`Attach files or pictures`]}),(0,K.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`up to `,5,` files,`,` `,Vd(As),` each`]})]}),s.length>0?(0,K.jsx)(`ul`,{className:`flex flex-wrap gap-2`,"data-testid":`bug-report-attachments`,children:s.map(e=>(0,K.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-border bg-surface-2 px-2 py-1 text-xs`,children:[e.preview?(0,K.jsx)(`img`,{src:e.preview,alt:``,className:`h-8 w-8 rounded object-cover`,"aria-hidden":!0}):(0,K.jsx)(Y.Paperclip,{className:`w-3.5 h-3.5 text-fg-muted`}),(0,K.jsx)(`span`,{className:`max-w-40 truncate`,title:e.name,children:e.name}),(0,K.jsx)(`span`,{className:`text-fg-faint`,children:Vd(e.size)}),(0,K.jsx)(Of,{label:`Remove ${e.name}`,onClick:()=>w(e.key),children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]},e.key))}):null]}),d?(0,K.jsx)(`div`,{className:`text-xs text-danger`,role:`alert`,"data-testid":`bug-report-error`,children:d}):null]})})}function kO(e){let t=Date.parse(`${e}T12:00:00`);return Number.isFinite(t)?new Date(t).toLocaleDateString(void 0,{dateStyle:`long`}):e}function AO({open:e,notes:t,onClose:n}){return(0,K.jsx)(Nf,{open:e,title:`What's new in OonaCode`,onClose:n,footer:(0,K.jsx)(X,{variant:`primary`,onClick:n,children:`Got it`}),children:(0,K.jsx)(`div`,{className:`space-y-5 text-sm`,"data-testid":`whats-new`,children:t.map(e=>(0,K.jsxs)(`section`,{"data-version":e.version,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-baseline gap-2`,children:[(0,K.jsxs)(`h3`,{className:`text-base font-semibold`,children:[`Version `,e.version]}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:kO(e.date)})]}),e.added.length>0?(0,K.jsx)(`ul`,{className:`space-y-1.5`,children:e.added.map((e,t)=>(0,K.jsxs)(`li`,{className:`flex gap-2`,children:[(0,K.jsx)(Y.Plus,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-accent`}),(0,K.jsx)(`span`,{children:e})]},t))}):null,e.fixed.length>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-1 mt-3 text-xs font-medium uppercase tracking-wide text-fg-faint`,children:`Fixed`}),(0,K.jsx)(`ul`,{className:`space-y-1.5`,children:e.fixed.map((e,t)=>(0,K.jsxs)(`li`,{className:`flex gap-2`,children:[(0,K.jsx)(Y.Check,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-ok`}),(0,K.jsx)(`span`,{children:e})]},t))})]}):null]},e.version))})})}function jO(){let{state:e,actions:t}=q(),n=Lc(e.account);return!n||e.ui.dialog===`account`?null:(0,K.jsxs)(`div`,{role:`status`,"data-testid":`vault-rekey-banner`,className:`flex items-center gap-2 bg-warn-soft px-3 py-1.5 text-xs text-warn`,children:[(0,K.jsx)(Y.Alert,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{className:`flex-1`,children:Wc(n)}),(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),children:`Open Account`})]})}function MO({onReconnect:e}){let{state:t}=q(),n=t.connection.status;if(n===`open`||n===`idle`||n===`connecting`)return null;let r=n===`unauthorized`;return(0,K.jsxs)(`div`,{role:`status`,className:W(`flex items-center gap-2 px-3 py-1.5 text-xs`,r?`bg-danger-soft text-danger`:`bg-warn-soft text-warn`),children:[r?(0,K.jsx)(Y.Alert,{className:`w-3.5 h-3.5`}):(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{className:`flex-1`,children:r?`The host rejected this connection${t.connection.detail?` (${t.connection.detail})`:``}. Re-open the UI from the desktop app or paste a fresh token.`:`Reconnecting to the host${t.connection.detail?` — ${t.connection.detail}`:``}…`}),r&&e?(0,K.jsx)(X,{size:`sm`,variant:`danger`,onClick:e,children:`Enter token`}):null]})}function NO(){let{actions:e}=q();(0,v.useEffect)(()=>{if(typeof window>`u`)return;let t=t=>{!(t.ctrlKey||t.metaKey)||t.key!==`Tab`||(t.preventDefault(),e.cycleTab(t.shiftKey?-1:1))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function PO(){let{state:e,actions:t}=q(),n=(0,v.useRef)(!1),r=e.account?.loggedIn===!0,i=e.prefs.claudeImportOffered?3:e.prefs.claudeImportOffers,a=e.ui.dialog===`none`,o=e.settings!==null,s=(0,v.useRef)(e.ui.dialog);s.current=e.ui.dialog,(0,v.useEffect)(()=>{n.current||!o||i>=3||!r||!a||(n.current=!0,t.scanClaudeSessions().then(e=>{if(e.sessions.some(e=>!e.alreadyImported&&e.deletedHere!==!0&&!e.unavailable)){if(s.current!==`none`){n.current=!1;return}t.openDialog(`import-claude`),t.savePrefs({claudeImportOffers:i+1})}}).catch(()=>{}))},[t,a,r,i,o])}function FO(){let{state:e,actions:t}=q(),n=(0,v.useRef)(!1),[r,i]=(0,v.useState)(null),a=(typeof window<`u`?window.oonacode:void 0)?.appVersion??e.bundleAppVersion??null,o=e.settings!==null,s=e.prefs.lastSeenReleaseNotes,c=e.sessionListLoaded,l=e.sessionsTotal>0||e.sessions.length>0,u=e.settings?.uiPrefs,d=u!==void 0&&!(`lastSeenReleaseNotes`in u),f=e.ui.dialog===`none`;(0,v.useEffect)(()=>{if(n.current||!o||!a||!f||s===null&&!c||(n.current=!0,d))return;let{record:e,show:r}=uc(a,s,l);e!==null&&t.savePrefs({lastSeenReleaseNotes:e}),r.length!==0&&(i(r),t.openDialog(`whats-new`))},[t,d,f,a,s,c,o,l]);let p=e.ui.dialog===`whats-new`;return(0,v.useEffect)(()=>{!p&&r&&i(null)},[r,p]),r??(a?lc(a,`0`):[])}function IO({onUnauthorized:e}){let{state:t,actions:n}=q(),r=(0,v.useCallback)(()=>n.openDialog(`none`),[n]),i=FO();PO();let a=typeof window<`u`&&window.oonacode?.host===`vscode`,o=t.ui.sidebarOpen&&!a;return NO(),(0,K.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,children:[(0,K.jsx)(SO,{}),(0,K.jsx)(MO,{onReconnect:e}),(0,K.jsx)(jO,{}),(0,K.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,K.jsx)(`aside`,{"data-chrome":`sidebar`,hidden:a,className:W(`absolute inset-y-0 left-0 z-30 w-72 max-w-[85vw] border-r border-border transition-transform md:static md:z-auto md:w-72 md:translate-x-0`,o?`translate-x-0`:`-translate-x-full md:hidden`),children:(0,K.jsx)(ZD,{})}),o?(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 md:hidden`,onClick:()=>n.setSidebar(!1),"aria-hidden":!0}):null,t.prefs.explorerOpen?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 md:hidden`,onClick:()=>void n.savePrefs({explorerOpen:!1}),"aria-hidden":!0}),(0,K.jsx)(`div`,{className:`absolute inset-y-0 left-0 z-30 flex max-w-[85vw] md:static md:z-auto md:max-w-none`,children:(0,K.jsx)(ZE,{})})]}):null,(0,K.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,K.jsx)(dO,{}),(0,K.jsx)(Ew,{}),t.currentSessionId&&t.files[t.currentSessionId]?.active?(0,K.jsx)(sD,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(kT,{}),(0,K.jsx)(mE,{}),(0,K.jsx)(dE,{},t.currentSessionId??`none`)]})]}),t.prefs.sessionPanelOpen?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 lg:hidden`,onClick:()=>void n.savePrefs({sessionPanelOpen:!1}),"aria-hidden":!0}),(0,K.jsx)(`div`,{className:`absolute inset-y-0 right-0 z-30 flex max-w-[85vw] lg:static lg:z-auto lg:max-w-none`,children:(0,K.jsx)(qE,{})})]}):null]}),(0,K.jsx)(gE,{open:t.ui.dialog===`project`,onClose:r}),(0,K.jsx)(bE,{open:t.ui.dialog===`projects`,startNew:t.projectsStartNew,onClose:r}),(0,K.jsx)(xE,{open:t.ui.dialog===`assign-project`,onClose:r}),(0,K.jsx)(kD,{open:t.ui.dialog===`settings`,onClose:r}),(0,K.jsx)(qf,{open:t.ui.dialog===`account`,onClose:r}),(0,K.jsx)(hE,{open:t.ui.dialog===`doctor`,onClose:r}),(0,K.jsx)(Tw,{open:t.ui.dialog===`session-picker`,onClose:r}),(0,K.jsx)(bO,{open:t.ui.dialog===`update`,onClose:r}),(0,K.jsx)(OO,{open:t.ui.dialog===`bug-report`,onClose:r}),(0,K.jsx)(kE,{open:t.ui.dialog===`claude-login`,onClose:r}),(0,K.jsx)(AE,{open:t.ui.dialog===`oauth-login`,onClose:r}),(0,K.jsx)(jE,{open:t.ui.dialog===`manage-models`,onClose:r}),(0,K.jsx)(zE,{open:t.ui.dialog===`import-claude`,onClose:r}),(0,K.jsx)(AO,{open:t.ui.dialog===`whats-new`,notes:i,onClose:r}),(0,K.jsx)(DE,{open:t.ui.connectProviderId!==null,providerId:t.ui.connectProviderId,onClose:()=>n.openProviderConnect(null)}),(0,K.jsx)(MD,{})]})}function LO({onUnauthorized:e}){let{state:t}=q(),n=t.account?.loggedIn===!0&&!t.account.vaultUnlocked;return(0,v.useEffect)(()=>{window.oonacode?.setVaultLocked?.(n)},[n]),t.accountLoaded?t.account?.loggedIn?!t.account.vaultUnlocked&&Lc(t.account)===null?(0,K.jsx)(UD,{}):(0,K.jsx)(IO,{onUnauthorized:e}):(0,K.jsx)(HD,{}):(0,K.jsx)(RD,{})}function RO({api:e,socket:t,relay:n,initialSessionId:r,onUnauthorized:i,reportError:a}){return(0,K.jsx)(Sf,{api:e,socket:t,relay:n??null,initialSessionId:r??null,onUnauthorized:i,...a?{reportError:a}:{},children:(0,K.jsx)(LO,{onUnauthorized:i})})}var zO=`oonacode.host.connection`,BO=`session`;function VO(e){let t=e.replace(/^#\/?\??/,``),n=new URLSearchParams(t),r=n.get(`token`),i=n.get(`host`)??n.get(`baseUrl`),a=n.get(BO);n.delete(`token`),n.delete(`host`),n.delete(`baseUrl`);let o=n.toString();return{token:r&&r.trim()?r.trim():null,baseUrl:i,sessionId:a,restHash:o?`#${o}`:``}}function HO(e){if(!e)return null;try{let t=e.getItem(zO);if(!t)return null;let n=JSON.parse(t);if(typeof n.baseUrl==`string`&&typeof n.token==`string`&&n.token)return{baseUrl:qc(n.baseUrl),token:n.token}}catch{}return null}function UO(e,t){if(e)try{t?e.setItem(zO,JSON.stringify(t)):e.removeItem(zO)}catch{}}async function WO(e){let t=VO(e.location.hash);if(t.token){let n={baseUrl:qc(t.baseUrl??e.location.origin),token:t.token};UO(e.storage,n);let r=`${e.location.pathname}${e.location.search}${t.restHash}`;try{e.replaceUrl?.(r)}catch{}return{connection:n,source:`hash`,sessionId:t.sessionId}}if(e.bridge&&typeof e.bridge.getConnection==`function`)try{let n=await e.bridge.getConnection();if(n&&typeof n.token==`string`&&n.token&&typeof n.baseUrl==`string`){let r={baseUrl:qc(n.baseUrl),token:n.token};return UO(e.storage,r),{connection:r,source:`bridge`,sessionId:t.sessionId}}}catch{}let n=HO(e.storage);return n?{connection:n,source:`storage`,sessionId:t.sessionId}:{connection:null,source:`none`,sessionId:t.sessionId}}function GO(e=window){let t=null;try{t=e.sessionStorage}catch{t=null}return WO({location:e.location,storage:t,replaceUrl:t=>e.history.replaceState(null,``,t),bridge:e.oonacode})}var KO=1;function qO(){let e=globalThis.crypto;return e&&typeof e.randomUUID==`function`?e.randomUUID():`c-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function JO(e,t){return`${qc(e).replace(/^http(s?):/i,`ws$1:`)}${b}?token=${encodeURIComponent(t)}`}var YO=class{clientId;opts;ws=null;_status=`idle`;attempts=0;preOpenFailures=0;epoch=0;reconnectTimer=null;pingTimer=null;manuallyClosed=!1;handlers=new Map;anyHandlers=new Set;statusHandlers=new Set;subscriptions=new Map;promptCounter=0;constructor(e){this.opts={clientKind:`web`,minBackoffMs:500,maxBackoffMs:15e3,pingIntervalMs:25e3,authProbeAfterFailures:2,...e,baseUrl:qc(e.baseUrl)},this.clientId=e.clientId??qO()}get status(){return this._status}connect(){this.manuallyClosed=!1,!(this.ws&&(this._status===`open`||this._status===`connecting`))&&this.open()}close(){this.manuallyClosed=!0,this.epoch+=1,this.clearTimers();let e=this.ws;if(this.ws=null,e){e.onopen=e.onclose=e.onerror=e.onmessage=null;try{e.close(1e3,`client closed`)}catch{}}this.setStatus(`closed`)}send(e){let t=this.ws;if(!t||t.readyState!==KO)return!1;try{return t.send(JSON.stringify(e)),!0}catch{return!1}}on(e,t){let n=this.handlers.get(e);n||(n=new Set,this.handlers.set(e,n));let r=t;return n.add(r),()=>{n?.delete(r)}}onAny(e){return this.anyHandlers.add(e),()=>{this.anyHandlers.delete(e)}}onStatus(e){return this.statusHandlers.add(e),e(this._status),()=>{this.statusHandlers.delete(e)}}subscribe(e,t){let n=this.subscriptions.get(e),r=t??n;this.subscriptions.set(e,r),this.send(r===void 0?{type:`subscribe`,sessionId:e}:{type:`subscribe`,sessionId:e,afterSeq:r})}unsubscribe(e){this.subscriptions.delete(e),this.send({type:`unsubscribe`,sessionId:e})}noteSeq(e,t){if(t===null||!this.subscriptions.has(e))return;let n=this.subscriptions.get(e);(n===void 0||t>n)&&this.subscriptions.set(e,t)}prompt(e,t,n={}){let r=n.requestId??`req-${this.clientId.slice(0,8)}-${++this.promptCounter}`,i={type:`prompt`,sessionId:e,requestId:r,text:t};if(n.attachments&&n.attachments.length>0&&(i.attachments=n.attachments),n.options&&(i.options=n.options),!this.send(i))throw Error(`not connected`);return r}respondPermission(e,t,n){return this.send({type:`permission_response`,sessionId:e,requestId:t,decision:n})}interrupt(e){return this.send({type:`interrupt`,sessionId:e})}setModel(e,t){return this.send({type:`set_model`,sessionId:e,model:t})}setPermissionMode(e,t){return this.send({type:`set_permission_mode`,sessionId:e,mode:t})}setEffort(e,t){return this.send({type:`set_effort`,sessionId:e,effort:t})}open(){this.clearTimers(),this.epoch+=1,this.setStatus(this.attempts===0?`connecting`:`reconnecting`);let e=JO(this.opts.baseUrl,this.opts.token),t=this.opts.createWebSocket??(e=>new WebSocket(e)),n;try{n=t(e)}catch(e){this.scheduleReconnect(String(e?.message??e));return}this.ws=n;let r=!1;n.onopen=()=>{if(this.ws===n){r=!0,this.attempts=0,this.preOpenFailures=0,this.setStatus(`open`),this.send({type:`hello`,protocolVersion:1,clientKind:this.opts.clientKind,clientId:this.clientId,...this.opts.clientVersion?{clientVersion:this.opts.clientVersion}:{}});for(let[e,t]of this.subscriptions)this.send(t===void 0?{type:`subscribe`,sessionId:e}:{type:`subscribe`,sessionId:e,afterSeq:t});this.opts.pingIntervalMs>0&&(this.pingTimer=setInterval(()=>this.send({type:`ping`,ts:Date.now()}),this.opts.pingIntervalMs))}},n.onmessage=e=>{if(this.ws!==n)return;let t;try{t=typeof e.data==`string`?JSON.parse(e.data):null}catch{return}we(t)&&this.dispatch(t)},n.onerror=()=>{},n.onclose=e=>{if(this.ws!==n)return;if(this.ws=null,this.pingTimer&&=(clearInterval(this.pingTimer),null),this.manuallyClosed){this.setStatus(`closed`);return}if(e.code===4401||e.code===4403||e.code===1008){this.setStatus(`unauthorized`,e.reason||`host rejected the token or origin`);return}let t=e.reason||`closed (${e.code})`;if(this.preOpenFailures=r?0:this.preOpenFailures+1,!r&&this.opts.authProbeAfterFailures>0&&this.preOpenFailures>=this.opts.authProbeAfterFailures){this.probeAuthThenReconnect(t);return}this.scheduleReconnect(t)}}async probeAuthThenReconnect(e){let t=this.epoch;this.setStatus(`reconnecting`,e);let n=this.opts.fetchImpl??((e,t)=>fetch(e,t)),r=!1;try{let e=await n(`${this.opts.baseUrl}${I.health}`,{method:`GET`,headers:{authorization:`Bearer ${this.opts.token}`}});if(e.status===401||e.status===403)r=!0;else if(e.status===200){let t=await e.json().catch(()=>null);r=!(t&&typeof t==`object`&&typeof t.hostId==`string`)}}catch{}if(!(this.manuallyClosed||t!==this.epoch)){if(r){this.setStatus(`unauthorized`,`host rejected the token`);return}this.scheduleReconnect(e)}}dispatch(e){e.type===`agent`&&e.seq!==null&&this.noteSeq(e.sessionId,e.seq);let t=this.handlers.get(e.type);if(t)for(let n of[...t])XO(()=>n(e));for(let t of[...this.anyHandlers])XO(()=>t(e))}scheduleReconnect(e){this.attempts+=1;let t=Math.min(this.opts.maxBackoffMs,this.opts.minBackoffMs*2**Math.min(this.attempts-1,10)),n=Math.round(t*(.7+Math.random()*.6));this.setStatus(`reconnecting`,e);let r=this.opts.setTimeoutImpl??setTimeout;this.reconnectTimer=r(()=>{this.reconnectTimer=null,this.manuallyClosed||this.open()},n)}clearTimers(){this.reconnectTimer&&=((this.opts.clearTimeoutImpl??clearTimeout)(this.reconnectTimer),null),this.pingTimer&&=(clearInterval(this.pingTimer),null)}setStatus(e,t){this._status=e;for(let n of[...this.statusHandlers])XO(()=>n(e,t))}};function XO(e){try{e()}catch(e){console.error(`[HostSocket] handler failed`,e)}}var ZO=/([?&#](?:token|access_token|key|api_key|secret|password)=)[^&#\s"']*/gi,QO=/\b(Bearer|Basic)\s+[A-Za-z0-9\-._~+/=]{8,}/g;function $O(e){return e.replace(ZO,`$1[redacted]`).replace(QO,`$1 [redacted]`)}function ek(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function tk(e){return typeof e==`object`&&!!e&&typeof e.message==`string`}function nk(e){if(tk(e)){let t=typeof e.name==`string`&&e.name?e.name:`Error`,n=typeof e.stack==`string`&&e.stack?e.stack:null;return{message:e.message||t,stack:n}}return typeof e==`string`?{message:ek(e,512),stack:null}:{message:`Unhandled rejection (${e===null?`null`:Array.isArray(e)?`array`:typeof e})`,stack:null}}function rk(e){return e?e.split(`
|
|
128
|
-
`).find(e=>/^\s+at\s/.test(e))?.trim()??``:``}function ik(e){let t=e.now??(()=>Date.now()),n=e.maxPerMinute??5,r=e.embedded??`browser`,i=[],a=new Map,o=(e,t)=>{for(;i.length>0&&(i[0]??0)<=t-6e4;)i.shift();for(let[e,n]of a)n<=t-6e4&&a.delete(e);return a.has(e)||i.length>=n?!1:(i.push(t),a.set(e,t),!0)},s=async(n,i={})=>{try{let a=e.api.reportError;if(typeof a!=`function`)return!1;let{message:s,stack:c}=nk(n),l=t();if(!o(`${s}\n${rk(c)}`,l))return!1;let u={client:`web-ui`,message:ek($O(s),Ds),detail:{source:`manual`,...i,embedded:r},at:new Date(l).toISOString()};return c&&(u.stack=ek($O(c),Os)),e.appVersion&&(u.appVersion=e.appVersion),e.platform&&(u.platform=e.platform),await a.call(e.api,u),!0}catch{return!1}},c=e=>{if(typeof e?.message!=`string`)return;let t=e.error??null;if(t===null&&!e.message)return;let n={source:`window.onerror`};typeof e.filename==`string`&&e.filename&&(n.filename=e.filename),typeof e.lineno==`number`&&e.lineno>0&&(n.lineno=e.lineno),typeof e.colno==`number`&&e.colno>0&&(n.colno=e.colno),s(t??e.message,n)},l=e=>{s(e?.reason,{source:`unhandledrejection`})};return{install:t=>{if(typeof e.api.reportError!=`function`)return()=>{};let n=e=>c(e),r=e=>l(e);return t.addEventListener(`error`,n),t.addEventListener(`unhandledrejection`,r),()=>{t.removeEventListener(`error`,n),t.removeEventListener(`unhandledrejection`,r)}},report:s,handleErrorEvent:c,handleRejectionEvent:l}}var ak=1;function ok(e,t){return`${qc(e).replace(/^http(s?):/i,`ws$1:`)}${I.remoteWs}?token=${encodeURIComponent(t)}`}function sk(e){return`tab-${e}-${Math.random().toString(36).slice(2,10)}`}var ck=class{#e;#t=new Map;#n=new Set;#r=null;#i=`idle`;#a=null;#o=0;#s=!1;#c=0;#l=null;constructor(e){this.#e=e}get status(){return this.#i}get pairingCount(){return this.#t.size}onStatus(e){return this.#n.add(e),e(this.#i),()=>{this.#n.delete(e)}}connect(){if(this.#r||this.#i===`connecting`)return;this.#s=!1,this.#d(`connecting`);let e=ok(this.#e.baseUrl,this.#e.token),t=this.#e.createWebSocket??(e=>new WebSocket(e)),n;try{n=t(e)}catch{this.#d(`closed`),this.#u();return}this.#r=n,n.onopen=()=>{if(this.#r===n){this.#o=0,this.#d(`open`),this.#f({type:`remote_hello`,protocolVersion:1,clientId:this.#e.clientId??`web-ui`,...this.#e.clientVersion?{clientVersion:this.#e.clientVersion}:{}});for(let e of this.#t.values())this.#p(e)}},n.onmessage=e=>{this.#r===n&&this.#h(e.data)},n.onerror=()=>void 0,n.onclose=()=>{if(this.#r===n){this.#r=null;for(let e of this.#t.values())this.#m(e,{state:`host_offline`,online:!1,detail:`reconnecting to this PC…`});this.#i!==`unavailable`&&this.#d(`closed`),this.#u()}}}close(){this.#s=!0,this.#l=null,this.#a&&(this.#e.clearTimeoutImpl??clearTimeout)(this.#a),this.#a=null,this.#t.clear();let e=this.#r;if(this.#r=null,e){e.onopen=e.onclose=e.onerror=e.onmessage=null;try{e.close(1e3,`closed`)}catch{}}this.#d(`idle`)}#u(){let e=this.#e.reconnectDelayMs??1e3;if(this.#s||e<=0||this.#a||this.#t.size===0)return;let t=this.#e.maxReconnectDelayMs??2e4;this.#o+=1;let n=Math.min(e*2**Math.min(this.#o-1,5),t),r=this.#e.setTimeoutImpl??setTimeout;this.#a=r(()=>{this.#a=null,this.#s||this.connect()},n)}#d(e,t){if(this.#i!==e){this.#i=e;for(let n of[...this.#n])n(e,t)}}#f(e){let t=this.#r;if(!t||t.readyState!==ak)return!1;try{return t.send(JSON.stringify(e)),!0}catch{return!1}}attach(e){this.#c+=1;let t=sk(this.#c),n={pairingId:t,hostId:e.hostId,sessionId:e.sessionId,state:`unavailable`,online:!1,detail:null,onFrame:e.onFrame,onState:e.onState};return this.#t.set(t,n),this.#r&&this.#r.readyState===ak?(this.#l!==null&&this.#m(n,{detail:this.#l}),this.#p(n)):this.connect(),{pairingId:t,hostId:e.hostId,sessionId:e.sessionId,send:e=>this.send(t,e),detach:()=>this.detach(t)}}detach(e){this.#t.get(e)&&(this.#t.delete(e),this.#f({type:`remote_detach`,pairingId:e}),this.#t.size===0&&this.close())}send(e,t){let n=this.#t.get(e);return!n||!n.online?!1:this.#f({type:`remote_send`,pairingId:e,frame:t})}#p(e){this.#f({type:`remote_attach`,pairingId:e.pairingId,hostId:e.hostId,sessionId:e.sessionId})}#m(e,t){Object.assign(e,t),e.onState({pairingId:e.pairingId,hostId:e.hostId,sessionId:e.sessionId,state:e.state,online:e.online,detail:e.detail})}#h(e){let t;try{let n=JSON.parse(typeof e==`string`?e:String(e));if(!Ee(n))return;t=n}catch{return}switch(t.type){case`remote_welcome`:if(!t.canRelay){let e=t.reason??`this PC cannot reach your other devices right now`;this.#l=e,this.#d(`unavailable`,e);for(let t of this.#t.values())this.#m(t,{state:`unavailable`,online:!1,detail:e});return}this.#l=null,this.#i===`unavailable`&&this.#d(`open`);for(let e of this.#t.values())e.online||this.#p(e);return;case`remote_status`:{let e=this.#t.get(t.pairingId);if(!e)return;this.#m(e,{state:t.state,online:De(t.state),detail:t.detail??null});return}case`remote_frame`:this.#t.get(t.pairingId)?.onFrame(t.frame);return;case`remote_error`:{let e=t.pairingId?this.#t.get(t.pairingId):void 0;e&&this.#m(e,{state:`error`,online:!1,detail:t.message});return}default:return}}};function lk({defaultBaseUrl:e,error:t,onConnect:n}){let[r,i]=(0,v.useState)(e),[a,o]=(0,v.useState)(``),s=r.trim().length>0&&a.trim().length>0;return(0,K.jsx)(`div`,{className:`flex min-h-full items-center justify-center bg-bg p-4`,children:(0,K.jsxs)(`form`,{className:`w-full max-w-md space-y-4 rounded-xl border border-border bg-surface p-6 shadow-md`,onSubmit:e=>{e.preventDefault(),s&&n({baseUrl:r.trim(),token:a.trim()})},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-lg font-semibold`,children:`Connect to your OonaCode host`}),(0,K.jsxs)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:[`This page needs the host's access token. It is normally passed automatically when you open the UI from the desktop app or run`,` `,(0,K.jsx)(`code`,{className:`rounded bg-surface-2 px-1 font-mono`,children:`oona web`}),`.`]})]}),t?(0,K.jsx)(`div`,{className:`rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm text-danger`,role:`alert`,children:t}):null,(0,K.jsx)(kf,{label:`Host URL`,children:(0,K.jsx)(`input`,{className:Af,value:r,onChange:e=>i(e.target.value),placeholder:`http://127.0.0.1:41317`,spellCheck:!1,autoComplete:`url`})}),(0,K.jsx)(kf,{label:`Host token`,hint:'Found in %LOCALAPPDATA%\\OonaCode\\host\\host.json ("token") on the PC running the host, printed by `oona serve --show-token`, or embedded in the URL printed by `oona web --print`.',children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`off`,spellCheck:!1,autoFocus:!0})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,className:`w-full justify-center`,disabled:!s,children:`Connect`})]})})}function uk(){let[e,t]=(0,v.useState)(void 0),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null);(0,v.useEffect)(()=>{
|
|
128
|
+
`)}}function xD(){let{state:e,actions:t}=q(),n=e.prefs,r=e.settings?.theme??`system`;return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(Pf,{label:`Auto-accept permissions`,hint:`Answer every permission request with Allow. Off by default — leave it off unless you fully trust the working directory.`,checked:n.autoAcceptPermissions,onChange:e=>void t.savePrefs({autoAcceptPermissions:e})}),(0,K.jsx)(Pf,{label:`Show reasoning summaries in the timeline`,hint:`Render the model's thinking blocks between messages.`,checked:n.showReasoningSummaries,onChange:e=>void t.savePrefs({showReasoningSummaries:e})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border py-3`,children:[(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:`Colour scheme`}),(0,K.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:`System follows Windows' light/dark setting.`})]}),(0,K.jsx)(Ff,{label:`Colour scheme`,value:r,options:[{value:`system`,label:`System`},{value:`dark`,label:`Dark`},{value:`light`,label:`Light`}],onChange:e=>void t.saveSettings({theme:e})})]}),(0,K.jsxs)(`div`,{className:`border-t border-border pt-2`,children:[(0,K.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,K.jsx)(Y.Bell,{className:`w-3 h-3`}),` Notifications`]}),(0,K.jsx)(Pf,{label:`Agent finished or needs attention`,checked:n.notifications.agentFinished,onChange:e=>void t.savePrefs({notifications:{...n.notifications,agentFinished:e}})}),(0,K.jsx)(Pf,{label:`Permission or question waiting for you`,hint:`Includes the agent’s questions. With auto-accept on, those are the only prompts that still wait for you.`,checked:n.notifications.permissionRequired,onChange:e=>void t.savePrefs({notifications:{...n.notifications,permissionRequired:e}})}),(0,K.jsx)(Pf,{label:`Error occurred`,checked:n.notifications.errorOccurred,onChange:e=>void t.savePrefs({notifications:{...n.notifications,errorOccurred:e}})})]}),e.prefsBackend===`local`?(0,K.jsx)(`div`,{className:`mt-2 rounded-md bg-warn-soft px-3 py-2 text-xs text-warn`,children:`This host does not store UI preferences yet, so they are kept on this device only.`}):null]})}function SD(e){let t=e.replace(/-/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)}function CD(e){let t={};if(typeof document>`u`||typeof getComputedStyle!=`function`)return t;let n=document.documentElement,r=n.getAttribute(`data-theme`),i=[];for(let e of qs){let t=n.style.getPropertyValue(`--${e}`);t&&i.push([e,t]),n.style.removeProperty(`--${e}`)}n.setAttribute(`data-theme`,e);let a=getComputedStyle(n);for(let e of qs){let n=a.getPropertyValue(`--${e}`).trim();t[e]=/^#[0-9a-fA-F]{6}$/.test(n)?n.toLowerCase():`#808080`}r===null?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r);for(let[e,t]of i)n.style.setProperty(`--${e}`,t);return t}function wD(){let{state:e,actions:t}=q(),n=e.prefs,[r,i]=(0,v.useState)(`dark`),a=(0,v.useMemo)(()=>CD(r),[r]),[o,s]=(0,v.useState)({}),c=(0,v.useRef)(o);c.current=o;let l=(0,v.useRef)(n.themeColors);l.current=n.themeColors;let u=(0,v.useRef)(null),d=()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)};(0,v.useEffect)(()=>d,[]);let f=e=>{d();let n=c.current;Object.keys(n).length!==0&&(s({}),t.savePrefs({themeColors:{...l.current,[e]:{...l.current[e],...n}}}))},p=(e,t)=>{s(n=>({...n,[e]:t})),c.current={...c.current,[e]:t},d(),u.current=window.setTimeout(()=>f(r),300)},m={...l.current[r],...o},h=Object.keys(m).length,g=e=>{d(),s({});let n={...m};delete n[e],t.savePrefs({themeColors:{...l.current,[r]:n}})};return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:`Theme colours`}),(0,K.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-faint`,children:`Choose any colour for any element. A colour you do not choose keeps the theme's own value. Your colours follow your account to every PC.`})]}),(0,K.jsx)(Ff,{label:`Edit colour scheme`,value:r,options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}],onChange:e=>{f(r),i(e)}})]}),(0,K.jsx)(`div`,{className:`grid grid-cols-1 gap-x-4 sm:grid-cols-2`,children:qs.map(e=>{let t=m[e]!==void 0,n=m[e]??a[e]??`#808080`;return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-border py-1.5`,"data-testid":`theme-color-row-${r}-${e}`,children:[(0,K.jsx)(`input`,{type:`color`,className:`h-6 w-9 shrink-0 cursor-pointer rounded border border-border bg-transparent p-0.5`,value:n,onChange:t=>p(e,t.target.value),"aria-label":`${SD(e)} colour (${r} scheme)`,"data-testid":`theme-color-${r}-${e}`}),(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-fg-muted`,children:SD(e)}),(0,K.jsx)(`span`,{className:`w-16 shrink-0 text-right font-mono text-[10px] text-fg-faint`,children:t?m[e]:`default`}),t?(0,K.jsx)(Of,{label:`Reset ${SD(e)} to the theme colour`,className:`p-0.5`,"data-testid":`theme-color-clear-${r}-${e}`,onClick:()=>g(e),children:(0,K.jsx)(Y.Refresh,{className:`w-3 h-3`})}):null]},e)})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-2`,children:[(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,"data-testid":`theme-colors-count`,children:h===0?`No custom colours in the ${r} scheme.`:`${h} custom colour${h===1?``:`s`} in the ${r} scheme.`}),(0,K.jsx)(X,{size:`sm`,variant:`ghost`,onClick:()=>{d(),s({}),t.savePrefs({themeColors:{...l.current,[r]:{}}})},disabled:h===0,"data-testid":`theme-reset-${r}`,children:`Reset all`})]})]})}function TD(){let{state:e,actions:t}=q(),n=e.prefs,[r,i]=(0,v.useState)(String(n.transcriptWindowSize));return(0,v.useEffect)(()=>i(String(n.transcriptWindowSize)),[n.transcriptWindowSize]),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(Pf,{label:`Show the agent picker in the composer`,hint:`When hidden, new messages go to the default Build agent.`,checked:n.showAgentPicker,onChange:e=>void t.savePrefs({showAgentPicker:e})}),(0,K.jsx)(`div`,{className:`border-t border-border pt-3`,children:(0,K.jsx)(kf,{label:`Transcript window size`,hint:`How many transcript lines stay rendered — older ones are dropped from the top like a stack. Scrolling to the top reveals 100 more. 100–${Ks}, default 500.`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{className:W(Af,`w-32`),type:`number`,min:100,max:Ks,step:100,value:r,onChange:e=>i(e.target.value),onBlur:()=>{let e=Number.parseInt(r,10);Number.isFinite(e)&&t.savePrefs({transcriptWindowSize:e})},"aria-label":`Transcript window size`}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:`lines`})]})})})]})}function ED(){let{state:e,actions:t}=q(),n=(0,v.useMemo)(()=>gs(e.providers),[e.providers]);return(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[n.length===0?(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`No providers in the registry.`}):null,n.map(n=>{let r=n.definition,i=e.activeProviderId===r.id,a=hs(e.providers,r.id),o=a.some(e=>e.configured),s=[...new Set(a.flatMap(e=>(e.credentials??[]).map(e=>e.class)))].filter(e=>e!==`none`);return(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,"data-testid":`provider-${r.id}`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:r.displayName}),i?(0,K.jsx)(Mf,{tone:`accent`,children:`active`}):null,r.route===`direct`?(0,K.jsx)(Mf,{tone:`ok`,children:`direct`}):null,s.length>0?s.map(e=>(0,K.jsxs)(Mf,{tone:`ok`,children:[e===`subscription`?`subscription`:`API key`,` connected`]},e)):o?(0,K.jsx)(Mf,{tone:`ok`,children:`connected`}):(0,K.jsx)(Mf,{tone:`warn`,children:`not connected`})]}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[r.models.length,` model`,r.models.length===1?``:`s`,r.credentialVariants?.length?` · ${r.credentialVariants.map(e=>e.label).join(` / `)}`:``]})]}),(0,K.jsxs)(X,{size:`sm`,variant:o?`secondary`:`primary`,onClick:()=>t.openProviderConnect(r.id),children:[(0,K.jsx)(Y.Plus,{className:`w-3 h-3`}),` `,o?`Manage…`:`Connect`]})]},r.id)})]})}function DD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(``);return(0,v.useEffect)(()=>{t.refreshHosts()},[t]),e.account?.loggedIn?e.remote.supported?(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[e.remote.loading?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-4 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{}),` Loading devices…`]}):null,e.remote.hosts.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,children:[(0,K.jsx)(Y.Monitor,{className:`w-4 h-4 shrink-0 text-fg-faint`}),(0,K.jsx)(`div`,{className:`min-w-0 flex-1`,children:n===e.hostId?(0,K.jsx)(`input`,{className:Af,value:i,autoFocus:!0,"aria-label":`Label for ${e.hostName}`,onChange:e=>a(e.target.value),onKeyDown:n=>{n.key===`Enter`&&i.trim()?(t.renameHost(e.hostId,i.trim()),r(null)):n.key===`Escape`&&r(null)}}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium`,children:[e.label||e.hostName,e.isSelf?(0,K.jsx)(Mf,{tone:`accent`,children:`this PC`}):null,(0,K.jsx)(Mf,{tone:e.online?`ok`:`neutral`,children:e.online?`online`:`offline`})]}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[e.platform,e.appVersion?` · v${e.appVersion}`:``,e.lastSeenAt?` · seen ${bu(e.lastSeenAt)}`:``]})]})}),n===e.hostId?(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>{i.trim()&&t.renameHost(e.hostId,i.trim()),r(null)},children:`Save`}):(0,K.jsxs)(X,{size:`sm`,onClick:()=>{r(e.hostId),a(e.label||e.hostName)},children:[(0,K.jsx)(Y.Edit,{className:`w-3 h-3`}),` Rename`]})]},e.hostId)),!e.remote.loading&&e.remote.hosts.length===0?(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`No devices reported yet.`}):null]}):(0,K.jsxs)(`div`,{className:`rounded-md border border-border px-3 py-3 text-sm text-fg-muted`,children:[`This host build cannot list your account's devices yet (the relay lands with the server phase). This PC is `,(0,K.jsx)(`strong`,{children:e.connection.hostName??`unknown`}),`.`]}):(0,K.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`Sign in to see the devices on your account.`})}function OD({draft:e,set:t}){let n=e=>e.trim()?e.trim():null;return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(kf,{label:`Default permission mode`,children:(0,K.jsx)(`select`,{className:jf,value:e.defaultPermissionMode,onChange:e=>t(`defaultPermissionMode`,e.target.value),children:rE.map(e=>(0,K.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),(0,K.jsx)(kf,{label:`Default working directory`,hint:`Pre-filled when a new chat needs a folder.`,children:(0,K.jsx)(`input`,{className:Af,value:e.defaultCwd??``,onChange:e=>t(`defaultCwd`,n(e.target.value)),placeholder:`D:\\projects`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Gateway URL`,hint:`Your OonaCode server: the account, the pooled models it bills in credits, and the update feed. Your own keys and subscriptions never go through it.`,children:(0,K.jsx)(`input`,{className:Af,value:e.gatewayUrl??``,onChange:e=>t(`gatewayUrl`,n(e.target.value)),placeholder:x,spellCheck:!1})}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.mirrorHistory,onChange:e=>t(`mirrorHistory`,e.target.checked)}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Mirror session history to my account`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Encrypted on this PC with your vault key before upload; the server only stores ciphertext. Lets you browse history from other devices even when this PC is offline.`})]})]}),(0,K.jsx)(AD,{}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.relayEnabled??!0,onChange:e=>t(`relayEnabled`,e.target.checked),"data-testid":`settings-relay`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Remote access — let my other devices reach this PC`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Keeps an outbound, end-to-end encrypted channel to the gateway while you are signed in and the vault is unlocked, so a session that runs here can be continued from your other PCs and the website. On by default; off means history only.`})]})]}),(0,K.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e.keepUnlockedOnExit??!1,onChange:e=>t(`keepUnlockedOnExit`,e.target.checked),"data-testid":`settings-keep-unlocked-exit`}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Keep the vault unlocked when the app closes`}),(0,K.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:`Off by default (owner, 2026-08-30): closing the desktop app locks this device — chats close and keys become unreadable until you unlock. Turn this on to leave the vault open on exit, e.g. on a PC only you use.`})]})]}),(0,K.jsx)(kf,{label:`Git Bash path (Windows)`,hint:`Custom bash.exe for the engine (writes CLAUDE_CODE_GIT_BASH_PATH for the agent process only).`,children:(0,K.jsx)(`input`,{className:Af,value:e.gitBashPath??``,onChange:e=>t(`gitBashPath`,n(e.target.value)),placeholder:`C:\\Program Files\\Git\\bin\\bash.exe`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Claude engine binary override`,hint:`Leave empty to use the bundled, pinned engine.`,children:(0,K.jsx)(`input`,{className:Af,value:e.claudeBinaryOverride??``,onChange:e=>t(`claudeBinaryOverride`,n(e.target.value)),placeholder:`C:\\path\\to\\claude.exe`,spellCheck:!1})}),(0,K.jsx)(kf,{label:`Extra allowed origins`,hint:`One per line. Loopback is always allowed; everything else is rejected by the host.`,children:(0,K.jsx)(`textarea`,{className:Af,rows:3,value:e.allowedOrigins,onChange:e=>t(`allowedOrigins`,e.target.value),spellCheck:!1})}),(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`Telemetry: off (not configurable — OonaCode never sends usage data).`})]})}function kD({open:e,onClose:t}){let{state:n,actions:r}=q(),[i,a]=(0,v.useState)(`general`),o=n.ui.settingsSection;(0,v.useEffect)(()=>{e&&o&&a(o)},[e,o]);let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(!e){c(null);return}if(!n.settings){r.refreshSettings();return}let t=n.settings;c(e=>e??bD(t))},[e,n.settings,r]);let d=(e,t)=>c(n=>n&&{...n,[e]:t}),f=async()=>{if(s){u(!0);try{await r.saveSettings({defaultPermissionMode:s.defaultPermissionMode,defaultCwd:s.defaultCwd,mirrorHistory:s.mirrorHistory,relayEnabled:s.relayEnabled??!0,keepUnlockedOnExit:s.keepUnlockedOnExit??!1,gitBashPath:s.gitBashPath,claudeBinaryOverride:s.claudeBinaryOverride,gatewayUrl:s.gatewayUrl,theme:s.theme,allowedOrigins:s.allowedOrigins.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),telemetry:!1}),t()}finally{u(!1)}}};return(0,K.jsx)(Nf,{open:e,title:`Settings`,onClose:t,wide:!0,footer:i===`host`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,children:`Cancel`}),(0,K.jsx)(X,{variant:`primary`,busy:l,disabled:!s,onClick:()=>void f(),children:`Save`})]}):(0,K.jsx)(X,{onClick:t,children:`Done`}),children:(0,K.jsxs)(`div`,{className:`flex min-h-[22rem] gap-4`,children:[(0,K.jsxs)(`nav`,{className:`w-36 shrink-0 space-y-0.5`,"aria-label":`Settings sections`,children:[yD.map(e=>{let t=e.icon;return(0,K.jsxs)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-current":i===e.id?`true`:void 0,className:W(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,i===e.id?`bg-accent-soft font-medium text-accent`:`text-fg-muted hover:bg-surface-2`),children:[(0,K.jsx)(t,{className:`w-3.5 h-3.5`}),e.label]},e.id)}),(0,K.jsxs)(`div`,{className:`pt-3 text-[11px] text-fg-faint`,children:[`OonaCode Desktop v`,Fd(typeof window<`u`&&window.oonacode?.appVersion||n.connection.appVersion||`0.0.0`,Pd({bridge:typeof window<`u`?window.oonacode:void 0,info:n.info}))]})]}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[i===`general`?(0,K.jsx)(xD,{}):null,i===`theme`?(0,K.jsx)(wD,{}):null,i===`advanced`?(0,K.jsx)(TD,{}):null,i===`providers`?(0,K.jsx)(ED,{}):null,i===`devices`?(0,K.jsx)(DD,{}):null,i===`host`?s?(0,K.jsx)(OD,{draft:s,set:d}):(0,K.jsx)(`div`,{className:`py-6 text-sm text-fg-muted`,children:`Loading settings…`}):null]})]})})}function AD(){let{api:e,state:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(0),f=t.sessionsTotal||t.sessions.length;(0,v.useEffect)(()=>{if(!i){d(0);return}let e=Date.now(),t=setInterval(()=>d(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[i]);let p=async()=>{if(!e.exportSessionsArchive){s(`this PC is running an older OonaCode that cannot export chats`);return}a(!0),s(null);try{let t=await e.exportSessionsArchive(n),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=`oonacode-chats-${new Date().toISOString().slice(0,10)}.zip`,a.click(),URL.revokeObjectURL(i),r(``),l(!1)}catch(e){s(e instanceof Error?e.message:`the export failed`)}finally{a(!1)}};return(0,K.jsxs)(`div`,{className:`rounded-md border border-border p-3`,children:[(0,K.jsx)(Nf,{open:i,title:`Exporting your chats`,onClose:()=>void 0,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(Y.Spinner,{className:`mt-0.5 w-5 h-5 shrink-0 text-accent`}),(0,K.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[(0,K.jsxs)(`div`,{className:`font-medium`,children:[`Packing`,` `,f>0?`${f} chat${f===1?``:`s`}`:`your chats`,`…`]}),(0,K.jsxs)(`div`,{className:`mt-1 tabular text-fg-muted`,children:[Math.floor(u/60),`:`,String(u%60).padStart(2,`0`),` elapsed`]}),(0,K.jsx)(`p`,{className:`mt-2 text-xs text-fg-faint`,children:`Your PC writes the whole archive before the download starts, so nothing appears in your downloads until it is finished. A long history can take a minute or two — this is normal, and you do not need to press anything again.`})]})]})}),(0,K.jsx)(`div`,{className:`text-sm font-medium`,children:`Export my chats`}),(0,K.jsxs)(`p`,{className:`mt-1 text-xs text-fg-faint`,children:[`One zip with a plain `,(0,K.jsx)(`code`,{children:`.txt`}),` of every conversation on this PC, plus an index. It is for reading and copying from — there is no way to load it back in.`]}),(0,K.jsx)(`p`,{className:`mt-1 text-xs text-warn`,children:`The zip is not encrypted: anyone who opens it can read every conversation in it.`}),c?(0,K.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`password`,autoFocus:!0,className:Af+` max-w-[16rem]`,placeholder:`Account password`,value:n,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&n&&p()},"data-testid":`export-chats-password`}),(0,K.jsx)(X,{onClick:()=>void p(),disabled:i||!n,children:i?`Exporting…`:`Export`}),(0,K.jsx)(X,{variant:`ghost`,onClick:()=>{l(!1),r(``),s(null)},children:`Cancel`})]}):(0,K.jsx)(X,{className:`mt-2`,onClick:()=>l(!0),"data-testid":`export-chats`,children:`Export chats…`}),o?(0,K.jsx)(`div`,{className:`mt-2 text-xs text-danger`,children:o}):null]})}function jD({toast:e}){let{actions:t}=q();(0,v.useEffect)(()=>{let n=setTimeout(()=>t.dismissToast(e.id),e.kind===`error`?9e3:5e3);return()=>clearTimeout(n)},[e.id,e.kind,t]);let n=e.kind===`error`?`border-danger/50 bg-danger-soft text-danger`:e.kind===`success`?`border-ok/50 bg-ok-soft text-ok`:`border-border bg-surface text-fg`;return(0,K.jsxs)(`div`,{role:e.kind===`error`?`alert`:`status`,className:W(`pointer-events-auto flex max-w-sm items-start gap-2 rounded-md border px-3 py-2 text-sm shadow-md`,n),children:[e.kind===`error`?(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-4 h-4`}):e.kind===`success`?(0,K.jsx)(Y.Check,{className:`mt-0.5 w-4 h-4`}):null,(0,K.jsx)(`div`,{className:`pre-wrap min-w-0 flex-1`,children:e.text}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`opacity-60 hover:opacity-100`,onClick:()=>t.dismissToast(e.id),children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]})}function MD(){let{state:e}=q();return e.toasts.length===0?null:(0,K.jsx)(`div`,{className:`pointer-events-none fixed bottom-4 right-4 z-50 flex flex-col gap-2`,children:e.toasts.map(e=>(0,K.jsx)(jD,{toast:e},e.id))})}var ND=2e3;function PD(e){if(!FD(e))return;let t=typeof window<`u`?window.oonacode:void 0;if(t?.openExternal){t.openExternal(e).catch(()=>void 0);return}typeof window<`u`&&window.open(e,`_blank`,`noopener,noreferrer`)}function FD(e){if(typeof e!=`string`||e===``)return!1;try{let{protocol:t}=new URL(e);return t===`http:`||t===`https:`}catch{return!1}}function ID(e){if(e.message)return e.message;switch(e.status){case`denied`:return`That request was denied in the browser. Start again if it was you.`;case`expired`:return`The code expired before it was approved. Start again for a fresh one.`;default:return`The sign-in could not be started. Check that this PC can reach the gateway.`}}function LD({children:e,testId:t}){let{state:n}=q(),r=n.connection.hostName??n.info?.hostName??null;return(0,K.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,"data-testid":t,children:[(0,K.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface px-3`,children:[(0,K.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),r?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-fg-faint`,children:`/`}),(0,K.jsx)(`span`,{className:`truncate text-sm text-fg-muted`,"data-testid":`frame-host-name`,children:r})]}):null]}),(0,K.jsx)(`main`,{className:`flex min-h-0 flex-1 items-start justify-center overflow-y-auto p-6`,children:(0,K.jsx)(`div`,{className:`w-full max-w-md py-6`,children:e})}),(0,K.jsx)(MD,{})]})}function RD(){return(0,K.jsx)(LD,{testId:`account-loading`,children:(0,K.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{className:`w-4 h-4`}),(0,K.jsx)(`span`,{children:`Checking your account…`})]})})}function zD({link:e}){let{actions:t}=q(),[n,r]=(0,v.useState)(!1),i=e.verificationUrl??``,a=e.verificationUrlComplete??i,o=FD(a),s=t.refreshAccountLink;return(0,v.useEffect)(()=>{let e=setInterval(()=>void s(),ND);return()=>clearInterval(e)},[s]),(0,K.jsxs)(`div`,{className:`space-y-3`,"data-testid":`link-waiting`,children:[(0,K.jsxs)(`ol`,{className:`space-y-2 text-sm`,children:[(0,K.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`1. Open`}),o?(0,K.jsx)(`a`,{className:`break-all font-medium text-accent underline`,href:a,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`link-url`,onClick:e=>{window.oonacode?.openExternal&&(e.preventDefault(),PD(a))},children:i}):(0,K.jsx)(`span`,{className:`break-all font-medium`,"data-testid":`link-url`,children:i})]}),(0,K.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`2. Enter`}),(0,K.jsx)(`span`,{className:`select-all rounded-md border border-border bg-surface-2 px-2.5 py-1 font-mono text-base tracking-widest`,"data-testid":`link-user-code`,children:e.userCode})]})]}),(0,K.jsxs)(`p`,{className:`flex items-center gap-2 text-xs text-fg-muted`,role:`status`,children:[(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{children:`Waiting for approval in your browser…`})]}),(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,children:`Approve this code only if you are looking at it on your own screen right now. It is good for a few minutes and can be used once.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[o?(0,K.jsxs)(X,{size:`sm`,onClick:()=>PD(a),"data-testid":`link-reopen`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),` Open the browser again`]}):null,(0,K.jsx)(X,{size:`sm`,variant:`ghost`,busy:n,"data-testid":`link-cancel`,onClick:()=>{r(!0),t.cancelAccountLink().finally(()=>r(!1))},children:`Cancel`})]})]})}function BD(e){if(typeof e!=`string`||e===``)return null;try{let t=new URL(e).hostname;if(!t)return null;let n=/^api(?:-([a-z0-9-]+))?.(.+)$/i.exec(t),r=n?.[2];return n&&r?n[1]?n[1]+`.`+r:r:t}catch{return null}}function VD(){let{state:e,actions:t}=q(),n=e.accountLink,r=BD(n?.verificationUrl??e.settings?.gatewayUrl??e.account?.gatewayUrl??null),[i,a]=(0,v.useState)(!1),o=(0,v.useCallback)(async()=>{a(!0);try{let e=await t.startAccountLink();e?.status===`waiting`&&PD(e.verificationUrlComplete??e.verificationUrl??``)}finally{a(!1)}},[t]);if(n?.status===`waiting`)return(0,K.jsx)(zD,{link:n});let s=n&&(n.status===`denied`||n.status===`expired`);return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[s?(0,K.jsx)(`p`,{role:`status`,"data-testid":`link-refused`,className:`rounded-md border border-warn/50 bg-warn-soft px-3 py-2 text-xs text-fg`,children:ID(n)}):null,(0,K.jsxs)(X,{variant:`primary`,busy:i,onClick:()=>void o(),"data-testid":`link-start`,className:`w-full justify-center`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),s?`Try again in your browser`:`Sign in with your browser`]}),(0,K.jsxs)(`p`,{className:`text-xs text-fg-faint`,"data-testid":`link-site-note`,children:[`Opens `,r??`your account page`,` and shows a short code to confirm. Your password is never typed on this machine, and this PC never sees anyone else's.`]})]})}function HD(){let{state:e}=q(),[t,n]=(0,v.useState)(!1),r=t||e.emailVerification!==null;return(0,K.jsx)(LD,{testId:`sign-in-view`,children:(0,K.jsxs)(`div`,{className:`space-y-5`,children:[(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight`,children:`Sign in to use OonaCode`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`OonaCode runs the agent on this PC, with your own providers — but it needs an OonaCode account. There is no guest mode.`})]}),(0,K.jsx)(VD,{}),(0,K.jsx)(`div`,{className:W(`space-y-3 border-t border-border pt-4`,r?``:`text-center`),children:r?(0,K.jsx)(Wf,{}):(0,K.jsx)(X,{size:`sm`,variant:`ghost`,"data-testid":`use-password`,onClick:()=>n(!0),children:`Use an email and password instead`})})]})})}function UD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!0),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(null),u=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>u.current?.focus();e();let t=setTimeout(e,60);return()=>clearTimeout(t)},[]),(0,K.jsxs)(`div`,{className:`flex min-h-screen items-center justify-center bg-surface-1 p-6`,"data-testid":`locked-view`,onMouseDown:()=>u.current?.focus(),children:[(0,K.jsxs)(`form`,{onSubmit:e=>{if(e.preventDefault(),!n||o)return;s(!0),l(null);let a=null;t.unlock(n,{keepUnlocked:i,onError:e=>{a=e}}).then(e=>{s(!1),e?r(``):l(a??`Wrong password — the vault stays locked.`)})},className:`w-full max-w-sm space-y-4 text-center`,children:[(0,K.jsx)(Y.Lock,{className:`mx-auto h-10 w-10 text-fg-faint`}),(0,K.jsx)(`h1`,{className:`text-lg font-semibold`,children:`This device is locked`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`The vault, your keys and every session on this PC stay unreadable until you unlock — with your account password here, or remotely from another of your devices.`}),(0,K.jsx)(`input`,{ref:u,type:`password`,className:Af,value:n,onChange:e=>r(e.target.value),onMouseDown:e=>e.stopPropagation(),placeholder:`Account password`,autoFocus:!0,"data-testid":`locked-password`}),(0,K.jsxs)(`label`,{className:`flex items-start justify-center gap-2 text-sm text-fg-muted`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:i,onChange:e=>a(e.target.checked),"data-testid":`locked-keep-unlocked`}),(0,K.jsx)(`span`,{children:`Keep me unlocked on this PC`})]}),c?(0,K.jsx)(`div`,{className:`text-sm text-danger`,"data-testid":`locked-error`,children:c}):null,(0,K.jsx)(X,{type:`submit`,variant:`primary`,busy:o,disabled:!n,children:`Unlock`}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[`Signed in as `,e.account?.email??`this account`,` ·`,` `,(0,K.jsx)(`button`,{type:`button`,className:`underline hover:text-fg`,onClick:()=>void t.logout(),children:`Sign out`})]})]}),(0,K.jsx)(MD,{})]})}function WD({name:e,state:t,behind:n,detail:r}){return(0,K.jsxs)(`div`,{"data-testid":`sync-side`,className:`min-w-0 flex-1 rounded-md border p-3 ${n?`border-warn bg-warn-soft/40`:`border-border bg-surface-2`}`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-sm font-medium`,children:[(0,K.jsx)(`span`,{className:`min-w-0 truncate`,children:e}),n?(0,K.jsx)(`span`,{className:`shrink-0 text-[11px] font-normal text-warn`,children:`behind`}):null]}),(0,K.jsx)(`div`,{className:`mt-1 text-[11px] text-fg-faint`,children:t.entryCount===null?`size not read`:`${t.entryCount} ${t.entryCount===1?`entry`:`entries`}`}),(0,K.jsx)(`div`,{className:`text-[11px] text-fg-faint`,title:xu(t.lastEntryAt),children:t.lastEntryAt?`last message ${bu(t.lastEntryAt)}`:`no timestamps`}),r?(0,K.jsx)(`div`,{className:`mt-1 break-all text-[11px] text-fg-faint`,children:r}):null]})}function GD({sessionId:e,sessionTitle:t,onClose:n}){let{actions:r}=q(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),f=(0,v.useCallback)(async()=>{if(e){s(!0);try{a(await r.refreshSessionLink(e))}finally{s(!1)}}},[e,r]);(0,v.useEffect)(()=>{d(null),a(null),f()},[f]);let p=async()=>{if(e){l(!0);try{let t=await r.syncSessionDown(e);d(t),t&&a(t.link)}finally{l(!1)}}},m=i?.status===`ours-behind`,h=i?.status===`theirs-behind`;return(0,K.jsx)(Nf,{open:e!==null,title:`Sync with the original chat`,onClose:n,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{variant:`ghost`,onClick:n,children:`Close`}),(0,K.jsx)(X,{variant:`primary`,busy:c,onClick:()=>void p(),disabled:!i?.canDownstream||o,"data-testid":`sync-down-confirm`,children:c?`Syncing…`:m?`Bring the new messages in`:`Check again`})]}),children:o&&!i?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,K.jsx)(Y.Spinner,{className:`w-4 h-4 spin`}),` Reading the original…`]}):i?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,K.jsx)(WD,{name:`OonaCode · ${t}`,state:i.ours,behind:m}),(0,K.jsx)(WD,{name:i.agentName,state:i.theirs,behind:h,detail:i.file})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`sync-explanation`,children:m?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`strong`,{children:[i.agentName,` has newer messages.`]}),` Bringing them in adds them to this chat — nothing here is replaced or removed, and `,i.agentName,` is not written to.`]}):h?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`strong`,{children:`This chat is the newer one.`}),` Nothing is sent back: OonaCode never writes into your `,i.agentName,` install, so the copy over there stays as it is.`]}):(0,K.jsx)(K.Fragment,{children:`Both copies are at the same point. There is nothing to bring in.`})}),u?(0,K.jsx)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-sm`,"data-testid":`sync-result`,children:u.added>0?`${u.added} new ${u.added===1?`message`:`messages`} added to this chat.`:`Already up to date — nothing to bring in.`}):null]}):(0,K.jsx)(`p`,{className:`py-4 text-sm text-fg-muted`,children:`This PC no longer has the chat this one was imported from, so there is nothing to compare it with. Nothing is wrong with the chat itself — it stays exactly as it is.`})})}function KD({status:e}){return(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 shrink-0 rounded-full`,e===`running`?`bg-accent animate-pulse`:e===`waiting_permission`?`bg-warn animate-pulse`:e===`error`?`bg-danger`:`bg-transparent`),"aria-hidden":!0})}function qD(e){return e.some(e=>e.status===`running`)?`running`:e.some(e=>e.status===`waiting_permission`)?`waiting_permission`:`idle`}function JD({sessions:e,testId:t}){let n=qD(e);if(n===`idle`)return null;let r=e.filter(e=>e.status===`running`||e.status===`waiting_permission`).length;return(0,K.jsx)(`span`,{className:`inline-flex shrink-0 items-center`,title:n===`running`?`${r} chat${r===1?``:`s`} working`:`${r} chat${r===1?``:`s`} waiting for permission`,"aria-label":`${r} active chat${r===1?``:`s`}`,"data-testid":t,children:(0,K.jsx)(KD,{status:n})})}var YD=`flex w-full items-center gap-1 rounded px-2 py-1 text-left text-[11px] font-semibold uppercase tracking-wide text-fg-faint hover:bg-surface-2`,XD=`flex w-full items-center gap-1.5 rounded border-l-2 border-project/70 bg-surface-2/40 px-2 py-1.5 text-left text-[13px] font-semibold tracking-normal text-fg hover:bg-surface-2`;function ZD(){let{state:e,actions:t}=q(),[n,r]=(0,v.useState)({}),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(()=>d(null),[]),h=eO(),g=e=>r(t=>({...t,[e]:t[e]!==!0})),_=e=>n[e]===!0,y=e.prefs.collapsedProjects,b=e=>y.includes(e),x=e=>{let n=b(e)?y.filter(t=>t!==e):[...y,e];t.savePrefs({collapsedProjects:n})},S=e=>{t.savePrefs({collapsedProjects:e?C.map(e=>e.key):[]})},C=(0,v.useMemo)(()=>{let t=new Map;for(let n of e.vaultProjects)t.set(n.id,{name:n.name,sessions:[]});let n=[];for(let r of e.sessions){if(e.remote.tabs[r.id])continue;let i=r.projectId?t.get(r.projectId):void 0;i?i.sessions.push(r):n.push(r)}let r=[...t.entries()].map(([e,t])=>({key:e,name:t.name,projectId:e,sessions:t.sessions.slice().sort((e,t)=>t.mtime-e.mtime)}));return r.sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),(n.length>0||r.length===0)&&r.push({key:`none`,name:`No project`,projectId:null,sessions:n.slice().sort((e,t)=>t.mtime-e.mtime)}),r},[e.sessions,e.vaultProjects,e.remote.tabs]),w=(0,v.useMemo)(()=>e.remote.hosts.filter(e=>!e.isSelf),[e.remote.hosts]),T=()=>{let e=_(`remote`);g(`remote`),e&&t.refreshHosts()},E=e=>{t.setSearch(e),t.refreshSessions(e)},D=e.sessions.length,O=e.connection.hostName??`This PC`;return(0,K.jsxs)(`nav`,{className:`flex h-full w-full flex-col bg-surface`,"aria-label":`Sessions`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border p-2`,children:[(0,K.jsxs)(`div`,{className:`relative flex-1`,children:[(0,K.jsx)(Y.Search,{className:`pointer-events-none absolute left-2 top-2 w-3.5 h-3.5 text-fg-faint`}),(0,K.jsx)(`input`,{"aria-label":`Search sessions`,className:W(Af,`pl-7`),placeholder:`Search sessions`,value:e.search,onChange:e=>E(e.target.value)})]}),(0,K.jsx)(Of,{label:`Refresh sessions`,onClick:()=>{t.refreshSessions(),t.refreshHosts()},children:(0,K.jsx)(Y.Refresh,{className:e.sessionsLoading?`spin`:``})}),e.account?.loggedIn?(0,K.jsx)(Of,{label:`Import chats from your other coding agents`,onClick:()=>t.openDialog(`import-claude`),"data-testid":`open-import-claude`,children:(0,K.jsx)(Y.Download,{})}):null,(0,K.jsx)(Of,{label:`Collapse all projects`,onClick:()=>S(!0),"data-testid":`projects-collapse-all`,children:(0,K.jsx)(Y.CollapseAll,{})}),(0,K.jsx)(Of,{label:`Expand all projects`,onClick:()=>S(!1),"data-testid":`projects-expand-all`,children:(0,K.jsx)(Y.ExpandAll,{})}),(0,K.jsx)(Of,{label:`Projects`,onClick:()=>t.openDialog(`projects`),"data-testid":`open-projects`,children:(0,K.jsx)(Y.Project,{})})]}),(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:[(0,K.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-local`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:()=>g(`local`),"aria-expanded":!_(`local`),title:O,children:[(0,K.jsx)(Y.Chevron,{open:!_(`local`),className:`w-3 h-3`}),(0,K.jsx)(Y.Monitor,{className:`w-3 h-3`}),(0,K.jsxs)(`span`,{className:`truncate`,children:[`Local · `,O]}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:D})]}),_(`local`)?null:(0,K.jsxs)(K.Fragment,{children:[e.sessionsError?(0,K.jsx)(`div`,{className:`px-2 py-2 text-xs text-danger`,children:e.sessionsError}):null,!e.sessionsLoading&&D===0&&!e.sessionsError?(0,K.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-fg-faint`,children:e.search?`No sessions match.`:`No sessions yet — press + to start one.`}):null,C.map(n=>{let r=`local:${n.key}`;return(0,K.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`project-group-${n.key}`,children:[(0,K.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,K.jsx)(iO,{group:n,collapsed:b(n.key),onToggle:()=>x(n.key)}),n.projectId?(0,K.jsx)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:(0,K.jsx)(Of,{label:`New chat in ${n.name}`,className:`p-1`,"data-testid":`project-new-chat-${n.key}`,onClick:e=>{e.stopPropagation(),t.newTab({projectId:n.projectId})},children:(0,K.jsx)(Y.Plus,{className:`w-3.5 h-3.5`})})}):null]}),b(n.key)?null:n.sessions.map(t=>(0,K.jsx)(cO,{session:t,active:t.id===e.currentSessionId,link:e.sessionLinks[t.id]??null,onMenu:(e,n)=>d({session:t,at:e,el:n})},t.id))]},r)})]})]}),(0,K.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-remote`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:T,"aria-expanded":!_(`remote`),children:[(0,K.jsx)(Y.Chevron,{open:!_(`remote`),className:`w-3 h-3`}),(0,K.jsx)(Y.Globe,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:`truncate`,children:`Remote`}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:w.length})]}),_(`remote`)?null:(0,K.jsxs)(K.Fragment,{children:[!e.remote.supported||e.remote.reason===`logged_out`?(0,K.jsx)(`div`,{className:`px-3 py-3 text-xs text-fg-faint`,children:`Sign in to see the sessions of your other devices.`}):w.length===0?(0,K.jsx)(`div`,{className:`px-3 py-3 text-xs text-fg-faint`,children:e.remote.loading?`Looking for your other devices…`:`No other devices yet.`}):null,w.map(e=>(0,K.jsx)(QD,{host:e,collapsed:_(`host:${e.hostId}`)||n[`host:${e.hostId}`]===void 0,onToggle:()=>{let i=`host:${e.hostId}`,a=n[i]===void 0||n[i]===!0;r(e=>({...e,[i]:!a})),a&&t.refreshHostSessions(e.hostId)}},e.hostId))]})]})]}),(0,K.jsx)(`div`,{className:`shrink-0 border-t border-border px-3 py-2 text-[11px] text-fg-faint`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,"data-testid":`app-version`,title:`What's new in this version`,className:`truncate hover:text-fg hover:underline`,onClick:()=>t.openDialog(`whats-new`),children:[`OonaCode Desktop v`,h]}),(0,K.jsx)(Of,{label:`Lock this device — vault and sessions`,className:`p-1`,"data-testid":`lock-device`,onClick:()=>l(!0),children:(0,K.jsx)(Y.Lock,{className:`h-3.5 w-3.5`})})]})}),(0,K.jsx)(Sw,{open:u!==null,at:u?.at??{x:0,y:0},anchorEl:u?.el??null,label:`Chat actions`,onClose:m,items:u?tO({session:u.session,link:e.sessionLinks[u.session.id]??null,actions:t,onSync:()=>p(u.session),onRename:()=>s(u.session),onDelete:()=>a(u.session)}):[]}),(0,K.jsx)(GD,{sessionId:f?.id??null,sessionTitle:f?Du(f):``,onClose:()=>p(null)}),(0,K.jsx)(Lf,{open:i!==null,title:`Delete this chat?`,message:`Its conversation is removed from this PC and from your account, so it stops showing on your other devices and on the website. Your files, folder and code are not touched — only the chat is deleted.`,onConfirm:()=>{i&&t.deleteSession(i.id)},onClose:()=>a(null)}),(0,K.jsx)(Rf,{open:o!==null,title:`Rename chat`,label:`Session title`,initialValue:o?Du(o):``,onSubmit:e=>{o&&e!==Du(o)&&t.renameSession(o.id,e)},onClose:()=>s(null)}),(0,K.jsx)(Lf,{open:c,title:`Lock this device?`,confirmLabel:`Lock`,message:`Every chat closes and nothing on this PC can be read or run until you unlock — here with your password, or remotely from another device.`,onConfirm:()=>void t.lockDevice(),onClose:()=>l(!1)})]})}function QD({host:e,collapsed:t,onToggle:n}){let{state:r,actions:i}=q(),a=e.label||e.hostName,o=r.remote.sessions[e.hostId],[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null);return(0,K.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`remote-host-${e.hostId}`,children:[(0,K.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,K.jsxs)(`button`,{type:`button`,className:YD,onClick:n,"aria-expanded":!t,title:e.online?`${a} — online`:`${a} — offline (read-only history)`,children:[(0,K.jsx)(Y.Chevron,{open:!t,className:`w-3 h-3`}),(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 shrink-0 rounded-full`,e.online?`bg-ok`:`bg-fg-faint`),"aria-label":e.online?`online`:`offline`}),(0,K.jsx)(`span`,{className:`truncate normal-case`,children:a}),(0,K.jsx)(`span`,{className:`ml-auto font-normal`,children:o?o.length:``})]}),(0,K.jsxs)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:[(0,K.jsx)(Of,{label:e.online?`New chat on ${a}`:`${a} is offline — a new chat has to start on a PC that is awake`,className:`p-1`,disabled:!e.online,"data-testid":`remote-new-chat-${e.hostId}`,onClick:()=>void i.newRemoteTab(e.hostId),children:(0,K.jsx)(Y.Plus,{className:`w-3 h-3`})}),(0,K.jsx)(Of,{label:`Unlock this device`,className:`p-1`,"data-testid":`remote-unlock-${e.hostId}`,onClick:()=>c(`unlock`),children:(0,K.jsx)(Y.Lock,{className:`w-3 h-3`})}),(0,K.jsx)(Of,{label:`Rename device`,className:`p-1`,onClick:()=>c(`rename`),children:(0,K.jsx)(Y.Edit,{className:`w-3 h-3`})})]}),(0,K.jsx)(Rf,{open:s===`unlock`,title:`Unlock "${a}" remotely`,label:`Your account password — it never leaves this PC: the keys are sealed to that device and the server cannot read them.`,password:!0,submitLabel:`Unlock`,onSubmit:t=>void i.remoteUnlockHost(e.hostId,t),onClose:()=>c(null)}),(0,K.jsx)(Rf,{open:s===`rename`,title:`Rename device`,label:`Device name`,initialValue:a,onSubmit:t=>{t!==a&&i.renameHost(e.hostId,t)},onClose:()=>c(null)})]}),t?null:o===void 0?(0,K.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`Loading…`}):o.length===0?(0,K.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`No sessions on this device.`}):o.map(t=>(0,K.jsx)($D,{host:e,session:t,active:t.id===r.currentSessionId,onConfirmDelete:()=>u(t)},t.id)),(0,K.jsx)(Lf,{open:l!==null,title:`Delete this chat?`,message:`Its conversation is removed from ${e.hostName} and from your account, so it stops showing here and on the website. Files, folders and code on that PC are not touched — only the chat is deleted.`,onConfirm:()=>{l&&i.deleteRemoteSession(e.hostId,l.id)},onClose:()=>u(null)})]})}function $D({host:e,session:t,active:n,onConfirmDelete:r}){let{actions:i}=q(),a=Du(t);return(0,K.jsxs)(`div`,{className:W(`group flex items-center rounded-md`,n?`bg-accent-soft`:`hover:bg-surface-2`),children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{i.openRemoteSession(e.hostId,t.id),window.innerWidth<768&&i.setSidebar(!1)},className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left`,"aria-current":n?`true`:void 0,"data-testid":`remote-session-${t.id}`,title:e.online?void 0:`Read-only until that PC is online`,children:[(0,K.jsx)(KD,{status:t.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:W(`truncate text-sm`,n?`font-medium`:``),children:a}),(0,K.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[bu(t.updatedAt),t.model?` · ${t.model}`:``,e.online?``:` · read-only`]})]})]}),(0,K.jsx)(`div`,{className:`mr-1 hidden items-center gap-0.5 rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:(0,K.jsx)(Of,{label:e.online?`Delete this chat`:`That PC is asleep — a chat can only be deleted while the PC that holds it is online`,className:`p-1 hover:text-danger disabled:opacity-40`,disabled:!e.online,"data-testid":`remote-session-delete-${t.id}`,onClick:()=>{r()},children:(0,K.jsx)(Y.Trash,{className:`w-3.5 h-3.5`})})})]})}function eO(){let{state:e}=q(),t=typeof window<`u`?window.oonacode:void 0;return Fd(t?.appVersion??e.bundleAppVersion??e.connection.appVersion??e.info?.appVersion??`0.0.0`,Pd({bridge:t,info:e.info}))}function tO({session:e,link:t,actions:n,onSync:r,onRename:i,onDelete:a}){let o=[];return t?.status===`ours-behind`&&o.push({key:`sync`,label:`Sync with ${t.agentName}…`,hint:`behind`,icon:(0,K.jsx)(Y.Download,{className:`w-3.5 h-3.5`}),onSelect:r,testId:`session-menu-sync`}),o.push({key:`project`,label:`Move to Project`,icon:(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5`}),separated:o.length>0,onSelect:()=>n.openAssignProject(e.id),testId:`session-menu-project`},{key:`folder`,label:`Change folder…`,icon:(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.openDialog(`project`)},testId:`session-menu-folder`},{key:`details`,label:`Details`,icon:(0,K.jsx)(Y.Info,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.savePrefs({sessionPanelOpen:!0})},testId:`session-menu-details`},{key:`files`,label:`Files`,icon:(0,K.jsx)(Y.File,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.selectSession(e.id),n.savePrefs({explorerOpen:!0})},testId:`session-menu-files`},{key:`rename`,label:`Rename…`,icon:(0,K.jsx)(Y.Edit,{className:`w-3.5 h-3.5`}),onSelect:i,testId:`session-menu-rename`},{key:`fork`,label:`Fork`,icon:(0,K.jsx)(Y.Fork,{className:`w-3.5 h-3.5`}),onSelect:()=>void n.forkSession(e.id),testId:`session-menu-fork`},{key:`delete`,label:`Delete`,icon:(0,K.jsx)(Y.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:a,testId:`session-menu-delete`}),o}function nO({link:e}){return e?.status===`ours-behind`?(0,K.jsxs)(`span`,{className:`ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-warn-soft px-1 text-[10px] font-medium leading-4 text-warn`,title:`${e.agentName} has newer messages in this chat — right-click to bring them in`,"data-testid":`session-behind-${e.sessionId}`,"aria-label":`behind its original`,children:[(0,K.jsx)(Y.ArrowDown,{className:`w-2.5 h-2.5`}),`behind`]}):null}var rO={idle:`idle`,running:`working`,waiting_permission:`waiting for permission`,error:`error`};function iO({group:e,collapsed:t,onToggle:n}){let r=(0,v.useRef)(null),i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null),s=(0,v.useCallback)(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);return(0,v.useEffect)(()=>{if(a===null)return;let e=e=>{bw(e.target,r.current)&&s()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[a,s]),(0,v.useEffect)(()=>()=>{i.current!==null&&clearTimeout(i.current)},[]),(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`button`,{ref:r,type:`button`,className:XD,onClick:()=>{s(),n()},onMouseEnter:()=>{i.current!==null&&clearTimeout(i.current),i.current=setTimeout(()=>{i.current=null,r.current&&o(r.current.getBoundingClientRect())},450)},onMouseLeave:s,"aria-expanded":!t,"data-testid":`project-header-${e.key}`,children:[(0,K.jsx)(Y.Chevron,{open:!t,className:`w-3 h-3 shrink-0`}),(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,K.jsx)(`span`,{className:`truncate`,children:e.name}),(0,K.jsx)(JD,{sessions:e.sessions,testId:`project-busy-${e.key}`}),(0,K.jsx)(`span`,{className:`ml-auto shrink-0 rounded-full bg-surface-3 px-1.5 py-px text-[10px] font-semibold normal-case tracking-normal text-fg-muted`,"data-testid":`project-count-${e.key}`,children:e.sessions.length})]}),a===null?null:(0,K.jsx)(aO,{group:e,anchor:a})]})}function aO({group:e,anchor:t}){let{state:n}=q(),r=e.projectId?n.vaultProjects.find(t=>t.id===e.projectId):void 0,i=e.sessions.filter(e=>e.status===`running`||e.status===`waiting_permission`).length,a=e.sessions.reduce((e,t)=>e===null||t.updatedAt>e?t.updatedAt:e,null),o=[...new Set(e.sessions.map(e=>e.projectDir??e.cwd).filter(e=>typeof e==`string`&&e.length>0))],s=r?.instructions?.trim()??``,c=Math.max(8,Math.min(t.right+8,window.innerWidth-304-8)),l=Math.max(8,Math.min(t.top,window.innerHeight-320));return(0,Cf.createPortal)((0,K.jsxs)(`div`,{role:`tooltip`,"data-testid":`project-details-${e.key}`,className:`fixed z-50 max-h-[20rem] w-[19rem] overflow-y-auto rounded-lg border border-border bg-surface p-3 text-xs shadow-lg`,style:{left:c,top:l},children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5`,children:[(0,K.jsx)(Y.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,K.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.name})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(oO,{label:`Chats`,value:String(e.sessions.length)}),(0,K.jsx)(oO,{label:`Working now`,value:i>0?String(i):null}),(0,K.jsx)(oO,{label:`Last activity`,value:a?bu(a):null}),(0,K.jsx)(oO,{label:o.length>1?`Folders`:`Folder`,value:o.length>1?`${o.length} folders`:o[0]??null})]}),e.projectId?(0,K.jsxs)(`div`,{className:`mt-2 border-t border-border pt-2`,children:[(0,K.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:`Standing instructions`}),s?(0,K.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-fg`,"data-testid":`project-instructions-${e.key}`,children:s.length>400?`${s.slice(0,400)}…`:s}):(0,K.jsx)(`div`,{className:`text-fg-faint`,children:`None — chats here start with nothing extra.`})]}):(0,K.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 text-fg-faint`,children:`Chats filed under no project.`})]}),document.body)}function oO({label:e,value:t}){return t==null||t===``?null:(0,K.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,K.jsx)(`span`,{className:`shrink-0 text-fg-faint`,children:e}),(0,K.jsx)(`span`,{className:`min-w-0 truncate text-right text-fg`,title:t,children:t})]})}function sO({session:e,anchor:t}){let{state:n}=q(),r=n.providers.find(t=>t.definition.id===e.providerId)?.definition,i=r?.models.find(t=>t.id===e.model),a=e.projectId?n.vaultProjects.find(t=>t.id===e.projectId):void 0,o=rE.find(t=>t.value===e.permissionMode)?.label??e.permissionMode,s=_u(e.totalCostUsd)+(e.poolCredits!==void 0&&e.poolCredits!==null?` · ${e.poolCredits} credits`:``),c=Math.max(8,Math.min(t.right+8,window.innerWidth-304-8)),l=Math.max(8,Math.min(t.top,window.innerHeight-360));return(0,Cf.createPortal)((0,K.jsxs)(`div`,{role:`tooltip`,"data-testid":`session-details-${e.id}`,className:`fixed z-50 max-h-[22rem] w-[19rem] overflow-y-auto rounded-lg border border-border bg-surface p-3 text-xs shadow-lg`,style:{left:c,top:l},children:[(0,K.jsx)(`div`,{className:`mb-2 truncate text-sm font-medium text-fg`,children:Du(e)}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(oO,{label:`Model`,value:r&&e.model?`${e.model} · ${r.displayName}`:e.model}),(0,K.jsx)(oO,{label:`Effort`,value:e.effort??`default`}),(0,K.jsx)(oO,{label:`Mode`,value:o}),(0,K.jsx)(oO,{label:`Status`,value:rO[e.status]}),(0,K.jsx)(oO,{label:`Context window`,value:i?.contextWindow?`${yu(i.contextWindow)} tokens`:null}),(0,K.jsx)(oO,{label:`Tokens`,value:`${yu(e.inputTokens)} in · ${yu(e.outputTokens)} out`}),(0,K.jsx)(oO,{label:`Cost`,value:s}),(0,K.jsx)(oO,{label:`Messages`,value:String(e.entryCount)}),(0,K.jsx)(oO,{label:`Folder`,value:e.projectDir??e.cwd}),(0,K.jsx)(oO,{label:`Project`,value:a?.name??null}),(0,K.jsx)(oO,{label:`Created`,value:xu(e.createdAt)}),(0,K.jsx)(oO,{label:`Updated`,value:xu(e.updatedAt)}),(0,K.jsx)(oO,{label:`Forked from`,value:e.forkedFrom}),(0,K.jsx)(oO,{label:`Subagents`,value:e.hasSubagents?`yes`:null}),(0,K.jsx)(oO,{label:`Mirrored`,value:e.mirrored?`yes`:null}),(0,K.jsx)(oO,{label:`Engine since`,value:xu(e.engineSince)})]})]}),document.body)}function cO({session:e,active:t,link:n,onMenu:r}){let{actions:i}=q(),a=Du(e),o=e=>{let t=e.currentTarget.getBoundingClientRect();r({x:t.left,y:t.bottom+2},s.current)},s=(0,v.useRef)(null),c=(0,v.useRef)(null),[l,u]=(0,v.useState)(null),d=(0,v.useCallback)(()=>{c.current!==null&&(clearTimeout(c.current),c.current=null),u(null)},[]);return(0,v.useEffect)(()=>{if(l===null)return;let e=e=>{bw(e.target,s.current)&&d()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[l,d]),(0,v.useEffect)(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]),(0,K.jsxs)(`div`,{ref:s,className:W(`group relative flex items-center rounded-md`,t?`bg-accent-soft`:`hover:bg-surface-2`),onMouseEnter:()=>{c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,s.current&&u(s.current.getBoundingClientRect())},450)},onMouseLeave:d,onClick:d,onContextMenu:e=>{e.preventDefault(),d(),r({x:e.clientX,y:e.clientY},s.current)},children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{i.selectSession(e.id),window.innerWidth<768&&i.setSidebar(!1)},className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left`,"aria-current":t?`true`:void 0,"data-testid":`session-${e.id}`,children:[(0,K.jsx)(KD,{status:e.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,K.jsx)(`span`,{className:W(`min-w-0 flex-1 truncate text-sm`,t?`text-fg font-medium`:`text-fg`),children:a})}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center text-[11px] text-fg-faint`,children:[(0,K.jsxs)(`span`,{className:`truncate`,children:[bu(e.updatedAt),e.model?` · ${e.model}`:``,` · ${Cu(e.projectDir??e.cwd)}`]}),(0,K.jsx)(nO,{link:n})]})]})]}),(0,K.jsx)(Of,{label:`Chat actions`,className:`absolute right-1 hidden bg-surface/90 p-1 group-hover:flex group-focus-within:flex`,"data-testid":`session-menu-${e.id}`,onClick:e=>{e.stopPropagation(),o(e)},children:(0,K.jsx)(Y.More,{className:`w-3.5 h-3.5`})}),l===null?null:(0,K.jsx)(sO,{session:e,anchor:l})]})}function lO(e,t){return t.scrollWidth<=t.clientWidth||Math.abs(e.deltaX)>Math.abs(e.deltaY)||e.deltaY===0?0:e.deltaMode===1?e.deltaY*16:e.deltaMode===2?e.deltaY*t.clientWidth:e.deltaY}function uO(e){let t=e.split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e}function dO(){let{state:e,actions:t}=q(),n=_f(),r=gf(),i=n?.projectDir??(r?.projectDir?r.cwd:null)??null,a=i?uO(i):`no folder`,[o,s]=(0,v.useState)(null),c=e.currentSessionId?e.files[e.currentSessionId]:void 0,l=c?.active??null,[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(()=>p(null),[]),h=(0,v.useRef)(null);(0,v.useEffect)(()=>{h.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[l]);let g=e.tabs.ids,_=f?f.kind===`chat`?[{key:`rename`,label:`Rename…`,icon:(0,K.jsx)(Y.Edit,{className:`w-3.5 h-3.5`}),onSelect:()=>{t.selectSession(f.id),d(f.id)},testId:`tab-menu-rename`},{key:`close`,label:`Close`,icon:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),separated:!0,onSelect:()=>t.closeTab(f.id),testId:`tab-menu-close`},{key:`close-others`,label:`Close other tabs`,disabled:g.length<2,onSelect:()=>{for(let e of g)e!==f.id&&t.closeTab(e)},testId:`tab-menu-close-others`},{key:`close-all`,label:`Close all tabs`,onSelect:()=>{for(let e of g)t.closeTab(e)},testId:`tab-menu-close-all`}]:[{key:`close`,label:`Close`,icon:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`}),onSelect:()=>t.closeFile(f.path),testId:`tab-menu-close`},{key:`close-others`,label:`Close other files`,disabled:(c?.open.length??0)<2,onSelect:()=>{for(let e of c?.open??[])e!==f.path&&t.closeFile(e)},testId:`tab-menu-close-others`},{key:`close-all`,label:`Close all files`,onSelect:()=>{for(let e of c?.open??[])t.closeFile(e)},testId:`tab-menu-close-all`}]:[],y=(0,v.useMemo)(()=>e.tabs.ids.map(t=>{let n=e.drafts[t],r=e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)??null,i=e.transcripts[t]?.status??r?.status??`idle`;return{id:t,draft:n!==void 0,title:n?Pu(n):r?Du(r):`Session ${t.slice(0,8)}`,customTitle:n?n.title??``:r?.title??``,cwd:n?n.projectDir??``:r?.cwd??``,running:i===`running`||i===`waiting_permission`,waiting:i===`waiting_permission`,error:i===`error`}}),[e.tabs.ids,e.drafts,e.transcripts,e.sessions]),b=(0,v.useCallback)((e,n)=>{d(null),t.renameTab(e,n)},[t]),x=e.currentSessionId?e.remote.tabs[e.currentSessionId]??null:null,S=(0,v.useRef)(null),C=e.tabs.activeId;(0,v.useEffect)(()=>{S.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[C]);let w=(0,v.useRef)(null),T=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=w.current;if(!e)return;let t=e=>{let t=T.current;if(!t)return;let n=lO(e,t);n!==0&&(e.preventDefault(),t.scrollLeft+=n)},n=e=>{e.button===1&&e.preventDefault()};return e.addEventListener(`wheel`,t,{passive:!1}),e.addEventListener(`mousedown`,n),()=>{e.removeEventListener(`wheel`,t),e.removeEventListener(`mousedown`,n)}},[]),(0,K.jsxs)(`div`,{ref:w,className:`flex h-9 shrink-0 items-stretch gap-1 border-b border-border bg-surface px-1`,role:`tablist`,"aria-label":`Open chats`,"data-testid":`tab-bar`,children:[(0,K.jsxs)(`div`,{ref:T,className:`flex min-w-0 flex-1 items-stretch gap-1 overflow-x-auto`,"data-testid":`tabs-scroller`,children:[y.map((n,r)=>{let i=n.id===e.tabs.activeId&&l===null,a=u===n.id;return(0,K.jsxs)(`div`,{ref:n.id===e.tabs.activeId?S:void 0,role:`tab`,"aria-selected":i,tabIndex:i?0:-1,draggable:!a,onDragStart:()=>s(r),onDragOver:e=>{o!==null&&e.preventDefault()},onDrop:e=>{o!==null&&(e.preventDefault(),t.moveTab(o,r),s(null))},onDragEnd:()=>s(null),onContextMenu:e=>{e.preventDefault(),p({kind:`chat`,id:n.id,title:n.title,at:{x:e.clientX,y:e.clientY},el:e.currentTarget})},onAuxClick:e=>{e.button===1&&(e.preventDefault(),t.closeTab(n.id))},className:W(`group relative flex min-w-[7rem] max-w-[15rem] shrink-0 items-center gap-1.5 rounded-t-md border-b-2 px-2 text-xs`,i?`border-accent bg-surface-2 text-fg`:`border-transparent text-fg-muted hover:bg-surface-2`),"data-testid":`tab-${n.id}`,children:[a?(0,K.jsx)(fO,{initial:n.customTitle,placeholder:n.title,onCommit:e=>b(n.id,e),onCancel:()=>d(null)}):(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{t.selectSession(n.id),t.showChat(n.id)},onDoubleClick:()=>d(n.id),title:n.cwd?`${n.title}\n${n.cwd}`:`${n.title}\nDouble-click to rename`,className:`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left`,children:[n.running?(0,K.jsx)(Y.Spinner,{className:W(`w-3 h-3 shrink-0`,n.waiting?`text-warn`:`text-accent`),title:`Agent running`}):n.error?(0,K.jsx)(Y.Alert,{className:`w-3 h-3 shrink-0 text-danger`}):(0,K.jsx)(`span`,{className:`w-3 shrink-0`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`truncate`,children:wu(n.title,28)})]}),(0,K.jsx)(Of,{label:`Close ${n.title}`,className:`p-0.5 opacity-0 group-hover:opacity-100 focus:opacity-100`,onClick:()=>t.closeTab(n.id),children:(0,K.jsx)(Y.X,{className:`w-3 h-3`})})]},n.id)}),c?.open.map(e=>{let n=l===e,r=nC(e);return(0,K.jsxs)(`div`,{ref:n?h:void 0,role:`tab`,"aria-selected":n,tabIndex:n?0:-1,title:e,onContextMenu:t=>{t.preventDefault(),p({kind:`file`,path:e,at:{x:t.clientX,y:t.clientY},el:t.currentTarget})},onAuxClick:n=>{n.button===1&&(n.preventDefault(),t.closeFile(e))},className:W(`group relative flex min-w-[6rem] max-w-[14rem] shrink-0 items-center gap-1.5 rounded-t-md border-b-2 px-2 text-xs`,n?`border-accent bg-surface-2 text-fg`:`border-transparent text-fg-muted hover:bg-surface-2`),"data-testid":`file-tab-${e}`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>t.activateFile(e),className:`flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left`,children:[(0,K.jsx)(Y.File,{className:`w-3 h-3 shrink-0 text-fg-faint`}),(0,K.jsx)(`span`,{className:`truncate`,children:wu(r,28)})]}),(0,K.jsx)(Of,{label:`Close ${r}`,className:`p-0.5 opacity-0 group-hover:opacity-100 focus:opacity-100`,onClick:()=>t.closeFile(e),"data-testid":`file-tab-close-${e}`,children:(0,K.jsx)(Y.X,{className:`w-3 h-3`})})]},`file:${e}`)})]}),(0,K.jsx)(Sw,{open:f!==null,at:f?.at??{x:0,y:0},anchorEl:f?.el??null,label:`Tab actions`,onClose:m,items:_.map(e=>({...e,onSelect:()=>{m(),e.onSelect()}}))}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 pl-1`,children:[(0,K.jsx)(Of,{label:`New chat`,onClick:()=>t.newTab(),"data-testid":`new-tab`,children:(0,K.jsx)(Y.Plus,{className:`w-4 h-4`})}),(0,K.jsxs)(`button`,{type:`button`,title:x?`Choose a project folder in OonaCode on ${x.hostName}`:i?`${i} — click to change the folder`:`No project folder: this chat runs in its own workspace. Click to use one of your folders.`,"aria-label":x?`Choose a project folder in OonaCode on ${x.hostName}`:`Use a project folder…`,disabled:x!==null,onClick:()=>t.openDialog(`project`),className:`flex max-w-[220px] items-center gap-1 rounded-md border border-border px-2 py-1 text-xs text-fg-muted hover:border-accent/60 hover:text-fg disabled:opacity-50`,"data-testid":`open-project-dialog`,children:[(0,K.jsx)(Y.Folder,{className:`w-3.5 h-3.5 shrink-0`}),(0,K.jsx)(`span`,{className:`hidden truncate sm:inline`,"data-testid":`folder-chip`,children:a})]})]})]})}function fO({initial:e,placeholder:t,onCommit:n,onCancel:r}){let[i,a]=(0,v.useState)(e),o=(0,v.useRef)(null),s=(0,v.useRef)(!1);return(0,v.useEffect)(()=>{o.current?.focus(),o.current?.select()},[]),(0,K.jsx)(`input`,{ref:o,"aria-label":`Rename tab`,"data-testid":`tab-title-input`,className:`min-w-0 flex-1 rounded border border-accent bg-bg px-1 py-0.5 text-xs outline-none`,value:i,maxLength:500,placeholder:t,spellCheck:!1,onChange:e=>a(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`?(e.preventDefault(),n(i)):e.key===`Escape`&&(e.preventDefault(),s.current=!0,r())},onBlur:()=>{s.current||n(i)}})}function pO(){let e=typeof window<`u`?window.oonacode:void 0;return{desktop:typeof e?.installUpdate==`function`,terminal:typeof e?.updateTerminalInstall==`function`}}function mO(e){if(e.upToDate)return`Everything on this PC is up to date — the app, the host service and the oona CLI.`;let t=[];return e.terminal&&t.push(`OonaCode updates the oona CLI and the host service in place — the service restarts and your chats come back with it.`),e.desktop&&t.push(e.terminal?`Then it downloads the app, installs it and relaunches, restoring your open tabs.`:`OonaCode downloads the update, installs it and relaunches. Your open chat tabs are restored afterwards.`),t.length===0?t.push("This window cannot install updates by itself — run the installer again, or `oona update` in a terminal. Your open chat tabs are stored in the host and come back automatically."):e.manual.length>0&&t.push(e.manual.includes(`desktop`)?`The app itself needs the installer from the website.`:"The rest needs `oona update` in a terminal."),t.join(` `)}var hO=2*Math.PI*10;function gO(){return typeof window<`u`&&window.oonacode!==void 0}function _O(){let{state:e,actions:t}=q(),n=e.update,r=e.updateInstall,i=e.prefs.dismissedUpdateVersion,a=n.version!==``&&(e.updateDismissed===n.version||i===n.version);if(!gO())return null;let o=zd({install:r,manifestAvailable:n.available&&!a}),s=e.terminalUpdate.running,c=e.updateChecking||r.phase===`checking`||s,l=n.components.length,u=Math.round(r.percent),d=s?`Updating the CLI and host service`:o===`ready`?`Restart to finish updating`:o===`downloading`?`Downloading update (${u}%)`:o===`available`?`Update available (${l})`:`Check for updates`,f=s?`Updating the oona CLI and the host service…`:o===`ready`?`An update is ready — restart to finish`:o===`downloading`?`Downloading OonaCode ${r.version||`update`} — ${u}%`:o===`available`?`${l} component${l===1?``:`s`} can be updated`:`Check for updates`;return(0,K.jsxs)(`button`,{type:`button`,onClick:()=>{if(o===`idle`){t.checkUpdates(!0);return}if(o===`ready`){t.installUpdate();return}t.openDialog(`update`)},title:f,"aria-label":d,"aria-busy":c||void 0,"data-testid":`update-badge`,"data-state":o,className:W(`relative inline-flex h-7 w-7 items-center justify-center rounded-full border transition-transform hover:scale-105`,o===`idle`?`border-border bg-surface-2 text-fg-muted hover:text-fg`:`border-accent bg-accent-soft text-accent`),children:[o===`downloading`?(0,K.jsxs)(`svg`,{viewBox:`0 0 24 24`,"data-testid":`update-badge-progress`,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u,className:`absolute inset-0 h-full w-full -rotate-90`,children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,className:`stroke-border`}),(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:hO,strokeDashoffset:hO*(1-Math.max(0,Math.min(100,u))/100),className:`stroke-accent`})]}):null,c&&o!==`downloading`&&o!==`ready`?(0,K.jsx)(`span`,{"data-testid":`update-badge-checking`,className:`inline-flex`,children:(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`})}):o===`ready`?(0,K.jsx)(`span`,{"data-testid":`update-badge-ready`,className:`inline-flex`,children:(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`})}):o===`downloading`?(0,K.jsx)(`span`,{"data-testid":`update-badge-downloading`,className:`text-[9px] font-semibold`,children:u}):(0,K.jsx)(`span`,{"data-testid":o===`available`?`update-badge-available`:`update-badge-idle`,className:`inline-flex`,children:(0,K.jsx)(Y.Download,{className:`w-3.5 h-3.5`})}),o===`available`?(0,K.jsx)(`span`,{className:`absolute -right-0.5 -top-0.5 h-2 w-2 rounded-full bg-accent`,"aria-hidden":!0}):null]})}function vO(){let{state:e,actions:t}=q(),n=e.updateInstall,r=Math.round(Math.max(0,Math.min(100,n.percent))),i=Hd(n.bytesPerSecond);if(n.phase===`error`)return(0,K.jsxs)(`div`,{className:`rounded-md border border-danger-soft bg-danger-soft px-3 py-2 text-xs text-danger`,"data-testid":`update-error`,role:`alert`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium`,children:`The update could not be downloaded.`}),(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.error})]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsxs)(X,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`update-retry`,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]});let a=n.phase===`installing`;return(0,K.jsxs)(`div`,{className:`space-y-1.5`,"data-testid":`update-progress`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:a?`Installing and restarting…`:n.phase===`ready`?`Downloaded — restart to install`:`Downloading OonaCode ${n.version||``}`.trim()}),a?null:(0,K.jsxs)(`span`,{className:`text-fg-muted`,children:[r,`%`]})]}),n.notice?(0,K.jsx)(`div`,{className:`pre-wrap text-xs text-warn`,"data-testid":`update-notice`,role:`status`,children:n.notice}):null,(0,K.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-2`,children:(0,K.jsx)(`div`,{className:W(`h-full rounded-full bg-accent`,a&&`animate-pulse`),style:{width:`${a?100:r}%`},"data-testid":`update-progress-bar`})}),a?(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`The host service stops for a few seconds while the installer runs, then OonaCode starts again with your chat tabs.`}):(0,K.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-fg-faint`,children:[(0,K.jsxs)(`span`,{children:[Vd(n.transferred),n.total>0?` of ${Vd(n.total)}`:``]}),i?(0,K.jsx)(`span`,{children:i}):null]})]})}function yO(){let{state:e,actions:t}=q(),n=e.terminalUpdate;return n.running?(0,K.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs`,"data-testid":`terminal-update-running`,role:`status`,children:[(0,K.jsx)(Y.Spinner,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium text-fg`,children:`Updating the oona CLI and host service...`}),(0,K.jsx)(`div`,{className:`mt-0.5 text-fg-faint`,children:`The host service stops for a few seconds while its installer runs. Your chats are in the database and come back with it.`})]})]}):n.failed?(0,K.jsxs)(`div`,{className:`rounded-md border border-danger-soft bg-danger-soft px-3 py-2 text-xs text-danger`,"data-testid":`terminal-update-error`,role:`alert`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(Y.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`font-medium`,children:`The CLI and host service could not be updated.`}),(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.message})]})]}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsxs)(X,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`terminal-update-retry`,children:[(0,K.jsx)(Y.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]}):null}function bO({open:e,onClose:t}){let{state:n,actions:r}=q(),i=n.update,a=n.updateInstall,o=r.checkUpdates,s=a.phase===`downloading`||a.phase===`installing`||a.phase===`ready`;(0,v.useEffect)(()=>{!e||s||o(!1)},[e,s,o]);let c=pO(),l=Wd(i.components.map(e=>e.component),c,{checked:i.version!==``,shellEngaged:a.phase!==`idle`&&a.phase!==`checking`}),u=i.version||a.version,d=a.phase===`ready`,f=a.phase===`downloading`||a.phase===`installing`||d||a.phase===`error`,p=n.terminalUpdate.running,m=n.updateChecking||a.phase===`checking`||p;return(0,K.jsx)(Nf,{open:e,title:`Update OonaCode`,onClose:t,footer:d?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,children:`Later`}),(0,K.jsxs)(X,{variant:`primary`,onClick:()=>void r.installUpdate(),"data-testid":`update-restart`,children:[(0,K.jsx)(Y.Refresh,{className:`w-4 h-4`}),`Restart and install`]})]}):f?(0,K.jsx)(X,{onClick:t,children:`Close`}):l.upToDate?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(X,{onClick:()=>void r.checkUpdates(!0),busy:m,disabled:m,"data-testid":`update-check-again`,children:[(0,K.jsx)(Y.Refresh,{className:`w-4 h-4`}),`Check again`]}),(0,K.jsx)(X,{variant:`primary`,onClick:t,children:`Close`})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:()=>r.dismissUpdate(),children:`Skip this version`}),(0,K.jsx)(X,{onClick:t,children:`Later`}),(0,K.jsxs)(X,{variant:`primary`,busy:m,disabled:m,onClick:()=>void r.installUpdate(),children:[(0,K.jsx)(Y.Download,{className:`w-4 h-4`}),l.label]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[u?(0,K.jsxs)(`span`,{className:`font-medium`,children:[`Release `,u]}):null,i.channel?(0,K.jsx)(Mf,{children:i.channel}):null,n.updateChecking?(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,"data-testid":`update-rechecking`,children:`checking for a newer one…`}):null,i.publishedAt?(0,K.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`published `,new Date(i.publishedAt).toLocaleDateString()]}):null]}),f?(0,K.jsx)(vO,{}):null,(0,K.jsx)(yO,{}),i.components.length>0?(0,K.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:i.components.map(e=>(0,K.jsxs)(`li`,{className:`flex items-start gap-3 px-3 py-2`,children:[(0,K.jsx)(Y.Download,{className:`mt-0.5 w-3.5 h-3.5 shrink-0 text-accent`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium`,children:e.label}),(0,K.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[e.current,` → `,(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:e.latest})]}),(0,K.jsx)(`div`,{className:`text-xs text-fg-faint`,"data-testid":`update-how-${e.component}`,children:Gd(e.component,c)}),e.notes?(0,K.jsx)(`div`,{className:`mt-0.5 pre-wrap text-xs text-fg-faint`,children:e.notes}):null]})]},e.component))}):null,i.notes?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Release notes`}),(0,K.jsx)(`div`,{className:`max-h-48 overflow-y-auto rounded-md bg-surface-2 px-3 py-2 pre-wrap text-xs text-fg-muted`,children:i.notes})]}):null,f?null:(0,K.jsx)(`p`,{className:`text-xs text-fg-faint`,"data-testid":`update-plan-note`,children:mO(l)})]})})}function xO(e){switch(e){case`open`:return{cls:`bg-ok`,label:`Connected`};case`connecting`:case`reconnecting`:return{cls:`bg-warn animate-pulse`,label:e===`connecting`?`Connecting…`:`Reconnecting…`};case`unauthorized`:return{cls:`bg-danger`,label:`Unauthorized`};case`closed`:return{cls:`bg-danger`,label:`Disconnected`};default:return{cls:`bg-fg-faint`,label:`Idle`}}}function SO(){let{state:e,actions:t}=q(),n=xO(e.connection.status),r=e.account?.loggedIn===!0,i=typeof window<`u`&&window.oonacode?.host===`vscode`;return(0,K.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface px-2 sm:px-3`,children:[i?null:(0,K.jsx)(Of,{label:`Toggle sidebar`,className:`md:hidden`,onClick:()=>t.setSidebar(!e.ui.sidebarOpen),children:(0,K.jsx)(Y.Menu,{})}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[i?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),(0,K.jsx)(`span`,{className:`hidden text-fg-faint sm:inline`,children:`/`})]}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>t.openDialog(`session-picker`),title:`Open a session on this PC or another device`,className:`hidden min-w-0 truncate text-sm text-fg-muted hover:text-fg sm:inline`,"data-testid":`host-name`,children:e.connection.hostName??`host`}),(0,K.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-fg-muted`,title:e.connection.detail??n.label,"data-testid":`connection-status`,children:[(0,K.jsx)(`span`,{className:W(`inline-block h-2 w-2 rounded-full`,n.cls),"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`hidden sm:inline`,children:n.label})]})]}),(0,K.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>t.openDialog(`bug-report`),title:`Bug Report...`,"aria-label":`Bug Report...`,"data-testid":`bug-report-button`,className:`inline-flex h-7 w-7 items-center justify-center rounded-full border border-border bg-surface-2 text-fg-muted transition-transform hover:scale-105 hover:text-fg`,children:(0,K.jsx)(Y.Bug,{className:`w-3.5 h-3.5`})}),(0,K.jsx)(_O,{}),e.hostUpdatedTo?(0,K.jsxs)(X,{size:`sm`,variant:`primary`,onClick:()=>window.location.reload(),title:`This window still runs the previous version; the host is now v${e.hostUpdatedTo}`,"data-testid":`reload-for-update`,children:[`Reload for v`,e.hostUpdatedTo]}):null,r?null:(0,K.jsxs)(X,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),"data-testid":`sign-in`,children:[(0,K.jsx)(Y.LogIn,{className:`w-3.5 h-3.5`}),` Sign in`]}),(0,K.jsx)(Of,{label:e.prefs.explorerOpen?`Hide files`:`Show files`,onClick:()=>void t.savePrefs({explorerOpen:!e.prefs.explorerOpen}),className:e.prefs.explorerOpen?`bg-surface-2 text-fg`:void 0,"data-testid":`toggle-explorer`,children:(0,K.jsx)(Y.Folder,{})}),(0,K.jsx)(Of,{label:e.prefs.sessionPanelOpen?`Hide session info`:`Show session info`,onClick:()=>void t.savePrefs({sessionPanelOpen:!e.prefs.sessionPanelOpen}),className:e.prefs.sessionPanelOpen?`bg-surface-2 text-fg`:void 0,"data-testid":`toggle-session-panel`,children:(0,K.jsx)(Y.Panel,{})}),(0,K.jsx)(Of,{label:`Doctor`,onClick:()=>t.openDialog(`doctor`),children:(0,K.jsx)(Y.Stethoscope,{})}),r?(0,K.jsx)(CO,{}):null,(0,K.jsx)(Of,{label:`Account`,onClick:()=>t.openDialog(`account`),children:(0,K.jsxs)(`span`,{className:`relative`,children:[(0,K.jsx)(Y.User,{}),r?(0,K.jsx)(`span`,{className:W(`absolute -right-0.5 -top-0.5 h-1.5 w-1.5 rounded-full`,e.account?.vaultUnlocked?`bg-ok`:`bg-warn`)}):null]})}),(0,K.jsx)(Of,{label:`Settings`,onClick:()=>t.openDialog(`settings`),children:(0,K.jsx)(Y.Settings,{})})]})]})}function CO(){let{state:e}=q(),[t,n]=(0,v.useState)(!1),r=(0,v.useRef)(null),i=e.plan;(0,v.useEffect)(()=>{if(!t)return;let e=e=>{r.current&&!r.current.contains(e.target)&&n(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[t]);let a=i?i.credits.balance:null,o=i?vd(i):null,s=xd(i),c=Sd;return(0,K.jsxs)(`div`,{className:`relative`,ref:r,children:[(0,K.jsx)(Of,{label:s?`Credits and plan — ${s.text}`:`Credits and plan`,onClick:()=>n(e=>!e),"data-testid":`balance-badge`,className:t?`bg-surface-2 text-fg`:void 0,children:(0,K.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(Y.Coins,{}),a===null?null:(0,K.jsx)(`span`,{className:W(`hidden text-xs tabular-nums sm:inline`,s?s.level===`empty`?`text-danger`:`text-warn`:void 0),"data-testid":`balance-credits`,"data-level":s?.level??`ok`,children:c(a)})]})}),t?(0,K.jsx)(`div`,{className:`absolute right-0 top-full z-50 mt-1 w-64 rounded-md border border-border bg-surface p-3 text-sm shadow-lg`,"data-testid":`balance-popover`,children:i===null||o===null?(0,K.jsx)(`div`,{className:`text-fg-muted`,children:`Balance is unavailable — the gateway can't be reached.`}):(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,K.jsxs)(`span`,{className:`font-medium`,children:[i.planName,i.status===`none`?` (lapsed)`:``]})]}),(0,K.jsx)(`div`,{className:`h-px bg-border`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Credits`}),(0,K.jsx)(`span`,{className:`font-semibold tabular-nums`,children:c(o.balance)})]}),s?(0,K.jsx)(`div`,{className:W(`rounded-sm px-2 py-1 text-[11px]`,s.level===`empty`?`bg-danger-soft text-danger`:`bg-warn-soft text-warn`),"data-testid":`balance-warning`,children:s.text}):null,o.hasSplit?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,K.jsx)(`span`,{className:`tabular-nums`,children:c(o.plan??0)})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`span`,{className:`text-fg-muted`,children:`Top-up credits`}),(0,K.jsx)(`span`,{className:`tabular-nums`,children:c(o.topup??0)})]})]}):null,(0,K.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[i.credits.monthlyGrant>0?`Plan credits top up to ${c(i.credits.monthlyGrant)} each 30-day period and expire with it; top-ups never do.`:`This plan pays no monthly credits — the signup gift and anything you buy never expire.`,` `,`Free models never draw on this balance.`]})]})}):null]})}function wO(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`could not read the file`)),r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):``)},r.readAsDataURL(e)})}function TO(e,t){let n=[],r=e.length,i=e.reduce((e,t)=>e+t.size,0);for(let e of t){if(r>=5)return{accepted:n,refused:`At most 5 files per report.`};if(e.size>5242880)return{accepted:n,refused:`${e.name} is ${Vd(e.size)}; a file may be at most ${Vd(As)}.`};if(i+e.size>12582912)return{accepted:n,refused:`All files together may be at most ${Vd(js)}.`};n.push(e),r+=1,i+=e.size}return{accepted:n,refused:null}}function EO(e){return e instanceof Gc?e.code===`account_required`||e.status===401?`Sign in to OonaCode first — a report is filed under your account so we can answer it.`:Yc(e)?`This host build cannot send bug reports yet — update OonaCode on this PC.`:e.status===429?`Too many reports in a minute — wait a moment and send again.`:e.status===413?`The attachments are too large for one report.`:e.message||`The report could not be sent.`:e instanceof Error&&e.message?e.message:`The report could not be sent.`}var DO=0;function OO({open:e,onClose:t}){let{state:n,actions:r,api:i}=q(),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)([]),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(!1),h=(0,v.useRef)(null);(0,v.useEffect)(()=>{e&&(o(``),c([]),u(!1),f(null))},[e]);let g=n.account?.loggedIn===!0,_=typeof i.sendBugReport==`function`,y=typeof window<`u`?window.oonacode:void 0,b=y?y.host===`vscode`?`vscode`:`desktop`:`browser`,x=n.currentSessionId?n.sessions.find(e=>e.id===n.currentSessionId)??null:null,S=(0,v.useCallback)(async e=>{let t=Array.from(e);if(t.length===0)return;let{accepted:n,refused:r}=TO(s,t);f(r);let i=t.filter(e=>n.includes(e));if(i.length!==0){m(!0);try{let e=[];for(let t of i){let n=await wO(t);if(!n)continue;let r=t.type||`application/octet-stream`;DO+=1,e.push({key:`f${DO}`,name:t.name,contentType:r,dataBase64:n,size:t.size,preview:r.startsWith(`image/`)?`data:${r};base64,${n}`:null})}c(t=>[...t,...e])}catch(e){f(e instanceof Error?e.message:`could not read the file`)}finally{m(!1)}}},[s]),C=e=>{let t=e.target.files;t&&S(t),e.target.value=``},w=e=>c(t=>t.filter(t=>t.key!==e)),T=async()=>{let e=a.trim();if(!e||l)return;if(!_){f(`This host build cannot send bug reports yet — update OonaCode on this PC.`);return}u(!0),f(null);let o={message:e.slice(0,ks),...s.length>0?{attachments:s.map(({name:e,contentType:t,dataBase64:n})=>({name:e,contentType:t,dataBase64:n}))}:{},...n.currentSessionId?{sessionId:n.currentSessionId}:{},detail:{embedded:b,connection:n.connection.status,...y?.appVersion?{appVersion:y.appVersion}:{},...n.bundleAppVersion?{uiVersion:n.bundleAppVersion}:{},...n.info?.appVersion?{hostVersion:n.info.appVersion}:{},...n.info?.engine?.version?{engineVersion:n.info.engine.version}:{},...x?.status?{sessionStatus:x.status}:{}}};try{let e=await i.sendBugReport(o);r.toast(`success`,`Bug report #${e.id} sent — thank you.`),t()}catch(e){f(EO(e))}finally{u(!1)}},E=ks-a.length;return(0,K.jsx)(Nf,{open:e,title:`Bug Report`,onClose:t,footer:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{onClick:t,disabled:l,children:`Cancel`}),(0,K.jsxs)(X,{variant:`primary`,busy:l,disabled:!a.trim()||p,onClick:()=>void T(),"data-testid":`bug-report-send`,children:[(0,K.jsx)(Y.Bug,{className:`w-4 h-4`}),`Send report`]})]}),children:(0,K.jsxs)(`div`,{className:`space-y-3 text-sm`,"data-testid":`bug-report-dialog`,children:[(0,K.jsxs)(`p`,{className:`text-fg-muted`,children:[`Tell us what went wrong and what you expected. Screenshots help. The report is filed under your account with this PC's versions`,x?` and the open chat’s model`:``,`; the chat itself is never sent.`]}),g?null:(0,K.jsx)(`div`,{className:`rounded-md border border-warn/40 bg-warn-soft px-3 py-2 text-xs text-warn`,children:`Sign in to OonaCode to send a report — it is filed under your account so we can answer it.`}),(0,K.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,K.jsx)(`span`,{className:`font-medium text-fg`,children:`What happened?`}),(0,K.jsx)(`textarea`,{name:`message`,className:W(Af,`min-h-32 resize-y`),value:a,maxLength:ks,placeholder:`The answer stopped after a few seconds with “API error”. I was using…`,onChange:e=>o(e.target.value),"data-testid":`bug-report-message`}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:E<500?`${E} characters left`:``})]}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{ref:h,type:`file`,multiple:!0,className:`hidden`,onChange:C,"data-testid":`bug-report-files`}),(0,K.jsxs)(X,{size:`sm`,onClick:()=>h.current?.click(),disabled:l||p||s.length>=5,children:[(0,K.jsx)(Y.Paperclip,{className:`w-3.5 h-3.5`}),`Attach files or pictures`]}),(0,K.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`up to `,5,` files,`,` `,Vd(As),` each`]})]}),s.length>0?(0,K.jsx)(`ul`,{className:`flex flex-wrap gap-2`,"data-testid":`bug-report-attachments`,children:s.map(e=>(0,K.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-border bg-surface-2 px-2 py-1 text-xs`,children:[e.preview?(0,K.jsx)(`img`,{src:e.preview,alt:``,className:`h-8 w-8 rounded object-cover`,"aria-hidden":!0}):(0,K.jsx)(Y.Paperclip,{className:`w-3.5 h-3.5 text-fg-muted`}),(0,K.jsx)(`span`,{className:`max-w-40 truncate`,title:e.name,children:e.name}),(0,K.jsx)(`span`,{className:`text-fg-faint`,children:Vd(e.size)}),(0,K.jsx)(Of,{label:`Remove ${e.name}`,onClick:()=>w(e.key),children:(0,K.jsx)(Y.X,{className:`w-3.5 h-3.5`})})]},e.key))}):null]}),d?(0,K.jsx)(`div`,{className:`text-xs text-danger`,role:`alert`,"data-testid":`bug-report-error`,children:d}):null]})})}function kO(e){let t=Date.parse(`${e}T12:00:00`);return Number.isFinite(t)?new Date(t).toLocaleDateString(void 0,{dateStyle:`long`}):e}function AO({open:e,notes:t,onClose:n}){return(0,K.jsx)(Nf,{open:e,title:`What's new in OonaCode`,onClose:n,footer:(0,K.jsx)(X,{variant:`primary`,onClick:n,children:`Got it`}),children:(0,K.jsx)(`div`,{className:`space-y-5 text-sm`,"data-testid":`whats-new`,children:t.map(e=>(0,K.jsxs)(`section`,{"data-version":e.version,children:[(0,K.jsxs)(`div`,{className:`mb-2 flex items-baseline gap-2`,children:[(0,K.jsxs)(`h3`,{className:`text-base font-semibold`,children:[`Version `,e.version]}),(0,K.jsx)(`span`,{className:`text-xs text-fg-faint`,children:kO(e.date)})]}),e.added.length>0?(0,K.jsx)(`ul`,{className:`space-y-1.5`,children:e.added.map((e,t)=>(0,K.jsxs)(`li`,{className:`flex gap-2`,children:[(0,K.jsx)(Y.Plus,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-accent`}),(0,K.jsx)(`span`,{children:e})]},t))}):null,e.fixed.length>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mb-1 mt-3 text-xs font-medium uppercase tracking-wide text-fg-faint`,children:`Fixed`}),(0,K.jsx)(`ul`,{className:`space-y-1.5`,children:e.fixed.map((e,t)=>(0,K.jsxs)(`li`,{className:`flex gap-2`,children:[(0,K.jsx)(Y.Check,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-ok`}),(0,K.jsx)(`span`,{children:e})]},t))})]}):null]},e.version))})})}function jO(){let{state:e,actions:t}=q(),n=Lc(e.account);return!n||e.ui.dialog===`account`?null:(0,K.jsxs)(`div`,{role:`status`,"data-testid":`vault-rekey-banner`,className:`flex items-center gap-2 bg-warn-soft px-3 py-1.5 text-xs text-warn`,children:[(0,K.jsx)(Y.Alert,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{className:`flex-1`,children:Wc(n)}),(0,K.jsx)(X,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),children:`Open Account`})]})}function MO({onReconnect:e}){let{state:t}=q(),n=t.connection.status;if(n===`open`||n===`idle`||n===`connecting`)return null;let r=n===`unauthorized`&&!window.oonacode;return(0,K.jsxs)(`div`,{role:`status`,className:W(`flex items-center gap-2 px-3 py-1.5 text-xs`,r?`bg-danger-soft text-danger`:`bg-warn-soft text-warn`),children:[r?(0,K.jsx)(Y.Alert,{className:`w-3.5 h-3.5`}):(0,K.jsx)(Y.Spinner,{className:`w-3.5 h-3.5`}),(0,K.jsx)(`span`,{className:`flex-1`,children:r?`The host rejected this connection${t.connection.detail?` (${t.connection.detail})`:``}. Re-open the UI from the desktop app or paste a fresh token.`:`Reconnecting to the host${t.connection.detail?` — ${t.connection.detail}`:``}…`}),r&&e?(0,K.jsx)(X,{size:`sm`,variant:`danger`,onClick:e,children:`Enter token`}):null]})}function NO(){let{actions:e}=q();(0,v.useEffect)(()=>{if(typeof window>`u`)return;let t=t=>{!(t.ctrlKey||t.metaKey)||t.key!==`Tab`||(t.preventDefault(),e.cycleTab(t.shiftKey?-1:1))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function PO(){let{state:e,actions:t}=q(),n=(0,v.useRef)(!1),r=e.account?.loggedIn===!0,i=e.prefs.claudeImportOffered?3:e.prefs.claudeImportOffers,a=e.ui.dialog===`none`,o=e.settings!==null,s=(0,v.useRef)(e.ui.dialog);s.current=e.ui.dialog,(0,v.useEffect)(()=>{n.current||!o||i>=3||!r||!a||(n.current=!0,t.scanClaudeSessions().then(e=>{if(e.sessions.some(e=>!e.alreadyImported&&e.deletedHere!==!0&&!e.unavailable)){if(s.current!==`none`){n.current=!1;return}t.openDialog(`import-claude`),t.savePrefs({claudeImportOffers:i+1})}}).catch(()=>{}))},[t,a,r,i,o])}function FO(){let{state:e,actions:t}=q(),n=(0,v.useRef)(!1),[r,i]=(0,v.useState)(null),a=(typeof window<`u`?window.oonacode:void 0)?.appVersion??e.bundleAppVersion??null,o=e.settings!==null,s=e.prefs.lastSeenReleaseNotes,c=e.sessionListLoaded,l=e.sessionsTotal>0||e.sessions.length>0,u=e.settings?.uiPrefs,d=u!==void 0&&!(`lastSeenReleaseNotes`in u),f=e.ui.dialog===`none`;(0,v.useEffect)(()=>{if(n.current||!o||!a||!f||s===null&&!c||(n.current=!0,d))return;let{record:e,show:r}=uc(a,s,l);e!==null&&t.savePrefs({lastSeenReleaseNotes:e}),r.length!==0&&(i(r),t.openDialog(`whats-new`))},[t,d,f,a,s,c,o,l]);let p=e.ui.dialog===`whats-new`;return(0,v.useEffect)(()=>{!p&&r&&i(null)},[r,p]),r??(a?lc(a,`0`):[])}function IO({onUnauthorized:e}){let{state:t,actions:n}=q(),r=(0,v.useCallback)(()=>n.openDialog(`none`),[n]),i=FO();PO();let a=typeof window<`u`&&window.oonacode?.host===`vscode`,o=t.ui.sidebarOpen&&!a;return NO(),(0,K.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,children:[(0,K.jsx)(SO,{}),(0,K.jsx)(MO,{onReconnect:e}),(0,K.jsx)(jO,{}),(0,K.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,K.jsx)(`aside`,{"data-chrome":`sidebar`,hidden:a,className:W(`absolute inset-y-0 left-0 z-30 w-72 max-w-[85vw] border-r border-border transition-transform md:static md:z-auto md:w-72 md:translate-x-0`,o?`translate-x-0`:`-translate-x-full md:hidden`),children:(0,K.jsx)(ZD,{})}),o?(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 md:hidden`,onClick:()=>n.setSidebar(!1),"aria-hidden":!0}):null,t.prefs.explorerOpen?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 md:hidden`,onClick:()=>void n.savePrefs({explorerOpen:!1}),"aria-hidden":!0}),(0,K.jsx)(`div`,{className:`absolute inset-y-0 left-0 z-30 flex max-w-[85vw] md:static md:z-auto md:max-w-none`,children:(0,K.jsx)(ZE,{})})]}):null,(0,K.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,K.jsx)(dO,{}),(0,K.jsx)(Ew,{}),t.currentSessionId&&t.files[t.currentSessionId]?.active?(0,K.jsx)(sD,{}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(kT,{}),(0,K.jsx)(mE,{}),(0,K.jsx)(dE,{},t.currentSessionId??`none`)]})]}),t.prefs.sessionPanelOpen?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 lg:hidden`,onClick:()=>void n.savePrefs({sessionPanelOpen:!1}),"aria-hidden":!0}),(0,K.jsx)(`div`,{className:`absolute inset-y-0 right-0 z-30 flex max-w-[85vw] lg:static lg:z-auto lg:max-w-none`,children:(0,K.jsx)(qE,{})})]}):null]}),(0,K.jsx)(gE,{open:t.ui.dialog===`project`,onClose:r}),(0,K.jsx)(bE,{open:t.ui.dialog===`projects`,startNew:t.projectsStartNew,onClose:r}),(0,K.jsx)(xE,{open:t.ui.dialog===`assign-project`,onClose:r}),(0,K.jsx)(kD,{open:t.ui.dialog===`settings`,onClose:r}),(0,K.jsx)(qf,{open:t.ui.dialog===`account`,onClose:r}),(0,K.jsx)(hE,{open:t.ui.dialog===`doctor`,onClose:r}),(0,K.jsx)(Tw,{open:t.ui.dialog===`session-picker`,onClose:r}),(0,K.jsx)(bO,{open:t.ui.dialog===`update`,onClose:r}),(0,K.jsx)(OO,{open:t.ui.dialog===`bug-report`,onClose:r}),(0,K.jsx)(kE,{open:t.ui.dialog===`claude-login`,onClose:r}),(0,K.jsx)(AE,{open:t.ui.dialog===`oauth-login`,onClose:r}),(0,K.jsx)(jE,{open:t.ui.dialog===`manage-models`,onClose:r}),(0,K.jsx)(zE,{open:t.ui.dialog===`import-claude`,onClose:r}),(0,K.jsx)(AO,{open:t.ui.dialog===`whats-new`,notes:i,onClose:r}),(0,K.jsx)(DE,{open:t.ui.connectProviderId!==null,providerId:t.ui.connectProviderId,onClose:()=>n.openProviderConnect(null)}),(0,K.jsx)(MD,{})]})}function LO({onUnauthorized:e}){let{state:t}=q(),n=t.account?.loggedIn===!0&&!t.account.vaultUnlocked;return(0,v.useEffect)(()=>{window.oonacode?.setVaultLocked?.(n)},[n]),t.accountLoaded?t.account?.loggedIn?!t.account.vaultUnlocked&&Lc(t.account)===null?(0,K.jsx)(UD,{}):(0,K.jsx)(IO,{onUnauthorized:e}):(0,K.jsx)(HD,{}):(0,K.jsx)(RD,{})}function RO({api:e,socket:t,relay:n,initialSessionId:r,onUnauthorized:i,reportError:a}){return(0,K.jsx)(Sf,{api:e,socket:t,relay:n??null,initialSessionId:r??null,onUnauthorized:i,...a?{reportError:a}:{},children:(0,K.jsx)(LO,{onUnauthorized:i})})}var zO=`oonacode.host.connection`,BO=`session`;function VO(e){let t=e.replace(/^#\/?\??/,``),n=new URLSearchParams(t),r=n.get(`token`),i=n.get(`host`)??n.get(`baseUrl`),a=n.get(BO);n.delete(`token`),n.delete(`host`),n.delete(`baseUrl`);let o=n.toString();return{token:r&&r.trim()?r.trim():null,baseUrl:i,sessionId:a,restHash:o?`#${o}`:``}}function HO(e){if(!e)return null;try{let t=e.getItem(zO);if(!t)return null;let n=JSON.parse(t);if(typeof n.baseUrl==`string`&&typeof n.token==`string`&&n.token)return{baseUrl:qc(n.baseUrl),token:n.token}}catch{}return null}function UO(e,t){if(e)try{t?e.setItem(zO,JSON.stringify(t)):e.removeItem(zO)}catch{}}async function WO(e){let t=VO(e.location.hash);if(t.token){let n={baseUrl:qc(t.baseUrl??e.location.origin),token:t.token};UO(e.storage,n);let r=`${e.location.pathname}${e.location.search}${t.restHash}`;try{e.replaceUrl?.(r)}catch{}return{connection:n,source:`hash`,sessionId:t.sessionId}}if(e.bridge&&typeof e.bridge.getConnection==`function`)try{let n=await e.bridge.getConnection();if(n&&typeof n.token==`string`&&n.token&&typeof n.baseUrl==`string`){let r={baseUrl:qc(n.baseUrl),token:n.token};return UO(e.storage,r),{connection:r,source:`bridge`,sessionId:t.sessionId}}}catch{}let n=HO(e.storage);return n?{connection:n,source:`storage`,sessionId:t.sessionId}:{connection:null,source:`none`,sessionId:t.sessionId}}function GO(e=window){let t=null;try{t=e.sessionStorage}catch{t=null}return WO({location:e.location,storage:t,replaceUrl:t=>e.history.replaceState(null,``,t),bridge:e.oonacode})}var KO=1;function qO(){let e=globalThis.crypto;return e&&typeof e.randomUUID==`function`?e.randomUUID():`c-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function JO(e,t){return`${qc(e).replace(/^http(s?):/i,`ws$1:`)}${b}?token=${encodeURIComponent(t)}`}var YO=class{clientId;opts;ws=null;_status=`idle`;attempts=0;preOpenFailures=0;epoch=0;reconnectTimer=null;pingTimer=null;manuallyClosed=!1;handlers=new Map;anyHandlers=new Set;statusHandlers=new Set;subscriptions=new Map;promptCounter=0;constructor(e){this.opts={clientKind:`web`,minBackoffMs:500,maxBackoffMs:15e3,pingIntervalMs:25e3,authProbeAfterFailures:2,...e,baseUrl:qc(e.baseUrl)},this.clientId=e.clientId??qO()}get status(){return this._status}connect(){this.manuallyClosed=!1,!(this.ws&&(this._status===`open`||this._status===`connecting`))&&this.open()}close(){this.manuallyClosed=!0,this.epoch+=1,this.clearTimers();let e=this.ws;if(this.ws=null,e){e.onopen=e.onclose=e.onerror=e.onmessage=null;try{e.close(1e3,`client closed`)}catch{}}this.setStatus(`closed`)}send(e){let t=this.ws;if(!t||t.readyState!==KO)return!1;try{return t.send(JSON.stringify(e)),!0}catch{return!1}}on(e,t){let n=this.handlers.get(e);n||(n=new Set,this.handlers.set(e,n));let r=t;return n.add(r),()=>{n?.delete(r)}}onAny(e){return this.anyHandlers.add(e),()=>{this.anyHandlers.delete(e)}}onStatus(e){return this.statusHandlers.add(e),e(this._status),()=>{this.statusHandlers.delete(e)}}subscribe(e,t){let n=this.subscriptions.get(e),r=t??n;this.subscriptions.set(e,r),this.send(r===void 0?{type:`subscribe`,sessionId:e}:{type:`subscribe`,sessionId:e,afterSeq:r})}unsubscribe(e){this.subscriptions.delete(e),this.send({type:`unsubscribe`,sessionId:e})}noteSeq(e,t){if(t===null||!this.subscriptions.has(e))return;let n=this.subscriptions.get(e);(n===void 0||t>n)&&this.subscriptions.set(e,t)}prompt(e,t,n={}){let r=n.requestId??`req-${this.clientId.slice(0,8)}-${++this.promptCounter}`,i={type:`prompt`,sessionId:e,requestId:r,text:t};if(n.attachments&&n.attachments.length>0&&(i.attachments=n.attachments),n.options&&(i.options=n.options),!this.send(i))throw Error(`not connected`);return r}respondPermission(e,t,n){return this.send({type:`permission_response`,sessionId:e,requestId:t,decision:n})}interrupt(e){return this.send({type:`interrupt`,sessionId:e})}setModel(e,t){return this.send({type:`set_model`,sessionId:e,model:t})}setPermissionMode(e,t){return this.send({type:`set_permission_mode`,sessionId:e,mode:t})}setEffort(e,t){return this.send({type:`set_effort`,sessionId:e,effort:t})}open(){this.clearTimers(),this.epoch+=1,this.setStatus(this.attempts===0?`connecting`:`reconnecting`);let e=JO(this.opts.baseUrl,this.opts.token),t=this.opts.createWebSocket??(e=>new WebSocket(e)),n;try{n=t(e)}catch(e){this.scheduleReconnect(String(e?.message??e));return}this.ws=n;let r=!1;n.onopen=()=>{if(this.ws===n){r=!0,this.attempts=0,this.preOpenFailures=0,this.setStatus(`open`),this.send({type:`hello`,protocolVersion:1,clientKind:this.opts.clientKind,clientId:this.clientId,...this.opts.clientVersion?{clientVersion:this.opts.clientVersion}:{}});for(let[e,t]of this.subscriptions)this.send(t===void 0?{type:`subscribe`,sessionId:e}:{type:`subscribe`,sessionId:e,afterSeq:t});this.opts.pingIntervalMs>0&&(this.pingTimer=setInterval(()=>this.send({type:`ping`,ts:Date.now()}),this.opts.pingIntervalMs))}},n.onmessage=e=>{if(this.ws!==n)return;let t;try{t=typeof e.data==`string`?JSON.parse(e.data):null}catch{return}we(t)&&this.dispatch(t)},n.onerror=()=>{},n.onclose=e=>{if(this.ws!==n)return;if(this.ws=null,this.pingTimer&&=(clearInterval(this.pingTimer),null),this.manuallyClosed){this.setStatus(`closed`);return}if(e.code===4401||e.code===4403||e.code===1008){this.setStatus(`unauthorized`,e.reason||`host rejected the token or origin`);return}let t=e.reason||`closed (${e.code})`;if(this.preOpenFailures=r?0:this.preOpenFailures+1,!r&&this.opts.authProbeAfterFailures>0&&this.preOpenFailures>=this.opts.authProbeAfterFailures){this.probeAuthThenReconnect(t);return}this.scheduleReconnect(t)}}async probeAuthThenReconnect(e){let t=this.epoch;this.setStatus(`reconnecting`,e);let n=this.opts.fetchImpl??((e,t)=>fetch(e,t)),r=!1;try{let e=await n(`${this.opts.baseUrl}${I.health}`,{method:`GET`,headers:{authorization:`Bearer ${this.opts.token}`}});if(e.status===401||e.status===403)r=!0;else if(e.status===200){let t=await e.json().catch(()=>null);r=!(t&&typeof t==`object`&&typeof t.hostId==`string`)}}catch{}if(!(this.manuallyClosed||t!==this.epoch)){if(r){this.setStatus(`unauthorized`,`host rejected the token`);return}this.scheduleReconnect(e)}}dispatch(e){e.type===`agent`&&e.seq!==null&&this.noteSeq(e.sessionId,e.seq);let t=this.handlers.get(e.type);if(t)for(let n of[...t])XO(()=>n(e));for(let t of[...this.anyHandlers])XO(()=>t(e))}scheduleReconnect(e){this.attempts+=1;let t=Math.min(this.opts.maxBackoffMs,this.opts.minBackoffMs*2**Math.min(this.attempts-1,10)),n=Math.round(t*(.7+Math.random()*.6));this.setStatus(`reconnecting`,e);let r=this.opts.setTimeoutImpl??setTimeout;this.reconnectTimer=r(()=>{this.reconnectTimer=null,this.manuallyClosed||this.open()},n)}clearTimers(){this.reconnectTimer&&=((this.opts.clearTimeoutImpl??clearTimeout)(this.reconnectTimer),null),this.pingTimer&&=(clearInterval(this.pingTimer),null)}setStatus(e,t){this._status=e;for(let n of[...this.statusHandlers])XO(()=>n(e,t))}};function XO(e){try{e()}catch(e){console.error(`[HostSocket] handler failed`,e)}}var ZO=/([?&#](?:token|access_token|key|api_key|secret|password)=)[^&#\s"']*/gi,QO=/\b(Bearer|Basic)\s+[A-Za-z0-9\-._~+/=]{8,}/g;function $O(e){return e.replace(ZO,`$1[redacted]`).replace(QO,`$1 [redacted]`)}function ek(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function tk(e){return typeof e==`object`&&!!e&&typeof e.message==`string`}function nk(e){if(tk(e)){let t=typeof e.name==`string`&&e.name?e.name:`Error`,n=typeof e.stack==`string`&&e.stack?e.stack:null;return{message:e.message||t,stack:n}}return typeof e==`string`?{message:ek(e,512),stack:null}:{message:`Unhandled rejection (${e===null?`null`:Array.isArray(e)?`array`:typeof e})`,stack:null}}function rk(e){return e?e.split(`
|
|
129
|
+
`).find(e=>/^\s+at\s/.test(e))?.trim()??``:``}function ik(e){let t=e.now??(()=>Date.now()),n=e.maxPerMinute??5,r=e.embedded??`browser`,i=[],a=new Map,o=(e,t)=>{for(;i.length>0&&(i[0]??0)<=t-6e4;)i.shift();for(let[e,n]of a)n<=t-6e4&&a.delete(e);return a.has(e)||i.length>=n?!1:(i.push(t),a.set(e,t),!0)},s=async(n,i={})=>{try{let a=e.api.reportError;if(typeof a!=`function`)return!1;let{message:s,stack:c}=nk(n),l=t();if(!o(`${s}\n${rk(c)}`,l))return!1;let u={client:`web-ui`,message:ek($O(s),Ds),detail:{source:`manual`,...i,embedded:r},at:new Date(l).toISOString()};return c&&(u.stack=ek($O(c),Os)),e.appVersion&&(u.appVersion=e.appVersion),e.platform&&(u.platform=e.platform),await a.call(e.api,u),!0}catch{return!1}},c=e=>{if(typeof e?.message!=`string`)return;let t=e.error??null;if(t===null&&!e.message)return;let n={source:`window.onerror`};typeof e.filename==`string`&&e.filename&&(n.filename=e.filename),typeof e.lineno==`number`&&e.lineno>0&&(n.lineno=e.lineno),typeof e.colno==`number`&&e.colno>0&&(n.colno=e.colno),s(t??e.message,n)},l=e=>{s(e?.reason,{source:`unhandledrejection`})};return{install:t=>{if(typeof e.api.reportError!=`function`)return()=>{};let n=e=>c(e),r=e=>l(e);return t.addEventListener(`error`,n),t.addEventListener(`unhandledrejection`,r),()=>{t.removeEventListener(`error`,n),t.removeEventListener(`unhandledrejection`,r)}},report:s,handleErrorEvent:c,handleRejectionEvent:l}}var ak=1;function ok(e,t){return`${qc(e).replace(/^http(s?):/i,`ws$1:`)}${I.remoteWs}?token=${encodeURIComponent(t)}`}function sk(e){return`tab-${e}-${Math.random().toString(36).slice(2,10)}`}var ck=class{#e;#t=new Map;#n=new Set;#r=null;#i=`idle`;#a=null;#o=0;#s=!1;#c=0;#l=null;constructor(e){this.#e=e}get status(){return this.#i}get pairingCount(){return this.#t.size}onStatus(e){return this.#n.add(e),e(this.#i),()=>{this.#n.delete(e)}}connect(){if(this.#r||this.#i===`connecting`)return;this.#s=!1,this.#d(`connecting`);let e=ok(this.#e.baseUrl,this.#e.token),t=this.#e.createWebSocket??(e=>new WebSocket(e)),n;try{n=t(e)}catch{this.#d(`closed`),this.#u();return}this.#r=n,n.onopen=()=>{if(this.#r===n){this.#o=0,this.#d(`open`),this.#f({type:`remote_hello`,protocolVersion:1,clientId:this.#e.clientId??`web-ui`,...this.#e.clientVersion?{clientVersion:this.#e.clientVersion}:{}});for(let e of this.#t.values())this.#p(e)}},n.onmessage=e=>{this.#r===n&&this.#h(e.data)},n.onerror=()=>void 0,n.onclose=()=>{if(this.#r===n){this.#r=null;for(let e of this.#t.values())this.#m(e,{state:`host_offline`,online:!1,detail:`reconnecting to this PC…`});this.#i!==`unavailable`&&this.#d(`closed`),this.#u()}}}close(){this.#s=!0,this.#l=null,this.#a&&(this.#e.clearTimeoutImpl??clearTimeout)(this.#a),this.#a=null,this.#t.clear();let e=this.#r;if(this.#r=null,e){e.onopen=e.onclose=e.onerror=e.onmessage=null;try{e.close(1e3,`closed`)}catch{}}this.#d(`idle`)}#u(){let e=this.#e.reconnectDelayMs??1e3;if(this.#s||e<=0||this.#a||this.#t.size===0)return;let t=this.#e.maxReconnectDelayMs??2e4;this.#o+=1;let n=Math.min(e*2**Math.min(this.#o-1,5),t),r=this.#e.setTimeoutImpl??setTimeout;this.#a=r(()=>{this.#a=null,this.#s||this.connect()},n)}#d(e,t){if(this.#i!==e){this.#i=e;for(let n of[...this.#n])n(e,t)}}#f(e){let t=this.#r;if(!t||t.readyState!==ak)return!1;try{return t.send(JSON.stringify(e)),!0}catch{return!1}}attach(e){this.#c+=1;let t=sk(this.#c),n={pairingId:t,hostId:e.hostId,sessionId:e.sessionId,state:`unavailable`,online:!1,detail:null,onFrame:e.onFrame,onState:e.onState};return this.#t.set(t,n),this.#r&&this.#r.readyState===ak?(this.#l!==null&&this.#m(n,{detail:this.#l}),this.#p(n)):this.connect(),{pairingId:t,hostId:e.hostId,sessionId:e.sessionId,send:e=>this.send(t,e),detach:()=>this.detach(t)}}detach(e){this.#t.get(e)&&(this.#t.delete(e),this.#f({type:`remote_detach`,pairingId:e}),this.#t.size===0&&this.close())}send(e,t){let n=this.#t.get(e);return!n||!n.online?!1:this.#f({type:`remote_send`,pairingId:e,frame:t})}#p(e){this.#f({type:`remote_attach`,pairingId:e.pairingId,hostId:e.hostId,sessionId:e.sessionId})}#m(e,t){Object.assign(e,t),e.onState({pairingId:e.pairingId,hostId:e.hostId,sessionId:e.sessionId,state:e.state,online:e.online,detail:e.detail})}#h(e){let t;try{let n=JSON.parse(typeof e==`string`?e:String(e));if(!Ee(n))return;t=n}catch{return}switch(t.type){case`remote_welcome`:if(!t.canRelay){let e=t.reason??`this PC cannot reach your other devices right now`;this.#l=e,this.#d(`unavailable`,e);for(let t of this.#t.values())this.#m(t,{state:`unavailable`,online:!1,detail:e});return}this.#l=null,this.#i===`unavailable`&&this.#d(`open`);for(let e of this.#t.values())e.online||this.#p(e);return;case`remote_status`:{let e=this.#t.get(t.pairingId);if(!e)return;this.#m(e,{state:t.state,online:De(t.state),detail:t.detail??null});return}case`remote_frame`:this.#t.get(t.pairingId)?.onFrame(t.frame);return;case`remote_error`:{let e=t.pairingId?this.#t.get(t.pairingId):void 0;e&&this.#m(e,{state:`error`,online:!1,detail:t.message});return}default:return}}};function lk({defaultBaseUrl:e,error:t,onConnect:n}){let[r,i]=(0,v.useState)(e),[a,o]=(0,v.useState)(``),s=r.trim().length>0&&a.trim().length>0;return(0,K.jsx)(`div`,{className:`flex min-h-full items-center justify-center bg-bg p-4`,children:(0,K.jsxs)(`form`,{className:`w-full max-w-md space-y-4 rounded-xl border border-border bg-surface p-6 shadow-md`,onSubmit:e=>{e.preventDefault(),s&&n({baseUrl:r.trim(),token:a.trim()})},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-lg font-semibold`,children:`Connect to your OonaCode host`}),(0,K.jsxs)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:[`This page needs the host's access token. It is normally passed automatically when you open the UI from the desktop app or run`,` `,(0,K.jsx)(`code`,{className:`rounded bg-surface-2 px-1 font-mono`,children:`oona web`}),`.`]})]}),t?(0,K.jsx)(`div`,{className:`rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm text-danger`,role:`alert`,children:t}):null,(0,K.jsx)(kf,{label:`Host URL`,children:(0,K.jsx)(`input`,{className:Af,value:r,onChange:e=>i(e.target.value),placeholder:`http://127.0.0.1:41317`,spellCheck:!1,autoComplete:`url`})}),(0,K.jsx)(kf,{label:`Host token`,hint:'Found in %LOCALAPPDATA%\\OonaCode\\host\\host.json ("token") on the PC running the host, printed by `oona serve --show-token`, or embedded in the URL printed by `oona web --print`.',children:(0,K.jsx)(`input`,{className:Af,type:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`off`,spellCheck:!1,autoFocus:!0})}),(0,K.jsx)(X,{type:`submit`,variant:`primary`,className:`w-full justify-center`,disabled:!s,children:`Connect`})]})})}function uk(e){return Math.min(5e3,500*2**Math.max(0,e))}async function dk(e){let t=e.sleep??(e=>new Promise(t=>setTimeout(t,e)));for(let n=0;;n++){if(e.cancelled?.())return null;try{let t=await e.getConnection();if(t&&typeof t.token==`string`&&t.token&&typeof t.baseUrl==`string`&&await e.accepts(t).catch(()=>!1))return t}catch{}await t(uk(n))}}function fk(){let[e,t]=(0,v.useState)(void 0),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(0),c=(0,v.useRef)(!1),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>()=>{l.current=!0},[]);let u=(0,v.useCallback)(()=>{let e=window.oonacode;return!e||typeof e.getConnection!=`function`?!1:c.current?!0:(c.current=!0,dk({getConnection:()=>e.getConnection(),accepts:e=>Jc(e).health().then(()=>!0,()=>!1),cancelled:()=>l.current}).then(e=>{c.current=!1,e&&(UO(window.sessionStorage,e),s(e=>e+1),t({baseUrl:e.baseUrl,token:e.token}))}),!0)},[]);(0,v.useEffect)(()=>{GO().then(e=>{r(e.sessionId),!(!e.connection&&u())&&t(e.connection)})},[u]),(0,v.useEffect)(()=>{e!==void 0&&document.getElementById(`oona-splash`)?.remove()},[e]);let d=(0,v.useCallback)(()=>{UO(window.sessionStorage,null),!u()&&(a(`The host rejected the token. Paste a current one from the host.`),t(null))},[u]),f=(0,v.useMemo)(()=>e?{api:Jc(e),socket:new YO({baseUrl:e.baseUrl,token:e.token,clientKind:window.oonacode?`desktop`:`web`,clientVersion:window.oonacode?.appVersion}),relay:new ck({baseUrl:e.baseUrl,token:e.token,clientId:window.oonacode?`desktop`:`web-ui`,...window.oonacode?.appVersion?{clientVersion:window.oonacode.appVersion}:{}})}:null,[e]),p=(0,v.useMemo)(()=>f?ik({api:f.api,appVersion:window.oonacode?.appVersion??null,platform:window.oonacode?.platform??null,embedded:window.oonacode?`desktop`:`browser`}):null,[f]);return(0,v.useEffect)(()=>p?.install(window),[p]),e===void 0?null:!e||!f?(0,K.jsx)(lk,{defaultBaseUrl:window.location.origin,error:i,onConnect:e=>{UO(window.sessionStorage,e),a(null),t(e)}}):(0,K.jsx)(RO,{api:f.api,socket:f.socket,relay:f.relay,initialSessionId:n,onUnauthorized:d,...p?{reportError:p.report}:{}},o)}var pk=document.getElementById(`root`);(0,y.createRoot)(pk).render((0,K.jsx)(v.StrictMode,{children:(0,K.jsx)(fk,{})}));
|