@oonacode/win32-x64 0.3.180 → 0.3.182
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/oona.exe +2 -2
- package/oonacode-release.json +3 -3
- package/package.json +1 -1
- package/web-ui/assets/index-BG-1pnSh.js +149 -0
- package/web-ui/assets/index-F1yb7V_R.css +2 -0
- package/web-ui/index.html +2 -2
- package/web-ui/assets/index-CxHyd3nZ.js +0 -149
- package/web-ui/assets/index-D1ybdWBW.css +0 -2
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=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)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),h=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=m()})),g=o((e=>{var t=p(),n=d(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?P(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var F=Array.isArray,I=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ee={pending:!1,data:null,method:null,action:null},te=[],ne=-1;function re(e){return{current:e}}function ie(e){0>ne||(e.current=te[ne],te[ne]=null,ne--)}function ae(e,t){ne++,te[ne]=e.current,e.current=t}var oe=re(null),se=re(null),ce=re(null),le=re(null);function ue(e,t){switch(ae(ce,t),ae(se,e),ae(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?$d(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=$d(t),e=ef(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ie(oe),ae(oe,e)}function de(){ie(oe),ie(se),ie(ce)}function fe(e){e.memoizedState!==null&&ae(le,e);var t=oe.current,n=ef(t,e.type);t!==n&&(ae(se,e),ae(oe,n))}function pe(e){se.current===e&&(ie(oe),ie(se)),le.current===e&&(ie(le),up._currentValue=ee)}var me,he;function ge(e){if(me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);me=t&&t[1]||``,he=-1<e.stack.indexOf(`
|
|
2
|
-
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
3
|
-
`+me+e+he}var _e=!1;function ve(e,t){if(!e||_e)return``;_e=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
4
|
-
`),l=s.split(`
|
|
5
|
-
`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
|
|
6
|
-
`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{_e=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ge(n):``}function ye(e,t){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge(`Lazy`);case 13:return e.child!==t&&t!==null?ge(`Suspense Fallback`):ge(`Suspense`);case 19:return ge(`SuspenseList`);case 0:case 15:return ve(e.type,!1);case 11:return ve(e.type.render,!1);case 1:return ve(e.type,!0);case 31:return ge(`Activity`);default:return``}}function be(e){try{var t=``,n=null;do t+=ye(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
|
|
7
|
-
Error generating stack: `+e.message+`
|
|
8
|
-
`+e.stack}}var xe=Object.prototype.hasOwnProperty,Se=t.unstable_scheduleCallback,Ce=t.unstable_cancelCallback,we=t.unstable_shouldYield,Te=t.unstable_requestPaint,Ee=t.unstable_now,R=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,z=t.unstable_IdlePriority,je=t.log,Me=t.unstable_setDisableYieldValue,Ne=null,Pe=null;function Fe(e){if(typeof je==`function`&&Me(e),Pe&&typeof Pe.setStrictMode==`function`)try{Pe.setStrictMode(Ne,e)}catch{}}var Ie=Math.clz32?Math.clz32:ze,Le=Math.log,Re=Math.LN2;function ze(e){return e>>>=0,e===0?32:31-(Le(e)/Re|0)|0}var Be=256,Ve=262144,He=4194304;function Ue(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 We(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=Ue(n))):i=Ue(o):i=Ue(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ue(n))):i=Ue(o)):i=Ue(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 Ge(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ke(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 qe(){var e=He;return He<<=1,!(He&62914560)&&(He=4194304),e}function Je(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ye(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Xe(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-Ie(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&&Ze(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Ze(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ie(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Qe(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ie(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function $e(e,t){var n=t&-t;return n=n&42?1:et(n),(n&(e.suspendedLanes|t))===0?n:0}function et(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 B(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function tt(){var e=L.p;return e===0?(e=window.event,e===void 0?32:Ep(e.type)):e}function nt(e,t){var n=L.p;try{return L.p=e,t()}finally{L.p=n}}var rt=Math.random().toString(36).slice(2),it=`__reactFiber$`+rt,at=`__reactProps$`+rt,ot=`__reactContainer$`+rt,st=`__reactEvents$`+rt,ct=`__reactListeners$`+rt,lt=`__reactHandles$`+rt,ut=`__reactResources$`+rt,dt=`__reactMarker$`+rt;function ft(e){delete e[it],delete e[at],delete e[st],delete e[ct],delete e[lt]}function pt(e){var t=e[it];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ot]||n[it]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Cf(e);e!==null;){if(n=e[it])return n;e=Cf(e)}return t}e=n,n=e.parentNode}return null}function mt(e){if(e=e[it]||e[ot]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ht(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function gt(e){var t=e[ut];return t||=e[ut]={hoistableStyles:new Map,hoistableScripts:new Map},t}function _t(e){e[dt]=!0}var vt=new Set,yt={};function bt(e,t){xt(e,t),xt(e+`Capture`,t)}function xt(e,t){for(yt[e]=t,e=0;e<t.length;e++)vt.add(t[e])}var St=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]*$`),Ct={},wt={};function Tt(e){return xe.call(wt,e)?!0:xe.call(Ct,e)?!1:St.test(e)?wt[e]=!0:(Ct[e]=!0,!1)}function Et(e,t,n){if(Tt(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 Dt(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 Ot(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 kt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function At(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function jt(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 Mt(e){if(!e._valueTracker){var t=At(e)?`checked`:`value`;e._valueTracker=jt(e,t,``+e[t])}}function Nt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=At(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Pt(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 Ft=/[\n"\\]/g;function It(e){return e.replace(Ft,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Lt(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=``+kt(t)):e.value!==``+kt(t)&&(e.value=``+kt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):zt(e,o,kt(n)):zt(e,o,kt(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=``+kt(s):e.removeAttribute(`name`)}function Rt(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)){Mt(e);return}n=n==null?``:``+kt(n),t=t==null?n:``+kt(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),Mt(e)}function zt(e,t,n){t===`number`&&Pt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Bt(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=``+kt(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 Vt(e,t,n){if(t!=null&&(t=``+kt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+kt(n)}function Ht(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(F(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=kt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Mt(e)}function Ut(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Wt=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 Gt(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||Wt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Kt(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&&Gt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Gt(e,o,t[o])}function qt(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 Jt=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`]]),Yt=/^[\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 Xt(e){return Yt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Zt(){}var Qt=null;function $t(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var en=null,tn=null;function nn(e){var t=mt(e);if(t&&(e=t.stateNode)){var n=e[at]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Lt(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="`+It(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[at]||null;if(!a)throw Error(i(90));Lt(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&&Nt(r)}break a;case`textarea`:Vt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Bt(e,!!n.multiple,t,!1)}}}var rn=!1;function an(e,t,n){if(rn)return e(t,n);rn=!0;try{return e(t)}finally{if(rn=!1,(en!==null||tn!==null)&&(ku(),en&&(t=en,e=tn,tn=en=null,nn(t),e)))for(t=0;t<e.length;t++)nn(e[t])}}function on(e,t){var n=e.stateNode;if(n===null)return null;var r=n[at]||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 sn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,"passive",{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.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 fn=i.slice(e,1<r?1-r:void 0)}function mn(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 hn(){return!0}function gn(){return!1}function _n(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)?hn:gn,this.isPropagationStopped=gn,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=hn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=hn)},persist:function(){},isPersistent:hn}),t}var vn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},yn=_n(vn),bn=m({},vn,{view:0,detail:0}),xn=_n(bn),Sn,Cn,wn,Tn=m({},bn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:In,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!==wn&&(wn&&e.type===`mousemove`?(Sn=e.screenX-wn.screenX,Cn=e.screenY-wn.screenY):Cn=Sn=0,wn=e),Sn)},movementY:function(e){return`movementY`in e?e.movementY:Cn}}),En=_n(Tn),Dn=_n(m({},Tn,{dataTransfer:0})),On=_n(m({},bn,{relatedTarget:0})),kn=_n(m({},vn,{animationName:0,elapsedTime:0,pseudoElement:0})),An=_n(m({},vn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),jn=_n(m({},vn,{data:0})),Mn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Nn={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`},Pn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Fn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Pn[e])?!!t[e]:!1}function In(){return Fn}var Ln=_n(m({},bn,{key:function(e){if(e.key){var t=Mn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=mn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Nn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:In,charCode:function(e){return e.type===`keypress`?mn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?mn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Rn=_n(m({},Tn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),zn=_n(m({},bn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:In})),Bn=_n(m({},vn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Vn=_n(m({},Tn,{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})),Hn=_n(m({},vn,{newState:0,oldState:0})),Un=[9,13,27,32],Wn=sn&&`CompositionEvent`in window,Gn=null;sn&&`documentMode`in document&&(Gn=document.documentMode);var Kn=sn&&`TextEvent`in window&&!Gn,qn=sn&&(!Wn||Gn&&8<Gn&&11>=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!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 qn&&t.locale!==`ko`?null:t.data;default:return null}}var tr={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 nr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!tr[e.type]:t===`textarea`}function rr(e,t,n,r){en?tn?tn.push(r):tn=[r]:en=r,t=Ld(t,`onChange`),0<t.length&&(n=new yn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var ir=null,ar=null;function or(e){kd(e,0)}function sr(e){if(Nt(ht(e)))return e}function cr(e,t){if(e===`change`)return t}var lr=!1;if(sn){var ur;if(sn){var dr=`oninput`in document;if(!dr){var fr=document.createElement(`div`);fr.setAttribute(`oninput`,`return;`),dr=typeof fr.oninput==`function`}ur=dr}else ur=!1;lr=ur&&(!document.documentMode||9<document.documentMode)}function pr(){ir&&(ir.detachEvent(`onpropertychange`,mr),ar=ir=null)}function mr(e){if(e.propertyName===`value`&&sr(ar)){var t=[];rr(t,ar,e,$t(e)),an(or,t)}}function hr(e,t,n){e===`focusin`?(pr(),ir=t,ar=n,ir.attachEvent(`onpropertychange`,mr)):e===`focusout`&&pr()}function gr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return sr(ar)}function _r(e,t){if(e===`click`)return sr(t)}function vr(e,t){if(e===`input`||e===`change`)return sr(t)}function yr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var br=typeof Object.is==`function`?Object.is:yr;function xr(e,t){if(br(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(!xe.call(t,i)||!br(e[i],t[i]))return!1}return!0}function Sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Cr(e,t){var n=Sr(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=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pt(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=Pt(e.document)}return t}function Er(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 Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Pt(r)||(r=Or,`selectionStart`in r&&Er(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}),Ar&&xr(Ar,r)||(Ar=r,r=Ld(kr,`onSelect`),0<r.length&&(t=new yn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Or)))}function Nr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Pr={animationend:Nr(`Animation`,`AnimationEnd`),animationiteration:Nr(`Animation`,`AnimationIteration`),animationstart:Nr(`Animation`,`AnimationStart`),transitionrun:Nr(`Transition`,`TransitionRun`),transitionstart:Nr(`Transition`,`TransitionStart`),transitioncancel:Nr(`Transition`,`TransitionCancel`),transitionend:Nr(`Transition`,`TransitionEnd`)},Fr={},Ir={};sn&&(Ir=document.createElement(`div`).style,`AnimationEvent`in window||(delete Pr.animationend.animation,delete Pr.animationiteration.animation,delete Pr.animationstart.animation),`TransitionEvent`in window||delete Pr.transitionend.transition);function Lr(e){if(Fr[e])return Fr[e];if(!Pr[e])return e;var t=Pr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Ir)return Fr[e]=t[n];return e}var Rr=Lr(`animationend`),zr=Lr(`animationiteration`),Br=Lr(`animationstart`),Vr=Lr(`transitionrun`),Hr=Lr(`transitionstart`),Ur=Lr(`transitioncancel`),Wr=Lr(`transitionend`),Gr=new Map,Kr=`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(` `);Kr.push(`scrollEnd`);function qr(e,t){Gr.set(e,t),bt(t,[e])}var Jr=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)},Yr=[],Xr=0,Zr=0;function Qr(){for(var e=Xr,t=Zr=Xr=0;t<e;){var n=Yr[t];Yr[t++]=null;var r=Yr[t];Yr[t++]=null;var i=Yr[t];Yr[t++]=null;var a=Yr[t];if(Yr[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&&ni(n,i,a)}}function $r(e,t,n,r){Yr[Xr++]=e,Yr[Xr++]=t,Yr[Xr++]=n,Yr[Xr++]=r,Zr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ei(e,t,n,r){return $r(e,t,n,r),ri(e)}function ti(e,t){return $r(e,null,null,t),ri(e)}function ni(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-Ie(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ri(e){if(50<bu)throw bu=0,xu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ii={};function ai(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 oi(e,t,n,r){return new ai(e,t,n,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e,t){var n=e.alternate;return n===null?(n=oi(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 li(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 ui(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)si(e)&&(s=1);else if(typeof e==`string`)s=tp(e,n,oe.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=oi(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return di(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=oi(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=oi(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=oi(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=oi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function di(e,t,n,r){return e=oi(7,e,r,t),e.lanes=n,e}function fi(e,t,n){return e=oi(6,e,null,t),e.lanes=n,e}function pi(e){var t=oi(18,null,null,0);return t.stateNode=e,t}function mi(e,t,n){return t=oi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var hi=new WeakMap;function gi(e,t){if(typeof e==`object`&&e){var n=hi.get(e);return n===void 0?(t={value:e,source:t,stack:be(t)},hi.set(e,t),t):n}return{value:e,source:t,stack:be(t)}}var _i=[],vi=0,yi=null,bi=0,xi=[],Si=0,Ci=null,wi=1,Ti=``;function Ei(e,t){_i[vi++]=bi,_i[vi++]=yi,yi=e,bi=t}function Di(e,t,n){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,Ci=e;var r=wi;e=Ti;var i=32-Ie(r)-1;r&=~(1<<i),n+=1;var a=32-Ie(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,wi=1<<32-Ie(t)+i|n<<i|r,Ti=a+e}else wi=1<<a|n<<i|r,Ti=e}function Oi(e){e.return!==null&&(Ei(e,1),Di(e,1,0))}function ki(e){for(;e===yi;)yi=_i[--vi],_i[vi]=null,bi=_i[--vi],_i[vi]=null;for(;e===Ci;)Ci=xi[--Si],xi[Si]=null,Ti=xi[--Si],xi[Si]=null,wi=xi[--Si],xi[Si]=null}function Ai(e,t){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,wi=t.id,Ti=t.overflow,Ci=e}var ji=null,Mi=null,Ni=!1,Pi=null,Fi=!1,Ii=Error(i(519));function Li(e){throw Ui(gi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Ii}function Ri(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[it]=e,t[at]=r,n){case`dialog`:Ad(`cancel`,t),Ad(`close`,t);break;case`iframe`:case`object`:case`embed`:Ad(`load`,t);break;case`video`:case`audio`:for(n=0;n<Dd.length;n++)Ad(Dd[n],t);break;case`source`:Ad(`error`,t);break;case`img`:case`image`:case`link`:Ad(`error`,t),Ad(`load`,t);break;case`details`:Ad(`toggle`,t);break;case`input`:Ad(`invalid`,t),Rt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Ad(`invalid`,t);break;case`textarea`:Ad(`invalid`,t),Ht(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||Ud(t.textContent,n)?(r.popover!=null&&(Ad(`beforetoggle`,t),Ad(`toggle`,t)),r.onScroll!=null&&Ad(`scroll`,t),r.onScrollEnd!=null&&Ad(`scrollend`,t),r.onClick!=null&&(t.onclick=Zt),t=!0):t=!1,t||Li(e,!0)}function zi(e){for(ji=e.return;ji;)switch(ji.tag){case 5:case 31:case 13:Fi=!1;return;case 27:case 3:Fi=!0;return;default:ji=ji.return}}function Bi(e){if(e!==ji)return!1;if(!Ni)return zi(e),Ni=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||tf(e.type,e.memoizedProps)),n=!n),n&&Mi&&Li(e),zi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=Sf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=Sf(e)}else t===27?(t=Mi,uf(e.type)?(e=xf,xf=null,Mi=e):Mi=t):Mi=ji?bf(e.stateNode.nextSibling):null;return!0}function Vi(){Mi=ji=null,Ni=!1}function Hi(){var e=Pi;return e!==null&&(ou===null?ou=e:ou.push.apply(ou,e),Pi=null),e}function Ui(e){Pi===null?Pi=[e]:Pi.push(e)}var Wi=re(null),Gi=null,Ki=null;function qi(e,t,n){ae(Wi,t._currentValue),t._currentValue=n}function Ji(e){e._currentValue=Wi.current,ie(Wi)}function Yi(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 Xi(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),Yi(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),Yi(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 Zi(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;br(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===le.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[up]:e.push(up))}a=a.return}e!==null&&Xi(t,e,n,r),t.flags|=262144}function Qi(e){for(e=e.firstContext;e!==null;){if(!br(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function $i(e){Gi=e,Ki=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ea(e){return na(Gi,e)}function ta(e,t){return Gi===null&&$i(e),na(e,t)}function na(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Ki===null){if(e===null)throw Error(i(308));Ki=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ki=Ki.next=t;return n}var ra=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()})}},ia=t.unstable_scheduleCallback,aa=t.unstable_NormalPriority,oa={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function sa(){return{controller:new ra,data:new Map,refCount:0}}function ca(e){e.refCount--,e.refCount===0&&ia(aa,function(){e.controller.abort()})}var la=null,ua=0,da=0,fa=null;function pa(e,t){if(la===null){var n=la=[];ua=0,da=xd(),fa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ua++,t.then(ma,ma),t}function ma(){if(--ua===0&&la!==null){fa!==null&&(fa.status=`fulfilled`);var e=la;la=null,da=0,fa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ha(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 ga=I.S;I.S=function(e,t){lu=Ee(),typeof t==`object`&&t&&typeof t.then==`function`&&pa(e,t),ga!==null&&ga(e,t)};var _a=re(null);function va(){var e=_a.current;return e===null?Wl.pooledCache:e}function ya(e,t){t===null?ae(_a,_a.current):ae(_a,t.pool)}function ba(){var e=va();return e===null?null:{parent:oa._currentValue,pool:e}}var xa=Error(i(460)),Sa=Error(i(474)),Ca=Error(i(542)),wa={then:function(){}};function Ta(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Ea(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Zt,Zt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Aa(e),e;default:if(typeof t.status==`string`)t.then(Zt,Zt);else{if(e=Wl,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,Aa(e),e}throw Oa=t,xa}}function Da(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Oa=e,xa):e}}var Oa=null;function ka(){if(Oa===null)throw Error(i(459));var e=Oa;return Oa=null,e}function Aa(e){if(e===xa||e===Ca)throw Error(i(483))}var ja=null,Ma=0;function Na(e){var t=Ma;return Ma+=1,ja===null&&(ja=[]),Ea(ja,e,t)}function Pa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Fa(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 Ia(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=ci(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=fi(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&&Da(i)===t.type)?(t=a(t,n.props),Pa(t,n),t.return=e,t):(t=ui(n.type,n.key,n.props,null,e.mode,r),Pa(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=mi(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=di(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=fi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ui(t.type,t.key,t.props,null,e.mode,n),Pa(n,t),n.return=e,n;case v:return t=mi(t,e.mode,n),t.return=e,t;case O:return t=Da(t),f(e,t,n)}if(F(t)||M(t))return t=di(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Na(t),n);if(t.$$typeof===C)return f(e,ta(e,t),n);Fa(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=Da(n),p(e,t,n,r)}if(F(n)||M(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Na(n),r);if(n.$$typeof===C)return p(e,t,ta(e,n),r);Fa(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=Da(r),m(e,t,n,r,i)}if(F(r)||M(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Na(r),i);if(r.$$typeof===C)return m(e,t,n,ta(t,r),i);Fa(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),Ni&&Ei(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 Ni&&Ei(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)}),Ni&&Ei(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),Ni&&Ei(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 Ni&&Ei(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)}),Ni&&Ei(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&&Da(l)===r.type){n(e,r.sibling),c=a(r,o.props),Pa(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Pa(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=mi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Da(o),b(e,r,o,c)}if(F(o))return h(e,r,o,c);if(M(o)){if(l=M(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,Na(o),c);if(o.$$typeof===C)return b(e,r,ta(e,o),c);Fa(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=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ma=0;var i=b(e,t,n,r);return ja=null,i}catch(t){if(t===xa||t===Ca)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var La=Ia(!0),Ra=Ia(!1),za=!1;function Ba(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Va(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 Ha(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ua(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Ul&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Wa(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,Qe(e,n)}}function Ga(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 Ka=!1;function qa(){if(Ka){var e=fa;if(e!==null)throw e}}function Ja(e,t,n,r){Ka=!1;var i=e.updateQueue;za=!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?(Kl&f)===f:(r&f)===f){f!==0&&f===da&&(Ka=!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:za=!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),eu|=o,e.lanes=o,e.memoizedState=d}}function Ya(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Xa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Ya(n[e],t)}var Za=re(null),Qa=re(0);function V(e,t){e=Ql,ae(Qa,e),ae(Za,t),Ql=e|t.baseLanes}function $a(){ae(Qa,Ql),ae(Za,Za.current)}function eo(){Ql=Qa.current,ie(Za),ie(Qa)}var to=re(null),no=null;function ro(e){var t=e.alternate;ae(co,co.current&1),ae(to,e),no===null&&(t===null||Za.current!==null||t.memoizedState!==null)&&(no=e)}function io(e){ae(co,co.current),ae(to,e),no===null&&(no=e)}function ao(e){e.tag===22?(ae(co,co.current),ae(to,e),no===null&&(no=e)):oo(e)}function oo(){ae(co,co.current),ae(to,to.current)}function so(e){ie(to),no===e&&(no=null),ie(co)}var co=re(0);function lo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||_f(n)||vf(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 uo=0,fo=null,po=null,mo=null,ho=!1,go=!1,_o=!1,vo=0,yo=0,bo=null,xo=0;function So(){throw Error(i(321))}function Co(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!br(e[n],t[n]))return!1;return!0}function wo(e,t,n,r,i,a){return uo=a,fo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=e===null||e.memoizedState===null?Vs:Hs,_o=!1,a=n(r,i),_o=!1,go&&(a=Eo(t,n,r,i)),To(e),a}function To(e){I.H=Bs;var t=po!==null&&po.next!==null;if(uo=0,mo=po=fo=null,ho=!1,yo=0,bo=null,t)throw Error(i(300));e===null||ac||(e=e.dependencies,e!==null&&Qi(e)&&(ac=!0))}function Eo(e,t,n,r){fo=e;var a=0;do{if(go&&(bo=null),yo=0,go=!1,25<=a)throw Error(i(301));if(a+=1,mo=po=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}I.H=Us,o=t(n,r)}while(go);return o}function Do(){var e=I.H,t=e.useState()[0];return t=typeof t.then==`function`?Po(t):t,e=e.useState()[0],(po===null?null:po.memoizedState)!==e&&(fo.flags|=1024),t}function Oo(){var e=vo!==0;return vo=0,e}function ko(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ao(e){if(ho){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}ho=!1}uo=0,mo=po=fo=null,go=!1,yo=vo=0,bo=null}function jo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return mo===null?fo.memoizedState=mo=e:mo=mo.next=e,mo}function Mo(){if(po===null){var e=fo.alternate;e=e===null?null:e.memoizedState}else e=po.next;var t=mo===null?fo.memoizedState:mo.next;if(t!==null)mo=t,po=e;else{if(e===null)throw fo.alternate===null?Error(i(467)):Error(i(310));po=e,e={memoizedState:po.memoizedState,baseState:po.baseState,baseQueue:po.baseQueue,queue:po.queue,next:null},mo===null?fo.memoizedState=mo=e:mo=mo.next=e}return mo}function No(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Po(e){var t=yo;return yo+=1,bo===null&&(bo=[]),e=Ea(bo,e,t),t=fo,(mo===null?t.memoizedState:mo.next)===null&&(t=t.alternate,I.H=t===null||t.memoizedState===null?Vs:Hs),e}function Fo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Po(e);if(e.$$typeof===C)return ea(e)}throw Error(i(438,String(e)))}function Io(e){var t=null,n=fo.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=fo.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=No(),fo.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 Lo(e,t){return typeof t==`function`?t(e):t}function Ro(e){return zo(Mo(),po,e)}function zo(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?(uo&f)===f:(Kl&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===da&&(d=!0);else if((uo&p)===p){u=u.next,p===da&&(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,fo.lanes|=p,eu|=p;f=u.action,_o&&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,fo.lanes|=f,eu|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!br(o,e.memoizedState)&&(ac=!0,d&&(n=fa,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 Bo(e){var t=Mo(),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);br(o,t.memoizedState)||(ac=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Vo(e,t,n){var r=fo,a=Mo(),o=Ni;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!br((po||a).memoizedState,n);if(s&&(a.memoizedState=n,ac=!0),a=a.queue,fs(Wo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||mo!==null&&mo.memoizedState.tag&1){if(r.flags|=2048,ss(9,{destroy:void 0},Uo.bind(null,r,a,n,t),null),Wl===null)throw Error(i(349));o||uo&127||Ho(r,t,n)}return n}function Ho(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=fo.updateQueue,t===null?(t=No(),fo.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Uo(e,t,n,r){t.value=n,t.getSnapshot=r,Go(t)&&Ko(e)}function Wo(e,t,n){return n(function(){Go(t)&&Ko(e)})}function Go(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!br(e,n)}catch{return!0}}function Ko(e){var t=ti(e,2);t!==null&&wu(t,e,2)}function qo(e){var t=jo();if(typeof e==`function`){var n=e;if(e=n(),_o){Fe(!0);try{n()}finally{Fe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:e},t}function Jo(e,t,n,r){return e.baseState=n,zo(e,po,typeof r==`function`?r:Lo)}function Yo(e,t,n,r,a){if(Ls(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)}};I.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Xo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Xo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=I.T,o={};I.T=o;try{var s=n(i,r),c=I.S;c!==null&&c(o,s),Zo(e,t,s)}catch(n){$o(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),I.T=a}}else try{a=n(i,r),Zo(e,t,a)}catch(n){$o(e,t,n)}}function Zo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Qo(e,t,n)},function(n){return $o(e,t,n)}):Qo(e,t,n)}function Qo(e,t,n){t.status=`fulfilled`,t.value=n,es(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Xo(e,n)))}function $o(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,es(t),t=t.next;while(t!==r)}e.action=null}function es(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function ts(e,t){return t}function ns(e,t){if(Ni){var n=Wl.formState;if(n!==null){a:{var r=fo;if(Ni){if(Mi){b:{for(var i=Mi,a=Fi;i.nodeType!==8;){if(!a){i=null;break b}if(i=bf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Mi=bf(i.nextSibling),r=i.data===`F!`;break a}}Li(r)}r=!1}r&&(t=n[0])}}return n=jo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ts,lastRenderedState:t},n.queue=r,n=Ps.bind(null,fo,r),r.dispatch=n,r=qo(!1),a=Is.bind(null,fo,!1,r.queue),r=jo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Yo.bind(null,fo,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function rs(e){return is(Mo(),po,e)}function is(e,t,n){if(t=zo(e,t,ts)[0],e=Ro(Lo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Po(t)}catch(e){throw e===xa?Ca:e}else r=t;t=Mo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(fo.flags|=2048,ss(9,{destroy:void 0},as.bind(null,i,n),null)),[r,a,e]}function as(e,t){e.action=t}function os(e){var t=Mo(),n=po;if(n!==null)return is(t,n,e);Mo(),t=t.memoizedState,n=Mo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ss(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=fo.updateQueue,t===null&&(t=No(),fo.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 cs(){return Mo().memoizedState}function ls(e,t,n,r){var i=jo();fo.flags|=e,i.memoizedState=ss(1|t,{destroy:void 0},n,r===void 0?null:r)}function us(e,t,n,r){var i=Mo();r=r===void 0?null:r;var a=i.memoizedState.inst;po!==null&&r!==null&&Co(r,po.memoizedState.deps)?i.memoizedState=ss(t,a,n,r):(fo.flags|=e,i.memoizedState=ss(1|t,a,n,r))}function ds(e,t){ls(8390656,8,e,t)}function fs(e,t){us(2048,8,e,t)}function ps(e){fo.flags|=4;var t=fo.updateQueue;if(t===null)t=No(),fo.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ms(e){var t=Mo().memoizedState;return ps({ref:t,nextImpl:e}),function(){if(Ul&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function hs(e,t){return us(4,2,e,t)}function gs(e,t){return us(4,4,e,t)}function _s(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 vs(e,t,n){n=n==null?null:n.concat([e]),us(4,4,_s.bind(null,t,e),n)}function ys(){}function bs(e,t){var n=Mo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Co(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function xs(e,t){var n=Mo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Co(t,r[1]))return r[0];if(r=e(),_o){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r}function Ss(e,t,n){return n===void 0||uo&1073741824&&!(Kl&261930)?e.memoizedState=t:(e.memoizedState=n,e=Cu(),fo.lanes|=e,eu|=e,n)}function Cs(e,t,n,r){return br(n,t)?n:Za.current===null?!(uo&42)||uo&1073741824&&!(Kl&261930)?(ac=!0,e.memoizedState=n):(e=Cu(),fo.lanes|=e,eu|=e,t):(e=Ss(e,n,r),br(e,t)||(ac=!0),e)}function ws(e,t,n,r,i){var a=L.p;L.p=a!==0&&8>a?a:8;var o=I.T,s={};I.T=s,Is(e,!1,t,n);try{var c=i(),l=I.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Fs(e,t,ha(c,r),Su(e)):Fs(e,t,r,Su(e))}catch(n){Fs(e,t,{then:function(){},status:`rejected`,reason:n},Su())}finally{L.p=a,o!==null&&s.types!==null&&(o.types=s.types),I.T=o}}function Ts(){}function Es(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ds(e).queue;ws(e,a,t,ee,n===null?Ts:function(){return Os(e),n(r)})}function Ds(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ee,baseState:ee,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:ee},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Os(e){var t=Ds(e);t.next===null&&(t=e.alternate.memoizedState),Fs(e,t.next.queue,{},Su())}function ks(){return ea(up)}function As(){return Mo().memoizedState}function js(){return Mo().memoizedState}function Ms(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Su();e=Ha(n);var r=Ua(t,e,n);r!==null&&(wu(r,t,n),Wa(r,t,n)),t={cache:sa()},e.payload=t;return}t=t.return}}function Ns(e,t,n){var r=Su();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ls(e)?Rs(t,n):(n=ei(e,t,n,r),n!==null&&(wu(n,e,r),zs(n,t,r)))}function Ps(e,t,n){Fs(e,t,n,Su())}function Fs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ls(e))Rs(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,br(s,o))return $r(e,t,i,0),Wl===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return wu(n,e,r),zs(n,t,r),!0}return!1}function Is(e,t,n,r){if(r={lane:2,revertLane:xd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ls(e)){if(t)throw Error(i(479))}else t=ei(e,n,r,2),t!==null&&wu(t,e,2)}function Ls(e){var t=e.alternate;return e===fo||t!==null&&t===fo}function Rs(e,t){go=ho=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Qe(e,n)}}var Bs={readContext:ea,use:Fo,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useLayoutEffect:So,useInsertionEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useSyncExternalStore:So,useId:So,useHostTransitionStatus:So,useFormState:So,useActionState:So,useOptimistic:So,useMemoCache:So,useCacheRefresh:So};Bs.useEffectEvent=So;var Vs={readContext:ea,use:Fo,useCallback:function(e,t){return jo().memoizedState=[e,t===void 0?null:t],e},useContext:ea,useEffect:ds,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ls(4194308,4,_s.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ls(4194308,4,e,t)},useInsertionEffect:function(e,t){ls(4,2,e,t)},useMemo:function(e,t){var n=jo();t=t===void 0?null:t;var r=e();if(_o){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=jo();if(n!==void 0){var i=n(t);if(_o){Fe(!0);try{n(t)}finally{Fe(!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=Ns.bind(null,fo,e),[r.memoizedState,e]},useRef:function(e){var t=jo();return e={current:e},t.memoizedState=e},useState:function(e){e=qo(e);var t=e.queue,n=Ps.bind(null,fo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ys,useDeferredValue:function(e,t){return Ss(jo(),e,t)},useTransition:function(){var e=qo(!1);return e=ws.bind(null,fo,e.queue,!0,!1),jo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=fo,a=jo();if(Ni){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Wl===null)throw Error(i(349));Kl&127||Ho(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ds(Wo.bind(null,r,o,e),[e]),r.flags|=2048,ss(9,{destroy:void 0},Uo.bind(null,r,o,n,t),null),n},useId:function(){var e=jo(),t=Wl.identifierPrefix;if(Ni){var n=Ti,r=wi;n=(r&~(1<<32-Ie(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=vo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=xo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:ks,useFormState:ns,useActionState:ns,useOptimistic:function(e){var t=jo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Is.bind(null,fo,!0,n),n.dispatch=t,[e,t]},useMemoCache:Io,useCacheRefresh:function(){return jo().memoizedState=Ms.bind(null,fo)},useEffectEvent:function(e){var t=jo(),n={impl:e};return t.memoizedState=n,function(){if(Ul&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Hs={readContext:ea,use:Fo,useCallback:bs,useContext:ea,useEffect:fs,useImperativeHandle:vs,useInsertionEffect:hs,useLayoutEffect:gs,useMemo:xs,useReducer:Ro,useRef:cs,useState:function(){return Ro(Lo)},useDebugValue:ys,useDeferredValue:function(e,t){return Cs(Mo(),po.memoizedState,e,t)},useTransition:function(){var e=Ro(Lo)[0],t=Mo().memoizedState;return[typeof e==`boolean`?e:Po(e),t]},useSyncExternalStore:Vo,useId:As,useHostTransitionStatus:ks,useFormState:rs,useActionState:rs,useOptimistic:function(e,t){return Jo(Mo(),po,e,t)},useMemoCache:Io,useCacheRefresh:js};Hs.useEffectEvent=ms;var Us={readContext:ea,use:Fo,useCallback:bs,useContext:ea,useEffect:fs,useImperativeHandle:vs,useInsertionEffect:hs,useLayoutEffect:gs,useMemo:xs,useReducer:Bo,useRef:cs,useState:function(){return Bo(Lo)},useDebugValue:ys,useDeferredValue:function(e,t){var n=Mo();return po===null?Ss(n,e,t):Cs(n,po.memoizedState,e,t)},useTransition:function(){var e=Bo(Lo)[0],t=Mo().memoizedState;return[typeof e==`boolean`?e:Po(e),t]},useSyncExternalStore:Vo,useId:As,useHostTransitionStatus:ks,useFormState:os,useActionState:os,useOptimistic:function(e,t){var n=Mo();return po===null?(n.baseState=e,[e,n.queue.dispatch]):Jo(n,po,e,t)},useMemoCache:Io,useCacheRefresh:js};Us.useEffectEvent=ms;function Ws(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 Gs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Ha(r);i.payload=t,n!=null&&(i.callback=n),t=Ua(e,i,r),t!==null&&(wu(t,e,r),Wa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Su(),i=Ha(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ua(e,i,r),t!==null&&(wu(t,e,r),Wa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Su(),r=Ha(n);r.tag=2,t!=null&&(r.callback=t),t=Ua(e,r,n),t!==null&&(wu(t,e,n),Wa(t,e,n))}};function Ks(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?!xr(n,r)||!xr(i,a):!0}function qs(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&&Gs.enqueueReplaceState(t,t.state,null)}function Js(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 Ys(e){Jr(e)}function Xs(e){console.error(e)}function Zs(e){Jr(e)}function Qs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function $s(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 ec(e,t,n){return n=Ha(n),n.tag=3,n.payload={element:null},n.callback=function(){Qs(e,t)},n}function tc(e){return e=Ha(e),e.tag=3,e}function nc(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(){$s(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){$s(t,n,r),typeof i!=`function`&&(fu===null?fu=new Set([this]):fu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function rc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Zi(t,n,a,!0),n=to.current,n!==null){switch(n.tag){case 31:case 13:return no===null?Iu():n.alternate===null&&$l===0&&($l=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===wa?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),td(e,r,a)),!1;case 22:return n.flags|=65536,r===wa?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)),td(e,r,a)),!1}throw Error(i(435,n.tag))}return td(e,r,a),Iu(),!1}if(Ni)return t=to.current,t===null?(r!==Ii&&(t=Error(i(423),{cause:r}),Ui(gi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=gi(r,n),a=ec(e.stateNode,r,a),Ga(e,a),$l!==4&&($l=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Ii&&(e=Error(i(422),{cause:r}),Ui(gi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=gi(o,n),au===null?au=[o]:au.push(o),$l!==4&&($l=2),t===null)return!0;r=gi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=ec(n.stateNode,r,e),Ga(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`&&(fu===null||!fu.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=tc(a),nc(a,e,n,r),Ga(n,a),!1}n=n.return}while(n!==null);return!1}var ic=Error(i(461)),ac=!1;function oc(e,t,n,r){t.child=e===null?Ra(t,null,n,r):La(t,e.child,n,r)}function sc(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 $i(t),r=wo(e,t,n,o,a,i),s=Oo(),e!==null&&!ac?(ko(e,t,i),jc(e,t,i)):(Ni&&s&&Oi(t),t.flags|=1,oc(e,t,r,i),t.child)}function cc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!si(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,lc(e,t,a,r,i)):(e=ui(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Mc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?xr:n,n(o,r)&&e.ref===t.ref)return jc(e,t,i)}return t.flags|=1,e=ci(a,r),e.ref=t.ref,e.return=t,t.child=e}function lc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(xr(a,r)&&e.ref===t.ref){if(ac=!1,t.pendingProps=r=a,Mc(e,i))e.flags&131072&&(ac=!0);else return t.lanes=e.lanes,jc(e,t,i)}}return _c(e,t,n,r,i)}function uc(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 fc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ya(t,a===null?null:a.cachePool),a===null?$a():V(t,a),ao(t);else return r=t.lanes=536870912,fc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ya(t,null),$a(),oo(t)):(ya(t,a.cachePool),V(t,a),oo(t),t.memoizedState=null);return oc(e,t,i,n),t.child}function dc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function fc(e,t,n,r,i){var a=va();return a=a===null?null:{parent:oa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ya(t,null),$a(),ao(t),e!==null&&Zi(e,t,r,!0),t.childLanes=i,null}function pc(e,t){return t=Ec({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function mc(e,t,n){return La(t,e.child,null,n),e=pc(t,t.pendingProps),e.flags|=2,so(t),t.memoizedState=null,e}function hc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(Ni){if(r.mode===`hidden`)return e=pc(t,r),t.lanes=536870912,dc(null,e);if(io(t),(e=Mi)?(e=gf(e,Fi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Li(t);return t.lanes=536870912,null}return pc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(io(t),a){if(t.flags&256)t.flags&=-257,t=mc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(ac||Zi(e,t,n,!1),a=(n&e.childLanes)!==0,ac||a){if(r=Wl,r!==null&&(s=$e(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ti(e,s),wu(r,e,s),ic;Iu(),t=mc(e,t,n)}else e=o.treeContext,Mi=bf(s.nextSibling),ji=t,Ni=!0,Pi=null,Fi=!1,e!==null&&Ai(t,e),t=pc(t,r),t.flags|=4096;return t}return e=ci(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function gc(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 _c(e,t,n,r,i){return $i(t),n=wo(e,t,n,r,void 0,i),r=Oo(),e!==null&&!ac?(ko(e,t,i),jc(e,t,i)):(Ni&&r&&Oi(t),t.flags|=1,oc(e,t,n,i),t.child)}function vc(e,t,n,r,i,a){return $i(t),t.updateQueue=null,n=Eo(t,r,n,i),To(e),r=Oo(),e!==null&&!ac?(ko(e,t,a),jc(e,t,a)):(Ni&&r&&Oi(t),t.flags|=1,oc(e,t,n,a),t.child)}function yc(e,t,n,r,i){if($i(t),t.stateNode===null){var a=ii,o=n.contextType;typeof o==`object`&&o&&(a=ea(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Gs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ba(t),o=n.contextType,a.context=typeof o==`object`&&o?ea(o):ii,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Ws(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&&Gs.enqueueReplaceState(a,a.state,null),Ja(t,r,a,i),qa(),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=Js(n,s);a.props=c;var l=a.context,u=n.contextType;o=ii,typeof u==`object`&&u&&(o=ea(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)&&qs(t,a,r,o),za=!1;var f=t.memoizedState;a.state=f,Ja(t,r,a,i),qa(),l=t.memoizedState,s||f!==l||za?(typeof d==`function`&&(Ws(t,n,d,r),l=t.memoizedState),(c=za||Ks(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,Va(e,t),o=t.memoizedProps,u=Js(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ii,typeof l==`object`&&l&&(c=ea(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)&&qs(t,a,r,c),za=!1,f=t.memoizedState,a.state=f,Ja(t,r,a,i),qa();var p=t.memoizedState;o!==d||f!==p||za||e!==null&&e.dependencies!==null&&Qi(e.dependencies)?(typeof s==`function`&&(Ws(t,n,s,r),p=t.memoizedState),(u=za||Ks(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Qi(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,gc(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=La(t,e.child,null,i),t.child=La(t,null,n,i)):oc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=jc(e,t,i),e}function bc(e,t,n,r){return Vi(),t.flags|=256,oc(e,t,n,r),t.child}var xc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Sc(e){return{baseLanes:e,cachePool:ba()}}function Cc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=ru),e}function wc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(co.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(Ni){if(a?ro(t):oo(t),(e=Mi)?(e=gf(e,Fi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Li(t);return vf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(oo(t),a=t.mode,c=Ec({mode:`hidden`,children:c},a),r=di(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Sc(n),r.childLanes=Cc(e,s,n),t.memoizedState=xc,dc(null,r)):(ro(t),Tc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(ro(t),t.flags&=-257,t=Dc(e,t,n)):t.memoizedState===null?(oo(t),c=r.fallback,a=t.mode,r=Ec({mode:`visible`,children:r.children},a),c=di(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,La(t,e.child,null,n),r=t.child,r.memoizedState=Sc(n),r.childLanes=Cc(e,s,n),t.memoizedState=xc,t=dc(null,r)):(oo(t),t.child=e.child,t.flags|=128,t=null);else if(ro(t),vf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Ui({value:r,source:null,stack:null}),t=Dc(e,t,n)}else if(ac||Zi(e,t,n,!1),s=(n&e.childLanes)!==0,ac||s){if(s=Wl,s!==null&&(r=$e(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ti(e,r),wu(s,e,r),ic;_f(c)||Iu(),t=Dc(e,t,n)}else _f(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Mi=bf(c.nextSibling),ji=t,Ni=!0,Pi=null,Fi=!1,e!==null&&Ai(t,e),t=Tc(t,r.children),t.flags|=4096);return t}return a?(oo(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ci(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=di(c,a,n,null),c.flags|=2):c=ci(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,dc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Sc(n):(a=c.cachePool,a===null?a=ba():(l=oa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=Cc(e,s,n),t.memoizedState=xc,dc(e.child,r)):(ro(t),n=e.child,e=n.sibling,n=ci(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 Tc(e,t){return t=Ec({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Ec(e,t){return e=oi(22,e,null,t),e.lanes=0,e}function Dc(e,t,n){return La(t,e.child,null,n),e=Tc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Oc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Yi(e.return,t,n)}function kc(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 Ac(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=co.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,ae(co,o),oc(e,t,r,n),r=Ni?bi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Oc(e,n,t);else if(e.tag===19)Oc(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&&lo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),kc(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&&lo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}kc(t,!0,n,null,a,r);break;case`together`:kc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function jc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),eu|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Zi(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=ci(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ci(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Mc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Qi(e)))}function Nc(e,t,n){switch(t.tag){case 3:ue(t,t.stateNode.containerInfo),qi(t,oa,e.memoizedState.cache),Vi();break;case 27:case 5:fe(t);break;case 4:ue(t,t.stateNode.containerInfo);break;case 10:qi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,io(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(ro(t),e=jc(e,t,n),e===null?null:e.sibling):wc(e,t,n):(ro(t),t.flags|=128,null);ro(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(Zi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Ac(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ae(co,co.current),r)break;return null;case 22:return t.lanes=0,uc(e,t,n,t.pendingProps);case 24:qi(t,oa,e.memoizedState.cache)}return jc(e,t,n)}function Pc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)ac=!0;else{if(!Mc(e,n)&&!(t.flags&128))return ac=!1,Nc(e,t,n);ac=!!(e.flags&131072)}}else ac=!1,Ni&&t.flags&1048576&&Di(t,bi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Da(t.elementType),t.type=e,typeof e==`function`)si(e)?(r=Js(e,r),t.tag=1,t=yc(null,t,e,r,n)):(t.tag=0,t=_c(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=sc(null,t,e,r,n);break a}if(a===D){t.tag=14,t=cc(null,t,e,r,n);break a}}throw t=P(e)||e,Error(i(306,t,``))}}return t;case 0:return _c(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Js(r,t.pendingProps),yc(e,t,r,a,n);case 3:a:{if(ue(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Va(e,t),Ja(t,r,null,n);var s=t.memoizedState;if(r=s.cache,qi(t,oa,r),r!==o.cache&&Xi(t,[oa],n,!0),qa(),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=bc(e,t,r,n);break a}if(r!==a){a=gi(Error(i(424)),t),Ui(a),t=bc(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(Mi=bf(e.firstChild),ji=t,Ni=!0,Pi=null,Fi=!0,n=Ra(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Vi(),r===a){t=jc(e,t,n);break a}oc(e,t,r,n)}t=t.child}return t;case 26:return gc(e,t),e===null?(n=Vf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Ni||(n=t.type,e=t.pendingProps,r=Qd(ce.current).createElement(n),r[it]=t,r[at]=e,Kd(r,n,e),_t(r),t.stateNode=r):t.memoizedState=Vf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return fe(t),e===null&&Ni&&(r=t.stateNode=wf(t.type,t.pendingProps,ce.current),ji=t,Fi=!0,a=Mi,uf(t.type)?(xf=a,Mi=bf(r.firstChild)):Mi=a),oc(e,t,t.pendingProps.children,n),gc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ni&&((a=r=Mi)&&(r=mf(r,t.type,t.pendingProps,Fi),r===null?a=!1:(t.stateNode=r,ji=t,Mi=bf(r.firstChild),Fi=!1,a=!0)),a||Li(t)),fe(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,tf(a,o)?r=null:s!==null&&tf(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=wo(e,t,Do,null,null,n),up._currentValue=a),gc(e,t),oc(e,t,r,n),t.child;case 6:return e===null&&Ni&&((e=n=Mi)&&(n=hf(n,t.pendingProps,Fi),n===null?e=!1:(t.stateNode=n,ji=t,Mi=null,e=!0)),e||Li(t)),null;case 13:return wc(e,t,n);case 4:return ue(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=La(t,null,r,n):oc(e,t,r,n),t.child;case 11:return sc(e,t,t.type,t.pendingProps,n);case 7:return oc(e,t,t.pendingProps,n),t.child;case 8:return oc(e,t,t.pendingProps.children,n),t.child;case 12:return oc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,qi(t,t.type,r.value),oc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,$i(t),a=ea(a),r=r(a),t.flags|=1,oc(e,t,r,n),t.child;case 14:return cc(e,t,t.type,t.pendingProps,n);case 15:return lc(e,t,t.type,t.pendingProps,n);case 19:return Ac(e,t,n);case 31:return hc(e,t,n);case 22:return uc(e,t,n,t.pendingProps);case 24:return $i(t),r=ea(oa),e===null?(a=va(),a===null&&(a=Wl,o=sa(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ba(t),qi(t,oa,a)):((e.lanes&n)!==0&&(Va(e,t),Ja(t,null,null,n),qa()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,qi(t,oa,r),r!==a.cache&&Xi(t,[oa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),qi(t,oa,r))),oc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Fc(e){e.flags|=4}function Ic(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(Nu())e.flags|=8192;else throw Oa=wa,Sa}}else e.flags&=-16777217}function Lc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!np(t)){if(Nu())e.flags|=8192;else throw Oa=wa,Sa}}function Rc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:qe(),e.lanes|=t,iu|=t)}function zc(e,t){if(!Ni)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 Bc(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 Vc(e,t,n){var r=t.pendingProps;switch(ki(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Bc(t),null;case 1:return Bc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Ji(oa),de(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Bi(t)?Fc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Hi())),Bc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Fc(t),o===null?(Bc(t),Ic(t,a,null,r,n)):(Bc(t),Lc(t,o))):o?o===e.memoizedState?(Bc(t),t.flags&=-16777217):(Fc(t),Bc(t),Lc(t,o)):(e=e.memoizedProps,e!==r&&Fc(t),Bc(t),Ic(t,a,e,r,n)),null;case 27:if(pe(t),n=ce.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Fc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Bc(t),null}e=oe.current,Bi(t)?Ri(t,e):(e=wf(a,r,n),t.stateNode=e,Fc(t))}return Bc(t),null;case 5:if(pe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Fc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Bc(t),null}if(o=oe.current,Bi(t))Ri(t,o);else{var s=Qd(ce.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[it]=t,o[at]=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(Kd(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&&Fc(t)}}return Bc(t),Ic(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Fc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ce.current,Bi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ji,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[it]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Ud(e.nodeValue,n)),e||Li(t,!0)}else e=Qd(e).createTextNode(r),e[it]=t,t.stateNode=e}return Bc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Bi(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[it]=t}else Vi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Bc(t),e=!1}else n=Hi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(so(t),t):(so(t),null);if(t.flags&128)throw Error(i(558))}return Bc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Bi(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[it]=t}else Vi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Bc(t),a=!1}else a=Hi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(so(t),t):(so(t),null)}return so(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),Rc(t,t.updateQueue),Bc(t),null);case 4:return de(),e===null&&Nd(t.stateNode.containerInfo),Bc(t),null;case 10:return Ji(t.type),Bc(t),null;case 19:if(ie(co),r=t.memoizedState,r===null)return Bc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)zc(r,!1);else{if($l!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=lo(e),o!==null){for(t.flags|=128,zc(r,!1),e=o.updateQueue,t.updateQueue=e,Rc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return ae(co,co.current&1|2),Ni&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ee()>uu&&(t.flags|=128,a=!0,zc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=lo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Rc(t,e),zc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Ni)return Bc(t),null}else 2*Ee()-r.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,a=!0,zc(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?(Bc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ee(),e.sibling=null,n=co.current,ae(co,a?n&1|2:n&1),Ni&&Ei(t,r.treeForkCount),e);case 22:case 23:return so(t),eo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Bc(t),t.subtreeFlags&6&&(t.flags|=8192)):Bc(t),n=t.updateQueue,n!==null&&Rc(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&&ie(_a),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ji(oa),Bc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Hc(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ji(oa),de(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return pe(t),null;case 31:if(t.memoizedState!==null){if(so(t),t.alternate===null)throw Error(i(340));Vi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(so(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Vi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ie(co),null;case 4:return de(),null;case 10:return Ji(t.type),null;case 22:case 23:return so(t),eo(),e!==null&&ie(_a),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ji(oa),null;case 25:return null;default:return null}}function Uc(e,t){switch(ki(t),t.tag){case 3:Ji(oa),de();break;case 26:case 27:case 5:pe(t);break;case 4:de();break;case 31:t.memoizedState!==null&&so(t);break;case 13:so(t);break;case 19:ie(co);break;case 10:Ji(t.type);break;case 22:case 23:so(t),eo(),e!==null&&ie(_a);break;case 24:Ji(oa)}}function Wc(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){ed(t,t.return,e)}}function Gc(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){ed(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){ed(t,t.return,e)}}function Kc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Xa(t,n)}catch(t){ed(e,e.return,t)}}}function qc(e,t,n){n.props=Js(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){ed(e,t,n)}}function Jc(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){ed(e,t,n)}}function Yc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){ed(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){ed(e,t,n)}else n.current=null}}function Xc(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){ed(e,e.return,t)}}function Zc(e,t,n){try{var r=e.stateNode;qd(r,e.type,n,t),r[at]=t}catch(t){ed(e,e.return,t)}}function Qc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&uf(e.type)||e.tag===4}function $c(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Qc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&uf(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 el(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=Zt));else if(r!==4&&(r===27&&uf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(el(e,t,n),e=e.sibling;e!==null;)el(e,t,n),e=e.sibling}function tl(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&&uf(e.type)&&(n=e.stateNode),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){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Kd(t,r,n),t[it]=e,t[at]=n}catch(t){ed(e,e.return,t)}}var rl=!1,il=!1,al=!1,ol=typeof WeakSet==`function`?WeakSet:Set,sl=null;function cl(e,t){if(e=e.containerInfo,Xd=yp,e=Tr(e),Er(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(Zd={focusedElem:e,selectionRange:n},yp=!1,sl=t;sl!==null;)if(t=sl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,sl=e;else for(;sl!==null;){switch(t=sl,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=Js(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){ed(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)pf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:pf(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,sl=e;break}sl=t.return}}function ll(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:wl(e,n),r&4&&Wc(5,n);break;case 1:if(wl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){ed(n,n.return,e)}else{var i=Js(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){ed(n,n.return,e)}}}r&64&&Kc(n),r&512&&Jc(n,n.return);break;case 3:if(wl(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{Xa(e,t)}catch(e){ed(n,n.return,e)}}break;case 27:t===null&&r&4&&nl(n);case 26:case 5:wl(e,n),t===null&&r&4&&Xc(n),r&512&&Jc(n,n.return);break;case 12:wl(e,n);break;case 31:wl(e,n),r&4&&hl(e,n);break;case 13:wl(e,n),r&4&&gl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=id.bind(null,n),yf(e,n))));break;case 22:if(r=n.memoizedState!==null||rl,!r){t=t!==null&&t.memoizedState!==null||il,i=rl;var a=il;rl=r,(il=t)&&!a?El(e,n,!!(n.subtreeFlags&8772)):wl(e,n),rl=i,il=a}break;case 30:break;default:wl(e,n)}}function ul(e){var t=e.alternate;t!==null&&(e.alternate=null,ul(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ft(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 dl=null,fl=!1;function pl(e,t,n){for(n=n.child;n!==null;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(Pe&&typeof Pe.onCommitFiberUnmount==`function`)try{Pe.onCommitFiberUnmount(Ne,n)}catch{}switch(n.tag){case 26:il||Yc(n,t),pl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:il||Yc(n,t);var r=dl,i=fl;uf(n.type)&&(dl=n.stateNode,fl=!1),pl(e,t,n),Tf(n.stateNode),dl=r,fl=i;break;case 5:il||Yc(n,t);case 6:if(r=dl,i=fl,dl=null,pl(e,t,n),dl=r,fl=i,dl!==null){if(fl)try{(dl.nodeType===9?dl.body:dl.nodeName===`HTML`?dl.ownerDocument.body:dl).removeChild(n.stateNode)}catch(e){ed(n,t,e)}else try{dl.removeChild(n.stateNode)}catch(e){ed(n,t,e)}}break;case 18:dl!==null&&(fl?(e=dl,df(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Wp(e)):df(dl,n.stateNode));break;case 4:r=dl,i=fl,dl=n.stateNode.containerInfo,fl=!0,pl(e,t,n),dl=r,fl=i;break;case 0:case 11:case 14:case 15:Gc(2,n,t),il||Gc(4,n,t),pl(e,t,n);break;case 1:il||(Yc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&qc(n,t,r)),pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:il=(r=il)||n.memoizedState!==null,pl(e,t,n),il=r;break;default:pl(e,t,n)}}function hl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Wp(e)}catch(e){ed(t,t.return,e)}}}function gl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Wp(e)}catch(e){ed(t,t.return,e)}}function _l(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ol),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ol),t;default:throw Error(i(435,e.tag))}}function vl(e,t){var n=_l(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=ad.bind(null,e,t);t.then(r,r)}})}function yl(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(uf(c.type)){dl=c.stateNode,fl=!1;break a}break;case 5:dl=c.stateNode,fl=!1;break a;case 3:case 4:dl=c.stateNode.containerInfo,fl=!0;break a}c=c.return}if(dl===null)throw Error(i(160));ml(o,s,a),dl=null,fl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)xl(t,e),t=t.sibling}var bl=null;function xl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:yl(t,e),Sl(e),r&4&&(Gc(3,e,e.return),Wc(3,e),Gc(5,e,e.return));break;case 1:yl(t,e),Sl(e),r&512&&(il||n===null||Yc(n,n.return)),r&64&&rl&&(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=bl;if(yl(t,e),Sl(e),r&512&&(il||n===null||Yc(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[dt]||o[it]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Kd(o,r,n),o[it]=e,_t(o),r=o;break a;case`link`:var s=$f(`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),Kd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=$f(`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),Kd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[it]=e,_t(o),r=o}e.stateNode=r}else ep(a,e.type,e.stateNode)}else e.stateNode=Jf(a,r,e.memoizedProps)}else o===r?r===null&&e.stateNode!==null&&Zc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?ep(a,e.type,e.stateNode):Jf(a,r,e.memoizedProps))}break;case 27:yl(t,e),Sl(e),r&512&&(il||n===null||Yc(n,n.return)),n!==null&&r&4&&Zc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(yl(t,e),Sl(e),r&512&&(il||n===null||Yc(n,n.return)),e.flags&32){a=e.stateNode;try{Ut(a,``)}catch(t){ed(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Zc(e,a,n===null?a:n.memoizedProps)),r&1024&&(al=!0);break;case 6:if(yl(t,e),Sl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){ed(e,e.return,t)}}break;case 3:if(Qf=null,a=bl,bl=Of(t.containerInfo),yl(t,e),bl=a,Sl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Wp(t.containerInfo)}catch(t){ed(e,e.return,t)}al&&(al=!1,Cl(e));break;case 4:r=bl,bl=Of(e.stateNode.containerInfo),yl(t,e),Sl(e),bl=r;break;case 12:yl(t,e),Sl(e);break;case 31:yl(t,e),Sl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,vl(e,r)));break;case 13:yl(t,e),Sl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(cu=Ee()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,vl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=rl,d=il;if(rl=u||a,il=d||l,yl(t,e),il=d,rl=u,Sl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||rl||il||Tl(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){ed(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){ed(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?ff(m,!0):ff(l.stateNode,!1)}catch(e){ed(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,vl(e,n))));break;case 19:yl(t,e),Sl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,vl(e,r)));break;case 30:break;case 21:break;default:yl(t,e),Sl(e)}}function Sl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Qc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;tl(e,$c(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Ut(o,``),n.flags&=-33),tl(e,$c(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;el(e,$c(e),s);break;default:throw Error(i(161))}}catch(t){ed(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Cl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Cl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function wl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ll(e,t.alternate,t),t=t.sibling}function Tl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Gc(4,t,t.return),Tl(t);break;case 1:Yc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&qc(t,t.return,n),Tl(t);break;case 27:Tf(t.stateNode);case 26:case 5:Yc(t,t.return),Tl(t);break;case 22:t.memoizedState===null&&Tl(t);break;case 30:Tl(t);break;default:Tl(t)}e=e.sibling}}function El(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:El(i,a,n),Wc(4,a);break;case 1:if(El(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){ed(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++)Ya(c[i],s)}catch(e){ed(r,r.return,e)}}n&&o&64&&Kc(a),Jc(a,a.return);break;case 27:nl(a);case 26:case 5:El(i,a,n),n&&r===null&&o&4&&Xc(a),Jc(a,a.return);break;case 12:El(i,a,n);break;case 31:El(i,a,n),n&&o&4&&hl(i,a);break;case 13:El(i,a,n),n&&o&4&&gl(i,a);break;case 22:a.memoizedState===null&&El(i,a,n),Jc(a,a.return);break;case 30:break;default:El(i,a,n)}t=t.sibling}}function Dl(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&&ca(n))}function Ol(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ca(e))}function kl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Al(e,t,n,r),t=t.sibling}function Al(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:kl(e,t,n,r),i&2048&&Wc(9,t);break;case 1:kl(e,t,n,r);break;case 3:kl(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&&ca(e)));break;case 12:if(i&2048){kl(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){ed(t,t.return,e)}}else kl(e,t,n,r);break;case 31:kl(e,t,n,r);break;case 13:kl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?kl(e,t,n,r):(a._visibility|=2,jl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?kl(e,t,n,r):Ml(e,t),i&2048&&Dl(o,t);break;case 24:kl(e,t,n,r),i&2048&&Ol(t.alternate,t);break;default:kl(e,t,n,r)}}function jl(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:jl(a,o,s,c,i),Wc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,jl(a,o,s,c,i)):u._visibility&2?jl(a,o,s,c,i):Ml(a,o),i&&l&2048&&Dl(o.alternate,o);break;case 24:jl(a,o,s,c,i),i&&l&2048&&Ol(o.alternate,o);break;default:jl(a,o,s,c,i)}t=t.sibling}}function Ml(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:Ml(n,r),i&2048&&Dl(r.alternate,r);break;case 24:Ml(n,r),i&2048&&Ol(r.alternate,r);break;default:Ml(n,r)}t=t.sibling}}var Nl=8192;function Pl(e,t,n){if(e.subtreeFlags&Nl)for(e=e.child;e!==null;)Fl(e,t,n),e=e.sibling}function Fl(e,t,n){switch(e.tag){case 26:Pl(e,t,n),e.flags&Nl&&e.memoizedState!==null&&rp(n,bl,e.memoizedState,e.memoizedProps);break;case 5:Pl(e,t,n);break;case 3:case 4:var r=bl;bl=Of(e.stateNode.containerInfo),Pl(e,t,n),bl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Nl,Nl=16777216,Pl(e,t,n),Nl=r):Pl(e,t,n));break;default:Pl(e,t,n)}}function Il(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 Ll(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];sl=r,Bl(r,e)}Il(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Rl(e),e=e.sibling}function Rl(e){switch(e.tag){case 0:case 11:case 15:Ll(e),e.flags&2048&&Gc(9,e,e.return);break;case 3:Ll(e);break;case 12:Ll(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,zl(e)):Ll(e);break;default:Ll(e)}}function zl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];sl=r,Bl(r,e)}Il(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Gc(8,t,t.return),zl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,zl(t));break;default:zl(t)}e=e.sibling}}function Bl(e,t){for(;sl!==null;){var n=sl;switch(n.tag){case 0:case 11:case 15:Gc(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:ca(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,sl=r;else a:for(n=e;sl!==null;){r=sl;var i=r.sibling,a=r.return;if(ul(r),r===n){sl=null;break a}if(i!==null){i.return=a,sl=i;break a}sl=a}}}var Vl={getCacheForType:function(e){var t=ea(oa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ea(oa).controller.signal}},Hl=typeof WeakMap==`function`?WeakMap:Map,Ul=0,Wl=null,Gl=null,Kl=0,ql=0,Jl=null,Yl=!1,Xl=!1,Zl=!1,Ql=0,$l=0,eu=0,tu=0,nu=0,ru=0,iu=0,au=null,ou=null,su=!1,cu=0,lu=0,uu=1/0,du=null,fu=null,pu=0,mu=null,hu=null,gu=0,_u=0,vu=null,yu=null,bu=0,xu=null;function Su(){return Ul&2&&Kl!==0?Kl&-Kl:I.T===null?tt():xd()}function Cu(){if(ru===0){if(!(Kl&536870912)||Ni){var e=Ve;Ve<<=1,!(Ve&3932160)&&(Ve=262144),ru=e}else ru=536870912}return e=to.current,e!==null&&(e.flags|=32),ru}function wu(e,t,n){(e===Wl&&(ql===2||ql===9)||e.cancelPendingCommit!==null)&&(ju(e,0),Ou(e,Kl,ru,!1)),Ye(e,n),(!(Ul&2)||e!==Wl)&&(e===Wl&&(!(Ul&2)&&(tu|=n),$l===4&&Ou(e,Kl,ru,!1)),pd(e))}function Tu(e,t,n){if(Ul&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||Ge(e,t),a=r?zu(e,t):Lu(e,t,!0),o=r;do{if(a===0){Xl&&!r&&Ou(e,t,0,!1);break}if(n=e.current.alternate,o&&!Du(n)){a=Lu(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=au;var l=c.current.memoizedState.isDehydrated;if(l&&(ju(c,s).flags|=256),s=Lu(c,s,!1),s!==2){if(Zl&&!l){c.errorRecoveryDisabledLanes|=o,tu|=o,a=4;break a}o=ou,ou=a,o!==null&&(ou===null?ou=o:ou.push.apply(ou,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){ju(e,0),Ou(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:Ou(r,t,ru,!Yl);break a;case 2:ou=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=cu+300-Ee(),10<a)){if(Ou(r,t,ru,!Yl),We(r,0,!0)!==0)break a;gu=t,r.timeoutHandle=af(Eu.bind(null,r,n,ou,du,su,t,ru,tu,iu,Yl,o,`Throttled`,-0,0),a);break a}Eu(r,n,ou,du,su,t,ru,tu,iu,Yl,o,null,-0,0)}break}while(1);pd(e)}function Eu(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:Zt},Fl(t,a,d);var m=(a&62914560)===a?cu-Ee():(a&4194048)===a?lu-Ee():0;if(m=ap(d,m),m!==null){gu=a,e.cancelPendingCommit=m(Ku.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Ou(e,a,o,!l);return}}Ku(e,t,a,n,r,i,o,s,c)}function Du(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(!br(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 Ou(e,t,n,r){t&=~nu,t&=~tu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ie(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Ze(e,n,t)}function ku(){return Ul&6?!0:(md(0,!1),!1)}function Au(){if(Gl!==null){if(ql===0)var e=Gl.return;else e=Gl,Ki=Gi=null,Ao(e),ja=null,Ma=0,e=Gl;for(;e!==null;)Uc(e.alternate,e),e=e.return;Gl=null}}function ju(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,of(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),gu=0,Au(),Wl=e,Gl=n=ci(e.current,null),Kl=t,ql=0,Jl=null,Yl=!1,Xl=Ge(e,t),Zl=!1,iu=ru=nu=tu=eu=$l=0,ou=au=null,su=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ie(r),a=1<<i;t|=e[i],r&=~a}return Ql=t,Qr(),n}function Mu(e,t){fo=null,I.H=Bs,t===xa||t===Ca?(t=ka(),ql=3):t===Sa?(t=ka(),ql=4):ql=t===ic?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Jl=t,Gl===null&&($l=1,Qs(e,gi(t,e.current)))}function Nu(){var e=to.current;return e===null?!0:(Kl&4194048)===Kl?no===null:(Kl&62914560)===Kl||Kl&536870912?e===no:!1}function Pu(){var e=I.H;return I.H=Bs,e===null?Bs:e}function Fu(){var e=I.A;return I.A=Vl,e}function Iu(){$l=4,Yl||(Kl&4194048)!==Kl&&to.current!==null||(Xl=!0),!(eu&134217727)&&!(tu&134217727)||Wl===null||Ou(Wl,Kl,ru,!1)}function Lu(e,t,n){var r=Ul;Ul|=2;var i=Pu(),a=Fu();(Wl!==e||Kl!==t)&&(du=null,ju(e,t)),t=!1;var o=$l;a:do try{if(ql!==0&&Gl!==null){var s=Gl,c=Jl;switch(ql){case 8:Au(),o=6;break a;case 3:case 2:case 9:case 6:to.current===null&&(t=!0);var l=ql;if(ql=0,Jl=null,Uu(e,s,c,l),n&&Xl){o=0;break a}break;default:l=ql,ql=0,Jl=null,Uu(e,s,c,l)}}Ru(),o=$l;break}catch(t){Mu(e,t)}while(1);return t&&e.shellSuspendCounter++,Ki=Gi=null,Ul=r,I.H=i,I.A=a,Gl===null&&(Wl=null,Kl=0,Qr()),o}function Ru(){for(;Gl!==null;)Vu(Gl)}function zu(e,t){var n=Ul;Ul|=2;var r=Pu(),a=Fu();Wl!==e||Kl!==t?(du=null,uu=Ee()+500,ju(e,t)):Xl=Ge(e,t);a:do try{if(ql!==0&&Gl!==null){t=Gl;var o=Jl;b:switch(ql){case 1:ql=0,Jl=null,Uu(e,t,o,1);break;case 2:case 9:if(Ta(o)){ql=0,Jl=null,Hu(t);break}t=function(){ql!==2&&ql!==9||Wl!==e||(ql=7),pd(e)},o.then(t,t);break a;case 3:ql=7;break a;case 4:ql=5;break a;case 7:Ta(o)?(ql=0,Jl=null,Hu(t)):(ql=0,Jl=null,Uu(e,t,o,7));break;case 5:var s=null;switch(Gl.tag){case 26:s=Gl.memoizedState;case 5:case 27:var c=Gl;if(s?np(s):c.stateNode.complete){ql=0,Jl=null;var l=c.sibling;if(l!==null)Gl=l;else{var u=c.return;u===null?Gl=null:(Gl=u,Wu(u))}break b}}ql=0,Jl=null,Uu(e,t,o,5);break;case 6:ql=0,Jl=null,Uu(e,t,o,6);break;case 8:Au(),$l=6;break a;default:throw Error(i(462))}}Bu();break}catch(t){Mu(e,t)}while(1);return Ki=Gi=null,I.H=r,I.A=a,Ul=n,Gl===null?(Wl=null,Kl=0,Qr(),$l):0}function Bu(){for(;Gl!==null&&!we();)Vu(Gl)}function Vu(e){var t=Pc(e.alternate,e,Ql);e.memoizedProps=e.pendingProps,t===null?Wu(e):Gl=t}function Hu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=vc(n,t,t.pendingProps,t.type,void 0,Kl);break;case 11:t=vc(n,t,t.pendingProps,t.type.render,t.ref,Kl);break;case 5:Ao(t);default:Uc(n,t),t=Gl=li(t,Ql),t=Pc(n,t,Ql)}e.memoizedProps=e.pendingProps,t===null?Wu(e):Gl=t}function Uu(e,t,n,r){Ki=Gi=null,Ao(t),ja=null,Ma=0;var i=t.return;try{if(rc(e,i,t,n,Kl)){$l=1,Qs(e,gi(n,e.current)),Gl=null;return}}catch(t){if(i!==null)throw Gl=i,t;$l=1,Qs(e,gi(n,e.current)),Gl=null;return}t.flags&32768?(Ni||r===1?e=!0:Xl||Kl&536870912?e=!1:(Yl=e=!0,(r===2||r===9||r===3||r===6)&&(r=to.current,r!==null&&r.tag===13&&(r.flags|=16384))),Gu(t,e)):Wu(t)}function Wu(e){var t=e;do{if(t.flags&32768){Gu(t,Yl);return}e=t.return;var n=Vc(t.alternate,t,Ql);if(n!==null){Gl=n;return}if(t=t.sibling,t!==null){Gl=t;return}Gl=t=e}while(t!==null);$l===0&&($l=5)}function Gu(e,t){do{var n=Hc(e.alternate,e);if(n!==null){n.flags&=32767,Gl=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Gl=e;return}Gl=e=n}while(e!==null);$l=6,Gl=null}function Ku(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Zu();while(pu!==0);if(Ul&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Zr,Xe(e,n,o,s,c,l),e===Wl&&(Gl=Wl=null,Kl=0),hu=t,mu=e,gu=n,_u=o,vu=a,yu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,od(ke,function(){return Qu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=I.T,I.T=null,a=L.p,L.p=2,s=Ul,Ul|=4;try{cl(e,t,n)}finally{Ul=s,L.p=a,I.T=r}}pu=1,qu(),Ju(),Yu()}}function qu(){if(pu===1){pu=0;var e=mu,t=hu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=I.T,I.T=null;var r=L.p;L.p=2;var i=Ul;Ul|=4;try{xl(t,e);var a=Zd,o=Tr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&wr(s.ownerDocument.documentElement,s)){if(c!==null&&Er(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 _=Cr(s,h),v=Cr(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}}yp=!!Xd,Zd=Xd=null}finally{Ul=i,L.p=r,I.T=n}}e.current=t,pu=2}}function Ju(){if(pu===2){pu=0;var e=mu,t=hu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=I.T,I.T=null;var r=L.p;L.p=2;var i=Ul;Ul|=4;try{ll(e,t.alternate,t)}finally{Ul=i,L.p=r,I.T=n}}pu=3}}function Yu(){if(pu===4||pu===3){pu=0,Te();var e=mu,t=hu,n=gu,r=yu;t.subtreeFlags&10256||t.flags&10256?pu=5:(pu=0,hu=mu=null,Xu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(fu=null),B(n),t=t.stateNode,Pe&&typeof Pe.onCommitFiberRoot==`function`)try{Pe.onCommitFiberRoot(Ne,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=I.T,i=L.p,L.p=2,I.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{I.T=t,L.p=i}}gu&3&&Zu(),pd(e),i=e.pendingLanes,n&261930&&i&42?e===xu?bu++:(bu=0,xu=e):bu=0,md(0,!1)}}function Xu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ca(t)))}function Zu(){return qu(),Ju(),Yu(),Qu()}function Qu(){if(pu!==5)return!1;var e=mu,t=_u;_u=0;var n=B(gu),r=I.T,a=L.p;try{L.p=32>n?32:n,I.T=null,n=vu,vu=null;var o=mu,s=gu;if(pu=0,hu=mu=null,gu=0,Ul&6)throw Error(i(331));var c=Ul;if(Ul|=4,Rl(o.current),Al(o,o.current,s,n),Ul=c,md(0,!1),Pe&&typeof Pe.onPostCommitFiberRoot==`function`)try{Pe.onPostCommitFiberRoot(Ne,o)}catch{}return!0}finally{L.p=a,I.T=r,Xu(e,t)}}function $u(e,t,n){t=gi(n,t),t=ec(e.stateNode,t,2),e=Ua(e,t,2),e!==null&&(Ye(e,2),pd(e))}function ed(e,t,n){if(e.tag===3)$u(e,e,n);else for(;t!==null;){if(t.tag===3){$u(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(fu===null||!fu.has(r))){e=gi(n,e),n=tc(2),r=Ua(t,n,2),r!==null&&(nc(n,r,t,e),Ye(r,2),pd(r));break}}t=t.return}}function td(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Hl;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)||(Zl=!0,i.add(n),e=nd.bind(null,e,t,n),t.then(e,e))}function nd(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Wl===e&&(Kl&n)===n&&($l===4||$l===3&&(Kl&62914560)===Kl&&300>Ee()-cu?!(Ul&2)&&ju(e,0):nu|=n,iu===Kl&&(iu=0)),pd(e)}function rd(e,t){t===0&&(t=qe()),e=ti(e,t),e!==null&&(Ye(e,t),pd(e))}function id(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),rd(e,n)}function ad(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),rd(e,n)}function od(e,t){return Se(e,t)}var sd=null,cd=null,ld=!1,ud=!1,dd=!1,fd=0;function pd(e){e!==cd&&e.next===null&&(cd===null?sd=cd=e:cd=cd.next=e),ud=!0,ld||(ld=!0,bd())}function md(e,t){if(!dd&&ud){dd=!0;do for(var n=!1,r=sd;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-Ie(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,yd(r,a))}else a=Kl,a=We(r,r===Wl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ge(r,a)||(n=!0,yd(r,a))}r=r.next}while(n);dd=!1}}function hd(){gd()}function gd(){ud=ld=!1;var e=0;fd!==0&&rf()&&(e=fd);for(var t=Ee(),n=null,r=sd;r!==null;){var i=r.next,a=_d(r,t);a===0?(r.next=null,n===null?sd=i:n.next=i,i===null&&(cd=n)):(n=r,(e!==0||a&3)&&(ud=!0)),r=i}pu!==0&&pu!==5||md(e,!1),fd!==0&&(fd=0)}function _d(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ie(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Ke(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Wl,n=Kl,n=We(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(ql===2||ql===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Ce(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Ge(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Ce(r),B(n)){case 2:case 8:n=Oe;break;case 32:n=ke;break;case 268435456:n=z;break;default:n=ke}return r=vd.bind(null,e),n=Se(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Ce(r),e.callbackPriority=2,e.callbackNode=null,2}function vd(e,t){if(pu!==0&&pu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Zu()&&e.callbackNode!==n)return null;var r=Kl;return r=We(e,e===Wl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Tu(e,r,t),_d(e,Ee()),e.callbackNode!=null&&e.callbackNode===n?vd.bind(null,e):null)}function yd(e,t){if(Zu())return null;Tu(e,t,!0)}function bd(){cf(function(){Ul&6?Se(De,hd):gd()})}function xd(){if(fd===0){var e=da;e===0&&(e=Be,Be<<=1,!(Be&261888)&&(Be=256)),fd=e}return fd}function Sd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Xt(``+e)}function Cd(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 wd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Sd((i[at]||null).action),o=r.submitter;o&&(t=(t=o[at]||null)?Sd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new yn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(fd!==0){var e=o?Cd(i,o):new FormData(i);Es(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?Cd(i,o):new FormData(i),Es(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Td=0;Td<Kr.length;Td++){var Ed=Kr[Td];qr(Ed.toLowerCase(),`on`+(Ed[0].toUpperCase()+Ed.slice(1)))}qr(Rr,`onAnimationEnd`),qr(zr,`onAnimationIteration`),qr(Br,`onAnimationStart`),qr(`dblclick`,`onDoubleClick`),qr(`focusin`,`onFocus`),qr(`focusout`,`onBlur`),qr(Vr,`onTransitionRun`),qr(Hr,`onTransitionStart`),qr(Ur,`onTransitionCancel`),qr(Wr,`onTransitionEnd`),xt(`onMouseEnter`,[`mouseout`,`mouseover`]),xt(`onMouseLeave`,[`mouseout`,`mouseover`]),xt(`onPointerEnter`,[`pointerout`,`pointerover`]),xt(`onPointerLeave`,[`pointerout`,`pointerover`]),bt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),bt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),bt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),bt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var Dd=`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(` `),Od=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(Dd));function kd(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){Jr(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){Jr(e)}i.currentTarget=null,a=c}}}}function Ad(e,t){var n=t[st];n===void 0&&(n=t[st]=new Set);var r=e+`__bubble`;n.has(r)||(Pd(t,e,2,!1),n.add(r))}function jd(e,t,n){var r=0;t&&(r|=4),Pd(n,e,r,t)}var Md=`_reactListening`+Math.random().toString(36).slice(2);function Nd(e){if(!e[Md]){e[Md]=!0,vt.forEach(function(t){t!==`selectionchange`&&(Od.has(t)||jd(t,!1,e),jd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Md]||(t[Md]=!0,jd(`selectionchange`,!1,t))}}function Pd(e,t,n,r){switch(Ep(t)){case 2:var i=bp;break;case 8:i=xp;break;default:i=Sp}n=i.bind(null,t,n,e),i=void 0,!cn||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 Fd(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=pt(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}an(function(){var r=a,i=$t(n),s=[];a:{var c=Gr.get(e);if(c!==void 0){var l=yn,u=e;switch(e){case`keypress`:if(mn(n)===0)break a;case`keydown`:case`keyup`:l=Ln;break;case`focusin`:u=`focus`,l=On;break;case`focusout`:u=`blur`,l=On;break;case`beforeblur`:case`afterblur`:l=On;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=En;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Dn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=zn;break;case Rr:case zr:case Br:l=kn;break;case Wr:l=Bn;break;case`scroll`:case`scrollend`:l=xn;break;case`wheel`:l=Vn;break;case`copy`:case`cut`:case`paste`:l=An;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Rn;break;case`toggle`:case`beforetoggle`:l=Hn}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=on(m,p),g!=null&&d.push(Id(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!==Qt&&(u=n.relatedTarget||n.fromElement)&&(pt(u)||u[ot]))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?pt(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=En,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Rn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:ht(l),h=u==null?c:ht(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,pt(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=Rd,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&&zd(s,c,l,d,!1),u!==null&&f!==null&&zd(s,f,u,d,!0)}}a:{if(c=r?ht(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=cr;else if(nr(c)){if(lr)v=vr;else{v=gr;var y=hr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&qt(r.elementType)&&(v=cr):v=_r;if(v&&=v(e,r)){rr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&zt(c,`number`,c.value)}switch(y=r?ht(r):window,e){case`focusin`:(nr(y)||y.contentEditable===`true`)&&(Or=y,kr=r,Ar=null);break;case`focusout`:Ar=kr=Or=null;break;case`mousedown`:jr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:jr=!1,Mr(s,n,i);break;case`selectionchange`:if(Dr)break;case`keydown`:case`keyup`:Mr(s,n,i)}var b;if(Wn)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 Qn?Xn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(qn&&n.locale!==`ko`&&(Qn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Qn&&(b=pn()):(un=i,dn=`value`in un?un.value:un.textContent,Qn=!0)),y=Ld(r,x),0<y.length&&(x=new jn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Zn(n),b!==null&&(x.data=b)))),(b=Kn?$n(e,n):er(e,n))&&(x=Ld(r,`onBeforeInput`),0<x.length&&(y=new jn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),wd(s,e,r,n,i)}kd(s,t)})}function Id(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ld(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=on(e,n),i!=null&&r.unshift(Id(e,i,a)),i=on(e,t),i!=null&&r.push(Id(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Rd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function zd(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=on(n,a),l!=null&&o.unshift(Id(n,l,c))):i||(l=on(n,a),l!=null&&o.push(Id(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Bd=/\r\n?/g,Vd=/\u0000|\uFFFD/g;function Hd(e){return(typeof e==`string`?e:``+e).replace(Bd,`
|
|
9
|
-
`).replace(Vd,``)}function Ud(e,t){return t=Hd(t),Hd(e)===t}function Wd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ut(e,``+r);break;case`className`:Dt(e,`class`,r);break;case`tabIndex`:Dt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Dt(e,n,r);break;case`style`:Kt(e,r,o);break;case`data`:if(t!==`object`){Dt(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=Xt(``+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`&&Wd(e,t,`name`,a.name,a,null),Wd(e,t,`formEncType`,a.formEncType,a,null),Wd(e,t,`formMethod`,a.formMethod,a,null),Wd(e,t,`formTarget`,a.formTarget,a,null)):(Wd(e,t,`encType`,a.encType,a,null),Wd(e,t,`method`,a.method,a,null),Wd(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Xt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`onScroll`:r!=null&&Ad(`scroll`,e);break;case`onScrollEnd`:r!=null&&Ad(`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=Xt(``+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`:Ad(`beforetoggle`,e),Ad(`toggle`,e),Et(e,`popover`,r);break;case`xlinkActuate`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Et(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=Jt.get(n)||n,Et(e,n,r))}}function Gd(e,t,n,r,a,o){switch(n){case`style`:Kt(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`?Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&Ut(e,``+r);break;case`onScroll`:r!=null&&Ad(`scroll`,e);break;case`onScrollEnd`:r!=null&&Ad(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!yt.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[at]||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,``):Et(e,n,r)}}}function Kd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Ad(`error`,e),Ad(`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:Wd(e,t,o,s,n,null)}}a&&Wd(e,t,`srcSet`,n.srcSet,n,null),r&&Wd(e,t,`src`,n.src,n,null);return;case`input`:Ad(`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:Wd(e,t,r,d,n,null)}}Rt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Ad(`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:Wd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Bt(e,!!r,n,!0):Bt(e,!!r,t,!1);return;case`textarea`:for(s in Ad(`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:Wd(e,t,s,c,n,null)}Ht(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:Wd(e,t,l,r,n,null)}return;case`dialog`:Ad(`beforetoggle`,e),Ad(`toggle`,e),Ad(`cancel`,e),Ad(`close`,e);break;case`iframe`:case`object`:Ad(`load`,e);break;case`video`:case`audio`:for(r=0;r<Dd.length;r++)Ad(Dd[r],e);break;case`image`:Ad(`error`,e),Ad(`load`,e);break;case`details`:Ad(`toggle`,e);break;case`embed`:case`source`:case`link`:Ad(`error`,e),Ad(`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:Wd(e,t,u,r,n,null)}return;default:if(qt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Gd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Wd(e,t,c,r,n,null))}function qd(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)||Wd(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&&Wd(e,t,p,m,r,f)}}Lt(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)||Wd(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&&Wd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Bt(e,!!n,n?[]:``,!1):Bt(e,!!n,t,!0)):Bt(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:Wd(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&&Wd(e,t,s,a,r,o)}Vt(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:Wd(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:Wd(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)&&Wd(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:Wd(e,t,u,p,r,m)}return;default:if(qt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Gd(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||Gd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Wd(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||Wd(e,t,f,p,r,m)}function Jd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Yd(){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&&Jd(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&&Jd(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 Xd=null,Zd=null;function Qd(e){return e.nodeType===9?e:e.ownerDocument}function $d(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 ef(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 tf(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 nf=null;function rf(){var e=window.event;return e&&e.type===`popstate`?e!==nf&&(nf=e,!0):(nf=null,!1)}var af=typeof setTimeout==`function`?setTimeout:void 0,of=typeof clearTimeout==`function`?clearTimeout:void 0,sf=typeof Promise==`function`?Promise:void 0,cf=typeof queueMicrotask==`function`?queueMicrotask:sf===void 0?af:function(e){return sf.resolve(null).then(e).catch(lf)};function lf(e){setTimeout(function(){throw e})}function uf(e){return e===`head`}function df(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),Wp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)Tf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,Tf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[dt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&Tf(e.ownerDocument.body)}n=i}while(n);Wp(t)}function ff(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 pf(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`:pf(n),ft(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function mf(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[dt])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=bf(e.nextSibling),e===null)break}return null}function hf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=bf(e.nextSibling),e===null))return null;return e}function gf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=bf(e.nextSibling),e===null))return null;return e}function _f(e){return e.data===`$?`||e.data===`$~`}function vf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function yf(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 bf(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 xf=null;function Sf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return bf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function Cf(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 wf(e,t,n){switch(t=Qd(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 Tf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ft(e)}var Ef=new Map,Df=new Set;function Of(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var kf=L.d;L.d={f:Af,r:jf,D:Pf,C:Ff,L:If,m:Lf,X:zf,S:Rf,M:Bf};function Af(){var e=kf.f(),t=ku();return e||t}function jf(e){var t=mt(e);t!==null&&t.tag===5&&t.type===`form`?Os(t):kf.r(e)}var Mf=typeof document>`u`?null:document;function Nf(e,t,n){var r=Mf;if(r&&typeof t==`string`&&t){var i=It(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Df.has(i)||(Df.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Kd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Pf(e){kf.D(e),Nf(`dns-prefetch`,e,null)}function Ff(e,t){kf.C(e,t),Nf(`preconnect`,e,t)}function If(e,t,n){kf.L(e,t,n);var r=Mf;if(r&&e&&t){var i=`link[rel="preload"][as="`+It(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+It(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+It(n.imageSizes)+`"]`)):i+=`[href="`+It(e)+`"]`;var a=i;switch(t){case`style`:a=Hf(e);break;case`script`:a=Kf(e)}Ef.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Ef.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Uf(a))||t===`script`&&r.querySelector(qf(a))||(t=r.createElement(`link`),Kd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Lf(e,t){kf.m(e,t);var n=Mf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+It(r)+`"][href="`+It(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Kf(e)}if(!Ef.has(a)&&(e=m({rel:`modulepreload`,href:e},t),Ef.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(qf(a)))return}r=n.createElement(`link`),Kd(r,`link`,e),_t(r),n.head.appendChild(r)}}}function Rf(e,t,n){kf.S(e,t,n);var r=Mf;if(r&&e){var i=gt(r).hoistableStyles,a=Hf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Uf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Ef.get(a))&&Xf(e,n);var c=o=r.createElement(`link`);_t(c),Kd(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,Yf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function zf(e,t){kf.X(e,t);var n=Mf;if(n&&e){var r=gt(n).hoistableScripts,i=Kf(e),a=r.get(i);a||(a=n.querySelector(qf(i)),a||(e=m({src:e,async:!0},t),(t=Ef.get(i))&&Zf(e,t),a=n.createElement(`script`),_t(a),Kd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Bf(e,t){kf.M(e,t);var n=Mf;if(n&&e){var r=gt(n).hoistableScripts,i=Kf(e),a=r.get(i);a||(a=n.querySelector(qf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=Ef.get(i))&&Zf(e,t),a=n.createElement(`script`),_t(a),Kd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Vf(e,t,n,r){var a=(a=ce.current)?Of(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=Hf(n.href),n=gt(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=Hf(n.href);var o=gt(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(Uf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),Ef.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},Ef.set(e,n),o||Gf(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=Kf(n),n=gt(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 Hf(e){return`href="`+It(e)+`"`}function Uf(e){return`link[rel="stylesheet"][`+e+`]`}function Wf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Gf(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}),Kd(t,`link`,n),_t(t),e.head.appendChild(t))}function Kf(e){return`[src="`+It(e)+`"]`}function qf(e){return`script[async]`+e}function Jf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+It(n.href)+`"]`);if(r)return t.instance=r,_t(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`),_t(r),Kd(r,`style`,a),Yf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Hf(n.href);var o=e.querySelector(Uf(a));if(o)return t.state.loading|=4,t.instance=o,_t(o),o;r=Wf(n),(a=Ef.get(a))&&Xf(r,a),o=(e.ownerDocument||e).createElement(`link`),_t(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Kd(o,`link`,r),t.state.loading|=4,Yf(o,n.precedence,e),t.instance=o;case`script`:return o=Kf(n.src),(a=e.querySelector(qf(o)))?(t.instance=a,_t(a),a):(r=n,(a=Ef.get(o))&&(r=m({},n),Zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),_t(a),Kd(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,Yf(r,n.precedence,e));return t.instance}function Yf(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 Xf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Qf=null;function $f(e,t,n){if(Qf===null){var r=new Map,i=Qf=new Map;i.set(n,r)}else i=Qf,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[dt]||a[it]||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 ep(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function tp(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 np(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function rp(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=Hf(r.href),a=t.querySelector(Uf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=op.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,_t(a);return}a=t.ownerDocument||t,r=Wf(r),(i=Ef.get(i))&&Xf(r,i),a=a.createElement(`link`),_t(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Kd(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=op.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var ip=0;function ap(e,t){return e.stylesheets&&e.count===0&&cp(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&cp(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&ip===0&&(ip=62500*Yd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&cp(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>ip?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function op(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)cp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var sp=null;function cp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,sp=new Map,t.forEach(lp,e),sp=null,op.call(e))}function lp(e,t){if(!(t.state.loading&4)){var n=sp.get(e);if(n)var r=n.get(null);else{n=new Map,sp.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=op.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 up={$$typeof:C,Provider:null,Consumer:null,_currentValue:ee,_currentValue2:ee,_threadCount:0};function dp(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=Je(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Je(0),this.hiddenUpdates=Je(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 fp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new dp(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=oi(3,null,null,t),e.current=a,a.stateNode=e,t=sa(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ba(a),e}function pp(e){return e?(e=ii,e):ii}function mp(e,t,n,r,i,a){i=pp(i),r.context===null?r.context=i:r.pendingContext=i,r=Ha(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ua(e,r,t),n!==null&&(wu(n,e,t),Wa(n,e,t))}function hp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function gp(e,t){hp(e,t),(e=e.alternate)&&hp(e,t)}function _p(e){if(e.tag===13||e.tag===31){var t=ti(e,67108864);t!==null&&wu(t,e,67108864),gp(e,67108864)}}function vp(e){if(e.tag===13||e.tag===31){var t=Su();t=et(t);var n=ti(e,t);n!==null&&wu(n,e,t),gp(e,t)}}var yp=!0;function bp(e,t,n,r){var i=I.T;I.T=null;var a=L.p;try{L.p=2,Sp(e,t,n,r)}finally{L.p=a,I.T=i}}function xp(e,t,n,r){var i=I.T;I.T=null;var a=L.p;try{L.p=8,Sp(e,t,n,r)}finally{L.p=a,I.T=i}}function Sp(e,t,n,r){if(yp){var i=Cp(r);if(i===null)Fd(e,t,r,wp,n),H(e,r);else if(Ip(i,e,t,n,r))r.stopPropagation();else if(H(e,r),t&4&&-1<Pp.indexOf(e)){for(;i!==null;){var a=mt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Ue(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ie(o);s.entanglements[1]|=c,o&=~c}pd(a),!(Ul&6)&&(uu=Ee()+500,md(0,!1))}}break;case 31:case 13:s=ti(a,2),s!==null&&wu(s,a,2),ku(),gp(a,2)}if(a=Cp(r),a===null&&Fd(e,t,r,wp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Fd(e,t,r,null,n)}}function Cp(e){return e=$t(e),Tp(e)}var wp=null;function Tp(e){if(wp=null,e=pt(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 wp=e,null}function Ep(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(R()){case De:return 2;case Oe:return 8;case ke:case Ae:return 32;case z:return 268435456;default:return 32}default:return 32}}var Dp=!1,Op=null,kp=null,Ap=null,jp=new Map,Mp=new Map,Np=[],Pp=`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 H(e,t){switch(e){case`focusin`:case`focusout`:Op=null;break;case`dragenter`:case`dragleave`:kp=null;break;case`mouseover`:case`mouseout`:Ap=null;break;case`pointerover`:case`pointerout`:jp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Mp.delete(t.pointerId)}}function Fp(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=mt(t),t!==null&&_p(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ip(e,t,n,r,i){switch(t){case`focusin`:return Op=Fp(Op,e,t,n,r,i),!0;case`dragenter`:return kp=Fp(kp,e,t,n,r,i),!0;case`mouseover`:return Ap=Fp(Ap,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return jp.set(a,Fp(jp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Mp.set(a,Fp(Mp.get(a)||null,e,t,n,r,i)),!0}return!1}function Lp(e){var t=pt(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,nt(e.priority,function(){vp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,nt(e.priority,function(){vp(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 Rp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Cp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Qt=r,n.target.dispatchEvent(r),Qt=null}else return t=mt(n),t!==null&&_p(t),e.blockedOn=n,!1;t.shift()}return!0}function zp(e,t,n){Rp(e)&&n.delete(t)}function Bp(){Dp=!1,Op!==null&&Rp(Op)&&(Op=null),kp!==null&&Rp(kp)&&(kp=null),Ap!==null&&Rp(Ap)&&(Ap=null),jp.forEach(zp),Mp.forEach(zp)}function Vp(e,n){e.blockedOn===n&&(e.blockedOn=null,Dp||(Dp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Bp)))}var Hp=null;function Up(e){Hp!==e&&(Hp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Hp===e&&(Hp=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(Tp(r||n)===null)continue;break}var a=mt(n);a!==null&&(e.splice(t,3),t-=3,Es(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Wp(e){function t(t){return Vp(t,e)}Op!==null&&Vp(Op,e),kp!==null&&Vp(kp,e),Ap!==null&&Vp(Ap,e),jp.forEach(t),Mp.forEach(t);for(var n=0;n<Np.length;n++){var r=Np[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Np.length&&(n=Np[0],n.blockedOn===null);)Lp(n),n.blockedOn===null&&Np.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[at]||null;if(typeof a==`function`)o||Up(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[at]||null)s=o.formAction;else if(Tp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Up(n)}}}function Gp(){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 Kp(e){this._internalRoot=e}qp.prototype.render=Kp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;mp(n,Su(),e,t,null,null)},qp.prototype.unmount=Kp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;mp(e.current,2,null,e,null,null),ku(),t[ot]=null}};function qp(e){this._internalRoot=e}qp.prototype.unstable_scheduleHydration=function(e){if(e){var t=tt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Np.length&&t!==0&&t<Np[n].priority;n++);Np.splice(n,0,e),n===0&&Lp(e)}};var Jp=n.version;if(Jp!==`19.2.8`)throw Error(i(527,Jp,`19.2.8`));L.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 Yp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:I,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Xp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Xp.isDisabled&&Xp.supportsFiber)try{Ne=Xp.inject(Yp),Pe=Xp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Ys,s=Xs,c=Zs;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=fp(e,1,!1,null,null,n,r,null,o,s,c,Gp),e[ot]=t.current,Nd(e),new Kp(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 j(e){return e.type===`stream_event`}var M=`This session is being continued from a previous conversation`;function N(e){return typeof e==`string`&&e.length>0&&e!==`<synthetic>`}function P(e){return e.trimStart().startsWith(M)}var F=`Your response above was cut off mid-stream`;function I(e){return e.trimStart().startsWith(F)}function L(e){return/^\[Request interrupted by user[^\]]*\]\s*$/.test(e.trim())}var ee=[`Continue from where you left off.`,`Ultracode is on`,`workflow-authoring`,`# Workflow authoring reference`,`<system-reminder>`,`Base directory for this skill:`];function te(e){let t=e.trimStart();return ee.some(e=>t.startsWith(e))}function ne(e){let t=e.split(`
|
|
10
|
-
`).map(e=>e.trim()).find(e=>e.length>0);if(!t)return`Engine note`;if(t.startsWith(`Base directory for this skill:`)){let e=t.slice(30).trim().replace(/[\\/]+$/,``).split(/[\\/]/).pop()??``;return e?`Skill instructions — ${e}`:`Skill instructions`}let n=t.replace(/^#+\s*/,``).replace(/^<system-reminder>\s*/,``);return n.length>96?`${n.slice(0,95)}…`:n||`Engine note`}var re=/\[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 ie(e){return e.includes(`[Image: `)?e.replace(re,``):e}function ae(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 oe(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=ie(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 se=`<task-notification>`;function ce(e){return e.trimStart().startsWith(se)}function le(e,t){let n=RegExp(`<${t}>([\\s\\S]*?)</${t}>`).exec(e);return(n?n[1].trim():``)||null}function ue(e){let t=[se];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(`
|
|
12
|
-
`)}function de(e){return{taskId:le(e,`task-id`),toolUseId:le(e,`tool-use-id`),status:le(e,`status`),summary:le(e,`summary`),note:le(e,`note`)}}var fe=[`low`,`medium`,`high`,`xhigh`,`max`,`ultracode`],pe=[`low`,`medium`,`high`,`xhigh`,`max`];function me(e){return typeof e==`string`&&fe.includes(e)}function he(e){return e?Array.isArray(e.effortLevels)?e.effortLevels:e.supportsThinking===!1?[]:pe:[]}function ge(e){return e?.supportsTools!==!1}function _e(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function ve(e){return e.replace(/\s+/g,` `).toLowerCase()}function ye(e){let t=e.split(` `).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`\\s+`);return new RegExp(t,`gi`)}function be(e,t={}){let n=e.trim().replace(/\s+/g,` `);if(n===``)return null;let r=n.split(` `).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`\\s+`),i=t.wholeWord?`(?<![\\p{L}\\p{N}_])${r}(?![\\p{L}\\p{N}_])`:r;return new RegExp(i,t.caseSensitive?`gu`:`giu`)}function xe(e,t,n={}){let r=be(t,n);return r!==null&&r.test(e)}function Se(e,t,n){let r=_e(t);if(r===``)return[];let i=[];for(let t=0;t<e.length;t++){let a=n(e[t]);a!==``&&ve(a).includes(r)&&i.push(t)}return i}function Ce(e,t,n){return n<=0?-1:e<0||e>=n?t>=0?0:n-1:((e+t)%n+n)%n}function we(e,t){return t<=0?`no matches`:`${e<0||e>=t?0:e+1}/${t}`}var Te={label:`Send now`,warning:`Stops what the agent is doing right now and sends this message immediately. The step that is running is cut.`,alreadyRead:`The agent has already read this message — there is nothing to hurry.`};function Ee(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}var R={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`,agentTools:`/api/v1/agent-tools`,commands:`/api/v1/commands`,sessionCommands:e=>`/api/v1/sessions/${e}/commands`,skills:`/api/v1/skills`,skill:e=>`/api/v1/skills/${encodeURIComponent(e)}`,importClaudeSkills:`/api/v1/skills/import/claude`,modelSkills:`/api/v1/model-skills`,sessionModelSkills:e=>`/api/v1/sessions/${e}/model-skills`,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)}`,sessionQueuedNow:(e,t)=>`/api/v1/sessions/${e}/queued/${encodeURIComponent(t)}/now`,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`,importSearch:`/api/v1/import/search`,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}`,scheduledTasks:`/api/v1/scheduled-tasks`,scheduledTask:e=>`/api/v1/scheduled-tasks/${e}`,conversations:`/api/v1/conversations`,conversation:e=>`/api/v1/conversations/${e}`,conversationAction:(e,t)=>`/api/v1/conversations/${e}/${t}`,conversationsStopAll:`/api/v1/conversations/stop-all`,chatMessage:e=>`/api/v1/chat-messages/${e}`,sessionAbout:e=>`/api/v1/sessions/${e}/about`,sessionAboutRegenerate:e=>`/api/v1/sessions/${e}/about/regenerate`,chatAbouts:`/api/v1/chat-abouts`,chatAboutsGenerateAll:`/api/v1/chat-abouts/generate-all`,chatAboutsGenerateAllStop:`/api/v1/chat-abouts/generate-all/stop`,githubLink:`/api/v1/git/github`,githubLinkStart:`/api/v1/git/github/link`,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`,sessionLocalFile:e=>`/api/v1/sessions/${e}/local-file`,sessionLocalFileGrant:e=>`/api/v1/sessions/${e}/local-file/grant`,sessionLocalFileStat:e=>`/api/v1/sessions/${e}/local-file/stat`,sandboxRestore:`/api/v1/sandbox/restore`},De={health:`GET`,info:`GET`,listSessions:`GET`,createSession:`POST`,getSession:`GET`,updateSession:`PATCH`,deleteSession:`DELETE`,listEntries:`GET`,listMessages:`GET`,prompt:`POST`,interrupt:`POST`,cancelQueued:`DELETE`,sendQueuedNow:`POST`,fork:`POST`,export:`GET`,exportArchive:`POST`,attachSessionProject:`POST`,listProjects:`GET`,scanClaudeSessions:`GET`,importClaudeSessions:`POST`,searchImportChats:`GET`,sessionLink:`GET`,syncSessionDown:`POST`,inspectProject:`GET`,listVaultProjects:`GET`,createVaultProject:`POST`,updateVaultProject:`PATCH`,deleteVaultProject:`DELETE`,listScheduledTasks:`GET`,createScheduledTask:`POST`,updateScheduledTask:`PATCH`,deleteScheduledTask:`DELETE`,listConversations:`GET`,getConversation:`GET`,conversationAction:`POST`,stopAllConversations:`POST`,cancelChatMessage:`DELETE`,getChatAbout:`GET`,updateChatAbout:`PATCH`,regenerateChatAbout:`POST`,listChatAbouts:`GET`,generateAllChatAbouts:`POST`,stopGenerateAllChatAbouts:`POST`,searchEntries:`GET`,getGithubLink:`GET`,startGithubLink:`POST`,cancelGithubLink:`DELETE`,unlinkGithub:`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`,readLocalFile:`GET`,grantLocalFile:`POST`,statLocalPaths:`POST`,listCommands:`GET`,listSessionCommands:`GET`,listSkills:`GET`,deleteSkill:`DELETE`,scanClaudeSkills:`GET`,importClaudeSkills:`POST`,listChatSkills:`GET`,listSessionChatSkills:`GET`};function Oe(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function ke(e){return e===`attached`}var Ae;function z(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 je=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Me=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Ae=globalThis).__zod_globalConfig??(Ae.__zod_globalConfig={});var Ne=globalThis.__zod_globalConfig;function Pe(e){return e&&Object.assign(Ne,e),Ne}function Fe(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 Ie(e,t){return typeof t==`bigint`?t.toString():t}function Le(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Re(e){return e==null}function ze(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Be(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 Ve=Symbol(`evaluating`);function He(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Ve)return r===void 0&&(r=Ve,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ue(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function We(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Ge(e){return JSON.stringify(e)}function Ke(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var qe=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Je(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Ye=Le(()=>{if(Ne.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Xe(e){if(Je(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Je(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Ze(e){return Xe(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Qe=new Set([`string`,`number`,`symbol`]);function $e(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function et(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function B(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 tt(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var nt={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function rt(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 et(e,We(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 Ue(this,`shape`,e),e},checks:[]}))}function it(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 et(e,We(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 Ue(this,`shape`,r),r},checks:[]}))}function at(e,t){if(!Xe(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 et(e,We(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ue(this,`shape`,n),n}}))}function ot(e,t){if(!Xe(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return et(e,We(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ue(this,`shape`,n),n}}))}function st(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return et(e,We(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ue(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ct(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 et(t,We(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 Ue(this,`shape`,i),i},checks:[]}))}function lt(e,t,n){return et(t,We(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 Ue(this,`shape`,i),i}}))}function ut(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 dt(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 ft(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function pt(e){return typeof e==`string`?e:e?.message}function mt(e,t,n){let r=e.message?e.message:pt(e.inst?._zod.def?.error?.(e))??pt(t?.error?.(e))??pt(n.customError?.(e))??pt(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 ht(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function gt(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var _t=(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,Ie,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},vt=z(`$ZodError`,_t),yt=z(`$ZodError`,_t,{Parent:Error});function bt(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 xt(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 St=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 je;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>mt(e,a,Pe())));throw qe(t,i?.callee),t}return o.value},Ct=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=>mt(e,a,Pe())));throw qe(t,i?.callee),t}return o.value},wt=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 je;return a.issues.length?{success:!1,error:new(e??vt)(a.issues.map(e=>mt(e,i,Pe())))}:{success:!0,data:a.value}},Tt=wt(yt),Et=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=>mt(e,i,Pe())))}:{success:!0,data:a.value}},Dt=Et(yt),Ot=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return St(e)(t,n,i)},kt=e=>(t,n,r)=>St(e)(t,n,r),At=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Ct(e)(t,n,i)},jt=e=>async(t,n,r)=>Ct(e)(t,n,r),Mt=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return wt(e)(t,n,i)},Nt=e=>(t,n,r)=>wt(e)(t,n,r),Pt=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Et(e)(t,n,i)},Ft=e=>async(t,n,r)=>Et(e)(t,n,r),It=/^[cC][0-9a-z]{6,}$/,Lt=/^[0-9a-z]+$/,Rt=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,zt=/^[0-9a-vA-V]{20}$/,Bt=/^[A-Za-z0-9]{27}$/,Vt=/^[a-zA-Z0-9_-]{21}$/,Ht=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ut=/^([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})$/,Wt=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)$/,Gt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Kt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function qt(){return new RegExp(Kt,`u`)}var 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])$/,Yt=/^(([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}|:))$/,Xt=/^((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])$/,Zt=/^(([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])$/,Qt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,$t=/^[A-Za-z0-9_-]*$/,en=/^https?$/,tn=/^\+[1-9]\d{6,14}$/,nn=`(?:(?:\\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])))`,rn=RegExp(`^${nn}$`);function an(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 on(e){return RegExp(`^${an(e)}$`)}function sn(e){let t=an({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(`^${nn}T(?:${r})$`)}var cn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},ln=/^-?\d+$/,un=/^-?\d+(?:\.\d+)?$/,dn=/^(?:true|false)$/i,fn=/^[^A-Z]*$/,pn=/^[^a-z]*$/,mn=z(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),hn={number:`number`,bigint:`bigint`,object:`date`},gn=z(`$ZodCheckLessThan`,(e,t)=>{mn.init(e,t);let n=hn[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})}}),_n=z(`$ZodCheckGreaterThan`,(e,t)=>{mn.init(e,t);let n=hn[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})}}),vn=z(`$ZodCheckMultipleOf`,(e,t)=>{mn.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):Be(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})}}),yn=z(`$ZodCheckNumberFormat`,(e,t)=>{mn.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=nt[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=ln)}),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})}}),bn=z(`$ZodCheckMaxLength`,(e,t)=>{var n;mn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Re(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=ht(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),xn=z(`$ZodCheckMinLength`,(e,t)=>{var n;mn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Re(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=ht(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Sn=z(`$ZodCheckLengthEquals`,(e,t)=>{var n;mn.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Re(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=ht(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})}}),Cn=z(`$ZodCheckStringFormat`,(e,t)=>{var n,r;mn.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=()=>{})}),wn=z(`$ZodCheckRegex`,(e,t)=>{Cn.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})}}),Tn=z(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=fn,Cn.init(e,t)}),En=z(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=pn,Cn.init(e,t)}),Dn=z(`$ZodCheckIncludes`,(e,t)=>{mn.init(e,t);let n=$e(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})}}),On=z(`$ZodCheckStartsWith`,(e,t)=>{mn.init(e,t);let n=RegExp(`^${$e(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})}}),kn=z(`$ZodCheckEndsWith`,(e,t)=>{mn.init(e,t);let n=RegExp(`.*${$e(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})}}),An=z(`$ZodCheckOverwrite`,(e,t)=>{mn.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),jn=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(`
|
|
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(`
|
|
14
|
-
`))}},Mn={major:4,minor:4,patch:3},Nn=z(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Mn;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=ut(e),i;for(let a of t){if(a._zod.def.when){if(dt(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 je;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=ut(e,t))});else{if(e.issues.length===t)continue;r||=ut(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(ut(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new je;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 je;return o.then(e=>t(e,r,a))}return t(o,r,a)}}He(e,`~standard`,()=>({validate:t=>{try{let n=Tt(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Dt(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Pn=z(`$ZodString`,(e,t)=>{Nn.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??cn(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}}),Fn=z(`$ZodStringFormat`,(e,t)=>{Cn.init(e,t),Pn.init(e,t)}),In=z(`$ZodGUID`,(e,t)=>{t.pattern??=Ut,Fn.init(e,t)}),Ln=z(`$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??=Wt(e)}else t.pattern??=Wt();Fn.init(e,t)}),Rn=z(`$ZodEmail`,(e,t)=>{t.pattern??=Gt,Fn.init(e,t)}),zn=z(`$ZodURL`,(e,t)=>{Fn.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===en.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})}}}),Bn=z(`$ZodEmoji`,(e,t)=>{t.pattern??=qt(),Fn.init(e,t)}),Vn=z(`$ZodNanoID`,(e,t)=>{t.pattern??=Vt,Fn.init(e,t)}),Hn=z(`$ZodCUID`,(e,t)=>{t.pattern??=It,Fn.init(e,t)}),Un=z(`$ZodCUID2`,(e,t)=>{t.pattern??=Lt,Fn.init(e,t)}),Wn=z(`$ZodULID`,(e,t)=>{t.pattern??=Rt,Fn.init(e,t)}),Gn=z(`$ZodXID`,(e,t)=>{t.pattern??=zt,Fn.init(e,t)}),Kn=z(`$ZodKSUID`,(e,t)=>{t.pattern??=Bt,Fn.init(e,t)}),qn=z(`$ZodISODateTime`,(e,t)=>{t.pattern??=sn(t),Fn.init(e,t)}),Jn=z(`$ZodISODate`,(e,t)=>{t.pattern??=rn,Fn.init(e,t)}),Yn=z(`$ZodISOTime`,(e,t)=>{t.pattern??=on(t),Fn.init(e,t)}),Xn=z(`$ZodISODuration`,(e,t)=>{t.pattern??=Ht,Fn.init(e,t)}),Zn=z(`$ZodIPv4`,(e,t)=>{t.pattern??=Jt,Fn.init(e,t),e._zod.bag.format=`ipv4`}),Qn=z(`$ZodIPv6`,(e,t)=>{t.pattern??=Yt,Fn.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})}}}),$n=z(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Xt,Fn.init(e,t)}),er=z(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Zt,Fn.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 tr(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var nr=z(`$ZodBase64`,(e,t)=>{t.pattern??=Qt,Fn.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{tr(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function rr(e){if(!$t.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return tr(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var ir=z(`$ZodBase64URL`,(e,t)=>{t.pattern??=$t,Fn.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{rr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),ar=z(`$ZodE164`,(e,t)=>{t.pattern??=tn,Fn.init(e,t)});function or(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 sr=z(`$ZodJWT`,(e,t)=>{Fn.init(e,t),e._zod.check=n=>{or(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),cr=z(`$ZodNumber`,(e,t)=>{Nn.init(e,t),e._zod.pattern=e._zod.bag.pattern??un,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}}),lr=z(`$ZodNumberFormat`,(e,t)=>{yn.init(e,t),cr.init(e,t)}),ur=z(`$ZodBoolean`,(e,t)=>{Nn.init(e,t),e._zod.pattern=dn,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}}),dr=z(`$ZodUnknown`,(e,t)=>{Nn.init(e,t),e._zod.parse=e=>e}),fr=z(`$ZodNever`,(e,t)=>{Nn.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function pr(e,t,n){e.issues.length&&t.issues.push(...ft(n,e.issues)),t.value[n]=e.value}var mr=z(`$ZodArray`,(e,t)=>{Nn.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=>pr(t,n,e))):pr(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function hr(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(...ft(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 gr(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=tt(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function _r(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=>hr(e,n,i,t,u,d))):hr(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 vr=z(`$ZodObject`,(e,t)=>{if(Nn.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=Le(()=>gr(t));He(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=Je,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=>hr(n,t,e,s,r,i))):hr(a,t,e,s,r,i)}return i?_r(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),yr=z(`$ZodObjectJIT`,(e,t)=>{vr.init(e,t);let n=e._zod.parse,r=Le(()=>gr(t)),i=e=>{let t=new jn([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Ge(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=Ge(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(`
|
|
15
|
-
if (${n}.issues.length) {
|
|
16
|
-
if (${o} in input) {
|
|
17
|
-
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
18
|
-
...iss,
|
|
19
|
-
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
20
|
-
})));
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (${n}.value === undefined) {
|
|
25
|
-
if (${o} in input) {
|
|
26
|
-
newResult[${o}] = undefined;
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
newResult[${o}] = ${n}.value;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
`):c?t.write(`
|
|
33
|
-
if (${n}.issues.length) {
|
|
34
|
-
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
35
|
-
...iss,
|
|
36
|
-
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
37
|
-
})));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (${n}.value === undefined) {
|
|
41
|
-
if (${o} in input) {
|
|
42
|
-
newResult[${o}] = undefined;
|
|
43
|
-
}
|
|
44
|
-
} else {
|
|
45
|
-
newResult[${o}] = ${n}.value;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
`):t.write(`
|
|
49
|
-
const ${n}_present = ${o} in input;
|
|
50
|
-
if (${n}.issues.length) {
|
|
51
|
-
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
52
|
-
...iss,
|
|
53
|
-
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
54
|
-
})));
|
|
55
|
-
}
|
|
56
|
-
if (!${n}_present && !${n}.issues.length) {
|
|
57
|
-
payload.issues.push({
|
|
58
|
-
code: "invalid_type",
|
|
59
|
-
expected: "nonoptional",
|
|
60
|
-
input: undefined,
|
|
61
|
-
path: [${o}]
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (${n}_present) {
|
|
66
|
-
if (${n}.value === undefined) {
|
|
67
|
-
newResult[${o}] = undefined;
|
|
68
|
-
} else {
|
|
69
|
-
newResult[${o}] = ${n}.value;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Je,s=!Ne.jitless,c=s&&Ye.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?_r([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function br(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=>!ut(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=>mt(e,r,Pe())))}),t)}var xr=z(`$ZodUnion`,(e,t)=>{Nn.init(e,t),He(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),He(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),He(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),He(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=>ze(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=>br(t,r,e,i)):br(o,r,e,i)}}),Sr=z(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,xr.init(e,t);let n=e._zod.parse;He(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=Le(()=>{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(!Je(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)}}),Cr=z(`$ZodIntersection`,(e,t)=>{Nn.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])=>Tr(e,t,n)):Tr(e,i,a)}});function wr(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Xe(e)&&Xe(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=wr(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=wr(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 Tr(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}),ut(e))return e;let o=wr(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var Er=z(`$ZodRecord`,(e,t)=>{Nn.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Xe(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=>mt(e,r,Pe())),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(...ft(c,e.issues)),n.value[l]=e.value})):(u.issues.length&&n.issues.push(...ft(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`&&un.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=>mt(e,r,Pe())),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(...ft(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...ft(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),Dr=z(`$ZodEnum`,(e,t)=>{Nn.init(e,t);let n=Fe(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Qe.has(typeof e)).map(e=>typeof e==`string`?$e(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}}),Or=z(`$ZodLiteral`,(e,t)=>{if(Nn.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`?$e(e):e?$e(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}}),kr=z(`$ZodTransform`,(e,t)=>{Nn.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Me(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 je;return n.value=i,n.fallback=!0,n}});function Ar(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var jr=z(`$ZodOptional`,(e,t)=>{Nn.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,He(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),He(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${ze(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=>Ar(e,r)):Ar(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Mr=z(`$ZodExactOptional`,(e,t)=>{jr.init(e,t),He(e._zod,`values`,()=>t.innerType._zod.values),He(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Nr=z(`$ZodNullable`,(e,t)=>{Nn.init(e,t),He(e._zod,`optin`,()=>t.innerType._zod.optin),He(e._zod,`optout`,()=>t.innerType._zod.optout),He(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${ze(e.source)}|null)$`):void 0}),He(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)}),Pr=z(`$ZodDefault`,(e,t)=>{Nn.init(e,t),e._zod.optin=`optional`,He(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=>Fr(e,t)):Fr(r,t)}});function Fr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Ir=z(`$ZodPrefault`,(e,t)=>{Nn.init(e,t),e._zod.optin=`optional`,He(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))}),Lr=z(`$ZodNonOptional`,(e,t)=>{Nn.init(e,t),He(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=>Rr(t,e)):Rr(i,e)}});function Rr(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 zr=z(`$ZodCatch`,(e,t)=>{Nn.init(e,t),e._zod.optin=`optional`,He(e._zod,`optout`,()=>t.innerType._zod.optout),He(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=>mt(e,n,Pe()))},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=>mt(e,n,Pe()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),Br=z(`$ZodPipe`,(e,t)=>{Nn.init(e,t),He(e._zod,`values`,()=>t.in._zod.values),He(e._zod,`optin`,()=>t.in._zod.optin),He(e._zod,`optout`,()=>t.out._zod.optout),He(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=>Vr(e,t.in,n)):Vr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Vr(e,t.out,n)):Vr(r,t.out,n)}});function Vr(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 Hr=z(`$ZodReadonly`,(e,t)=>{Nn.init(e,t),He(e._zod,`propValues`,()=>t.innerType._zod.propValues),He(e._zod,`values`,()=>t.innerType._zod.values),He(e._zod,`optin`,()=>t.innerType?._zod?.optin),He(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(Ur):Ur(r)}});function Ur(e){return e.value=Object.freeze(e.value),e}var Wr=z(`$ZodCustom`,(e,t)=>{mn.init(e,t),Nn.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=>Gr(t,n,r,e));Gr(i,n,r,e)}});function Gr(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(gt(e))}}var Kr,qr=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 Jr(){return new qr}(Kr=globalThis).__zod_globalRegistry??(Kr.__zod_globalRegistry=Jr());var Yr=globalThis.__zod_globalRegistry;function Xr(e,t){return new e({type:`string`,...B(t)})}function Zr(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...B(t)})}function Qr(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...B(t)})}function $r(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...B(t)})}function ei(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...B(t)})}function ti(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...B(t)})}function ni(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...B(t)})}function ri(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...B(t)})}function ii(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...B(t)})}function ai(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...B(t)})}function oi(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...B(t)})}function si(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...B(t)})}function ci(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...B(t)})}function li(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...B(t)})}function ui(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...B(t)})}function di(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...B(t)})}function fi(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...B(t)})}function pi(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...B(t)})}function mi(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...B(t)})}function hi(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...B(t)})}function gi(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...B(t)})}function _i(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...B(t)})}function vi(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...B(t)})}function yi(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...B(t)})}function bi(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...B(t)})}function xi(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...B(t)})}function Si(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...B(t)})}function Ci(e,t){return new e({type:`number`,checks:[],...B(t)})}function wi(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...B(t)})}function Ti(e,t){return new e({type:`boolean`,...B(t)})}function Ei(e){return new e({type:`unknown`})}function Di(e,t){return new e({type:`never`,...B(t)})}function Oi(e,t){return new gn({check:`less_than`,...B(t),value:e,inclusive:!1})}function ki(e,t){return new gn({check:`less_than`,...B(t),value:e,inclusive:!0})}function Ai(e,t){return new _n({check:`greater_than`,...B(t),value:e,inclusive:!1})}function ji(e,t){return new _n({check:`greater_than`,...B(t),value:e,inclusive:!0})}function Mi(e,t){return new vn({check:`multiple_of`,...B(t),value:e})}function Ni(e,t){return new bn({check:`max_length`,...B(t),maximum:e})}function Pi(e,t){return new xn({check:`min_length`,...B(t),minimum:e})}function Fi(e,t){return new Sn({check:`length_equals`,...B(t),length:e})}function Ii(e,t){return new wn({check:`string_format`,format:`regex`,...B(t),pattern:e})}function Li(e){return new Tn({check:`string_format`,format:`lowercase`,...B(e)})}function Ri(e){return new En({check:`string_format`,format:`uppercase`,...B(e)})}function zi(e,t){return new Dn({check:`string_format`,format:`includes`,...B(t),includes:e})}function Bi(e,t){return new On({check:`string_format`,format:`starts_with`,...B(t),prefix:e})}function Vi(e,t){return new kn({check:`string_format`,format:`ends_with`,...B(t),suffix:e})}function Hi(e){return new An({check:`overwrite`,tx:e})}function Ui(e){return Hi(t=>t.normalize(e))}function Wi(){return Hi(e=>e.trim())}function Gi(){return Hi(e=>e.toLowerCase())}function Ki(){return Hi(e=>e.toUpperCase())}function qi(){return Hi(e=>Ke(e))}function Ji(e,t,n){return new e({type:`array`,element:t,...B(n)})}function Yi(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...B(n)})}function Xi(e,t){let n=Zi(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(gt(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(gt(r))}},e(t.value,t)),t);return n}function Zi(e,t){let n=new mn({check:`custom`,...B(t)});return n._zod.check=e,n}function Qi(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??Yr,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 $i(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,$i(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`&&na(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 ea(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>
|
|
74
|
-
|
|
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 ta(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:ia(t,`input`,e.processors),output:ia(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function na(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 na(r.element,n);if(r.type===`set`)return na(r.valueType,n);if(r.type===`lazy`)return na(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 na(r.innerType,n);if(r.type===`intersection`)return na(r.left,n)||na(r.right,n);if(r.type===`record`||r.type===`map`)return na(r.keyType,n)||na(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:na(r.in,n)||na(r.out,n);if(r.type===`object`){for(let e in r.shape)if(na(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(na(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(na(e,n))return!0;return!!(r.rest&&na(r.rest,n))}return!1}var ra=(e,t={})=>n=>{let r=Qi({...n,processors:t});return $i(e,r),ea(r,e),ta(r,e)},ia=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Qi({...i??{},target:a,io:t,processors:n});return $i(e,o),ea(o,e),ta(o,e)},aa={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},oa=(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=aa[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}))])}},sa=(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)},ca=(e,t,n,r)=>{n.type=`boolean`},la=(e,t,n,r)=>{n.not={}},ua=(e,t,n,r)=>{let i=e._zod.def,a=Fe(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},da=(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}},fa=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},pa=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},ma=(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=$i(a.element,t,{...r,path:[...r.path,`items`]})},ha=(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]=$i(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=$i(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ga=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>$i(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},_a=(e,t,n,r)=>{let i=e._zod.def,a=$i(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=$i(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]]},va=(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=$i(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=$i(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=$i(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)}},ya=(e,t,n,r)=>{let i=e._zod.def,a=$i(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`}]},ba=(e,t,n,r)=>{let i=e._zod.def;$i(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},xa=(e,t,n,r)=>{let i=e._zod.def;$i(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Sa=(e,t,n,r)=>{let i=e._zod.def;$i(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)))},Ca=(e,t,n,r)=>{let i=e._zod.def;$i(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},wa=(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;$i(o,t,r);let s=t.seen.get(e);s.ref=o},Ta=(e,t,n,r)=>{let i=e._zod.def;$i(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Ea=(e,t,n,r)=>{let i=e._zod.def;$i(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Da=z(`ZodISODateTime`,(e,t)=>{qn.init(e,t),$a.init(e,t)});function Oa(e){return yi(Da,e)}var ka=z(`ZodISODate`,(e,t)=>{Jn.init(e,t),$a.init(e,t)});function Aa(e){return bi(ka,e)}var ja=z(`ZodISOTime`,(e,t)=>{Yn.init(e,t),$a.init(e,t)});function Ma(e){return xi(ja,e)}var Na=z(`ZodISODuration`,(e,t)=>{Xn.init(e,t),$a.init(e,t)});function Pa(e){return Si(Na,e)}var Fa=z(`ZodError`,(e,t)=>{vt.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>xt(e,t)},flatten:{value:t=>bt(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Ie,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Ie,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),Ia=St(Fa),La=Ct(Fa),Ra=wt(Fa),za=Et(Fa),Ba=Ot(Fa),Va=kt(Fa),Ha=At(Fa),Ua=jt(Fa),Wa=Mt(Fa),Ga=Nt(Fa),Ka=Pt(Fa),qa=Ft(Fa),Ja=new WeakMap;function Ya(e,t,n){let r=Object.getPrototypeOf(e),i=Ja.get(r);if(i||(i=new Set,Ja.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 Xa=z(`ZodType`,(e,t)=>(Nn.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:ia(e,`input`),output:ia(e,`output`)}}),e.toJSONSchema=ra(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Ia(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Ra(e,t,n),e.parseAsync=async(t,n)=>La(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>za(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Ba(e,t,n),e.decode=(t,n)=>Va(e,t,n),e.encodeAsync=async(t,n)=>Ha(e,t,n),e.decodeAsync=async(t,n)=>Ua(e,t,n),e.safeEncode=(t,n)=>Wa(e,t,n),e.safeDecode=(t,n)=>Ga(e,t,n),e.safeEncodeAsync=async(t,n)=>Ka(e,t,n),e.safeDecodeAsync=async(t,n)=>qa(e,t,n),Ya(e,`ZodType`,{check(...e){let t=this.def;return this.clone(We(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 et(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(ps(e,t))},superRefine(e,t){return this.check(ms(e,t))},overwrite(e){return this.check(Hi(e))},optional(){return Yo(this)},exactOptional(){return Zo(this)},nullable(){return $o(this)},nullish(){return Yo($o(this))},nonoptional(e){return as(this,e)},array(){return jo(this)},or(e){return Fo([this,e])},and(e){return zo(this,e)},transform(e){return ls(this,qo(e))},default(e){return ts(this,e)},prefault(e){return rs(this,e)},catch(e){return ss(this,e)},pipe(e){return ls(this,e)},readonly(){return ds(this)},describe(e){let t=this.clone();return Yr.add(t,{description:e}),t},meta(...e){if(e.length===0)return Yr.get(this);let t=this.clone();return Yr.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 Yr.get(e)?.description},configurable:!0}),e)),Za=z(`_ZodString`,(e,t)=>{Pn.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oa(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Ya(e,`_ZodString`,{regex(...e){return this.check(Ii(...e))},includes(...e){return this.check(zi(...e))},startsWith(...e){return this.check(Bi(...e))},endsWith(...e){return this.check(Vi(...e))},min(...e){return this.check(Pi(...e))},max(...e){return this.check(Ni(...e))},length(...e){return this.check(Fi(...e))},nonempty(...e){return this.check(Pi(1,...e))},lowercase(e){return this.check(Li(e))},uppercase(e){return this.check(Ri(e))},trim(){return this.check(Wi())},normalize(...e){return this.check(Ui(...e))},toLowerCase(){return this.check(Gi())},toUpperCase(){return this.check(Ki())},slugify(){return this.check(qi())}})}),Qa=z(`ZodString`,(e,t)=>{Pn.init(e,t),Za.init(e,t),e.email=t=>e.check(Zr(eo,t)),e.url=t=>e.check(ri(ro,t)),e.jwt=t=>e.check(vi(yo,t)),e.emoji=t=>e.check(ii(io,t)),e.guid=t=>e.check(Qr(to,t)),e.uuid=t=>e.check($r(no,t)),e.uuidv4=t=>e.check(ei(no,t)),e.uuidv6=t=>e.check(ti(no,t)),e.uuidv7=t=>e.check(ni(no,t)),e.nanoid=t=>e.check(ai(ao,t)),e.guid=t=>e.check(Qr(to,t)),e.cuid=t=>e.check(oi(oo,t)),e.cuid2=t=>e.check(si(so,t)),e.ulid=t=>e.check(ci(co,t)),e.base64=t=>e.check(hi(go,t)),e.base64url=t=>e.check(gi(_o,t)),e.xid=t=>e.check(li(lo,t)),e.ksuid=t=>e.check(ui(uo,t)),e.ipv4=t=>e.check(di(fo,t)),e.ipv6=t=>e.check(fi(po,t)),e.cidrv4=t=>e.check(pi(mo,t)),e.cidrv6=t=>e.check(mi(ho,t)),e.e164=t=>e.check(_i(vo,t)),e.datetime=t=>e.check(Oa(t)),e.date=t=>e.check(Aa(t)),e.time=t=>e.check(Ma(t)),e.duration=t=>e.check(Pa(t))});function V(e){return Xr(Qa,e)}var $a=z(`ZodStringFormat`,(e,t)=>{Fn.init(e,t),Za.init(e,t)}),eo=z(`ZodEmail`,(e,t)=>{Rn.init(e,t),$a.init(e,t)}),to=z(`ZodGUID`,(e,t)=>{In.init(e,t),$a.init(e,t)}),no=z(`ZodUUID`,(e,t)=>{Ln.init(e,t),$a.init(e,t)}),ro=z(`ZodURL`,(e,t)=>{zn.init(e,t),$a.init(e,t)}),io=z(`ZodEmoji`,(e,t)=>{Bn.init(e,t),$a.init(e,t)}),ao=z(`ZodNanoID`,(e,t)=>{Vn.init(e,t),$a.init(e,t)}),oo=z(`ZodCUID`,(e,t)=>{Hn.init(e,t),$a.init(e,t)}),so=z(`ZodCUID2`,(e,t)=>{Un.init(e,t),$a.init(e,t)}),co=z(`ZodULID`,(e,t)=>{Wn.init(e,t),$a.init(e,t)}),lo=z(`ZodXID`,(e,t)=>{Gn.init(e,t),$a.init(e,t)}),uo=z(`ZodKSUID`,(e,t)=>{Kn.init(e,t),$a.init(e,t)}),fo=z(`ZodIPv4`,(e,t)=>{Zn.init(e,t),$a.init(e,t)}),po=z(`ZodIPv6`,(e,t)=>{Qn.init(e,t),$a.init(e,t)}),mo=z(`ZodCIDRv4`,(e,t)=>{$n.init(e,t),$a.init(e,t)}),ho=z(`ZodCIDRv6`,(e,t)=>{er.init(e,t),$a.init(e,t)}),go=z(`ZodBase64`,(e,t)=>{nr.init(e,t),$a.init(e,t)}),_o=z(`ZodBase64URL`,(e,t)=>{ir.init(e,t),$a.init(e,t)}),vo=z(`ZodE164`,(e,t)=>{ar.init(e,t),$a.init(e,t)}),yo=z(`ZodJWT`,(e,t)=>{sr.init(e,t),$a.init(e,t)}),bo=z(`ZodNumber`,(e,t)=>{cr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sa(e,t,n,r),Ya(e,`ZodNumber`,{gt(e,t){return this.check(Ai(e,t))},gte(e,t){return this.check(ji(e,t))},min(e,t){return this.check(ji(e,t))},lt(e,t){return this.check(Oi(e,t))},lte(e,t){return this.check(ki(e,t))},max(e,t){return this.check(ki(e,t))},int(e){return this.check(Co(e))},safe(e){return this.check(Co(e))},positive(e){return this.check(Ai(0,e))},nonnegative(e){return this.check(ji(0,e))},negative(e){return this.check(Oi(0,e))},nonpositive(e){return this.check(ki(0,e))},multipleOf(e,t){return this.check(Mi(e,t))},step(e,t){return this.check(Mi(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 xo(e){return Ci(bo,e)}var So=z(`ZodNumberFormat`,(e,t)=>{lr.init(e,t),bo.init(e,t)});function Co(e){return wi(So,e)}var wo=z(`ZodBoolean`,(e,t)=>{ur.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ca(e,t,n,r)});function To(e){return Ti(wo,e)}var Eo=z(`ZodUnknown`,(e,t)=>{dr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Do(){return Ei(Eo)}var Oo=z(`ZodNever`,(e,t)=>{fr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>la(e,t,n,r)});function ko(e){return Di(Oo,e)}var Ao=z(`ZodArray`,(e,t)=>{mr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ma(e,t,n,r),e.element=t.element,Ya(e,`ZodArray`,{min(e,t){return this.check(Pi(e,t))},nonempty(e){return this.check(Pi(1,e))},max(e,t){return this.check(Ni(e,t))},length(e,t){return this.check(Fi(e,t))},unwrap(){return this.element}})});function jo(e,t){return Ji(Ao,e,t)}var Mo=z(`ZodObject`,(e,t)=>{yr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ha(e,t,n,r),He(e,`shape`,()=>t.shape),Ya(e,`ZodObject`,{keyof(){return Uo(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Do()})},loose(){return this.clone({...this._zod.def,catchall:Do()})},strict(){return this.clone({...this._zod.def,catchall:ko()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return at(this,e)},safeExtend(e){return ot(this,e)},merge(e){return st(this,e)},pick(e){return rt(this,e)},omit(e){return it(this,e)},partial(...e){return ct(Jo,this,e[0])},required(...e){return lt(is,this,e[0])}})});function No(e,t){return new Mo({type:`object`,shape:e??{},...B(t)})}var Po=z(`ZodUnion`,(e,t)=>{xr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ga(e,t,n,r),e.options=t.options});function Fo(e,t){return new Po({type:`union`,options:e,...B(t)})}var Io=z(`ZodDiscriminatedUnion`,(e,t)=>{Po.init(e,t),Sr.init(e,t)});function Lo(e,t,n){return new Io({type:`union`,options:t,discriminator:e,...B(n)})}var Ro=z(`ZodIntersection`,(e,t)=>{Cr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_a(e,t,n,r)});function zo(e,t){return new Ro({type:`intersection`,left:e,right:t})}var Bo=z(`ZodRecord`,(e,t)=>{Er.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>va(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Vo(e,t,n){return!t||!t._zod?new Bo({type:`record`,keyType:V(),valueType:e,...B(t)}):new Bo({type:`record`,keyType:e,valueType:t,...B(n)})}var Ho=z(`ZodEnum`,(e,t)=>{Dr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ua(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 Ho({...t,checks:[],...B(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 Ho({...t,checks:[],...B(r),entries:i})}});function Uo(e,t){return new Ho({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...B(t)})}var Wo=z(`ZodLiteral`,(e,t)=>{Or.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>da(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 Go(e,t){return new Wo({type:`literal`,values:Array.isArray(e)?e:[e],...B(t)})}var Ko=z(`ZodTransform`,(e,t)=>{kr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pa(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Me(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(gt(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(gt(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 qo(e){return new Ko({type:`transform`,transform:e})}var Jo=z(`ZodOptional`,(e,t)=>{jr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ea(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Yo(e){return new Jo({type:`optional`,innerType:e})}var Xo=z(`ZodExactOptional`,(e,t)=>{Mr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ea(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Zo(e){return new Xo({type:`optional`,innerType:e})}var Qo=z(`ZodNullable`,(e,t)=>{Nr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ya(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function $o(e){return new Qo({type:`nullable`,innerType:e})}var es=z(`ZodDefault`,(e,t)=>{Pr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ts(e,t){return new es({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ze(t)}})}var ns=z(`ZodPrefault`,(e,t)=>{Ir.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Sa(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function rs(e,t){return new ns({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Ze(t)}})}var is=z(`ZodNonOptional`,(e,t)=>{Lr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ba(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function as(e,t){return new is({type:`nonoptional`,innerType:e,...B(t)})}var os=z(`ZodCatch`,(e,t)=>{zr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ca(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ss(e,t){return new os({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var cs=z(`ZodPipe`,(e,t)=>{Br.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wa(e,t,n,r),e.in=t.in,e.out=t.out});function ls(e,t){return new cs({type:`pipe`,in:e,out:t})}var us=z(`ZodReadonly`,(e,t)=>{Hr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ta(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ds(e){return new us({type:`readonly`,innerType:e})}var fs=z(`ZodCustom`,(e,t)=>{Wr.init(e,t),Xa.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fa(e,t,n,r)});function ps(e,t={}){return Yi(fs,e,t)}function ms(e,t){return Xi(e,t)}var hs={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 gs(e){return(e.credentialVariants??[]).filter(e=>!e.operatorOnly)}function _s(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 vs(e,t){return e.filter(e=>e.definition.id===t||e.definition.clientGroup===t&&e.definition.id!==t)}function ys(e){return _s(e).filter(e=>e.definition.enabled&&e.definition.credentialClass!==`none`&&T(e.definition.id)&&!D(e.definition.id))}function bs(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 xs(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}:bs(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 Ss=Lo(`type`,[No({type:Go(`oauth-device`),deviceAuthorizationUrl:V().url(),tokenUrl:V().url(),clientId:V().min(1),scopes:jo(V().min(1)).min(1),signInLabel:V().min(1).optional(),referrer:V().min(1).optional()}),No({type:Go(`openai-device`),deviceAuthorizationUrl:V().url(),pollUrl:V().url(),tokenUrl:V().url(),verificationUri:V().url(),redirectUri:V().url(),clientId:V().min(1),signInLabel:V().min(1).optional()})]),Cs=No({id:V().min(1),displayName:V().min(1),upstreamId:V().min(1).optional(),servedBy:jo(V().min(1)).optional(),subscriptionServedBy:jo(V().min(1)).optional(),contextWindow:xo().int().positive().optional(),maxOutputTokens:xo().int().positive().optional(),supportsTools:To().optional(),supportsThinking:To().optional(),effortLevels:jo(Uo(fe)).optional(),helperModel:V().min(1).optional(),supportsVision:To().optional(),inputPricePerM:xo().nonnegative().optional(),outputPricePerM:xo().nonnegative().optional(),notes:V().optional(),free:To().optional(),aaIntelligence:xo().optional(),aaCoding:xo().optional(),aaOutputTps:xo().optional(),aaTtft:xo().optional(),aa:No({fetchedAt:V(),creator:V().optional(),releaseDate:V().optional(),benchmarks:Vo(V(),xo()).optional()}).loose().optional()}).loose(),ws=No({id:V().regex(/^[a-z0-9][a-z0-9-]{1,40}$/,`provider id must be lowercase kebab-case`),displayName:V().min(1),kind:Uo([`anthropic-passthrough`,`openai-compatible`,`gemini`]),route:Uo([`gateway`,`direct`]),credentialClass:Uo([`api_key`,`subscription`,`none`]),baseUrl:V().url(),messagesPath:V().startsWith(`/`).optional(),modelsPath:V().startsWith(`/`).optional(),auth:No({header:Uo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]),extraHeaders:Vo(V(),V()).optional()}),models:jo(Cs),defaultModel:V().min(1),modelAliases:Vo(V(),V()).optional(),helperModel:V().min(1).optional(),capabilities:No({streaming:To(),tools:To(),thinking:To(),vision:To(),countTokens:To(),promptCaching:To(),promptCacheTtlSec:xo().int().positive().optional()}),translate:No({maxTokensParam:Uo([`max_tokens`,`max_completion_tokens`]).optional(),reasoningEffortFromBudget:To().optional(),reasoningContentField:V().nullable().optional(),supportsParallelToolCalls:To().optional(),systemRole:Uo([`system`,`developer`]).optional(),streamIncludeUsage:To().optional(),wire:Uo([`chat`,`responses`]).optional()}).optional(),passthrough:No({stripCacheControl:To().optional(),cacheChain:To().optional(),toolSchemaRequiredArray:To().optional(),toolDescriptionRequired:To().optional(),allowedBetas:jo(V()).optional(),anthropicVersion:V().optional()}).optional(),userBaseUrl:To().optional(),engineEnv:Vo(V(),V()).optional(),directCapable:To().optional(),subscriptionLogin:Ss.optional(),phase:Fo([Go(1),Go(2)]),enabled:To(),docsUrl:V().url().optional(),notes:V().optional(),references:jo(No({label:V().min(1),url:V().url(),kind:Uo([`docs`,`pricing`,`models`,`console`,`status`,`keys`,`signup`,`other`]).optional()})).optional(),keyFormat:V().optional(),credentialVariants:jo(No({id:V().min(1),label:V().min(1),header:Uo([`x-api-key`,`authorization-bearer`,`api-key`,`none`]).optional(),extraHeaders:Vo(V(),V()).optional(),operatorOnly:To().optional(),requiresClaudeCodeIdentity:To().optional(),subscriptionLogin:Ss.optional(),claudeCodeShape:No({betas:V().min(1),userAgent:V().min(1),billingHeader:V().min(1),headers:Vo(V(),V()).optional()}).optional(),baseUrl:V().url().optional(),keyFormat:V().optional(),notes:V().optional()})).optional(),adminGroup:V().optional(),clientGroup:V().optional(),recordLabel:V().optional(),effortLevels:jo(Uo(fe)).optional()});No({version:xo().int().positive(),updatedAt:V(),providers:jo(ws)});function Ts(e,t){return Es(e,Fs(e,t))}function Es(e,t){return e.models.find(e=>e.id===t)?.upstreamId??t}function Ds(e){return/^claude-/i.test(e)}function Os(e){return/^claude-.+-\d{8}$/i.test(e)?e.replace(/-\d{8}$/,``):null}function ks(e){return e.replace(/\[1m\]$/i,``)}var As=new Set([`opus`,`sonnet`,`haiku`,`fable`]);function js(e){return As.has(e.toLowerCase())}function Ms(e,t){let n=ks(t);if(js(n)||e.models.some(e=>e.id===n))return null;let r=e.modelAliases;if(!r)return null;let i=Os(n);if(i!==null&&e.models.some(e=>e.id===i))return null;let a=r[n]??(i===null?void 0:r[i]);return a!==void 0&&e.models.some(e=>e.id===a)?a:null}function Ns(e,t){return{images:e.models.find(e=>e.id===t)?.supportsVision??e.capabilities.vision,documents:Ds(t)}}function Ps(e,t,n){let r=Ns(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}function Fs(e,t){if(!t)return e.defaultModel;if(e.models.some(e=>e.id===t))return t;let n=e.modelAliases?.[t];if(n)return n;let r=Ms(e,t);if(r)return r;let i=t.toLowerCase(),a=i.includes(`haiku`)?`haiku`:i.includes(`opus`)?`opus`:i.includes(`sonnet`)?`sonnet`:i.includes(`fable`)?`fable`:null;if(a){if(e.modelAliases?.[a])return e.modelAliases[a];let t=e.models.find(e=>e.id.toLowerCase().includes(a));if(t)return t.id}return e.defaultModel}var Is={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`,agentTools:`/api/agent-tools`,agentToolCalls:`/api/me/agent-tools/calls`,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`},Ls=2048,Rs=16384,zs=8e3,Bs=5242880,Vs=12582912;new Set(`BCDFGHJKLMNPQRSTVWXZ`.split(``));var Hs=`discard-my-vault-and-history`,Us=`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.`,Ws={name:120,instructions:2e4,goal:2e3,repositories:50,repositoryUrl:500,memory:2e4,minIntervalFloor:1,minIntervalCeiling:10080},Gs=`⏰ Scheduled task "`;function Ks(e){if(!e.startsWith(Gs))return null;let t=e.indexOf(`"
|
|
76
|
-
|
|
77
|
-
`,18);return t<0?null:{title:e.slice(18,t),prompt:e.slice(t+3)}}Object.freeze({tengu_amber_sentinel:!0,tengu_groovy_eclipse:!0,tengu_humble_hammock:!0});var qs=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],Js=/^([01]\d|2[0-3]):[0-5]\d$/;No({tz:V().min(1),windows:jo(No({from:V().regex(Js,`HH:MM`),to:V().regex(Js,`HH:MM`),days:jo(Uo(qs)).optional(),kind:Uo([`peak`,`offpeak`])})),offpeakDiscount:xo().nonnegative().max(1).optional()});var Ys=[`priceInputCacheMissPeak`,`priceInputCacheMissOffpeak`,`priceInputCacheHitPeak`,`priceInputCacheHitOffpeak`,`priceCacheWritePeak`,`priceCacheWriteOffpeak`,`priceOutputPeak`,`priceOutputOffpeak`],Xs=No({inputCacheMiss:xo().nonnegative(),inputCacheHit:xo().nonnegative().optional(),cacheWrite:xo().nonnegative().optional(),output:xo().nonnegative()});No({by:Go(`prompt_tokens`),tiers:jo(No({upToPromptTokens:xo().int().positive().optional(),price:Xs,cost:Xs.optional()})).min(1),note:V().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})}),[...Ys];var Zs={realtime:`/v1/realtime`,translations:`/v1/realtime/translations`,live:`/v1/live/sessions`,speechStream:`/v1/audio/speech/stream`,transcriptionStream:`/v1/audio/transcriptions/stream`,clientSecrets:`/v1/realtime/client_secrets`,translationClientSecrets:`/v1/realtime/translations/client_secrets`};Zs.realtime,Zs.translations,Zs.live,Zs.speechStream,Zs.transcriptionStream;var Qs={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 $s(e){return Qs[e]??null}function ec(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 tc=[`stable`,`dev`];function nc(e){return typeof e==`string`&&tc.includes(e)}function rc(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return nc(t)?t:null}var ic=[`win32`,`linux`,`darwin`],ac=[`x64`,`arm64`];function oc(e,t){let n=rc(e)??`stable`,r=[];return n!==`stable`&&r.push(`channel=${encodeURIComponent(n)}`),t&&ic.includes(t.platform)&&(r.push(`platform=${t.platform}`),t.arch&&ac.includes(t.arch)&&r.push(`arch=${t.arch}`)),r.length>0?`${Is.releasesLatest}?${r.join(`&`)}`:Is.releasesLatest}function sc(e,t){let n=rc(t)??`stable`;return n===`stable`?e:`${e} (${n})`}var cc=5e4,lc=[`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`],uc={agentFinished:!1,permissionRequired:!0,errorOccurred:!0},dc={autoAcceptPermissions:!1,showReasoningSummaries:!0,notifications:uc,showAgentPicker:!0,transcriptWindowSize:500,openTabs:[],draftTabs:[],draftTitles:{},activeTab:null,remoteTabs:{},sessionPanelOpen:!1,explorerOpen:!1,sidebarWidth:288,sidebarPinned:!0,dismissedUpdateVersion:null,lastSeenReleaseNotes:null,claudeImportOffered:!1,claudeImportOffers:0,collapsedProjects:[],themeColors:{light:{},dark:{}},pinned:[],sidebarView:`recent`};function fc(e){return Math.min(Math.max(typeof e==`number`&&Number.isFinite(e)?Math.floor(e):0,0),3)}function pc(e){return Math.min(640,Math.max(200,typeof e==`number`&&Number.isFinite(e)?Math.round(e):288))}function mc(e){return Math.min(cc,Math.max(100,typeof e==`number`&&Number.isFinite(e)?Math.round(e):500))}function hc(e,t){return typeof e==`boolean`?e:t}function gc(e){return typeof e==`string`&&e.length>0&&e.length<=64?e:null}function _c(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 vc(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 yc(e){if(typeof e!=`string`)return null;let t=e.trim();return/^#[0-9a-fA-F]{6}$/.test(t)?t.toLowerCase():null}function bc(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if(!lc.includes(n))continue;let e=yc(r);e!==null&&(t[n]=e)}return t}function xc(e){let t=typeof e==`object`&&e?e:{};return{light:bc(t.light),dark:bc(t.dark)}}function Sc(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n.kind,r=n.id;if((e===`chat`||e===`project`)&&!(typeof r!=`string`||r.length===0||r.length>200)&&!t.some(t=>t.kind===e&&t.id===r)&&(t.push({kind:e,id:r}),t.length>=50))break}return t}function Cc(e,t,n){return e.some(e=>e.kind===t&&e.id===n)}function wc(e,t,n,r){return r===Cc(e,t,n)?e:r?[...e.length>=50?e.slice(e.length-50+1):e,{kind:t,id:n}]:e.filter(e=>e.kind!==t||e.id!==n)}function Tc(e){let t=typeof e==`object`&&e?e:{},n=typeof t.notifications==`object`&&t.notifications!==null?t.notifications:{},r=_c(t.openTabs),i=_c(t.draftTabs).filter(e=>!r.includes(e)),a={};for(let[e,n]of Object.entries(vc(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:hc(t.autoAcceptPermissions,dc.autoAcceptPermissions),showReasoningSummaries:hc(t.showReasoningSummaries,dc.showReasoningSummaries),notifications:{agentFinished:hc(n.agentFinished,uc.agentFinished),permissionRequired:hc(n.permissionRequired,uc.permissionRequired),errorOccurred:hc(n.errorOccurred,uc.errorOccurred)},showAgentPicker:hc(t.showAgentPicker,dc.showAgentPicker),transcriptWindowSize:mc(t.transcriptWindowSize),openTabs:r,draftTabs:i,draftTitles:a,activeTab:c,remoteTabs:vc(t.remoteTabs),sessionPanelOpen:hc(t.sessionPanelOpen,dc.sessionPanelOpen),explorerOpen:hc(t.explorerOpen,dc.explorerOpen),sidebarWidth:pc(t.sidebarWidth),sidebarPinned:hc(t.sidebarPinned,dc.sidebarPinned),dismissedUpdateVersion:gc(t.dismissedUpdateVersion),lastSeenReleaseNotes:gc(t.lastSeenReleaseNotes),claudeImportOffered:hc(t.claudeImportOffered,dc.claudeImportOffered),claudeImportOffers:fc(t.claudeImportOffers),collapsedProjects:_c(t.collapsedProjects),themeColors:xc(t.themeColors),pinned:Sc(t.pinned),sidebarView:t.sidebarView===`projects`?`projects`:`recent`}}new Set(Object.keys(dc));var Ec=3650,Dc=[{version:`0.3.180`,date:`2026-09-30`,platforms:[`win32`],added:[],fixed:[`Claude’s thoughts show their words again. Every “Thought” from Claude Opus, Sonnet and Fable came back empty — Anthropic leaves the text out unless it is asked for a summary, and now OonaCode asks. Other models were never affected. Only new replies change; older thoughts stay empty.`]},{version:`0.3.179`,date:`2026-09-29`,platforms:[`win32`],added:[],fixed:[`The / menu is easier to read: skills and commands in two titled sections, each with one short line — the full description shows when you point at it.`,`Commands that only duplicated OonaCode’s own controls or showed misleading numbers are gone from the / menu — /model (use the model picker), /usage (the engine’s own estimate, not your credits), /autocompact, /output-style, /mcp, /list-agents and /reload-skills. Typed, they say why.`,`Skills you import or remove in Settings → Skills reach your chats by themselves, at each chat’s next message.`]},{version:`0.3.178`,date:`2026-09-29`,platforms:[`win32`],added:[`The chat list is laid out like the Claude desktop app: New, Projects, Scheduled, then your pinned chats and projects, then Today and Older. The old grouping by project is one click away — the small icon beside “Today”.`,`Projects opens a page of project cards — each with its goal, its chats and when it was last used — with search, sort and New project. Click a card to see that project’s chats, instructions and settings, and to start a new chat in it.`,`Scheduled shows every scheduled task from every chat on this PC in one place, with its next run, its chat, and pause, resume and delete. A dot on it tells you when something is due soon.`,`Pin any chat or project to the top of the list from its menu.`],fixed:[`A chat row’s ⋯ button shows only when you point at the row.`]},{version:`0.3.177`,date:`2026-09-29`,platforms:[`win32`],added:[`Claude Sonnet 5.5 is in the model picker — on the OonaCode pool and on your own Claude subscription — with a 1M-token context. It costs the same as Sonnet 5 per token and usually needs fewer tokens for the same work.`],fixed:[`Claude Sonnet 5 is retired: a chat that was on it moves to Sonnet 5.5 at its next message, and the picker shows Sonnet 5.5.`]},{version:`0.3.176`,date:`2026-09-29`,platforms:[`win32`],added:[`Each chat has a Skills list beside Tools. Every skill starts off, so the model sees none of them and they cost nothing — about 1,400 tokens on every message until now. Switch one on to let the model use it by itself in that chat; the list shows what each one costs per message while on.`,`Typing /name still runs any skill for one turn, whether its switch is on or off.`],fixed:[`The engine’s built-in keyboard-shortcuts helper is turned off: it would have edited your own Claude Code settings.`]},{version:`0.3.175`,date:`2026-09-29`,platforms:[`win32`],added:[`Type / at the start of a message to see the chat’s commands and skills — the Claude Code engine’s own (/compact, /context, /review, /security-review, /init and more) and the skills in your project’s .claude folder — with what each does. Type to narrow the list, then Enter or Tab. They work with every model, not only Claude.`,`Your own skills: Settings → Skills lists the skills OonaCode gives every chat, and “Import from Claude Code…” copies the ones you choose from your Claude Code install — it only reads it, never changes it.`,`In the terminal app (oona), a command the chat’s engine knows — /context, /compact or a skill — now runs instead of answering “unknown command”.`],fixed:[`Typing /model in a chat updates the chat’s model and the model picker again.`,`Command output such as /context reads the same while it arrives and after you reopen the chat.`]},{version:`0.3.174`,date:`2026-09-28`,platforms:[`win32`],added:[`Search in the Import window. Type to find a chat by its name, its first or last message, or its folder — chats folded away as already imported or deleted here show up too when they match. Or open the search options and pick “Whole conversations” to search inside the chats themselves, with a few lines of each match under the chat. It only reads Claude Code, Cursor and the Claude app’s files, never changes them.`],fixed:[`Chats Claude Code switched to another model are answered by that model for real: OonaCode’s pool now serves the model the engine falls back to, and never answers a Claude request with another company’s model.`]},{version:`0.3.173`,date:`2026-09-28`,platforms:[`linux`],added:[`Every chat now has an “about”: a short note, written in the background by a cheap helper model of the chat’s own provider, saying what the chat works on. Your other chats read it — with each chat’s folder and when it was last active — when they look for the right chat to ask. See it, edit it or press Regenerate in the session info panel.`,`View → What chats are about… (and a sidebar button) lists every chat’s about and what writing them cost, with a switch to turn it off and “Generate for all chats now”. The switch and its numbers are also in Settings → This PC.`,`Your phone can now do from anywhere what this PC’s window does: switch each tool on or off per chat, see and control the conversations between your chats, read, edit and regenerate each chat’s “about”, and manage scheduled tasks. It needs this update on the PC and the next OonaCode app on the phone.`,`A chat can switch its own workspace. When the work belongs in another folder — a project you name that lives elsewhere, or a new project folder — the model proposes the switch and you answer Switch or Not now. It always asks you, even with “accept automatically” on, and the chat moves when its current step ends, with the conversation kept.`,`Right-click a chat tab → Delete (in red, under “Close all tabs”) deletes that chat after asking, just like Delete in the sidebar.`,`When Anthropic’s safeguards flag a chat and Claude Code moves it to another model for the rest of the run, the model box says so in red — for example “Opus 4.8 (safeguard)” — and the chat shows a notice at the switch. Picking a model takes the chat back to it at the next message.`],fixed:[`Typing in the message box while a chat is replying is no longer interrupted. With “accept automatically” on, an approval card flashed for an instant on some tool calls and took the cursor away from the box.`,`A permission card that appears while you are typing no longer takes the keyboard, so your next Space or Enter can never press Allow by accident.`,`“Send now” stays disabled and says “Sending now…” until the agent has taken the message — it can take a few seconds while the agent stops its current step, and a second press can no longer send it twice.`,`A message sent from your phone is confirmed by this PC, and the same message is never run twice when the phone sends it again after a lost connection.`,`File and folder names in a reply get their ▶, Open and Show in folder buttons only when they really exist on this PC. A bare file name is also looked for in the folder the reply named just before it.`,`A chat can no longer be moved into your home folder or the root folder through a link. Where /home is itself a link (Fedora Silverblue, Bazzite and similar systems), the home folder passed as an ordinary folder, and the chat would have loaded your own Claude Code settings as its project.`,`Signing in to your own Claude subscription inside the app works on Ubuntu 24.04, Debian, Linux Mint, Pop!_OS and Zorin OS again. There, a part of OonaCode built for newer systems did not load, and the sign-in fell back to a command you had to paste.`,"On Ubuntu, Linux Mint, Pop!_OS, Zorin OS and similar systems, `oona` now works in every new terminal right after you install or update. The installer used to leave it off your PATH until you logged out and back in; now it adds it for new terminals itself, and `oona uninstall` takes that line out again.",`Every way of uninstalling — “oona uninstall”, or the install command with --uninstall — now takes this PC off your account: keep your chats and they stay readable on your other devices; delete them and their copies go too. It never touches your Claude Code or the Claude app, and “oona uninstall” no longer gives up when the background service is stopped.`,`The installer now says at once when a system cannot run OonaCode — one older than Ubuntu 22.04, Debian 12 or RHEL 9, or one built on musl such as Alpine — instead of installing a copy that could not start. The .deb and .rpm tell apt and dnf the same.`]},{version:`0.3.172`,date:`2026-09-28`,platforms:[`win32`],added:[`When Anthropic’s safeguards flag a chat and Claude Code moves it to another model for the rest of the run, the model box says so in red — for example “Opus 4.8 (safeguard)” — and the chat shows a notice at the switch. Picking a model takes the chat back to it at the next message.`],fixed:[`Uninstalling from Settings → Apps now also takes this PC off your account, exactly like “oona uninstall”: keep your chats and they stay readable on your other devices; delete them and their copies go too.`,`“oona uninstall” no longer gives up when the background service is stopped.`,`The “Updating OonaCode…” window shows again on the newest Windows 11 versions (24H2 and later).`]},{version:`0.3.171`,date:`2026-09-28`,platforms:[`win32`],added:[`Oonak Browser now picks its own control port from a range no developer tool uses by default, so it can no longer take a port that Shopify CLI or a dev server wants. If a program needs a particular port kept free, or you want the browser on a specific one, just ask the chat.`],fixed:[`File and folder names in a reply get their ▶, Open and Show in folder buttons only when they really exist on this PC. A bare file name is also looked for in the folder the reply named just before it.`,`Uninstalling OonaCode from Settings → Apps now removes all of it — the app, the command line and its background service — and asks whether to keep your chats. Installing again afterwards no longer says it is already installed. Your Claude Code and Claude app are never touched.`,`“oona uninstall” works again on Windows 11.`,`A chat “about” you wrote yourself no longer shows “stale”.`]},{version:`0.3.170`,date:`2026-09-28`,platforms:[`win32`],added:[`Your phone can now do from anywhere what this PC’s window does: switch each tool on or off per chat, see and control the conversations between your chats, read, edit and regenerate each chat’s “about”, and manage scheduled tasks. It needs this update on the PC and the next OonaCode app on the phone.`],fixed:[`“Send now” stays disabled and says “Sending now…” until the agent has taken the message — it can take a few seconds while the agent stops its current step, and a second press can no longer send it twice.`,`A message sent from your phone is confirmed by this PC, and the same message is never run twice when the phone sends it again after a lost connection.`]},{version:`0.3.169`,date:`2026-09-28`,platforms:[`win32`],added:[`Every chat now has an “about”: a short note, written in the background by a cheap helper model of the chat’s own provider, saying what the chat works on. Your other chats read it — with each chat’s folder and when it was last active — when they look for the right chat to ask. See it, edit it or press Regenerate in the session info panel.`,`View → What chats are about… (and a sidebar button) lists every chat’s about and what writing them cost, with a switch to turn it off and “Generate for all chats now”. The switch and its numbers are also in Settings → This PC.`],fixed:[`A chat can no longer be moved into your user folder or a drive root through a link or junction that points there — its project settings would have been your own Claude Code settings.`]},{version:`0.3.167`,date:`2026-09-27`,platforms:[`win32`],added:[`A chat can switch its own workspace. When the work belongs in another folder — a project you name that lives elsewhere, or a new project folder — the model proposes the switch and you answer Switch or Not now. It always asks you, even with “accept automatically” on, and the chat moves when its current step ends, with the conversation kept.`],fixed:[]},{version:`0.3.166`,date:`2026-09-27`,platforms:[`win32`],added:[],fixed:[`Typing in the message box while a chat is replying is no longer interrupted. With “accept automatically” on, an approval card flashed for an instant on some tool calls and took the cursor away from the box.`,`A permission card that appears while you are typing no longer takes the keyboard, so your next Space or Enter can never press Allow by accident.`]},{version:`0.3.165`,date:`2026-09-27`,platforms:[`win32`],added:[`Right-click a chat tab → Delete (in red, under “Close all tabs”) deletes that chat after asking, just like Delete in the sidebar.`,`Chats now use Oonak Browser, in a window you can see, for everything that needs a web browser — not Chrome, Edge or a hidden script browser — unless you name another browser. It runs without a window (headless) only when you ask for that.`],fixed:[`After an update, the background service comes back by itself. An update could leave it unable to restart, and the app then showed “OonaCode could not start its host service” even though it went on to open normally.`]},{version:`0.3.164`,date:`2026-09-27`,platforms:[`win32`],added:[`Send now: a message you typed while the agent works has a Send now button while it waits. It stops what the agent is doing right now and sends your message immediately — the step that is running is cut. On the desktop and the phone.`,`Conversations → Map: see at a glance which chats are talking to each other. Each conversation is a hub with a line to each of its chats; working chats pulse; click a hub for its history or a chat to open it.`],fixed:[`A restart no longer signs this PC out when OonaCode’s stored key cannot be opened for a moment. OonaCode used to replace the key and lose your sign-in; it now keeps the key and signs you back in by itself as soon as it opens.`]},{version:`0.3.163`,date:`2026-09-27`,platforms:[`linux`],added:[`Send now: a message you typed while the agent works has a Send now button while it waits. It stops what the agent is doing right now and sends your message immediately — the step that is running is cut. On the desktop and the phone.`,`Conversations → Map: see at a glance which chats are talking to each other. Each conversation is a hub with a line to each of its chats; working chats pulse; click a hub for its history or a chat to open it.`],fixed:[`A restart no longer signs this PC out when its security chip is slow to open OonaCode’s stored key. After a system update and reboot, the chip on some machines refuses for a while; OonaCode used to replace the key and lose your sign-in. It now keeps the key and signs you back in by itself as soon as the chip opens it.`]},{version:`0.3.162`,date:`2026-09-27`,added:[],fixed:[`A chat switched to another model knows which model it is. After a switch from Claude to DeepSeek, the model used to keep saying it was Claude — the chat history and Claude Code’s own prompt told it so.`,`Oonak Browser is offered only where it can run. An older OonaCode no longer lists a browser tool it cannot use, so the model does not spend tokens working around it — update to get the browser.`]},{version:`0.3.161`,date:`2026-09-27`,added:[`Settings → This PC → “Replace pictures older than N days”: screenshots and pasted pictures in your chat history are replaced by a short note once they are older than a year (you choose the number, or 0 to keep them). The words of every chat stay; the database stops growing with pictures. It runs by itself.`],fixed:[`The model, Build/Plan/Ask and effort pickers under the message box now look like the dropdowns they are.`,`Switches that are off are easy to see in dark mode.`,`Error messages show what went wrong in words, without raw tags or a provider’s JSON.`,`The ✕ that removes an attachment or a reply is round.`,`Pressing Stop, or an update cutting a turn, no longer files an automatic bug report.`]},{version:`0.3.160`,date:`2026-09-27`,added:[`On Windows, the agent can use a real browser. Ask it to open a site, read a page, click, fill in a form or take a screenshot, and it does it in Oonak Browser, in a window you can see. The first time, OonaCode asks once to install the browser (about 210 MB); after that it opens straight away.`,`Each chat has its own browser profile, so a site you sign in to stays signed in for that chat. Switch the browser off for a chat in its Tools menu.`],fixed:[]},{version:`0.3.159`,date:`2026-09-27`,added:[],fixed:[`A chat reopened after an update no longer says “turn complete” the instant you send a message and then answer anyway. The engine’s own note about work that stopped during the update used to be taken for the end of your turn, with the whole earlier conversation’s tokens on the line.`,`A background task that stopped because OonaCode restarted now says so in plain words, instead of “Orphaned by a previous Claude Code process exit”.`]},{version:`0.3.158`,date:`2026-09-27`,added:[`Every thought in a chat shows how many words it has, so you can tell at a glance whether there is anything to read.`],fixed:[`A thought with nothing in it — some models return only a signature for their thinking — now says “Thought · empty” and no longer opens onto a blank box.`,`A command the agent was allowed to run no longer leaves an “Allowed Bash (automatically)” line under its own card: the card already shows the command and its result. Refusals are still shown.`]},{version:`0.3.157`,date:`2026-09-27`,added:[`On Linux, OonaCode has its own signed apt and dnf repositories. Install the app with apt (Debian, Ubuntu, Mint) or dnf (Fedora, RHEL, Rocky, Alma) — the commands are on the download page — and your package manager keeps it up to date with the rest of the system.`,`Every Linux release is signed with the OonaCode release key, and the one-line installer checks that signature before it installs anything.`],fixed:[`On Linux, the menu bar is drawn in the window in the app’s own colours, and it switches between light and dark with the app instead of keeping the desktop’s theme until a restart.`,`Upgrading the .rpm no longer removes the oonacode command, and removing it no longer leaves empty folders behind.`]},{version:`0.3.156`,date:`2026-09-27`,added:[`Chats can talk to each other. Turn on “Talk to other chats” in a chat’s Tools menu, and its agent can find your other chats that have it on, read them, and ask them for help — one chat or a whole group. A chat that is closed wakes up to answer; a busy one answers when it finishes. The reply comes back to the chat that asked.`,`The Conversations window (in the sidebar) shows every conversation between your chats: who said what to whom, what each answer cost, and buttons to pause, resume, close or stop them all. Each conversation has a budget — 20 messages and 1,000,000 new tokens by default — and pauses itself when it is used up, so chats can never talk forever.`,`Hover over any tool in a chat’s Tools menu to read what it does, how it works, what it costs and how to turn it off.`],fixed:[`A chat woken in the background — by a scheduled task or another chat — shows as working in the sidebar even when it is not open in a tab.`,`A scheduled task no longer slips into a chat at the same moment you send it a message; yours always goes first.`,`A message sent from the terminal no longer waits forever when a chat’s history cannot be resumed and the restart fails. It now says why.`,`Notes OonaCode writes into a chat — a model change, a conversation paused — are still there when you reopen it.`,`When every Claude seat in the OonaCode pool is taken, a new chat now says the model is busy and to try again in a few minutes or pick another model, instead of “Something went wrong on our side”.`,`On Linux, the app tells you it is updating while it swaps itself, so there is no need to start it again.`,`On Linux, removing the .deb or .rpm leaves nothing running and nothing failing at the next login, and the one-line installer checks for free disk space before it changes anything.`]},{version:`0.3.155`,date:`2026-09-27`,added:[`OonaCode runs on Linux. One command installs the command line, the background service and the desktop app: curl -fsSL https://oonacode.oonak.ai/install.sh | bash. The AppImage, .deb and .rpm are on the download page too.`,`On Linux the app lives in the system tray as it does on Windows, follows your desktop’s light or dark theme, and gets its own entry in the applications menu.`,`Uninstalling on Linux removes the desktop app along with the rest, and asks whether to keep your chats for a future install.`],fixed:[`A window no longer stays on “Unauthorized” after the background service restarts with a new key. It reconnects by itself.`]},{version:`0.3.154`,date:`2026-09-26`,added:[],fixed:[`A chat waiting on a long job no longer loses its watcher. OonaCode used to close a chat’s engine ten minutes after the model last spoke, which stopped any Monitor or background command it had left running. The engine now stays up while such work runs, up to 12 hours.`,`A chat moved into a project, or whose project you edit, now follows the project’s instructions from its next message. It used to keep the ones it started with.`]},{version:`0.3.153`,date:`2026-09-25`,added:[],fixed:[`A very long chat no longer answers “Prompt is too long” after OonaCode restarts or updates. The engine was judging the chat’s size by a figure left over from before the restart, and now gets an accurate one.`,`If a message is ever refused as too long before the model has started on it, OonaCode sends it again by itself with a shorter history. You see your message once and then the answer, not an error.`]},{version:`0.3.152`,date:`2026-09-25`,added:[],fixed:[`Uninstalling the app from Windows’ Apps list no longer stops the command-line OonaCode on the same PC from starting after a restart.`]},{version:`0.3.151`,date:`2026-09-25`,added:[`Files the agent names in a chat are clickable. Audio and video play right in the chat with a small player, pictures open as a preview, and in the app every file can be opened in its own program or shown in its folder.`,`Uninstalling the app asks whether to keep your chats on this PC. Keeping them means a new install signs in and continues every chat.`],fixed:[`Installing and updating no longer fail with “The operation has timed out” on PCs whose network drops the newer internet addresses, nor while our server restarts for an update.`]},{version:`0.3.150`,date:`2026-09-25`,added:[],fixed:[`The fix in 0.3.149 for long, sleeping turns now really reaches the agent: the Monitor tool and the block on long waits are on for every chat.`,`A chat compacted after a long pause no longer pays to cache a conversation it is about to replace, and the agent keeps each tool call in its history exactly as it wrote it — both as Claude Code does.`]},{version:`0.3.149`,date:`2026-09-25`,added:[`The agent can watch a long job with the Monitor tool, as Claude Code does, and is woken the moment the job finishes.`],fixed:[`Long chats no longer spend their time asleep. With no way to watch a background job, the agent had been polling it with waits of four to eight minutes. One chat spent more than three and a half hours of a day sleeping, and turns ran for hours while the model worked for a fraction of that. The agent now gets the same working rules as Claude Code, and long waits are blocked.`]},{version:`0.3.148`,date:`2026-09-25`,added:[],fixed:[`A scheduled task that could not be sent — the PC had just restarted, the vault was still locked, the server was not reachable yet — waits and tries again instead of switching itself off. Pausing, editing or deleting a task while its prompt is being sent is no longer undone, and a scheduled prompt no longer lands in a chat whose engine is still starting.`,`A chat on your own DeepSeek key, or one switched with a typed “/model opus”, is no longer shown as withdrawn and locked. “/model fable” picks Claude Fable instead of the default model.`,`Moving a chat to another model no longer lowers its saved effort level to what the old model offered, and a one-off “oona --effort” is no longer saved as the chat’s level.`,`After you pick another model for a locked chat and send, the chat no longer flashes the lock again while the engine starts; if the start fails, your pick is kept.`,`Coming back from a file tab no longer jumps the chat to an old reply or reopens the search bar.`,`The hidden sidebar slides away again when the pointer leaves the window past its edge, and the keyboard no longer tabs through it while it is hidden. Clicking ⓘ in Settings opens its note instead of closing it.`,`Subagents write their prompt cache for five minutes, as Claude Code does for its subscribers; the chat itself keeps the hour. Their cache writes cost less.`]},{version:`0.3.147`,date:`2026-09-25`,added:[`A chat’s scheduled tasks sit beside its subagents: a clock badge says how many are live and when the next one runs, and opens the list — each task’s schedule, its next and last run, Pause and Delete. The tasks run on this PC.`],fixed:[`A prompt the scheduler sends into a chat reads as a “Scheduled task” line, not as your own message waiting in the queue.`,`A chat whose model is no longer offered shows that model in red and waits for you to pick another; its history stays, and the old model is not in the list any more.`,`The effort list follows the server within minutes, without restarting the app. A chat set to a level that has been switched off moves to the nearest one — ultracode becomes xhigh. Chats on your own Claude subscription have an effort picker again.`]},{version:`0.3.146`,date:`2026-09-25`,added:[`A Tools menu beside the model picker: switch OonaCode’s own tools on or off for each chat — browser, desktop and window control, clipboard, screen capture, Office documents and run-as-administrator. Each tool costs the model only a short line until it is used, and the menu shows how much. The first tools are marked Demo while they are tested with every model: a demo tool answers what it would have done, and does nothing on your PC yet.`],fixed:[]},{version:`0.3.145`,date:`2026-09-25`,added:[],fixed:[`Every request of every chat, on every model, is about 3,200 tokens smaller: the engine’s own “auto memory” instructions are gone. OonaCode starts each engine in a fresh private folder and deletes it afterwards, so the notes the model was told to keep there were thrown away when the chat went idle — the model spent tool calls writing memories it would never read. A project’s memory is OonaCode’s own and stays.`,`The engine’s claude.ai Artifact tools are switched off everywhere OonaCode runs it — the app, the terminal, VS Code, the phone, Telegram and the agent API.`]},{version:`0.3.144`,date:`2026-09-25`,added:[],fixed:[`Long chats on Claude models in the OonaCode pool keep their cache for an hour, as Claude Code does for its subscribers. A pause of more than five minutes no longer re-sends the whole conversation at the full cache-write price, which in a large chat was the most expensive part of coming back to it.`,`The session panel’s Context shows how big the conversation is now, not the total of every request the chat ever made — a long chat read “10.7M / 1.0M tokens”.`,`The message box keeps the cursor after you send, so you can go straight on typing the next message.`,`A paid chat’s background work (titles, reading web pages) no longer goes to a free model of the same vendor.`]},{version:`0.3.143`,date:`2026-09-24`,added:[`Search inside your chats: open the search in the chat list, press the sliders button and choose Whole chats. It looks through every message of every chat on this PC, and you choose whose words — yours, the model’s, or both — plus, if you like, the tools’ commands and output and the subagents’ conversations. Results show each message with the words lit; a click opens the chat with its search on them.`,`More search options, for both kinds of search: one project only, a time window (today, 7 or 30 days), match case and whole words.`],fixed:[`While you search the chat list, projects with no matching chat are hidden too.`]},{version:`0.3.142`,date:`2026-09-24`,added:[],fixed:[`A reply you sent shows as the same small chip it had in the message box — “Reply to” and the first few words — instead of the whole quoted text; the full quote appears when you rest the pointer on it, and a click jumps to the message it answers.`,`The model now knows a reply points back into the conversation: it is told the quoted lines are from the chat history, not new input, and whose words they were — its own earlier reply, your earlier message, a file, or a tool’s output.`,`When the chat list is narrow, its buttons wrap onto a second line instead of spilling out of it.`]},{version:`0.3.141`,date:`2026-09-24`,added:[`The chat list on the left can be made wider or narrower: drag its right edge (double-click it for the usual width).`,`The chat list can hide: press the pin in its header, the button at the top left, or View → Sidebar (Ctrl+B). While hidden it slides in when the pointer reaches the left edge of the window, and slides away when you leave it.`,`Search in the chat list is a single magnifier now; click it and the search box opens across the top. Escape or × clears it.`],fixed:[`Opening OonaCode right after a restart no longer leaves the OonaCode pool models out of the model list: if they cannot be read yet, OonaCode asks again by itself a few seconds later and the list fills in.`,`The Artificial Analysis scores (intelligence, coding, speed and benchmarks) show on every model in the model list again — including the models of your own Claude and SuperGrok subscriptions, which never had them.`,`A chat’s details card no longer appears on top of its right-click menu.`]},{version:`0.3.140`,date:`2026-09-24`,added:[`Reply is tidier: the message you reply to shows as a small chip above the message box with its first few words, instead of filling the box. Click the chip — or the quote in a sent reply — to jump to that message; the × removes it.`,`Right-click a project in the sidebar for its settings: Project settings… opens Projects with that project already selected. The gear beside a project’s “+” does the same, and a chat filed in a project offers it in its own menu too.`,`Link GitHub. Under a project’s Repositories (and in Settings → Providers), link your GitHub account once: the agent’s git and gh then clone, pull and push your private repositories on every PC of yours. You type a short code on github.com; the token stays in your encrypted vault and never reaches the OonaCode server. Public repositories need nothing.`],fixed:[]},{version:`0.3.139`,date:`2026-09-24`,added:[`Every setting now says what it does, and resting the pointer on the ⓘ beside it tells you where in OonaCode it applies and what it does not do.`,`Export chats… is in the File menu (and on the sidebar in a browser window) instead of in Settings.`,`With Remote access turned off on a PC, your phone, Telegram, the website and your other PCs still show it — online or not — marked “remote access off”, and opening it tells you to turn Remote access back on in OonaCode on that PC.`],fixed:[`Turning Remote access off now tells your other devices at once. Before, the PC was already unreachable from them, but they could not say why.`,`The settings of This PC save the moment you change them — nothing is lost by closing the dialog.`,`Settings that did nothing, or repeated another one, are gone: the default permission mode (each chat’s Build / Plan / Ask first picker decides), the agent-picker switch, the Git Bash path, the engine path and the extra allowed origins. The server address is shown, not edited — signing in sets it.`]},{version:`0.3.138`,date:`2026-09-24`,added:[`Projects have settings now, like the Claude app’s: a goal, the repositories the project works on, what a new chat in it starts on (model, effort and folder), a project memory the agent keeps up to date, and whether its chats may schedule work — and how often at most. All of it is in Projects, and a Claude app project you import brings its own.`,`OonaCode has a scheduler. Ask the agent to do something later or on a repeat — “check the build every morning at nine” — and it schedules it on this PC; when it is due, the prompt arrives in the chat, even if the chat had gone quiet. The Projects dialog and the chat’s info panel list what is scheduled, where you can pause, resume or delete it.`],fixed:[`Saving a project’s instructions now reaches its chats at their next message, instead of waiting until the chat happened to restart.`]},{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 Oc(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:kc(r.pre,i.pre)}function kc(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 Ac(e,t,n=Dc,r=null){if(!e||e===`0.0.0`)return[];let i=n.filter(t=>Oc(t.version,e)<=0&&(!r||!t.platforms||t.platforms.includes(r)));return[...t===null?i.filter(t=>Oc(t.version,e)===0):i.filter(e=>Oc(e.version,t)>0)].sort((e,t)=>Oc(t.version,e.version))}function jc(e,t,n,r=Dc,i=null){if(!e||e===`0.0.0`)return{record:null,show:[]};let a=null;for(let e of r)(a===null||Oc(e.version,a)>0)&&(a=e.version);let o=a!==null&&Oc(e,a)>0?a:e;return{record:t===null||Oc(o,t)>0?o:null,show:t===null&&!n?[]:Ac(e,t,r,i)}}function Mc(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 Nc=`:free`;function Pc(e){return e.endsWith(Nc)}function Fc(e){return Pc(e)?e.slice(0,-5):e}var Ic=`the user skipped the question`,Lc=`(the user skipped this question)`;function Rc(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 zc(e,t,n={},r=new Set){let i={};return e.forEach((e,a)=>{if(r.has(a)){i[e.question]=Lc;return}let o=(n[a]??``).trim();i[e.question]=o||(t[a]??[]).join(`, `)}),i}var Bc=[`win32`,`linux`,`darwin`],Vc=[`demo`,`live`],Hc=[`allow`,`ask`],Uc=[`string`,`number`,`integer`,`boolean`,`array`,`object`];function Wc(e){let t=e/1048576;return t>=100?`${Math.round(t)} MB`:t>=1?`${t.toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function Gc(e){if(e.toolName!==`InstallToolPack`)return null;let t=e.input;return!t||typeof t!=`object`||typeof t.pack!=`string`||typeof t.name!=`string`||typeof t.version!=`string`||typeof t.sizeBytes!=`number`||typeof t.path!=`string`?null:{pack:t.pack,name:t.name,version:t.version,sizeBytes:t.sizeBytes,path:t.path}}function Kc(e,t){let n=t?.[e.slug];return typeof n==`boolean`?n:e.defaultOn}function qc(e,t){return e.filter(e=>Kc(e,t))}var Jc={slug:48,name:80,entryTool:40,description:2e3,promptLine:1e3,details:8e3,actionDescription:1e3,params:30,paramName:48,paramDescription:400,enumValues:40,callArgKeys:20,callError:500,callBatch:100},Yc=/^[A-Za-z0-9_-]+$/;function Xc(e){return typeof e==`string`&&e.length>0&&e.length<=Jc.entryTool&&Yc.test(e)}function Zc(e){return Math.ceil(e.length/4)}function Qc(e){return Zc(`${e.entryTool} ${e.description}`)+55}function $c(e){return e.tokensPerRequest??Qc(e)+(e.promptLine?Zc(e.promptLine):0)}var el=No({type:Uo(Uc),required:To().optional(),enum:jo(Fo([V(),xo()])).optional(),description:V().optional()}),tl=No({slug:V().min(1),description:V(),params:Vo(V(),el),permission:Uo(Hc),sort:xo()}),nl=No({version:V(),url:V(),sha256:V(),sizeBytes:xo(),exe:V(),format:Go(`zip`)}),rl=No({slug:V().min(1),name:V(),entryTool:V().refine(Xc,`not a valid tool name`),description:V(),promptLine:V().nullable(),details:V().nullable().optional(),status:Uo(Vc),defaultOn:To(),sort:xo(),install:nl.nullable(),actions:jo(tl)}).loose();No({platform:Uo(Bc),version:V(),packs:jo(rl),refreshMinutes:xo()}),[`**Let this chat work together with your other chats.**`,``,`### What it does`,`- Finds your other chats on this PC and reads their recent messages.`,`- Sends one chat, or a group of chats, a message or a task.`,`- Brings their answers back to this chat, by itself.`,``,`### How it works`,`- A chat that is asleep is woken from its saved history. A busy one gets the message when its current turn ends, never in the middle of it.`,`- The other chat does the work with its own model, folder and tools. When it finishes, its answer comes back here as a new message.`,`- Several chats can share one conversation (a group). An answer goes only to the chat that asked, so a group cannot multiply its own messages.`,``,`### What it costs`,`- About 600 tokens on every request while it is on, read from the prompt cache.`,`- Every message makes the chat that receives it do a turn, which spends its own tokens.`,`- Switching it on or off in a chat that already has a conversation re-writes its prompt cache once.`,``,`### Safety limits`,`- Each conversation has a budget: 20 delivered messages and 1,000,000 new tokens by default (context read back from the prompt cache is not counted). Reaching either pauses the conversation, and the chats say so.`,`- A chain stops after 3 hops (a message caused by a message caused by a message).`,`- At most 5 messages between two chats and 20 from one chat in 10 minutes, and 10 waiting for any one chat. A chat cannot message itself.`,`- A conversation with no activity for 24 hours closes by itself.`,``,`### How to stop it`,`- Turn this switch off: the chat loses these tools, and its part in every conversation pauses.`,`- Or open the Conversations window and use Pause, Close or Stop all.`,``,`### Privacy`,`- Everything stays on your PC: the messages are kept in this PC's database, never on OonaCode's server.`,`- A message never grants anything. The other chat runs with its own permissions and asks you as usual.`,``,`Only chats that have this switch on can reach each other.`].join(`
|
|
78
|
-
`);var il={hops:3,rateWindowMs:6e5,perPair:5,perSender:20,pendingPerTarget:10,idleCloseMs:864e5,messageChars:2e4,titleChars:80,conversationTitleChars:120,recipients:10,listChats:50,readMessages:50,budgetMessagesMax:1e4,budgetTokensMax:1e9},al={message:`✉️ Message from chat "`,reply:`↩️ Reply from chat "`,continue:`↻ Continue the message from chat "`},ol=`⚠ `,sl=`<local-command-stdout>`,cl=`</local-command-stdout>`,ll=/^[A-Za-z0-9._:-]{1,128}$/,ul=/^\[conv:(\S+) chat:(\S+) host:(\S+) msg:(\S+?)(?: reply-to:(\S+?))?( reply expected)?\]$/;function dl(e){if(typeof e!=`string`)return null;let t=e;t.startsWith(sl)&&t.endsWith(cl)&&(t=t.slice(22,t.length-23)),t=t.replace(/\r\n/g,`
|
|
79
|
-
`);let n=t.indexOf(`
|
|
80
|
-
`);if(n<0)return null;let r=t.slice(0,n),i=t.slice(n+1),a=i.indexOf(`
|
|
81
|
-
`),o=a<0?i:i.slice(0,a),s=``;if(a>=0){let e=i.slice(a+1);if(!e.startsWith(`
|
|
82
|
-
`))return null;s=e.slice(1)}let c=ul.exec(o);if(!c)return null;let[,l,u,d,f,p,m]=c;if(![l,u,d,f].every(e=>e!==void 0&&ll.test(e))||p!==void 0&&!ll.test(p))return null;let h=null,g=null,_=null,v=``;for(let e of[`message`,`reply`,`continue`]){let t=al[e];if(!r.startsWith(t))continue;let n=r.slice(t.length),i=/^([^"\n]*)"(?: · (.+))?$/.exec(n);if(!i)return null;h=e,g=i[1]??``,_=i[2]??null,v=r.slice(r.indexOf(` `)+1);break}if(h===null){if(!r.startsWith(ol)||r.length<=2)return null;h=`notice`,v=r.slice(2)}return{kind:h,title:g,pc:_,headline:v,conversationId:l,chatId:u,hostId:d,messageId:f,replyToId:p??null,replyExpected:m!==void 0,body:s}}var fl={enabled:!0,intervalMinutes:30,maxWords:100,inputChars:12e3},pl={intervalMinutes:{min:5,max:1440},maxWords:{min:20,max:300},inputChars:{min:2e3,max:6e4}},ml={userChars:2e3,concurrency:3,debounceMs:15e3,retryAfterFailureMs:3e5,callTimeoutMs:18e4};function hl(e,t,n,r){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(r,Math.max(n,Math.round(e)))}function gl(e){let t=pl,n=fl;return{enabled:typeof e.chatAboutEnabled==`boolean`?e.chatAboutEnabled:n.enabled,intervalMinutes:hl(e.chatAboutIntervalMinutes,n.intervalMinutes,t.intervalMinutes.min,t.intervalMinutes.max),maxWords:hl(e.chatAboutMaxWords,n.maxWords,t.maxWords.min,t.maxWords.max),inputChars:hl(e.chatAboutInputChars,n.inputChars,t.inputChars.min,t.inputChars.max)}}function _l(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function vl(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 yl(e){return!Number.isFinite(e)||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function bl(e){return e.toLocaleString(`en-US`,{maximumFractionDigits:2})}var xl={seq:0,sessionIds:null,generateAll:void 0};function Sl(e,t){return e.sessionIds===null||e.sessionIds.includes(t)}function Cl(e){return e.source===`user`?`you`:e.source===`auto`?e.model?`the housekeeper (${e.model})`:`the housekeeper`:``}var wl={pool:`OonaCode pool — credits`,"own-key":`your own API key — your provider bills you`,subscription:`your own subscription — the plan pays`};function Tl(e){return e.inputTokens+e.cacheReadTokens+e.cacheWriteTokens}function El(e,t){let n=[];return e.costUsd>0&&n.push(yl(e.costUsd)),e.credits>0&&n.push(`${bl(e.credits)} credits`),e.unpricedCalls>0&&n.push(t===`subscription`?`plan`:`${e.unpricedCalls} not priced`),n}function Dl(e,t){return e.calls===0?`nothing spent yet`:[`${e.calls} call${e.calls===1?``:`s`}`,`${vl(Tl(e))} in / ${vl(e.outputTokens)} out`,...El(e,t)].join(` · `)}function Ol(e){let t=[`${e.calls} call${e.calls===1?``:`s`}`,`${vl(Tl(e))} tokens in / ${vl(e.outputTokens)} out`];e.costUsd>0&&t.push(yl(e.costUsd)),e.credits>0&&t.push(`${bl(e.credits)} credits`);let n=e.unpricedCalls;return{line:t.join(` · `),unpriced:n>0?`${n} call${n===1?``:`s`} with no price — on your own subscriptions the plan pays`:null}}function kl(e,t){return e.pending?`Being written now…`:e.lastError?`The last attempt failed: ${e.lastError}`:t.enabled?typeof t.entryCount==`number`&&t.entryCount<2?`Too little in the chat yet — one is written after its first turn ends.`:`Not written yet — the housekeeper writes one after the chat’s next turn ends.`:`Chat abouts are off, so none is written.`}function Al(e){return`${e.running?`Writing: ${e.done} of ${e.total} done`:e.stoppedReason?`Stopped at ${e.done} of ${e.total}`:`Finished: ${e.done} of ${e.total}`} · ${e.written} written · ${e.failed} failed · ${e.skipped} skipped`}function jl(e){return e.trim().length>ml.userChars?`At most ${ml.userChars.toLocaleString(`en-US`)} characters.`:null}function Ml(e,t){let n=_l(e),r=e.trim().length;return{words:n,chars:r,overWords:n>t,overChars:r>ml.userChars}}var Nl={what:[`A short note (at most the word limit in Settings, 100 words by default) saying what a chat works on and where it stands.`,`Your other chats read it through “Talk to other chats” (its list of chats), so they can tell which chat to ask for what without opening each one.`,`The chat’s own model never writes it and never sees it as a tool.`],when:[`Written in the background by the housekeeper — the cheap helper model of the chat’s own provider — after a turn ends, only when the chat changed since the last one, and at most once per interval (30 minutes by default) per chat.`,`Regenerate writes it now, whatever the interval says. “Generate for all chats now” does that for every chat.`],who:[`The chat’s own route pays: an OonaCode pool chat spends credits, your own API key is billed by your provider, and your own subscription’s plan covers it (only the tokens are shown).`,`A call reads a part of the chat (the characters setting, 12,000 by default) and writes a few sentences.`],yours:[`Text you write yourself is kept — the housekeeper never writes over it — until you clear it (save it empty) or press Regenerate.`],where:[`It is part of the chat, so it stays on this PC: it is not uploaded, not mirrored to your account, and not shown for chats running on your other PCs.`],regenerate:`Write this chat’s about now with the housekeeper, whatever the interval says. It replaces the text above — your own included.`,regenerateOff:`Chat abouts are off (the switch in “What your chats are about” or Settings → This PC).`,edit:`Write the about yourself. Your text is kept until you clear it or press Regenerate.`,generateAll:`Write an about now for every chat that needs one. Chats whose about you wrote yourself, chats with too little in them and chats whose about is current are skipped. Each call is paid by its chat’s own route.`,stop:`Stop “Generate for all chats now”. The abouts being written right now finish; the rest are not started.`,stale:`The chat moved on since this about was written. The housekeeper updates it after a turn ends, once the interval allows.`,switch:`Off: no about is written for any chat — not in the background, not by Regenerate, not by “Generate for all chats now” — so nothing is spent on them.`},Pl={seq:0,conversationIds:null,sessionIds:null};function Fl(e,t){return e.conversationIds===null||e.sessionIds===null||t.sessionId&&e.sessionIds.includes(t.sessionId)?!0:(t.conversationIds??[]).some(t=>e.conversationIds.includes(t))}function Il(e){let t=e.members.filter(e=>e.leftAt===null);return t.length>0?t:e.members}function Ll(e){if(e.title?.trim())return e.title.trim();let t=Il(e).map(e=>e.title);return t.length>0?t.join(` · `):`Conversation`}function Rl(e,t){return e.members.some(e=>e.sessionId===t&&e.leftAt===null)}function zl(e,t){return e.filter(e=>e.status!==`closed`&&Rl(e,t))}function Bl(e){let t=e.filter(e=>e.status===`active`).length,n=e.length-t,r=e=>`conversation${e===1?``:`s`}`;return t>0?`${t} ${r(t)}${n>0?` · ${n} paused`:``}`:`${n} ${r(n)} · paused`}var Vl={active:`active`,paused:`paused`,closed:`closed`};function Hl(e){return e===`active`?`ok`:e===`paused`?`warn`:`neutral`}var Ul={message:`Message`,reply:`Reply`,continue:`Continue`,notice:`Notice`},Wl={pending:`Waiting to be delivered: the other chat gets it when its current turn ends, or is woken for it.`,sending:`Being handed to a chat on another PC.`,delivering:`Being handed to the other chat right now.`,delivered:`The other chat is working on it.`,answered:`The other chat finished its turn on it.`,failed:`The other chat could not finish it (stopped, or an error). The sender was told.`,cancelled:`Withdrawn before it was delivered, or the conversation closed.`,paused:`On hold: the conversation is paused, or a chat has "Talk to other chats" off.`};function Gl(e){switch(e){case`answered`:return`ok`;case`failed`:return`danger`;case`paused`:return`warn`;case`delivering`:case`delivered`:case`sending`:return`accent`;default:return`neutral`}}function Kl(e){if(e.kind!==`notice`)return e.text;let t=dl(e.text);return t?t.body?`${t.headline}\n\n${t.body}`:t.headline:e.text}function ql(e){return e.kind!==`notice`&&(e.status===`pending`||e.status===`paused`)}function Jl(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?+(e>0):Math.max(0,Math.min(1,e/t))}function Yl(e){return e.length>400||e.split(`
|
|
83
|
-
`).length>8}function Xl(e,t){let n=(e,t,n)=>{let r=e.trim();if(!/^\d+$/.test(r))return`${n}: a whole number, please.`;let i=Number(r);return i<1?`${n}: at least 1.`:i>t?`${n}: at most ${t.toLocaleString()}.`:null};return n(e,il.budgetMessagesMax,`Messages`)??n(t,il.budgetTokensMax,`Tokens`)}var Zl={window:`Chats on this PC that have "Talk to other chats" switched on can send each other messages and tasks. Every conversation between them is listed here, with all it said and what it cost.`,stopAll:`Pauses every active conversation on this PC and stops any turn a message between chats is running right now. Nothing is deleted: resume each one when you want.`,status:`Active: messages are delivered. Paused: held until you resume it. Closed: finished — only its history is kept.`,pause:`Holds this conversation: messages waiting in it are not delivered until you resume it. A chat already working on one finishes that turn.`,resume:`Lets the messages waiting in this conversation be delivered again. Not possible while it is over its budget — raise the budget first.`,close:`Ends this conversation for good. Messages still waiting in it are withdrawn; its history stays here.`,budget:`The most this conversation may use before it pauses by itself: delivered messages, and new tokens (context read back from the prompt cache is not counted). A budget below what is used pauses it; raising it resumes one the budget paused.`,removeMember:`Takes this chat out of the conversation: nothing more is delivered to it here. A conversation left with fewer than two chats closes.`,withdraw:`Takes this message back before it is delivered. The other chat never sees it.`,history:`Every message, reply and notice in this conversation, oldest first: who sent it to whom, when, whether it was delivered and answered, and what the turn it caused used. A message not delivered yet can be withdrawn.`,cost:`What the turns these messages caused cost, and their new tokens (input and output, not the context read back from the cache).`,openChat:`Open this chat in a tab.`,listView:`Every conversation, with its controls and its whole history.`,mapView:`Which chats are talking to each other: every chat is a dot (blue and pulsing while it works), every conversation a hub with a line to each of its chats — dashed for a chat that left. Click a hub to see that conversation, a chat to open it.`,showClosed:`Also draw the conversations that are closed, faded.`};function Ql(e,t,n){return{...e??{},[t]:n}}function $l(e,t){let n=qc(e,t);return{count:n.length,label:`Tools · ${n.length}`,title:n.length>0?`OonaCode tools on in this chat: ${n.map(e=>e.name).join(`, `)}`:`No OonaCode tools are on in this chat`}}function eu(e){return e&&Object.keys(e).length>0?{toolPacks:{...e}}:{}}var tu=`Switching a tool restarts this chat's agent; its next message re-reads the conversation once.`;function nu(e){return e.details?.trim()||null}function ru(e){return e.description.trim()||`No details for this tool yet.`}var iu=`A demo: its calls are checked and logged, but nothing runs on your PC yet.`;function au(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function ou(e){if(`at`in e)return`once, ${au(e.at)}`;if(`everyMinutes`in e){let t=e.everyMinutes;return t%1440==0?t===1440?`every day`:`every ${t/1440} days`:t%60==0?t===60?`every hour`:`every ${t/60} hours`:`every ${t} minutes`}return`cron ${e.cron}`}function su(e,t){return t?e?`next ${au(e)}`:`done`:e?`paused`:`done`}function cu(e,t,n){return n?`${e}::${n}::${t}`:`${e}::${t}`}function lu(e,t){return e===`oonacode`?-1:t}function uu(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:lu(e.definition.id,t)})).sort((e,t)=>e.order-t.order).map(e=>e.p)}function du(e){let t=gs(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:` ${fu(e.id,e.label)}`}))}function fu(e,t){return e===`token-plan`?`Subscription`:e===`payg`||e===`api-key`?`API`:t}function pu(e,t){let n=uu(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=Mc(n.definition.models,t?.[n.definition.id]),a=r(n);return du(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:cu(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 mu(e,t){if(!t.providerId||!t.model)return!1;let n=e.find(e=>e.definition.id===t.providerId)?.definition;if(!n||n.models.length===0)return!1;let r=ks(t.model);if(n.models.some(e=>e.id===r||e.upstreamId===r)||n.modelAliases?.[r]!==void 0||Ms(n,r)!==null)return!1;let i=r.toLowerCase();return!js(i)||n.modelAliases?.[i]===void 0&&!n.models.some(e=>e.id.toLowerCase().includes(i))}function hu(e,t){let n=pu(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);if(!i)return{providerId:null,variantId:a,modelId:t.model??null};let o=e.find(e=>e.definition.id===i)?.definition;return t.model?{providerId:i,variantId:a,modelId:(o?Ms(o,t.model):null)??t.model}:{providerId:i,variantId:a,modelId:o?.defaultModel||n.find(e=>e.providerId===i)?.models[0]?.modelId||null}}function gu(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 _u(e){return`Remote access is turned off on ${e}, so it cannot be reached from here. Turn it on in OonaCode on that PC — Settings → This PC → Remote access — then try again.`}function vu(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 yu(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 bu=`chat too long for this model`;function xu(e){return typeof e!=`string`||e===``?!1:/safeguards? (?:have )?(?:flagged|blocked)/i.test(e)}var Su=`blocked by safeguards`;function Cu(e,t){if(yu(t))return bu;if(xu(t))return Su;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 wu={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 Tu(e){if(!e.isError)return`turn complete`;let t=vu(e.text);if(t)return Cu(t.status,t.message);let n=wu[e.subtype];if(n!==void 0)return n;let r=e.subtype.replace(/_/g,` `).trim();return r===``?`error`:r}var Eu={authentication_failed:`sign-in needed`,billing_error:`billing problem`,rate_limit:`rate limited`,invalid_request:`invalid request`,server_error:`provider error`};function Du(e,t){if(typeof e!=`string`)return null;let n=e.trim();if(n===``)return null;if(yu(t))return bu;if(xu(t))return Su;let r=Eu[n];if(r!==void 0)return r;if(n===`unknown`){let e=vu(t);return e?Cu(e.status,e.message):yu(t)?bu:`error`}return n.replace(/_/g,` `)}var Ou=`model_refusal_fallback`,ku=`model_refusal_no_fallback`;function Au(e){return typeof e==`string`&&e.trim()!==``?e.trim():null}function ju(e,t,n){return Au(e[t])??Au(e[n])}function Mu(e){if(typeof e!=`object`||!e)return null;let t=e,n=t.subtype,r=n===`model_refusal_fallback`?`fallback`:n===`model_refusal_no_fallback`?`no_fallback`:t.kind===`fallback`||t.kind===`no_fallback`?t.kind:null;if(!r||t.type!==void 0&&t.type!==`system`)return null;let i=t.retracted_message_uuids??t.retractedMessageUuids??t.retractedUuids;return{kind:r,scope:t.scope===`local`?`local`:`session`,originalModel:ju(t,`original_model`,`originalModel`),fallbackModel:r===`fallback`?ju(t,`fallback_model`,`fallbackModel`):null,category:ju(t,`api_refusal_category`,`apiRefusalCategory`)??Au(t.category),explanation:ju(t,`api_refusal_explanation`,`apiRefusalExplanation`)??Au(t.explanation),text:typeof t.content==`string`?t.content.trim():Au(t.text)??``,retractedUuids:Array.isArray(i)?i.filter(e=>typeof e==`string`):[]}}function Nu(e,t){switch(t.type){case`notice`:return t.notice.kind!==`fallback`||t.notice.scope!==`session`?e:{notice:t.notice,at:t.at,live:t.live};case`engine_start`:case`model_change`:return null}}function Pu(e,t){return!e||t.alive===!1||!e.live&&t.since!==null&&e.at!==null&&e.at<t.since?null:e}function Fu(e){let t=ks(e.trim()),n=t.slice(t.lastIndexOf(`/`)+1),r=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),i=n.split(`-`);if(i[0]?.toLowerCase()!==`claude`)return t;let a=i.slice(1).filter(e=>!/^\d{6,}$/.test(e)),o=a.filter(e=>!/^\d+$/.test(e)),s=a.filter(e=>/^\d+$/.test(e));return o.length!==1||s.length===0?t:`${r(o[0])} ${s.join(`.`)}`}function Iu(e,t=[]){let n=ks(e.trim()),r=null;for(let e of t)for(let t of e.definition.models){if(t.id===n||ks(t.id)===n)return t.displayName;r===null&&(t.upstreamId===n||Fc(t.id)===n)&&(r=t.displayName)}return r??Fu(n)}function Lu(e){return`${e} (safeguard)`}function Ru(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function zu(e,t){let n=typeof e==`object`&&e?e:{},r={input:Ru(n.input_tokens),cached:Ru(n.cache_read_input_tokens)+Ru(n.cache_creation_input_tokens),output:Ru(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+=Ru(t.inputTokens),i.cached+=Ru(t.cacheReadInputTokens)+Ru(t.cacheCreationInputTokens),i.output+=Ru(t.outputTokens)}return i}var Bu=`mcp__oonacode__switch_workspace`,Vu=`Switch workspace`;function Hu(e){if(e.toolName!==`SwitchWorkspace`)return null;let t=e.input;return!t||typeof t!=`object`||typeof t.from!=`string`||typeof t.to!=`string`?null:{from:t.from,to:t.to,create:t.create===!0}}function Uu(e){return`${e.from} → ${e.to}${e.create?` (new folder)`:``}`}function Wu(e,t,n=140){let r=Gc({toolName:e,input:t});if(r){let e=`${r.name} ${r.version} (${Wc(r.sizeBytes)}) → ${r.path}`;return e.length>n?`${e.slice(0,n)}…`:e}let i=Hu({toolName:e,input:t});if(i){let e=Uu(i);return e.length>n?`…${e.slice(e.length-n)}`:e}let a=e===Bu?Vu:e,o=t??{};for(let e of[`command`,`file_path`,`pattern`,`query`,`url`,`path`,`prompt`]){let t=o[e];if(typeof t==`string`&&t.trim().length>0){let e=t.replace(/\s+/g,` `).trim();return`${a}: ${e.length>n?`${e.slice(0,n)}…`:e}`}}return a}var Gu={wav:{kind:`audio`,mime:`audio/wav`},mp3:{kind:`audio`,mime:`audio/mpeg`},ogg:{kind:`audio`,mime:`audio/ogg`},oga:{kind:`audio`,mime:`audio/ogg`},opus:{kind:`audio`,mime:`audio/ogg`},m4a:{kind:`audio`,mime:`audio/mp4`},aac:{kind:`audio`,mime:`audio/aac`},flac:{kind:`audio`,mime:`audio/flac`},weba:{kind:`audio`,mime:`audio/webm`},mp4:{kind:`video`,mime:`video/mp4`},m4v:{kind:`video`,mime:`video/mp4`},mov:{kind:`video`,mime:`video/mp4`},webm:{kind:`video`,mime:`video/webm`},mkv:{kind:`video`,mime:`video/x-matroska`},ogv:{kind:`video`,mime:`video/ogg`},png:{kind:`image`,mime:`image/png`},jpg:{kind:`image`,mime:`image/jpeg`},jpeg:{kind:`image`,mime:`image/jpeg`},gif:{kind:`image`,mime:`image/gif`},webp:{kind:`image`,mime:`image/webp`},bmp:{kind:`image`,mime:`image/bmp`},svg:{kind:`image`,mime:`image/svg+xml`},avif:{kind:`image`,mime:`image/avif`}};function Ku(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`)),n=e.slice(t+1),r=n.lastIndexOf(`.`);return r<=0?``:n.slice(r+1).toLowerCase()}function qu(e){return Gu[Ku(e)]??null}var Ju=`oonacode`,Yu=Object.freeze({doctor:`off`,"update-config":`off`,"fewer-permission-prompts":`off`,loop:`off`,insights:`off`,"team-onboarding":`off`,"auto-mode-setup":`off`,"keybindings-help":`off`}),Xu=Object.freeze({model:{refusedBy:`app`,reason:`Use the model picker under the message box — the chat keeps the model you pick there.`},usage:{aliases:[`cost`,`stats`],refusedBy:`host`,reason:`It shows the engine's own estimate at list prices, not your OonaCode credits — see Credits used in the chat's Session info, and Credits and plan in the title bar.`,terminalReason:`It shows the engine's own estimate at list prices, not your OonaCode credits — /cost shows what this chat was charged.`},autocompact:{refusedBy:`host`,reason:`OonaCode sets the context window from the model's real size at every engine start — nothing to set here.`},"output-style":{refusedBy:`host`,reason:`A style set here is lost at the chat's next engine start — ask the chat to answer in the style you want.`},mcp:{refusedBy:`host`,reason:`OonaCode's tools are switched per chat in the Tools menu under the message box.`},"list-agents":{aliases:[`peers`],refusedBy:`host`,reason:`This chat's subagents are on the agents badge beside the model picker; chats talking to each other are in View → Conversations.`},"reload-skills":{refusedBy:`host`,reason:`OonaCode reloads skills by itself when you import or remove one in Settings → Skills.`}}),Zu=`Needs a Claude account signed in to the engine — OonaCode runs the engine without one.`,Qu=`It reads or edits your own Claude Code install (~/.claude), which OonaCode never touches.`,$u=Object.freeze({clear:{availability:`not-in-oonacode`,reason:`It starts a new engine conversation that this chat would not follow — start a new chat (+) instead.`},fast:{availability:`not-in-oonacode`,reason:`The engine answers "Fast mode is not available in the Agent SDK".`},config:{availability:`not-in-oonacode`,reason:`Claude Code's terminal settings, written to a file OonaCode rebuilds at every engine start — OonaCode's own are in Settings.`},effort:{availability:`not-in-oonacode`,reason:`Use the effort picker under the message box — it is saved with the chat.`},rename:{availability:`not-in-oonacode`,reason:`Rename the chat from its tab or the sidebar — the engine's own title is not the chat's.`},color:{availability:`not-in-oonacode`,reason:`The terminal prompt bar's colour — it belongs to Claude Code's terminal.`},"reload-plugins":{availability:`not-in-oonacode`,reason:`OonaCode loads no plugins — import a plugin's skills in Settings → Skills instead.`},heapdump:{availability:`not-in-oonacode`,reason:`It writes the engine's memory dump to your Desktop — a Claude Code diagnostic.`},agents:{availability:`not-in-oonacode`,reason:`The engine removed this wizard — ask the chat to create a subagent in .claude/agents/.`},"__remote-workflow":{availability:`not-in-oonacode`,reason:`It runs only inside Anthropic's cloud sessions.`},"workflow-launch-exec":{availability:`not-in-oonacode`,reason:`It runs only inside Anthropic's cloud sessions.`},doctor:{availability:`not-in-oonacode`,reason:Qu},"update-config":{availability:`not-in-oonacode`,reason:Qu},"fewer-permission-prompts":{availability:`not-in-oonacode`,reason:Qu},"keybindings-help":{availability:`not-in-oonacode`,reason:Qu},loop:{availability:`not-in-oonacode`,reason:`It schedules through the engine's own cron, which OonaCode turns off — ask the chat to schedule a task; OonaCode's scheduler runs it.`},insights:{availability:`not-in-oonacode`,reason:`It analyses Claude Code's own session files; OonaCode keeps chats in its own database, so the report would be empty.`},"team-onboarding":{availability:`not-in-oonacode`,reason:`It reads usage from Claude Code's own session files, which OonaCode does not keep — there is nothing to read.`},"auto-mode-setup":{availability:`not-in-oonacode`,reason:`Auto mode is not one of OonaCode's postures (Build, Plan, Ask first, Autonomous).`},login:{availability:`needs-anthropic-account`,reason:Zu},logout:{availability:`needs-anthropic-account`,reason:Zu},upgrade:{availability:`needs-anthropic-account`,reason:Zu},"extra-usage":{availability:`needs-anthropic-account`,reason:Zu},"rate-limit-options":{availability:`needs-anthropic-account`,reason:Zu},"privacy-settings":{availability:`needs-anthropic-account`,reason:Zu},feedback:{availability:`needs-anthropic-account`,reason:Zu},bug:{availability:`needs-anthropic-account`,reason:Zu},"install-github-app":{availability:`needs-anthropic-account`,reason:Zu},"install-slack-app":{availability:`needs-anthropic-account`,reason:Zu},"remote-control":{availability:`needs-anthropic-account`,reason:Zu},"remote-env":{availability:`needs-anthropic-account`,reason:Zu},"web-setup":{availability:`needs-anthropic-account`,reason:Zu},ultrareview:{availability:`needs-anthropic-account`,reason:Zu},ultraplan:{availability:`needs-anthropic-account`,reason:Zu},passes:{availability:`needs-anthropic-account`,reason:Zu},teleport:{availability:`needs-anthropic-account`,reason:Zu},...Object.fromEntries(Object.entries(Xu).map(([e,t])=>[e,{availability:`not-in-oonacode`,reason:t.reason,...t.refusedBy===`app`?{refusedBy:`app`}:{},...t.terminalReason?{terminalReason:t.terminalReason}:{}}]))});Object.freeze({});function ed(e){let t=`${Ju}:`;return e.startsWith(t)&&e.length>t.length?e.slice(t.length):null}function td(e){let t=/^\/([^\s/]*)$/.exec(e);return t?t[1]:null}function nd(e){let t=/^\/([A-Za-z0-9][\w:.-]*)(?:\s|$)/.exec(e.trimStart());return t?t[1]:null}function rd(e,t=`host`){let n=nd(e);if(n===null)return null;let r=$u[n]??$u[ad[n]??``];return!r||r.availability!==`not-in-oonacode`||r.refusedBy===`app`&&t!==`app`?null:{...r,command:n}}function id(e){return e.refusedBy===`app`?`/${e.command} is not used here. ${e.reason}`:`/${e.command} is not available in OonaCode. ${e.reason}`}var ad=Object.freeze({reset:`clear`,new:`clear`,settings:`config`,name:`rename`,checkup:`doctor`,proactive:`loop`,...Object.fromEntries(Object.entries(Xu).flatMap(([e,t])=>(t.aliases??[]).map(t=>[t,e])))});function od(e){let t=!1,n=e.map(e=>{if(e.availability!==`ok`||e.source!==`builtin`&&e.source!==`skill`)return e;let n=$u[e.name];if(!n)return e;t=!0;let{note:r,...i}=e;return{...i,availability:n.availability,reason:n.reason}});return t?n:e}function sd(e,t,n=60){let r=t.trim().toLowerCase(),i=e=>[e.name,...e.aliases??[]].map(e=>e.toLowerCase()),a=e=>r.length>0&&i(e).includes(r),o=[[],[],[],[]];for(let t of e){if(t.availability!==`ok`&&!a(t))continue;let e=i(t);r.length===0?o[1].push(t):a(t)?o[0].push(t):e.some(e=>e.startsWith(r))?o[1].push(t):e.some(e=>e.includes(r))?o[2].push(t):t.description.toLowerCase().includes(r)&&o[3].push(t)}return o.flat().slice(0,n)}function cd(e,t){if(!/^\/\S+\s/.test(e))return null;let n=nd(e);return n===null?null:t.find(e=>e.name===n)??t.find(e=>e.aliases?.includes(n))??null}function ld(e){switch(e){case`skill`:return`skill`;case`user`:return`your skill`;case`project`:return`project`;case`plugin`:return`plugin`;case`mcp`:return`MCP`;case`other`:return`other`;default:return null}}var ud=[`skills`,`commands`],dd=Object.freeze({skills:`Skills`,commands:`Commands`});function fd(e){if(e.modelSkill!==void 0)return`skills`;switch(e.source){case`skill`:case`user`:case`project`:case`plugin`:return`skills`;default:return`commands`}}function pd(e){let t={skills:[],commands:[]};for(let n of e)t[fd(n)].push(n);return t}var md=/(?:^|[\s(])(?:e\.g|i\.e|etc|vs|cf|incl|approx|fig)$/i;function hd(e,t=90){let n=(e.split(/\n\s*\n/)[0]??``).replace(/\s+/g,` `).trim(),r=n,i=/[.!?](?=\s|$)|[。!?]/g;for(let e=i.exec(n);e!==null;e=i.exec(n)){let t=n.slice(0,e.index);if(!(e[0]===`.`&&md.test(t))){r=(e[0]!==`.`&&e[0]!==`。`?n.slice(0,e.index+1):t).trim();break}}if(r.length<=t)return r;let a=r.slice(0,t-1),o=a.lastIndexOf(` `);return`${(r[t-1]===` `||o<=t*.66?a:a.slice(0,o)).replace(/[\s,;:—–-]+$/,``)}…`}function gd(e){return typeof e==`string`&&/^[A-Za-z0-9][\w.:-]{0,127}$/.test(e)}function _d(e){if(!Array.isArray(e))return[];let t=new Set;for(let n of e)if(gd(n)&&!Object.hasOwn(Yu,n)&&(t.add(n),t.size>=200))break;return[...t].sort((e,t)=>e.localeCompare(t))}function vd(e,t,n){let r=new Set(e??[]);return n?r.add(t):r.delete(t),[...r].sort((e,t)=>e.localeCompare(t))}function yd(e,t){return(e??[]).includes(t)}function bd(e,t){let n=new Set(t??[]);if(n.size===0)return 0;let r=408;for(let t of e)n.has(t.name)&&(r+=t.tokens);return r}function xd(e,t){let n=[...new Set(t??[])];return{count:n.length,label:`Skills · ${n.length}`,title:n.length>0?`The model may use on its own in this chat: ${n.map(t=>e?.find(e=>e.name===t)?.label??t).join(`, `)}`:`The model uses no skill on its own in this chat — type /name to use one once`}}function Sd(e){let t=_d(e??[]);return t.length>0?{modelSkills:t}:{}}var Cd=`Every skill is always in the / menu — type it to use it once. Switch one on to let the model reach for it by itself in this chat (it then costs its tokens on every message).`,wd=`Switching a skill restarts this chat's agent: the skill list is part of the prompt, so its next message re-reads the conversation once.`,Td=`The first skill switched on also brings back the engine's Skill tool (≈388 tokens per request).`;function Ed(e){switch(e){case`user`:return`Yours`;case`project`:return`Project`;case`plugin`:return`Plugin`;case`mcp`:return`MCP`;case`skill`:case`builtin`:return`Built in`;default:return`Other`}}function Dd(e){switch(e){case`user`:return`One of your own skills — OonaCode's skills folder (Settings → Skills), on every chat of this PC.`;case`project`:return"This project's own — its `.claude/skills` (or `.claude/commands`) folder.";case`skill`:case`builtin`:return`Built into the coding engine OonaCode runs for every model.`;case`plugin`:return`From a plugin the engine loaded.`;case`mcp`:return`From an MCP server of this chat.`;default:return`Found by the engine in this chat’s configuration.`}}function Od(e,t){let n=[];return e.description.trim()&&n.push(e.description.trim(),``),n.push(`**Where it comes from.** ${Dd(e.source)}`,``),n.push(e.typeable?`**Once, by typing it.** Type \`/${e.label}\` (or pick it in the / menu) and the engine loads it for that message only — whether this switch is on or off, at no cost to any other message.`:`**It cannot be typed.** Its author made it for the model only, so the switch is the only way to use it.`,``),n.push(t?`**On in this chat.** The model sees its name and description on every message here and may load it by itself when it fits.`:`**Off in this chat.** The model is not told it exists here. Switch it on to let the model reach for it by itself.`,``),n.push(`**What it costs while on.** ≈${e.tokens.toLocaleString(`en-US`)} tokens on every request of this chat (and the engine's Skill tool, ≈388, for the first skill on). Switching restarts the chat's agent; its next message re-reads the conversation once.`),n.join(`
|
|
84
|
-
`)}var kd={complete:`/api/v1/account/vault/rekey-complete`,revoke:`/api/v1/account/vault/rekey-revoke`,deviceUnlock:`/api/v1/account/device-unlock`};function Ad(e){return e?.deviceUnlock??`off`}function jd(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:Md(n)}}function Md(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 Nd(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 Pd(e){let t=e.from?` from ${e.from}`:``;return`A password reset was started on ${Nd(e.since)}${t}. Your saved provider keys are still sealed under the old password.`}function Fd(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 ${Ld(e.trustedDevices)} to finish the reset — your saved keys are waiting there.`}var Id=`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 Ld(e){return e.length<=1?e[0]??``:`${e.slice(0,-1).join(`, `)} or ${e[e.length-1]}`}function Rd(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 ${Ld(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 zd=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 Bd(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 Vd(e){return e.trim().replace(/\/+$/,``)}function Hd(e,t){let n=Vd(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`};o.signal&&(c.signal=o.signal),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 zd(`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 zd(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 zd(`parse`,l.status,`Host returned malformed JSON for ${t} ${i}`)}}let a=De;return{health:()=>i(a.health,R.health),info:()=>i(a.info,R.info),listSessions:e=>i(a.listSessions,`${R.sessions}${Bd(e)}`),createSession:e=>i(a.createSession,R.sessions,e),getSession:e=>i(a.getSession,R.session(e)),updateSession:(e,t)=>i(a.updateSession,R.session(e),t),deleteSession:e=>i(a.deleteSession,R.session(e)),exportSessionsArchive:async t=>{let i=await r(`${n}${R.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 zd(t?.error?.code??`internal`,i.status,t?.error?.message??e??`the export failed`)}return i.blob()},listEntries:(e,t)=>i(a.listEntries,`${R.sessionEntries(e)}${Bd(t)}`),listMessages:e=>i(a.listMessages,R.sessionMessages(e)),prompt:(e,t)=>i(a.prompt,R.sessionPrompt(e),{...t,stream:!1}),interrupt:e=>i(a.interrupt,R.sessionInterrupt(e),{}),cancelQueued:(e,t)=>i(a.cancelQueued,R.sessionQueued(e,t)),sendQueuedNow:(e,t)=>i(a.sendQueuedNow,R.sessionQueuedNow(e,t),{}),forkSession:(e,t)=>i(a.fork,R.sessionFork(e),t??{}),exportSession:(e,t)=>i(a.export,`${R.sessionExport(e)}${Bd(t)}`,void 0,{raw:!0}),listProjects:()=>i(a.listProjects,R.projects),listVaultProjects:()=>i(a.listVaultProjects,R.vaultProjects),createVaultProject:e=>i(a.createVaultProject,R.vaultProjects,e),updateVaultProject:(e,t)=>i(a.updateVaultProject,R.vaultProject(e),t),deleteVaultProject:e=>i(a.deleteVaultProject,R.vaultProject(e)),listScheduledTasks:(e={})=>{let t=new URLSearchParams;e.sessionId&&t.set(`sessionId`,e.sessionId),e.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();return i(a.listScheduledTasks,n?`${R.scheduledTasks}?${n}`:R.scheduledTasks)},createScheduledTask:e=>i(a.createScheduledTask,R.scheduledTasks,e),updateScheduledTask:(e,t)=>i(a.updateScheduledTask,R.scheduledTask(e),t),deleteScheduledTask:e=>i(a.deleteScheduledTask,R.scheduledTask(e)),listConversations:(e={})=>i(a.listConversations,`${R.conversations}${Bd({sessionId:e.sessionId})}`),getConversation:e=>i(a.getConversation,R.conversation(encodeURIComponent(e))),conversationAction:(e,t,n)=>i(a.conversationAction,R.conversationAction(encodeURIComponent(e),t),n??{}),stopAllConversations:()=>i(a.stopAllConversations,R.conversationsStopAll,{}),cancelChatMessage:e=>i(a.cancelChatMessage,R.chatMessage(encodeURIComponent(e))),getChatAbout:e=>i(a.getChatAbout,R.sessionAbout(encodeURIComponent(e))),updateChatAbout:(e,t)=>i(a.updateChatAbout,R.sessionAbout(encodeURIComponent(e)),t),regenerateChatAbout:e=>i(a.regenerateChatAbout,R.sessionAboutRegenerate(encodeURIComponent(e)),{}),listChatAbouts:()=>i(a.listChatAbouts,R.chatAbouts),generateAllChatAbouts:()=>i(a.generateAllChatAbouts,R.chatAboutsGenerateAll,{}),stopGenerateAllChatAbouts:()=>i(a.stopGenerateAllChatAbouts,R.chatAboutsGenerateAllStop,{}),getGithubLink:()=>i(a.getGithubLink,R.githubLink),searchEntries:e=>i(a.searchEntries,`${R.sessionSearch}${Bd(e)}`),startGithubLink:()=>i(a.startGithubLink,R.githubLinkStart,{}),cancelGithubLink:()=>i(a.cancelGithubLink,R.githubLinkStart),unlinkGithub:()=>i(a.unlinkGithub,R.githubLink),scanClaudeSessions:()=>i(a.scanClaudeSessions,R.importClaude),importClaudeSessions:e=>i(a.importClaudeSessions,R.importClaude,e??{}),searchImportChats:(e,t)=>i(a.searchImportChats,`${R.importSearch}${Bd(e)}`,void 0,t?{signal:t}:{}),sessionLink:e=>i(a.sessionLink,R.sessionLink(e)),syncSessionDown:e=>i(a.syncSessionDown,R.sessionSyncDown(e),{}),inspectProject:e=>i(a.inspectProject,`${R.projectInspect}${Bd(e)}`),attachSessionProject:(e,t)=>i(a.attachSessionProject,R.sessionProject(e),t),listAgentTools:()=>i(`GET`,R.agentTools),listSessionCommands:e=>i(a.listSessionCommands,R.sessionCommands(encodeURIComponent(e))),listCommands:e=>i(a.listCommands,`${R.commands}${Bd(e)}`),listSessionChatSkills:e=>i(a.listSessionChatSkills,R.sessionModelSkills(encodeURIComponent(e))),listChatSkills:e=>i(a.listChatSkills,`${R.modelSkills}${Bd(e)}`),listSkills:()=>i(a.listSkills,R.skills),deleteSkill:e=>i(a.deleteSkill,R.skill(e)),scanClaudeSkills:()=>i(a.scanClaudeSkills,R.importClaudeSkills),importClaudeSkills:e=>i(a.importClaudeSkills,R.importClaudeSkills,e),listProviders:()=>i(a.listProviders,R.providers),setActiveProvider:e=>i(a.setActiveProvider,R.providersActive,e),testProvider:e=>i(a.providerTest,R.providerTest(e),{}),probeCredential:(e,t)=>i(a.providerProbe,R.providerProbe(e),t),listModels:e=>i(a.listModels,`${R.models}${Bd(e)}`),getSettings:()=>i(a.getSettings,R.settings),updateSettings:e=>i(a.updateSettings,R.settings,e),getAccount:()=>i(a.getAccount,R.account),login:e=>i(a.login,R.accountLogin,e),logout:()=>i(a.logout,R.accountLogout,{}),unlock:e=>i(a.unlock,R.accountUnlock,e),lock:()=>i(`POST`,R.accountLock,{reason:`user`}),plan:()=>i(`GET`,R.accountPlan),remoteUnlockHost:(e,t)=>i(`POST`,R.hostVaultUnlock(e),{password:t}),resendVerification:e=>i(a.resendVerification,R.accountResendVerification,e),startAccountLink:e=>i(a.linkStart,R.accountLinkStart,e??{}),accountLinkStatus:()=>i(a.linkStatus,R.accountLinkStatus),cancelAccountLink:()=>i(a.linkCancel,R.accountLinkCancel,{}),completeVaultRekey:e=>i(`POST`,kd.complete,e),revokeVaultRekey:e=>i(`POST`,kd.revoke,e),setDeviceUnlock:e=>i(`POST`,kd.deviceUnlock,e),listCredentials:()=>i(a.listCredentials,R.credentials),addCredential:e=>i(a.addCredential,R.credentials,e),deleteCredential:e=>i(a.deleteCredential,R.credential(e)),testCredential:e=>i(a.credentialTest,R.credentialTest(e),{}),syncNow:()=>i(a.syncNow,R.syncNow,{}),claudeSubscriptionLogin:()=>i(a.claudeLogin,R.subscriptionClaudeLogin,{}),claudeSubscriptionStatus:()=>i(a.claudeStatus,R.subscriptionClaudeStatus),claudeLoginState:()=>i(a.claudeLoginState,R.subscriptionClaudeLoginState),claudeLoginCode:e=>i(a.claudeLoginCode,R.subscriptionClaudeLoginCode,e),claudeLoginCancel:()=>i(a.claudeLoginCancel,R.subscriptionClaudeLoginCancel,{}),oauthLoginStart:e=>i(a.oauthLogin,R.subscriptionOauthLogin(e),{}),oauthLoginState:e=>i(a.oauthLoginState,R.subscriptionOauthLoginState(e)),oauthLoginCancel:e=>i(a.oauthLoginCancel,R.subscriptionOauthLoginCancel(e),{}),doctor:()=>i(a.doctor,R.doctor),listHosts:()=>i(a.listHosts,R.hosts),listHostSessions:e=>i(a.listHostSessions,R.hostSessions(e)),deleteHostSession:(e,t)=>i(a.deleteHostSession,R.hostSession(e,t),{method:`DELETE`}),updateHost:(e,t)=>i(a.updateHost,R.host(e),t),listHostSessionEntries:(e,t,n)=>i(a.listHostSessionEntries,`${R.hostSessionEntries(e,t)}${Bd(n)}`),reportError:e=>i(a.errorReport,R.errorReport,e),sendBugReport:e=>i(a.bugReport,R.bugReport,e),listSessionFiles:(e,t)=>i(a.listSessionFiles,`${R.sessionFiles(e)}${Bd({path:t})}`),readSessionFile:(e,t)=>i(a.readSessionFile,`${R.sessionFile(e)}${Bd({path:t})}`,void 0,{raw:!0}),readSessionFileBytes:(e,t)=>i(a.readSessionFile,`${R.sessionFile(e)}${Bd({path:t})}`,void 0,{bytes:!0}),deleteSessionFile:(e,t)=>i(a.deleteSessionFile,`${R.sessionFile(e)}${Bd({path:t})}`),grantLocalFile:async(e,t)=>{let r=await i(a.grantLocalFile,R.sessionLocalFileGrant(e),{path:t});return{...r,url:/^https?:/i.test(r.url)?r.url:`${n}${r.url}`}},statLocalPaths:(e,t)=>i(a.statLocalPaths,R.sessionLocalFileStat(e),{paths:t})}}function Ud(e){return e instanceof zd&&(e.status===404||e.status===501)}var Wd=120;function Gd(){return Wd}function Kd(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 qd(e,t,n){if((t.providerId??``)!==e.providerId||e.variantId!==void 0&&(t.variantId??null)!==(e.variantId??null)||!t.model)return!1;let r=ks(t.model),i=ks(e.model);if(r===i)return!0;let a=n.find(t=>t.definition.id===e.providerId)?.definition;return a!==void 0&&Ts(a,i)===r}function Jd(e){return e instanceof zd&&e.code===`email_not_verified`}function Yd(e){if(!Jd(e))return null;let t={error:{code:e.code,message:e.message,details:e.details}};return A(t)?t.error.details:null}function Xd(e){let t=e.trim(),n=t.indexOf(`@`);return n<=0?`***`:`${t.slice(0,1)}***${t.slice(n)}`}function Zd(e,t){return e===void 0||!Number.isFinite(e)||e<=0?t:t+Math.ceil(e)*1e3}function Qd(e,t){return Math.max(0,Math.ceil((e.resendAt-t)/1e3))}function $d(e,t){if(!Jd(e))return null;let n=t.now??Date.now(),r=Yd(e),i=t.email.trim();return{email:i,displayEmail:r?.email||Xd(i),verification:r?.verification??`pending`,registered:t.registered===!0,resendAt:Zd(r?.resendAfterSec,n)}}function ef(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}.`}var tf=`safeguard-fallback`,nf=`safeguard-no-fallback`;function rf(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,contextTokens:null,hydrated:!1,agentActivity:{},hasSubagentItems:!1,hasOptimisticUser:!1,lastLocalPromptId:null,lastFrameAt:null,lastLiveUuid:null,engineSince:null,safeguardFallback:null,subpathParents:{},seen:new Set,streams:{},nextId:1}}function af(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 of(e,t,n,r,i,a){let o=Jf.exec(t)?.[2];if(!o)return e;let s=i&&Date.parse(i)||0;if(n!==`assistant`)return af(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),af(e,{agentId:o,subpath:t,at:s,finished:l,toolUses:c.length})}function sf(e,t){switch(t.type){case`frame`:return df(e,t.frame,t.receivedAt);case`hydrate`:return Wf(e,t.messages,t.session??null);case`entries`:return Kf(e,t.entries);case`session`:return $f(e,t.session);case`local_prompt`:return tp(e,t);case`local_prompt_failed`:return np(e,t.requestId);case`local_permission`:return Uf(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 lp({...e,nextId:e.nextId+1},n)}case`model_picked`:return cf(e,{type:`model_change`});case`reset`:return rf(e.sessionId)}}function cf(e,t){let n=Nu(e.safeguardFallback,t);return n===e.safeguardFallback?e:{...e,safeguardFallback:n}}function lf(e){return/^Set model to\s/.test(e)}function uf(e,t,n){let r=n.uuid?`sys:${n.uuid}`:`sys:${e.nextId}`;if(e.index.get(r)!==void 0)return e;let i=e;if(t.retractedUuids.length>0){let e=new Set(t.retractedUuids),n=new Set(i.items.filter(t=>t.uuid!==null&&e.has(t.uuid)).map(e=>e.id));n.size>0&&(i=dp(i,n))}let a={kind:`system`,id:r,uuid:n.uuid,parentToolUseId:n.parentToolUseId,turnId:n.turnId,timestamp:n.timestamp,subtype:t.kind===`fallback`?tf:nf,text:t.text,refusal:t,...t.kind===`no_fallback`?{refusalBefore:i.safeguardFallback?.notice??null}:{}};if(i=lp(n.uuid?i:mp(i),a),n.parentToolUseId!==null)return i;let o=n.timestamp?Date.parse(n.timestamp):NaN;return cf(i,{type:`notice`,notice:t,at:Number.isFinite(o)?o:null,live:n.live})}function df(e,t,n){let r=gf(e,t,n);if(n===void 0||!pf(t,e,r))return r;let i=r.lastFrameAt;return i!==null&&n>=i&&n-i<1e3?r:{...r,lastFrameAt:n}}function ff(e){return e===`running`||e===`waiting_permission`}function pf(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 mf(e){if(e.lastFrameAt!==null||!e.hydrated||!ff(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 hf(e,t,n){return t!==null||n===void 0||typeof e.timestamp==`string`?e:{...e,timestamp:new Date(n).toISOString()}}function gf(e,t,n){switch(t.type){case`agent`:{if(t.seq!==null&&e.seen.has(`seq:${t.seq}`))return e;let r=_f(e,hf(t.message,t.seq,n),{turnId:t.turnId,receivedAt:n,live:t.seq===null});return t.seq!==null&&(r=pp(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=pp(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?lp(dp(r,new Set([n.id])),n):up(r,e,n)}}return r}case`turn_finished`:return Rf(e,t.result,t.turnId);case`prompt_delivered`:return Pf(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 dp(e,new Set(n.map(e=>e.id)))}case`subagent_activity`:return af(e,{agentId:t.agentId,subpath:t.subpath,at:Date.parse(t.at)||Date.now(),finished:t.finished,toolUses:t.toolUses});case`permission_request`:return Hf(e,t.request,t.turnId,t.settled===!0);case`permission_resolved`:return Uf(e,t.requestId,t.behavior,t.resolvedBy);case`session_state`:{let n=t.session;return $f((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 lp({...e,nextId:e.nextId+1},r)}default:return e}}function _f(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`?Sf(e,t):e;let o=e;switch(t.type){case`system`:o=vf(e,t,n);break;case`stream_event`:o=yf(e,t,n);break;case`assistant`:o=xf(e,t,n);break;case`user`:o=jf(e,t,n);break;case`result`:o=Lf(e,t,n);break;case`tool_progress`:o=Bf(e,t);break;case`auth_status`:o=Vf(e,t,n);break;default:return e}return a?o=pp(o,a):i&&r!==null&&(o={...o,lastLiveUuid:r}),o}function vf(e,t,n){switch(t.subtype){case`init`:{let r={model:yp(t.model),cwd:yp(t.cwd),tools:Array.isArray(t.tools)?t.tools.filter(e=>typeof e==`string`):[],permissionMode:yp(t.permissionMode),claudeCodeVersion:yp(t.claude_code_version),apiKeySource:yp(t.apiKeySource),sessionId:yp(t.session_id),mcpServers:Array.isArray(t.mcp_servers)?t.mcp_servers:[]};return{...e,init:r,engineSince:n.receivedAt??Date.now()}}case Ou:case ku:{let r=Mu(t);return r?uf(e,r,{uuid:gp(t),parentToolUseId:_p(t),turnId:n.turnId??e.activeTurnId,timestamp:vp(t),live:n.live===!0}):e}case`compact_boundary`:{let r=t.compact_metadata??{},i={kind:`compact`,id:hp(e,`compact`,t),uuid:gp(t),parentToolUseId:_p(t),turnId:n.turnId,timestamp:vp(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 lp(mp(e),i)}case`status`:{let n=typeof t.status==`string`?t.status:null;return{...e,statusText:n}}case`task_notification`:{let r=ue({taskId:yp(t.task_id)||null,toolUseId:yp(t.tool_use_id)||null,status:yp(t.status)||null,summary:yp(t.summary)||null});if(ap(e,r))return e;let i=gp(t),a={kind:`user`,id:i?`u:${i}`:`i${e.nextId}`,uuid:i,parentToolUseId:_p(t),turnId:n.turnId,timestamp:vp(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?lp(i?e:mp(e),a):e}case`permission_denied`:{let n=yp(t.tool_use_id),r=yp(t.message);return fp(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:gp(t),parentToolUseId:_p(t),turnId:e.activeTurnId,timestamp:vp(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 lp({...e,nextId:e.nextId+1},n)}default:{let n=typeof t.content==`string`?t.content.trim():``,r=n?Df(n):null;if(!r||r.subtype===`caveat`)return e;let i=r.subtype===`local-command`?Af(n):null,a={kind:`system`,id:`sys:${e.nextId}`,uuid:gp(t),parentToolUseId:_p(t),turnId:e.activeTurnId,timestamp:vp(t),subtype:i?`chat-notice`:r.subtype,text:r.text,...i?{chatMarker:i}:{}},o=lp({...e,nextId:e.nextId+1},a);return r.subtype===`local-command`&&lf(r.text)?cf(o,{type:`model_change`}):o}}}function yf(e,t,n){let r=t.event;if(!r||typeof r!=`object`)return e;let i=_p(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=bf(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:vp(t),text:s.text??``,streaming:!0,model:o.model,messageId:o.messageId,error:null,aborted:!1},c=mp(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:vp(t),text:s.type===`thinking`?s.thinking??``:``,streaming:!0,redacted:s.type===`redacted_thinking`},c=mp(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:vp(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=lp(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`?up(e,n,{...i,text:i.text+a.text}):a.type===`thinking_delta`&&i.kind===`thinking`?up(e,n,{...i,text:i.text+a.thinking}):a.type===`input_json_delta`&&i.kind===`tool`?up(e,n,{...i,inputJson:i.inputJson+a.partial_json}):e}case`content_block_stop`:{let t=o.blocks[r.index];return t?bf(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:vp(t),code:r.error?.type??`stream_error`,message:r.error?.message??`stream error`,requestId:null};return lp(mp(e),a)}default:return e}}function bf(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?up(e,r,{...i,streaming:!1}):e;if(i.kind===`tool`&&i.status===`streaming`){let t=i.input??Cp(i.inputJson);return up(e,r,{...i,input:t,status:`running`,startedAt:i.startedAt??n??null})}return e}function xf(e,t,n){let r=t.local_command_source;if(typeof r==`string`){let i=Df(r.trim());if(i&&(i.subtype===`local-command`||i.subtype===`local-command-error`)){let r={kind:`system`,id:`sys:${e.nextId}`,uuid:gp(t),parentToolUseId:_p(t),turnId:n.turnId??e.activeTurnId,timestamp:vp(t),subtype:i.subtype,text:i.text},a=lp({...e,nextId:e.nextId+1},r);return i.subtype===`local-command`&&lf(i.text)?cf(a,{type:`model_change`}):a}}let i=t.message??{},a=xp(i.content),o=_p(t),s=o??``,c=gp(t),l=vp(t),u=typeof t.error==`string`?t.error:null,d=t.aborted===!0,f=e;{let e=bp(i.usage?.cache_read_input_tokens)+bp(i.usage?.cache_creation_input_tokens),n=`usage:${i.id??``}`;if(e>0&&i.id&&!f.seen.has(n)&&(f={...pp(f,n),turnCachedTokens:f.turnCachedTokens+e}),o===null&&t.isSidechain!==!0){let t=bp(i.usage?.input_tokens)+e+bp(i.usage?.output_tokens);t>0&&t!==f.contextTokens&&(f={...f,contextTokens:t})}}let p=f.streams[s];for(let e of a){let t=p?Cf(f,p,e):null;if(t){let n=f.index.get(t),r=f.items[n];f=up(f,n,wf(r,e,{uuid:c,timestamp:l,model:i.model??null,messageId:i.id??null,errorText:u,aborted:d})),p={...p,unclaimed:p.unclaimed.filter(e=>e!==t)},f={...f,streams:{...f.streams,[s]:p}};continue}let r=Tf(f,e,{uuid:c,timestamp:l,parentToolUseId:o,turnId:n.turnId,model:i.model??null,messageId:i.id??null,errorText:u,aborted:d,receivedAt:n.receivedAt});r&&(f=r)}if(a.length===0&&u){let e={kind:`error`,id:`err:${f.nextId}`,uuid:c,parentToolUseId:o,turnId:n.turnId,timestamp:l,code:`assistant_error`,message:u,requestId:null};f=lp(mp(f),e)}return f}function Sf(e,t){let n=_p(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 xp(i.content)){let t=Cf(o,s,e);t&&(a.add(t),s={...s,unclaimed:s.unclaimed.filter(e=>e!==t)},o={...o,streams:{...o.streams,[n]:s}})}return dp(e,a)}function Cf(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 wf(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??Cp(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 Tf(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 lp(mp(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 lp(mp(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 up(e,a,wf(r,t,n))}let o=i.input&&typeof i.input==`object`?i.input:null;return lp(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 Ef(e){return e.trim().replace(/\s+/g,` `)}function Df(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()??``,r=n[1].trim(),i=ed(r.replace(/^\//,``));return{subtype:`command`,text:`${i===null?r:`/${i}`}${t?` `+t:``}`}}return null}function Of(e){let t=e.charCodeAt(0);return t===9993||t===8617||t===8635||t===9888}function kf(e){return Of(e)?dl(e):null}function Af(e){if(!e.startsWith(`<local-command-stdout>`))return null;let t=dl(e);return t?.kind===`notice`?t:null}function jf(e,t,n){let r=t.message??{},i=_p(t),a=gp(t),o=vp(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 xp(r.content))if(e.type===`text`)l.push(e.text??``);else if(e.type===`tool_result`){d=!0;let r=e;c=Ff(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=ie(l.join(`
|
|
85
|
-
`)).trim();if(ce(f)&&ap(c,f))return c;let p=Df(f);if(p?.subtype===`caveat`)return c;if(p){if(p.subtype===`command`&&i===null&&c.hasOptimisticUser){let e=Ef(p.text),t=c.items.find(t=>t.kind===`user`&&t.optimistic&&!t.failed&&Ef(t.text)===e);t&&(c=dp(c,new Set([t.id])))}let e=p.subtype===`local-command`?Af(f):null,t={kind:`system`,id:`sys:${c.nextId}`,uuid:a,parentToolUseId:i,turnId:c.activeTurnId,timestamp:o,subtype:e?`chat-notice`:p.subtype,text:p.text,...e?{chatMarker:e}:{}},n=lp({...c,nextId:c.nextId+1},t);return p.subtype===`local-command`&&lf(p.text)?cf(n,{type:`model_change`}):n}if(f.length===0&&u.length===0||d&&f.length===0||s&&d)return c;let m=i===null?kf(f):null;if(i===null&&!s&&c.hasOptimisticUser&&m===null){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?lp(dp(c,new Set([t.id])),{...r,waiting:!1}):up(c,e,r)}}let h=t.isMeta===!0||te(f)||s&&f.length>0&&!L(f),g=t.isCompactSummary===!0||P(f)||ce(f),_=Ks(f),v={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&&!h&&!g&&_===null&&m===null&&i===null&&n.turnId!==null&&Mf(c,n.turnId),deliveredAt:null,compactSummary:t.isCompactSummary===!0||P(f),taskNotification:ce(f),engineNote:!P(f)&&!ce(f)&&h,..._?{scheduledTask:_.title}:{},...m?{chatMarker:m}:{}};return c.index.get(v.id)===void 0?lp(a?c:mp(c),v):c}function Mf(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 Nf(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 Pf(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||o.chatMarker!==void 0||(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?lp(dp(e,new Set([o.id])),s):up(e,a,s)}return e}function Ff(e,t,n,r){let i=e.index.get(t);if(i===void 0)return lp(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 up(e,i,{...a,input:a.input??Cp(a.inputJson),result:If(a.name,n)?{...n,isError:!1}:n,status:If(a.name,n)?`skipped`:n.isError?`error`:`done`,finishedAt:o,durationMs:s})}function If(e,t){return!t.isError||e!==`AskUserQuestion`?!1:typeof t.content==`string`&&t.content.includes(`the user skipped the question`)}function Lf(e,t,n){let r=zu(t.usage,t.modelUsage),i=Array.isArray(t.permission_denials)?t.permission_denials:[],a=n.turnId;return zf(e,{kind:`result`,id:a?`result:${a}`:gp(t)?`result:${gp(t)}`:`result:${e.nextId}`,uuid:gp(t),parentToolUseId:null,turnId:a,timestamp:vp(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:bp(t.total_cost_usd),durationMs:bp(t.duration_ms),durationApiMs:typeof t.duration_api_ms==`number`?t.duration_api_ms:null,numTurns:bp(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 Rf(e,t,n){e=Nf(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 zf(e,a,new Set,void 0)}function zf(e,t,n,r){let i=e,a=i.index.get(t.id),o=a!==void 0;i=a===void 0?lp(mp(i),t):up(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??Cp(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 Bf(e,t){let n=yp(t.tool_use_id),r=typeof t.elapsed_time_seconds==`number`?t.elapsed_time_seconds:null;return!n||r===null?e:fp(e,n,e=>e.result?e:{...e,elapsedSec:r})}function Vf(e,t,n){let r=Array.isArray(t.output)?t.output.map(String).join(`
|
|
86
|
-
`):``,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:gp(t),parentToolUseId:null,turnId:n.turnId,timestamp:vp(t),subtype:`auth_status`,text:a};return lp(mp(e),o)}function Hf(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=lp(e,{kind:`permission`,id:i,uuid:null,parentToolUseId:o?.kind===`tool`?o.parentToolUseId:null,turnId:n,timestamp:t.createdAt,request:t,status:r?`allowed`:`pending`,resolvedBy:r?`auto`:null});return s=fp(s,t.toolUseId,e=>({...e,permissionRequestId:t.requestId,status:e.result?e.status:r?`running`:`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 Uf(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=up(o,a,{...e,status:n===`allow`?`allowed`:`denied`,resolvedBy:r}))}let c=o.pendingPermissions.filter(e=>e.requestId!==t);s&&(o=fp(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 Wf(e,t,n){return sp(e,e=>Gf(e,t,n))}function Gf(e,t,n){let r=e;for(let e of t){let t=e.parentToolUseId;if(e.subpath&&(r=of(r,e.subpath,e.role,e.content,e.timestamp)),e.subpath&&(t===null||r.index.get(t)===void 0)){let n=Qf(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:Sp(xp(e.content)),n=e.subtype===`model_refusal_fallback`||e.subtype===`model_refusal_no_fallback`?Mu(e.refusal??{subtype:e.subtype,content:t}):null;if(n){if(r.seen.has(`uuid:${e.uuid}`))continue;r=pp(uf(r,n,{uuid:e.uuid,parentToolUseId:e.parentToolUseId,turnId:null,timestamp:e.timestamp,live:!1}),`uuid:${e.uuid}`);continue}if(!t||r.seen.has(`uuid:${e.uuid}`))continue;let i=Df(t.trim());i?.subtype===`local-command`&&lf(i.text)&&(r=cf(r,{type:`model_change`}));let a=Af(t.trim()),o={kind:`system`,id:`sys:${e.uuid}`,uuid:e.uuid,parentToolUseId:e.parentToolUseId,turnId:null,timestamp:e.timestamp,subtype:a?`chat-notice`:e.subtype===`rewind_boundary`?`rewind`:`history`,text:a?Df(t.trim())?.text??t:t,...a?{chatMarker:a}:{}};r.index.get(o.id)===void 0&&(r=pp(lp(r,o),`uuid:${e.uuid}`));continue}let i=e.role===`assistant`?{id:null,role:`assistant`,model:e.model,content:xp(e.content)}:{role:`user`,content:typeof e.content==`string`?e.content:xp(e.content)};r=_f(r,{...n,message:i},{turnId:null,receivedAt:void 0})}return r={...r,hydrated:!0},r=n?$f(r,n):ep(r),mf(r)}function Kf(e,t){return sp(e,e=>qf(e,t))}function qf(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=oe(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=_f(n,i,{turnId:null,receivedAt:void 0}),typeof t.content!=`string`&&(n=Pf(n,t.text,t.timestamp))}}if(i===`queue-operation`){let e=ae(r);e&&(n=Pf(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=of(n,e.subpath,i,t?.content,e.timestamp,t?.stop_reason)}if(e.subpath&&(t===null||n.index.get(t)===void 0)){let r=Qf(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=_f(n,a,{turnId:null,receivedAt:void 0})}n=pp(n,t),(n.lastSeq===null||e.seq>n.lastSeq)&&(n={...n,lastSeq:e.seq})}return mf(ep({...n,hydrated:!0}))}var Jf=/^subagents\/(?:workflows\/([^/]+)\/)?agent-(.+?)(?:\.jsonl)?$/;function Yf(e){return`subagent:${e}`}function Xf(e){return`subagent:workflows/${e}`}function Zf(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 Qf(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=Jf.exec(t);if(!r)return{state:e,parentToolUseId:null};let i=r[1]??null,a=r[2],o=(e,n)=>({state:op?(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&&wp(t.result).includes(i))return o(e,t.toolUseId)}let c=Yf(t);if(e.index.get(c)!==void 0)return o(e,c);let l=a.slice(0,8),u=e,d=null;i&&(d=Xf(i),u.index.get(d)===void 0&&(u=lp(u,Zf(d,`Workflow`,`Workflow run ${i} (transcript)`,null))));let f=Zf(c,`Agent`,i?`Agent ${l}`:`Agent ${l} (transcript)`,d);return o(lp(u,f),c)}function $f(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&&!ff(e.status)&&ff(n),a=e.session?.engineSince,o=t.engineSince,s=e.session!==null&&a!==void 0&&o!==void 0&&a!==o,c=mf(ep({...e,session:t,sessionId:t.id,status:n,engineSince:Number.isFinite(r)?r:e.engineSince,...i?{lastFrameAt:null}:{},...s&&e.safeguardFallback?.live===!0?{safeguardFallback:Nu(e.safeguardFallback,{type:`engine_start`})}:{}}));if(!i)return c;let l=Date.parse(t.updatedAt);return Number.isFinite(l)&&l>(c.lastFrameAt??0)?{...c,lastFrameAt:l}:c}function ep(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??Cp(e.inputJson)}):e);return t?{...e,items:n}:e}function tp(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=!ff(e.status),o=t.at===void 0?NaN:Date.parse(t.at);return{...lp(dp(e,i),r),status:`running`,statusText:null,hasOptimisticUser:!0,lastLocalPromptId:r.id,...a?{lastFrameAt:Number.isFinite(o)?o:null}:{}}}function np(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=up(e,n,{...t,failed:!0}))}return r.activeTurnId!==null||r.status!==`running`&&r.status!==`waiting_permission`?r:{...r,status:`error`,statusText:null}}function rp(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&&ip(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 ip(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 ap(e,t){let n=de(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=de(r.text);if(i.taskId===n.taskId&&(i.toolUseId??null)===(n.toolUseId??null))return!0}return!1}var op=!1;function sp(e,t){if(op)return t(e);op=!0;try{return t({...e,items:e.items.slice(),index:new Map(e.index),seen:new Set(e.seen),subpathParents:{...e.subpathParents}})}finally{op=!1}}var cp=new Set([`Task`,`Agent`,`Workflow`]);function lp(e,t){let n=e.hasSubagentItems||t.kind===`tool`&&cp.has(t.name);if(op)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 up(e,t,n){if(op)return e.items[t]=n,e;let r=e.items.slice();return r[t]=n,{...e,items:r}}function dp(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 fp(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:up(e,r,a)}function pp(e,t){return e.seen.has(t)?e:op?(e.seen.add(t),e):{...e,seen:new Set(e.seen).add(t)}}function mp(e){return{...e,nextId:e.nextId+1}}function hp(e,t,n){let r=gp(n);return r?`${t}:${r}`:`${t}:${e.nextId}`}function gp(e){return typeof e.uuid==`string`&&e.uuid?e.uuid:null}function _p(e){return typeof e.parent_tool_use_id==`string`&&e.parent_tool_use_id?e.parent_tool_use_id:null}function vp(e){return typeof e.timestamp==`string`?e.timestamp:null}function yp(e){return typeof e==`string`?e:``}function bp(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function xp(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 Sp(e){return e.map(e=>e.type===`text`?e.text??``:``).filter(Boolean).join(`
|
|
87
|
-
`)}function Cp(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 wp(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(`
|
|
88
|
-
`):``}function Tp(e){return!Number.isFinite(e)||e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function Ep(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 Dp(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 Op(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 kp(e,t=Date.now()){if(e==null||!Number.isFinite(e)||e<=0)return``;let n=Math.floor(Math.max(0,t-e)/1e3);if(n<45)return`just now`;let r=(e,t)=>`${e} ${t}${e===1?``:`s`} ago`,i=Math.floor(n/60);if(i<60)return r(Math.max(1,i),`minute`);let a=Math.floor(i/60);if(a<24)return r(a,`hour`);let o=Math.floor(a/24);return o<30?r(o,`day`):new Date(e).toLocaleDateString()}function Ap(e){if(!e)return;let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleString()}function jp(e){if(!e)return``;let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``}function Mp(e){let t=e.replace(/[\\/]+$/,``),n=t.split(/[\\/]/);return n[n.length-1]||t}function Np(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function Pp(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function H(...e){return e.filter(Boolean).join(` `)}function Fp(e,t=6){let n=e.trim().split(/\s+/).filter(Boolean);return n.length<=t?n.join(` `):`${n.slice(0,t).join(` `)}…`}function Ip(e){return e.title?.trim()||e.firstPrompt?.trim().replace(/\s+/g,` `)||`Session ${e.id.slice(0,8)}`}function Lp(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function Rp(e,t=Date.now()){return{id:e,title:null,providerId:null,variantId:null,projectId:null,model:null,permissionMode:null,projectDir:null,createdAt:t}}function zp(e,t){if(!t)return e;let n={...e};return!e.model&&!e.providerId&&t.model&&(n.model=t.model,n.providerId=t.providerId??null,n.variantId=null),!e.effort&&t.effort&&(n.effort=t.effort),!e.projectDir&&t.cwd&&(n.projectDir=t.cwd),n}var Bp=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Vp(e){return Bp.test(e)}function Hp(){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 Up(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`){let t=e.randomUUID();if(Vp(t))return t}let t=Hp();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 Wp(e){return e.title?.trim()||`New chat`}function Gp(e){let t=e.trim().replace(/\s+/g,` `).slice(0,500);return t.length>0?t:null}function Kp(e,t){return typeof t==`string`&&e[t]!==void 0}var qp=`oonacode.uiPrefs`;function Jp(e){if(!e)return null;try{let t=e.getItem(qp);return t?Tc(JSON.parse(t)):null}catch{return null}}function Yp(e,t){if(e)try{e.setItem(qp,JSON.stringify(t))}catch{}}function Xp(e,t){let n=t.notifications?{...e.notifications,...t.notifications}:e.notifications;return Tc({...e,...t,notifications:n})}function Zp(e){let t=e;return!t||typeof t!=`object`?!1:t.status===400||t.status===422||t.code===`bad_request`}function Qp(e){let{row:t,panel:n,viewport:r}=e,i=e.gap??6,a=e.margin??8,o=Math.max(0,Math.min(e.width??352,r.width-2*a)),s=Math.max(0,Math.min(e.maxHeight??448,r.height-2*a)),c=Math.min(e.height>0?e.height:200,s),l=Math.max(a,Math.min(t.top,r.height-a-c)),u=n.right+i;if(u+o<=r.width-a)return{left:u,top:l,width:o,maxHeight:s,side:`right`};let d=n.left-i-o;if(d>=a)return{left:d,top:l,width:o,maxHeight:s,side:`left`};let f=Math.max(a,Math.min(t.left,r.width-a-o)),p=r.height-a-(t.bottom+i),m=t.top-i-a;if(p>=c||p>=m)return{left:f,top:t.bottom+i,width:o,maxHeight:Math.max(0,Math.min(s,p)),side:`below`};let h=Math.max(0,Math.min(s,m));return{left:f,top:t.top-i-Math.min(c,h),width:o,maxHeight:h,side:`above`}}function $p(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 em(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 tm(e,t){return!e.ids.includes(t)||e.activeId===t?e:{ids:e.ids,activeId:t}}function nm(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 rm(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 im(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 am(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?tm(e,o):e}function om(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 sm(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 cm(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 lm(e){return $p([...e.openTabs??[],...e.draftTabs??[]],e.activeTab??null)}function um(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 dm(e,t){for(let n of new Set([...Object.keys(e),...Object.keys(t)]))if(e[n]!==t[n])return!0;return!1}function fm(e,t,n,r={}){let i=om(e,n??{},r);return!!(um(t.openTabs??[],i.openTabs)||um(t.draftTabs??[],i.draftTabs)||dm(t.draftTitles??{},i.draftTitles)||(t.activeTab??null)!==e.activeId||n&&dm(t.remoteTabs??{},i.remoteTabs))}function pm(e){return!e||e.text.length===0&&e.attachments.length===0&&(e.replies?.length??0)===0}function mm(e,t){if(!e||e.text!==t.text||e.attachments.length!==t.attachments.length)return!1;let n=e.replies??[],r=t.replies??[];return n.length!==r.length||!n.every((e,t)=>e===r[t])?!1:e.attachments.every((e,n)=>e===t.attachments[n])}function hm(e,t,n){if(pm(n)){if(e[t]===void 0)return e;let{[t]:n,...r}=e;return r}return mm(e[t],n)?e:{...e,[t]:n}}function gm(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 _m(e,t){return e?`From \`${e}\`:`:t===`assistant`?`From your earlier reply:`:t===`user`?`From my earlier message:`:t&&typeof t==`object`&&t.tool?`From the output of ${t.tool}:`:null}var vm=/^From (?:`[^`]+`|your earlier reply|my earlier message|the output of .+):$/,ym=`Replying to an earlier part of this conversation — the quoted lines are from the chat history above, not new input:`;function bm(e,t=null,n=null){let r=e.replace(/\r\n?/g,`
|
|
89
|
-
`).replace(/\n{3,}/g,`
|
|
90
|
-
|
|
91
|
-
`).replace(/^(?:[ \t]*\n)+/,``).replace(/\s+$/,``);r.length>1500&&(r=`${r.slice(0,1499).trimEnd()}…`);let i=r.split(`
|
|
92
|
-
`).map(e=>e===``?`>`:`> ${e}`),a=_m(t,n);return a&&i.unshift(`> ${a}`,`>`),i.join(`
|
|
93
|
-
`)}function xm(e){let t=e.split(`
|
|
94
|
-
`),n=+(t[0]===`Replying to an earlier part of this conversation — the quoted lines are from the chat history above, not new input:`),r=[];for(;;){let e=n;for(;n<t.length&&/^>( |$)/.test(t[n]);)n++;if(n===e)break;let i=t.slice(e,n).map(e=>e.replace(/^> ?/,``)).join(`
|
|
95
|
-
`).trim();i!==``&&r.push(i);let a=n;for(;a<t.length&&t[a].trim()===``;)a++;if(a<t.length&&/^>( |$)/.test(t[a]))n=a;else break}return r.length===0?null:{quotes:r,reply:t.slice(n).join(`
|
|
96
|
-
`).trim()}}function Sm(e){let t=e.split(`
|
|
97
|
-
`);return(vm.test(t[0].trim())?t.slice(1):t).join(`
|
|
98
|
-
`).trim()}function Cm(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 wm(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}function Tm(e,t=8){let n=e.replace(/\s+/g,` `).trim().split(` `).filter(e=>e!==``),r=n.slice(0,t).join(` `);return n.length>t?`${r}…`:r}function Em(e,t){let n=t.trim();if(e.length===0)return n;let r=e.join(`
|
|
99
|
-
|
|
100
|
-
`);return n?`${ym}\n${r}\n\n${n}`:`${ym}\n${r}`}function Dm(e){return e.replace(/\s+/g,` `).trim().toLowerCase()}function Om(e,t){let n=Dm(Sm(t).replace(/…$/,``)).slice(0,80);if(n.length<3)return null;for(let t=e.length-1;t>=0;t--){let r=e[t];if(Dm(r.text).includes(n))return r.id}return null}function km(e=500){let t=Am(e);return{size:t,rendered:t}}function Am(e){return Number.isFinite(e)?Math.max(1,Math.round(e)):500}function jm(e,t){let n=Am(t);return e.size===n&&e.rendered===n?e:{size:n,rendered:n}}function Mm(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 Nm(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 Pm(e){return e.rendered===e.size?e:{size:e.size,rendered:e.size}}function Fm(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 Im(e,t=48){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function Lm(e,t=24){return e.scrollTop<=t}var Rm=2e3;function zm(e,t=Rm,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 Bm=3e3;function Vm(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 Hm(e){return e.credits.monthlyGrant>0?e.credits.monthlyGrant:Bm}function Um(e){if(!e)return`ok`;let{balance:t}=e.credits;return t<=0?`empty`:t<=Hm(e)*.1?`low`:`ok`}function Wm(e){if(!e)return null;let t=Um(e);if(t===`ok`)return null;let n=Gm(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 Gm(e){return e.toLocaleString(`en-US`,{maximumFractionDigits:0})}function Km(e,t){return!t||t.providerId!==`oonacode`?!1:(t.poolCredits??0)!==(e?.providerId===`oonacode`?e.poolCredits??0:0)}var qm=[`desktop`,`host`,`cli`,`engine`],Jm={desktop:`Desktop app`,host:`Host service`,cli:`oona CLI`,engine:`Agent engine`},Ym={available:!1,components:[],version:``,channel:``,publishedAt:``,notes:``},Xm=/(\d+(?:\.\d+)*(?:[-+][0-9A-Za-z.-]+)?)\s*$/;function Zm(e){return typeof e.version==`string`&&e.version.trim()?e.version.trim():Xm.exec(e.name??``)?.[1]??null}function Qm(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 $m(e,t){let n=Qm(e),r=Qm(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 eh(e,t){return!e||!t?!1:$m(e,t)===1}function th(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 nh(e,t,n){if(!e||!e.version)return Ym;let r=(e.assets??[]).filter(e=>typeof e?.kind==`string`&&e.kind),i=new Map;for(let e of r)n&&e.platform&&e.platform!==n||i.has(e.kind)||i.set(e.kind,e);let a=e=>!!n&&!i.has(e)&&r.some(t=>t.kind===e),o=[];for(let n of qm){let r=t[n];if(typeof r!=`string`||!r.trim())continue;let s=i.get(n);if(!s&&a(n))continue;let c=(s?Zm(s):null)??(n===`desktop`?e.version:null);!c||!eh(c,r)||o.push({component:n,label:Jm[n],current:r.trim(),latest:c,url:s?.url?s.url:null,notes:typeof s?.notes==`string`?s.notes:``})}return{available:o.length>0,components:o,version:e.version,channel:e.channel,publishedAt:e.publishedAt,notes:e.notes}}function rh(e,t=null,n=null){return!e||!e.trim()?null:`${e.trim().replace(/\/+$/,``)}${oc(t,n)}`}function ih(e){return e.bridge?.appChannel??e.info?.cliChannel??`stable`}function ah(e,t){return sc(e,t)}var oh={phase:`idle`,version:``,percent:0,transferred:0,total:0,bytesPerSecond:0,error:``,notice:``};function sh(e){return e===`ready`||e===`installing`}function ch(e,t){let n=t.version||e.version;switch(t.phase){case`checking`:return sh(e.phase)?e:{...oh,phase:`checking`,version:n};case`available`:return sh(e.phase)?e:{...oh,phase:`available`,version:n};case`not-available`:return sh(e.phase)?e:{...oh,version:n};case`downloading`:return{...oh,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{...oh,phase:`ready`,version:n,percent:100};case`installing`:return{...oh,phase:`installing`,version:n,percent:100,notice:t.message||(e.phase===`installing`?e.notice:``)};case`error`:return{...oh,phase:`error`,version:n,error:t.message}}}function lh(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 uh=[`B`,`KB`,`MB`,`GB`];function dh(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=e,n=0;for(;t>=1024&&n<uh.length-1;)t/=1024,n+=1;return`${t>=10||n===0?Math.round(t):t.toFixed(1)} ${uh[n]}`}function fh(e){return!Number.isFinite(e)||e<=0?``:`${dh(e)}/s`}var ph=[`host`,`cli`,`engine`];function mh(e,t,n={}){let r=e.length>0,i=n.shellEngaged===!0||e.includes(`desktop`)||!r&&!n.checked,a=r&&e.some(e=>ph.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 hh(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 gh={running:!1,message:``,failed:!1};function _h(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 vh(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 yh(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 bh(){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 xh=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})),U=o(((e,t)=>{t.exports=xh()}))(),Sh=2e3,Ch=2500;function wh(){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:[],scheduledTasksVersion:0,conversationsChange:Pl,conversationsSelectId:null,chatConversations:{},chatAboutsChange:xl,assignProjectSessionId:null,projectsStartNew:!1,projectsSelectId:null,page:null,pinnedRows:{},currentSessionId:null,tabs:$p(),drafts:{},pendingRouting:{},transcripts:{},transcriptLoading:{},files:{},unsent:{},composerQuote:null,jumpTo:null,chatSearchRequest:null,windows:{},modelBoundaries:{},providers:[],activeProviderId:null,models:{},agentTools:null,settings:null,prefs:{...dc},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,toolInstalls:{},doctor:null,remote:{hosts:[],supported:!0,loading:!1,loaded:!1,sessions:{},sessionOwners:{},tabs:{},reason:null,stale:!1},update:Ym,updateChecking:!1,updateInstall:oh,terminalUpdate:gh,updateDismissed:null,toasts:[],ui:{sidebarOpen:!0,dialog:`none`,connectProviderId:null,claudeLoginMode:null,oauthLoginProviderId:null,settingsSection:null}}}function Th(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:gm(e.unsent,t.ids),currentSessionId:t.activeId}}function Eh(e,t){return e.windows[t]??km(e.prefs.transcriptWindowSize)}function Dh(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=jm(a,t);n!==a&&(r=!0),i[e]=n}return r?i:e}function Oh(e,t){return{...e,prefs:t,windows:Dh(e.windows,t.transcriptWindowSize)}}function kh(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?sf(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]:sf(s,{type:`session`,session:t.session})}:e.transcripts;return{...e,sessions:r,sessionsTotal:n>=0?e.sessionsTotal:e.sessionsTotal+1,transcripts:c,...e.pinnedRows[t.session.id]?{pinnedRows:{...e.pinnedRows,[t.session.id]:t.session}}:{}}}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,page:null,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)?e:n.active===t.path?e.page?{...e,page:null}:e:{...e,page:null,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,{[t.id]:g,..._}=e.chatConversations,{[t.id]:v,...y}=e.pinnedRows,b={...e,chatConversations:_,pinnedRows:y,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 Th(b,nm(b.tabs,t.id))}case`projects`:return{...e,projects:t.projects};case`scheduled_tasks_changed`:return{...e,scheduledTasksVersion:e.scheduledTasksVersion+1};case`conversations_changed`:return{...e,conversationsChange:{seq:e.conversationsChange.seq+1,conversationIds:t.conversationIds,sessionIds:t.sessionIds}};case`conversations_select`:return{...e,conversationsSelectId:t.conversationId};case`chat_abouts_changed`:return{...e,chatAboutsChange:{seq:e.chatAboutsChange.seq+1,sessionIds:t.sessionIds,generateAll:t.generateAll}};case`chat_conversations`:{let n=e.chatConversations[t.sessionId];return n&&JSON.stringify(n)===JSON.stringify(t.conversations)?e:{...e,chatConversations:{...e.chatConversations,[t.sessionId]:t.conversations}}}case`session_status`:{let n=e.sessions.findIndex(e=>e.id===t.sessionId),r=e.pinnedRows[t.sessionId],i=r&&r.status!==t.status?{...e,pinnedRows:{...e.pinnedRows,[t.sessionId]:{...r,status:t.status}}}:e;if(n<0||e.sessions[n].status===t.status)return i;let a=e.sessions.slice();return a[n]={...a[n],status:t.status},{...i,sessions:a}}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`page`:return e.page===t.page?e:{...e,page:t.page};case`pinned_row`:return{...e,pinnedRows:{...e.pinnedRows,[t.session.id]:t.session}};case`select_session`:{let n={...e,ui:{...e.ui,dialog:`none`}};return t.id===null?{...n,currentSessionId:null}:Th({...n,page:null},em(n.tabs,t.id))}case`close_tab`:return Th(e,nm(e.tabs,t.id));case`unsent`:{if(!e.tabs.ids.includes(t.sessionId)||t.onlyIfEmpty&&!pm(e.unsent[t.sessionId]))return e;let n=hm(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,preview:t.preview,itemId:t.itemId,seq:(e.composerQuote?.seq??0)+1}};case`chat_search_request`:return{...e,chatSearchRequest:{sessionId:t.sessionId,query:t.query,seq:(e.chatSearchRequest?.seq??0)+1}};case`chat_search_request_seen`:{let n=e.chatSearchRequest;return!n||n.seq!==t.seq||n.seen?e:{...e,chatSearchRequest:{...n,seen:!0}}}case`jump_to`:return{...e,jumpTo:{sessionId:t.sessionId,itemId:t.itemId,seq:(e.jumpTo?.seq??0)+1}};case`move_tab`:return Th(e,rm(e.tabs,t.from,t.to));case`cycle_tab`:return Th({...e,page:null},am(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 Th({...e,drafts:r},$p([...t.ids,...n],a))}case`draft_open`:return Th({...e,page:null,drafts:{...e.drafts,[t.draft.id]:t.draft}},em(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`routing_seen`:{let n=e.pendingRouting[t.session.id];if(!n||!qd(n,t.session,e.providers))return e;let{[t.session.id]:r,...i}=e.pendingRouting;return{...e,pendingRouting:i}}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]??rf(t.sessionId),r=sf(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=Eh(i,t.sessionId),n=Pm(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=Eh(e,t.sessionId),r=Mm(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=Eh(e,t.sessionId),r=Nm(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=Eh(e,t.sessionId),r=Pm(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]=jm(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`agent_tools`:return{...e,agentTools:t.catalogue};case`settings`:{let n={...e,settings:t.settings};return t.settings.uiPrefs&&(n=Oh(n,Tc(t.settings.uiPrefs)),n.prefsBackend=`brain`),n}case`prefs`:return Oh(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`tool_install`:{let{[t.frame.sessionId]:n,...r}=e.toolInstalls;return{...e,toolInstalls:t.frame.phase===`done`?r:{...r,[t.frame.sessionId]:t.frame}}}case`tool_install_dismiss`:{let{[t.sessionId]:n,...r}=e.toolInstalls;return{...e,toolInstalls:r}}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=ch(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,projectsSelectId:null};case`projects_select`:return{...e,projectsStartNew:!1,projectsSelectId:t.projectId};case`dialog`:return{...e,projectsStartNew:t.dialog===`projects`&&e.projectsStartNew,projectsSelectId:t.dialog===`projects`?e.projectsSelectId:null,conversationsSelectId:t.dialog===`conversations`?e.conversationsSelectId:null,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 Ah(e){return e.type===`subagent_activity`||e.type===`agent`&&j(e.message)}function jh(){return typeof document<`u`&&document.visibilityState===`hidden`}function Mh(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:`routing_seen`,session:e.session},{type:`transcript`,sessionId:e.session.id,action:{type:`frame`,frame:e,receivedAt:t}}];case`session_status`:return[{type:`session_status`,sessionId:e.sessionId,status:e.status}];case`conversations_changed`:return[{type:`conversations_changed`,conversationIds:e.conversationIds,sessionIds:e.sessionIds}];case`chat_about_changed`:return[{type:`chat_abouts_changed`,sessionIds:e.sessionIds,generateAll:e.generateAll}];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`tool_pack_install`:return[{type:`tool_install`,frame: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 Nh=36e5,Ph=1500;function Fh(e,t,n){if(e.type===`welcome`||e.type===`conversations_changed`||e.type===`chat_about_changed`)return[];let r=`sessionId`in e?e.sessionId:e.type===`session_state`?e.session.id:void 0;return typeof r==`string`&&r!==t?[]:Mh(e,n)}function Ih(e,t){return e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)}var Lh=(0,v.createContext)(null);function W(){let e=(0,v.useContext)(Lh);if(!e)throw Error(`useApp must be used inside <AppProvider>`);return e}function Rh(){let{state:e}=W();return e.currentSessionId?e.transcripts[e.currentSessionId]??null:null}function zh(){let{state:e}=W(),t=e.currentSessionId;return t?e.transcripts[t]?.session??e.sessions.find(e=>e.id===t)??null:null}function Bh(){let{state:e}=W(),t=e.currentSessionId;return t?e.drafts[t]??null:null}function Vh(){return typeof window<`u`&&window.oonacode?`desktop`:`host`}var Hh=0;function Uh(e){return e.status===401&&/password|credential/i.test(e.message)}function Wh(){try{return typeof window<`u`?window.localStorage:null}catch{return null}}function Gh({api:e,socket:t,relay:n=null,initialSessionId:r,onUnauthorized:i,storage:a,fetchImpl:o,reportError:s,streamBatchMs:c=Gd(),children:l}){let[u,d]=(0,v.useReducer)(kh,void 0,wh),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?Wh():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 Map),T=(0,v.useRef)(new Map),E=(0,v.useRef)(new Set),D=(0,v.useRef)(new Map),O=(0,v.useRef)(new Map),k=(0,v.useRef)(()=>{}),A=(0,v.useRef)(null);A.current===null&&(A.current=zm(()=>k.current())),(0,v.useEffect)(()=>()=>A.current?.dispose(),[]);let j=(0,v.useMemo)(()=>{let r=(e,t)=>{Hh+=1,d({type:`toast`,toast:{id:`toast-${Hh}`,kind:e,text:t}})},i=(e,t)=>{if(e instanceof zd&&e.isUnauthorized&&!Uh(e)){g.current?.();return}let n=t?`${t}: ${Lp(e)}`:Lp(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=>Kp(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:Lp(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()=>{if(e.listAgentTools)try{let{catalogue:t}=await e.listAgentTools();t&&d({type:`agent_tools`,catalogue:t})}catch(e){e instanceof zd&&e.isUnauthorized&&g.current?.()}},E=async(t={})=>{if(!e.listConversations)return`unsupported`;try{return(await e.listConversations(t)).conversations}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},j=async t=>{try{d({type:`models`,providerId:t,response:await e.listModels({providerId:t})})}catch(e){i(e,`Models`)}},M=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`)}},N=async()=>{try{d({type:`settings`,settings:await e.getSettings()})}catch(e){i(e,`Settings`)}},P=async()=>{try{d({type:`account`,account:await e.getAccount()})}catch(e){d({type:`account_unavailable`}),i(e,`Account`)}},F=async()=>{try{d({type:`credentials`,credentials:(await e.listCredentials()).credentials})}catch(e){if(e instanceof zd&&(e.code===`vault_locked`||e.status===423)){d({type:`credentials`,credentials:[]});return}i(e,`Credentials`)}},I=async()=>{try{d({type:`claude_subscription`,status:await e.claudeSubscriptionStatus()})}catch(e){e instanceof zd&&e.isUnauthorized&&g.current?.(),d({type:`claude_subscription`,status:null})}},L=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginStart(t)})}catch(e){r(`error`,`Sign-in: ${Lp(e)}`)}},ee=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginState(t)})}catch{}},te=async t=>{try{d({type:`oauth_login`,state:await e.oauthLoginCancel(t)})}catch(e){r(`error`,`Sign-in: ${Lp(e)}`)}},ne=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginState()})}catch{}},re=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: ${Lp(e)}`),null}},ie=async t=>{try{return d({type:`claude_login`,state:await e.claudeLoginCode({code:t})}),!0}catch(e){return r(`error`,`Claude login: ${Lp(e)}`),!1}},ae=async()=>{try{d({type:`claude_login`,state:await e.claudeLoginCancel()})}catch(e){r(`error`,`Claude login: ${Lp(e)}`)}},oe=async()=>{try{let t=await e.info();x.current=t,d({type:`info`,info:t})}catch(e){i(e,`Host`)}},se=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,Ph))}},ce=async()=>{if(e.plan)try{let{plan:t}=await e.plan();d({type:`plan`,plan:t})}catch{d({type:`plan`,plan:null})}};k.current=()=>void ce();let le=()=>{e.plan&&A.current?.request()},ue=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){Ud(e)?d({type:`remote_unsupported`}):(d({type:`remote_loaded`}),e instanceof zd&&e.isUnauthorized&&g.current?.())}},de=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 Ud(e)?d({type:`remote_unsupported`}):i(e,`Remote sessions`),null}},fe=async e=>{await de(e)},pe=e=>{let t=f.current;if(t.drafts[e]||t.remote.tabs[e]||D.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},he=e=>{if(e!==null){let t=pe(e);if(t!==null){xe(t,e);return}}d({type:`select_session`,id:e})},ge=e=>e?f.current.remote.tabs[e]??null:null,_e=(e,t)=>D.current.get(e)?.send(t)??!1,ve=e=>{let t=ge(e);r(`error`,`${t?.hostName??`That PC`} is offline — this transcript is read-only until it comes back.`)},ye=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 zd&&e.isUnauthorized?g.current?.():Ud(e)||i(e,`Remote history`)}finally{d({type:`transcript_loading`,sessionId:n,loading:!1})}}},be=e=>{O.current.get(e)?.dispose(),O.current.delete(e);let t=D.current.get(e);t&&(D.current.delete(e),t.detach(),d({type:`remote_tab_closed`,sessionId:e}))},xe=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 de(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||ye(e,t),!n){d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:`This window cannot bridge to other PCs yet.`});return}D.current.get(t)?.detach(),O.current.get(t)?.dispose();let l=Kd({isStreamFrame:Ah,deliver:e=>{for(let t of e)u(t)},batchMs:c,isHidden:jh});O.current.set(t,l);let u=e=>{let n=Date.now(),r=e.type===`session_state`?Ih(f.current,e.session.id):void 0;for(let r of Fh(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`&&Km(r,e.session)&&le()},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})}});D.current.set(t,p),d({type:`remote_tab_state`,sessionId:t,state:`unavailable`,detail:null,pairingId:p.pairingId})},Se=async t=>{let n=Xp(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`){Yp(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`}):Yp(y.current,n)}catch(e){if(Zp(e)){d({type:`prefs_backend`,backend:`local`}),Yp(y.current,n);return}e instanceof zd&&e.isUnauthorized?g.current?.():Yp(y.current,n)}});r.tail=a.catch(()=>void 0),await a},Ce=(e,t,n)=>{let r=f.current.prefs.pinned;Cc(r,e,t)!==n&&Se({pinned:wc(r,e,t,n)})},we=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}})},Ee=e=>{d({type:`session_upsert`,session:e}),he(e.id),h()},R=async t=>{try{let n=await e.createSession(t);return Ee(n),n}catch(e){return i(e,`New session`),null}},De=(e={})=>{let t=Rp(Up()),n=e.title?Gp(e.title):null,r=e.projectId?f.current.vaultProjects.find(t=>t.id===e.projectId):void 0;d({type:`draft_open`,draft:zp({...t,...n?{title:n}:{},...e.projectId?{projectId:e.projectId}:{}},r?.chatDefaults)})},Oe=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=Rp(Up());d({type:`draft_open`,draft:i}),await xe(e,i.id,{draft:!0})},ke=async n=>{let r=f.current,i=hu(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??`default`,...n.effort&&me(n.effort)?{effort:n.effort}:{},...eu(n.toolPacks),...Sd(n.modelSkills)},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},Ae=async()=>e.scanClaudeSessions(),z=async(t,n)=>{if(!e.searchImportChats)return null;try{return await e.searchImportChats(t,n)}catch{return null}},je=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},Me=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}},Ne=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 we(t)),n}catch(e){return i(e,`Sync`),null}},Pe=async(e=!1)=>{let t=f.current,n=t.account?.gatewayUrl??t.settings?.gatewayUrl??null,i=typeof window<`u`?window.oonacode:void 0,a=t.info?.platform??i?.platform??null,o=a?{platform:a,arch:t.info?.arch??null}:null,s=rh(n,ih({bridge:i,info:t.info}),o),c=e&&i?.checkForUpdates?i.checkForUpdates():null;if(c&&c.catch(()=>void 0),!s){e&&!c&&r(`info`,`Set a gateway URL in Settings to check for updates`);return}d({type:`update_checking`,checking:!0});try{let a=i?.fetchLatestRelease?await i.fetchLatestRelease(n):await(async()=>{let e=await(b.current??(e=>fetch(e,{credentials:`omit`})))(s);if(!e.ok)throw Error(`release feed returned ${e.status}`);return e.json()})(),o=x.current??t.info,c=nh(th(a),{desktop:i?.appVersion??null,host:o?.appVersion??t.connection.appVersion??null,cli:o?.cliVersion??null,engine:o?.engine.version??null},o?.platform??i?.platform??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: ${Lp(t)}`)}};return{refreshInfo:oe,refreshSessions:u,scanClaudeSessions:Ae,importClaudeSessions:je,searchImportChats:z,refreshSessionLink:Me,syncSessionDown:Ne,refreshProjects:h,refreshProviders:v,refreshAgentTools:C,refreshModels:j,refreshSettings:N,refreshAccount:P,refreshCredentials:F,refreshClaudeSubscription:I,startClaudeLogin:re,submitClaudeLoginCode:ie,cancelClaudeLogin:ae,refreshClaudeLogin:ne,startOauthLogin:L,refreshOauthLogin:ee,cancelOauthLogin:te,refreshHosts:ue,refreshPlan:ce,refreshPlanSoon:le,refreshHostSessions:fe,openRemoteSession:xe,newRemoteTab:Oe,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){Ud(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:he,closeTab(e){be(e),d({type:`close_tab`,id:e})},rememberUnsent(e,t,n){d({type:`unsent`,sessionId:e,message:t,onlyIfEmpty:n})},quoteIntoComposer(e,t,n){d({type:`composer_quote`,sessionId:e,text:t,preview:n?.preview??Tm(t.replace(/^> ?/gm,``)),itemId:n?.itemId??null})},jumpToItem(e,t){d({type:`jump_to`,sessionId:e,itemId:t})},async searchTranscripts(t){if(!e.searchEntries)return null;try{return await e.searchEntries(t)}catch{return null}},openChatWithSearch(e,t){he(e),d({type:`chat_search_request`,sessionId:e,query:t})},moveTab(e,t){d({type:`move_tab`,from:e,to:t})},cycleTab(e){d({type:`cycle_tab`,delta:e})},newTab:De,createSession:R,reportDiagnostic(e,t){_.current?.(Error(e),{source:`diagnostic`,...t})},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}),Ce(`chat`,n,!1)}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){try{let n=await e.createVaultProject(t);return await m(),n}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 listScheduledTasks(t){if(!e.listScheduledTasks)return[];try{return(await e.listScheduledTasks(t)).tasks}catch{return[]}},async updateScheduledTask(t,n){if(!e.updateScheduledTask)return!1;try{return await e.updateScheduledTask(t,n),!0}catch(e){return i(e,`Scheduled task`),!1}},async githubLink(t){let n=t===`get`?e.getGithubLink:t===`start`?e.startGithubLink:t===`cancel`?e.cancelGithubLink:e.unlinkGithub;if(!n)return null;try{return await n.call(e)}catch(e){return t!==`get`&&i(e,`GitHub`),null}},async deleteScheduledTask(t){if(!e.deleteScheduledTask)return!1;try{return await e.deleteScheduledTask(t),!0}catch(e){return i(e,`Scheduled task`),!1}},listConversations:e=>E(e),async refreshChatConversations(e){if(l(e)||f.current.remote.tabs[e])return;let t=await E({sessionId:e});Array.isArray(t)&&d({type:`chat_conversations`,sessionId:e,conversations:t})},async conversationHistory(t){if(!e.getConversation)return null;try{return await e.getConversation(t)}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),null}},async conversationAction(t,n,r){if(!e.conversationAction)return a(`manage conversations`),null;try{return(await e.conversationAction(t,n,r)).conversation}catch(e){return i(e,`Conversation`),null}},async stopAllConversations(){if(!e.stopAllConversations)return a(`stop conversations`),null;try{let t=await e.stopAllConversations();return r(`success`,t.paused===0&&t.interrupted===0?`No conversation was running.`:`Paused ${t.paused} conversation${t.paused===1?``:`s`}`+(t.interrupted>0?` and stopped ${t.interrupted} running turn${t.interrupted===1?``:`s`}.`:`.`)),t}catch(e){return i(e,`Stop all conversations`),null}},async cancelChatMessage(t){if(!e.cancelChatMessage)return a(`withdraw messages between chats`),!1;try{let{cancelled:n}=await e.cancelChatMessage(t);return n||r(`info`,`That message was already delivered, so it stays.`),n}catch(e){return i(e,`Withdraw message`),!1}},openConversations(e){d({type:`conversations_select`,conversationId:e??null}),d({type:`dialog`,dialog:`conversations`})},async listChatAbouts(){if(!e.listChatAbouts)return`unsupported`;try{return await e.listChatAbouts()}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},async listCommands(t){if(f.current.remote.tabs[t])return`unsupported`;let n=s(t);try{return n?e.listCommands?await e.listCommands(n.projectDir?{cwd:n.projectDir}:{}):`unsupported`:e.listSessionCommands?await e.listSessionCommands(t):`unsupported`}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},async listSkills(){if(!e.listSkills)return`unsupported`;try{return await e.listSkills()}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},async removeSkill(t){if(!e.deleteSkill)return a(`remove a skill`),!1;try{return(await e.deleteSkill(t)).removed}catch(e){return i(e,`Remove skill`),!1}},async scanClaudeSkills(){if(!e.scanClaudeSkills)return a(`import skills`),null;try{return await e.scanClaudeSkills()}catch(e){return i(e,`Skills in Claude Code`),null}},async importClaudeSkills(t,n){if(!e.importClaudeSkills)return a(`import skills`),null;try{return await e.importClaudeSkills({keys:t,...n?{overwrite:!0}:{}})}catch(e){return i(e,`Import skills`),null}},async getChatAbout(t){if(l(t)||f.current.remote.tabs[t]||!e.getChatAbout)return`unsupported`;try{return await e.getChatAbout(t)}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},async updateChatAbout(t,n){if(!e.updateChatAbout)return a(`edit a chat’s about`),null;let r=n?.trim()??``;try{return await e.updateChatAbout(t,{about:r===``?null:r})}catch(e){return i(e,`About`),null}},async regenerateChatAbout(t){if(!e.regenerateChatAbout)return{ok:!1,error:`OonaCode on this PC is too old to write abouts. Update it first.`,about:null};try{let n=await e.regenerateChatAbout(t);return{ok:n.ok,error:n.ok?null:n.error??`The about could not be written.`,about:n.about}}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),{ok:!1,error:Lp(e),about:null}}},async generateAllChatAbouts(){if(!e.generateAllChatAbouts)return a(`write abouts for every chat`),null;try{return await e.generateAllChatAbouts()}catch(e){return i(e,`Generate for all chats`),null}},async stopGenerateAllChatAbouts(){if(!e.stopGenerateAllChatAbouts)return a(`stop writing abouts`),null;try{return await e.stopGenerateAllChatAbouts()}catch(e){return i(e,`Stop generating abouts`),null}},openChatAbouts(){d({type:`dialog`,dialog:`chat-abouts`})},async deleteVaultProject(t){try{await e.deleteVaultProject(t),Ce(`project`,t,!1);let n=f.current.page;return n?.kind===`project`&&n.projectId===t&&d({type:`page`,page:{kind:`projects`}}),await m(),await u(),!0}catch(e){return i(e,`Project`),!1}},async setSessionProject(t,n){if(l(t)){let e=f.current.drafts[t],r=n?f.current.vaultProjects.find(e=>e.id===n):void 0,i=e?zp({...e,projectId:n},r?.chatDefaults):null;return d({type:`draft_patch`,id:t,patch:i?{projectId:n,model:i.model,providerId:i.providerId,variantId:i.variantId,projectDir:i.projectDir,effort:i.effort??null}:{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`})},openProjectSettings(e){d({type:`projects_select`,projectId:e}),d({type:`dialog`,dialog:`projects`})},openPage(e){d({type:`page`,page:e})},closePage(){d({type:`page`,page:null})},setPinned:Ce,openAssignProject(e){d({type:`assign_project_dialog`,sessionId:e})},renameTab(t,n){let r=Gp(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)){De();return}try{let n=await e.forkSession(t,{});d({type:`session_upsert`,session:n}),he(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&&ge(c)!==null&&p)p.model&&_e(c,{type:`set_model`,sessionId:c,model:p.model,...p.providerId?{providerId:p.providerId}:{},...p.variantId===null?{}:{variantId:p.variantId}}),p.permissionMode&&_e(c,{type:`set_permission_mode`,sessionId:c,mode:p.permissionMode}),p.title&&_e(c,{type:`set_title`,sessionId:c,title:p.title});else if(p)try{await ke(p)}catch(e){return i(e,`New chat`),u(`session_create_failed`,Lp(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}}),ge(c))return _e(c,{type:`prompt`,sessionId:c,requestId:l,text:n,...r.length>0?{attachments:r}:{},...a?{options:a}:{}})?!0:(ve(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`,Lp(e))}return!0},respondPermission(e,n,i){let a=i??o();if(a&&!l(a)){if(!(ge(a)?_e(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(ge(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 sendQueuedNow(t,n){let r=n??o();if(!r||l(r))return null;if(ge(r))return`Send now is done on the PC that runs the chat`;try{return(await e.sendQueuedNow(r,t)).sent?null:Te.alreadyRead}catch(e){return e instanceof zd&&e.code===`not_found`?Te.alreadyRead:e instanceof Error?e.message:String(e)}},async interrupt(n){let r=n??o();if(r&&!l(r)){if(ge(r)){_e(r,{type:`interrupt`,sessionId:r})||ve(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&&M(n,e,r),s(i)){d({type:`draft_patch`,id:i,patch:{model:e,...n?{providerId:n}:{},...r===void 0?{}:{variantId:r}}});return}d({type:`transcript`,sessionId:i,action:{type:`model_picked`}});let a=f.current.sessions.find(e=>e.id===i),c=f.current.transcripts[i]?.session?.model??a?.model??null,l=f.current.pendingRouting[i];l!==void 0||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??l?.providerId??a?.providerId??``,model:e,...r===void 0?{}:{variantId:r}}}):ge(i)?_e(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}ge(n)?_e(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;ge(n)?_e(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})}},async setSessionToolPacks(t,n){if(l(t))return d({type:`draft_patch`,id:t,patch:{toolPacks:{...n}}}),!0;let a=ge(t);if(a)return r(`error`,`This chat runs on ${a.hostName} — switch its tools in OonaCode on that PC.`),!1;let o=(w.current.get(t)??0)+1;w.current.set(t,o);let s=Ih(f.current,t),c=s?.toolPacks;s&&d({type:`session_upsert`,session:{...s,toolPacks:n}});try{let r=await e.updateSession(t,{toolPacks:n});return w.current.get(t)===o&&d({type:`session_upsert`,session:r}),!0}catch(e){if(w.current.get(t)===o){let e=Ih(f.current,t);if(e){let{toolPacks:t,...n}=e;d({type:`session_upsert`,session:c?{...n,toolPacks:c}:n})}}return i(e,`Tools`),!1}},async setSessionModelSkills(t,n){let a=[...n];if(l(t))return d({type:`draft_patch`,id:t,patch:{modelSkills:a}}),!0;let o=ge(t);if(o)return r(`error`,`This chat runs on ${o.hostName} — switch its skills in OonaCode on that PC.`),!1;let s=(T.current.get(t)??0)+1;T.current.set(t,s);let c=Ih(f.current,t),u=c?.modelSkills;c&&d({type:`session_upsert`,session:{...c,modelSkills:a}});try{let n=await e.updateSession(t,{modelSkills:a});return T.current.get(t)===s&&d({type:`session_upsert`,session:n}),!0}catch(e){if(T.current.get(t)===s){let e=Ih(f.current,t);if(e){let{modelSkills:t,...n}=e;d({type:`session_upsert`,session:u?{...n,modelSkills:u}:n})}}return i(e,`Skills`),!1}},async listChatSkills(t){if(f.current.remote.tabs[t])return`unsupported`;let n=s(t);try{return n?e.listChatSkills?await e.listChatSkills(n.projectDir?{cwd:n.projectDir}:{}):`unsupported`:e.listSessionChatSkills?await e.listSessionChatSkills(t):`unsupported`}catch(e){return e instanceof zd&&e.isUnauthorized&&g.current?.(),Ud(e)?`unsupported`:null}},setActiveProvider:M,async inspectProject(t){if(!e.inspectProject)return null;try{return await e.inspectProject({dir:t})}catch(e){return Ud(e)||(e instanceof zd&&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=ge(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 Ud(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:Se,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:we,async catchUpEntries(t){if(l(t))return;let n=ge(t);if(n){await ye(n.hostId,t);return}let r=f.current.transcripts[t],i=r?.lastSeq??void 0;if(i===void 0&&r?.hydrated){try{await we(t)}catch(e){e instanceof zd&&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 zd&&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:Pe,async installUpdate(){if(p.current)return;p.current=!0;let e=typeof window<`u`?window.oonacode:void 0,t=f.current,n=mh(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 se(),await Pe(!1))}catch(e){let t=Lp(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=>Jm[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: ${Lp(e)}`),p.current=!1}},dismissUpdate(){let e=f.current.update.version||null;d({type:`update_dismissed`,version:e}),Se({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`),F(),v(),ue(),`ok`}catch(e){let n=$d(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:Vh()});return d({type:`account_link`,link:t}),t.status===`error`&&r(`error`,t.message??`Could not start the sign-in`),t}catch(e){return Ud(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`&&(P(),F(),v())}catch(e){Ud(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`}}),Ud(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:Zd(n.resendAfterSec,Date.now())}}),r(`success`,`Confirmation link sent to ${t.displayEmail}`),!0}catch(e){return Ud(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.`),ue(),!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`,Lp(e)),!1}},async lockDevice(){try{let t=await e.lock();d({type:`account`,account:t})}catch(e){r(`error`,Lp(e))}},async unlock(t,n={}){try{return d({type:`account`,account:await e.unlock({password:t,...n.keepUnlocked===void 0?{}:{keepUnlocked:n.keepUnlocked}})}),F(),!0}catch(e){if(!n.onError)return i(e,`Unlock`),!1;let t=e instanceof zd&&e.isUnauthorized&&!Uh(e);return t&&g.current?.(),n.onError(e instanceof zd&&Uh(e)?`Wrong password — the vault stays locked.`:t?`Reconnecting to the OonaCode host — press Unlock again in a moment.`:`Could not unlock: ${Lp(e)}`),e instanceof zd&&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`),F(),v(),!0}catch(e){return Ud(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:Hs,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 Ud(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 Ud(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:Lp(e)}}},async addCredential(t){try{return await e.addCredential(t),r(`success`,`Credential saved to your vault`),await F(),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 F(),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`}`),P(),F()}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=Jp(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===`unauthorized`&&g.current?.(),t===`open`&&e&&(j.refreshInfo(),j.refreshVaultProjects(),j.refreshAgentTools(),d({type:`conversations_changed`,conversationIds:null,sessionIds:null}),d({type:`chat_abouts_changed`,sessionIds:null})),t===`open`&&(e=!0)}),r=(e,t)=>{_h(e,f.current.prefs)&&yh(vh(e,t),bh())},i=e=>{let t=f.current.transcripts[e]?.session??f.current.sessions.find(t=>t.id===e);return t?Ip(t):`OonaCode session`},a=e=>{let t=Date.now(),n=e.type===`session_state`?Ih(f.current,e.session.id):void 0;for(let n of Mh(e,t))d(n);if(e.type===`session_state`&&Km(n,e.session)&&j.refreshPlanSoon(),e.type===`permission_request`){let t=`${e.sessionId}:${e.request.requestId}`;if(E.current.has(t)||(E.current.size>=Sh&&E.current.clear(),E.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===`scheduled_tasks_changed`)d({type:`scheduled_tasks_changed`});else if(e.type===`session_list_changed`)j.refreshSessions(),e.reason===`deleted`&&(d({type:`session_removed`,id:e.sessionId}),j.setPinned(`chat`,e.sessionId,!1));else if(e.type===`account_changed`&&e.reason===`agent_tools`)j.refreshAgentTools();else if(e.type===`account_changed`)j.refreshAccount(),j.refreshPlan(),j.refreshProviders(),j.refreshAgentTools(),j.refreshInfo(),e.reason!==`provider`&&j.refreshCredentials(),e.reason!==`provider`&&(j.refreshHosts(),j.refreshClaudeSubscription(),j.refreshVaultProjects());else if(e.type===`welcome`){j.refreshSessions();let e=f.current.currentSessionId;e&&j.catchUpEntries(e)}},o=Kd({isStreamFrame:Ah,deliver:e=>{for(let t of e)a(t)},batchMs:c,isHidden:jh}),s=t.onAny(e=>o.push(e)),l=()=>{jh()||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,j,c]),(0,v.useEffect)(()=>{if(typeof window>`u`||typeof document>`u`)return;let e=()=>j.refreshPlanSoon(),t=()=>{document.visibilityState===`visible`&&j.refreshPlanSoon()};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,t)}},[j]),(0,v.useEffect)(()=>{j.refreshInfo(),j.refreshPlan(),j.refreshSessions(),j.refreshProjects(),j.refreshProviders(),j.refreshAgentTools(),j.refreshSettings(),j.refreshAccount(),j.refreshCredentials(),j.refreshHosts()},[j]),(0,v.useEffect)(()=>{r&&d({type:`select_session`,id:r})},[r]);let M=(0,v.useRef)(!1),N=(0,v.useRef)(!1),P=(0,v.useRef)(null),F=(0,v.useRef)(!0);(0,v.useEffect)(()=>(F.current=!0,()=>{F.current=!1}),[]);let I=u.sessionListLoaded,L=u.remote.loaded,ee=u.settings!==null,[te,ne]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(L&&ee||te)return;let e=setTimeout(()=>ne(!0),Ch);return()=>clearTimeout(e)},[L,ee,te]),(0,v.useEffect)(()=>{if(M.current||!I||!ee||!L&&!te)return;M.current=!0;let t=lm(u.prefs),n=new Set(u.sessions.map(e=>e.id)),r=cm(u.prefs).filter(({id:e})=>!n.has(e)).map(({id:e,title:t},n)=>({...Rp(e,n),title:t})),i=new Set(r.map(e=>e.id));if(t.ids.length===0)return;let a=sm(u.prefs),o=t.ids.filter(e=>a[e]!==void 0),s=e=>{let n=im(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){P.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&&j.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}N.current=!0,Promise.all(c.map(t=>e.getSession(t).then(()=>t,e=>e instanceof zd&&e.status===404?null:t))).then(e=>{N.current=!1,F.current&&s(e.filter(e=>e!==null))})},[I,L,te,ee,u.prefs,u.sessions,e,j]);let re=u.tabs,ie=u.prefs,ae=u.remote.tabs,oe=u.drafts,se=u.settings!==null;(0,v.useEffect)(()=>{if(!se||!M.current||N.current)return;if(P.current!==null){if(re===P.current)return;P.current=null}let e={};for(let t of re.ids){let n=ae[t];n&&(e[t]=n.hostId)}fm(re,ie,e,oe)&&(M.current=!0,j.savePrefs(om(re,e,oe)))},[re,ie,ae,oe,se,I,j]);let ce=u.prefs.pinned.filter(e=>e.kind===`chat`).map(e=>e.id).join(`,`),le=(0,v.useRef)(new Set),ue=u.sessions,de=u.search.trim()!==``;(0,v.useEffect)(()=>{if(!I||!se||de||ce===``)return;let t=new Set(ue.map(e=>e.id));for(let n of ce.split(`,`)){let r=f.current;t.has(n)||r.pinnedRows[n]||r.drafts[n]||r.remote.tabs[n]||le.current.has(n)||(le.current.add(n),e.getSession(n).then(e=>d({type:`pinned_row`,session:e}),e=>{e instanceof zd&&e.status===404?j.setPinned(`chat`,n,!1):le.current.delete(n)}))}},[ce,ue,I,se,de,e,j]);let fe=u.tabs.ids.join(`,`);(0,v.useEffect)(()=>{let e=fe?fe.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 j.hydrateSession(n),C.current.add(n)}catch(e){e instanceof zd&&e.isUnauthorized?g.current?.():j.toast(`error`,`Could not load session: ${Lp(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)}}},[fe,e,t,j]),(0,v.useEffect)(()=>{if(n)return()=>n.close()},[n]);let pe=u.settings?.theme??`system`,he=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=pe===`dark`?`dark`:pe===`light`?`light`:t?.matches?`dark`:`light`,r=he[n];for(let t of lc){let n=r[t];n?e.style.setProperty(`--${t}`,n):e.style.removeProperty(`--${t}`)}};if(n(),!(pe!==`system`||!t||typeof t.addEventListener!=`function`))return t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[pe,he]),(0,v.useEffect)(()=>{if(typeof document>`u`)return;let e=document.documentElement;pe===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,pe),window.oonacode?.setTheme?.(pe)},[pe]);let ge=u.account?.gatewayUrl??u.settings?.gatewayUrl??null,_e=j.checkUpdates,ve=(0,v.useRef)(0);(0,v.useEffect)(()=>{if(!ge)return;let e=()=>{ve.current=Date.now(),_e(!1)};e();let t=setInterval(e,Nh),n=()=>{typeof document<`u`&&document.visibilityState===`hidden`||Date.now()-ve.current<3e5||e()};return window.addEventListener(`focus`,n),document.addEventListener(`visibilitychange`,n),()=>{clearInterval(t),window.removeEventListener(`focus`,n),document.removeEventListener(`visibilitychange`,n)}},[ge,_e]);let ye=j.openDialog,be=j.newTab,xe=j.savePrefs,Se=(0,v.useCallback)(e=>{switch(e){case`sign-in`:f.current.account?.loggedIn&&ye(`account`);break;case`settings`:ye(`settings`);break;case`new-tab`:be();break;case`new-project`:f.current.account?.loggedIn&&(d({type:`projects_new`}),ye(`projects`));break;case`check-updates`:_e(!0);break;case`import-chats`:f.current.account?.loggedIn&&ye(`import-claude`);break;case`export-chats`:f.current.account?.loggedIn&&ye(`export-chats`);break;case`toggle-session-panel`:xe({sessionPanelOpen:!f.current.prefs.sessionPanelOpen});break;case`toggle-sidebar`:xe({sidebarPinned:!f.current.prefs.sidebarPinned});break;case`conversations`:ye(`conversations`);break;case`chat-abouts`:ye(`chat-abouts`)}},[ye,be,_e,xe]);(0,v.useEffect)(()=>{let e=typeof window<`u`?window.oonacode:void 0;if(e?.onMenuCommand)return e.onMenuCommand(Se)},[Se]),(0,v.useEffect)(()=>{let e=window.oonacode;if(e?.onOpenSession)return e.onOpenSession(e=>{if(f.current.remote.tabs[e]||f.current.drafts[e]){j.selectSession(e);return}!f.current.sessions.some(t=>t.id===e)&&!f.current.transcripts[e]||j.selectSession(e)})},[j]),(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 Ce=(0,v.useMemo)(()=>({state:u,dispatch:d,actions:j,api:e,socket:t}),[u,j,e,t]);return(0,U.jsx)(Lh.Provider,{value:Ce,children:l})}var Kh=h(),qh=`inline-block shrink-0`;function Jh(e){return!!e&&/(^|\s)(w-|h-|size-|min-w-|min-h-)/.test(e)}var Yh=`w-4 h-4`;function G(e,{className:t,title:n},r=`0 0 24 24`){return(0,U.jsxs)(`svg`,{className:H(qh,Jh(t)?``:Yh,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,U.jsx)(`title`,{children:n}):null,e]})}var K={Menu:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`3`,y1:`6`,x2:`21`,y2:`6`}),(0,U.jsx)(`line`,{x1:`3`,y1:`12`,x2:`21`,y2:`12`}),(0,U.jsx)(`line`,{x1:`3`,y1:`18`,x2:`21`,y2:`18`})]}),e),More:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`5`,r:`1.6`}),(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,U.jsx)(`circle`,{cx:`12`,cy:`19`,r:`1.6`})]}),e),Plus:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,U.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})]}),e),Send:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),(0,U.jsx)(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})]}),e),Stop:e=>G((0,U.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`}),e),Chevron:e=>G((0,U.jsx)(`polyline`,{points:e.open?`6 9 12 15 18 9`:`9 6 15 12 9 18`}),e),Settings:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`3`}),(0,U.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=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),(0,U.jsx)(`circle`,{cx:`12`,cy:`7`,r:`4`})]}),e),Stethoscope:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsx)(`path`,{d:`M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4`}),(0,U.jsx)(`circle`,{cx:`20`,cy:`10`,r:`2`})]}),e),Copy:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),(0,U.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=>G((0,U.jsx)(`polyline`,{points:`20 6 9 17 4 12`}),e),Reply:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polyline`,{points:`9 17 4 12 9 7`}),(0,U.jsx)(`path`,{d:`M20 18v-2a4 4 0 0 0-4-4H4`})]}),e),Clock:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,U.jsx)(`polyline`,{points:`12 7 12 12 15 14`})]}),e),X:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,U.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]}),e),Alert:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,U.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]}),e),Bug:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M8 2l1.88 1.88`}),(0,U.jsx)(`path`,{d:`M14.12 3.88L16 2`}),(0,U.jsx)(`path`,{d:`M9 7.13v-1a3.003 3.003 0 1 1 6 0v1`}),(0,U.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,U.jsx)(`path`,{d:`M12 20v-9`}),(0,U.jsx)(`path`,{d:`M6.53 9C4.6 8.8 3 7.1 3 5`}),(0,U.jsx)(`path`,{d:`M6 13H2`}),(0,U.jsx)(`path`,{d:`M3 21c0-2.1 1.7-3.9 3.8-4`}),(0,U.jsx)(`path`,{d:`M20.97 5c0 2.1-1.6 3.8-3.5 4`}),(0,U.jsx)(`path`,{d:`M22 13h-4`}),(0,U.jsx)(`path`,{d:`M17.2 17c2.1.1 3.8 1.9 3.8 4`})]}),e),Spinner:e=>G((0,U.jsx)(`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`}),{...e,className:H(`spin`,e.className??`w-4 h-4`)}),Tool:e=>G((0,U.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),Skill:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M12 3l1.9 4.6 4.6 1.9-4.6 1.9L12 16l-1.9-4.6L5.5 9.5l4.6-1.9z`}),(0,U.jsx)(`path`,{d:`M19 15l.8 1.7 1.7.8-1.7.8L19 20l-.8-1.7-1.7-.8 1.7-.8z`})]}),e),Brain:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.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=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),(0,U.jsx)(`polyline`,{points:`19 12 12 19 5 12`})]}),e),Paperclip:e=>G((0,U.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=>G((0,U.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=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polygon`,{points:`12 2 2 7 12 12 22 7 12 2`}),(0,U.jsx)(`polyline`,{points:`2 17 12 22 22 17`}),(0,U.jsx)(`polyline`,{points:`2 12 12 17 22 12`})]}),e),File:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),(0,U.jsx)(`polyline`,{points:`14 2 14 8 20 8`})]}),e),ChevronRight:e=>G((0,U.jsx)(`polyline`,{points:`9 18 15 12 9 6`}),e),Play:e=>G((0,U.jsx)(`polygon`,{points:`6 4 20 12 6 20 6 4`}),e),Music:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M9 18V5l12-2v13`}),(0,U.jsx)(`circle`,{cx:`6`,cy:`18`,r:`3`}),(0,U.jsx)(`circle`,{cx:`18`,cy:`16`,r:`3`})]}),e),Film:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`2`,y:`2`,width:`20`,height:`20`,rx:`2.18`,ry:`2.18`}),(0,U.jsx)(`line`,{x1:`7`,y1:`2`,x2:`7`,y2:`22`}),(0,U.jsx)(`line`,{x1:`17`,y1:`2`,x2:`17`,y2:`22`}),(0,U.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,U.jsx)(`line`,{x1:`2`,y1:`7`,x2:`7`,y2:`7`}),(0,U.jsx)(`line`,{x1:`2`,y1:`17`,x2:`7`,y2:`17`}),(0,U.jsx)(`line`,{x1:`17`,y1:`17`,x2:`22`,y2:`17`}),(0,U.jsx)(`line`,{x1:`17`,y1:`7`,x2:`22`,y2:`7`})]}),e),Image:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,ry:`2`}),(0,U.jsx)(`circle`,{cx:`8.5`,cy:`8.5`,r:`1.5`}),(0,U.jsx)(`polyline`,{points:`21 15 16 10 5 21`})]}),e),ExternalLink:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`}),(0,U.jsx)(`polyline`,{points:`15 3 21 3 21 9`}),(0,U.jsx)(`line`,{x1:`10`,y1:`14`,x2:`21`,y2:`3`})]}),e),ExpandAll:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polyline`,{points:`7 5 12 10 17 5`}),(0,U.jsx)(`polyline`,{points:`7 13 12 18 17 13`})]}),e),CollapseAll:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polyline`,{points:`7 11 12 6 17 11`}),(0,U.jsx)(`polyline`,{points:`7 19 12 14 17 19`})]}),e),Palette:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsx)(`circle`,{cx:`7.5`,cy:`11.5`,r:`1`}),(0,U.jsx)(`circle`,{cx:`10.5`,cy:`7.5`,r:`1`}),(0,U.jsx)(`circle`,{cx:`15.5`,cy:`8.5`,r:`1`})]}),e),Bot:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`10`,rx:`2`}),(0,U.jsx)(`circle`,{cx:`12`,cy:`5`,r:`2`}),(0,U.jsx)(`path`,{d:`M12 7v4`}),(0,U.jsx)(`line`,{x1:`8`,y1:`16`,x2:`8`,y2:`16`}),(0,U.jsx)(`line`,{x1:`16`,y1:`16`,x2:`16`,y2:`16`})]}),e),Trash:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polyline`,{points:`3 6 5 6 21 6`}),(0,U.jsx)(`path`,{d:`M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6`}),(0,U.jsx)(`path`,{d:`M10 11v6M14 11v6`}),(0,U.jsx)(`path`,{d:`M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2`})]}),e),Refresh:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`polyline`,{points:`23 4 23 10 17 10`}),(0,U.jsx)(`path`,{d:`M20.49 15a9 9 0 1 1-2.12-9.36L23 10`})]}),e),Search:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,U.jsx)(`line`,{x1:`21`,y1:`21`,x2:`16.65`,y2:`16.65`})]}),e),Shield:e=>G((0,U.jsx)(`path`,{d:`M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z`}),e),Coins:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`ellipse`,{cx:`8`,cy:`6`,rx:`5`,ry:`2.5`}),(0,U.jsx)(`path`,{d:`M3 6v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V6`}),(0,U.jsx)(`path`,{d:`M3 10v4c0 1.4 2.2 2.5 5 2.5 1 0 1.9-.13 2.7-.36`}),(0,U.jsx)(`circle`,{cx:`16`,cy:`15`,r:`5`}),(0,U.jsx)(`path`,{d:`M16 13v4M14.5 15h3`})]}),e),Lock:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`5`,y:`11`,width:`14`,height:`9`,rx:`2`}),(0,U.jsx)(`path`,{d:`M8 11V7a4 4 0 0 1 8 0v4`})]}),e),Fork:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`18`,r:`3`}),(0,U.jsx)(`circle`,{cx:`6`,cy:`6`,r:`3`}),(0,U.jsx)(`circle`,{cx:`18`,cy:`6`,r:`3`}),(0,U.jsx)(`path`,{d:`M18 9a9 9 0 0 1-9 9M6 9a9 9 0 0 0 9 9`})]}),e),Edit:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsx)(`path`,{d:`M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z`})]}),e),Upload:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,U.jsx)(`polyline`,{points:`17 8 12 3 7 8`}),(0,U.jsx)(`line`,{x1:`12`,y1:`3`,x2:`12`,y2:`15`})]}),e),Download:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,U.jsx)(`polyline`,{points:`7 10 12 15 17 10`}),(0,U.jsx)(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})]}),e),Info:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,U.jsx)(`line`,{x1:`12`,y1:`16`,x2:`12`,y2:`12`}),(0,U.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12.01`,y2:`8`})]}),e),Panel:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,U.jsx)(`line`,{x1:`15`,y1:`3`,x2:`15`,y2:`21`})]}),e),LogIn:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`}),(0,U.jsx)(`polyline`,{points:`10 17 15 12 10 7`}),(0,U.jsx)(`line`,{x1:`15`,y1:`12`,x2:`3`,y2:`12`})]}),e),Globe:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,U.jsx)(`line`,{x1:`2`,y1:`12`,x2:`22`,y2:`12`}),(0,U.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=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,U.jsx)(`line`,{x1:`8`,y1:`21`,x2:`16`,y2:`21`}),(0,U.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12`,y2:`21`})]}),e),Bell:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9`}),(0,U.jsx)(`path`,{d:`M13.73 21a2 2 0 0 1-3.46 0`})]}),e),Sliders:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`4`,y1:`21`,x2:`4`,y2:`14`}),(0,U.jsx)(`line`,{x1:`4`,y1:`10`,x2:`4`,y2:`3`}),(0,U.jsx)(`line`,{x1:`12`,y1:`21`,x2:`12`,y2:`12`}),(0,U.jsx)(`line`,{x1:`12`,y1:`8`,x2:`12`,y2:`3`}),(0,U.jsx)(`line`,{x1:`20`,y1:`21`,x2:`20`,y2:`16`}),(0,U.jsx)(`line`,{x1:`20`,y1:`12`,x2:`20`,y2:`3`}),(0,U.jsx)(`line`,{x1:`1`,y1:`14`,x2:`7`,y2:`14`}),(0,U.jsx)(`line`,{x1:`9`,y1:`8`,x2:`15`,y2:`8`}),(0,U.jsx)(`line`,{x1:`17`,y1:`16`,x2:`23`,y2:`16`})]}),e),Pin:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M12 17v5`}),(0,U.jsx)(`path`,{d:`M9 10.76V6h6v4.76a2 2 0 0 0 1.11 1.79l1.78.9A2 2 0 0 1 19 15.24V16H5v-.76a2 2 0 0 1 1.11-1.79l1.78-.9A2 2 0 0 0 9 10.76z`}),(0,U.jsx)(`path`,{d:`M8 3h8`})]}),e),PanelLeft:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`16`,rx:`2`}),(0,U.jsx)(`line`,{x1:`9`,y1:`4`,x2:`9`,y2:`20`})]}),e),GitBranch:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`line`,{x1:`6`,y1:`3`,x2:`6`,y2:`15`}),(0,U.jsx)(`circle`,{cx:`18`,cy:`6`,r:`3`}),(0,U.jsx)(`circle`,{cx:`6`,cy:`18`,r:`3`}),(0,U.jsx)(`path`,{d:`M18 9a9 9 0 0 1-9 9`})]}),e),Plug:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M12 22v-5`}),(0,U.jsx)(`path`,{d:`M9 7V2M15 7V2`}),(0,U.jsx)(`path`,{d:`M6 7h12v4a6 6 0 0 1-12 0z`})]}),e),Key:e=>G((0,U.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),Mail:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`rect`,{x:`3`,y:`5`,width:`18`,height:`14`,rx:`2`}),(0,U.jsx)(`polyline`,{points:`3 7 12 13 21 7`})]}),e),Chats:e=>G((0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`path`,{d:`M14 9a2 2 0 0 1-2 2H6l-3 3V5a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2z`}),(0,U.jsx)(`path`,{d:`M18 9h1a2 2 0 0 1 2 2v9l-3-3h-6a2 2 0 0 1-2-2v-1`})]}),e)},Xh={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 q({variant:e=`secondary`,size:t=`md`,busy:n,className:r,children:i,disabled:a,...o}){return(0,U.jsxs)(`button`,{type:`button`,...o,disabled:a||n,className:H(`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`,Xh[e],r),children:[n?(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`}):null,i]})}function J({label:e,className:t,children:n,...r}){return(0,U.jsx)(`button`,{type:`button`,"aria-label":e,title:e,...r,className:H(`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 Zh({label:e,details:t}){let n=(0,v.useRef)(null),[r,i]=(0,v.useState)(null),a=()=>{let e=n.current?.getBoundingClientRect();if(!e||typeof window>`u`)return;let t=Math.max(8,Math.min(e.left-12,window.innerWidth-320-8)),r=e.bottom+6,a=r+180>window.innerHeight?Math.max(8,e.top-186):r;i({left:t,top:a})},o=()=>i(null);return(0,U.jsxs)(`span`,{ref:n,className:`inline-flex align-middle`,onMouseEnter:a,onMouseLeave:o,onFocus:a,onBlur:o,onKeyDown:e=>{e.key!==`Escape`||!r||(e.stopPropagation(),o())},children:[(0,U.jsx)(`span`,{tabIndex:0,role:`button`,"aria-label":`About ${e}`,className:`cursor-help rounded text-fg-faint hover:text-fg focus:text-fg focus:outline-none`,"data-testid":`info-tip`,onClick:e=>{e.preventDefault(),e.stopPropagation(),a()},children:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`})}),r&&typeof document<`u`?(0,Kh.createPortal)((0,U.jsx)(`div`,{role:`tooltip`,className:`fixed z-[60] w-80 rounded-md border border-border bg-surface px-3 py-2 text-xs leading-snug text-fg shadow-lg`,style:{left:r.left,top:r.top},"data-testid":`info-tip-card`,children:t}),document.body):null]})}function Qh({items:e}){return(0,U.jsx)(`ul`,{className:`list-disc space-y-1 pl-4`,children:e.map(e=>(0,U.jsx)(`li`,{children:e},e))})}function $h({label:e,hint:t,details:n,children:r,className:i}){return(0,U.jsxs)(`label`,{className:H(`flex flex-col gap-1 text-sm`,i),children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1.5 font-medium text-fg`,children:[e,n&&n.length>0?(0,U.jsx)(Zh,{label:e,details:(0,U.jsx)(Qh,{items:n})}):null]}),r,t?(0,U.jsx)(`span`,{className:`text-xs text-fg-faint`,children:t}):null]})}var Y=`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`,eg=Y;function X({tone:e=`neutral`,children:t,className:n}){return(0,U.jsx)(`span`,{className:H(`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 tg({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,Kh.createPortal)((0,U.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,U.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-label":t,tabIndex:-1,className:H(`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,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-3`,children:[(0,U.jsx)(`h2`,{className:`text-base font-semibold`,children:t}),(0,U.jsx)(J,{label:`Close`,"data-close":!0,onClick:n,children:(0,U.jsx)(K.X,{})})]}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto px-4 py-3`,children:r}),i?(0,U.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 ng({checked:e,onChange:t,label:n,hint:r,details:i,disabled:a,testId:o}){return(0,U.jsxs)(`label`,{className:H(`flex items-start justify-between gap-3 py-2`,a&&`opacity-60`),...o?{"data-testid":o}:{},children:[(0,U.jsxs)(`span`,{className:`min-w-0`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[n,i&&i.length>0?(0,U.jsx)(Zh,{label:n,details:(0,U.jsx)(Qh,{items:i})}):null]}),r?(0,U.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:r}):null]}),(0,U.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:a,onClick:()=>t(!e),className:H(`relative mt-0.5 h-5 w-9 shrink-0 rounded-full border transition-colors`,e?`border-accent bg-accent`:`border-fg-faint bg-surface-2`),children:(0,U.jsx)(`span`,{className:H(`absolute top-0.5 h-3.5 w-3.5 rounded-full transition-all`,e?`left-[1.15rem] bg-white`:`left-0.5 bg-fg-muted`)})})]})}function rg({value:e,options:t,onChange:n,label:r}){return(0,U.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,U.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===t.value,onClick:()=>n(t.value),className:H(`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 ig({icon:e,title:t,hint:n,action:r}){return(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 p-8 text-center text-fg-muted`,children:[e?(0,U.jsx)(`div`,{className:`text-fg-faint`,children:e}):null,(0,U.jsx)(`div`,{className:`text-base font-medium text-fg`,children:t}),n?(0,U.jsx)(`div`,{className:`max-w-md text-sm`,children:n}):null,r?(0,U.jsx)(`div`,{className:`mt-2`,children:r}):null]})}function ag({open:e,title:t,message:n,confirmLabel:r=`Delete`,danger:i=!0,onConfirm:a,onClose:o}){return(0,U.jsx)(tg,{open:e,title:t,onClose:o,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{"data-close":!0,onClick:o,children:`Cancel`}),(0,U.jsx)(q,{variant:i?`danger`:`primary`,"data-testid":`confirm-dialog-accept`,onClick:()=>{a(),o()},children:r})]}),children:(0,U.jsx)(`div`,{className:`text-sm text-fg-muted`,children:n})})}function og({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,U.jsx)(tg,{open:e,title:t,onClose:s,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{"data-close":!0,onClick:s,children:`Cancel`}),(0,U.jsx)(q,{variant:`primary`,"data-testid":`prompt-dialog-submit`,onClick:u,children:a})]}),children:(0,U.jsx)($h,{label:n,children:(0,U.jsx)(`input`,{className:Y,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 sg(e,t){return e===null||e===document||e===window||!t?!0:e instanceof Node?e.contains(t):!0}var cg=30;function lg({open:e,at:t,items:n,onClose:r,label:i,anchorEl:a=null,testId:o=`session-context-menu`}){let s=(0,v.useRef)(null),[c,l]=(0,v.useState)(t),u=n.filter(e=>!e.disabled),[d,f]=(0,v.useState)(0);return(0,v.useEffect)(()=>{e&&f(0)},[e,t.x,t.y]),(0,v.useLayoutEffect)(()=>{if(!e)return;let r=s.current,i=r?.offsetWidth??200,a=r?.offsetHeight??n.length*cg,o=window.innerWidth-i-8,c=window.innerHeight-a-8;l({x:Math.max(8,Math.min(t.x,o)),y:Math.max(8,Math.min(t.y,c))})},[e,t.x,t.y,n.length]),(0,v.useEffect)(()=>{if(!e)return;let t=e=>{if(e.key===`Escape`){e.stopPropagation(),r();return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),f(t=>((e.key===`ArrowDown`?t+1:t-1)+u.length)%Math.max(u.length,1));return}if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=u[d];t&&(r(),t.onSelect())}},n=e=>{s.current?.contains(e.target)||(e.preventDefault(),e.stopPropagation(),r())},i=e=>{sg(e.target,a)&&r()};return document.addEventListener(`keydown`,t),window.addEventListener(`mousedown`,n,!0),window.addEventListener(`resize`,r),window.addEventListener(`scroll`,i,!0),()=>{document.removeEventListener(`keydown`,t),window.removeEventListener(`mousedown`,n,!0),window.removeEventListener(`resize`,r),window.removeEventListener(`scroll`,i,!0)}},[e,r,u,d,a]),e?(0,Kh.createPortal)((0,U.jsx)(`div`,{ref:s,role:`menu`,"aria-label":i,"data-testid":o,className:`fixed z-50 min-w-[190px] overflow-hidden rounded-md border border-border bg-surface py-1 shadow-lg`,style:{left:c.x,top:c.y},children:n.map(e=>{let t=u.indexOf(e);return(0,U.jsxs)(`div`,{children:[e.separated?(0,U.jsx)(`div`,{className:`my-1 h-px bg-border`}):null,(0,U.jsxs)(`button`,{type:`button`,role:`menuitem`,disabled:e.disabled,"data-testid":e.testId,className:H(`flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm`,e.disabled?`cursor-default text-fg-faint`:e.danger?`text-danger hover:bg-danger-soft`:`text-fg hover:bg-surface-2`,!e.disabled&&t===d?`bg-surface-2`:``),onMouseEnter:()=>t>=0&&f(t),onClick:()=>{r(),e.onSelect()},children:[e.icon?(0,U.jsx)(`span`,{className:`w-3.5 shrink-0`,children:e.icon}):null,(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),e.hint?(0,U.jsx)(`span`,{className:`shrink-0 text-[11px] text-fg-faint`,children:e.hint}):null]})]},e.key)})}),document.body):null}function ug(e){if(!e.supported)return`Remote devices appear once the relay is available on this host build.`;switch(e.reason){case`logged_out`:return`Sign in to your OonaCode account to see your other PCs here.`;case`gateway_unreachable`:return`Your account server is unreachable — only this PC is listed right now.`;case`vault_locked`:return`Unlock your vault to browse the sessions on your other PCs.`;default:return`No other PCs on this account yet. Install OonaCode on another machine and sign in.`}}function dg({sessions:e,onOpen:t,readOnly:n}){return e.length===0?(0,U.jsx)(`div`,{className:`px-2 py-4 text-center text-xs text-fg-faint`,children:`No sessions here.`}):(0,U.jsx)(`ul`,{className:`divide-y divide-border`,children:e.map(e=>(0,U.jsx)(`li`,{children:(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.id),className:`flex w-full items-center gap-2 px-2 py-2 text-left hover:bg-surface-2`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`truncate text-sm`,children:Ip(e)}),(0,U.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[e.cwd,` · `,Op(e.updatedAt)]})]}),n?(0,U.jsx)(X,{tone:`warn`,children:`read-only`}):null,(0,U.jsx)(K.Chevron,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`})]})},e.id))})}function fg({open:e,onClose:t}){let{state:n,actions:r}=W(),[i,a]=(0,v.useState)(`local`),[o,s]=(0,v.useState)(``);(0,v.useEffect)(()=>{e&&r.refreshHosts()},[e,r]),(0,v.useEffect)(()=>{!e||i===`local`||r.refreshHostSessions(i)},[e,i,r]);let c=(0,v.useMemo)(()=>n.remote.hosts.filter(e=>!e.isSelf),[n.remote.hosts]),l=c.find(e=>e.hostId===i)??null,u=i===`local`?n.sessions:n.remote.sessions[i]??[],d=(0,v.useMemo)(()=>{let e=o.trim().toLowerCase();return e?u.filter(t=>Ip(t).toLowerCase().includes(e)||t.cwd.toLowerCase().includes(e)):u},[u,o]);return(0,U.jsx)(tg,{open:e,title:`Open a session`,onClose:t,wide:!0,children:(0,U.jsxs)(`div`,{className:`flex min-h-[20rem] gap-4`,children:[(0,U.jsxs)(`nav`,{className:`w-44 shrink-0 space-y-0.5`,"aria-label":`Devices`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>a(`local`),"aria-current":i===`local`?`true`:void 0,className:H(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,i===`local`?`bg-accent-soft font-medium text-accent`:`text-fg-muted hover:bg-surface-2`),children:[(0,U.jsx)(K.Monitor,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.connection.hostName??`This PC`}),(0,U.jsx)(X,{tone:`ok`,children:`local`})]}),c.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>a(e.hostId),"aria-current":i===e.hostId?`true`:void 0,className:H(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,i===e.hostId?`bg-accent-soft font-medium text-accent`:`text-fg-muted hover:bg-surface-2`),children:[(0,U.jsx)(K.Monitor,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label||e.hostName}),(0,U.jsx)(`span`,{className:H(`h-1.5 w-1.5 shrink-0 rounded-full`,e.online?`bg-ok`:`bg-fg-faint`),"aria-label":e.online?`online`:`offline`})]},e.hostId)),c.length===0?(0,U.jsx)(`div`,{className:`px-2 pt-3 text-[11px] text-fg-faint`,children:ug(n.remote)}):null]}),(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,U.jsx)(`input`,{className:Y,placeholder:`Filter sessions`,"aria-label":`Filter sessions`,value:o,onChange:e=>s(e.target.value)}),l&&!l.online?(0,U.jsxs)(`div`,{className:`mt-2 rounded-md bg-warn-soft px-3 py-2 text-xs text-warn`,children:[l.label||l.hostName,` is offline — its sessions open read-only from your encrypted history mirror. Continuing one needs that PC online.`]}):null,(0,U.jsx)(`div`,{className:`mt-2 min-h-0 flex-1 overflow-y-auto rounded-md border border-border`,children:(0,U.jsx)(dg,{sessions:d,readOnly:l!==null&&!l.online,onOpen:e=>{if(l){r.openRemoteSession(l.hostId,e),t();return}r.selectSession(e),t()}})}),(0,U.jsx)(`div`,{className:`mt-2 flex justify-end`,children:(0,U.jsxs)(q,{variant:`primary`,onClick:()=>{r.newTab(),t()},children:[(0,U.jsx)(K.Plus,{className:`w-4 h-4`}),` New chat here`]})})]})]})})}function pg(){let{state:e}=W(),t=e.currentSessionId?e.remote.tabs[e.currentSessionId]:void 0;return t?(0,U.jsxs)(`div`,{className:H(`flex items-center gap-2 px-3 py-1.5 text-xs`,t.live?`bg-accent-soft text-accent`:`bg-warn-soft text-warn`),role:`status`,"data-testid":`remote-banner`,children:[(0,U.jsx)(K.Monitor,{className:`w-3.5 h-3.5`}),t.live?(0,U.jsxs)(`span`,{children:[`This session runs on `,(0,U.jsx)(`strong`,{children:t.hostName}),`. This window is a live view — that PC executes every tool.`]}):(0,U.jsxs)(`span`,{children:[(0,U.jsx)(`strong`,{children:t.hostName}),` is not reachable — this transcript is read-only history from your encrypted mirror`,t.detail?` (${t.detail})`:``,`. Bring that PC online to continue the session.`]})]}):null}function mg(){let{state:e}=W(),t=e.currentSessionId;if(!t)return!1;let n=e.remote.tabs[t];return n?!n.live:!1}function hg(){let{state:e}=W(),t=zh();if(!t)return null;let n=e.pendingRouting[t.id],r={providerId:n?.providerId??t.providerId,model:n?.model??t.model};return mu(e.providers,r)?r.model??null:null}function gg(e,t,n){let r=t?.engineSince,i=Pu(e,{alive:t==null||r===void 0?null:r!==null,since:r&&Date.parse(r)||null});if(!i)return null;let{fallbackModel:a,originalModel:o,category:s}=i.notice,c=a?Iu(a,n):`another model`;return{fallbackModel:a,fallbackName:c,originalName:o?Iu(o,n):null,category:s,chipLabel:Lu(c),track:i}}function _g(e,t,n){let r=e.originalName??t??`The chat’s model`,i=e.category?` (${e.category})`:``,a=t??e.originalName??`the chat’s model`;return[`${r}’s safeguards flagged this chat${i}, so the engine moved it to ${e.fallbackName} for the rest of this run.`,n?null:`OonaCode does not offer ${e.fallbackName} for picking — it only runs as this fallback.`,`Pick a model (or send after the agent restarts) to go back to ${a}.`].filter(e=>e!==null).join(` `)}function vg(){let{state:e}=W(),t=Rh(),n=zh(),r=t?.safeguardFallback??null,i=t?.session??n,a=i!=null,o=i?i.engineSince:void 0,s=n?e.pendingRouting[n.id]!==void 0:!1,c=e.providers;return(0,v.useMemo)(()=>s||!r?null:gg(r,a?{engineSince:o}:null,c),[r,s,a,o,c])}function yg(e){let t=e.toLowerCase();return t===`#000000`||t===`#000`?void 0:e}function bg({providerId:e,displayName:t,size:n=14,className:r}){let i=$s(e);if(!i)return(0,U.jsx)(`span`,{"aria-hidden":`true`,"data-provider-mark":e,className:H(`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:ec(t)});let a=yg(i.hex);return(0,U.jsx)(`svg`,{"aria-hidden":`true`,"data-provider-mark":e,viewBox:`0 0 24 24`,width:n,height:n,className:H(`flex-shrink-0`,a?void 0:`text-fg`,r),style:{width:n,height:n},children:(0,U.jsx)(`path`,{d:i.d,fill:a??`currentColor`,fillRule:i.fillRule})})}function xg(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 Sg({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,U.jsxs)(`span`,{className:`ml-auto flex flex-shrink-0 items-center gap-2 pl-3 text-[10px] leading-none tabular-nums`,children:[a?(0,U.jsx)(`span`,{className:`text-think`,title:`Reasoning / extended thinking`,children:`✦`}):null,o?(0,U.jsx)(`span`,{className:`text-fg-faint`,title:`Accepts images`,children:`◉`}):null,i===void 0?null:(0,U.jsx)(`span`,{className:`text-fg-faint`,title:`${i.toLocaleString()} token context`,children:xg(i)}),t===void 0?null:(0,U.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,U.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,U.jsxs)(`span`,{className:`text-fg-faint`,title:`Artificial Analysis median output speed, tokens per second`,children:[Math.round(r),` t/s`]})]})}function Cg({label:e,value:t,hint:n}){return t===null?null:(0,U.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,U.jsx)(`span`,{className:`text-fg-faint`,children:e}),(0,U.jsx)(`span`,{className:`text-right font-mono tabular-nums text-fg-muted`,title:n,children:t})]})}function wg({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:hs[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,U.jsxs)(`div`,{"data-testid":`model-details`,className:H(`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,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(bg,{providerId:e.providerId,displayName:t,size:13}),(0,U.jsx)(`span`,{className:`truncate text-xs font-semibold text-fg`,children:e.label}),e.free?(0,U.jsx)(Dg,{}):null]}),(0,U.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-fg-faint`,title:e.modelId,children:e.modelId}),(0,U.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,U.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1 border-t border-border pt-2`,children:a.map(e=>(0,U.jsx)(`span`,{"data-testid":`cap-${e.label}`,"data-on":e.on,className:H(`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,U.jsxs)(`div`,{className:`mt-2 space-y-1 border-t border-border pt-2 text-[11px]`,children:[(0,U.jsx)(Cg,{label:`Context`,value:r.contextWindow===void 0?null:xg(r.contextWindow),hint:r.contextWindow===void 0?void 0:`${r.contextWindow.toLocaleString()} tokens`}),(0,U.jsx)(Cg,{label:`Max output`,value:r.maxOutputTokens===void 0?null:xg(r.maxOutputTokens),hint:r.maxOutputTokens===void 0?void 0:`${r.maxOutputTokens.toLocaleString()} tokens`}),(0,U.jsx)(Cg,{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,U.jsx)(Cg,{label:`Input / 1M`,value:i(r.inputPricePerM)}),(0,U.jsx)(Cg,{label:`Output / 1M`,value:i(r.outputPricePerM)})]}),o||s.length>0?(0,U.jsxs)(`div`,{className:`mt-2 border-t border-border pt-2`,"data-testid":`model-details-aa`,children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-baseline justify-between gap-2`,children:[(0,U.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-fg-faint`,children:`Independent ratings`}),(0,U.jsxs)(`span`,{className:`text-[10px] text-fg-faint`,children:[`Artificial Analysis`,c?` · ${c.toLocaleDateString()}`:``]})]}),(0,U.jsx)(Tg,{label:`Intelligence`,value:r.intelligence}),(0,U.jsx)(Tg,{label:`Coding`,value:r.coding}),(0,U.jsxs)(`div`,{className:`mt-1 space-y-1 text-[11px]`,children:[(0,U.jsx)(Cg,{label:`Speed`,value:r.outputTps===void 0?null:`${Math.round(r.outputTps)} tok/s`,hint:`Median output tokens per second`}),(0,U.jsx)(Cg,{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,U.jsx)(`div`,{className:`mt-1.5 space-y-1 border-t border-border pt-1.5 text-[11px]`,children:s.map(e=>(0,U.jsx)(Cg,{label:e.meta?.label??e.id,value:Eg(e.value,e.meta?.scale),hint:e.meta?void 0:`Reported by Artificial Analysis as "${e.id}"`},e.id))}):null]}):null,r.notes?(0,U.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 text-[10px] leading-snug text-fg-muted`,children:r.notes}):null]})}function Tg({label:e,value:t}){if(t===void 0)return null;let n=Math.max(0,Math.min(100,t));return(0,U.jsxs)(`div`,{className:`mb-1`,"data-testid":`score-${e.toLowerCase()}`,children:[(0,U.jsxs)(`div`,{className:`flex items-baseline justify-between text-[11px]`,children:[(0,U.jsx)(`span`,{className:`text-fg-faint`,children:e}),(0,U.jsx)(`span`,{className:`font-mono tabular-nums text-fg-muted`,children:t.toFixed(1)})]}),(0,U.jsx)(`div`,{className:`mt-0.5 h-1 w-full overflow-hidden rounded-full bg-fg/10`,children:(0,U.jsx)(`div`,{className:`h-full rounded-full bg-accent`,style:{width:`${n}%`}})})]})}function Eg(e,t){return t===`index`?e.toFixed(1):t===`fraction`||e>0&&e<=1?`${(e*100).toFixed(1)}%`:e.toFixed(2)}function Dg({className:e}){return(0,U.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:H(`rounded-sm bg-ok/15 px-1 py-px text-[10px] leading-none font-semibold tracking-wide text-ok uppercase`,e),children:`Free`})}function Og({disabled:e,className:t}){let{state:n,actions:r}=W(),i=zh(),a=Bh(),[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)(()=>pu(n.providers,h),[n.providers,h]),_=n.currentSessionId?n.pendingRouting[n.currentSessionId]:void 0,y=hu(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?cu(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=hg(),w=vg(),T=(0,v.useMemo)(()=>{if(!w?.fallbackModel)return!1;let e=ks(w.fallbackModel);return g.some(t=>t.models.some(t=>ks(t.modelId)===e))},[w?.fallbackModel,g]),E=(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]),D=(0,v.useMemo)(()=>E.flatMap(e=>e.models.map(t=>({m:t,group:e.label}))),[E]);(0,v.useEffect)(()=>{if(!o)return;let e=D.findIndex(e=>e.m.value===b);d(e>=0?e:0)},[o,D,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 O=(e=!0)=>{s(!1),l(``),e&&p.current?.focus()},k=e=>{r.setSessionModel(e.modelId,e.providerId,e.variantId),O()},A=e=>{if(e.key===`Escape`){e.preventDefault(),O();return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),D.length===0)return;let t=e.key===`ArrowDown`?1:-1;d(e=>(e+t+D.length)%D.length);return}if(e.key===`Home`||e.key===`End`){e.preventDefault(),d(e.key===`Home`?0:Math.max(0,D.length-1));return}if(e.key===`Enter`){e.preventDefault();let t=D[u];t&&k(t.m)}},[j,M]=(0,v.useState)(`right`),[N,P]=(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;M(t+312<=window.innerWidth?`right`:`left`);let n=window.innerHeight-e.bottom,r=e.top;P(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 F=x?.label??S??null,I=F??`No model`,L=x?.providerId??y.providerId??``,ee=g.find(e=>e.providerId===L)?.label??L,te=w?_g(w,F,T):null;return(0,U.jsxs)(`span`,{ref:f,className:`relative inline-flex items-center gap-1.5`,children:[(0,U.jsxs)(`button`,{type:`button`,ref:p,"aria-label":`Model`,"aria-haspopup":`listbox`,"aria-expanded":o,"data-testid":`model-picker`,disabled:e,className:H(`flex max-w-[22rem] min-w-[9rem] items-center gap-1.5 rounded-md border bg-surface-2 px-1.5 py-0.5 text-xs text-fg disabled:opacity-50`,w&&!C?`border-danger/60 hover:border-danger`:`border-border hover:border-fg-faint`,t),onClick:()=>o?O():s(!0),onKeyDown:e=>{!o&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s(!0))},title:w&&!C?te??void 0:void 0,children:[L?(0,U.jsx)(bg,{providerId:L,displayName:ee,size:13}):null,w&&!C?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(K.Shield,{className:`w-3 h-3 flex-shrink-0 text-danger`,"aria-hidden":`true`}),(0,U.jsx)(`span`,{className:`truncate text-danger`,"data-testid":`model-picker-safeguard`,children:w.chipLabel})]}):(0,U.jsx)(`span`,{className:H(`truncate`,C?`text-danger`:void 0),"data-testid":C?`model-picker-withdrawn`:void 0,title:C?`${C} is no longer offered — pick another model to continue this chat`:void 0,children:I}),x?.free&&!(w&&!C)?(0,U.jsx)(Dg,{}):null,(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`text-fg-faint`,children:`▾`})]}),o?(0,U.jsxs)(`div`,{"data-testid":`model-picker-panel`,className:H(`absolute left-0 z-50 w-[30rem] max-w-[calc(100vw-2rem)]`,N?`bottom-full mb-1`:`top-full mt-1`),onKeyDown:A,children:[(0,U.jsxs)(`div`,{"data-testid":`model-picker-chrome`,className:`max-h-[26rem] overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[w&&!C&&te?(0,U.jsxs)(`div`,{className:`flex items-start gap-1.5 border-b border-danger/40 bg-danger-soft px-2 py-1.5 text-[11px] leading-snug text-danger`,"data-testid":`model-picker-safeguard-note`,role:`note`,children:[(0,U.jsx)(K.Shield,{className:`mt-px w-3 h-3 flex-shrink-0`,"aria-hidden":`true`}),(0,U.jsx)(`span`,{children:te})]}):null,(0,U.jsx)(`div`,{className:`border-b border-border p-1.5`,children:(0,U.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,U.jsxs)(`div`,{ref:m,role:`listbox`,"aria-label":`Model`,className:`max-h-80 overflow-y-auto`,children:[g.length===0?(0,U.jsx)(`div`,{className:`px-3 py-6 text-center text-xs text-fg-muted`,children:`No provider configured — add one in Settings → Providers`}):E.length===0?(0,U.jsxs)(`div`,{className:`px-3 py-6 text-center text-xs text-fg-muted`,children:[`Nothing matches “`,c,`”`]}):null,E.map(e=>(0,U.jsxs)(`div`,{children:[(0,U.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,U.jsx)(bg,{providerId:e.providerId,displayName:e.label,size:12}),e.label,e.route===`direct`?(0,U.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=D.findIndex(t=>t.m===e);return(0,U.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:H(`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:()=>k(e),children:[(0,U.jsx)(`span`,{className:H(`truncate`,e.free?`font-semibold`:void 0),children:e.label}),e.free?(0,U.jsx)(Dg,{}):null,(0,U.jsx)(Sg,{m:e})]},e.value)})]},`${e.providerId}:${e.variantId??``}`))]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3 border-t border-border px-2 py-1.5 text-[11px]`,children:[(0,U.jsx)(`button`,{type:`button`,"data-testid":`manage-models-entry`,className:`text-fg-muted hover:text-fg`,onClick:()=>{O(!1),r.openDialog(`manage-models`)},children:`Manage models…`}),(0,U.jsx)(`button`,{type:`button`,"data-testid":`manage-providers-entry`,className:`text-fg-muted hover:text-fg`,onClick:()=>{O(!1),r.openSettings(`providers`)},children:`Manage providers…`}),(0,U.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`})]})]}),D[u]?(0,U.jsx)(wg,{m:D[u].m,group:D[u].group,side:j}):null]}):null]})}function kg(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var Ag=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,jg=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Mg={};function Ng(e,t){return((t||Mg).jsx?jg:Ag).test(e)}var Pg=/[ \t\n\f\r]/g;function Fg(e){return typeof e==`object`?e.type===`text`&&Ig(e.value):Ig(e)}function Ig(e){return e.replace(Pg,``)===``}var Lg=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};Lg.prototype.normal={},Lg.prototype.property={},Lg.prototype.space=void 0;function Rg(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new Lg(n,r,t)}function zg(e){return e.toLowerCase()}var Bg=class{constructor(e,t){this.attribute=t,this.property=e}};Bg.prototype.attribute=``,Bg.prototype.booleanish=!1,Bg.prototype.boolean=!1,Bg.prototype.commaOrSpaceSeparated=!1,Bg.prototype.commaSeparated=!1,Bg.prototype.defined=!1,Bg.prototype.mustUseProperty=!1,Bg.prototype.number=!1,Bg.prototype.overloadedBoolean=!1,Bg.prototype.property=``,Bg.prototype.spaceSeparated=!1,Bg.prototype.space=void 0;var Vg=s({boolean:()=>Z,booleanish:()=>Ug,commaOrSpaceSeparated:()=>qg,commaSeparated:()=>Kg,number:()=>Q,overloadedBoolean:()=>Wg,spaceSeparated:()=>Gg}),Hg=0,Z=Jg(),Ug=Jg(),Wg=Jg(),Q=Jg(),Gg=Jg(),Kg=Jg(),qg=Jg();function Jg(){return 2**++Hg}var Yg=Object.keys(Vg),Xg=class extends Bg{constructor(e,t,n,r){let i=-1;if(super(e,t),Zg(this,`space`,r),typeof n==`number`)for(;++i<Yg.length;){let e=Yg[i];Zg(this,Yg[i],(n&Vg[e])===Vg[e])}}};Xg.prototype.defined=!0;function Zg(e,t,n){n&&(e[t]=n)}function Qg(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new Xg(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[zg(r)]=r,n[zg(a.attribute)]=r}return new Lg(t,n,e.space)}var $g=Qg({properties:{ariaActiveDescendant:null,ariaAtomic:Ug,ariaAutoComplete:null,ariaBusy:Ug,ariaChecked:Ug,ariaColCount:Q,ariaColIndex:Q,ariaColSpan:Q,ariaControls:Gg,ariaCurrent:null,ariaDescribedBy:Gg,ariaDetails:null,ariaDisabled:Ug,ariaDropEffect:Gg,ariaErrorMessage:null,ariaExpanded:Ug,ariaFlowTo:Gg,ariaGrabbed:Ug,ariaHasPopup:null,ariaHidden:Ug,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Gg,ariaLevel:Q,ariaLive:null,ariaModal:Ug,ariaMultiLine:Ug,ariaMultiSelectable:Ug,ariaOrientation:null,ariaOwns:Gg,ariaPlaceholder:null,ariaPosInSet:Q,ariaPressed:Ug,ariaReadOnly:Ug,ariaRelevant:null,ariaRequired:Ug,ariaRoleDescription:Gg,ariaRowCount:Q,ariaRowIndex:Q,ariaRowSpan:Q,ariaSelected:Ug,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 e_(e,t){return t in e?e[t]:t}function t_(e,t){return e_(e,t.toLowerCase())}var n_=Qg({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:Kg,acceptCharset:Gg,accessKey:Gg,action:null,allow:null,allowFullScreen:Z,allowPaymentRequest:Z,allowUserMedia:Z,alpha:Z,alt:null,as:null,async:Z,autoCapitalize:null,autoComplete:Gg,autoFocus:Z,autoPlay:Z,blocking:Gg,capture:null,charSet:null,checked:Z,cite:null,className:Gg,closedBy:null,colorSpace:null,cols:Q,colSpan:Q,command:null,commandFor:null,content:null,contentEditable:Ug,controls:Z,controlsList:Gg,coords:Q|Kg,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Z,defer:Z,dir:null,dirName:null,disabled:Z,download:Wg,draggable:Ug,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Z,formTarget:null,headers:Gg,height:Q,hidden:Wg,high:Q,href:null,hrefLang:null,htmlFor:Gg,httpEquiv:Gg,id:null,imageSizes:null,imageSrcSet:null,inert:Z,inputMode:null,integrity:null,is:null,isMap:Z,itemId:null,itemProp:Gg,itemRef:Gg,itemScope:Z,itemType:Gg,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:Gg,placeholder:null,playsInline:Z,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Z,referrerPolicy:null,rel:Gg,required:Z,reversed:Z,rows:Q,rowSpan:Q,sandbox:Gg,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:Ug,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:Ug,width:Q,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Gg,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:Ug,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:Kg,part:Gg,prefix:null,property:null,results:Q,security:null,unselectable:null},space:`html`,transform:t_}),r_=Qg({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:qg,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:Gg,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:Kg,g2:Kg,glyphName:Kg,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:qg,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:Gg,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Q,pointsAtY:Q,pointsAtZ:Q,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:qg,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:qg,rev:qg,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:qg,requiredFeatures:qg,requiredFonts:qg,requiredFormats:qg,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:qg,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:qg,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:qg,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:e_}),i_=Qg({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()}}),a_=Qg({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:t_}),o_=Qg({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),s_={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`},c_=/[A-Z]/g,l_=/-[a-z]/g,u_=/^data[-\w.:]+$/i;function d_(e,t){let n=zg(t),r=t,i=Bg;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&u_.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(l_,p_);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!l_.test(e)){let n=e.replace(c_,f_);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=Xg}return new i(r,t)}function f_(e){return`-`+e.toLowerCase()}function p_(e){return e.charAt(1).toUpperCase()}var m_=Rg([$g,n_,i_,a_,o_],`html`),h_=Rg([$g,r_,i_,a_,o_],`svg`);function g_(e){return e.join(` `).trim()}var __=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(`
|
|
101
|
-
`);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})),v_=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(__());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}})),y_=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))}})),b_=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(v_()),r=y_();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})),x_=C_(`end`),S_=C_(`start`);function C_(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 w_(e){let t=S_(e),n=x_(e);if(t&&n)return{start:t,end:n}}function T_(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?D_(e.position):`start`in e||`end`in e?D_(e):`line`in e||`column`in e?E_(e):``}function E_(e){return O_(e&&e.line)+`:`+O_(e&&e.column)}function D_(e){return E_(e&&e.start)+`-`+E_(e&&e.end)}function O_(e){return e&&typeof e==`number`?e:1}var k_=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=T_(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}};k_.prototype.file=``,k_.prototype.name=``,k_.prototype.reason=``,k_.prototype.message=``,k_.prototype.stack=``,k_.prototype.column=void 0,k_.prototype.line=void 0,k_.prototype.ancestors=void 0,k_.prototype.cause=void 0,k_.prototype.fatal=void 0,k_.prototype.place=void 0,k_.prototype.ruleId=void 0,k_.prototype.source=void 0;var A_=l(b_(),1),j_={}.hasOwnProperty,M_=new Map,N_=/[A-Z]/g,P_=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),F_=new Set([`td`,`th`]),I_=`https://github.com/syntax-tree/hast-util-to-jsx-runtime`;function L_(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=J_(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=q_(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`?h_:m_,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=R_(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function R_(e,t,n){if(t.type===`element`)return z_(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return B_(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return H_(e,t,n);if(t.type===`mdxjsEsm`)return V_(e,t);if(t.type===`root`)return U_(e,t,n);if(t.type===`text`)return W_(e,t)}function z_(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=h_,e.schema=i),e.ancestors.push(t);let a=ev(e,t.tagName,!1),o=Y_(e,t),s=Z_(e,t);return P_.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!Fg(e)})),G_(e,o,a,t),K_(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function B_(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)}tv(e,t.position)}function V_(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);tv(e,t.position)}function H_(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=h_,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:ev(e,t.name,!0),o=X_(e,t),s=Z_(e,t);return G_(e,o,a,t),K_(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function U_(e,t,n){let r={};return K_(r,Z_(e,t)),e.create(t,e.Fragment,r,n)}function W_(e,t){return t.value}function G_(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function K_(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function q_(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 J_(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=S_(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 Y_(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&j_.call(t.properties,i)){let a=Q_(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&F_.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 X_(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 tv(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 tv(e,t.position)}else a=r.value===null||r.value;n[i]=a}return n}function Z_(e,t){let n=[],r=-1,i=e.passKeys?new Map:M_;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=R_(e,a,o);s!==void 0&&n.push(s)}return n}function Q_(e,t,n){let r=d_(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?kg(n):g_(n)),r.property===`style`){let t=typeof n==`object`?n:$_(e,String(n));return e.stylePropertyNameCase===`css`&&(t=nv(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?s_[r.property]||r.property:r.attribute,n]}}function $_(e,t){try{return(0,A_.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new k_("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=I_+`#cannot-parse-style-attribute`,r}}function ev(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=Ng(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=Ng(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return j_.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);tv(e)}function tv(e,t){let n=new k_("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=I_+`#cannot-handle-mdx-estrees-without-createevaluater`,n}function nv(e){let t={},n;for(n in e)j_.call(e,n)&&(t[rv(n)]=e[n]);return t}function rv(e){let t=e.replace(N_,iv);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function iv(e){return`-`+e.toLowerCase()}var av={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`]},ov={};function sv(e,t){let n=t||ov;return cv(e,typeof n.includeImageAlt!=`boolean`||n.includeImageAlt,typeof n.includeHtml!=`boolean`||n.includeHtml)}function cv(e,t,n){if(uv(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 lv(e.children,t,n)}return Array.isArray(e)?lv(e,t,n):``}function lv(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=cv(e[i],t,n);return r.join(``)}function uv(e){return!!(e&&typeof e==`object`)}var dv=document.createElement(`i`);function fv(e){let t=`&`+e+`;`;dv.innerHTML=t;let n=dv.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`?!1:n!==t&&n}function pv(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 mv(e,t){return e.length>0?(pv(e,e.length,0,t),e):t}var hv={}.hasOwnProperty;function gv(e){let t={},n=-1;for(;++n<e.length;)_v(t,e[n]);return t}function _v(e,t){let n;for(n in t){let r=(hv.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){hv.call(r,a)||(r[a]=[]);let e=i[a];vv(r[a],Array.isArray(e)?e:e?[e]:[])}}}function vv(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);pv(e,0,0,r)}function yv(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 bv(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var xv=Mv(/[A-Za-z]/),Sv=Mv(/[\dA-Za-z]/),Cv=Mv(/[#-'*+\--9=?A-Z^-~]/);function wv(e){return e!==null&&(e<32||e===127)}var Tv=Mv(/\d/),Ev=Mv(/[\dA-Fa-f]/),Dv=Mv(/[!-/:-@[-`{-~]/);function $(e){return e!==null&&e<-2}function Ov(e){return e!==null&&(e<0||e===32)}function kv(e){return e===-2||e===-1||e===32}var Av=Mv(/\p{P}|\p{S}/u),jv=Mv(/\s/);function Mv(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Nv(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Sv(e.charCodeAt(n+1))&&Sv(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 Pv(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return kv(r)?(e.enter(n),s(r)):t(r)}function s(r){return kv(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var Fv={tokenize:Iv};function Iv(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`),Pv(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 Lv={tokenize:zv},Rv={tokenize:Bv};function zv(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 pv(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(Rv,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(Rv,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++;pv(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 Bv(e,t,n){return Pv(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Vv(e){if(e===null||Ov(e)||jv(e))return 1;if(Av(e))return 2}function Hv(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 Uv={name:`attention`,resolveAll:Wv,tokenize:Gv};function Wv(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};Kv(d,-c),Kv(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=mv(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=mv(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=mv(l,Hv(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=mv(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=mv(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,pv(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 Gv(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Vv(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=Vv(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 Kv(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var qv={name:`autolink`,tokenize:Jv};function Jv(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 xv(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Sv(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||Sv(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||wv(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Cv(t)?(e.consume(t),l):n(t)}function u(e){return Sv(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||Sv(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var Yv={partial:!0,tokenize:Xv};function Xv(e,t,n){return r;function r(t){return kv(t)?Pv(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||$(e)?t(e):n(e)}}var Zv={continuation:{tokenize:$v},exit:ey,name:`blockQuote`,tokenize:Qv};function Qv(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 kv(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function $v(e,t,n){let r=this;return i;function i(t){return kv(t)?Pv(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(Zv,t,n)(r)}}function ey(e){e.exit(`blockQuote`)}var ty={name:`characterEscape`,tokenize:ny};function ny(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 Dv(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var ry={name:`characterReference`,tokenize:iy};function iy(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=Sv,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=Ev,u):(e.enter(`characterReferenceValue`),a=7,o=Tv,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Sv&&!fv(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 ay={partial:!0,tokenize:cy},oy={concrete:!0,name:`codeFenced`,tokenize:sy};function sy(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`),kv(t)?Pv(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||$(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(ay,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)):kv(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),Pv(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&&kv(t)?Pv(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||$(t)?e.check(ay,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`),kv(t)?Pv(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`),kv(t)?Pv(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||$(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function cy(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 ly={name:`codeIndented`,tokenize:dy},uy={partial:!0,tokenize:fy};function dy(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),Pv(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(uy,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 fy(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):Pv(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 py={name:`codeText`,previous:hy,resolve:my,tokenize:gy};function my(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 hy(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function gy(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 _y=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&&vy(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),vy(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),vy(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);vy(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);vy(this.left,t.reverse())}}}};function vy(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 yy(e){let t={},n=-1,r,i,a,o,s,c,l,u=new _y(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,by(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 pv(e,0,1/0,u.slice(0)),!l}function by(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 xy={resolve:Cy,tokenize:wy},Sy={partial:!0,tokenize:Ty};function Cy(e){return yy(e),e}function wy(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(Sy,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 Ty(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Pv(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 Ey(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||wv(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||Ov(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||wv(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 Dy(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||=!kv(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function Oy(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`),Pv(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 ky(e,t){let n;return r;function r(i){return $(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):kv(i)?Pv(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Ay={name:`definition`,tokenize:My},jy={partial:!0,tokenize:Ny};function My(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return Dy.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=bv(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 Ov(t)?ky(e,l)(t):l(t)}function l(t){return Ey(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(jy,d,d)(t)}function d(t){return kv(t)?Pv(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 Ny(e,t,n){return r;function r(t){return Ov(t)?ky(e,i)(t):n(t)}function i(t){return Oy(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return kv(t)?Pv(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||$(e)?t(e):n(e)}}var Py={name:`hardBreakEscape`,tokenize:Fy};function Fy(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 Iy={name:`headingAtx`,resolve:Ly,tokenize:Ry};function Ly(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`},pv(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Ry(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||Ov(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)):kv(n)?Pv(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||Ov(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var zy=`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(`.`),By=[`pre`,`script`,`style`,`textarea`],Vy={concrete:!0,name:`htmlFlow`,resolveTo:Wy,tokenize:Gy},Hy={partial:!0,tokenize:qy},Uy={partial:!0,tokenize:Ky};function Wy(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 Gy(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:I):xv(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):xv(a)?(e.consume(a),i=4,r.interrupt?t:I):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:I):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 xv(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Ov(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&By.includes(l)?(i=1,r.interrupt?t(s):O(s)):zy.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||Sv(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 kv(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||xv(t)?(e.consume(t),b):kv(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Sv(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):kv(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):kv(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||Ov(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||kv(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):kv(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),M):t===60&&i===1?(e.consume(t),N):t===62&&i===4?(e.consume(t),L):t===63&&i===3?(e.consume(t),I):t===93&&i===5?(e.consume(t),F):$(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(Hy,ee,k)(t)):t===null||$(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(Uy,A,ee)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),j}function j(t){return t===null||$(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function M(t){return t===45?(e.consume(t),I):O(t)}function N(t){return t===47?(e.consume(t),o=``,P):O(t)}function P(t){if(t===62){let n=o.toLowerCase();return By.includes(n)?(e.consume(t),L):O(t)}return xv(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),P):O(t)}function F(t){return t===93?(e.consume(t),I):O(t)}function I(t){return t===62?(e.consume(t),L):t===45&&i===2?(e.consume(t),I):O(t)}function L(t){return t===null||$(t)?(e.exit(`htmlFlowData`),ee(t)):(e.consume(t),L)}function ee(n){return e.exit(`htmlFlow`),t(n)}}function Ky(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 qy(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Yv,t,n)}}var Jy={name:`htmlText`,tokenize:Yy};function Yy(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):xv(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):xv(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,N(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?M(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,N(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?M(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?M(t):$(t)?(o=v,N(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):$(t)?(o=y,N(t)):(e.consume(t),y)}function b(e){return e===62?M(e):y(e)}function x(t){return xv(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Sv(t)?(e.consume(t),S):C(t)}function C(t){return $(t)?(o=C,N(t)):kv(t)?(e.consume(t),C):M(t)}function w(t){return t===45||Sv(t)?(e.consume(t),w):t===47||t===62||Ov(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),M):t===58||t===95||xv(t)?(e.consume(t),E):$(t)?(o=T,N(t)):kv(t)?(e.consume(t),T):M(t)}function E(t){return t===45||t===46||t===58||t===95||Sv(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):$(t)?(o=D,N(t)):kv(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,N(t)):kv(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,j):t===null?n(t):$(t)?(o=k,N(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||Ov(t)?T(t):(e.consume(t),A)}function j(e){return e===47||e===62||Ov(e)?T(e):n(e)}function M(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function N(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),P}function P(t){return kv(t)?Pv(e,F,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):F(t)}function F(t){return e.enter(`htmlTextData`),o(t)}}var Xy={name:`labelEnd`,resolveAll:eb,resolveTo:tb,tokenize:nb},Zy={tokenize:rb},Qy={tokenize:ib},$y={tokenize:ab};function eb(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&&pv(e,0,e.length,n),e}function tb(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=mv(s,e.slice(a+1,a+r+3)),s=mv(s,[[`enter`,u,t]]),s=mv(s,Hv(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=mv(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=mv(s,e.slice(o+1)),s=mv(s,[[`exit`,c,t]]),pv(e,a,e.length,s),e}function nb(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(bv(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(Zy,u,o?u:d)(t):t===91?e.attempt(Qy,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt($y,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function rb(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 Ov(t)?ky(e,a)(t):a(t)}function a(t){return t===41?u(t):Ey(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return Ov(t)?ky(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?Oy(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return Ov(t)?ky(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 ib(e,t,n){let r=this;return i;function i(t){return Dy.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(bv(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function ab(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 ob={name:`labelStartImage`,resolveAll:Xy.resolveAll,tokenize:sb};function sb(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 cb={name:`labelStartLink`,resolveAll:Xy.resolveAll,tokenize:lb};function lb(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 ub={name:`lineEnding`,tokenize:db};function db(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Pv(e,t,`linePrefix`)}}var fb={name:`thematicBreak`,tokenize:pb};function pb(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`),kv(t)?Pv(e,s,`whitespace`)(t):s(t))}}var mb={continuation:{tokenize:vb},exit:bb,name:`list`,tokenize:_b},hb={partial:!0,tokenize:xb},gb={partial:!0,tokenize:yb};function _b(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:Tv(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(fb,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 Tv(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(Yv,r.interrupt?n:u,e.attempt(hb,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return kv(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 vb(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Yv,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Pv(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!kv(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(gb,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Pv(e,e.attempt(mb,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function yb(e,t,n){let r=this;return Pv(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 bb(e){e.exit(this.containerState.type)}function xb(e,t,n){let r=this;return Pv(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!kv(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var Sb={name:`setextUnderline`,resolveTo:Cb,tokenize:wb};function Cb(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 wb(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`),kv(t)?Pv(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||$(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Tb={tokenize:Eb};function Eb(e){let t=this,n=e.attempt(Yv,r,e.attempt(this.parser.constructs.flowInitial,i,Pv(e,e.attempt(this.parser.constructs.flow,i,e.attempt(xy,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 Db={resolveAll:jb()},Ob=Ab(`string`),kb=Ab(`text`);function Ab(e){return{resolveAll:jb(e===`text`?Mb: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 jb(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 Mb(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 Nb=s({attentionMarkers:()=>Vb,contentInitial:()=>Fb,disable:()=>Hb,document:()=>Pb,flow:()=>Lb,flowInitial:()=>Ib,insideSpan:()=>Bb,string:()=>Rb,text:()=>zb}),Pb={42:mb,43:mb,45:mb,48:mb,49:mb,50:mb,51:mb,52:mb,53:mb,54:mb,55:mb,56:mb,57:mb,62:Zv},Fb={91:Ay},Ib={[-2]:ly,[-1]:ly,32:ly},Lb={35:Iy,42:fb,45:[Sb,fb],60:Vy,61:Sb,95:fb,96:oy,126:oy},Rb={38:ry,92:ty},zb={[-5]:ub,[-4]:ub,[-3]:ub,33:ob,38:ry,42:Uv,60:[qv,Jy],91:cb,92:[Py,ty],93:Xy,95:Uv,96:py},Bb={null:[Uv,Db]},Vb={null:[42,95]},Hb={null:[]};function Ub(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=mv(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=Hv(a,l.events,l),l.events):[]}function f(e,t){return Gb(p(e),t)}function p(e){return Wb(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&&pv(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 Wb(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 Gb(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=`
|
|
102
|
-
`;break;case-3:o=`\r
|
|
103
|
-
`;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 Kb(e){let t={constructs:gv([Nb,...(e||{}).extensions||[]]),content:n(Fv),defined:[],document:n(Lv),flow:n(Tb),lazy:{},string:n(Ob),text:n(kb)};return t;function n(e){return n;function n(n){return Ub(t,e,n)}}}function qb(e){for(;!yy(e););return e}var Jb=/[\0\t\n\r]/g;function Yb(){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(Jb.lastIndex=u,c=Jb.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 Xb=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Zb(e){return e.replace(Xb,Qb)}function Qb(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return yv(n.slice(t?2:1),t?16:10)}return fv(n)||e}var $b={}.hasOwnProperty;function ex(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),tx(n)(qb(Kb(n).document().write(Yb()(e,t,!0))))}function tx(e){let t={transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:a(_e),autolinkProtocol:T,autolinkEmail:T,atxHeading:a(pe),blockQuote:a(ce),characterEscape:T,characterReference:T,codeFenced:a(le),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:a(le,o),codeText:a(ue,o),codeTextData:T,data:T,codeFlowValue:T,definition:a(de),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:a(fe),hardBreakEscape:a(me),hardBreakTrailing:a(me),htmlFlow:a(he,o),htmlFlowData:T,htmlText:a(he,o),htmlTextData:T,image:a(ge),label:o,link:a(_e),listItem:a(ye),listItemValue:f,listOrdered:a(ve,d),listUnordered:a(ve),paragraph:a(be),reference:te,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:a(pe),strong:a(xe),thematicBreak:a(Ce)},exit:{atxHeading:c(),atxHeadingSequence:x,autolink:c(),autolinkEmail:se,autolinkProtocol:oe,blockQuote:c(),characterEscapeValue:E,characterReferenceMarkerHexadecimal:re,characterReferenceMarkerNumeric:re,characterReferenceValue:ie,characterReference:ae,codeFenced:c(g),codeFencedFence:h,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:E,codeIndented:c(_),codeText:c(j),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(N),label:F,labelText:P,lineEnding:D,link:c(M),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:ne,resourceDestinationString:I,resourceTitleString:L,resource:ee,setextHeading:c(w),setextHeadingLineSequence:C,setextHeadingText:S,strong:c(),thematicBreak:c()}};rx(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]];$b.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]||ax).call(a,void 0,e[0])}for(r.position={start:nx(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:nx(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:nx(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]||ax).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+T_({start:e.start,end:e.end})+`): it’s not open`);n.position.end=nx(e.end)}function u(){return sv(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=bv(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=Se(),n.position={start:nx(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=nx(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=nx(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 j(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}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 N(){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 P(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=Zb(t),n.identifier=bv(t).toLowerCase()}function F(){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 I(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function L(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function ee(){this.data.inReference=void 0}function te(){this.data.referenceType=`collapsed`}function ne(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=bv(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function re(e){this.data.characterReferenceType=e.type}function ie(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=yv(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=fv(t);let i=this.stack[this.stack.length-1];i.value+=r}function ae(e){let t=this.stack.pop();t.position.end=nx(e.end)}function oe(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function se(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function ce(){return{type:`blockquote`,children:[]}}function le(){return{type:`code`,lang:null,meta:null,value:``}}function ue(){return{type:`inlineCode`,value:``}}function de(){return{type:`definition`,identifier:``,label:null,title:null,url:``}}function fe(){return{type:`emphasis`,children:[]}}function pe(){return{type:`heading`,depth:0,children:[]}}function me(){return{type:`break`}}function he(){return{type:`html`,value:``}}function ge(){return{type:`image`,title:null,url:``,alt:null}}function _e(){return{type:`link`,title:null,url:``,children:[]}}function ve(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[]}}function ye(e){return{type:`listItem`,spread:e._spread,checked:null,children:[]}}function be(){return{type:`paragraph`,children:[]}}function xe(){return{type:`strong`,children:[]}}function Se(){return{type:`text`,value:``}}function Ce(){return{type:`thematicBreak`}}}function nx(e){return{line:e.line,column:e.column,offset:e.offset}}function rx(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?rx(e,r):ix(e,r)}}function ix(e,t){let n;for(n in t)if($b.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 ax(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+T_({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+T_({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+T_({start:t.start,end:t.end})+`) is still open`)}function ox(e){let t=this;t.parser=n;function n(n){return ex(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function sx(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 cx(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
|
|
104
|
-
`}]}function lx(e,t){let n=t.value?t.value+`
|
|
105
|
-
`:``,r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function ux(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function dx(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function fx(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=Nv(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function px(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function mx(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function hx(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function gx(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return hx(e,t);let i={src:Nv(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function _x(e,t){let n={src:Nv(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function vx(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function yx(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return hx(e,t);let i={href:Nv(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function bx(e,t){let n={href:Nv(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function xx(e,t,n){let r=e.all(t),i=n?Sx(n):Cx(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s<r.length;){let e=r[s];(i||s!==0||e.type!==`element`||e.tagName!==`p`)&&o.push({type:`text`,value:`
|
|
106
|
-
`}),e.type===`element`&&e.tagName===`p`&&!i?o.push(...e.children):o.push(e)}let c=r[r.length-1];c&&(i||c.type!==`element`||c.tagName!==`p`)&&o.push({type:`text`,value:`
|
|
107
|
-
`});let l={type:`element`,tagName:`li`,properties:a,children:o};return e.patch(t,l),e.applyData(t,l)}function Sx(e){let t=!1;if(e.type===`list`){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=Cx(n[r])}return t}function Cx(e){return e.spread??e.children.length>1}function wx(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i<r.length;){let e=r[i];if(e.type===`element`&&e.tagName===`li`&&e.properties&&Array.isArray(e.properties.className)&&e.properties.className.includes(`task-list-item`)){n.className=[`contains-task-list`];break}}let a={type:`element`,tagName:t.ordered?`ol`:`ul`,properties:n,children:e.wrap(r,!0)};return e.patch(t,a),e.applyData(t,a)}function Tx(e,t){let n={type:`element`,tagName:`p`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Ex(e,t){let n={type:`root`,children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function Dx(e,t){let n={type:`element`,tagName:`strong`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Ox(e,t){let n=e.all(t),r=n.shift(),i=[];if(r){let n={type:`element`,tagName:`thead`,properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],n),i.push(n)}if(n.length>0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=S_(t.children[1]),o=x_(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function kx(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s<o;){let n=t.children[s],r={},o=a?a[s]:void 0;o&&(r.align=o);let l={type:`element`,tagName:i,properties:r,children:[]};n&&(l.children=e.all(n),e.patch(n,l),l=e.applyData(n,l)),c.push(l)}let l={type:`element`,tagName:`tr`,properties:{},children:e.wrap(c,!0)};return e.patch(t,l),e.applyData(t,l)}function Ax(e,t){let n={type:`element`,tagName:`td`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}var jx=9,Mx=32;function Nx(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),i=0,a=[];for(;r;)a.push(Px(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(Px(t.slice(i),i>0,!1)),a.join(``)}function Px(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===jx||t===Mx;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===jx||t===Mx;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function Fx(e,t){let n={type:`text`,value:Nx(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Ix(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var Lx={blockquote:sx,break:cx,code:lx,delete:ux,emphasis:dx,footnoteReference:fx,heading:px,html:mx,imageReference:gx,image:_x,inlineCode:vx,linkReference:yx,link:bx,listItem:xx,list:wx,paragraph:Tx,root:Ex,strong:Dx,table:Ox,tableCell:Ax,tableRow:kx,text:Fx,thematicBreak:Ix,toml:Rx,yaml:Rx,definition:Rx,footnoteDefinition:Rx};function Rx(){}var zx=typeof self==`object`?self:globalThis,Bx=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new zx[e](t)},Vx=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(typeof zx[e]==`function`?Bx(e,t):Error(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(Bx(a,o),i)};return r},Hx=e=>Vx(new Map,e)(0),Ux=``,{toString:Wx}={},{keys:Gx}=Object,Kx=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Wx.call(e).slice(8,-1);switch(n){case`Array`:return[1,Ux];case`Object`:return[2,Ux];case`Date`:return[3,Ux];case`RegExp`:return[4,Ux];case`Map`:return[5,Ux];case`Set`:return[6,Ux];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:e instanceof Error?[7,e.name||`Error`]:[2,n]},qx=([e,t])=>e===0&&(t===`function`||t===`symbol`),Jx=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Kx(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Gx(r))(e||!qx(Kx(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,isNaN(r.getTime())?Ux:r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(qx(Kx(n))||qx(Kx(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!qx(Kx(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},Yx=(e,{json:t,lossy:n}={})=>{let r=[];return Jx(!(t||n),!!t,new Map,r)(e),r},Xx=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?Hx(Yx(e,t)):structuredClone(e):(e,t)=>Hx(Yx(e,t));function Zx(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function Qx(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function $x(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||Zx,r=e.options.footnoteBackLabel||Qx,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c<e.footnoteOrder.length;){let i=e.footnoteById.get(e.footnoteOrder[c]);if(!i)continue;let a=e.all(i),o=String(i.identifier).toUpperCase(),l=Nv(o.toLowerCase()),u=0,d=[],f=e.footnoteCounts.get(o);for(;f!==void 0&&++u<=f;){d.length>0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...Xx(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:`
|
|
108
|
-
`},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:`
|
|
109
|
-
`}]}}var eS=(function(e){if(e==null)return aS;if(typeof e==`function`)return iS(e);if(typeof e==`object`)return Array.isArray(e)?tS(e):nS(e);if(typeof e==`string`)return rS(e);throw Error(`Expected function, string, or object as test`)});function tS(e){let t=[],n=-1;for(;++n<e.length;)t[n]=eS(e[n]);return iS(r);function r(...e){let n=-1;for(;++n<t.length;)if(t[n].apply(this,e))return!0;return!1}}function nS(e){let t=e;return iS(n);function n(n){let r=n,i;for(i in e)if(r[i]!==t[i])return!1;return!0}}function rS(e){return iS(t);function t(t){return t&&t.type===e}}function iS(e){return t;function t(t,n,r){return!!(oS(t)&&e.call(this,t,typeof n==`number`?n:void 0,r||void 0))}}function aS(){return!0}function oS(e){return typeof e==`object`&&!!e&&`type`in e}function sS(e){return e}var cS=[];function lS(e,t,n,r){let i;typeof t==`function`&&typeof n!=`function`?(r=n,n=t):i=t;let a=eS(i),o=r?-1:1;s(e,void 0,[])();function s(e,i,c){let l=e&&typeof e==`object`?e:{};if(typeof l.type==`string`){let t=typeof l.tagName==`string`?l.tagName:typeof l.name==`string`?l.name:void 0;Object.defineProperty(u,"name",{value:`node (`+sS(e.type+(t?`<`+t+`>`:``))+`)`})}return u;function u(){let l=cS,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=uS(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d<t.children.length;){let e=t.children[d];if(u=s(e,d,f)(),u[0]===!1)return u;d=typeof u[1]==`number`?u[1]:d+o}}return l}}}function uS(e){return Array.isArray(e)?e:typeof e==`number`?[!0,e]:e==null?cS:[e]}function dS(e,t,n,r){let i,a,o;typeof t==`function`&&typeof n!=`function`?(a=void 0,o=t,i=n):(a=t,o=n,i=r),lS(e,a,s,i);function s(e,t){let n=t[t.length-1],r=n?n.children.indexOf(e):void 0;return o(e,r,n)}}var fS={}.hasOwnProperty,pS={};function mS(e,t){let n=t||pS,r=new Map,i=new Map,a={all:s,applyData:gS,definitionById:r,footnoteById:i,footnoteCounts:new Map,footnoteOrder:[],handlers:{...Lx,...n.handlers},one:o,options:n,patch:hS,wrap:vS};return dS(e,function(e){if(e.type===`definition`||e.type===`footnoteDefinition`){let t=e.type===`definition`?r:i,n=String(e.identifier).toUpperCase();t.has(n)||t.set(n,e)}}),a;function o(e,t){let n=e.type,r=a.handlers[n];if(fS.call(a.handlers,n)&&r)return r(a,e,t);if(a.options.passThrough&&a.options.passThrough.includes(n)){if(`children`in e){let{children:t,...n}=e,r=Xx(n);return r.children=a.all(e),r}return Xx(e)}return(a.options.unknownHandler||_S)(a,e,t)}function s(e){let t=[];if(`children`in e){let n=e.children,r=-1;for(;++r<n.length;){let i=a.one(n[r],e);if(i){if(r&&n[r-1].type===`break`&&(!Array.isArray(i)&&i.type===`text`&&(i.value=yS(i.value)),!Array.isArray(i)&&i.type===`element`)){let e=i.children[0];e&&e.type===`text`&&(e.value=yS(e.value))}Array.isArray(i)?t.push(...i):t.push(i)}}}return t}}function hS(e,t){e.position&&(t.position=w_(e))}function gS(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;typeof t==`string`&&(n.type===`element`?n.tagName=t:n={type:`element`,tagName:t,properties:{},children:`children`in n?n.children:[n]}),n.type===`element`&&i&&Object.assign(n.properties,Xx(i)),`children`in n&&n.children&&r!=null&&(n.children=r)}return n}function _S(e,t){let n=t.data||{},r=`value`in t&&!(fS.call(n,`hProperties`)||fS.call(n,`hChildren`))?{type:`text`,value:t.value}:{type:`element`,tagName:`div`,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function vS(e,t){let n=[],r=-1;for(t&&n.push({type:`text`,value:`
|
|
110
|
-
`});++r<e.length;)r&&n.push({type:`text`,value:`
|
|
111
|
-
`}),n.push(e[r]);return t&&e.length>0&&n.push({type:`text`,value:`
|
|
112
|
-
`}),n}function yS(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function bS(e,t){let n=mS(e,t),r=n.one(e,void 0),i=$x(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:`
|
|
113
|
-
`},i)),a}function xS(e,t){return e&&`run`in e?async function(n,r){let i=bS(n,{file:r,...t});await e.run(i,r)}:function(n,r){return bS(n,{file:r,...e||t})}}function SS(e){if(e)throw e}var CS=o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});f<p;++f)if(t=arguments[f],t!=null)for(n in t)r=l(d,n),i=l(t,n),d!==i&&(m&&i&&(s(i)||(a=o(i)))?(a?(a=!1,u=r&&o(r)?r:[]):u=r&&s(r)?r:{},c(d,{name:n,newValue:e(m,u,i)})):i!==void 0&&c(d,{name:n,newValue:i}));return d}}));function wS(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function TS(){let e=[],t={run:n,use:r};return t;function n(...t){let n=-1,r=t.pop();if(typeof r!=`function`)throw TypeError(`Expected function as last argument, not `+r);i(null,...t);function i(a,...o){let s=e[++n],c=-1;if(a){r(a);return}for(;++c<t.length;)(o[c]===null||o[c]===void 0)&&(o[c]=t[c]);t=o,s?ES(s,i)(...o):r(null,...o)}}function r(n){if(typeof n!=`function`)throw TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}}function ES(e,t){let n;return r;function r(...t){let r=e.length>t.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var DS={basename:OS,dirname:kS,extname:AS,join:jS,sep:`/`};function OS(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);PS(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function kS(e){if(PS(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function AS(e){PS(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function jS(...e){let t=-1,n;for(;++t<e.length;)PS(e[t]),e[t]&&(n=n===void 0?e[t]:n+`/`+e[t]);return n===void 0?`.`:MS(n)}function MS(e){PS(e);let t=e.codePointAt(0)===47,n=NS(e,!t);return n.length===0&&!t&&(n=`.`),n.length>0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function NS(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o<e.length)s=e.codePointAt(o);else if(s===47)break;else s=47;if(s===47){if(i!==o-1&&a!==1){if(i!==o-1&&a===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1}i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function PS(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var FS={cwd:IS};function IS(){return`/`}function LS(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function RS(e){if(typeof e==`string`)e=new URL(e);else if(!LS(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return zS(e)}function zS(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){let e=t.codePointAt(n+2);if(e===70||e===102){let e=TypeError(`File URL path must not include encoded / characters`);throw e.code=`ERR_INVALID_FILE_URL_PATH`,e}}return decodeURIComponent(t)}var BS=[`history`,`path`,`basename`,`stem`,`extname`,`dirname`],VS=class{constructor(e){let t;t=e?LS(e)?{path:e}:typeof e==`string`||GS(e)?{value:e}:e:{},this.cwd=`cwd`in t?``:FS.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let n=-1;for(;++n<BS.length;){let e=BS[n];e in t&&t[e]!==void 0&&t[e]!==null&&(this[e]=e===`history`?[...t[e]]:t[e])}let r;for(r in t)BS.includes(r)||(this[r]=t[r])}get basename(){return typeof this.path==`string`?DS.basename(this.path):void 0}set basename(e){US(e,`basename`),HS(e,`basename`),this.path=DS.join(this.dirname||``,e)}get dirname(){return typeof this.path==`string`?DS.dirname(this.path):void 0}set dirname(e){WS(this.basename,`dirname`),this.path=DS.join(e||``,this.basename)}get extname(){return typeof this.path==`string`?DS.extname(this.path):void 0}set extname(e){if(HS(e,`extname`),WS(this.dirname,`extname`),e){if(e.codePointAt(0)!==46)throw Error("`extname` must start with `.`");if(e.includes(`.`,1))throw Error("`extname` cannot contain multiple dots")}this.path=DS.join(this.dirname,this.stem+(e||``))}get path(){return this.history[this.history.length-1]}set path(e){LS(e)&&(e=RS(e)),US(e,`path`),this.path!==e&&this.history.push(e)}get stem(){return typeof this.path==`string`?DS.basename(this.path,this.extname):void 0}set stem(e){US(e,`stem`),HS(e,`stem`),this.path=DS.join(this.dirname||``,e+(this.extname||``))}fail(e,t,n){let r=this.message(e,t,n);throw r.fatal=!0,r}info(e,t,n){let r=this.message(e,t,n);return r.fatal=void 0,r}message(e,t,n){let r=new k_(e,t,n);return this.path&&(r.name=this.path+`:`+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}toString(e){return this.value===void 0?``:typeof this.value==`string`?this.value:new TextDecoder(e||void 0).decode(this.value)}};function HS(e,t){if(e&&e.includes(DS.sep))throw Error("`"+t+"` cannot be a path: did not expect `"+DS.sep+"`")}function US(e,t){if(!e)throw Error("`"+t+"` cannot be empty")}function WS(e,t){if(!e)throw Error("Setting `"+t+"` requires `path` to be set too")}function GS(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var KS=(function(e){let t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r}),qS=l(CS(),1),JS={}.hasOwnProperty,YS=new class e extends KS{constructor(){super(`copy`),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=TS()}copy(){let t=new e,n=-1;for(;++n<this.attachers.length;){let e=this.attachers[n];t.use(...e)}return t.data((0,qS.default)(!0,{},this.namespace)),t}data(e,t){return typeof e==`string`?arguments.length===2?(QS(`data`,this.frozen),this.namespace[e]=t,this):JS.call(this.namespace,e)&&this.namespace[e]||void 0:e?(QS(`data`,this.frozen),this.namespace=e,this):this.namespace}freeze(){if(this.frozen)return this;let e=this;for(;++this.freezeIndex<this.attachers.length;){let[t,...n]=this.attachers[this.freezeIndex];if(n[0]===!1)continue;n[0]===!0&&(n[0]=void 0);let r=t.call(e,...n);typeof r==`function`&&this.transformers.use(r)}return this.frozen=!0,this.freezeIndex=1/0,this}parse(e){this.freeze();let t=tC(e),n=this.parser||this.Parser;return XS(`parse`,n),n(String(t),t)}process(e,t){let n=this;return this.freeze(),XS(`process`,this.parser||this.Parser),ZS(`process`,this.compiler||this.Compiler),t?r(void 0,t):new Promise(r);function r(r,i){let a=tC(e),o=n.parse(a);n.run(o,a,function(e,t,r){if(e||!t||!r)return s(e);let i=t,a=n.stringify(i,r);rC(a)?r.value=a:r.result=a,s(e,r)});function s(e,n){e||!n?i(e):r?r(n):t(void 0,n)}}}processSync(e){let t=!1,n;return this.freeze(),XS(`processSync`,this.parser||this.Parser),ZS(`processSync`,this.compiler||this.Compiler),this.process(e,r),eC(`processSync`,`process`,t),n;function r(e,r){t=!0,SS(e),n=r}}run(e,t,n){$S(e),this.freeze();let r=this.transformers;return!n&&typeof t==`function`&&(n=t,t=void 0),n?i(void 0,n):new Promise(i);function i(i,a){let o=tC(t);r.run(e,o,s);function s(t,r,o){let s=r||e;t?a(t):i?i(s):n(void 0,s,o)}}}runSync(e,t){let n=!1,r;return this.run(e,t,i),eC(`runSync`,`run`,n),r;function i(e,t){SS(e),r=t,n=!0}}stringify(e,t){this.freeze();let n=tC(t),r=this.compiler||this.Compiler;return ZS(`stringify`,r),$S(e),r(e,n)}use(e,...t){let n=this.attachers,r=this.namespace;if(QS(`use`,this.frozen),e!=null){if(typeof e==`function`)s(e,t);else if(typeof e==`object`)Array.isArray(e)?o(e):a(e);else throw TypeError("Expected usable value, not `"+e+"`")}return this;function i(e){if(typeof e==`function`)s(e,[]);else if(typeof e==`object`){if(Array.isArray(e)){let[t,...n]=e;s(t,n)}else a(e)}else throw TypeError("Expected usable value, not `"+e+"`")}function a(e){if(!(`plugins`in e)&&!(`settings`in e))throw Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");o(e.plugins),e.settings&&(r.settings=(0,qS.default)(!0,r.settings,e.settings))}function o(e){let t=-1;if(e!=null){if(Array.isArray(e))for(;++t<e.length;){let n=e[t];i(n)}else throw TypeError("Expected a list of plugins, not `"+e+"`")}}function s(e,t){let r=-1,i=-1;for(;++r<n.length;)if(n[r][0]===e){i=r;break}if(i===-1)n.push([e,...t]);else if(t.length>0){let[r,...a]=t,o=n[i][1];wS(o)&&wS(r)&&(r=(0,qS.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function XS(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function ZS(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function QS(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function $S(e){if(!wS(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function eC(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function tC(e){return nC(e)?e:new VS(e)}function nC(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function rC(e){return typeof e==`string`||iC(e)}function iC(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var aC=[],oC={allowDangerousHtml:!0},sC=/^(https?|ircs?|mailto|xmpp)$/i,cC=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function lC(e){let t=uC(e),n=dC(e);return fC(t.runSync(t.parse(n),n),e)}function uC(e){let t=e.rehypePlugins||aC,n=e.remarkPlugins||aC,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...oC}:oC;return YS().use(ox).use(n).use(xS,r).use(t)}function dC(e){let t=e.children||``,n=new VS;return typeof t==`string`?n.value=t:``+t,n}function fC(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||pC;for(let e of cC)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return dS(e,l),L_(e,{Fragment:U.Fragment,components:i,ignoreInvalidStyle:!0,jsx:U.jsx,jsxs:U.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in av)if(Object.hasOwn(av,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=av[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function pC(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||sC.test(e.slice(0,t))?e:``}function mC(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function hC(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}function gC(e,t,n){let r=eS((n||{}).ignore||[]),i=_C(t),a=-1;for(;++a<i.length;)lS(e,`text`,o);function o(e,t){let n=-1,i;for(;++n<t.length;){let e=t[n],a=i?i.children:void 0;if(r(e,a?a.indexOf(e):void 0,i))return;i=e}if(i)return s(e,t)}function s(e,t){let n=t[t.length-1],r=i[a][0],o=i[a][1],s=0,c=n.children.indexOf(e),l=!1,u=[];r.lastIndex=0;let d=r.exec(e.value);for(;d;){let n=d.index,i={index:d.index,input:d.input,stack:[...t,e]},a=o(...d,i);if(typeof a==`string`&&(a=a.length>0?{type:`text`,value:a}:void 0),a===!1?r.lastIndex=n+1:(s!==n&&u.push({type:`text`,value:e.value.slice(s,n)}),Array.isArray(a)?u.push(...a):a&&u.push(a),s=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}return l?(s<e.value.length&&u.push({type:`text`,value:e.value.slice(s)}),n.children.splice(c,1,...u)):u=[e],c+u.length}}function _C(e){let t=[];if(!Array.isArray(e))throw TypeError(`Expected find and replace tuple or list of tuples`);let n=!e[0]||Array.isArray(e[0])?e:[e],r=-1;for(;++r<n.length;){let e=n[r];t.push([vC(e[0]),yC(e[1])])}return t}function vC(e){return typeof e==`string`?new RegExp(hC(e),`g`):e}function yC(e){return typeof e==`function`?e:function(){return e}}var bC=`phrasing`,xC=[`autolink`,`link`,`image`,`label`];function SC(){return{transforms:[AC],enter:{literalAutolink:wC,literalAutolinkEmail:TC,literalAutolinkHttp:TC,literalAutolinkWww:TC},exit:{literalAutolink:kC,literalAutolinkEmail:OC,literalAutolinkHttp:EC,literalAutolinkWww:DC}}}function CC(){return{unsafe:[{character:`@`,before:`[+\\-.\\w]`,after:`[\\-.\\w]`,inConstruct:bC,notInConstruct:xC},{character:`.`,before:`[Ww]`,after:`[\\-.\\w]`,inConstruct:bC,notInConstruct:xC},{character:`:`,before:`[ps]`,after:`\\/`,inConstruct:bC,notInConstruct:xC}]}}function wC(e){this.enter({type:`link`,title:null,url:``,children:[]},e)}function TC(e){this.config.enter.autolinkProtocol.call(this,e)}function EC(e){this.config.exit.autolinkProtocol.call(this,e)}function DC(e){this.config.exit.data.call(this,e);let t=this.stack[this.stack.length-1];t.type,t.url=`http://`+this.sliceSerialize(e)}function OC(e){this.config.exit.autolinkEmail.call(this,e)}function kC(e){this.exit(e)}function AC(e){gC(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,jC],[/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu,MC]],{ignore:[`link`,`linkReference`]})}function jC(e,t,n,r,i){let a=``;if(!FC(i)||(/^w/i.test(t)&&(n=t+n,t=``,a=`http://`),!NC(n)))return!1;let o=PC(n+r);if(!o[0])return!1;let s={type:`link`,title:null,url:a+t+o[0],children:[{type:`text`,value:t+o[0]}]};return o[1]?[s,{type:`text`,value:o[1]}]:s}function MC(e,t,n,r){return!FC(r,!0)||/[-\d_]$/.test(n)?!1:{type:`link`,title:null,url:`mailto:`+t+`@`+n,children:[{type:`text`,value:t+`@`+n}]}}function NC(e){let t=e.split(`.`);return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function PC(e){let t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(`)`),i=mC(e,`(`),a=mC(e,`)`);for(;r!==-1&&i>a;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(`)`),a++;return[e,n]}function FC(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||jv(n)||Av(n))&&(!t||n!==47)}GC.peek=WC;function IC(){this.buffer()}function LC(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function RC(){this.buffer()}function zC(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function BC(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=bv(this.sliceSerialize(e)).toLowerCase(),n.label=t}function VC(e){this.exit(e)}function HC(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=bv(this.sliceSerialize(e)).toLowerCase(),n.label=t}function UC(e){this.exit(e)}function WC(){return`[`}function GC(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function KC(){return{enter:{gfmFootnoteCallString:IC,gfmFootnoteCall:LC,gfmFootnoteDefinitionLabelString:RC,gfmFootnoteDefinition:zC},exit:{gfmFootnoteCallString:BC,gfmFootnoteCall:VC,gfmFootnoteDefinitionLabelString:HC,gfmFootnoteDefinition:UC}}}function qC(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:GC},unsafe:[{character:`[`,inConstruct:[`label`,`phrasing`,`reference`]}]};function n(e,n,r,i){let a=r.createTracker(i),o=a.move(`[^`),s=r.enter(`footnoteDefinition`),c=r.enter(`label`);return o+=a.move(r.safe(r.associationId(e),{before:o,after:`]`})),c(),o+=a.move(`]:`),e.children&&e.children.length>0&&(a.shift(4),o+=a.move((t?`
|
|
114
|
-
`:` `)+r.indentLines(r.containerFlow(e,a.current()),t?YC:JC))),s(),o}}function JC(e,t,n){return t===0?e:YC(e,t,n)}function YC(e,t,n){return(n?``:` `)+e}var XC=[`autolink`,`destinationLiteral`,`destinationRaw`,`reference`,`titleQuote`,`titleApostrophe`];tw.peek=nw;function ZC(){return{canContainEols:[`delete`],enter:{strikethrough:$C},exit:{strikethrough:ew}}}function QC(){return{unsafe:[{character:`~`,inConstruct:`phrasing`,notInConstruct:XC}],handlers:{delete:tw}}}function $C(e){this.enter({type:`delete`,children:[]},e)}function ew(e){this.exit(e)}function tw(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function nw(){return`~`}function rw(e){return e.length}function iw(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||rw,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++u<e.length;){let t=[],r=[],a=-1;for(e[u].length>l&&(l=e[u].length);++a<e[u].length;){let o=aw(e[u][a]);if(n.alignDelimiters!==!1){let e=i(o);r[a]=e,(c[a]===void 0||e>c[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++d<l;)a[d]=ow(r[d]);else{let e=ow(r);for(;++d<l;)a[d]=e}d=-1;let f=[],p=[];for(;++d<l;){let e=a[d],t=``,r=``;e===99?(t=`:`,r=`:`):e===108?t=`:`:e===114&&(r=`:`);let i=n.alignDelimiters===!1?1:Math.max(1,c[d]-t.length-r.length),o=t+`-`.repeat(i)+r;n.alignDelimiters!==!1&&(i=t.length+i+r.length,i>c[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++u<o.length;){let e=o[u],t=s[u];d=-1;let r=[];for(;++d<l;){let i=e[d]||``,o=``,s=``;if(n.alignDelimiters!==!1){let e=c[d]-(t[d]||0),n=a[d];n===114?o=` `.repeat(e):n===99?e%2?(o=` `.repeat(e/2+.5),s=` `.repeat(e/2-.5)):(o=` `.repeat(e/2),s=o):s=` `.repeat(e)}n.delimiterStart!==!1&&!d&&r.push(`|`),n.padding!==!1&&(n.alignDelimiters!==!1||i!==``)&&(n.delimiterStart!==!1||d)&&r.push(` `),n.alignDelimiters!==!1&&r.push(o),r.push(i),n.alignDelimiters!==!1&&r.push(s),n.padding!==!1&&r.push(` `),(n.delimiterEnd!==!1||d!==l-1)&&r.push(`|`)}m.push(n.delimiterEnd===!1?r.join(``).replace(/ +$/,``):r.join(``))}return m.join(`
|
|
115
|
-
`)}function aw(e){return e==null?``:String(e)}function ow(e){let t=typeof e==`string`?e.codePointAt(0):0;return t===67||t===99?99:t===76||t===108?108:t===82||t===114?114:0}function sw(e,t,n,r){let i=n.enter(`blockquote`),a=n.createTracker(r);a.move(`> `),a.shift(2);let o=n.indentLines(n.containerFlow(e,a.current()),cw);return i(),o}function cw(e,t,n){return`>`+(n?``:` `)+e}function lw(e,t){return uw(e,t.inConstruct,!0)&&!uw(e,t.notInConstruct,!1)}function uw(e,t,n){if(typeof t==`string`&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function dw(e,t,n,r){let i=-1;for(;++i<n.unsafe.length;)if(n.unsafe[i].character===`
|
|
116
|
-
`&&lw(n.stack,n.unsafe[i]))return/[ \t]/.test(r.before)?``:` `;return`\\
|
|
117
|
-
`}function fw(e,t){let n=String(e),r=n.indexOf(t),i=r,a=0,o=0;if(typeof t!=`string`)throw TypeError(`Expected substring`);for(;r!==-1;)r===i?++a>o&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function pw(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function mw(e){let t=e.options.fence||"`";if(t!=="`"&&t!==`~`)throw Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function hw(e,t,n,r){let i=mw(n),a=e.value||``,o=i==="`"?`GraveAccent`:`Tilde`;if(pw(e,n)){let e=n.enter(`codeIndented`),t=n.indentLines(a,gw);return e(),t}let s=n.createTracker(r),c=i.repeat(Math.max(fw(a,i)+1,3)),l=n.enter(`codeFenced`),u=s.move(c);if(e.lang){let t=n.enter(`codeFencedLang${o}`);u+=s.move(n.safe(e.lang,{before:u,after:` `,encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){let t=n.enter(`codeFencedMeta${o}`);u+=s.move(` `),u+=s.move(n.safe(e.meta,{before:u,after:`
|
|
118
|
-
`,encode:["`"],...s.current()})),t()}return u+=s.move(`
|
|
119
|
-
`),a&&(u+=s.move(a+`
|
|
120
|
-
`)),u+=s.move(c),l(),u}function gw(e,t,n){return(n?``:` `)+e}function _w(e){let t=e.options.quote||`"`;if(t!==`"`&&t!==`'`)throw Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function vw(e,t,n,r){let i=_w(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`definition`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`[`);return l+=c.move(n.safe(n.associationId(e),{before:l,after:`]`,...c.current()})),l+=c.move(`]: `),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`
|
|
121
|
-
`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),o(),l}function yw(e){let t=e.options.emphasis||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function bw(e){return`&#x`+e.toString(16).toUpperCase()+`;`}function xw(e,t,n){let r=Vv(e),i=Vv(t);return r===void 0?i===void 0?n===`_`?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Sw.peek=Cw;function Sw(e,t,n,r){let i=yw(n),a=n.enter(`emphasis`),o=n.createTracker(r),s=o.move(i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=xw(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=bw(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=xw(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+bw(d));let p=o.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Cw(e,t,n){return n.options.emphasis||`*`}function ww(e,t){let n=!1;return dS(e,function(e){if(`value`in e&&/\r?\n|\r/.test(e.value)||e.type===`break`)return n=!0,!1}),!!((!e.depth||e.depth<3)&&sv(e)&&(t.options.setext||n))}function Tw(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),a=n.createTracker(r);if(ww(e,n)){let t=n.enter(`headingSetext`),r=n.enter(`phrasing`),o=n.containerPhrasing(e,{...a.current(),before:`
|
|
122
|
-
`,after:`
|
|
123
|
-
`});return r(),t(),o+`
|
|
124
|
-
`+(i===1?`=`:`-`).repeat(o.length-(Math.max(o.lastIndexOf(`\r`),o.lastIndexOf(`
|
|
125
|
-
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
126
|
-
`,...a.current()});return/^[\t ]/.test(l)&&(l=bw(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}Ew.peek=Dw;function Ew(e){return e.value||``}function Dw(){return`<`}Ow.peek=kw;function Ow(e,t,n,r){let i=_w(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function kw(){return`!`}Aw.peek=jw;function Aw(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function jw(){return`!`}Mw.peek=Nw;function Mw(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function Nw(){return"`"}function Pw(e,t){let n=sv(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}Fw.peek=Iw;function Fw(e,t,n,r){let i=_w(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(Pw(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function Iw(e,t,n){return Pw(e,n)?`<`:`[`}Lw.peek=Rw;function Lw(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function Rw(){return`[`}function zw(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function Bw(e){let t=zw(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Vw(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Hw(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Uw(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?Vw(n):zw(n),s=e.ordered?o===`.`?`)`:`.`:Bw(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),Hw(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function Ww(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function Gw(e,t,n,r){let i=Ww(n),a=n.bulletCurrent||zw(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function Kw(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var qw=eS([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function Jw(e,t,n,r){return(e.children.some(function(e){return qw(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Yw(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Xw.peek=Zw;function Xw(e,t,n,r){let i=Yw(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=xw(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=bw(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=xw(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+bw(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Zw(e,t,n){return n.options.strong||`*`}function Qw(e,t,n,r){return n.safe(e.value,r)}function $w(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function eT(e,t,n){let r=(Hw(n)+(n.options.ruleSpaces?` `:``)).repeat($w(n));return n.options.ruleSpaces?r.slice(0,-1):r}var tT={blockquote:sw,break:dw,code:hw,definition:vw,emphasis:Sw,hardBreak:dw,heading:Tw,html:Ew,image:Ow,imageReference:Aw,inlineCode:Mw,link:Fw,linkReference:Lw,list:Uw,listItem:Gw,paragraph:Kw,root:Jw,strong:Xw,text:Qw,thematicBreak:eT};function nT(){return{enter:{table:rT,tableData:sT,tableHeader:sT,tableRow:aT},exit:{codeText:cT,table:iT,tableData:oT,tableHeader:oT,tableRow:oT}}}function rT(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function iT(e){this.exit(e),this.data.inTable=void 0}function aT(e){this.enter({type:`tableRow`,children:[]},e)}function oT(e){this.exit(e)}function sT(e){this.enter({type:`tableCell`,children:[]},e)}function cT(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,lT));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function lT(e,t){return t===`|`?t:e}function uT(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
127
|
-
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
128
|
-
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return iw(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=tT.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function dT(){return{exit:{taskListCheckValueChecked:pT,taskListCheckValueUnchecked:pT,paragraph:mT}}}function fT(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:hT}}}function pT(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function mT(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function hT(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=tT.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function gT(){return[SC(),KC(),ZC(),nT(),dT()]}function _T(e){return{extensions:[CC(),qC(e),QC(),uT(e),fT()]}}var vT={tokenize:MT,partial:!0},yT={tokenize:NT,partial:!0},bT={tokenize:PT,partial:!0},xT={tokenize:FT,partial:!0},ST={tokenize:IT,partial:!0},CT={name:`wwwAutolink`,tokenize:AT,previous:LT},wT={name:`protocolAutolink`,tokenize:jT,previous:RT},TT={name:`emailAutolink`,tokenize:kT,previous:zT},ET={};function DT(){return{text:ET}}for(var OT=48;OT<123;)ET[OT]=TT,OT++,OT===58?OT=65:OT===91&&(OT=97);ET[43]=TT,ET[45]=TT,ET[46]=TT,ET[95]=TT,ET[72]=[TT,wT],ET[104]=[TT,wT],ET[87]=[TT,CT],ET[119]=[TT,CT];function kT(e,t,n){let r=this,i,a;return o;function o(t){return!BT(t)||!zT.call(r,r.previous)||VT(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return BT(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(ST,u,l)(t):t===45||t===95||Sv(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&xv(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function AT(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!LT.call(r,r.previous)||VT(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(vT,e.attempt(yT,e.attempt(bT,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function jT(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&RT.call(r,r.previous)&&!VT(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(xv(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||wv(t)||Ov(t)||jv(t)||Av(t)?n(t):e.attempt(yT,e.attempt(bT,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function MT(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function NT(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(xT,c,s)(t):t===null||Ov(t)||jv(t)||t!==45&&Av(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function PT(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(xT,t,a)(o):o===null||Ov(o)||jv(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function FT(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||Ov(o)||jv(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||Ov(e)||jv(e)?t(e):r(e)}function a(e){return xv(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):xv(t)?(e.consume(t),o):n(t)}}function IT(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return Sv(e)?n(e):t(e)}}function LT(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||Ov(e)}function RT(e){return!xv(e)}function zT(e){return!(e===47||BT(e))}function BT(e){return e===43||e===45||e===46||e===95||Sv(e)}function VT(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var HT={tokenize:XT,partial:!0};function UT(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:qT,continuation:{tokenize:JT},exit:YT}},text:{91:{name:`gfmFootnoteCall`,tokenize:KT},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:WT,resolveTo:GT}}}}function WT(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=bv(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function GT(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function KT(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||Ov(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(bv(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return Ov(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function qT(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||Ov(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=bv(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return Ov(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Pv(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function JT(e,t,n){return e.check(Yv,t,e.attempt(HT,t,n))}function YT(e){e.exit(`gfmFootnoteDefinition`)}function XT(e,t,n){let r=this;return Pv(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function ZT(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&pv(o,o.length,0,Hv(s,e.slice(r+1,n),t)),pv(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),pv(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Vv(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Vv(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var QT=class{constructor(){this.map=[]}add(e,t,n){$T(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function $T(e,t,n,r){let i=0;if(n!==0||r.length!==0){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function eE(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function tE(){return{flow:{null:{name:`table`,tokenize:nE,resolveAll:rE}}}}function nE(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):$(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):kv(t)?Pv(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||Ov(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,kv(t)?Pv(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return kv(t)?Pv(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||$(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return kv(t)?Pv(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||$(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||$(n)?(e.exit(`tableRow`),t(n)):kv(n)?Pv(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||Ov(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function rE(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new QT;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(aE(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=iE(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=iE(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=iE(f,t,o,i,n,d)):(o[0]=o[1],d=iE(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&aE(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=eE(t.events,n))}return e}function iE(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},oE(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=oE(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=oE(t.events,n[2]),a=oE(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},oE(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function aE(e,t,n,r,i){let a=[],o=oE(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function oE(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var sE={name:`tasklistCheck`,tokenize:lE};function cE(){return{text:{91:sE}}}function lE(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return Ov(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return $(r)?t(r):kv(r)?e.check({tokenize:uE},t,n)(r):n(r)}}function uE(e,t,n){return Pv(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function dE(e){return gv([DT(),UT(),ZT(e),tE(),cE()])}var fE={};function pE(e){let t=this,n=e||fE,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(dE(n)),a.push(gT()),o.push(_T(n))}function mE(e){let t=e.replace(/[\\/]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n===-1?t:t.slice(n+1)}function hE(e,t){return e?`${e}/${t}`:t}function gE(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function _E(e,t){return t===``||e===t||e.startsWith(`${t}/`)}function vE(e,t){return t?t===`win32`?`\\`:`/`:/^[A-Za-z]:|\\/.test(e)?`\\`:`/`}function yE(e,t){return t===`/`?e:e.replace(/\//g,`\\`)}function bE(e,t,n){let r=vE(e,n),i=r===`\\`?e.replace(/\//g,`\\`):e;return t?`${i.replace(/[\\/]+$/,``)}${r}${yE(t,r)}`:i}var xE=Object.fromEntries(Object.entries({ts:[`ts`,`mts`,`cts`],tsx:[`tsx`],js:[`js`,`mjs`,`cjs`],jsx:[`jsx`],json:[`json`,`jsonc`,`json5`,`jsonl`,`ndjson`,`webmanifest`,`geojson`],markdown:[`md`,`mdx`,`markdown`],python:[`py`,`pyi`,`pyw`],rust:[`rs`],go:[`go`],java:[`java`],kotlin:[`kt`,`kts`],groovy:[`groovy`,`gradle`],scala:[`scala`,`sbt`],csharp:[`cs`,`csx`],fsharp:[`fs`,`fsx`,`fsi`],vb:[`vb`],c:[`c`,`h`],cpp:[`cpp`,`cc`,`cxx`,`hpp`,`hh`,`hxx`,`ino`],swift:[`swift`],dart:[`dart`],php:[`php`],ruby:[`rb`,`rake`,`gemspec`,`erb`],perl:[`pl`,`pm`],lua:[`lua`],r:[`r`,`rmd`],julia:[`jl`],zig:[`zig`],elixir:[`ex`,`exs`],erlang:[`erl`,`hrl`],haskell:[`hs`],clojure:[`clj`,`cljs`,`cljc`,`edn`],ocaml:[`ml`,`mli`],solidity:[`sol`],vue:[`vue`],svelte:[`svelte`],astro:[`astro`],html:[`html`,`htm`,`xhtml`],css:[`css`],scss:[`scss`,`sass`],less:[`less`],xml:[`xml`,`svg`,`xsd`,`xsl`,`xslt`,`xaml`,`plist`,`resx`,`nuspec`],msbuild:[`csproj`,`vbproj`,`fsproj`,`vcxproj`,`props`,`targets`],yaml:[`yml`,`yaml`],toml:[`toml`],ini:[`ini`,`cfg`,`conf`,`properties`,`env`,`editorconfig`],graphql:[`graphql`,`gql`],proto:[`proto`],prisma:[`prisma`],hcl:[`tf`,`tfvars`,`hcl`],sql:[`sql`],powershell:[`ps1`,`psm1`,`psd1`],bash:[`sh`,`bash`,`zsh`,`ksh`],fish:[`fish`],batch:[`bat`,`cmd`],dockerfile:[`dockerfile`,`containerfile`],makefile:[`mk`,`mak`],cmake:[`cmake`],diff:[`diff`,`patch`],latex:[`tex`,`sty`,`cls`,`bib`],rst:[`rst`],asciidoc:[`adoc`,`asciidoc`],glsl:[`glsl`,`vert`,`frag`,`wgsl`,`hlsl`],csv:[`csv`],tsv:[`tsv`],text:[`txt`,`text`,`log`,`lock`,`out`,`nfo`]}).flatMap(([e,t])=>t.map(t=>[t,e]))),SE={dockerfile:`dockerfile`,containerfile:`dockerfile`,makefile:`makefile`,gnumakefile:`makefile`,"cmakelists.txt":`cmake`,jenkinsfile:`groovy`,gemfile:`ruby`,rakefile:`ruby`,podfile:`ruby`,vagrantfile:`ruby`,brewfile:`ruby`,procfile:`text`,license:`text`,licence:`text`,readme:`text`,changelog:`text`,authors:`text`,contributors:`text`,codeowners:`text`,notice:`text`,copying:`text`,".gitignore":`gitignore`,".gitattributes":`gitignore`,".dockerignore":`gitignore`,".npmignore":`gitignore`,".prettierignore":`gitignore`,".eslintignore":`gitignore`,".vscodeignore":`gitignore`,".gitmodules":`ini`,".editorconfig":`ini`,".npmrc":`ini`,".yarnrc":`ini`,".nvmrc":`text`,".node-version":`text`,".python-version":`text`,".tool-versions":`text`,".prettierrc":`json`,".eslintrc":`json`,".babelrc":`json`,".swcrc":`json`,".bashrc":`bash`,".bash_profile":`bash`,".zshrc":`bash`,".profile":`bash`};function CE(e){let t=e.toLowerCase();return SE[t]||(/^\.env(\..+)?$/.test(t)?`dotenv`:/^(docker|container)file\..+$/.test(t)?`dockerfile`:null)}function wE(e){let t=mE(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function TE(e){if(!e)return null;let t=CE(mE(e));if(t)return t;let n=wE(e);return xE[n]??(n||null)}var EE=Object.fromEntries(Object.entries({image:{png:`image/png`,apng:`image/apng`,jpg:`image/jpeg`,jpeg:`image/jpeg`,jfif:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,bmp:`image/bmp`,ico:`image/x-icon`,cur:`image/x-icon`,svg:`image/svg+xml`,avif:`image/avif`},audio:{mp3:`audio/mpeg`,wav:`audio/wav`,ogg:`audio/ogg`,oga:`audio/ogg`,opus:`audio/ogg`,m4a:`audio/mp4`,flac:`audio/flac`,aac:`audio/aac`,weba:`audio/webm`},video:{mp4:`video/mp4`,m4v:`video/mp4`,mov:`video/mp4`,webm:`video/webm`,ogv:`video/ogg`},pdf:{pdf:`application/pdf`}}).flatMap(([e,t])=>Object.entries(t).map(([t,n])=>[t,{kind:e,mime:n}])));function DE(e){let t=wE(e),n=EE[t];return n?{kind:n.kind,mime:n.mime}:xE[t]===`markdown`?{kind:`markdown`,mime:null}:CE(mE(e))||xE[t]?{kind:`text`,mime:null}:{kind:`unknown`,mime:null}}var OE=(e,t,n)=>e.length>=t+n.length&&[...n].every((n,r)=>e[t+r]===n.charCodeAt(0)),kE=(e,t)=>e.length>=t.length&&t.every((t,n)=>e[n]===t),AE=new Set([`avif`,`avis`]),jE=new Set([`M4A `,`M4B `,`M4P `]),ME=new Set([`heic`,`heix`,`hevc`,`heim`,`heis`,`mif1`,`msf1`]);function NE(e){let t=e=>({kind:`image`,mime:e}),n=e=>({kind:`audio`,mime:e});if(kE(e,[137,80,78,71,13,10,26,10]))return t(`image/png`);if(kE(e,[255,216,255]))return t(`image/jpeg`);if(OE(e,0,`GIF87a`)||OE(e,0,`GIF89a`))return t(`image/gif`);if(OE(e,0,`RIFF`)&&OE(e,8,`WEBP`))return t(`image/webp`);if(OE(e,0,`RIFF`)&&OE(e,8,`WAVE`))return n(`audio/wav`);if(OE(e,0,`BM`)&&[12,40,52,56,64,108,124].includes(e[14]??-1)&&e[15]===0&&e[16]===0&&e[17]===0)return t(`image/bmp`);if(kE(e,[0,0,1,0])&&((e[4]??0)>0||(e[5]??0)>0))return t(`image/x-icon`);if(OE(e,0,`%PDF-`))return{kind:`pdf`,mime:`application/pdf`};if(OE(e,0,`ID3`))return n(`audio/mpeg`);if(OE(e,0,`OggS`))return n(`audio/ogg`);if(OE(e,0,`fLaC`))return n(`audio/flac`);if(kE(e,[26,69,223,163]))return{kind:`video`,mime:`video/webm`};if(OE(e,4,`ftyp`)&&e.length>=12){let r=String.fromCharCode(...e.subarray(8,12));return AE.has(r)?t(`image/avif`):jE.has(r)?n(`audio/mp4`):ME.has(r)?null:{kind:`video`,mime:`video/mp4`}}return null}var PE=8192;function FE(e){return e.subarray(0,PE).includes(0)}function IE(e){return e.slice(0,PE).includes(`\0`)}function LE(e){try{return e[0]===255&&e[1]===254?new TextDecoder(`utf-16le`).decode(e.subarray(2)):e[0]===254&&e[1]===255?new TextDecoder(`utf-16be`).decode(e.subarray(2)):FE(e)?null:new TextDecoder(`utf-8`).decode(e)}catch{return null}}function RE(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e[n],t=Math.imul(t,16777619);return`${e.length}:${(t>>>0).toString(16)}`}function zE(e){return!Number.isFinite(e)||e<0?``:e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(+(e<10240))} KB`:e<1073741824?`${(e/1048576).toFixed(1)} MB`:`${(e/1073741824).toFixed(2)} GB`}var BE=/^[A-Za-z]:[\\/]/,VE=/^[\\/]{2}/,HE=/^[A-Za-z][A-Za-z0-9+.-]*:/,UE=/\.(?=[A-Za-z0-9]{0,9}[A-Za-z])[A-Za-z0-9]{1,10}$/,WE=/#L\d+(?:C\d+)?(?:-L?\d+(?:C\d+)?)?$/,GE=/(\.[A-Za-z0-9]{1,10}):\d+(?::\d+)?$/,KE=/[*?"<>|]/;function qE(e){return VE.test(e)?null:BE.test(e)||e.startsWith(`/`)?`abs`:/^~[\\/]/.test(e)?`home`:HE.test(e)?null:`rel`}function JE(e){let t=e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1);return t.lastIndexOf(`.`)>0&&UE.test(t)}function YE(e){return/[\\/]$/.test(e)||!JE(e)}function XE(e){return/[^\\/~]/.test(BE.test(e)?e.slice(2):e)}function ZE(e){return e.replace(WE,``).replace(GE,`$1`)}function QE(e){if(!e.includes(`%`))return e;try{return decodeURIComponent(e)}catch{return e}}function $E(e){let t=/^file:(\/\/([^/]*))?(\/.*)?$/i.exec(e.trim());if(!t)return null;let n=t[2]??``;if(n!==``&&n.toLowerCase()!==`localhost`)return null;let r=QE(t[3]??``);return/^\/[A-Za-z]:[\\/]/.test(r)&&(r=r.slice(1)),!r||VE.test(r)?null:r}function eD(e){let t=e.trim();if(t.startsWith(`<`)&&t.endsWith(`>`)&&(t=t.slice(1,-1).trim()),!t||t.startsWith(`#`)||t.startsWith(`?`))return null;if(/^file:/i.test(t)){let e=$E(t);if(!e)return null;let n=qE(e);return n?{path:ZE(e),base:n}:null}let n=ZE(QE(t)),r=qE(n);return r?BE.test(n)?KE.test(n.slice(2))?null:{path:n,base:r}:!JE(n)||KE.test(n)||r===`rel`&&/^www\./i.test(n)?null:{path:n,base:r}:null}function tD(e){let t=e.trim();if(!t||t.length>1024||/[\r\n]/.test(t))return null;let n=/^(["'])(.*)\1$/.exec(t);if(n&&(t=(n[2]??``).trim()),/^file:/i.test(t)){let e=$E(t),n=e?qE(e):null;return e&&n&&JE(e)?{path:e,base:n}:null}t=ZE(t);let r=qE(t);if(!r||!JE(t))return null;let i=BE.test(t)?t.slice(2):t;return KE.test(i)?null:r===`rel`?/\s|=/.test(t)||t.startsWith(`-`)||t.startsWith(`@`)||!/[\\/]/.test(t)&&!qu(t)?null:{path:t,base:r}:/^\s|\s$/.test(t)?null:{path:t,base:r}}function nD(e,t=!1){let n=e.trim();if(!n||n.length>1024||/[\r\n]/.test(n))return null;let r=/^(["'])(.*)\1$/.exec(n);if(r&&(n=(r[2]??``).trim()),/^file:/i.test(n)){let e=$E(n),t=e?qE(e):null;return e&&(t===`abs`||t===`home`)&&YE(e)&&XE(e)?{path:e,base:t}:null}let i=qE(n);if(i!==`abs`&&i!==`home`||!YE(n)||!XE(n))return null;let a=BE.test(n);return KE.test(a?n.slice(2):n)||i===`abs`&&!a&&(n.includes(`:`)||!t&&!/[\\/]$/.test(n))?null:{path:n,base:i}}function rD(e){let t=e.trim();return!t||t.length>255||/[\s\\/:*?"<>|=`'(),;[\]{}]/.test(t)||/^[-@.~#$%]/.test(t)?null:JE(t)?t:null}function iD(e,t){let n=e.path.includes(`\\`)?`\\`:`/`;return{path:`${e.path.replace(/[\\/]+$/,``)}${n}${t}`,base:e.base}}var aD=String.raw`[^\s\\/:*?"<>|()[\]{}\`',;]`,oD=String.raw`[^\s\\/:*?"<>|\`](?:[^\\/:*?"<>|\n\`]*[^\s\\/:*?"<>|\`])?[\\/]`,sD=String.raw`\.(?=[A-Za-z0-9]{0,9}[A-Za-z])[A-Za-z0-9]{1,10}`,cD=String.raw`(?=$|[\s.,;:!?)\]}'"»”>\`])`,lD=String.raw`(?<=^|[\s(\[{"'«“\`])`,uD=new RegExp([String.raw`\[(?<label>[^\]\n]{1,300})\]\(\s*<?(?<target>(?:[A-Za-z]:[\\/]|file:|~[\\/]|\/)[^()<>\n]*?)>?\s*\)`,String.raw`(?<=(?:📁|📂)\uFE0F?[ \t]{0,3})(?<marked>(?:[A-Za-z]:[\\/]|~[\\/]|\/)(?![\\/])(?:${oD})*${aD}*${cD})`,String.raw`(?<win>(?<![\w/\\:.-])[A-Za-z]:[\\/](?![\\/])(?:${aD}+[\\/])*${aD}*${sD}${cD})`,String.raw`(?<windir>(?<![\w/\\:.-])[A-Za-z]:[\\/](?![\\/])(?:${aD}+[\\/])*${aD}+[\\/]?${cD})`,String.raw`(?<posix>${lD}~?\/(?:${aD}+\/)*${aD}*${sD}${cD})`,String.raw`(?<homedir>${lD}~[\\/](?:${aD}+[\\/])*${aD}+[\\/]?${cD})`,String.raw`(?<rootdir>${lD}\/(?:${aD}+\/)+${cD})`,String.raw`(?<url>(?<![\w])file:\/\/\/?[^\s<>"'()[\]{}\`]+)`].join(`|`),`g`);function dD(e){if(!/[\\/]/.test(e))return[];let t=[];for(let n of e.matchAll(uD)){let e=n.groups??{},r=n.index??0,i=r+n[0].length,a=null,o,s=!1;if(e.target!==void 0)a=eD(e.target),o=e.label;else if(e.win!==void 0||e.posix!==void 0){let t=e.win??e.posix,n=qE(t);a=n?{path:t,base:n}:null}else if(e.marked!==void 0){let t=e.marked,n=qE(t);s=YE(t),a=n&&n!==`rel`&&XE(t)?{path:t,base:n}:null}else if(e.windir??e.homedir??e.rootdir){let t=e.windir??e.homedir??e.rootdir,n=qE(t);s=!0,a=n&&n!==`rel`&&XE(t)?{path:t,base:n}:null}else if(e.url!==void 0){let t=e.url.replace(/[.,;:!?]+$/,``);i=r+t.length;let n=$E(t),o=n?qE(n):null;a=n&&o&&JE(n)?{path:n,base:o}:null}a&&t.push({start:r,end:i,ref:a,...o===void 0?{}:{label:o},...s?{folder:!0}:{}})}return t}function fD(e,t){if(e.platform)return e.platform===`win32`;let n=e.cwd??e.homeDir??t;return/^[A-Za-z]:|\\/.test(n)}function pD(e,t,n){let r=[];for(let e of t.split(/[\\/]+/))e!==``&&e!==`.`&&(e===`..`?r.pop():r.push(e));return e+r.join(n)}function mD(e,t,n){let r=n?`\\`:`/`;return hD(`${e.replace(/[\\/]+$/,``)}${r}${t}`,n)}function hD(e,t){return t?BE.test(e)?pD(`${e.slice(0,2).toUpperCase()}\\`,e.slice(3),`\\`):pD(`\\`,e,`\\`):pD(`/`,e,`/`)}function gD(e,t){let n=fD(t,e.path);switch(e.base){case`abs`:return hD(e.path,n);case`home`:return t.homeDir?mD(t.homeDir,e.path.slice(2),n):null;case`rel`:return t.cwd?mD(t.cwd,e.path,n):null}}function _D(e,t){if(!t.cwd)return null;let n=fD(t,e),r=hD(t.cwd,n),i=n?`\\`:`/`,a=r.endsWith(i)?r:r+i;if(!(n?e.toLowerCase().startsWith(a.toLowerCase()):e.startsWith(a)))return null;let o=e.slice(a.length);return o?o.split(/[\\/]/).join(`/`):null}function vD(e){return qu(e)?.kind??`file`}function yD(e){let t=DE(e).kind;return t!==`unknown`&&t!==`pdf`}function bD(e){let t=e.replace(/[\\/]+$/,``);return t.slice(Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`))+1)}var xD=`oona-file`,SD=/(?:📁|📂)\uFE0F?[ \t]*$/;function CD(e,t,n,r,i=!1){let a={filePath:e.path,fileBase:e.base,fileVariant:t};return e.base===`rel`&&r.dir&&(a.fileAltDir=r.dir.path,a.fileAltDirBase=r.dir.base),i&&(a.fileGuess=!0),{type:`oonaLocalFile`,data:{hName:xD,hProperties:a},children:n}}function wD(e,t){t.base!==`rel`&&YE(t.path)&&(e.dir=t)}function TD(e,t){let n=tD(e);if(n)return{ref:n,guess:!1};let r=nD(e,t.marked);if(r)return{ref:r,guess:!0};let i=t.dir?rD(e):null;return i&&t.dir?{ref:iD(t.dir,i),guess:!0}:null}function ED(e,t){let n=dD(e);if(n.length===0)return null;let r=[],i=0;for(let a of n){a.start>i&&r.push({type:`text`,value:e.slice(i,a.start)});let n=e.slice(a.start,a.end);r.push(a.label===void 0?CD(a.ref,`bare`,[{type:`text`,value:n}],t,a.folder===!0):CD(a.ref,`link`,[{type:`text`,value:a.label}],t)),(a.folder||a.label!==void 0)&&wD(t,a.ref),i=a.end}return i<e.length&&r.push({type:`text`,value:e.slice(i)}),r}var DD=new Set([`link`,`linkReference`,`image`,`imageReference`,`definition`,`html`]);function OD(e,t){let n=e.children;if(!n)return;let r=null;for(let e=0;e<n.length;e++){let i=n[e],a=null;if(i.type===`link`){let e=eD(i.url??``);e&&(a=[CD(e,`link`,i.children??[],t)],wD(t,e))}else if(i.type===`inlineCode`||i.type===`code`){let e=i.value??``,n=i.type===`code`,r=n&&e.includes(`
|
|
129
|
-
`)?null:TD(e,t);if(r){let i=n?`block`:`code`;a=[CD(r.ref,i,[{type:`text`,value:e}],t,r.guess)],r.guess&&wD(t,r.ref)}}else i.type===`text`?a=ED(i.value??``,t):DD.has(i.type)||OD(i,t);t.marked=i.type===`text`&&SD.test(i.value??``),a?(r??=n.slice(0,e),r.push(...a)):r&&r.push(i)}r&&(e.children=r)}function kD(){return e=>{OD(e,{dir:null,marked:!1})}}var AD=3e4,jD=25,MD=5e3,ND=(e,t)=>`${e}\n${t}`;function PD(e){if(!e||typeof e!=`object`)return!1;let{status:t,message:n}=e;return t===501||t===404&&typeof n==`string`&&n.startsWith(`no route for`)}var FD=class{#e;#t;#n;#r;#i;#a;#o=new Map;#s=new Map;#c=new Map;#l=new Set;#u=new Map;#d=null;#f=!1;constructor(e){this.#e=e.stat,this.#t=e.ttlMs??AD,this.#n=e.batchMs??jD,this.#r=Math.max(1,Math.min(e.maxPerCall??100,500)),this.#i=e.maxEntries??MD,this.#a=e.now??Date.now}get unsupported(){return this.#f}peek(e,t){return this.#o.get(ND(e,t))?.answer}watch(e,t,n){let r=t.map(t=>ND(e,t));return r.forEach((r,i)=>{let a=this.#s.get(r);a||this.#s.set(r,a=new Set),a.add(n);let o=this.#o.get(r);(!o||this.#a()-o.at>=this.#t)&&this.#p(e,t[i])}),()=>{for(let e of r){let t=this.#s.get(e);t&&(t.delete(n),t.size===0&&this.#s.delete(e))}}}invalidate(e){this.#u.set(e,(this.#u.get(e)??0)+1);let t=`${e}\n`;for(let[e,n]of this.#o)e.startsWith(t)&&(n.at=-1/0);for(let n of this.#s.keys())n.startsWith(t)&&this.#p(e,n.slice(t.length))}#p(e,t){if(this.#f||this.#l.has(ND(e,t)))return;let n=this.#c.get(e);n||this.#c.set(e,n=new Set),n.add(t),this.#d??=setTimeout(()=>this.#m(),this.#n)}#m(){this.#d=null;let e=[...this.#c];this.#c.clear();for(let[t,n]of e){let e=[...n];for(let n=0;n<e.length;n+=this.#r)this.#h(t,e.slice(n,n+this.#r))}}async#h(e,t){let n=this.#u.get(e)??0,r=t.map(t=>ND(e,t));r.forEach(e=>this.#l.add(e));let i;try{let{results:n}=await this.#e(e,t);i=t.map((e,t)=>{let r=n[t]?.path===e?n[t]:n.find(t=>t.path===e);return r?r.exists?r.kind===`dir`?`dir`:`file`:`missing`:`unchecked`})}catch(e){if(PD(e)){r.forEach(e=>this.#l.delete(e)),this.#f=!0,this.#c.clear(),this.#_([...this.#s.keys()]);return}i=t.map(()=>`unchecked`)}r.forEach(e=>this.#l.delete(e));let a=(this.#u.get(e)??0)!==n,o=a?-1/0:this.#a(),s=[];r.forEach((n,r)=>{let c=i[r],l=this.#o.get(n);this.#o.delete(n),this.#o.set(n,{answer:c,at:o}),l?.answer!==c&&s.push(n),a&&this.#s.has(n)&&this.#p(e,t[r])}),this.#g(),this.#_(s)}#g(){for(;this.#o.size>this.#i;){let e=this.#o.keys().next().value;if(e===void 0)break;this.#o.delete(e)}}#_(e){let t=new Set;for(let n of e)this.#s.get(n)?.forEach(e=>t.add(e));t.forEach(e=>e())}};function ID(e){if(e===null||e.length===0)return{state:`unchecked`};for(let t=0;t<e.length;t++){let n=e[t];if(n===`file`||n===`dir`)return{state:`found`,index:t,kind:n};if(n===void 0)return{state:`unknown`};if(n===`unchecked`)return{state:`unchecked`}}return{state:`missing`}}var LD=(0,v.createContext)({sessionId:null,cwd:null,homeDir:null,platform:null,remote:!1,grant:null,openInViewer:null,bridge:null,notify:null,stat:null});function RD(e){typeof document>`u`||document.querySelectorAll(`audio, video`).forEach(t=>{t!==e&&!t.paused&&t.pause()})}var zD=`This file is on the PC that runs this chat — open it on that PC.`;function BD({kind:e}){let t=`h-3.5 w-3.5 text-fg-faint`;switch(e){case`audio`:return(0,U.jsx)(K.Music,{className:t});case`video`:return(0,U.jsx)(K.Film,{className:t});case`image`:return(0,U.jsx)(K.Image,{className:t});case`file`:return(0,U.jsx)(K.File,{className:t});case`dir`:return(0,U.jsx)(K.Folder,{className:t})}}var VD={file:`f`,dir:`d`,missing:`m`,unchecked:`u`},HD={f:`file`,d:`dir`,m:`missing`,u:`unchecked`};function UD(e,t,n){let r=n.join(`
|
|
130
|
-
`),i=(0,v.useCallback)(r=>e&&t&&n.length>0?e.watch(t,n,r):()=>{},[e,t,r]),a=()=>!e||!t||n.length===0||e.unsupported?`X`:n.map(n=>{let r=e.peek(t,n);return r===void 0?`?`:VD[r]}).join(``),o=(0,v.useSyncExternalStore)(i,a,a);return(0,v.useMemo)(()=>ID(o===`X`?null:[...o].map(e=>HD[e])),[o])}function WD({variant:e,state:t,title:n,children:r}){return e===`block`?(0,U.jsx)(`div`,{className:`my-2`,"data-testid":`local-file-plain`,"data-state":t,children:(0,U.jsx)(`div`,{className:`max-w-full break-all rounded-md border border-border bg-code-bg px-2 py-1.5 font-mono text-[12.5px]`,children:(0,U.jsx)(`code`,{children:r})})}):e===`code`?(0,U.jsx)(`code`,{"data-testid":`local-file-plain`,"data-state":t,title:n,children:r}):(0,U.jsx)(`span`,{"data-testid":`local-file-plain`,"data-state":t,title:n,children:r})}function GD({label:e,onClick:t,testId:n,children:r}){return(0,U.jsx)(`button`,{type:`button`,"aria-label":e,title:e,"data-testid":n,onClick:e=>{e.preventDefault(),t()},className:`inline-flex items-center justify-center rounded p-0.5 text-fg-muted hover:bg-surface-3 hover:text-fg`,children:r})}function KD(e){return e instanceof zd?e.status===404&&e.message.startsWith(`no route for`)?`This PC’s OonaCode cannot play files from the chat yet — update it.`:e.code===`session_not_found`?`Send a message first — this chat is not saved yet.`:e.status===404?`Not found on this PC.`:e.message:e instanceof Error?e.message:String(e)}function qD({sessionId:e,path:t,kind:n,grant:r}){let[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(0),[c,l]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let n=!0;return a(null),r(e,t).then(e=>{n&&a({url:e.url})},e=>{n&&a({error:KD(e)})}),()=>{n=!1}},[e,t,r,o]),(0,v.useEffect)(()=>{if(!c||typeof window>`u`)return;let e=e=>{e.key===`Escape`&&l(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]);let u=()=>{o===0?s(1):a({error:`It could not be played here.`})},d=e=>RD(e.currentTarget);return i===null?(0,U.jsxs)(`span`,{className:`my-1 flex items-center gap-1 text-xs text-fg-muted`,"data-testid":`local-file-loading`,children:[(0,U.jsx)(K.Spinner,{className:`h-3 w-3`}),` Loading…`]}):`error`in i?(0,U.jsx)(`span`,{className:`my-1 block text-xs text-danger`,"data-testid":`local-file-error`,children:i.error}):n===`audio`?(0,U.jsx)(`audio`,{controls:!0,autoPlay:!0,preload:`metadata`,src:i.url,onPlay:d,onError:u,className:`my-1 block h-9 w-full max-w-sm`,"data-testid":`local-file-audio`}):n===`video`?(0,U.jsx)(`video`,{controls:!0,autoPlay:!0,preload:`metadata`,src:i.url,onPlay:d,onError:u,className:`my-1 block max-h-72 w-full max-w-md rounded border border-border bg-black`,"data-testid":`local-file-video`}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`img`,{src:i.url,alt:bD(t),onError:u,onClick:()=>l(!0),title:`Enlarge`,className:`my-1 block max-h-40 max-w-full cursor-zoom-in rounded border border-border`,"data-testid":`local-file-image`}),c&&typeof document<`u`?(0,Kh.createPortal)((0,U.jsx)(`div`,{role:`dialog`,"aria-label":bD(t),onClick:()=>l(!1),className:`fixed inset-0 z-50 flex cursor-zoom-out items-center justify-center bg-black/70 p-6`,"data-testid":`local-file-zoom`,children:(0,U.jsx)(`img`,{src:i.url,alt:bD(t),className:`max-h-[90vh] max-w-[90vw] rounded shadow-lg`})}),document.body):null]})}var JD=(0,v.memo)(function({path:e,base:t,variant:n,altDir:r=null,altDirBase:i=null,guess:a=!1,children:o}){let s=(0,v.useContext)(LD),c=(0,v.useMemo)(()=>{let n=[],a=e=>{let t=gD(e,s);t!==null&&!n.includes(t)&&n.push(t)};return a({path:e,base:t}),t===`rel`&&r!==null&&i!==null&&a(iD({path:r,base:i},e)),n},[e,t,r,i,s.cwd,s.homeDir,s.platform]),l=UD(s.remote?null:s.stat,s.sessionId,c),[u,d]=(0,v.useState)(!1),f=l.state===`found`,p=f?c[l.index]:c[0]??null,m=f&&l.kind===`dir`?`dir`:vD(p??e),h=m===`audio`||m===`video`||m===`image`?m:null,g=l.state===`unknown`||l.state===`missing`?l.state:l.state===`unchecked`&&a?`unchecked`:null,_=!s.remote&&p!==null,y=_&&m!==`dir`?_D(p,s):null,b=y!==null&&s.openInViewer!==null&&yD(p),x=_&&!!s.bridge?.openPath,S=_&&!!s.bridge?.showItemInFolder,C=_&&h!==null&&s.grant!==null&&s.sessionId!==null,w=m===`dir`?`Open the folder`:`Open with its app`,T=()=>{!p||!s.bridge?.openPath||s.bridge.openPath(p).then(e=>{!e.ok&&e.message&&s.notify?.(e.shownInFolder?`info`:`error`,e.message)},e=>s.notify?.(`error`,KD(e)))},E=()=>{!p||!s.bridge?.showItemInFolder||s.bridge.showItemInFolder(p).then(e=>{!e.ok&&e.message&&s.notify?.(`error`,e.message)},e=>s.notify?.(`error`,KD(e)))},D=b?{run:()=>s.openInViewer(y),title:`Open in the file viewer`}:x?{run:T,title:w}:C?{run:()=>d(e=>!e),title:m===`image`?`Show here`:`Play here`}:null,O=p??e,k=s.remote?`${O}\n${zD}`:D?`${D.title}\n${O}`:O;if(g)return(0,U.jsx)(WD,{variant:n,state:g,title:n===`link`?O:void 0,children:o});let A=n===`code`||n===`block`?(0,U.jsx)(`code`,{className:n===`block`?`break-all`:void 0,children:o}):(0,U.jsx)(`span`,{className:H(`min-w-0 break-all`,n===`bare`&&`font-mono text-[0.92em]`),children:o}),j=D?(0,U.jsx)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),D.run()},title:k,"data-testid":`local-file-name`,className:`min-w-0 cursor-pointer text-left text-accent underline decoration-dotted underline-offset-2 hover:decoration-solid`,children:A}):(0,U.jsx)(`span`,{title:k,"data-testid":`local-file-name`,className:`min-w-0`,children:A}),M=(0,U.jsxs)(U.Fragment,{children:[C?(0,U.jsx)(GD,{label:u?`Close the player`:m===`image`?`Show here`:`Play here`,onClick:()=>d(e=>!e),testId:`local-file-play`,children:u?(0,U.jsx)(K.X,{className:`h-3 w-3`}):m===`image`?(0,U.jsx)(K.Image,{className:`h-3 w-3`}):(0,U.jsx)(K.Play,{className:`h-3 w-3`})}):null,x?(0,U.jsx)(GD,{label:w,onClick:T,testId:`local-file-open`,children:(0,U.jsx)(K.ExternalLink,{className:`h-3 w-3`})}):null,S?(0,U.jsx)(GD,{label:m===`dir`?`Show in its folder`:`Show in folder`,onClick:E,testId:`local-file-folder`,children:(0,U.jsx)(K.Folder,{className:`h-3 w-3`})}):null,s.remote?(0,U.jsx)(`span`,{title:zD,"aria-label":zD,"data-testid":`local-file-remote`,children:(0,U.jsx)(K.Monitor,{className:`h-3 w-3 text-fg-faint`})}):null]}),N=u&&C&&h?(0,U.jsx)(`span`,{className:`block`,"data-testid":`local-file-player`,children:(0,U.jsx)(qD,{sessionId:s.sessionId,path:p,kind:h,grant:s.grant})}):null;return n===`block`?(0,U.jsxs)(`div`,{className:`my-2`,"data-testid":`local-file`,"data-kind":m,"data-path":O,children:[(0,U.jsxs)(`div`,{className:`flex max-w-full items-center gap-1 rounded-md border border-border bg-code-bg px-2 py-1.5 font-mono text-[12.5px]`,children:[(0,U.jsx)(BD,{kind:m}),j,M]}),N]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`span`,{className:H(`inline-flex max-w-full items-center gap-0.5 align-baseline`,n===`link`&&`rounded border border-border bg-surface-2 px-1 py-px`),"data-testid":`local-file`,"data-kind":m,"data-path":O,children:[n===`link`?(0,U.jsx)(BD,{kind:m}):null,j,M]}),N]})});function YD(e){let{filePath:t,fileBase:n,fileVariant:r,fileAltDir:i,fileAltDirBase:a,fileGuess:o,children:s}=e;return!t||!n?(0,U.jsx)(U.Fragment,{children:s}):(0,U.jsx)(JD,{path:t,base:n,variant:r??`bare`,altDir:i&&a?i:null,altDirBase:i&&a?a:null,guess:o===!0,children:s})}var XD=(0,v.memo)(function({text:e}){let t=(0,v.useMemo)(()=>{let t=dD(e);if(t.length===0)return null;let n=[],r=0;for(let i of t)i.start>r&&n.push(e.slice(r,i.start)),n.push((0,U.jsx)(JD,{path:i.ref.path,base:i.ref.base,variant:i.label===void 0?`bare`:`link`,guess:i.folder===!0,children:i.label??e.slice(i.start,i.end)},i.start)),r=i.end;return r<e.length&&n.push(e.slice(r)),n},[e]);return(0,U.jsx)(U.Fragment,{children:t??e})});async function ZD(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}function QD({text:e,className:t}){let[n,r]=(0,v.useState)(!1);return(0,U.jsxs)(`button`,{type:`button`,"aria-label":`Copy to clipboard`,title:`Copy`,className:H(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[11px] text-fg-muted hover:bg-surface-3 hover:text-fg`,t),onClick:()=>{ZD(e).then(e=>{e&&(r(!0),setTimeout(()=>r(!1),1500))})},children:[n?(0,U.jsx)(K.Check,{className:`w-3 h-3`}):(0,U.jsx)(K.Copy,{className:`w-3 h-3`}),n?`Copied`:`Copy`]})}function $D({code:e,language:t,className:n,maxHeight:r}){return(0,U.jsxs)(`div`,{className:H(`group relative my-2 overflow-hidden rounded-md border border-border bg-code-bg`,n),children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-2 py-0.5 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`span`,{className:`font-mono`,children:t||`text`}),(0,U.jsx)(QD,{text:e})]}),(0,U.jsx)(`pre`,{className:`m-0 overflow-x-auto p-3 font-mono text-[12.5px] leading-relaxed`,style:r?{maxHeight:r,overflowY:`auto`}:void 0,children:(0,U.jsx)(`code`,{children:e})})]})}function eO(e){return typeof e==`string`?e:Array.isArray(e)?e.map(eO).join(``):e&&typeof e==`object`&&`props`in e?eO(e.props.children):``}function tO(e){window.oonacode?.openExternal?window.oonacode.openExternal(e):window.open(e,`_blank`,`noopener,noreferrer`)}var nO={pre({children:e}){let t=Array.isArray(e)?e[0]:e,n=t&&typeof t==`object`&&`props`in t?t.props:null,r=n?.className?.match(/language-([\w-]+)/)?.[1]??null,i=eO(n?.children??e).replace(/\n$/,``);return(0,U.jsx)($D,{code:i,language:r})},a({href:e,children:t}){let n=e??``;return(0,U.jsx)(`a`,{href:n,onClick:e=>{/^https?:/i.test(n)&&(e.preventDefault(),tO(n))},rel:`noopener noreferrer`,target:`_blank`,children:t})}},rO=[pE],iO=[pE,kD],aO={...nO,[xD]:YD},oO=(0,v.memo)(function({text:e,className:t,localFiles:n=!1}){return(0,U.jsx)(`div`,{className:H(`md break-words`,t),children:(0,U.jsx)(lC,{remarkPlugins:n?iO:rO,components:n?aO:nO,children:e})})});function sO({pack:e,where:t}){let n=`shrink-0 rounded-sm px-1 py-px text-[10px] leading-none font-semibold tracking-wide uppercase`;return(0,U.jsxs)(U.Fragment,{children:[e.builtin?(0,U.jsx)(`span`,{"data-testid":t===`row`?`tool-pack-builtin-${e.slug}`:void 0,className:H(n,`bg-accent-soft text-accent`),children:`Built in`}):null,e.status===`demo`?(0,U.jsx)(`span`,{"data-testid":t===`row`?`tool-pack-demo-${e.slug}`:void 0,className:H(n,`bg-warn-soft text-warn`),children:`Demo`}):null,e.status===`live`&&e.install&&e.installed===!1?(0,U.jsx)(`span`,{"data-testid":t===`row`?`tool-pack-install-${e.slug}`:void 0,title:`The first time a chat uses it, OonaCode asks once to install it (${Wc(e.install.sizeBytes)}).`,className:H(n,`bg-surface-2 text-fg-muted`),children:`Installs on first use`}):null]})}function cO({pack:e,row:t,panel:n,id:r,cardRef:i,onMouseEnter:a,onMouseLeave:o,onBlur:s}){let[c,l]=(0,v.useState)(0),[u,d]=(0,v.useState)(()=>({width:window.innerWidth,height:window.innerHeight}));(0,v.useLayoutEffect)(()=>{let e=i.current?.offsetHeight??0;e!==c&&l(e)}),(0,v.useEffect)(()=>{let e=()=>d({width:window.innerWidth,height:window.innerHeight});return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let f=Qp({row:t,panel:n,height:c,viewport:u}),p=nu(e),m=$c(e);return(0,Kh.createPortal)((0,U.jsxs)(`div`,{ref:i,id:r,role:`tooltip`,tabIndex:-1,"data-testid":`tool-pack-card`,"data-pack":e.slug,"data-side":f.side,onMouseEnter:a,onMouseLeave:o,onBlur:s,className:`fixed z-[60] flex flex-col overflow-hidden rounded-lg border border-border bg-surface text-xs text-fg shadow-lg focus:outline-none`,style:{left:f.left,top:f.top,width:f.width,maxHeight:f.maxHeight},children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-2`,children:[(0,U.jsx)(K.Tool,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium`,children:e.name}),(0,U.jsx)(sO,{pack:e,where:`card`})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-3 py-2`,"data-testid":`tool-pack-card-body`,children:p?(0,U.jsx)(oO,{text:p,className:`md-compact leading-relaxed`}):(0,U.jsxs)(`div`,{"data-testid":`tool-pack-card-fallback`,className:`space-y-1.5 leading-snug`,children:[(0,U.jsx)(`p`,{className:`text-fg-muted`,children:ru(e)}),e.status===`demo`?(0,U.jsx)(`p`,{className:`text-fg-faint`,children:iu}):null]})}),(0,U.jsxs)(`div`,{className:`shrink-0 border-t border-border px-3 py-1.5 text-[10px] text-fg-faint`,children:[`≈`,m.toLocaleString(),` tokens on every request while it is on`]})]}),document.body)}var lO=352,uO=388;function dO(e){let t=e?.getBoundingClientRect();return t?{left:t.left,top:t.top,right:t.right,bottom:t.bottom}:null}function fO({disabled:e}){let{state:t,actions:n}=W(),r=zh(),i=Bh(),a=Rh(),o=t.currentSessionId,s=t.agentTools?.packs??[],[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)({up:!0,right:!1}),f=(0,v.useRef)(null),p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=(0,v.useRef)(null),[g,_]=(0,v.useState)(null),y=(0,v.useId)(),b=(0,v.useRef)(null),x=(0,v.useRef)(null),S=(0,v.useRef)(!1),C=()=>{b.current&&clearTimeout(b.current),x.current&&clearTimeout(x.current),b.current=null,x.current=null};if((0,v.useEffect)(()=>C,[]),(0,v.useEffect)(()=>{l(!1)},[o]),(0,v.useEffect)(()=>{c||(C(),_(null))},[c]),(0,v.useEffect)(()=>{if(!c)return;let e=e=>{let t=e.target;h.current?.contains(t)||f.current&&!f.current.contains(t)&&l(!1)},t=e=>{if(e.key===`Escape`){if(e.preventDefault(),h.current){let e=h.current.dataset.pack,t=h.current.contains(document.activeElement);C(),_(null),t&&e&&(S.current=!0,Array.from(m.current?.querySelectorAll(`[data-testid^="tool-pack-info-"]`)??[]).find(t=>t.dataset.testid===`tool-pack-info-${e}`)?.focus(),S.current=!1);return}l(!1),p.current?.focus()}};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[c]),(0,v.useEffect)(()=>{c&&m.current?.querySelector(`[role="switch"]`)?.focus()},[c]),(0,v.useEffect)(()=>{if(!c)return;let e=()=>{let e=f.current?.getBoundingClientRect();if(!e)return;let t=window.innerHeight-e.bottom,n=e.top;d({up:t>=uO?!1:n>t,right:e.left+lO>window.innerWidth&&e.right>=lO})};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[c]),s.length===0||!o||t.remote.tabs[o])return null;let w=i?i.toolPacks:r?.toolPacks,T=$l(s,w),E=!i&&((a?.items.length??0)>0||(r?.entryCount??0)>0),D=(e=!0)=>{l(!1),e&&p.current?.focus()},O=(e,t,n)=>{let r=dO(t);if(!r)return;let i=dO(m.current)??r;_(t=>t&&t.slug===e&&t.via===`focus`&&n===`hover`?t:{slug:e,row:r,panel:i,via:n})},k=()=>{x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{x.current=null,_(e=>e?.via===`hover`?null:e)},200)},A=(e,t)=>{if(C(),g?.slug!==e){if(g){O(e,t,`hover`);return}b.current=setTimeout(()=>{b.current=null,O(e,t,`hover`)},300)}},j=()=>{b.current&&clearTimeout(b.current),b.current=null,g?.via===`hover`&&k()},M=(e,t)=>{S.current||(C(),O(e,t.closest(`li`),`focus`))},N=e=>{let t=e.relatedTarget;t&&h.current?.contains(t)||t instanceof HTMLElement&&t.dataset.testid===`tool-pack-info-${g?.slug}`||_(e=>e?.via===`focus`?null:e)},P=c&&g?s.find(e=>e.slug===g.slug):void 0,F=e=>{let t=!Kc(e,w);n.setSessionToolPacks(o,Ql(w,e.slug,t))};return(0,U.jsxs)(`span`,{ref:f,className:`relative inline-flex items-center`,children:[(0,U.jsxs)(`button`,{type:`button`,ref:p,"aria-label":T.label,"aria-haspopup":`dialog`,"aria-expanded":c,title:T.title,"data-testid":`tools-picker`,"data-count":T.count,disabled:e,onClick:()=>c?D():l(!0),className:H(`flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-0.5 text-xs hover:bg-fg/5 disabled:opacity-50`,T.count>0?`text-fg`:`text-fg-muted`),children:[(0,U.jsx)(K.Tool,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{children:`Tools`}),(0,U.jsxs)(`span`,{className:T.count>0?`text-accent`:`text-fg-faint`,children:[`· `,T.count]})]}),c?(0,U.jsx)(`div`,{ref:m,role:`dialog`,"aria-label":`Tools for this chat`,"data-testid":`tools-panel`,onKeyDown:e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=Array.from(m.current?.querySelectorAll(`[role="switch"]:not([disabled])`)??[]);if(t.length===0)return;e.preventDefault();let n=t.indexOf(document.activeElement);t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowDown`?1:-1)+t.length)%t.length]?.focus()},className:H(`absolute z-50 w-[22rem] max-w-[calc(100vw-2rem)]`,u.up?`bottom-full mb-1`:`top-full mt-1`,u.right?`right-0`:`left-0`),children:(0,U.jsxs)(`div`,{className:`flex max-h-[24rem] flex-col overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,U.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,U.jsx)(K.Tool,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`OonaCode tools`}),(0,U.jsxs)(`span`,{className:`normal-case tracking-normal text-fg-faint`,children:[T.count,` of `,s.length,` on`]})]}),(0,U.jsx)(`ul`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,onScroll:()=>{g&&_(null)},children:s.map(t=>(0,U.jsx)(pO,{pack:t,on:Kc(t,w),disabled:e,onToggle:()=>F(t),cardOpen:P?.slug===t.slug,cardId:y,onEnter:e=>A(t.slug,e),onLeave:j,onInfoFocus:e=>M(t.slug,e),onInfoBlur:N},t.slug))}),E?(0,U.jsx)(`div`,{className:`border-t border-border px-2.5 py-1.5 text-[11px] leading-snug text-fg-faint`,"data-testid":`tools-restart-note`,children:tu}):null]})}):null,P&&g?(0,U.jsx)(cO,{pack:P,row:g.row,panel:g.panel,id:y,cardRef:h,onMouseEnter:()=>{x.current&&clearTimeout(x.current),x.current=null},onMouseLeave:()=>{g.via===`hover`&&k()},onBlur:N}):null]})}function pO({pack:e,on:t,disabled:n,onToggle:r,cardOpen:i,cardId:a,onEnter:o,onLeave:s,onInfoFocus:c,onInfoBlur:l}){let u=$c(e);return(0,U.jsxs)(`li`,{className:H(`flex items-start gap-3 px-2.5 py-2 hover:bg-surface-2`,i&&`bg-surface-2`),"data-testid":`tool-pack-${e.slug}`,onMouseEnter:e=>o(e.currentTarget),onMouseLeave:s,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`truncate text-xs font-medium text-fg`,children:e.name}),(0,U.jsx)(sO,{pack:e,where:`row`}),(0,U.jsx)(`button`,{type:`button`,"aria-label":`About ${e.name}`,"aria-expanded":i,"aria-describedby":i?a:void 0,"data-testid":`tool-pack-info-${e.slug}`,onFocus:e=>c(e.currentTarget),onClick:e=>c(e.currentTarget),onBlur:l,className:`shrink-0 cursor-help rounded text-fg-faint hover:text-fg focus-visible:text-fg focus-visible:outline-2 focus-visible:outline-accent`,children:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`})})]}),e.description?(0,U.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] leading-snug text-fg-muted`,children:e.description}):null,(0,U.jsxs)(`p`,{className:`mt-0.5 text-[10px] text-fg-faint`,children:[`≈`,u.toLocaleString(),` tokens per request`]})]}),(0,U.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"aria-label":e.name,disabled:n,"data-testid":`tool-pack-switch-${e.slug}`,onClick:r,className:H(`relative mt-0.5 h-5 w-9 shrink-0 rounded-full border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:opacity-50`,t?`border-accent bg-accent`:`border-border bg-surface-2`),children:(0,U.jsx)(`span`,{className:H(`absolute top-0.5 h-3.5 w-3.5 rounded-full bg-surface transition-all`,t?`left-[1.15rem]`:`left-0.5`)})})]})}var mO=new Map;function hO(e){e===void 0?mO.clear():mO.delete(e)}function gO(e,t,n){let[,r]=(0,v.useState)(0),i=(0,v.useRef)(null),a=e===null?void 0:mO.get(e),o=a!==void 0&&Date.now()-a.at<6e4;return(0,v.useEffect)(()=>{if(!t||e===null||o||i.current===e)return;i.current=e;let a=!0;return n(e).then(t=>mO.set(e,{at:Date.now(),value:t})).catch(()=>mO.set(e,{at:Date.now(),value:null})).finally(()=>{i.current===e&&(i.current=null),a&&r(e=>e+1)}),()=>{a=!1}},[t,e,o,n]),a===void 0?{status:t?`loading`:`idle`,data:null}:a.value===`unsupported`?{status:`unsupported`,data:null}:a.value===null?{status:`error`,data:null}:{status:`ready`,data:a.value}}function _O(e){return e!==null&&mO.get(e)?.value===`unsupported`}function vO({skill:e,where:t}){return(0,U.jsx)(`span`,{"data-testid":t===`row`?`skill-source-${e.name}`:void 0,className:H(`shrink-0 rounded-sm px-1 py-px text-[10px] leading-none font-semibold tracking-wide uppercase`,e.source===`user`?`bg-accent-soft text-accent`:e.source===`project`?`bg-warn-soft text-warn`:`bg-surface-2 text-fg-muted`),children:Ed(e.source)})}function yO({skill:e,on:t,row:n,panel:r,id:i,cardRef:a,onMouseEnter:o,onMouseLeave:s,onBlur:c}){let[l,u]=(0,v.useState)(0),[d,f]=(0,v.useState)(()=>({width:window.innerWidth,height:window.innerHeight}));(0,v.useLayoutEffect)(()=>{let e=a.current?.offsetHeight??0;e!==l&&u(e)}),(0,v.useEffect)(()=>{let e=()=>f({width:window.innerWidth,height:window.innerHeight});return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let p=Qp({row:n,panel:r,height:l,viewport:d});return(0,Kh.createPortal)((0,U.jsxs)(`div`,{ref:a,id:i,role:`tooltip`,tabIndex:-1,"data-testid":`skill-card`,"data-skill":e.name,"data-side":p.side,onMouseEnter:o,onMouseLeave:s,onBlur:c,className:`fixed z-[60] flex flex-col overflow-hidden rounded-lg border border-border bg-surface text-xs text-fg shadow-lg focus:outline-none`,style:{left:p.left,top:p.top,width:p.width,maxHeight:p.maxHeight},children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-2`,children:[(0,U.jsx)(K.Skill,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-medium font-mono`,children:[`/`,e.label]}),(0,U.jsx)(vO,{skill:e,where:`card`})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-3 py-2`,"data-testid":`skill-card-body`,children:(0,U.jsx)(oO,{text:Od(e,t),className:`md-compact leading-relaxed`})}),(0,U.jsxs)(`div`,{className:`shrink-0 border-t border-border px-3 py-1.5 text-[10px] text-fg-faint`,children:[`≈`,e.tokens.toLocaleString(),` tokens on every request while it is on`]})]}),document.body)}var bO=384,xO=420;function SO(e){let t=e?.getBoundingClientRect();return t?{left:t.left,top:t.top,right:t.right,bottom:t.bottom}:null}function CO({disabled:e}){let{state:t,actions:n}=W(),r=zh(),i=Bh(),a=Rh(),o=t.currentSessionId,[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)({up:!0,right:!1}),d=(0,v.useRef)(null),f=(0,v.useRef)(null),p=(0,v.useRef)(null),m=(0,v.useRef)(null),[h,g]=(0,v.useState)(null),_=(0,v.useId)(),y=(0,v.useRef)(null),b=(0,v.useRef)(null),x=(0,v.useRef)(!1),S=o?!!t.remote.tabs[o]:!1,{status:C,data:w}=gO(S?null:o,s,n.listChatSkills),T=()=>{y.current&&clearTimeout(y.current),b.current&&clearTimeout(b.current),y.current=null,b.current=null};if((0,v.useEffect)(()=>T,[]),(0,v.useEffect)(()=>{c(!1)},[o]),(0,v.useEffect)(()=>{s||(T(),g(null))},[s]),(0,v.useEffect)(()=>{if(!s)return;let e=e=>{let t=e.target;m.current?.contains(t)||d.current&&!d.current.contains(t)&&c(!1)},t=e=>{if(e.key===`Escape`){if(e.preventDefault(),m.current){let e=m.current.dataset.skill,t=m.current.contains(document.activeElement);T(),g(null),t&&e&&(x.current=!0,Array.from(p.current?.querySelectorAll(`[data-skill-info]`)??[]).find(t=>t.dataset.skillInfo===e)?.focus(),x.current=!1);return}c(!1),f.current?.focus()}};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[s]),(0,v.useEffect)(()=>{!s||C!==`ready`||p.current?.querySelector(`[role="switch"]`)?.focus()},[s,C]),(0,v.useEffect)(()=>{if(!s)return;let e=()=>{let e=d.current?.getBoundingClientRect();if(!e)return;let t=window.innerHeight-e.bottom,n=e.top;u({up:t>=xO?!1:n>t,right:e.left+bO>window.innerWidth&&e.right>=bO})};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[s]),!o||S||_O(o))return null;let E=(i?i.modelSkills:r?.modelSkills)??[],D=w?.skills??[],O=xd(w?D:null,E),k=bd(D,E),A=!i&&((a?.items.length??0)>0||(r?.entryCount??0)>0),j=(e=!0)=>{c(!1),e&&f.current?.focus()},M=(e,t,n)=>{let r=SO(t);if(!r)return;let i=SO(p.current)??r;g(t=>t&&t.name===e&&t.via===`focus`&&n===`hover`?t:{name:e,row:r,panel:i,via:n})},N=()=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,g(e=>e?.via===`hover`?null:e)},200)},P=(e,t)=>{if(T(),h?.name!==e){if(h){M(e,t,`hover`);return}y.current=setTimeout(()=>{y.current=null,M(e,t,`hover`)},300)}},F=()=>{y.current&&clearTimeout(y.current),y.current=null,h?.via===`hover`&&N()},I=(e,t)=>{x.current||(T(),M(e,t.closest(`li`),`focus`))},L=e=>{let t=e.relatedTarget;t&&m.current?.contains(t)||t instanceof HTMLElement&&t.dataset.skillInfo===h?.name||g(e=>e?.via===`focus`?null:e)},ee=s&&h?D.find(e=>e.name===h.name):void 0,te=e=>{let t=!yd(E,e.name);n.setSessionModelSkills(o,vd(E,e.name,t))};return(0,U.jsxs)(`span`,{ref:d,className:`relative inline-flex items-center`,children:[(0,U.jsxs)(`button`,{type:`button`,ref:f,"aria-label":O.label,"aria-haspopup":`dialog`,"aria-expanded":s,title:O.title,"data-testid":`skills-picker`,"data-count":O.count,disabled:e,onClick:()=>s?j():c(!0),className:H(`flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-0.5 text-xs hover:bg-fg/5 disabled:opacity-50`,O.count>0?`text-fg`:`text-fg-muted`),children:[(0,U.jsx)(K.Skill,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{children:`Skills`}),(0,U.jsxs)(`span`,{className:O.count>0?`text-accent`:`text-fg-faint`,children:[`· `,O.count]})]}),s?(0,U.jsx)(`div`,{ref:p,role:`dialog`,"aria-label":`Skills for this chat`,"data-testid":`skills-panel`,onKeyDown:e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=Array.from(p.current?.querySelectorAll(`[role="switch"]:not([disabled])`)??[]);if(t.length===0)return;e.preventDefault();let n=t.indexOf(document.activeElement);t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowDown`?1:-1)+t.length)%t.length]?.focus()},className:H(`absolute z-50 w-[24rem] max-w-[calc(100vw-2rem)]`,l.up?`bottom-full mb-1`:`top-full mt-1`,l.right?`right-0`:`left-0`),children:(0,U.jsxs)(`div`,{className:`flex max-h-[26rem] flex-col overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,U.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,U.jsx)(K.Skill,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`Skills`}),(0,U.jsxs)(`span`,{className:`normal-case tracking-normal text-fg-faint`,"data-testid":`skills-panel-count`,children:[O.count,` of `,D.length,` on`,k>0?` · ≈${k.toLocaleString()} tokens/request`:``]})]}),(0,U.jsx)(`p`,{className:`border-b border-border px-2.5 py-1.5 text-[11px] leading-snug text-fg-muted`,"data-testid":`skills-intro`,children:Cd}),C===`loading`||C===`idle`?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-2 text-xs text-fg-muted`,role:`status`,children:[(0,U.jsx)(K.Spinner,{className:`h-3.5 w-3.5 animate-spin`}),` Reading this chat’s skills…`]}):C===`error`?(0,U.jsx)(`div`,{className:`px-2.5 py-2 text-xs text-fg-muted`,role:`status`,children:`The host could not list this chat’s skills right now — typing one still runs it.`}):D.length===0?(0,U.jsx)(`div`,{className:`px-2.5 py-2 text-xs text-fg-muted`,role:`status`,"data-testid":`skills-empty`,children:`No skill the model could use here yet.`}):(0,U.jsx)(`ul`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,onScroll:()=>{h&&g(null)},children:D.map(t=>(0,U.jsx)(wO,{skill:t,on:yd(E,t.name),disabled:e,onToggle:()=>te(t),cardOpen:ee?.name===t.name,cardId:_,onEnter:e=>P(t.name,e),onLeave:F,onInfoFocus:e=>I(t.name,e),onInfoBlur:L},t.name))}),(0,U.jsxs)(`div`,{className:`space-y-0.5 border-t border-border px-2.5 py-1.5 text-[11px] leading-snug text-fg-faint`,children:[w&&w.typeOnly>0?(0,U.jsx)(`p`,{"data-testid":`skills-type-only`,children:w.typeOnly===1?`1 more skill is in the / menu for typing only — the model is never shown it.`:`${w.typeOnly} more skills are in the / menu for typing only — the model is never shown them.`}):null,O.count===0?(0,U.jsx)(`p`,{"data-testid":`skills-tool-note`,children:Td}):null,A?(0,U.jsx)(`p`,{"data-testid":`skills-restart-note`,children:wd}):null]})]})}):null,ee&&h?(0,U.jsx)(yO,{skill:ee,on:yd(E,ee.name),row:h.row,panel:h.panel,id:_,cardRef:m,onMouseEnter:()=>{b.current&&clearTimeout(b.current),b.current=null},onMouseLeave:()=>{h.via===`hover`&&N()},onBlur:L}):null]})}function wO({skill:e,on:t,disabled:n,onToggle:r,cardOpen:i,cardId:a,onEnter:o,onLeave:s,onInfoFocus:c,onInfoBlur:l}){let u=`${e.label}: the model may use it on its own in this chat`;return(0,U.jsxs)(`li`,{className:H(`flex items-start gap-3 px-2.5 py-2 hover:bg-surface-2`,i&&`bg-surface-2`),"data-testid":`skill-row-${e.name}`,onMouseEnter:e=>o(e.currentTarget),onMouseLeave:s,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsxs)(`span`,{className:`truncate font-mono text-xs font-medium text-fg`,children:[`/`,e.label]}),(0,U.jsx)(vO,{skill:e,where:`row`}),(0,U.jsx)(`button`,{type:`button`,"aria-label":`About ${e.label}`,"aria-expanded":i,"aria-describedby":i?a:void 0,"data-testid":`skill-info-${e.name}`,"data-skill-info":e.name,onFocus:e=>c(e.currentTarget),onClick:e=>c(e.currentTarget),onBlur:l,className:`shrink-0 cursor-help rounded text-fg-faint hover:text-fg focus-visible:text-fg focus-visible:outline-2 focus-visible:outline-accent`,children:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`})})]}),e.description?(0,U.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] leading-snug text-fg-muted`,children:e.description}):null,(0,U.jsxs)(`p`,{className:`mt-0.5 text-[10px] text-fg-faint`,"data-testid":`skill-tokens-${e.name}`,children:[`≈`,e.tokens.toLocaleString(),` tokens per request while on`,e.typeable?` · type it to use it once`:` · the model’s only — cannot be typed`]})]}),(0,U.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,"aria-label":u,title:`Model may use it on its own`,disabled:n,"data-testid":`skill-switch-${e.name}`,onClick:r,className:H(`relative mt-0.5 h-5 w-9 shrink-0 rounded-full border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:opacity-50`,t?`border-accent bg-accent`:`border-border bg-surface-2`),children:(0,U.jsx)(`span`,{className:H(`absolute top-0.5 h-3.5 w-3.5 rounded-full bg-surface transition-all`,t?`left-[1.15rem]`:`left-0.5`)})})]})}var TO=new Set([`Task`,`Agent`,`Workflow`]);function EO(e){let t=[],n=[];for(let r of e)(r.running?t:n).push(r);return t.concat(n)}function DO(e){return e.kind===`tool`&&TO.has(e.name)}var OO=new Set([`streaming`,`pending`,`running`]);function kO(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function AO(e){return typeof e==`string`&&e.trim()?e.trim():null}function jO(e){let t=e.result?.structured;return t&&typeof t==`object`?t:null}function MO(e){if(e.kind===`tool`&&e.startedAt!==null)return e.startedAt;if(e.timestamp){let t=Date.parse(e.timestamp);if(Number.isFinite(t))return t}return null}var NO=new Map;function PO(e,t){let n=NO.get(t);n||(n=RegExp(`<${t}>([\\s\\S]*?)</${t}>`),NO.set(t,n));let r=n.exec(e);return r?r[1].trim():null}function FO(e,t,n){for(let r of e){if(!r.text.includes(`<task-notification>`)||PO(r.text,`task-id`)!==t)continue;let e=PO(r.text,`tool-use-id`);if(e&&e!==n)continue;let i=PO(r.text,`usage`)??``;return{status:PO(r.text,`status`),tokens:kO(Number(PO(i,`subagent_tokens`)??NaN)),toolUses:kO(Number(PO(i,`tool_uses`)??NaN)),durationMs:kO(Number(PO(i,`duration_ms`)??NaN)),at:MO(r)}}return null}var IO={alive:!0,since:null};function LO(e,t){return e.alive?e.since===null||t===null||t<=0||t>=e.since:!1}function RO(e,t=Date.now(),n={},r=IO){let i=e.filter(DO),a=e.filter(e=>e.kind===`user`&&e.text.includes(`<task-notification>`)),o=BO(i,e,a,t,r),s=zO(e,a,new Set(o.map(e=>e.agentId)),t,n,r);return[...o,...s]}function zO(e,t,n,r,i,a){let o=[],s=new Set(n),c=new Map;for(let e of t){if(!e.text.includes(`<task-notification>`))continue;let t=PO(e.text,`task-id`);if(!t||n.has(t))continue;let r=PO(e.text,`usage`)??``,i=PO(e.text,`status`),a=(PO(e.text,`summary`)??``).split(`
|
|
131
|
-
`)[0].trim(),o=MO(e)??0,s=c.get(t);s&&s.at>o||c.set(t,{at:o,view:{id:`note:${t}`,agentId:t,name:a.length>0?a.length>80?`${a.slice(0,79)}…`:a:`background task`,type:null,model:null,status:i&&i!==`completed`?`error`:`done`,running:!1,startedAt:null,endedAt:o>0?o:null,durationMs:kO(Number(PO(r,`duration_ms`)??NaN)),tokens:kO(Number(PO(r,`subagent_tokens`)??NaN)),toolCalls:kO(Number(PO(r,`tool_uses`)??NaN))??0,runs:1,nested:0,depth:0}})}for(let[e,t]of c)s.add(e),o.push(t.view);let l=new Map;for(let t of e){if(t.kind!==`permission`)continue;let e=t.request.agentId;if(!e||s.has(e))continue;let n=MO(t),r=l.get(e);r?(r.count+=1,(r.first===null||n!==null&&n<r.first)&&(r.first=n),n!==null&&(r.last===null||n>r.last)&&(r.last=n)):l.set(e,{first:n,last:n,count:1})}for(let[e,t]of l){let n=i[e],c=n?.finished===!0,l=n&&n.at>0?n.at:t.last,u=!c&&LO(a,l),d=n&&n.firstAt>0?t.first===null?n.firstAt:Math.min(t.first,n.firstAt):t.first,f=u?null:c&&n&&n.at>0?n.at:null;o.push({id:`perm:${e}`,agentId:e,name:`background agent`,type:null,model:null,status:u?`running`:c?`done`:`cancelled`,running:u,startedAt:d,endedAt:f,durationMs:d===null?null:Math.max(0,(u?r:f??l??d)-d),tokens:null,toolCalls:Math.max(t.count,n?.toolUses??0),runs:1,nested:0,depth:0}),s.add(e)}for(let[e,t]of Object.entries(i)){if(s.has(e)||l.has(e))continue;let n=!t.finished&&LO(a,t.at>0?t.at:null),i=t.firstAt>0?t.firstAt:null,c=n?null:t.finished&&t.at>0?t.at:null,u=n?r:t.at>0?t.at:i;o.push({id:`act:${e}`,agentId:e,name:`background agent`,type:null,model:null,status:n?`running`:t.finished?`done`:`cancelled`,running:n,startedAt:i,endedAt:c,durationMs:i!==null&&u!==null&&u>0?Math.max(0,u-i):null,tokens:null,toolCalls:t.toolUses,runs:1,nested:0,depth:0})}return o}function BO(e,t,n,r,i){if(e.length===0)return[];let a=new Map(e.map(e=>[e.toolUseId,e])),o=t.filter(e=>e.kind===`tool`&&e.name===`SendMessage`),s=new Map,c=new Map,l=new Map;for(let e of t){if(!e.parentToolUseId||!a.has(e.parentToolUseId))continue;if(e.kind===`assistant`){N(e.model)&&l.set(e.parentToolUseId,e.model);continue}if(e.kind!==`tool`)continue;let t=DO(e)?c:s;t.set(e.parentToolUseId,(t.get(e.parentToolUseId)??0)+1)}let u=e=>{let t=0,n=e.parentToolUseId;for(;n&&a.has(n)&&t<8;)t+=1,n=a.get(n).parentToolUseId;return t};return e.map(e=>{let t=jO(e),a=AO(e.input?.subagent_type),d=AO(e.input?.description)??AO(e.input?.name)??a??e.name,f=AO(t?.agentId)??e.toolUseId,p=t?.isAsync===!0||t?.status===`async_launched`,m={id:e.toolUseId,agentId:f,name:d,type:a,model:l.get(e.toolUseId)??null,startedAt:e.startedAt,nested:c.get(e.toolUseId)??0,depth:u(e)};if(!p){let n=OO.has(e.status)&&!e.result&&LO(i,e.startedAt),a=kO(t?.totalDurationMs)??e.durationMs??(n&&e.startedAt!==null?Math.max(0,r-e.startedAt):e.elapsedSec===null?null:e.elapsedSec*1e3);return{...m,status:n?e.status:OO.has(e.status)?`cancelled`:e.status,running:n,endedAt:n?null:e.finishedAt,durationMs:a,tokens:kO(t?.totalTokens),toolCalls:kO(t?.totalToolUseCount)??s.get(e.toolUseId)??0,runs:1}}let h=[e,...o.filter(e=>{let t=jO(e),n=AO(e.input?.to);return AO(t?.resumedAgentId)===f||n===f||n===d})],g=null,_=null,v=!1,y=!1,b=!1,x=null,S=null,C=null;for(let t of h){let a=FO(n,f,t.toolUseId),o=MO(t);if(!a){if(t!==e&&jO(t)?.success===!1||t!==e&&t.result?.isError)continue;S=o,LO(i,o)?(v=!0,x=o===null?null:Math.max(0,r-o)):(b=!0,x=null),C=null;continue}a.tokens!==null&&(g=(g??0)+a.tokens),a.toolUses!==null&&(_=(_??0)+a.toolUses),a.status&&a.status!==`completed`&&(y=!0),x=a.durationMs??(a.at!==null&&o!==null?Math.max(0,a.at-o):null),S=o,C=a.at}let w=v?`running`:y||e.status===`error`||e.status===`denied`?`error`:b?`cancelled`:`done`;return{...m,startedAt:S??e.startedAt,status:w,running:v,endedAt:v?null:C,durationMs:x,tokens:g,toolCalls:Math.max(_??0,s.get(e.toolUseId)??0),runs:h.length}})}var VO=1e3,HO=6e4;function UO(){let e=Rh(),t=zh(),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?RO(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<HO),[f,a,m]),_=f.length-g.length;if((0,v.useEffect)(()=>{if(!r)return;let e=setInterval(()=>o(Date.now()),VO);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,U.jsxs)(`span`,{ref:s,className:`relative inline-flex items-center`,children:[(0,U.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:H(`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,U.jsx)(K.Bot,{className:`w-3.5 h-3.5`}),(0,U.jsxs)(`span`,{children:[f.length,` `,f.length===1?`agent`:`agents`]}),p>0?(0,U.jsxs)(`span`,{className:`text-fg-faint`,children:[`· `,p,` working`]}):null,p>0?(0,U.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,U.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,U.jsxs)(`div`,{className:`max-h-[22rem] overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,U.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,U.jsx)(K.Bot,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`Subagents`}),(0,U.jsx)(`span`,{className:`normal-case tracking-normal text-fg-faint`,children:y})]}),(0,U.jsxs)(`ul`,{className:`max-h-[19rem] overflow-y-auto py-1`,children:[EO(g).map(e=>(0,U.jsx)(WO,{agent:e,onJump:()=>i(!1)},e.id)),g.length===0?(0,U.jsx)(`li`,{className:`px-2.5 py-2 text-xs text-fg-faint`,children:`Nothing is working now.`}):null]}),_>0||m?(0,U.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 WO({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,U.jsx)(`li`,{children:(0,U.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:H(`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,U.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.running?(0,U.jsx)(K.Spinner,{className:`w-3 h-3 text-accent`}):(0,U.jsx)(K.Bot,{className:`w-3 h-3 text-fg-faint`}),(0,U.jsx)(`span`,{className:H(`min-w-0 flex-1 truncate text-sm font-medium`,o?`text-fg-muted`:`text-fg`),children:e.name}),(0,U.jsx)(X,{tone:i,children:a})]}),(0,U.jsxs)(`span`,{className:`flex items-center gap-3 pl-5 text-[11px] text-fg-faint`,children:[e.type&&e.type!==e.name?(0,U.jsx)(`span`,{className:`font-mono`,children:e.type}):null,e.model?(0,U.jsx)(`span`,{className:`font-mono`,"data-testid":`subagent-model-${e.agentId}`,children:e.model}):null,e.runs>1?(0,U.jsxs)(`span`,{children:[`resumed ×`,e.runs-1]}):null,e.durationMs===null?null:(0,U.jsx)(`span`,{children:Ep(e.durationMs)}),e.tokens===null?null:(0,U.jsxs)(`span`,{children:[Dp(e.tokens),` tokens`]}),(0,U.jsxs)(`span`,{children:[e.toolCalls,` `,e.toolCalls===1?`tool call`:`tool calls`]}),e.nested>0?(0,U.jsxs)(`span`,{children:[e.nested,` `,e.nested===1?`subagent`:`subagents`]}):null]})]})})}function GO({sessionId:e,projectId:t,showChat:n=!1}){let{state:r,actions:i}=W(),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(null),l=r.scheduledTasksVersion;(0,v.useEffect)(()=>{let n=!0;return i.listScheduledTasks({...e?{sessionId:e}:{},...t?{projectId:t}:{}}).then(e=>{n&&o(e)}),()=>{n=!1}},[e,t,l]);let u=e=>r.sessions.find(t=>t.id===e)?.title??`a chat`;return a===null?null:a.length===0?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`scheduled-tasks-empty`,children:`No scheduled tasks. Ask the agent to do something later or on a repeat — it uses OonaCode's scheduler, which runs on this PC even when the chat has gone quiet.`}):(0,U.jsx)(`ul`,{className:`space-y-1.5`,"data-testid":`scheduled-tasks`,children:a.map(e=>(0,U.jsxs)(`li`,{className:`rounded-md border border-border px-2.5 py-1.5 text-xs`,"data-testid":`scheduled-task-${e.id}`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-fg`,title:e.prompt,children:e.title}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void i.updateScheduledTask(e.id,{enabled:!e.enabled}),disabled:!e.enabled&&e.nextRunAt===null&&`at`in e.when,"data-testid":`scheduled-task-toggle`,children:e.enabled?`Pause`:`Resume`}),(0,U.jsx)(q,{size:`sm`,variant:s===e.id?`danger`:`ghost`,onClick:()=>{if(s!==e.id){c(e.id);return}c(null),i.deleteScheduledTask(e.id)},"data-testid":`scheduled-task-delete`,children:s===e.id?`Delete?`:`Delete`})]}),(0,U.jsxs)(`div`,{className:`mt-0.5 text-fg-muted`,children:[ou(e.when),` · `,su(e.nextRunAt,e.enabled),n?` · in “${u(e.sessionId)}”`:``,e.createdBy===`model`?` · set by the agent`:``]}),e.lastResult?(0,U.jsxs)(`div`,{className:`text-fg-faint`,"data-testid":`scheduled-task-result`,children:[`last: `,e.lastResult]}):null]},e.id))})}function KO(e,t){let n=new Date(e),r=n.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});return n.toDateString()===t.toDateString()?r:`${n.toLocaleDateString(void 0,{month:`short`,day:`numeric`})} ${r}`}function qO(){let{state:e,actions:t}=W(),n=zh()?.id??null,r=e.scheduledTasksVersion,[i,a]=(0,v.useState)([]),[o,s]=(0,v.useState)(!1),c=(0,v.useRef)(null);if((0,v.useEffect)(()=>{if(!n){a([]);return}let e=!0;return t.listScheduledTasks({sessionId:n}).then(t=>{e&&a(t)}).catch(()=>{e&&a([])}),()=>{e=!1}},[n,r]),(0,v.useEffect)(()=>{if(!o)return;let e=e=>{c.current?.contains(e.target)||s(!1)},t=e=>{e.key===`Escape`&&s(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[o]),(0,v.useEffect)(()=>s(!1),[n]),!n||i.length===0)return null;let l=i.filter(e=>e.enabled&&e.nextRunAt!==null),u=l.map(e=>e.nextRunAt).sort().at(0),d=l.length>0?`${l.length} scheduled${u?` · next ${KO(u,new Date)}`:``}`:`${i.length} scheduled · paused`;return(0,U.jsxs)(`span`,{ref:c,className:`relative inline-flex items-center`,children:[(0,U.jsxs)(`button`,{type:`button`,"aria-label":`Scheduled tasks: ${d}`,title:`Scheduled tasks of this chat — ${d}`,"aria-haspopup":`dialog`,"aria-expanded":o,"data-testid":`scheduled-badge`,onClick:()=>s(e=>!e),className:H(`flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-0.5 text-xs hover:bg-fg/5`,l.length>0?`text-accent`:`text-fg-muted`),children:[(0,U.jsx)(K.Clock,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{children:d})]}),o?(0,U.jsx)(`div`,{role:`dialog`,"aria-label":`Scheduled tasks of this chat`,"data-testid":`scheduled-panel`,className:`absolute bottom-full left-0 z-50 mb-1 w-[26rem] max-w-[calc(100vw-2rem)]`,children:(0,U.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,U.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,U.jsx)(K.Clock,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`Scheduled tasks`}),(0,U.jsx)(`span`,{className:`normal-case tracking-normal text-fg-faint`,children:`runs on this PC`})]}),(0,U.jsx)(`div`,{className:`max-h-[22rem] overflow-y-auto p-2`,children:(0,U.jsx)(GO,{sessionId:n})})]})}):null]})}function JO(){let{state:e,actions:t}=W(),n=zh()?.id??null,r=n!==null&&e.remote.tabs[n]!==void 0,i=n?e.chatConversations[n]:void 0,a=e.conversationsChange,[o,s]=(0,v.useState)(!1),c=(0,v.useRef)(null),l=(0,v.useRef)({sessionId:null,seq:-1}),u=(0,v.useRef)(i);if(u.current=i,(0,v.useEffect)(()=>{if(!n||r)return;let e=l.current,i=e.sessionId!==n;if(!i&&e.seq===a.seq)return;l.current={sessionId:n,seq:a.seq};let o=(u.current??[]).map(e=>e.id);!i&&!Fl(a,{sessionId:n,conversationIds:o})||t.refreshChatConversations(n)},[n,r,a,t]),(0,v.useEffect)(()=>{if(!o)return;let e=e=>{c.current?.contains(e.target)||s(!1)},t=e=>{e.key===`Escape`&&s(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[o]),(0,v.useEffect)(()=>s(!1),[n]),!n||r||!i)return null;let d=zl(i,n);if(d.length===0)return null;let f=Bl(d),p=d.some(e=>e.status===`active`),m=async e=>{await t.conversationAction(e.id,e.status===`active`?`pause`:`resume`)&&t.refreshChatConversations(n)},h=e=>{s(!1),t.openConversations(e??null)};return(0,U.jsxs)(`span`,{ref:c,className:`relative inline-flex items-center`,children:[(0,U.jsxs)(`button`,{type:`button`,"aria-label":`Conversations with other chats: ${f}`,title:`This chat's conversations with your other chats — ${f}`,"aria-haspopup":`dialog`,"aria-expanded":o,"data-testid":`conversations-badge`,onClick:()=>s(e=>!e),className:H(`flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-0.5 text-xs hover:bg-fg/5`,p?`text-accent`:`text-fg-muted`),children:[(0,U.jsx)(K.Chats,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{children:f})]}),o?(0,U.jsx)(`div`,{role:`dialog`,"aria-label":`Conversations of this chat`,"data-testid":`conversations-badge-panel`,className:`absolute bottom-full left-0 z-50 mb-1 w-[26rem] max-w-[calc(100vw-2rem)]`,children:(0,U.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,children:[(0,U.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,U.jsx)(K.Chats,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`Conversations with other chats`}),(0,U.jsx)(`span`,{className:`normal-case tracking-normal text-fg-faint`,children:`on this PC`})]}),(0,U.jsx)(`ul`,{className:`max-h-[22rem] space-y-1.5 overflow-y-auto p-2`,children:d.map(e=>(0,U.jsxs)(`li`,{className:`rounded-md border border-border px-2.5 py-1.5 text-xs`,"data-testid":`conversations-badge-item-${e.id}`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-fg`,children:Ll(e)}),(0,U.jsx)(`span`,{title:Zl.status,children:(0,U.jsx)(X,{tone:Hl(e.status),children:Vl[e.status]})})]}),(0,U.jsxs)(`div`,{className:`mt-0.5 text-fg-muted`,"data-testid":`conversations-badge-usage`,children:[e.used.messages,` of `,e.budget.messages,` messages ·`,` `,Dp(e.used.tokens),` of `,Dp(e.budget.tokens),` tokens`]}),e.status===`paused`&&e.pausedReason?(0,U.jsxs)(`div`,{className:`text-warn`,children:[`Paused: `,e.pausedReason]}):null,(0,U.jsxs)(`div`,{className:`mt-1 flex items-center gap-1`,children:[(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void m(e),title:e.status===`active`?Zl.pause:Zl.resume,"data-testid":`conversations-badge-toggle`,children:e.status===`active`?`Pause`:`Resume`}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>h(e.id),title:`See every message of this conversation, what it cost, and all its controls`,"data-testid":`conversations-badge-open`,children:`Open in Conversations`})]})]},e.id))}),(0,U.jsx)(`div`,{className:`border-t border-border px-2.5 py-1.5 text-right`,children:(0,U.jsx)(`button`,{type:`button`,className:`text-xs text-accent hover:underline`,onClick:()=>h(),"data-testid":`conversations-badge-all`,children:`All conversations on this PC`})})]})}):null]})}function YO(){let{state:e}=W(),t=zh(),n=Bh(),r=e.currentSessionId?e.pendingRouting[e.currentSessionId]:void 0;return(0,v.useMemo)(()=>{let i=hu(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 XO=null,ZO=460,QO=8;function $O(e,t){if(typeof window>`u`)return e;let n=t?.offsetWidth??ZO,r=t?.offsetHeight??200;return{left:Math.min(Math.max(QO,e.left),Math.max(QO,window.innerWidth-n-QO)),top:Math.min(Math.max(QO,e.top),Math.max(QO,window.innerHeight-r-QO))}}function ek(e,t,n,r){return e===t?`current`:r[e]?`skipped`:n[e]?`answered`:`open`}function tk({item:e,onDecide:t,busy:n,cardRef:r,stackIndex:i=0}){let a=e.request,o=Rc(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)(XO),_=(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=zc(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:Ic});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)))},j=()=>{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:Ic});return}let n={...l,[s]:[]},r={...d,[s]:``};t({behavior:`allow`,updatedInput:{...a.input,answers:zc(o,n,r,e)}});return}c(s+1)},M=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=$O({left:e.clientX-t.dx,top:e.clientY-t.dy},r.current);XO=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=$O(h,r.current);(e.left!==h.left||e.top!==h.top)&&g(e)}},[]),typeof document>`u`||o.length===0)return null;let N=h?{left:h.left+i*24,top:h.top+i*24}:{right:16+i*24,bottom:132+i*24};return(0,Kh.createPortal)((0,U.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:N,role:`group`,"aria-label":`The model has a question`,"data-permission-pending":`true`,"data-testid":`question-${a.requestId}`,children:[(0,U.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:M,"data-testid":`question-drag-handle`,title:`Drag to move`,children:[(0,U.jsx)(K.Info,{className:`w-4 h-4 text-accent`}),(0,U.jsx)(`span`,{className:`font-semibold`,children:o.length>1?`The model has questions`:`The model has a question`}),a.agentId?(0,U.jsx)(X,{tone:`think`,children:`subagent`}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsxs)(`span`,{className:`text-[11px] text-fg-faint`,"data-testid":`question-step`,children:[s+1,` of `,o.length]})]}),o.length>1?(0,U.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=ek(t,s,C,p);return(0,U.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,U.jsx)(K.Check,{className:`w-3 h-3`}):null,r===`skipped`?(0,U.jsx)(`span`,{"aria-hidden":!0,children:`–`}):null,e.header||`Q${t+1}`]},t)})}):null,b?(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-2.5`,"data-testid":`question-body`,children:[(0,U.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[b.header?(0,U.jsx)(X,{tone:`accent`,children:b.header}):null,(0,U.jsx)(`span`,{className:`font-medium`,children:b.question})]}),(0,U.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,U.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,U.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,U.jsx)(K.Check,{className:`w-2.5 h-2.5`}):null}),(0,U.jsxs)(`span`,{className:`min-w-0`,children:[(0,U.jsx)(`span`,{className:`block text-sm`,children:e.label}),e.description?(0,U.jsx)(`span`,{className:`block text-[11px] leading-snug text-fg-muted`,children:e.description}):null]})]},e.label)})}),(0,U.jsx)(`input`,{ref:y,className:Y+` 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,U.jsx)(`div`,{className:`mt-1 text-[11px] text-fg-faint`,children:`Choose any that apply.`}):null]}):null,(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t border-border px-3 py-2`,children:[(0,U.jsx)(q,{size:`sm`,variant:`ghost`,disabled:n||s===0,onClick:()=>c(s-1),"data-testid":`question-back`,children:`Back`}),(0,U.jsx)(q,{size:`sm`,disabled:n,onClick:j,"data-testid":`question-skip`,children:`Skip`}),(0,U.jsx)(`span`,{className:`flex-1`}),x?(0,U.jsx)(q,{size:`sm`,variant:`primary`,busy:n,disabled:!E,onClick:k,"data-testid":`question-answer`,children:`Answer`}):(0,U.jsxs)(q,{size:`sm`,variant:`primary`,busy:n,disabled:!C[s]&&!p[s],onClick:A,"data-testid":`question-next`,children:[`Next `,(0,U.jsx)(K.ChevronRight,{className:`w-3.5 h-3.5`})]})]})]}),document.body)}function nk({input:e,requestId:t,onDecide:n,busy:r,cardRef:i}){return(0,U.jsxs)(`div`,{ref:i,className:`my-2 rounded-lg border border-accent/50 bg-accent-soft/40 p-3 text-sm shadow-sm`,role:`group`,"aria-label":`Install ${e.name}`,"data-permission-pending":`true`,"data-testid":`permission-${t}`,"data-install-pack":e.pack,children:[(0,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Download,{className:`mt-0.5 w-4 h-4 shrink-0 text-accent`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`font-semibold`,"data-testid":`tool-install-title`,children:[`Install `,e.name,`?`]}),(0,U.jsxs)(`div`,{className:`mt-0.5 text-fg-muted`,children:[`The agent wants to use `,e.name,`. It is downloaded once —`,` `,(0,U.jsx)(`span`,{className:`font-medium text-fg`,"data-testid":`tool-install-size`,children:Wc(e.sizeBytes)}),` `,`— and after that it opens without asking, in every chat.`]}),(0,U.jsxs)(`div`,{className:`mt-1 text-xs text-fg-faint`,children:[`Installs into`,` `,(0,U.jsx)(`span`,{className:`break-all font-mono`,"data-testid":`tool-install-path`,children:e.path}),` `,`· version `,e.version]})]})]}),(0,U.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(q,{variant:`inverse`,busy:r,onClick:()=>n({behavior:`allow`}),"data-testid":`tool-install-allow`,"data-autofocus":!0,children:[(0,U.jsx)(K.Download,{className:`w-3.5 h-3.5`}),` Install`]}),(0,U.jsx)(q,{variant:`ghost`,busy:r,onClick:()=>n({behavior:`deny`,message:`The person chose not to install ${e.name} now.`}),"data-testid":`tool-install-deny`,children:`Not now`}),(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`Esc = not now`})]})]})}var rk={downloading:`Downloading`,verifying:`Checking`,unpacking:`Unpacking`,done:`Installed`,failed:`Could not install`};function ik(e){let t=`${rk[e.phase]} ${e.name}`;return e.phase===`failed`?`${t}: ${e.error??`unknown error`}`:e.phase===`downloading`&&e.totalBytes>0?`${t} — ${Wc(e.receivedBytes)} of ${Wc(e.totalBytes)}`:e.phase===`unpacking`&&e.totalBytes>0?`${t} — ${Math.min(100,Math.round(e.receivedBytes/e.totalBytes*100))} %`:`${t}…`}function ak({frame:e,onDismiss:t}){let n=e.phase===`failed`,r=(e.phase===`downloading`||e.phase===`unpacking`)&&e.totalBytes>0?Math.min(100,Math.round(e.receivedBytes/e.totalBytes*100)):e.phase===`verifying`?100:null;return(0,U.jsxs)(`div`,{className:`mb-2 rounded-md border px-3 py-2 text-xs `+(n?`border-danger/40 bg-danger/10 text-danger`:`border-accent/40 bg-accent/10 text-fg`),role:`status`,"data-testid":`tool-install-progress`,"data-phase":e.phase,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1`,children:ik(e)}),n?(0,U.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`shrink-0 rounded p-0.5 hover:bg-danger/20`,onClick:t,children:(0,U.jsx)(K.X,{className:`w-3 h-3`})}):null]}),r===null?null:(0,U.jsx)(`div`,{className:`mt-1 h-1 w-full overflow-hidden rounded bg-fg/10`,children:(0,U.jsx)(`div`,{className:`h-full bg-accent transition-[width] duration-200`,style:{width:`${r}%`},"data-testid":`tool-install-bar`})})]})}function ok({input:e,requestId:t,onDecide:n,busy:r,cardRef:i}){return(0,U.jsxs)(`div`,{ref:i,className:`my-2 rounded-lg border border-accent/50 bg-accent-soft/40 p-3 text-sm shadow-sm`,role:`group`,"aria-label":`Switch this chat's workspace`,"data-permission-pending":`true`,"data-testid":`permission-${t}`,"data-workspace-switch":`true`,children:[(0,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Folder,{className:`mt-0.5 w-4 h-4 shrink-0 text-accent`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`font-semibold`,"data-testid":`workspace-switch-title`,children:[`Switch this chat's workspace to`,` `,(0,U.jsx)(`span`,{className:`break-all font-mono`,children:e.to}),`?`]}),(0,U.jsxs)(`div`,{className:`mt-1 text-xs text-fg-faint`,children:[`Now in`,` `,(0,U.jsx)(`span`,{className:`break-all font-mono`,"data-testid":`workspace-switch-from`,children:e.from}),e.create?` · the new folder is created on Switch`:``]}),(0,U.jsx)(`div`,{className:`mt-1 text-fg-muted`,children:`The chat moves when the agent's current turn ends. Your next message restarts the agent there, with that folder's CLAUDE.md and settings — the conversation is kept.`})]})]}),(0,U.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(q,{variant:`inverse`,busy:r,onClick:()=>n({behavior:`allow`}),"data-testid":`workspace-switch-allow`,"data-autofocus":!0,children:[(0,U.jsx)(K.Folder,{className:`w-3.5 h-3.5`}),` Switch`]}),(0,U.jsx)(q,{variant:`ghost`,busy:r,onClick:()=>n({behavior:`deny`}),"data-testid":`workspace-switch-deny`,children:`Not now`}),(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`Esc = not now`})]})]})}function sk(e){return Math.max(100,Math.min(1e3,Math.round(e/100)))}function ck(e,t=600){let n=e.length-t;if(n<=0)return{head:``,tail:e};let r=!1,i=-1,a=0;for(;a<n;){let t=e.indexOf(`
|
|
132
|
-
`,a),o=t===-1?e.length:t,s=e.slice(a,o);if(/^\s{0,3}(```|~~~)/.test(s)&&(r=!r),!r&&s.trim()===``&&a>0&&o<=n&&(i=a-1),t===-1)break;a=t+1}return i<=0?{head:``,tail:e}:{head:e.slice(0,i),tail:e.slice(i)}}function lk(e,t){let[n,r]=(0,v.useState)(e),i=(0,v.useRef)(e);i.current=e;let a=sk(e.length);return(0,v.useEffect)(()=>{if(!t)return;let e=window.setInterval(()=>r(i.current),a);return()=>window.clearInterval(e)},[t,a]),t?n:e}var uk=new Set;function dk(){let e=uk,t=new Set;return{get:()=>e,set(n){if(n.size!==0||e.size!==0){e=n.size===0?uk:n;for(let e of t)e()}},subscribe(e){return t.add(e),()=>t.delete(e)}}}var fk=(0,v.createContext)({get:()=>uk,set:()=>{},subscribe:()=>()=>{}});function pk(e){let t=(0,v.useContext)(fk),n=()=>{let n=t.get();return n.size===0?!1:typeof e==`string`?n.has(e):e.some(e=>n.has(e))};return(0,v.useSyncExternalStore)(t.subscribe,n,n)}function mk(e,t){let n=pk(e);return(0,v.useEffect)(()=>{n&&t(!0)},[n,t]),n}function hk(e){return typeof e==`string`?e:null}function gk(e,t){if(!t)return``;switch(e){case`Bash`:case`PowerShell`:return Np((hk(t.command)??``).replace(/\s+/g,` `),90);case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:return hk(t.file_path)??hk(t.notebook_path)??``;case`Glob`:case`Grep`:return`${hk(t.pattern)??``}${hk(t.path)?` in ${hk(t.path)}`:``}`;case`Task`:case`Agent`:return hk(t.description)??Np(hk(t.prompt)??``,80);case`WebFetch`:case`WebSearch`:return hk(t.url)??hk(t.query)??``;case`TodoWrite`:return`update todo list`;default:{let e=Object.entries(t).find(([,e])=>typeof e==`string`);return e?Np(String(e[1]).replace(/\s+/g,` `),80):``}}}var _k=(0,v.memo)(function({oldText:e,newText:t}){let n=(0,v.useMemo)(()=>e.split(`
|
|
133
|
-
`),[e]),r=(0,v.useMemo)(()=>t.split(`
|
|
134
|
-
`),[t]);return(0,U.jsxs)(`pre`,{className:`lazy-block m-0 max-h-72 overflow-auto rounded-md border border-border bg-code-bg p-2 font-mono text-[12.5px] leading-relaxed`,children:[n.map((e,t)=>(0,U.jsxs)(`div`,{className:`bg-danger-soft text-danger`,children:[(0,U.jsx)(`span`,{className:`select-none pr-2 text-fg-faint`,children:`-`}),e]},`o${t}`)),r.map((e,t)=>(0,U.jsxs)(`div`,{className:`bg-ok-soft text-ok`,children:[(0,U.jsx)(`span`,{className:`select-none pr-2 text-fg-faint`,children:`+`}),e]},`n${t}`))]})}),vk=TE;function yk({name:e,input:t,inputJson:n,streaming:r}){if(!t)return n?(0,U.jsx)($D,{code:n,language:`json`,maxHeight:`14rem`}):r?(0,U.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`Receiving arguments…`}):null;switch(e){case`Bash`:case`PowerShell`:{let n=hk(t.description);return(0,U.jsxs)(`div`,{children:[n?(0,U.jsx)(`div`,{className:`mb-1 text-xs text-fg-muted`,children:n}):null,(0,U.jsx)($D,{code:hk(t.command)??Pp(t),language:e===`PowerShell`?`powershell`:`bash`,maxHeight:`14rem`})]})}case`Edit`:{let e=hk(t.file_path);return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[e?(0,U.jsxs)(`div`,{className:`font-mono text-xs text-fg-muted`,children:[e,t.replace_all?` (replace all)`:``]}):null,(0,U.jsx)(_k,{oldText:hk(t.old_string)??``,newText:hk(t.new_string)??``})]})}case`Write`:{let e=hk(t.file_path);return(0,U.jsxs)(`div`,{children:[e?(0,U.jsx)(`div`,{className:`mb-1 font-mono text-xs text-fg-muted`,children:e}):null,(0,U.jsx)($D,{code:hk(t.content)??``,language:vk(e),maxHeight:`18rem`})]})}case`Read`:{let e=hk(t.file_path)??``,n=[t.offset===void 0?null:`offset ${String(t.offset)}`,t.limit===void 0?null:`limit ${String(t.limit)}`].filter(Boolean).join(`, `);return(0,U.jsxs)(`div`,{className:`font-mono text-xs text-fg-muted`,children:[e,n?` (${n})`:``]})}default:return(0,U.jsx)($D,{code:Pp(t),language:`json`,maxHeight:`14rem`})}}function bk({blocks:e}){return(0,U.jsx)(`div`,{className:`space-y-1`,children:e.map((e,t)=>{if(e.type===`image`){let n=e.source,r=n?.type===`base64`&&n.data?`data:${n.media_type??`image/png`};base64,${n.data}`:n?.url;return r?(0,U.jsx)(`img`,{src:r,alt:`tool result`,className:`max-h-64 max-w-full rounded border border-border`},t):(0,U.jsx)(`div`,{children:`[image]`},t)}let n=e.type===`text`?e.text??``:`[${e.type}]`;return(0,U.jsx)(`pre`,{className:`pre-wrap m-0 font-mono text-[12.5px] leading-relaxed`,children:n},t)})})}var xk=`Code snippet`;function Sk(e){return e===`unknown`?xk:e===Bu?Vu:e}var Ck={streaming:`preparing`,pending:`needs approval`,running:`running`,done:`done`,error:`error`,denied:`denied`,skipped:`skipped`,cancelled:`cancelled`};function wk({status:e}){switch(e){case`streaming`:case`running`:return(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5 text-accent`});case`pending`:return(0,U.jsx)(K.Shield,{className:`w-3.5 h-3.5 text-warn`});case`done`:return(0,U.jsx)(K.Check,{className:`w-3.5 h-3.5 text-ok`});case`error`:case`denied`:return(0,U.jsx)(K.X,{className:`w-3.5 h-3.5 text-danger`});case`skipped`:case`cancelled`:return(0,U.jsx)(K.X,{className:`w-3.5 h-3.5 text-fg-faint`})}}function Tk(e){for(let t of e)if(t.item.kind===`permission`&&t.item.status===`pending`||t.children.length>0&&Tk(t.children))return!0;return!1}var Ek=(0,v.memo)(function({node:e,renderChildren:t}){let n=e.item,r=n.status===`error`||n.status===`denied`,[i,a]=(0,v.useState)(null),o=mk(n.id,a),s=Tk(e.children),c=TO.has(n.name)&&(n.status===`done`||n.status===`cancelled`),l=s||o||(i??(r||n.status===`pending`||e.children.length>0&&!c)),u=(0,v.useMemo)(()=>gk(n.name,n.input),[n.name,n.input]),d=(0,v.useMemo)(()=>l?wp(n.result):``,[l,n.result]),f=n.result!==null&&!n.result.isError&&(typeof n.result.content==`string`&&/^Async agent launched/i.test(n.result.content.trimStart())||n.result.structured?.status===`async_launched`),p=n.durationMs===null?n.elapsedSec!==null&&!n.result?Ep(n.elapsedSec*1e3):``:Ep(n.durationMs);return(0,U.jsxs)(`div`,{"data-testid":`tool-${n.toolUseId}`,className:H(`my-1.5 overflow-hidden rounded-lg border bg-surface text-sm`,r?`border-danger/50`:n.status===`pending`?`border-warn/60`:`border-border`),children:[(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":l,onClick:()=>a(s?null:!l),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left hover:bg-surface-2`,children:[(0,U.jsx)(wk,{status:n.status}),(0,U.jsx)(K.Tool,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:Sk(n.name)}),u?(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-fg-muted`,children:u}):(0,U.jsx)(`span`,{className:`flex-1`}),p?(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:p}):null,(0,U.jsx)(X,{tone:r?`danger`:n.status===`pending`?`warn`:n.status===`done`?`ok`:`neutral`,children:Ck[n.status]}),(0,U.jsx)(K.Chevron,{open:l,className:`w-3.5 h-3.5 text-fg-faint`})]}),l?(0,U.jsxs)(`div`,{className:`space-y-2 border-t border-border px-2.5 py-2`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] uppercase tracking-wide text-fg-faint`,children:`Input`}),(0,U.jsx)(yk,{name:n.name,input:n.input,inputJson:n.inputJson,streaming:n.status===`streaming`})]}),e.children.length>0?(0,U.jsxs)(`div`,{className:`border-l-2 border-think/40 pl-2`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] uppercase tracking-wide text-think`,children:`Subagent`}),t(e.children)]}):null,n.result&&f?(0,U.jsx)(`div`,{className:`text-xs text-fg-faint`,"data-testid":`tool-launch-note`,children:`Launched in the background — the chat is told when it finishes.`}):n.result?(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-center justify-between text-[11px] uppercase tracking-wide text-fg-faint`,children:[(0,U.jsx)(`span`,{children:n.result.isError?`Error`:`Result`}),d?(0,U.jsxs)(`span`,{className:`normal-case`,children:[d.length.toLocaleString(),` chars`]}):null]}),(0,U.jsx)(`div`,{className:H(`lazy-block max-h-72 overflow-auto rounded-md border p-2`,n.result.isError?`border-danger/40 bg-danger-soft text-danger`:`border-border bg-code-bg`),children:typeof n.result.content==`string`?(0,U.jsx)(`pre`,{className:`pre-wrap m-0 font-mono text-[12.5px] leading-relaxed`,children:n.result.content.replace(/<\/?tool_use_error>/g,``).trim()||`(empty)`}):(0,U.jsx)(bk,{blocks:n.result.content})})]}):n.status===`cancelled`?(0,U.jsx)(`div`,{className:`text-xs text-fg-faint`,children:`No result (turn ended before the tool finished).`}):null]}):null]})}),Dk=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(null),r=mk(e.id,n)||(t??e.streaming),i=lk(e.text,e.streaming),a=Ok(i);return!e.streaming&&(e.redacted||a===0)?(0,U.jsxs)(`div`,{className:`my-1.5 flex items-center gap-2 rounded-lg border border-think/20 bg-think-soft/20 px-2.5 py-1.5 text-sm text-think/70`,"data-testid":`thought-empty`,title:e.redacted?`The provider hid this thought: only an encrypted copy came back, which the model reads and nobody else can.`:`The model thought here, but its provider sent no text for it — only a signature. There is nothing to show.`,children:[(0,U.jsx)(K.Brain,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`font-medium`,children:e.redacted?`Redacted thinking`:`Thought`}),(0,U.jsx)(`span`,{className:`text-xs opacity-70`,children:e.redacted?`hidden`:`empty`})]}):(0,U.jsxs)(`div`,{className:`my-1.5 rounded-lg border border-think/30 bg-think-soft/40 text-sm`,children:[(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>n(!r),className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-think`,children:[e.streaming?(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`}):(0,U.jsx)(K.Brain,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`font-medium`,children:e.redacted?`Redacted thinking`:e.streaming?`Thinking…`:`Thought`}),a?(0,U.jsxs)(`span`,{className:`text-xs opacity-70`,"data-testid":`thought-words`,children:[a.toLocaleString(`en-US`),` `,a===1?`word`:`words`]}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:r,className:`w-3.5 h-3.5 opacity-70`})]}),r&&!e.redacted?(0,U.jsx)(`div`,{className:H(`border-t border-think/20 px-3 py-2 text-fg-muted`,e.streaming&&`caret`),children:e.streaming?(0,U.jsx)(`div`,{className:`pre-wrap`,"data-testid":`thinking-stream`,children:i}):(0,U.jsx)(oO,{text:e.text})}):null]})});function Ok(e){let t=0,n=!1;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);i===32||i===10||i===13||i===9?n=!1:n||(n=!0,t++)}return t}function kk(e){if(!e)return!1;if(e.tagName===`TEXTAREA`)return!0;if(e.tagName===`INPUT`){let t=(e.type||`text`).toLowerCase();return![`button`,`checkbox`,`radio`,`submit`,`reset`,`range`,`color`,`file`].includes(t)}return e.isContentEditable===!0}function Ak(e){!e||typeof document>`u`||kk(document.activeElement)||e.querySelector(`[data-autofocus]`)?.focus()}function jk(e){if(!e)return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e instanceof HTMLElement&&e.isContentEditable}function Mk(e,t,n){if(!e||!n||n.querySelector(`[role="dialog"][aria-modal="true"]`))return!1;let r=t instanceof Element?t:null;if(r&&jk(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 Nk=(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)(()=>Wu(n.toolName,n.input,110),[n]),s=n.agentId?t??`background agent`:null;return(0,U.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-${n.requestId}`,children:[(0,U.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,U.jsx)(K.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,U.jsx)(K.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,U.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,U.jsx)(`span`,{className:`min-w-0 truncate font-mono text-fg-muted`,"data-testid":`permission-summary`,children:o}):null,s?(0,U.jsx)(`span`,{title:n.agentId??void 0,className:`shrink-0`,children:(0,U.jsx)(X,{tone:`think`,children:s})}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:r,className:`w-3 h-3 shrink-0`})]}),r?(0,U.jsx)(`div`,{className:`ml-5 mt-1`,children:(0,U.jsx)(yk,{name:n.toolName,input:n.input})}):null]})});function Pk({items:e,agentNameOf:t}){let[n,r]=(0,v.useState)(!1),i=mk((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,U.jsxs)(`div`,{className:`my-1 text-xs text-fg-faint`,"data-testid":`permission-run`,children:[(0,U.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,U.jsx)(K.Check,{className:`w-3 h-3 shrink-0 text-ok`}):(0,U.jsx)(K.X,{className:`w-3 h-3 shrink-0 text-danger`}),(0,U.jsxs)(`span`,{className:`shrink-0`,children:[a>0?`Allowed ${a}`:``,a>0&&o>0?` · `:``,o>0?`Denied ${o}`:``]}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-fg-muted`,"data-testid":`permission-run-tools`,children:s}),c.length>0?(0,U.jsx)(`span`,{className:`shrink-0`,children:(0,U.jsx)(X,{tone:`think`,children:c.length===1?c[0]:`${c.length} agents`})}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:n||i,className:`w-3 h-3 shrink-0`})]}),n||i?(0,U.jsx)(`div`,{className:`ml-3`,children:e.map(e=>(0,U.jsx)(Nk,{item:e,agentName:e.request.agentId?t(e.request.agentId):null},e.id))}):null]})}function Fk({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`;if((0,v.useEffect)(()=>{if(m&&typeof document<`u`){let e=e=>{e.key!==`Escape`||f.current||Mk(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]),(0,v.useEffect)(()=>{m&&Ak(p.current)},[m]),e.status!==`pending`)return(0,U.jsx)(Nk,{item:e,agentName:i??null});if(a.toolName===`AskUserQuestion`)return(0,U.jsx)(tk,{item:e,onDecide:t,busy:n,cardRef:p,...r===void 0?{}:{stackIndex:r}});let h=Gc(a);if(h)return(0,U.jsx)(nk,{input:h,requestId:a.requestId,onDecide:t,cardRef:p,...n===void 0?{}:{busy:n}});let g=Hu(a);return g?(0,U.jsx)(ok,{input:g,requestId:a.requestId,onDecide:t,cardRef:p,...n===void 0?{}:{busy:n}}):(0,U.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,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Shield,{className:`mt-0.5 w-4 h-4 text-warn`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`font-semibold`,children:u}),(0,U.jsx)(X,{tone:`warn`,children:a.toolName}),a.agentId?(0,U.jsx)(X,{tone:`think`,children:`subagent`}):null]}),a.description?(0,U.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:a.description}):null,a.decisionReason?(0,U.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-faint`,children:a.decisionReason}):null,a.blockedPath?(0,U.jsxs)(`div`,{className:`mt-0.5 font-mono text-xs text-danger`,children:[`Blocked path: `,a.blockedPath]}):null]})]}),(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsx)(yk,{name:a.toolName,input:a.input})}),o?(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsx)(`input`,{className:Y,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,U.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(q,{variant:`inverse`,busy:n,onClick:()=>t({behavior:`allow`}),"data-autofocus":!0,children:[(0,U.jsx)(K.Check,{className:`w-3.5 h-3.5`}),` Allow`]}),(0,U.jsx)(q,{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,U.jsx)(q,{variant:`secondary`,busy:n,onClick:()=>t(c.trim()?{behavior:`deny`,message:c.trim()}:{behavior:`deny`}),children:`Confirm deny`}):(0,U.jsxs)(q,{variant:`ghost`,busy:n,onClick:()=>s(!0),children:[(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`}),` Deny`]}),(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`Enter = allow · Esc = deny`})]})]})}var Ik=6e4;function Lk(e){return Math.ceil(Math.max(0,e)/3)*4}function Rk(e,t){return t?Math.min(e.size,Ik):Lk(e.size)}function zk(e){return e>=1048576?`${(e/1048576).toFixed(1)} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${Math.max(0,Math.round(e))} B`}function Bk(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=Rk(t,r(t));if(e>n){o.push({name:t.name,reason:`too large — ${zk(t.size)} becomes ${zk(e)} once encoded (limit ${zk(n)})`});continue}if(i+e>n){o.push({name:t.name,reason:`would exceed the ${zk(n)} attachment budget — send the staged files first`});continue}i+=e,s+=e,a.push(t)}return{accepted:a,rejected:o,addedBytes:s}}var Vk=3e3;function Hk(e,t,n){return e?.providerId!==`oonacode`||(n?.priceUsdMonthly??0)>0?null:t?.free===!0?`free`:`pool`}function Uk(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 Wk(e,t,n=Vk){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 Gk(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 Kk(e){return e>=1e5||e>=1e4?`${Math.round(e/1e3)}k`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(Math.round(e))}function qk(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 ${Kk(i)} tokens`;return`Idle ${Gk(o)}. The prompt cache has likely expired, so your next message will re-cache ${s}.`}var Jk=new Set([`Alt`,`AltGraph`,`Control`,`Shift`,`Meta`,`OS`,`CapsLock`]),Yk=1500,Xk=24;function Zk(e){if(!e)return`none`;if(typeof document<`u`&&e===document.body)return`BODY`;let t=e.tagName??`?`,n=e.getAttribute?.(`data-testid`)??e.getAttribute?.(`aria-label`)??e.getAttribute?.(`role`),r=typeof e.className==`string`?e.className.split(/\s+/).filter(Boolean).slice(0,3):[];return`${t}${n?`[${n.slice(0,60)}]`:``}${r.length>0?`.${r.join(`.`)}`:``}`}function Qk(e,t){let n=t.now??(()=>Date.now()),r=-1/0,i=-1/0,a=[],o=e=>{Jk.has(e.key)||(r=n())},s=()=>{i=n()},c=()=>{let e=n();return a.filter(t=>e-t.t<=Yk).map(e=>e.what)},l=a=>{let o=n();if(o-r>2e3||o-i<=1e3)return;let s=a.relatedTarget instanceof Element?a.relatedTarget:null,l=c();setTimeout(()=>{typeof document<`u`&&!document.hasFocus()||typeof document<`u`&&document.activeElement===e||t.report({activeAfter:Zk(typeof document<`u`?document.activeElement:null),relatedTarget:Zk(s),boxConnected:e.isConnected,boxDisabled:e.disabled,recentlyAdded:l,sinceKeyMs:Math.round(o-r),unmounted:!1})},0)},u=null,d=t.root??(typeof document<`u`?document.body:null);return d&&typeof MutationObserver<`u`&&(u=new MutationObserver(e=>{let t=n();for(let n of e)for(let e of Array.from(n.addedNodes))e.nodeType===1&&(a.push({t,what:Zk(e)}),a.length>Xk&&a.shift())}),u.observe(d,{childList:!0,subtree:!0})),e.addEventListener(`keydown`,o),e.addEventListener(`blur`,l),typeof document<`u`&&document.addEventListener(`pointerdown`,s,!0),()=>{let a=n();typeof document<`u`&&document.activeElement===e&&a-r<=2e3&&a-i>1e3&&t.report({activeAfter:`unmounting`,relatedTarget:`none`,boxConnected:e.isConnected,boxDisabled:e.disabled,recentlyAdded:c(),sinceKeyMs:Math.round(a-r),unmounted:!0}),u?.disconnect(),e.removeEventListener(`keydown`,o),e.removeEventListener(`blur`,l),typeof document<`u`&&document.removeEventListener(`pointerdown`,s,!0)}}var $k=new Map;function eA(e){e===void 0?$k.clear():$k.delete(e)}function tA(e){let{text:t,chatId:n,disabled:r=!1,load:i,onPick:a}=e,o=td(t),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(null),[,d]=(0,v.useState)(0),f=(0,v.useRef)(null);(0,v.useEffect)(()=>{o===null&&c(!1)},[o]),(0,v.useEffect)(()=>{u(null)},[o,n]);let p=o!==null&&!s&&!r&&n!==null,m=n!==null&&!r&&(p||/^\/\S+\s/.test(t)),h=n===null?void 0:$k.get(n),g=h!==void 0&&Date.now()-h.at<6e4;(0,v.useEffect)(()=>{if(!m||n===null||g||f.current===n)return;f.current=n;let e=!0;return i(n).then(e=>{$k.set(n,{at:Date.now(),commands:e===null||e===`unsupported`?null:[...od(e.commands)],unsupported:e===`unsupported`})}).catch(()=>{$k.set(n,{at:Date.now(),commands:null,unsupported:!1})}).finally(()=>{f.current===n&&(f.current=null),e&&d(e=>e+1)}),()=>{e=!1}},[m,n,g,i]);let _=h?.commands??null,{items:y,sections:b,best:x}=(0,v.useMemo)(()=>{if(!_||o===null)return{items:[],sections:[],best:0};let e=sd(_,o),t=pd(e),n=[],r=0;for(let e of ud)t[e].length!==0&&(n.push({id:e,title:dd[e],start:r,items:t[e]}),r+=t[e].length);let i=n.flatMap(e=>e.items),a=e[0];return{items:i,sections:n,best:o.length>0&&a?Math.max(i.indexOf(a),0):0}},[_,o]),S=(0,v.useMemo)(()=>_?cd(t,_):null,[_,t]),C=h===void 0?`loading`:h.unsupported?`unsupported`:h.commands===null?`error`:`ready`,w=p&&C!==`unsupported`,T=y.length===0?0:Math.min(l??x,y.length-1),E=(0,v.useCallback)(e=>`/${e.name} `,[]),D=(0,v.useCallback)(()=>c(!0),[]);return{open:w,status:C,query:o??``,items:y,sections:b,active:T,setActive:u,inArguments:S,onKeyDown:e=>{if(!w||e.nativeEvent.isComposing)return!1;if(e.key===`Escape`)return e.preventDefault(),c(!0),!0;if(y.length===0)return!1;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;return u((T+t+y.length)%y.length),!0}let t=y[T];if(e.key===`Enter`&&!e.shiftKey||e.key===`Tab`&&!e.shiftKey){let n=o!==null&&(t.name.toLowerCase()===o.toLowerCase()||(t.aliases??[]).some(e=>e.toLowerCase()===o.toLowerCase()));return e.key===`Enter`&&n?!1:t.availability===`ok`?(e.preventDefault(),a(E(t)),!0):(e.preventDefault(),!0)}return!1},textFor:E,dismiss:D}}var nA=`slash-command-menu`,rA=e=>`slash-command-option-${e}`,iA=`The model may also use it on its own in this chat (switched on in the Skills menu)`,aA=`Picking or typing a skill runs it once, in this message, whatever the Skills menu says. The model is shown a skill on its own only when it is switched on in the Skills menu under the message box — then it costs its tokens on every message.`;function oA({menu:e,onPick:t,modelSkills:n=null}){let r=(0,v.useRef)(null);return(0,v.useEffect)(()=>{(r.current?.querySelector(`#${rA(e.active)}`))?.scrollIntoView?.({block:`nearest`})},[e.active,e.items]),e.open?(0,U.jsxs)(`div`,{className:`absolute bottom-full left-0 right-0 z-20 mb-1 overflow-hidden rounded-lg border border-border bg-surface shadow-lg`,"data-testid":`slash-menu`,children:[e.status===`loading`?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-xs text-fg-muted`,role:`status`,children:[(0,U.jsx)(K.Spinner,{className:`h-3.5 w-3.5 animate-spin`}),` Reading this chat’s commands…`]}):e.status===`error`?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,role:`status`,children:`The host could not list this chat’s commands right now — type the command, it still runs.`}):e.items.length===0?(0,U.jsxs)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,role:`status`,"data-testid":`slash-empty`,children:[`No command or skill matches “/`,e.query,`” — Enter sends it to the model as a message.`]}):(0,U.jsx)(`ul`,{ref:r,id:nA,role:`listbox`,"aria-label":`Skills and commands`,className:`max-h-72 overflow-y-auto pb-1`,children:e.sections.map(r=>(0,U.jsx)(sA,{section:r,menu:e,onPick:t,modelSkills:n},r.id))}),(0,U.jsx)(`div`,{className:`hidden border-t border-border px-3 py-0.5 text-right text-[10px] text-fg-faint sm:block`,children:`↑↓ to move · Enter or Tab to pick · Esc to close`})]}):null}function sA({section:e,menu:t,onPick:n,modelSkills:r}){let i=`slash-section-${e.id}`,a=e=>e.modelSkill===void 0?null:(r??[]).includes(e.modelSkill),o=e.items.filter(e=>a(e)!==null),s=o.some(e=>a(e)===!0);return(0,U.jsxs)(`li`,{role:`presentation`,"data-testid":`slash-section`,"data-section":e.id,children:[(0,U.jsxs)(`div`,{id:i,className:`sticky top-0 z-10 flex items-baseline gap-2 border-b border-border bg-surface px-3 pb-0.5 pt-1.5 text-[11px]`,children:[(0,U.jsx)(`span`,{className:`font-semibold uppercase tracking-wide text-fg-muted`,"data-testid":`slash-section-title`,children:e.title}),e.id===`skills`?(0,U.jsx)(`span`,{className:`ml-auto flex min-w-0 items-center gap-1 truncate text-fg-faint`,title:aA,"data-testid":`slash-skills-note`,children:o.length===0?`Picking one runs it once`:s?(0,U.jsxs)(U.Fragment,{children:[`Picking one runs it once · `,(0,U.jsx)(K.Skill,{className:`h-3 w-3 shrink-0 text-accent`}),` `,`the model may also use it here`]}):`Picking one runs it once · the model is not shown these here`}):null]}),(0,U.jsx)(`ul`,{role:`group`,"aria-labelledby":i,children:e.items.map((r,i)=>{let o=e.start+i;return(0,U.jsx)(cA,{item:r,index:o,active:o===t.active,onHover:t.setActive,onPick:n,modelOn:a(r)},r.name)})})]})}var cA=(0,v.memo)(function({item:e,index:t,active:n,onHover:r,onPick:i,modelOn:a}){let o=e.availability!==`ok`,s=ld(e.source),c=hd(e.description);return(0,U.jsxs)(`li`,{id:rA(t),role:`option`,"aria-selected":n,"aria-disabled":o||void 0,"data-testid":`slash-item`,"data-name":e.name,"data-model-skill":a===null?void 0:a?`on`:`off`,title:e.description||void 0,className:H(`flex cursor-pointer flex-col gap-0.5 px-3 py-1.5 text-xs`,n?`bg-accent-soft`:`hover:bg-surface-2`,o&&`cursor-default opacity-60`),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>r(t),onClick:()=>{o||i(e)},children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,U.jsxs)(`span`,{className:`shrink-0 font-mono font-medium text-fg`,children:[`/`,e.name]}),e.argumentHint?(0,U.jsx)(`span`,{className:`min-w-0 truncate font-mono text-fg-faint`,children:e.argumentHint}):null,(0,U.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:[a===!0&&!o?(0,U.jsx)(`span`,{className:`text-accent`,title:iA,"aria-label":iA,"data-testid":`slash-model-state`,children:(0,U.jsx)(K.Skill,{className:`h-3 w-3`})}):null,s?(0,U.jsx)(`span`,{className:`rounded border border-border px-1 text-[10px] uppercase tracking-wide text-fg-muted`,children:s}):null]})]}),o?(0,U.jsxs)(`div`,{className:`text-fg-muted`,"data-testid":`slash-reason`,children:[`Not available here — `,e.reason]}):c?(0,U.jsx)(`div`,{className:`truncate text-fg-muted`,"data-testid":`slash-summary`,children:c}):null]})});function lA({item:e}){return e&&e.availability!==`ok`?(0,U.jsxs)(`div`,{className:`px-1 pt-0.5 text-[11px] text-warn`,"data-testid":`slash-hint`,children:[(0,U.jsxs)(`span`,{className:`font-mono`,children:[`/`,e.name]}),` is not available here — `,e.reason]}):!e||!e.argumentHint&&!e.note?null:(0,U.jsxs)(`div`,{className:`px-1 pt-0.5 text-[11px] text-fg-faint`,"data-testid":`slash-hint`,children:[(0,U.jsxs)(`span`,{className:`font-mono`,children:[`/`,e.name,` `,e.argumentHint]}),e.note?(0,U.jsxs)(`span`,{children:[` — `,e.note]}):null]})}var uA=`w-auto rounded-md border border-border bg-surface-2 px-1.5 py-0.5 text-xs hover:border-fg-faint`,dA=[{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`}],fA=`Ask anything — build, fix, explain…`,pA=[{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`}],mA=`build`;function hA(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 gA(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 _A(e){return e.type.startsWith(`image/`)?`image`:e.type===`application/pdf`?`document`:`text`}function vA(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 yA(){let{state:e,actions:t,dispatch:n}=W(),r=zh(),i=Bh(),a=Rh(),o=e.currentSessionId,s=o?e.unsent[o]:void 0,[c,l]=(0,v.useState)(()=>s?.text??``),[u,d]=(0,v.useState)(()=>[...s?.attachments??[]]),[f,p]=(0,v.useState)(()=>[...s?.replies??[]]),[m,h]=(0,v.useState)(``),[g,_]=(0,v.useState)(mA),[y,b]=(0,v.useState)(!1),x=(0,v.useRef)(null),S=(0,v.useRef)(null),C=(0,v.useRef)(0),w=(0,v.useRef)(!0),T=(0,v.useRef)({text:c,attachments:u,replies:f});T.current={text:c,attachments:u,replies:f},(0,v.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]);let E=(0,v.useRef)(a?.status??null);E.current=a?.status??null,(0,v.useEffect)(()=>{let e=x.current;if(e)return Qk(e,{report:e=>t.reportDiagnostic(`message box lost the focus while typing`,{...e,chatStatus:E.current})})},[t]),(0,v.useEffect)(()=>{if(o)return()=>t.rememberUnsent(o,T.current)},[o,t]),(0,v.useEffect)(()=>{s&&(l(e=>e.length===0?s.text:e),d(e=>e.length===0?[...s.attachments]:e),p(e=>e.length===0?[...s.replies??[]]:e))},[s]);let D=e.composerQuote,O=(0,v.useRef)(D?.seq??0);(0,v.useEffect)(()=>{!D||D.seq<=O.current||(O.current=D.seq,D.sessionId===o&&(p(e=>e.some(e=>e.quote===D.text)?e:[...e,{id:`reply-${D.seq}`,quote:D.text,preview:D.preview,itemId:D.itemId}]),x.current?.focus()))},[D,o]);let k=r?.effort??i?.effort??``;(0,v.useEffect)(()=>{h(k)},[o,k]);let A=a?.status===`running`||a?.status===`waiting_permission`,j=e.connection.status===`open`,M=mg(),N=hg(),P=!o||M||N!==null,F=YO(),I=ge(F.option),L=(0,v.useMemo)(()=>{let e=he(F.option);return e.length===0?[]:k&&!e.includes(k)?[...e,k]:e},[F.option,k]),ee=L.length>0,te=(0,v.useMemo)(()=>e.providers.find(e=>e.definition.id===F.providerId)?.definition,[e.providers,F.providerId]);(0,v.useEffect)(()=>{let e=x.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,240)}px`)},[c]),(0,v.useEffect)(()=>{x.current?.focus()},[o]);let ne=`default`,re=i?.permissionMode??r?.permissionMode??ne,ie=re===ne?mA:pA.find(e=>e.mode===re)?.id??`build`;(0,v.useEffect)(()=>{_(I?ie:mA)},[I,ie,o]);let ae=(0,v.useMemo)(()=>u.reduce((e,t)=>e+t.data.length,0),[u]),oe=(0,v.useRef)(ae);oe.current=ae;let se=(0,v.useCallback)(async e=>{let n=Array.from(e);if(n.length===0)return;let r=Bk(n,{usedBytes:oe.current,isText:e=>_A(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=_A(e);if(n!==`text`&&te&&F.modelId){let r=Ps(te,F.modelId,[{type:n}]);if(r){t.toast(`error`,`${e.name||`File`} was not attached: ${r}`);continue}}try{let t=n===`text`?(await gA(e)).slice(0,Ik):await hA(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&&d(e=>[...e,...i])},[t,te,F.modelId]),ce=(0,v.useMemo)(()=>pA.find(e=>e.id===g)?.mode??null,[g]),le=(0,v.useCallback)(e=>{l(e);let t=x.current;t&&(t.focus(),requestAnimationFrame(()=>t.setSelectionRange(e.length,e.length)))},[]),ue=tA({text:c,chatId:o,disabled:P,load:t.listCommands,onPick:le}),de=(0,v.useCallback)(()=>{let e=c.trim();if(!o||N!==null||!e&&u.length===0)return;let n=Em(f.map(e=>e.quote),e||`Please look at the attached file(s).`),r=rd(n,`app`);if(r){t.toast(`error`,id(r));return}let i=u,a=f,s=vA(i),h={};m&&(h.effort=m),ce&&(h.permissionMode=ce);let g=o;l(``),d([]),p([]),x.current?.focus(),t.sendPrompt(n,s,Object.keys(h).length>0?h:void 0).then(e=>{if(w.current){let e=document.activeElement;(!e||e===document.body)&&x.current?.focus()}if(!e){if(w.current){l(e=>e.length===0?c:e),d(e=>e.length===0?i:e),p(e=>e.length===0?a:e);return}t.rememberUnsent(g,{text:c,attachments:i,replies:a},!0)}})},[c,u,f,o,N,t,m,ce]),fe=e=>{ue.onKeyDown(e)||(e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing?(e.preventDefault(),de()):e.key===`Escape`&&A&&(e.preventDefault(),t.interrupt()))},pe=e=>{let t=Array.from(e.clipboardData?.files??[]);t.length>0&&(e.preventDefault(),se(t))},me=e=>{e.preventDefault(),C.current=0,b(!1),e.dataTransfer?.files?.length&&se(e.dataTransfer.files)},_e=e=>{e.dataTransfer?.types?.includes(`Files`)&&(C.current+=1,b(!0))},ve=()=>{C.current=Math.max(0,C.current-1),C.current===0&&b(!1)},ye=e=>{e.target.files&&se(e.target.files),e.target.value=``},{pendingQuestions:be,pendingPermissions:xe}=(0,v.useMemo)(()=>{let e=[],t=[],n=[];for(let r of a?.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}},[a?.items]),Se=Hk(r,F.option,e.plan),Ce=Wk(a?.status===`running`,a?.items.length??0)&&Se?Uk(Se):null,[we,Te]=(0,v.useState)(()=>Date.now());(0,v.useEffect)(()=>{let e=setInterval(()=>Te(Date.now()),6e4);return()=>clearInterval(e)},[]);let Ee=(0,v.useMemo)(()=>{if(!a||!r)return null;let t=a.items,n=null;for(let e=t.length-1;e>=0;e--)if(t[e].kind===`result`){n=t[e];break}if(!n||n.kind!==`result`){if(t.length===0)return null;let n=e.providers.find(e=>e.definition.id===F.providerId)?.definition.capabilities.promptCacheTtlSec??null,i=Date.parse(r.updatedAt);return qk({lastTurnEndedAt:Number.isFinite(i)?i:null,now:we,ttlSec:n,contextTokens:a.contextTokens,running:A})}let i=n.timestamp?Date.parse(n.timestamp):Date.parse(r.updatedAt),o=e.providers.find(e=>e.definition.id===F.providerId)?.definition.capabilities.promptCacheTtlSec??null;return qk({lastTurnEndedAt:Number.isFinite(i)?i:null,now:we,ttlSec:o,contextTokens:a.contextTokens,running:A})},[a,r,e.providers,F.providerId,we,A]);return(0,U.jsxs)(`div`,{className:`relative border-t border-border bg-surface px-3 py-2 sm:px-6`,onDrop:me,onDragOver:e=>e.preventDefault(),onDragEnter:_e,onDragLeave:ve,"data-testid":`composer`,children:[y?(0,U.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,U.jsx)(K.Upload,{className:`mr-2 w-4 h-4`}),` Drop files to attach`]}):null,(0,U.jsxs)(`div`,{className:`w-full`,children:[o&&e.toolInstalls[o]?(0,U.jsx)(ak,{frame:e.toolInstalls[o],onDismiss:()=>n({type:`tool_install_dismiss`,sessionId:o})}):null,xe.length>0?(0,U.jsx)(`div`,{className:`mb-2 max-h-[45vh] space-y-2 overflow-y-auto`,"data-testid":`composer-pending`,children:xe.map(e=>(0,U.jsx)(Fk,{item:e,onDecide:n=>t.respondPermission(e.request.requestId,n,o??void 0)},e.id))}):null,be.map((e,n)=>(0,U.jsx)(Fk,{item:e,stackIndex:n,onDecide:n=>t.respondPermission(e.request.requestId,n,o??void 0)},e.id)),Ee&&!Ce?(0,U.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,U.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-fg-faint`}),Ee]}):null,Ce?(0,U.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":Se??void 0,children:[(0,U.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 shrink-0 animate-pulse rounded-full bg-warn`}),Ce]}):null,!j&&o?(0,U.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,f.length>0?(0,U.jsx)(`div`,{className:`mb-2 flex flex-col gap-1`,"data-testid":`reply-chips`,children:f.map(e=>(0,U.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border-l-2 border-accent bg-accent-soft/60 py-1 pl-2 pr-1 text-xs`,"data-testid":`reply-chip`,children:[(0,U.jsx)(K.Reply,{className:`h-3.5 w-3.5 shrink-0 text-accent`}),(0,U.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 truncate text-left text-fg-muted hover:text-fg`,title:`Go to the message this replies to`,disabled:!e.itemId||!o,onClick:()=>{e.itemId&&o&&t.jumpToItem(o,e.itemId)},"data-testid":`reply-chip-jump`,children:[(0,U.jsx)(`span`,{className:`text-fg`,children:`Reply to `}),e.preview]}),(0,U.jsx)(`button`,{type:`button`,"aria-label":`Remove this reply`,onClick:()=>p(t=>t.filter(t=>t.id!==e.id)),className:`flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-fg-muted hover:text-danger`,"data-testid":`reply-chip-remove`,children:(0,U.jsx)(K.X,{className:`h-3 w-3`})})]},e.id))}):null,u.length>0?(0,U.jsx)(`div`,{className:`mb-2 flex flex-wrap gap-2`,"data-testid":`attachments`,children:u.map(e=>(0,U.jsxs)(`div`,{className:`relative`,children:[e.kind===`image`?(0,U.jsx)(`img`,{src:`data:${e.mediaType};base64,${e.data}`,alt:e.name,className:`h-14 w-14 rounded border border-border object-cover`}):(0,U.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,U.jsx)(`span`,{className:`truncate font-medium`,children:Np(e.name,22)}),(0,U.jsxs)(`span`,{className:`text-fg-faint`,children:[e.kind===`document`?`PDF`:`text`,` · `,Math.ceil(e.size/1024),` KB`]})]}),(0,U.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,onClick:()=>d(t=>t.filter(t=>t.id!==e.id)),className:`absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full border border-border bg-surface text-fg-muted hover:text-danger`,children:(0,U.jsx)(K.X,{className:`w-3 h-3`})})]},e.id))}):null,N?(0,U.jsxs)(`p`,{className:`px-1 text-xs text-danger`,role:`status`,"data-testid":`model-withdrawn`,children:[N,` is no longer available. Pick another model below to continue this chat — its history stays.`]}):null,(0,U.jsxs)(`div`,{className:H(`relative flex flex-col gap-1 rounded-xl border bg-bg px-2 py-1.5`,P?`border-border opacity-60`:`border-border`),children:[(0,U.jsx)(oA,{menu:ue,onPick:e=>le(ue.textFor(e)),modelSkills:(i?i.modelSkills:r?.modelSkills)??null}),(0,U.jsx)(`textarea`,{ref:x,"aria-label":`Message`,rows:1,value:c,"aria-controls":ue.open?nA:void 0,"aria-activedescendant":ue.open&&ue.items.length>0?rA(ue.active):void 0,disabled:P,placeholder:M?`This session runs on a PC that is offline — read-only`:N?`${N} is no longer offered — pick another model to continue`:P?`Open a chat to start`:A?`Agent is working — a message sent now is handed to it and read at its next step (Esc to stop)`:fA,onChange:e=>l(e.target.value),onKeyDown:fe,onPaste:pe,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,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(`input`,{ref:S,type:`file`,multiple:!0,className:`hidden`,onChange:ye,"data-testid":`file-input`}),(0,U.jsx)(J,{label:`Attach files or images`,disabled:P,onClick:()=>S.current?.click(),children:(0,U.jsx)(K.Upload,{className:`w-4 h-4`})}),(0,U.jsx)(Og,{disabled:!o||M}),(0,U.jsx)(fO,{disabled:P}),(0,U.jsx)(CO,{disabled:P}),(0,U.jsx)(UO,{}),(0,U.jsx)(qO,{}),(0,U.jsx)(JO,{}),I?(0,U.jsx)(`select`,{"aria-label":`Agent`,"data-testid":`agent-picker`,className:H(eg,uA),value:g,disabled:P,onChange:e=>{_(e.target.value);let n=pA.find(t=>t.id===e.target.value)?.mode??ne;t.setSessionPermissionMode(n)},children:pA.map(e=>(0,U.jsx)(`option`,{value:e.id,children:e.label},e.id))}):null,ee?(0,U.jsxs)(`select`,{"aria-label":`Effort`,className:H(eg,uA,`hidden lg:block`),value:m,disabled:P,onChange:e=>{let n=e.target.value;h(n),t.setSessionEffort(n||null)},children:[(0,U.jsx)(`option`,{value:``,children:`effort: default`}),L.map(e=>(0,U.jsxs)(`option`,{value:e,children:[`effort: `,e]},e))]}):null,(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[A?(0,U.jsxs)(q,{variant:`danger`,size:`sm`,onClick:()=>void t.interrupt(),title:`Interrupt (Esc)`,"aria-label":`Interrupt`,"data-testid":`stop-button`,children:[(0,U.jsx)(K.Stop,{className:`w-3.5 h-3.5`}),` Stop`]}):null,(0,U.jsxs)(q,{variant:`primary`,size:`sm`,onMouseDown:e=>e.preventDefault(),onClick:de,disabled:P||!c.trim()&&u.length===0,"aria-label":A?`Queue message`:`Send`,title:A?`Queue this message — it runs when the current turn ends`:void 0,children:[(0,U.jsx)(K.Send,{className:`w-3.5 h-3.5`}),` `,A?`Queue`:`Send`]})]})]})]}),ue.open?null:(0,U.jsx)(lA,{item:ue.inArguments}),a&&a.totals.turns>0?(0,U.jsxs)(`div`,{className:`mt-1 text-right text-[11px] text-fg-faint`,children:[a.totals.turns,` turn`,a.totals.turns===1?``:`s`,` ·`,` `,r?.providerId===`oonacode`?gu(r.poolCredits??0):`$${a.totals.costUsd.toFixed(4)}`]}):null]})]})}function bA({name:e,state:t,behind:n,detail:r}){return(0,U.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,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-sm font-medium`,children:[(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:e}),n?(0,U.jsx)(`span`,{className:`shrink-0 text-[11px] font-normal text-warn`,children:`behind`}):null]}),(0,U.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,U.jsx)(`div`,{className:`text-[11px] text-fg-faint`,title:Ap(t.lastEntryAt),children:t.lastEntryAt?`last message ${Op(t.lastEntryAt)}`:`no timestamps`}),r?(0,U.jsx)(`div`,{className:`mt-1 break-all text-[11px] text-fg-faint`,children:r}):null]})}function xA({sessionId:e,sessionTitle:t,onClose:n}){let{actions:r}=W(),[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,U.jsx)(tg,{open:e!==null,title:`Sync with the original chat`,onClose:n,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{variant:`ghost`,onClick:n,children:`Close`}),(0,U.jsx)(q,{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,U.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{className:`w-4 h-4 spin`}),` Reading the original…`]}):i?(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,U.jsx)(bA,{name:`OonaCode · ${t}`,state:i.ours,behind:m}),(0,U.jsx)(bA,{name:i.agentName,state:i.theirs,behind:h,detail:i.file})]}),(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`sync-explanation`,children:m?(0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsx)(U.Fragment,{children:`Both copies are at the same point. There is nothing to bring in.`})}),u?(0,U.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,U.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 SA({status:e}){return(0,U.jsx)(`span`,{className:H(`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 CA(e){return e.some(e=>e.status===`running`)?`running`:e.some(e=>e.status===`waiting_permission`)?`waiting_permission`:`idle`}function wA({sessions:e,testId:t}){let n=CA(e);if(n===`idle`)return null;let r=e.filter(e=>e.status===`running`||e.status===`waiting_permission`).length;return(0,U.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,U.jsx)(SA,{status:n})})}var TA={idle:`idle`,running:`working`,waiting_permission:`waiting for permission`,error:`error`};function EA({label:e,value:t}){return t==null||t===``?null:(0,U.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,U.jsx)(`span`,{className:`shrink-0 text-fg-faint`,children:e}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-right text-fg`,title:t,children:t})]})}function DA({session:e,anchor:t}){let{state:n}=W(),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=dA.find(t=>t.value===e.permissionMode)?.label??e.permissionMode,s=Tp(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,Kh.createPortal)((0,U.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,U.jsx)(`div`,{className:`mb-2 truncate text-sm font-medium text-fg`,children:Ip(e)}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(EA,{label:`Model`,value:r&&e.model?`${e.model} · ${r.displayName}`:e.model}),(0,U.jsx)(EA,{label:`Effort`,value:e.effort??`default`}),(0,U.jsx)(EA,{label:`Mode`,value:o}),(0,U.jsx)(EA,{label:`Status`,value:TA[e.status]}),(0,U.jsx)(EA,{label:`Context window`,value:i?.contextWindow?`${Dp(i.contextWindow)} tokens`:null}),(0,U.jsx)(EA,{label:`Tokens`,value:`${Dp(e.inputTokens)} in · ${Dp(e.outputTokens)} out`}),(0,U.jsx)(EA,{label:`Cost`,value:s}),(0,U.jsx)(EA,{label:`Messages`,value:String(e.entryCount)}),(0,U.jsx)(EA,{label:`Folder`,value:e.projectDir??e.cwd}),(0,U.jsx)(EA,{label:`Project`,value:a?.name??null}),(0,U.jsx)(EA,{label:`Created`,value:Ap(e.createdAt)}),(0,U.jsx)(EA,{label:`Updated`,value:Ap(e.updatedAt)}),(0,U.jsx)(EA,{label:`Forked from`,value:e.forkedFrom}),(0,U.jsx)(EA,{label:`Subagents`,value:e.hasSubagents?`yes`:null}),(0,U.jsx)(EA,{label:`Mirrored`,value:e.mirrored?`yes`:null}),(0,U.jsx)(EA,{label:`Engine since`,value:Ap(e.engineSince)})]})]}),document.body)}function OA({link:e}){return e?.status===`ours-behind`?(0,U.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,U.jsx)(K.ArrowDown,{className:`w-2.5 h-2.5`}),`behind`]}):null}var kA=(0,v.memo)(function({session:e,active:t,link:n,onOpen:r,onMenu:i,menuOpen:a=!1,projectName:o=null,kindIcon:s=!1,testIdPrefix:c=`session`,clock:l}){let u=Ip(e),d=t=>{let n=t.currentTarget.getBoundingClientRect();i(e,{x:n.left,y:n.bottom+2},f.current)},f=(0,v.useRef)(null),p=(0,v.useRef)(null),[m,h]=(0,v.useState)(null),g=(0,v.useCallback)(()=>{p.current!==null&&(clearTimeout(p.current),p.current=null),h(null)},[]),_=(0,v.useRef)(a);return _.current=a,(0,v.useEffect)(()=>{a&&g()},[a,g]),(0,v.useEffect)(()=>{if(m===null)return;let e=e=>{sg(e.target,f.current)&&g()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[m,g]),(0,v.useEffect)(()=>()=>{p.current!==null&&clearTimeout(p.current)},[]),(0,U.jsxs)(`div`,{ref:f,className:H(`group relative flex items-center rounded-md`,t?`bg-accent-soft`:`hover:bg-surface-2`),onMouseEnter:()=>{p.current!==null&&clearTimeout(p.current),!_.current&&(p.current=setTimeout(()=>{p.current=null,f.current&&!_.current&&h(f.current.getBoundingClientRect())},450))},onMouseLeave:g,onClick:g,onContextMenu:t=>{t.preventDefault(),g(),i(e,{x:t.clientX,y:t.clientY},f.current)},children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),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":`${c}-${e.id}`,children:[s?(0,U.jsx)(K.Chats,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}):null,s&&e.status===`idle`?null:(0,U.jsx)(SA,{status:e.status}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`flex items-center gap-1`,children:(0,U.jsx)(`span`,{className:H(`min-w-0 flex-1 truncate text-sm`,t?`text-fg font-medium`:`text-fg`),children:u})}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center text-[11px] text-fg-faint`,children:[o?(0,U.jsxs)(`span`,{className:`mr-1 inline-flex min-w-0 max-w-[45%] shrink-0 items-center gap-0.5 text-project`,"data-testid":`session-project-${e.id}`,title:`Filed under ${o}`,children:[(0,U.jsx)(K.Project,{className:`w-2.5 h-2.5 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:o}),(0,U.jsx)(`span`,{className:`text-fg-faint`,children:`·`})]}):null,(0,U.jsxs)(`span`,{className:`truncate`,children:[Op(e.updatedAt,l),e.model?` · ${e.model}`:``,` · ${Mp(e.projectDir??e.cwd)}`]}),(0,U.jsx)(OA,{link:n})]})]})]}),(0,U.jsx)(J,{label:`Chat actions`,className:`pointer-events-none absolute right-1 bg-surface/90 p-1 opacity-0 group-focus-within:pointer-events-auto group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:opacity-100`,"data-testid":`${c}-menu-${e.id}`,onClick:e=>{e.stopPropagation(),d(e)},children:(0,U.jsx)(K.More,{className:`w-3.5 h-3.5`})}),m===null?null:(0,U.jsx)(DA,{session:e,anchor:m})]})});function AA({session:e,link:t,pinned:n,actions:r,onSync:i,onRename:a,onDelete:o}){let s=[];return t?.status===`ours-behind`&&s.push({key:`sync`,label:`Sync with ${t.agentName}…`,hint:`behind`,icon:(0,U.jsx)(K.Download,{className:`w-3.5 h-3.5`}),onSelect:i,testId:`session-menu-sync`}),s.push({key:`pin`,label:n?`Unpin`:`Pin to top`,icon:(0,U.jsx)(K.Pin,{className:`w-3.5 h-3.5`}),separated:s.length>0,onSelect:()=>r.setPinned(`chat`,e.id,!n),testId:`session-menu-pin`},{key:`project`,label:`Move to Project`,icon:(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5`}),onSelect:()=>r.openAssignProject(e.id),testId:`session-menu-project`},...e.projectId?[{key:`project-settings`,label:`Project settings…`,icon:(0,U.jsx)(K.Settings,{className:`w-3.5 h-3.5`}),onSelect:()=>r.openProjectSettings(e.projectId),testId:`session-menu-project-settings`}]:[],{key:`folder`,label:`Change folder…`,icon:(0,U.jsx)(K.Folder,{className:`w-3.5 h-3.5`}),onSelect:()=>{r.selectSession(e.id),r.openDialog(`project`)},testId:`session-menu-folder`},{key:`details`,label:`Details`,icon:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`}),onSelect:()=>{r.selectSession(e.id),r.savePrefs({sessionPanelOpen:!0})},testId:`session-menu-details`},{key:`files`,label:`Files`,icon:(0,U.jsx)(K.File,{className:`w-3.5 h-3.5`}),onSelect:()=>{r.selectSession(e.id),r.savePrefs({explorerOpen:!0})},testId:`session-menu-files`},{key:`rename`,label:`Rename…`,icon:(0,U.jsx)(K.Edit,{className:`w-3.5 h-3.5`}),onSelect:a,testId:`session-menu-rename`},{key:`fork`,label:`Fork`,icon:(0,U.jsx)(K.Fork,{className:`w-3.5 h-3.5`}),onSelect:()=>void r.forkSession(e.id),testId:`session-menu-fork`},{key:`delete`,label:`Delete`,icon:(0,U.jsx)(K.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:o,testId:`session-menu-delete`}),s}function jA(){let{state:e,actions:t}=W(),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(null),u=(0,v.useCallback)((e,t,n)=>r({session:e,at:t,el:n}),[]),d=(0,v.useCallback)(()=>r(null),[]),f=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(lg,{open:n!==null,at:n?.at??{x:0,y:0},anchorEl:n?.el??null,label:`Chat actions`,onClose:d,items:n?AA({session:n.session,link:e.sessionLinks[n.session.id]??null,pinned:Cc(e.prefs.pinned,`chat`,n.session.id),actions:t,onSync:()=>a(n.session),onRename:()=>s(n.session),onDelete:()=>l(n.session)}):[]}),(0,U.jsx)(xA,{sessionId:i?.id??null,sessionTitle:i?Ip(i):``,onClose:()=>a(null)}),(0,U.jsx)(ag,{open:c!==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:()=>{c&&t.deleteSession(c.id)},onClose:()=>l(null)}),(0,U.jsx)(og,{open:o!==null,title:`Rename chat`,label:`Session title`,initialValue:o?Ip(o):``,onSubmit:e=>{o&&e!==Ip(o)&&t.renameSession(o.id,e)},onClose:()=>s(null)})]});return{openMenu:u,menuFor:n?.session.id??null,element:f}}function MA({projectId:e,pinned:t,fold:n,actions:r}){let i=[];return e?i.push({key:`open`,label:`Open project`,icon:(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5`}),onSelect:()=>r.openPage({kind:`project`,projectId:e}),testId:`project-menu-open`},{key:`settings`,label:`Project settings…`,icon:(0,U.jsx)(K.Settings,{className:`w-3.5 h-3.5`}),onSelect:()=>r.openProjectSettings(e),testId:`project-menu-settings`},{key:`new-chat`,label:`New chat in this project`,icon:(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),onSelect:()=>r.newTab({projectId:e}),testId:`project-menu-new-chat`},{key:`pin`,label:t?`Unpin`:`Pin to top`,icon:(0,U.jsx)(K.Pin,{className:`w-3.5 h-3.5`}),onSelect:()=>r.setPinned(`project`,e,!t),testId:`project-menu-pin`}):i.push({key:`new-project`,label:`New project…`,icon:(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5`}),onSelect:()=>r.openNewProject(),testId:`project-menu-new-project`}),n&&i.push({key:`fold`,label:n.collapsed?`Expand`:`Collapse`,icon:(0,U.jsx)(K.Chevron,{open:n.collapsed,className:`w-3.5 h-3.5`}),separated:!0,onSelect:n.onToggle,testId:`project-menu-fold`}),i}var NA=[{value:`activity`,label:`Recent activity`},{value:`name`,label:`Name`},{value:`created`,label:`Date created`}];function PA(e){let t=e.goal?.trim()??``;return t===``?(e.instructions??``).split(/\r?\n/).find(e=>e.trim()!==``)?.trim()??``:t}function FA(e,t){let n=new Map;for(let e of t){if(!e.projectId)continue;let t=n.get(e.projectId);t?t.push(e):n.set(e.projectId,[e])}return e.map(e=>{let t=n.get(e.id)??[],r=t.reduce((e,t)=>Math.max(e,t.mtime),-1/0),i=Date.parse(e.updatedAt);return{project:e,description:PA(e),chatCount:e.sessionCount??t.length,working:t.filter(e=>e.status===`running`||e.status===`waiting_permission`).length,lastActivity:Number.isFinite(r)?r:Number.isFinite(i)?i:0}})}function IA(e,t){let n=t.trim().toLowerCase();return n===``?e.slice():e.filter(({project:e})=>[e.name,e.goal??``,e.instructions??``].some(e=>e.toLowerCase().includes(n)))}var LA=(e,t)=>e.project.name.localeCompare(t.project.name,void 0,{sensitivity:`base`});function RA(e,t){let n=e.slice();return t===`name`?n.sort(LA):t===`created`?n.sort((e,t)=>(Date.parse(t.project.createdAt)||0)-(Date.parse(e.project.createdAt)||0)||LA(e,t)):n.sort((e,t)=>t.lastActivity-e.lastActivity||LA(e,t))}function zA(){let{state:e,actions:t}=W(),n=e.scheduledTasksVersion,[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(0);return(0,v.useEffect)(()=>{let e=!0;return t.listScheduledTasks({}).then(t=>{e&&i(t)}),()=>{e=!1}},[t,n,a]),{tasks:r,reload:(0,v.useCallback)(()=>o(e=>e+1),[])}}function BA(){let[e,t]=(0,v.useState)(()=>Date.now());return(0,v.useEffect)(()=>{let e=setInterval(()=>t(Date.now()),6e4);return()=>clearInterval(e)},[]),e}function VA(e){return e===1?`1 chat`:`${e} chats`}function HA({card:e,pinned:t,actions:n,onDelete:r}){let i=e.chatCount;return[...MA({projectId:e.project.id,pinned:t,fold:null,actions:n}),{key:`delete`,label:`Delete project`,icon:(0,U.jsx)(K.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,disabled:i>0,...i>0?{hint:`${VA(i)} in it`}:{},onSelect:r,testId:`project-card-delete`}]}function UA(){let{state:e,actions:t}=W(),n=BA(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(`activity`),[l,u]=(0,v.useState)(null),d=(0,v.useCallback)(()=>u(null),[]),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(()=>p(null),[]),[h,g]=(0,v.useState)(null),_=(0,v.useRef)(null),y=(0,v.useMemo)(()=>FA(e.vaultProjects,e.sessions),[e.vaultProjects,e.sessions]),b=(0,v.useMemo)(()=>RA(IA(y,r),s),[y,r,s]),x=e=>t.openPage({kind:`project`,projectId:e}),S=(e,t,n)=>p({card:e,at:t,el:n});return(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-bg`,"data-testid":`projects-page`,children:[(0,U.jsxs)(`div`,{className:`mx-auto w-full max-w-5xl px-4 py-6 sm:px-8`,children:[(0,U.jsxs)(`div`,{className:`mb-5 flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`mr-auto text-2xl font-semibold text-fg`,children:`Projects`}),a||r!==``?(0,U.jsx)(`input`,{ref:_,autoFocus:!0,"aria-label":`Search projects`,className:H(Y,`w-56`),placeholder:`Search projects`,value:r,onChange:e=>i(e.target.value),onBlur:()=>{r===``&&o(!1)},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),i(``),o(!1))},"data-testid":`projects-search`}):null,(0,U.jsx)(J,{label:`Search projects — by name, goal and instructions`,onClick:()=>{o(!0),_.current?.focus()},"data-testid":`projects-search-toggle`,children:(0,U.jsx)(K.Search,{})}),(0,U.jsx)(J,{label:`Sort — ${NA.find(e=>e.value===s)?.label??``}`,"aria-haspopup":`menu`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();u({at:{x:t.left,y:t.bottom+2},el:e.currentTarget})},"data-testid":`projects-sort`,children:(0,U.jsx)(K.Sliders,{})}),(0,U.jsxs)(q,{variant:`inverse`,onClick:()=>t.openNewProject(),"data-testid":`projects-new`,children:[(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),`New project`]})]}),e.vaultProjects.length===0?(0,U.jsx)(ig,{icon:(0,U.jsx)(K.Project,{className:`h-8 w-8`}),title:`No projects yet`,hint:`A project groups chats, whatever folders they run in, and gives every chat in it the same standing instructions, goal and memory. Projects live in your vault, so they follow you to every PC.`,action:(0,U.jsxs)(q,{variant:`primary`,onClick:()=>t.openNewProject(),children:[(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),`New project`]})}):b.length===0?(0,U.jsxs)(`p`,{className:`py-10 text-center text-sm text-fg-muted`,"data-testid":`projects-no-match`,children:[`No project matches “`,r.trim(),`”.`]}):(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2 2xl:grid-cols-3`,"data-testid":`projects-grid`,children:b.map(t=>(0,U.jsx)(WA,{card:t,clock:n,pinned:Cc(e.prefs.pinned,`project`,t.project.id),onOpen:x,onMenu:S},t.project.id))})]}),(0,U.jsx)(lg,{open:l!==null,at:l?.at??{x:0,y:0},anchorEl:l?.el??null,label:`Sort projects`,testId:`projects-sort-menu`,onClose:d,items:NA.map(e=>({key:e.value,label:e.label,icon:e.value===s?(0,U.jsx)(K.Check,{className:`w-3.5 h-3.5 text-accent`}):(0,U.jsx)(`span`,{className:`w-3.5`}),onSelect:()=>c(e.value),testId:`projects-sort-${e.value}`}))}),(0,U.jsx)(lg,{open:f!==null,at:f?.at??{x:0,y:0},anchorEl:f?.el??null,label:`Project actions`,testId:`project-card-menu`,onClose:m,items:f?HA({card:f.card,pinned:Cc(e.prefs.pinned,`project`,f.card.project.id),actions:t,onDelete:()=>g(f.card.project)}):[]}),(0,U.jsx)(ag,{open:h!==null,title:h?`Delete ${h.name}?`:`Delete this project?`,message:`Its instructions, goal, memory and settings are removed from your vault, on every device. No chat is filed under it, so no chat changes.`,onConfirm:()=>{h&&t.deleteVaultProject(h.id)},onClose:()=>g(null)})]})}function WA({card:e,clock:t,pinned:n,onOpen:r,onMenu:i}){let{project:a}=e,o=(0,v.useRef)(null);return(0,U.jsxs)(`div`,{ref:o,className:`group relative rounded-xl border border-border bg-surface transition-colors hover:border-fg-faint hover:bg-surface-2/40`,"data-testid":`project-card-${a.id}`,onContextMenu:t=>{t.preventDefault(),o.current&&i(e,{x:t.clientX,y:t.clientY},o.current)},children:[(0,U.jsxs)(`button`,{type:`button`,className:`flex h-full min-h-[7.5rem] w-full flex-col items-start gap-1 p-4 text-left`,onClick:()=>r(a.id),"data-testid":`project-card-open-${a.id}`,children:[(0,U.jsxs)(`span`,{className:`flex w-full min-w-0 items-center gap-2 pr-7`,children:[(0,U.jsx)(K.Project,{className:`w-4 h-4 shrink-0 text-project`}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-[15px] font-medium text-fg`,children:a.name}),n?(0,U.jsx)(K.Pin,{className:`w-3 h-3 shrink-0 text-fg-faint`,title:`Pinned to the top of the session list`}):null]}),e.description?(0,U.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,"data-testid":`project-card-description`,children:e.description}):null,(0,U.jsxs)(`span`,{className:`mt-auto flex items-center gap-1.5 pt-2 text-xs text-fg-faint`,children:[e.working>0?(0,U.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full bg-accent animate-pulse`,title:`${e.working} working now`,"aria-hidden":!0}):null,(0,U.jsxs)(`span`,{"data-testid":`project-card-meta`,children:[VA(e.chatCount),e.lastActivity>0?` · ${kp(e.lastActivity,t)}`:``]})]})]}),(0,U.jsx)(J,{label:`Actions for ${a.name}`,className:`absolute right-2 top-2 p-1 opacity-60 group-hover:opacity-100 focus:opacity-100`,onClick:t=>{let n=t.currentTarget.getBoundingClientRect();o.current&&i(e,{x:n.left,y:n.bottom+2},o.current)},"data-testid":`project-card-menu-${a.id}`,children:(0,U.jsx)(K.More,{className:`w-4 h-4`})})]})}function GA({projectId:e}){let{state:t,actions:n}=W(),r=BA(),i=jA(),a=t.vaultProjects.find(t=>t.id===e)??null,o=(0,v.useMemo)(()=>t.sessions.filter(n=>n.projectId===e&&!t.remote.tabs[n.id]).sort((e,t)=>t.mtime-e.mtime),[t.sessions,t.remote.tabs,e]),s=(0,v.useCallback)(e=>n.selectSession(e),[n]),c=()=>n.openPage({kind:`projects`});if(!a)return(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-bg`,"data-testid":`project-page`,children:(0,U.jsx)(ig,{icon:(0,U.jsx)(K.Project,{className:`h-8 w-8`}),title:`This project is not here`,hint:`It was deleted, or your vault has not loaded it yet.`,action:(0,U.jsx)(q,{onClick:c,"data-testid":`project-page-back`,children:`All projects`})})});let l=Cc(t.prefs.pinned,`project`,a.id),u=a.instructions.trim(),d=a.repositories??[],f=a.sessionCount??o.length;return(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-bg`,"data-testid":`project-page`,children:[(0,U.jsxs)(`div`,{className:`mx-auto w-full max-w-4xl px-4 py-6 sm:px-8`,children:[(0,U.jsxs)(`button`,{type:`button`,className:`mb-3 inline-flex items-center gap-1 text-xs text-fg-muted hover:text-fg`,onClick:c,"data-testid":`project-page-back`,children:[(0,U.jsx)(K.Chevron,{className:`w-3 h-3 rotate-180`}),`All projects`]}),(0,U.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(K.Project,{className:`w-5 h-5 shrink-0 text-project`}),(0,U.jsx)(`h1`,{className:`mr-auto min-w-0 truncate text-2xl font-semibold text-fg`,"data-testid":`project-page-name`,children:a.name}),(0,U.jsx)(J,{label:l?`Unpin from the session list`:`Pin to the top of the session list`,"aria-pressed":l,className:l?`text-accent`:void 0,onClick:()=>n.setPinned(`project`,a.id,!l),"data-testid":`project-page-pin`,children:(0,U.jsx)(K.Pin,{})}),(0,U.jsxs)(q,{variant:`ghost`,onClick:()=>n.openProjectSettings(a.id),"data-testid":`project-page-settings`,children:[(0,U.jsx)(K.Settings,{className:`w-3.5 h-3.5`}),`Project settings`]}),(0,U.jsxs)(q,{variant:`inverse`,onClick:()=>n.newTab({projectId:a.id}),"data-testid":`project-page-new-chat`,children:[(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),`New chat in this project`]})]}),a.goal?.trim()?(0,U.jsx)(`p`,{className:`mb-4 text-sm text-fg-muted`,"data-testid":`project-page-goal`,children:a.goal.trim()}):null,(0,U.jsxs)(`section`,{className:`mb-5 rounded-xl border border-border bg-surface p-4`,children:[(0,U.jsx)(`h2`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Instructions`}),u?(0,U.jsx)(`div`,{className:`max-h-64 overflow-y-auto whitespace-pre-wrap break-words text-sm text-fg`,"data-testid":`project-page-instructions`,children:u}):(0,U.jsx)(`p`,{className:`text-sm text-fg-faint`,children:`None — chats here start with nothing extra.`}),d.length>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`h2`,{className:`mb-1 mt-4 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Repositories`}),(0,U.jsx)(`ul`,{className:`space-y-0.5 text-sm`,"data-testid":`project-page-repositories`,children:d.map(e=>(0,U.jsx)(`li`,{className:`truncate font-mono text-xs text-fg-muted`,children:e},e))})]}):null]}),(0,U.jsxs)(`section`,{children:[(0,U.jsxs)(`h2`,{className:`mb-1 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:[`Chats`,(0,U.jsx)(`span`,{className:`font-normal normal-case`,"data-testid":`project-page-count`,children:f})]}),o.length===0?(0,U.jsx)(`p`,{className:`py-3 text-sm text-fg-faint`,"data-testid":`project-page-no-chats`,children:f>0?`${VA(f)} filed here are older than the list this window holds.`:`No chats in this project yet — start one with “New chat in this project”.`}):(0,U.jsx)(`div`,{className:`rounded-xl border border-border bg-surface p-1`,"data-testid":`project-page-chats`,children:o.map(e=>(0,U.jsx)(kA,{session:e,active:!1,link:t.sessionLinks[e.id]??null,menuOpen:i.menuFor===e.id,onOpen:s,onMenu:i.openMenu,clock:r,testIdPrefix:`project-chat`},e.id))}),f>0&&o.length>0&&f>o.length?(0,U.jsxs)(`p`,{className:`mt-1 text-xs text-fg-faint`,children:[f-o.length,` older `,f-o.length===1?`chat is`:`chats are`,` `,`not in the list this window holds — search for`,` `,f-o.length===1?`it`:`them`,` in the session list.`]}):null]})]}),i.element]})}var KA=`waiting: the chat is busy`;function qA(e){return e.enabled&&typeof e.lastResult==`string`&&e.lastResult.startsWith(`waiting:`)&&e.lastResult!==KA}function JA(e,t){if(!e.enabled||!e.nextRunAt)return!1;let n=Date.parse(e.nextRunAt);return Number.isFinite(n)&&n-t<=36e5}function YA(e,t){let n=e=>e===1?`1 scheduled task`:`${e} scheduled tasks`,r=e.filter(qA).length;if(r>0)return{tone:`stuck`,count:r,text:`${n(r)} could not run — open Scheduled to see why`};let i=e.filter(e=>JA(e,t)).length;return i>0?{tone:`soon`,count:i,text:`${n(i)} due within the hour`}:null}function XA(e){return e.split(/\r?\n/).find(e=>e.trim()!==``)?.trim()??``}function ZA(){let{state:e,actions:t}=W(),{tasks:n,reload:r}=zA(),i=BA(),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(null),l=(0,v.useMemo)(()=>{let t=new Map(e.sessions.map(e=>[e.id,Ip(e)]));for(let[n,r]of Object.entries(e.pinnedRows))t.has(n)||t.set(n,Ip(r));return e=>t.get(e)??null},[e.sessions,e.pinnedRows]),u=async(e,t)=>{c(e.id);try{await t()&&r()}finally{c(null)}},d=n?.filter(e=>e.enabled&&e.nextRunAt!==null).length??0;return(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-bg`,"data-testid":`scheduled-page`,children:(0,U.jsxs)(`div`,{className:`mx-auto w-full max-w-4xl px-4 py-6 sm:px-8`,children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-center gap-2`,children:[(0,U.jsx)(K.Clock,{className:`w-5 h-5 shrink-0 text-fg-muted`}),(0,U.jsx)(`h1`,{className:`text-2xl font-semibold text-fg`,children:`Scheduled`})]}),(0,U.jsxs)(`p`,{className:`mb-5 text-sm text-fg-muted`,children:[`What OonaCode's scheduler sends into your chats on this PC — once, or on a repeat — even when the chat has gone quiet.`,n&&n.length>0?` ${d} active${n.length>d?`, ${n.length-d} paused or done`:``}.`:``]}),n===null?null:n.length===0?(0,U.jsx)(`div`,{"data-testid":`scheduled-empty`,children:(0,U.jsx)(ig,{icon:(0,U.jsx)(K.Clock,{className:`h-8 w-8`}),title:`Nothing scheduled`,hint:`Ask a chat to do something later or on a repeat — “remind me at 9 to check the build”, “every morning, summarise the new issues” — and its model schedules it with OonaCode’s scheduler. Every task, from every chat, shows here.`})}):(0,U.jsx)(`ul`,{className:`space-y-2`,"data-testid":`scheduled-list`,children:n.map(e=>{let n=qA(e),r=JA(e,i),c=l(e.sessionId),d=XA(e.prompt);return(0,U.jsxs)(`li`,{className:H(`rounded-xl border bg-surface p-3 text-sm`,n?`border-warn/60`:`border-border`),"data-testid":`scheduled-row-${e.id}`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-fg`,title:e.title,children:e.title}),r&&!n?(0,U.jsx)(`span`,{className:`rounded-full bg-accent-soft px-1.5 text-[11px] text-accent`,children:`due soon`}):null,e.createdBy===`model`?(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:`set by the agent`}):null,(0,U.jsx)(q,{size:`sm`,variant:`ghost`,disabled:s===e.id||!e.enabled&&e.nextRunAt===null&&`at`in e.when,onClick:()=>void u(e,()=>t.updateScheduledTask(e.id,{enabled:!e.enabled})),"data-testid":`scheduled-row-toggle`,children:e.enabled?`Pause`:`Resume`}),(0,U.jsx)(q,{size:`sm`,variant:a===e.id?`danger`:`ghost`,disabled:s===e.id,onClick:()=>{if(a!==e.id){o(e.id);return}o(null),u(e,()=>t.deleteScheduledTask(e.id))},"data-testid":`scheduled-row-delete`,children:a===e.id?`Delete?`:`Delete`})]}),d?(0,U.jsxs)(`div`,{className:`mt-1 truncate text-fg-muted`,title:e.prompt,"data-testid":`scheduled-row-sends`,children:[`Sends: “`,d,`”`]}):null,(0,U.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 text-xs text-fg-muted`,children:[(0,U.jsx)(`span`,{"data-testid":`scheduled-row-when`,children:ou(e.when)}),(0,U.jsx)(`span`,{"data-testid":`scheduled-row-next`,children:su(e.nextRunAt,e.enabled)}),(0,U.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[`in`,(0,U.jsx)(`button`,{type:`button`,className:`min-w-0 truncate text-accent hover:underline`,title:`Open this chat`,onClick:()=>t.selectSession(e.sessionId),"data-testid":`scheduled-row-chat`,children:c??`a chat`})]})]}),e.lastRunAt||e.lastResult?(0,U.jsxs)(`div`,{className:H(`mt-0.5 text-xs`,n?`text-warn`:`text-fg-faint`),"data-testid":`scheduled-row-last`,children:[e.lastRunAt?(0,U.jsxs)(`span`,{title:Ap(e.lastRunAt),children:[`last ran `,Op(e.lastRunAt,i)]}):(0,U.jsx)(`span`,{children:`not run yet`}),e.lastResult?` · ${e.lastResult}`:``]}):null]},e.id)})})]})})}function QA({checked:e,onChange:t}){let{state:n}=W();return Ad(n.account)===`unavailable`?null:(0,U.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:e,onChange:e=>t(e.target.checked),"data-testid":`keep-unlocked`}),(0,U.jsxs)(`span`,{children:[(0,U.jsx)(`span`,{className:`block`,children:`Keep me unlocked on this PC`}),(0,U.jsx)(`span`,{className:`block text-xs text-fg-faint`,children:Us})]})]})}function $A({view:e}){let{actions:t}=W(),[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,U.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,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,U.jsx)(`p`,{className:`font-medium text-fg`,children:Pd(e)}),e.canFinishHere?(0,U.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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:Fd(e)}),(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`rekey-recovery-exit`,children:Id})]})]})]}),e.canFinishHere?(0,U.jsxs)(`form`,{className:`flex items-end gap-2`,onSubmit:e=>{e.preventDefault(),f()},children:[(0,U.jsx)($h,{label:`New password`,className:`flex-1`,children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:n,onChange:e=>r(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-password`})}),(0,U.jsx)(q,{type:`submit`,variant:`primary`,busy:i,disabled:!n,"data-testid":`rekey-finish`,children:`Move my vault to the new password`})]}):null,o?(0,U.jsxs)(`div`,{className:`space-y-2 rounded-md border border-danger/40 bg-surface p-3`,children:[(0,U.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,U.jsx)(`span`,{className:`font-mono`,children:Hs}),` and your current password to confirm.`]}),(0,U.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,U.jsx)($h,{label:`Your new password`,className:`flex-1`,children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:u,onChange:e=>d(e.target.value),autoComplete:`current-password`,"data-testid":`rekey-discard-password`})}),(0,U.jsx)($h,{label:`Confirmation`,className:`flex-1`,children:(0,U.jsx)(`input`,{className:Y,value:c,onChange:e=>l(e.target.value),autoComplete:`off`,spellCheck:!1,"data-testid":`rekey-discard-ack`})}),(0,U.jsx)(q,{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,U.jsx)(q,{variant:`ghost`,onClick:()=>s(!1),children:`Cancel`})]})]}):(0,U.jsx)(q,{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 ej(){let{state:e,actions:t}=W(),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,U.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,U.jsx)(`p`,{className:`font-medium text-fg`,children:`Your new vault Recovery Key`}),(0,U.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,U.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,U.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,U.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,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,U.jsxs)(q,{size:`sm`,onClick:()=>void a(),children:[(0,U.jsx)(K.Copy,{className:`w-3.5 h-3.5`}),` `,r?`Copied`:`Copy`]}),(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:()=>t.dismissRecoveryKey(),"data-testid":`recovery-key-done`,children:`I have saved it`})]})]})}function tj(){let{state:e,actions:t}=W(),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(``),[o,s]=(0,v.useState)(!1),c=Ad(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,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,"data-testid":`device-unlock`,children:[(0,U.jsx)(X,{tone:`ok`,children:`stays unlocked on this PC`}),(0,U.jsx)(q,{size:`sm`,busy:o,onClick:()=>void l(!1),children:`Turn off`})]}):n?(0,U.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,U.jsx)(`p`,{className:`text-xs text-fg-faint`,children:Us}),(0,U.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,U.jsx)($h,{label:`Password`,className:`flex-1`,children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:i,onChange:e=>a(e.target.value),autoComplete:`current-password`})}),(0,U.jsx)(q,{type:`submit`,variant:`primary`,busy:o,disabled:!i,children:`Keep me unlocked`}),(0,U.jsx)(q,{variant:`ghost`,onClick:()=>r(!1),children:`Cancel`})]})]}):(0,U.jsx)(q,{size:`sm`,onClick:()=>r(!0),"data-testid":`device-unlock`,children:`Keep me unlocked on this PC…`})}function nj({pending:e}){let{actions:t}=W(),[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=Qd(e,n),s=async()=>{a(!0);try{await t.resendVerification()}finally{a(!1)}};return(0,U.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,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Alert,{className:`mt-0.5 w-4 h-4 shrink-0 text-warn`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`font-medium text-fg`,children:ef(e)}),(0,U.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,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(q,{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,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>t.dismissEmailVerification(),children:`Dismiss`})]})]})}function rj(){let{state:e,actions:t}=W(),[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,U.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),g()},children:[(0,U.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,U.jsx)(nj,{pending:e.emailVerification}):null,(0,U.jsx)($h,{label:`Gateway URL`,children:(0,U.jsx)(`input`,{className:Y,value:n,onChange:e=>r(e.target.value),placeholder:x,autoComplete:`url`,spellCheck:!1})}),(0,U.jsx)($h,{label:`Email`,children:(0,U.jsx)(`input`,{className:Y,type:`email`,value:i,onChange:e=>a(e.target.value),autoComplete:`username`})}),(0,U.jsx)($h,{label:`Password`,hint:`Also unlocks your vault. It never leaves this PC; only a derived proof is sent.`,children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:o,onChange:e=>s(e.target.value),autoComplete:u?`new-password`:`current-password`})}),(0,U.jsx)($h,{label:`Device name`,children:(0,U.jsx)(`input`,{className:Y,value:c,onChange:e=>l(e.target.value),placeholder:`Office PC`})}),(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),` `,`Create a new account`]}),(0,U.jsx)(QA,{checked:f,onChange:p}),(0,U.jsx)(q,{type:`submit`,variant:`primary`,busy:m,disabled:!n.trim()||!i.trim()||!o,children:u?`Register`:`Log in`})]})}function ij(){let{actions:e}=W(),[t,n]=(0,v.useState)(``),[r,i]=(0,v.useState)(!0),[a,o]=(0,v.useState)(!1);return(0,U.jsxs)(`form`,{className:`space-y-2`,onSubmit:i=>{i.preventDefault(),o(!0),e.unlock(t,{keepUnlocked:r}).finally(()=>{o(!1),n(``)})},children:[(0,U.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,U.jsx)($h,{label:`Vault locked — enter your password`,className:`flex-1`,children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:t,onChange:e=>n(e.target.value),autoComplete:`current-password`})}),(0,U.jsx)(q,{type:`submit`,variant:`primary`,busy:a,disabled:!t,children:`Unlock`})]}),(0,U.jsx)(QA,{checked:r,onChange:i})]})}function aj(){let{state:e}=W(),t=e.plan,n=e=>e.toLocaleString(void 0,{maximumFractionDigits:0});return(0,U.jsxs)(`section`,{className:`space-y-2`,"data-testid":`account-plan`,children:[(0,U.jsx)(`h3`,{className:`text-sm font-semibold`,children:`Plan & credits`}),t===null?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Sign in to see your plan and credit balance.`}):(0,U.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border px-3 py-2.5 text-sm`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,U.jsxs)(`span`,{className:`font-medium`,children:[t.planName,t.status===`none`?` (lapsed)`:``]})]}),(0,U.jsx)(`div`,{className:`h-px bg-border`}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,U.jsx)(`span`,{className:`font-semibold tabular-nums`,"data-testid":`account-credits`,children:n(t.credits.balance)})]}),(0,U.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 oj({open:e,onClose:t}){let{state:n,actions:r}=W(),i=n.account,a=jd(i);return(0,v.useEffect)(()=>{e&&(r.refreshAccount(),r.refreshPlan())},[e,r]),(0,U.jsx)(tg,{open:e,title:`Account`,onClose:t,children:(0,U.jsxs)(`div`,{className:`space-y-5`,children:[i?.loggedIn?(0,U.jsxs)(`section`,{className:`space-y-2`,children:[(0,U.jsx)(ej,{}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`font-medium`,children:i.email}),a?(0,U.jsx)(X,{tone:`warn`,children:`vault waiting for a password reset to finish`}):(0,U.jsx)(X,{tone:i.vaultUnlocked?`ok`:`warn`,children:i.vaultUnlocked?`vault unlocked`:`vault locked`}),(0,U.jsxs)(X,{tone:i.syncStatus===`error`?`danger`:i.syncStatus===`offline`?`warn`:`neutral`,children:[`sync: `,i.syncStatus]}),i.vaultRev===null?null:(0,U.jsxs)(X,{children:[`rev `,i.vaultRev]})]}),(0,U.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[i.gatewayUrl,` · device `,i.deviceId?.slice(0,8)??`?`,` · last sync`,` `,i.lastSyncAt?Op(i.lastSyncAt):`never`,i.syncError?(0,U.jsxs)(`span`,{className:`text-danger`,children:[` · `,i.syncError]}):null]}),a?(0,U.jsx)($A,{view:a}):null,!a&&!i.vaultUnlocked?(0,U.jsx)(ij,{}):null,i.vaultUnlocked?(0,U.jsx)(tj,{}):null,(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,U.jsxs)(q,{onClick:()=>void r.syncNow(),disabled:!i.vaultUnlocked,children:[(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`}),` Sync now`]}),(0,U.jsx)(q,{variant:`danger`,onClick:()=>void r.logout(),children:`Log out`})]})]}):(0,U.jsx)(rj,{}),(0,U.jsx)(aj,{})]})})}var sj=(0,v.createContext)({openChat:()=>{},openConversation:()=>{},conversationTitle:()=>null,canOpenChat:()=>!1}),cj={message:`Message from chat`,reply:`Reply from chat`,continue:`Continue: a message from chat`},lj={message:`Another chat's agent sent this chat a message. This chat works on it with its own model, folder and permissions; its final answer goes back by itself.`,reply:`The answer another chat sent back to a message this chat sent it.`,continue:`OonaCode restarted while this chat was working on a message from another chat, so it was handed over again to finish.`},uj=(0,v.memo)(function({item:e}){let t=(0,v.useContext)(sj),n=e.chatMarker;if(!n)return null;if(n.kind===`notice`)return(0,U.jsx)(dj,{marker:n,timestamp:e.timestamp});let r=n.kind,i=n.title||`another chat`,a=t.conversationTitle(n.conversationId),o=r===`reply`?K.Reply:r===`continue`?K.Refresh:K.Mail,s=n.chatId!==`_`&&t.canOpenChat(n.chatId,n.hostId);return(0,U.jsxs)(`div`,{className:`my-2 overflow-hidden rounded-lg border border-accent/40 bg-accent-soft/20 text-sm`,"data-testid":`chat-message-card`,"data-kind":r,title:Ap(e.timestamp),children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1 border-b border-accent/20 px-3 py-1.5`,children:[(0,U.jsx)(o,{className:`h-3.5 w-3.5 shrink-0 text-accent`}),(0,U.jsxs)(`span`,{className:`min-w-0 font-medium text-fg`,title:lj[r],"data-testid":`chat-message-card-title`,children:[cj[r],` "`,i,`"`]}),n.pc?(0,U.jsxs)(`span`,{className:`text-xs text-fg-muted`,children:[`on `,n.pc]}):null,a?(0,U.jsx)(`span`,{title:`The conversation this message belongs to`,children:(0,U.jsx)(X,{tone:`accent`,children:(0,U.jsx)(`span`,{"data-testid":`chat-message-card-conversation`,children:a})})}):null,n.replyExpected?(0,U.jsx)(`span`,{title:`The chat that sent it waits for an answer: this chat's final answer to it goes back by itself.`,children:(0,U.jsx)(X,{tone:`warn`,children:(0,U.jsx)(`span`,{"data-testid":`chat-message-card-reply-expected`,children:`reply expected`})})}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>t.openConversation(n.conversationId),title:`See the whole conversation, what it cost, and pause or close it`,className:`rounded px-1.5 py-0.5 text-xs text-fg-muted hover:bg-surface-2 hover:text-fg`,"data-testid":`chat-message-card-conversation-link`,children:`Conversation`}),s?(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t.openChat(n.chatId),title:`Open the chat "${i}" in a tab`,className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-accent hover:bg-accent-soft`,"data-testid":`chat-message-card-open`,children:[(0,U.jsx)(K.ExternalLink,{className:`h-3 w-3`}),` Open chat`]}):null]}),(0,U.jsx)(`div`,{className:`px-3 py-2`,"data-testid":`chat-message-card-body`,children:(0,U.jsx)(oO,{text:n.body})})]})});function dj({marker:e,timestamp:t}){let n=(0,v.useContext)(sj),r=e.body?`${e.headline}\n\n${e.body}`:e.headline,i=Ap(t);return(0,U.jsxs)(`div`,{className:`my-2 flex items-center gap-2 rounded-md border border-warn/40 bg-warn-soft px-3 py-1.5 text-xs text-warn`,"data-testid":`chat-notice`,role:`note`,children:[(0,U.jsx)(K.Alert,{className:`h-3.5 w-3.5 shrink-0`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,title:i?`${r}\n\n${i}`:r,children:[e.headline,e.body?(0,U.jsxs)(`span`,{className:`opacity-80`,children:[` — `,e.body]}):null]}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>n.openConversation(e.conversationId),title:`Open the conversation this is about`,className:`shrink-0 rounded px-1.5 py-0.5 text-xs font-medium hover:bg-warn/10`,"data-testid":`chat-notice-open`,children:`Conversation`})]})}var fj=(0,v.memo)(function({text:e,localFiles:t=!1}){let{head:n,tail:r}=ck(e);return(0,U.jsxs)(U.Fragment,{children:[n?(0,U.jsx)(oO,{text:n,localFiles:t}):null,(0,U.jsx)(oO,{text:r,localFiles:t})]})});function pj(e){let t=(0,v.useRef)(null);(0,v.useEffect)(()=>{let e=t.current;e&&(e.focus(),e.select())},[e.focusSeq]);let n=t=>{t.key===`Enter`||t.key===`ArrowDown`?(t.preventDefault(),e.onStep(t.key===`Enter`&&t.shiftKey?-1:1)):t.key===`ArrowUp`?(t.preventDefault(),e.onStep(-1)):t.key===`Escape`&&(t.preventDefault(),t.stopPropagation(),e.onClose())},r=e.query.trim()!==``&&e.count===0;return(0,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border bg-surface px-3 py-1.5`,"data-testid":`chat-search`,role:`search`,children:[(0,U.jsx)(K.Search,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,U.jsx)(`input`,{ref:t,type:`text`,value:e.query,onChange:t=>e.onQuery(t.target.value),onKeyDown:n,placeholder:`Find in this chat`,"aria-label":`Find in this chat`,spellCheck:!1,className:H(Y,`h-7 min-w-0 flex-1 py-0 text-xs`),"data-testid":`chat-search-input`}),(0,U.jsx)(`span`,{className:H(`shrink-0 tabular-nums text-xs`,r?`text-warn`:`text-fg-muted`),"data-testid":`chat-search-count`,children:e.query.trim()===``?``:we(e.index,e.count)}),(0,U.jsx)(J,{label:`Previous match (Shift+Enter)`,onClick:()=>e.onStep(-1),disabled:e.count===0,"data-testid":`chat-search-prev`,children:(0,U.jsx)(K.ArrowDown,{className:`w-3.5 h-3.5 rotate-180`})}),(0,U.jsx)(J,{label:`Next match (Enter)`,onClick:()=>e.onStep(1),disabled:e.count===0,"data-testid":`chat-search-next`,children:(0,U.jsx)(K.ArrowDown,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(J,{label:`Close search (Esc)`,onClick:e.onClose,"data-testid":`chat-search-close`,children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]})}var mj=`data-item-id`;function hj(e){return`[${mj}="${e.replace(/["\\]/g,`\\$&`)}"]`}var gj=`oona-search`,_j=`oona-search-current`,vj=2e3;function yj(){let e=globalThis.CSS,t=globalThis.Highlight;return!e?.highlights||typeof t!=`function`?null:{registry:e.highlights,Highlight:t}}function bj(e,t,n,r){let i=yj();if(i===null)return;let a=_e(r);if(a===``||t.length===0){xj();return}let o=ye(a),s=[],c=[],l=vj;for(let r of t){let t=e.querySelector(hj(r.id));if(!t)continue;let i=Tj(t,o,l);if(l-=i.length,r.id===n?c.push(...i):s.push(...i),l<=0)break}i.registry.set(gj,new i.Highlight(...s)),i.registry.set(_j,new i.Highlight(...c))}function xj(){let e=yj();e!==null&&(e.registry.delete(gj),e.registry.delete(_j))}function Sj(e,t){let n=_e(t);return n===``?null:Tj(e,ye(n),1)[0]??null}function Cj(e,t){let n=e.startContainer instanceof Element?e.startContainer:e.startContainer.parentElement;for(;n;){if(n instanceof HTMLElement&&wj(n)){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();n.scrollTop+=t.top-r.top-(n.clientHeight-t.height)/2}if(n===t)break;n=n.parentElement}}function wj(e){if(e.scrollHeight<=e.clientHeight)return!1;let t=getComputedStyle(e).overflowY;return t===`auto`||t===`scroll`}function Tj(e,t,n){let r=e.ownerDocument;if(!r||n<=0)return[];let i=[],a=r.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let e=a.nextNode();e!==null;e=a.nextNode()){let a=e.data;t.lastIndex=0;for(let o of a.matchAll(t)){if(o[0].length===0)continue;let t=r.createRange();if(t.setStart(e,o.index??0),t.setEnd(e,(o.index??0)+o[0].length),i.push(t),i.length>=n)return i}}return i}function Ej(e,t){switch(e.kind){case`user`:return e.text;case`assistant`:return e.text;case`thinking`:return t?e.text:``;case`tool`:return[e.name,gk(e.name,e.input)??``,Dj(e.result)].filter(e=>e!==``).join(`
|
|
135
|
-
`);case`system`:return e.text;case`error`:return e.message;case`permission`:return e.request.toolName;case`result`:case`compact`:return``}}function Dj(e){return e===null?``:typeof e.content==`string`?e.content:e.content.map(e=>`text`in e&&typeof e.text==`string`?e.text:``).filter(e=>e!==``).join(`
|
|
136
|
-
`)}function Oj(e,t,n){let r=Se(e,t,e=>Ej(e,n.showReasoning));if(r.length===0)return[];let i=new Map;for(let t of e)t.kind===`tool`&&i.set(t.toolUseId,t);return r.map(t=>{let n=e[t],r=kj(n,i);return{id:n.id,rootId:r[0]??n.id,path:r}})}function kj(e,t){let n=[],r=e;for(let e=0;e<16&&r.parentToolUseId!==null;e++){let e=t.get(r.parentToolUseId);if(e===void 0)break;n.unshift(e.id),r=e}return n}function Aj(e,t){let n=e instanceof Element?e:null,r=e=>e!==null&&t.contains(e)?e:null,i=typeof window<`u`?window.getSelection():null,a=i&&!i.isCollapsed&&i.anchorNode&&t.contains(i.anchorNode)?i.toString():``,o=r(n?.closest(`[data-item-id]`)??null),s=r(n?.closest(`pre`)??null),c=r(n?.closest(`a[href]`)??null);return{selection:a,itemId:o?.getAttribute(`data-item-id`)??null,code:s?.textContent??null,link:c?.href||null}}function jj(e){switch(e.kind){case`user`:case`assistant`:case`thinking`:case`system`:return e.text;case`tool`:{let t=Dj(e.result);return t===``?gk(e.name,e.input)??``:t}case`error`:return e.message;case`permission`:return e.request.toolName;case`result`:case`compact`:return``}}function Mj(e){switch(e.kind){case`user`:return`Copy message`;case`assistant`:return`Copy reply`;case`tool`:return e.result?`Copy tool output`:`Copy tool call`;case`thinking`:return`Copy thought`;default:return`Copy text`}}function Nj(e){let t=e.trim();return t===``||t.length>80||/[\r\n]/.test(t)?null:t}function Pj(e){if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`?t.href:null}catch{return null}}function Fj(e,t,n={}){let r=[],i=t!==null&&jj(t).trim()!==``;n.canReply!==!1&&(e.selection.trim()!==``||i)&&r.push({key:`reply`,label:e.selection.trim()===``?`Reply`:`Reply to selection`}),r.push({key:`copy`,label:`Copy`,hint:`Ctrl+C`,disabled:e.selection===``,separated:r.length>0}),e.code!==null&&e.code.trim()!==``&&r.push({key:`copy-code`,label:`Copy code block`}),e.link!==null&&(r.push({key:`copy-link`,label:`Copy link address`}),Pj(e.link)&&r.push({key:`open-link`,label:`Open link`})),t!==null&&i&&r.push({key:`copy-item`,label:Mj(t)});let a=Nj(e.selection);if(a!==null){let e=a.length>32?`${a.slice(0,31)}…`:a;r.push({key:`find`,label:`Find “${e}” in this chat`,separated:!0})}return e.itemId!==null&&r.push({key:`select-block`,label:`Select all in this block`,separated:a===null}),r}var Ij=`data-pin-message`;function Lj(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 Rj(e,t=240){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,t-1)}…`}function zj(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 Bj(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r].item;i.kind===`permission`&&i.status===`allowed`&&t(i.request.toolUseId)?n??=e.slice(0,r):n&&n.push(e[r])}return n??e}function Vj(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 Hj({items:e,onCancel:t,onSendNow:n}){let[r,i]=(0,v.useState)(()=>new Set),[a,o]=(0,v.useState)({}),[s,c]=(0,v.useState)(()=>new Set),l=e=>{let t=e.requestId;!n||!t||r.has(t)||s.has(t)||(i(e=>new Set(e).add(t)),o(({[t]:e,...n})=>n),n(e).catch(e=>e instanceof Error?e.message:String(e)).then(e=>{e?o(n=>({...n,[t]:e})):c(e=>new Set(e).add(t))}).finally(()=>i(e=>{let n=new Set(e);return n.delete(t),n})))},u=(0,v.useRef)(null),d=e.length;return(0,v.useEffect)(()=>{let e=u.current;e&&(e.scrollTop=e.scrollHeight)},[d]),e.length===0?null:(0,U.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,U.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,U.jsx)(`div`,{ref:u,className:`max-h-[200px] overflow-y-auto`,"data-testid":`queued-strip-list`,children:e.map(e=>(0,U.jsxs)(`div`,{className:`relative`,[mj]:e.id,children:[(0,U.jsx)(Gj,{item:e}),t&&e.requestId?(0,U.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,U.jsx)(K.X,{className:`h-3 w-3`})}):null,n&&e.requestId&&!e.deliveredAt?(0,U.jsxs)(`div`,{className:`-mt-0.5 mb-1 flex flex-wrap items-center justify-end gap-1.5 text-[11px] text-fg-faint`,"data-testid":`queued-now-row-${e.requestId}`,children:[(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:s.has(e.requestId)?`Stopping the current step…`:`Stops the current step`}),(0,U.jsx)(Zh,{label:Te.label,details:Te.warning}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:r.has(e.requestId)||s.has(e.requestId),title:s.has(e.requestId)?`On its way — the agent takes it as soon as it has stopped its current step (a few seconds at most)`:Te.warning,"aria-label":`${Te.label}: ${Te.warning}`,"data-testid":`queued-now-${e.requestId}`,className:`inline-flex items-center gap-1 rounded border border-border bg-surface px-1.5 py-0.5 text-fg-muted shadow-sm hover:bg-surface-2 hover:text-fg disabled:opacity-50`,children:[r.has(e.requestId)||s.has(e.requestId)?(0,U.jsx)(K.Spinner,{className:`h-3 w-3`}):null,s.has(e.requestId)?`Sending now…`:r.has(e.requestId)?`Sending…`:Te.label]}),a[e.requestId]?(0,U.jsx)(`span`,{className:`basis-full text-right text-danger`,role:`status`,"data-testid":`queued-now-refused-${e.requestId}`,children:a[e.requestId]}):null]}):null]},e.id))})]})}function Uj(e){return e.failed?`failed`:e.optimistic||e.waiting?`pending`:`delivered`}function Wj(e){return e.chatMarker===void 0&&!e.compactSummary&&!e.taskNotification&&!e.engineNote&&e.scheduledTask===void 0&&!I(e.text)&&!L(e.text)}var Gj=(0,v.memo)(function({item:e}){if(e.chatMarker)return(0,U.jsx)(uj,{item:e});if(L(e.text))return(0,U.jsx)(Yj,{item:e});if(e.compactSummary)return(0,U.jsx)(eM,{item:e});if(e.taskNotification)return(0,U.jsx)($j,{item:e});if(I(e.text))return(0,U.jsx)(Xj,{item:e});if(e.engineNote)return(0,U.jsx)(qj,{item:e});if(e.scheduledTask!==void 0)return(0,U.jsx)(Jj,{item:e});let t=Uj(e);return(0,U.jsx)(`div`,{className:`my-2 flex justify-end`,"data-testid":`user-bubble`,"data-delivery":t,children:(0,U.jsxs)(`div`,{className:H(`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,U.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,U.jsx)(`img`,{src:r,alt:`attachment`,className:`max-h-40 rounded border border-border`},t):(0,U.jsx)(X,{children:e.type},t)})}):null,(0,U.jsx)(Kj,{text:e.text}),e.failed?(0,U.jsx)(`div`,{className:`mt-1 text-right text-[10px] text-danger`,"data-testid":`user-not-sent`,children:`Not sent — send it again`}):null,(0,U.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,U.jsx)(`span`,{title:Ap(e.timestamp),children:jp(e.timestamp)}):null,t===`pending`?(0,U.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,U.jsx)(K.Clock,{className:`h-3 w-3`})}):t===`delivered`?(0,U.jsx)(`span`,{"data-testid":`user-delivered`,title:e.deliveredAt?`Read by the agent at ${Ap(e.deliveredAt)}`:`Sent to the model`,"aria-label":`read by the agent`,children:(0,U.jsx)(K.Check,{className:`h-3 w-3`})}):null]})]})})});function Kj({text:e}){let t=xm(e);return t?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`mb-1.5 flex flex-col gap-1`,children:t.quotes.map((e,t)=>(0,U.jsxs)(`button`,{type:`button`,className:`flex min-w-0 max-w-full items-center gap-1.5 rounded-md border-l-2 border-accent bg-accent-soft/60 py-1 pl-2 pr-2 text-left text-xs text-fg-muted hover:text-fg`,title:`Go to the quoted message:\n\n${Sm(e)}`,"data-quote":e,"data-testid":`user-reply-quote`,children:[(0,U.jsx)(K.Reply,{className:`h-3.5 w-3.5 shrink-0 text-accent`}),(0,U.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,U.jsx)(`span`,{className:`text-fg`,children:`Reply to `}),Tm(Sm(e))]})]},t))}),t.reply===``?null:(0,U.jsx)(`div`,{className:`pre-wrap`,children:(0,U.jsx)(XD,{text:t.reply})})]}):(0,U.jsx)(`div`,{className:`pre-wrap`,children:(0,U.jsx)(XD,{text:e})})}var qj=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);mk(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,U.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`engine-note`,title:Ap(e.timestamp),children:[(0,U.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,U.jsx)(K.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Engine note`}),(0,U.jsxs)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:[ne(e.text),r>40?` · ${r.toLocaleString()} words`:``]}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,U.jsx)(oO,{text:e.text})}):null]})}),Jj=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);mk(e.id,n);let r=Ks(e.text)?.prompt??e.text;return(0,U.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`scheduled-task-line`,title:Ap(e.timestamp),children:[(0,U.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,U.jsx)(K.Clock,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Scheduled task`}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,children:e.scheduledTask}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,U.jsx)(oO,{text:r})}):null]})}),Yj=(0,v.memo)(function({item:e}){return(0,U.jsxs)(`div`,{className:`my-2 flex items-center gap-2 text-xs text-fg-faint`,"data-testid":`interrupt-marker`,title:Ap(e.timestamp),children:[(0,U.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,U.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,U.jsx)(K.Stop,{className:`h-3 w-3 text-danger`}),(0,U.jsx)(`span`,{className:`font-medium text-fg-muted`,children:`User requested stop`})]}),(0,U.jsx)(`span`,{className:`h-px flex-1 bg-border`})]})}),Xj=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);return mk(e.id,n),(0,U.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`stream-cut`,title:Ap(e.timestamp),children:[(0,U.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,U.jsx)(K.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Reply cut off`}),(0,U.jsx)(`span`,{className:`text-xs opacity-70`,children:`the stream broke mid-answer; the engine asked the model to resume where it stopped`}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,U.jsx)(oO,{text:e.text})}):null]})}),Zj=(0,v.memo)(function({item:e}){let t=Du(e.error,e.text),n=lk(e.text,e.streaming);return(0,U.jsxs)(`div`,{className:`my-2 text-sm`,"data-testid":`assistant-bubble`,title:Ap(e.timestamp),children:[(0,U.jsx)(`div`,{className:H(e.streaming&&`caret`),children:e.streaming?(0,U.jsx)(fj,{text:n,localFiles:!0}):(0,U.jsx)(oO,{text:n,localFiles:!0})}),t?(0,U.jsx)(`div`,{className:`mt-1 text-xs text-danger`,"data-testid":`assistant-error`,children:t}):null,e.aborted?(0,U.jsx)(X,{tone:`warn`,className:`mt-1`,children:`interrupted`}):null]})});function Qj(e){if(!e)return null;if(/orphaned by a previous claude code process exit/i.test(e))return`it was still running when OonaCode restarted this chat (an update or a restart), so it stopped`;let t=/(\d+) background .*tasks? didn.t finish before the previous session ended/i.exec(e);return t?`${t[1]} background tasks were still running when OonaCode restarted this chat (an update or a restart), so they stopped`:e}var $j=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);mk(e.id,n);let r=de(e.text),i=r.status??`ended`,a=i===`completed`?`text-ok`:i===`failed`?`text-danger`:`text-warn`,o=Qj(r.summary);return(0,U.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`task-notification`,"data-status":i,title:Ap(e.timestamp),children:[(0,U.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,U.jsx)(K.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Background task`}),(0,U.jsx)(`span`,{className:`text-xs font-medium ${a}`,children:i}),o?(0,U.jsx)(`span`,{className:`min-w-0 truncate text-xs opacity-70`,title:r.summary??void 0,children:o}):null,(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,U.jsxs)(`div`,{className:`border-t border-border px-3 py-2 text-xs text-fg-muted`,children:[r.note?(0,U.jsx)(`p`,{className:`mb-2`,children:r.note}):null,(0,U.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-[11px] text-fg-faint`,children:e.text})]}):null]})}),eM=(0,v.memo)(function({item:e}){let[t,n]=(0,v.useState)(!1);mk(e.id,n);let r=e.text.trim()?e.text.trim().split(/\s+/).length:0;return(0,U.jsxs)(`div`,{className:`my-2 rounded-lg border border-border bg-surface text-sm`,"data-testid":`compact-summary`,title:Ap(e.timestamp),children:[(0,U.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,U.jsx)(K.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`font-medium`,children:`Context compacted`}),(0,U.jsxs)(`span`,{className:`text-xs opacity-70`,children:[`the engine summarised the conversation so far to make room · `,r.toLocaleString(),` `,`words`]}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(K.Chevron,{open:t,className:`w-3.5 h-3.5 text-fg-faint`})]}),t?(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-fg-muted`,children:(0,U.jsx)(oO,{text:e.text})}):null]})}),tM=(0,v.memo)(function({item:e}){let t=[Ep(e.durationMs),`${Dp(e.inputTokens)} in${(e.cachedInputTokens??0)>0?` (+${Dp(e.cachedInputTokens??0)} cached)`:``} / ${Dp(e.outputTokens)} out`,`${e.numTurns} step${e.numTurns===1?``:`s`}`],n=e.isError?Tu(e):`turn complete`;return(0,U.jsxs)(`div`,{className:H(`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:Ap(e.timestamp),children:[e.isError?(0,U.jsx)(K.Alert,{className:`w-3 h-3`}):(0,U.jsx)(K.Check,{className:`w-3 h-3`}),(0,U.jsx)(`span`,{children:n}),(0,U.jsx)(`span`,{children:`·`}),(0,U.jsx)(`span`,{children:t.join(` · `)}),e.errors.length>0?(0,U.jsx)(`span`,{className:`w-full pre-wrap font-mono`,children:e.errors.join(`
|
|
137
|
-
`)}):null]})}),nM=(0,v.memo)(function({item:e}){return(0,U.jsxs)(`div`,{className:`my-3 flex items-center gap-2 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,U.jsxs)(`span`,{children:[`Context compacted (`,e.trigger,`) · `,Dp(e.preTokens),e.postTokens===null?``:` → ${Dp(e.postTokens)}`,` tokens`]}),(0,U.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}),rM=(0,v.memo)(function({item:e,modelNameOf:t}){let[n,r]=(0,v.useState)(!1),i=e.refusal,a=e=>e?t(e):null,o=e.subtype===tf,s=a(i?.originalModel)??`The model`,c;if(o){let e=a(i?.fallbackModel)??`another model`;c=i?.scope===`local`?`${s}’s safeguards flagged a subagent’s request — ${e} answered it instead`:`${s}’s safeguards flagged this message — ${e} answers instead, for the rest of this run`}else{let t=a(e.refusalBefore?.originalModel);c=t?`${s} refused too, after ${t}’s safeguards had — there is no other model to fall back to`:`${s}’s safeguards refused this message — there is no model to fall back to`}let l=o?e.text||i?.explanation||``:i?.explanation||e.text||``;return(0,U.jsxs)(`div`,{className:H(`my-2 rounded-md border text-xs`,o?`border-warn/40 bg-warn-soft text-warn`:`border-danger/40 bg-danger-soft text-danger`),"data-testid":o?`safeguard-fallback`:`safeguard-no-fallback`,role:o?`note`:`alert`,title:Ap(e.timestamp),children:[(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":l?n:void 0,disabled:!l,onClick:()=>r(e=>!e),className:`flex w-full items-start gap-1.5 px-2.5 py-1.5 text-left disabled:cursor-default`,children:[(0,U.jsx)(K.Shield,{className:`mt-px w-3.5 h-3.5 flex-shrink-0`,"aria-hidden":`true`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 font-medium`,children:c}),i?.category?(0,U.jsx)(`span`,{className:`flex-shrink-0 rounded border border-current/30 px-1 text-[10px] uppercase tracking-wide opacity-80`,"data-testid":`safeguard-category`,title:`The safeguard's category`,children:i.category}):null,l?(0,U.jsx)(K.Chevron,{open:n,className:`mt-px w-3.5 h-3.5 flex-shrink-0 opacity-70`}):null]}),n&&l?(0,U.jsx)(`div`,{className:`border-t border-current/20 px-3 py-2 text-fg-muted`,children:(0,U.jsx)(iM,{text:l})}):null]})}),iM=(0,v.memo)(function({text:e}){return(0,U.jsx)(oO,{text:e})}),aM=(0,v.memo)(function({item:e,modelNameOf:t}){if(e.subtype===`chat-notice`&&e.chatMarker)return(0,U.jsx)(dj,{marker:e.chatMarker,timestamp:e.timestamp});if(e.subtype===`safeguard-fallback`||e.subtype===`safeguard-no-fallback`)return(0,U.jsx)(rM,{item:e,modelNameOf:t});let n=e.subtype===`local-command`||e.subtype===`local-command-error`,r=e.subtype===`command`;return e.subtype===`rewind`?(0,U.jsxs)(`div`,{className:`my-3 flex items-center gap-2 text-[11px] text-fg-faint`,"data-testid":`rewind-boundary`,children:[(0,U.jsx)(`span`,{className:`h-px flex-1 bg-border`}),(0,U.jsxs)(`span`,{className:`whitespace-nowrap rounded border border-border bg-surface-2 px-2 py-0.5`,children:[`⟲ `,e.text]}),(0,U.jsx)(`span`,{className:`h-px flex-1 bg-border`})]}):(0,U.jsx)(`div`,{className:H(`my-2 rounded-md border border-border bg-surface-2 px-3 py-1.5 text-xs`,e.subtype===`local-command-error`?`text-danger`:n?`text-fg`:`text-fg-muted`),"data-testid":n||r?`command-echo`:void 0,children:r?(0,U.jsx)(`span`,{className:`font-mono`,children:e.text}):n&&e.text.includes(`
|
|
138
|
-
`)?(0,U.jsx)(oM,{text:e.text}):(0,U.jsx)(`span`,{className:H(`pre-wrap`,n&&`font-semibold`),children:e.text})})}),oM=(0,v.memo)(function({text:e}){return sM(e)?(0,U.jsx)(`div`,{className:`min-w-0 overflow-x-auto`,"data-testid":`command-output-markdown`,children:(0,U.jsx)(oO,{text:e})}):(0,U.jsx)(`pre`,{className:`overflow-x-auto whitespace-pre font-mono text-[11px] leading-snug`,"data-testid":`command-output-text`,children:e})});function sM(e){return/^#{1,6} /m.test(e)||/^\|[\s:|-]*-{3,}[\s:|-]*\|?\s*$/m.test(e)}var cM=(0,v.memo)(function({item:e}){let t=lM(e.message);return(0,U.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`,title:t===e.message?void 0:e.message,children:[(0,U.jsx)(K.Alert,{className:`mt-0.5 w-3.5 h-3.5`}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`span`,{className:`font-mono`,children:e.code}),`: `,t]})]})});function lM(e){let t=uM(e),n=t.indexOf(`{"type":"error"`);if(n>=0)try{let e=JSON.parse(t.slice(n)).error?.message;typeof e==`string`&&e.trim()&&(t=`${t.slice(0,n).trim()} ${e.trim()}`.trim())}catch{}return t}function uM(e){return e.replace(/<\/?tool_use_error>/g,``).trim()}function dM({label:e,lastFrameAt:t=null}){let n=gM(t),r=n!==null&&n>=3e4,i=n!==null&&n>=3e5;return(0,U.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,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`blink`,children:e}),(0,U.jsxs)(`span`,{className:`thinking-dots`,"aria-hidden":!0,children:[(0,U.jsx)(`span`,{children:`.`}),(0,U.jsx)(`span`,{children:`.`}),(0,U.jsx)(`span`,{children:`.`})]}),r&&t!==null?(0,U.jsxs)(U.Fragment,{children:[(0,U.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 ${vM.format(t)}`,children:[i?(0,U.jsx)(K.Alert,{className:`h-3.5 w-3.5 shrink-0 text-warn`}):null,`· nothing from the agent for ${Ep(n)}`,i?` — it may be stuck: press Stop, then send a message to continue`:``]}),(0,U.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 fM(e,t){return e.item.id===t||e.children.some(e=>fM(e,t))}function pM(e){if(typeof requestAnimationFrame==`function`){let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)}let t=setTimeout(e,16);return()=>clearTimeout(t)}function mM(e){let t=e?.pendingPermissions??[];return t.length===0?null:t.some(e=>e.toolName===`AskUserQuestion`)?`answer`:`approval`}function hM(e){return!e||e.status!==`running`||e.pendingPermissions.length>0?null:e.lastFrameAt}function gM(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 _M=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),vM=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),yM=new Intl.DateTimeFormat(void 0,{dateStyle:`full`,timeStyle:`long`}),bM=new Intl.DateTimeFormat(void 0,{weekday:`long`,day:`numeric`,month:`long`}),xM=new Intl.DateTimeFormat(void 0,{dateStyle:`full`});function SM(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 CM(e,t=new Date){let n=SM(e);if(n===null)return``;if(n===SM(t.toISOString()))return`Today`;let r=new Date(t);if(r.setDate(r.getDate()-1),n===SM(r.toISOString()))return`Yesterday`;let i=Date.parse(e);return(new Date(i).getFullYear()===t.getFullYear()?bM:xM).format(i)}function wM(){let[e,t]=(0,v.useState)(0),n=SM(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 TM=(0,v.memo)(function({iso:e}){let t=e?Date.parse(e):NaN,n=Number.isFinite(t);return(0,U.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?yM.format(t):void 0,children:n?_M.format(t):``})}),EM=(0,v.memo)(function({iso:e}){return(0,U.jsx)(`div`,{className:`my-3 flex justify-center`,"data-testid":`day-separator`,children:(0,U.jsx)(`span`,{className:`rounded-full border border-border bg-surface px-2.5 py-0.5 text-[11px] text-fg-muted`,children:CM(e)})})});function DM({hasProject:e}){let{actions:t}=W();return(0,U.jsxs)(`div`,{className:`py-10 text-center`,"data-testid":`draft-intro`,children:[(0,U.jsx)(`div`,{className:`text-sm text-fg-muted`,children:`Send a message to start this chat.`}),e?null:(0,U.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,U.jsx)(`button`,{type:`button`,className:`underline hover:text-fg`,onClick:()=>t.openDialog(`project`),children:`Use one of your project folders`}),` `,`to load its `,(0,U.jsx)(`code`,{children:`CLAUDE.md`}),` and settings instead.`]})]})}function OM(e,t,n){return e===`waiting_permission`&&!n?`Waiting for your approval`:t??`thinking`}var kM={open:!1,query:``,currentId:null,focusSeq:0},AM=[];function jM(){let{state:e,actions:t,api:n}=W(),r=Rh(),i=zh(),a=e.currentSessionId,o=a?e.remote.tabs[a]!==void 0:!1,s=r?.init?.cwd??i?.cwd??null,c=e.info?.homeDir??null,l=e.info?.platform??null,u=(0,v.useMemo)(()=>n.statLocalPaths?new FD({stat:(e,t)=>n.statLocalPaths(e,t)}):null,[n]),d=r?.status===`running`||r?.status===`waiting_permission`,f=(0,v.useRef)(d);return(0,v.useEffect)(()=>{f.current&&!d&&a&&!o&&u?.invalidate(a),f.current=d},[d,a,o,u]),(0,v.useMemo)(()=>{let e=typeof window<`u`?window.oonacode??null:null,r=n.grantLocalFile?.bind(n)??null;return{sessionId:a,cwd:s,homeDir:o?null:c,platform:o?null:l,remote:o,grant:r,openInViewer:o?null:e=>t.openFile(e),bridge:e&&(e.openPath||e.showItemInFolder)?e:null,notify:(e,n)=>t.toast(e,n),stat:o?null:u}},[a,s,o,c,l,n,t,u])}function MM(){let e=jM(),t=NM();return(0,U.jsx)(LD.Provider,{value:e,children:(0,U.jsx)(sj.Provider,{value:t,children:(0,U.jsx)(PM,{})})})}function NM(){let{state:e,actions:t}=W(),n=e.currentSessionId,r=n?e.chatConversations[n]:void 0,i=e.connection.hostId??e.info?.hostId??null;return(0,v.useMemo)(()=>{let e=new Map((r??[]).map(e=>[e.id,e.title?.trim()||null]));return{openChat:e=>t.selectSession(e),openConversation:e=>t.openConversations(e),conversationTitle:t=>e.get(t)??null,canOpenChat:(e,t)=>e!==n&&(i===null||t===i)}},[t,r,n,i])}function PM(){let{state:e,actions:t,dispatch:n}=W(),r=Rh(),i=zh(),a=Bh(),o=(0,v.useRef)(null),[s,c]=(0,v.useState)(!0),l=(0,v.useRef)(null),u=e.currentSessionId,d=u&&!a?e.transcriptLoading[u]===!0:!1,f=e.prefs.showReasoningSummaries,p=r?.items,{flow:m,queued:h}=(0,v.useMemo)(()=>Vj(p),[p]),g=(0,v.useRef)([]),_=(0,v.useMemo)(()=>{let e=m?rp(m,g.current):[];return g.current=e,e},[m]),y=u?e.windows[u]:void 0,b=(0,v.useMemo)(()=>y??km(e.prefs.transcriptWindowSize),[y,e.prefs.transcriptWindowSize]),x=(0,v.useMemo)(()=>Fm(_,b),[_,b]),[S,C]=(0,v.useState)(kM),T=(0,v.useMemo)(()=>S.open&&m?Oj(m,S.query,{showReasoning:f}):AM,[m,S.open,S.query,f]),E=S.currentId===null?-1:T.findIndex(e=>e.id===S.currentId),D=E>=0?T[E]??null:null,O=(0,v.useCallback)(()=>C(e=>({...e,open:!0,focusSeq:e.focusSeq+1})),[]),k=(0,v.useCallback)(()=>C(kM),[]),A=(0,v.useCallback)(e=>C(t=>({...t,query:e,currentId:null})),[]),j=(0,v.useRef)(null),M=(0,v.useCallback)(e=>{j.current=null,C(t=>{let n=Ce(t.currentId===null?-1:T.findIndex(e=>e.id===t.currentId),e,T.length);return{...t,currentId:T[n]?.id??null}})},[T]);(0,v.useEffect)(()=>{if(!S.open||S.currentId!==null&&T.some(e=>e.id===S.currentId))return;let e=T.length>0?T[T.length-1]?.id??null:null;e!==S.currentId&&C(t=>({...t,currentId:e}))},[T,S.open,S.currentId]),(0,v.useEffect)(()=>{if(!u||typeof window>`u`)return;let e=e=>{!(e.ctrlKey||e.metaKey)||e.altKey||e.key!==`f`&&e.key!==`F`||(e.preventDefault(),O())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[u,O]);let N=(0,v.useMemo)(()=>dk(),[]),P=D?[...D.path,D.id].join(`
|
|
139
|
-
`):``;(0,v.useLayoutEffect)(()=>{N.set(new Set(P===``?[]:P.split(`
|
|
140
|
-
`)))},[P,N]),(0,v.useEffect)(()=>{if(!D||!u){j.current=null;return}if(j.current===D.id)return;let e=_.findIndex(e=>e.item.id===D.rootId);if(e<0)return;if(e<x.start){t.revealTranscript(u,_.length-e,_.length);return}let n=o.current;if(n)return pM(()=>{let e=n.querySelector(hj(D.id))??n.querySelector(hj(D.rootId));if(!(e instanceof HTMLElement))return;j.current=D.id,c(!1);let t=Sj(e,S.query);t?Cj(t,n):typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`center`})})},[D,_,x.start,u,t,S.query]);let F=e.jumpTo,I=(0,v.useRef)(F?.seq??0);(0,v.useEffect)(()=>{if(!F||!u||F.sessionId!==u||F.seq<=I.current)return;let e=_.findIndex(e=>fM(e,F.itemId));if(e<0){I.current=F.seq;return}if(e<x.start){t.revealTranscript(u,_.length-e,_.length);return}let n=o.current;if(n)return I.current=F.seq,pM(()=>{let t=n.querySelector(hj(F.itemId))??n.querySelector(hj(_[e].item.id));t instanceof HTMLElement&&(c(!1),typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`center`,behavior:`smooth`}),t.classList.add(`chat-jump-flash`),setTimeout(()=>t.classList.remove(`chat-jump-flash`),1600))})},[F,_,x.start,u,t]);let L=(0,v.useCallback)(e=>{let n=(e.target instanceof Element?e.target:null)?.closest(`[data-testid="user-reply-quote"]`),i=r?.items;if(!n||!u||!i)return;let a=n.closest(`[data-item-id]`)?.getAttribute(`data-item-id`)??null,o=a?i.findIndex(e=>e.id===a):-1,s=Om((o>=0?i.slice(0,o):i).map(e=>({id:e.id,text:jj(e)})),n.getAttribute(`data-quote`)??``);s&&t.jumpToItem(u,s)},[r?.items,u,t]);(0,v.useEffect)(()=>{let e=o.current;if(!S.open||!e){xj();return}let t=()=>bj(e,T,D?.id??null,S.query);t();let n=pM(t);return()=>{n(),xj()}},[S.open,S.query,T,D,x.items]);let ee=D?.id??null,[te,ne]=(0,v.useState)(null),re=mg(),ie=u!==null&&!re,ae=(0,v.useCallback)(()=>ne(null),[]),oe=(0,v.useCallback)(e=>{if(e.shiftKey)return;let t=o.current;if(!t)return;let n=e.target instanceof Element?e.target:null;n?.closest(`input, textarea, select, [contenteditable="true"]`)||(e.preventDefault(),ne({at:{x:e.clientX,y:e.clientY},target:Aj(n,t)}))},[]),se=(0,v.useMemo)(()=>{let e=te?.target.itemId;if(!e||!r)return null;let t=r.index.get(e);return t===void 0?null:r.items[t]??null},[te,r]),ce=(0,v.useMemo)(()=>{if(!te)return[];let{target:e}=te,n=e=>void ZD(e).then(e=>t.toast(e?`success`:`error`,e?`Copied`:`Could not copy to the clipboard`)),r={reply:()=>{if(!u)return;let n=e.selection.trim()===``?Cm(se?jj(se):``):e.selection;if(n.trim()===``)return;let r=se?.kind===`tool`?wm(se.input):null,i=se?.kind===`assistant`||se?.kind===`thinking`?`assistant`:se?.kind===`user`?`user`:se?.kind===`tool`?{tool:se.name}:null;t.quoteIntoComposer(u,bm(n,r,i),{preview:Tm(n),itemId:se?.id??null})},copy:()=>n(e.selection),"copy-code":()=>n(e.code??``),"copy-link":()=>n(e.link??``),"open-link":()=>{let t=Pj(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(se?jj(se):``),find:()=>C(t=>({...t,open:!0,query:e.selection.trim(),currentId:null,focusSeq:t.focusSeq+1})),"select-block":()=>{let t=e.itemId?o.current?.querySelector(hj(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,U.jsx)(K.Reply,{className:`h-3.5 w-3.5`}),copy:(0,U.jsx)(K.Copy,{className:`h-3.5 w-3.5`}),"copy-code":(0,U.jsx)(K.Copy,{className:`h-3.5 w-3.5`}),"copy-item":(0,U.jsx)(K.Copy,{className:`h-3.5 w-3.5`}),"copy-link":(0,U.jsx)(K.Globe,{className:`h-3.5 w-3.5`}),"open-link":(0,U.jsx)(K.Globe,{className:`h-3.5 w-3.5`}),find:(0,U.jsx)(K.Search,{className:`h-3.5 w-3.5`})};return Fj(e,se,{canReply:ie}).map(e=>({key:e.key,label:e.label,hint:e.hint,disabled:e.disabled,separated:e.separated,icon:i[e.key]??(0,U.jsx)(`span`,{}),testId:`chat-menu-${e.key}`,onSelect:r[e.key]}))},[te,se,t,u,ie]),le=(0,v.useCallback)(()=>{if(!u||!x.hasMore)return;let e=o.current;e&&(l.current=e.scrollHeight-e.scrollTop),t.growTranscript(u,x.total)},[u,x.hasMore,x.total,t]),[ue,de]=(0,v.useState)(null),fe=(0,v.useRef)(null),pe=(0,v.useCallback)(()=>{let e=o.current;if(!e){de(null);return}let t=e.querySelectorAll(`[${Ij}]`),n=e.getBoundingClientRect().top,r=fe.current?.offsetHeight??0,i=Lj(t.length,e=>t[e].getBoundingClientRect().top-n,r),a=i<0?null:t[i].getAttribute(Ij);de(e=>e===a?e:a)},[]),me=(0,v.useCallback)(()=>{let e=o.current;if(!e)return;let n={scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight},r=Im(n);c(r),pe(),r&&u?t.trimTranscript(u):Lm(n)&&x.hasMore&&le()},[u,x.hasMore,le,t,pe]),he=(0,v.useCallback)(()=>{let e=o.current;if(!e||!ue)return;let t=e.querySelector(hj(ue));if(!(t instanceof HTMLElement))return;let n=t.getBoundingClientRect().top-e.getBoundingClientRect().top;c(!1),e.scrollTo({top:e.scrollTop+n-(fe.current?.offsetHeight??0)})},[ue]),ge=(0,v.useCallback)(()=>{let e=o.current;e&&e.scrollTo({top:e.scrollHeight}),c(!0),u&&t.trimTranscript(u)},[u,t]);(0,v.useLayoutEffect)(()=>{let e=o.current;if(e){if(l.current!==null){e.scrollTop=Math.max(0,e.scrollHeight-l.current),l.current=null;return}s&&(e.scrollTop=e.scrollHeight)}},[x.items,s]),(0,v.useLayoutEffect)(()=>{pe()},[x.items,pe]);let _e=r?.lastLocalPromptId??null;(0,v.useEffect)(()=>{_e!==null&&ge()},[_e,ge]),(0,v.useEffect)(()=>{c(!0),l.current=null,de(null),C(kM)},[u]);let ve=e.chatSearchRequest,ye=(0,v.useRef)(ve?.seen?ve.seq:0);(0,v.useEffect)(()=>{let e=ve;!e||!u||e.sessionId!==u||e.seq<=ye.current||(ye.current=e.seq,j.current=null,C(t=>({open:!0,query:e.query,currentId:null,focusSeq:t.focusSeq+1})),n({type:`chat_search_request_seen`,seq:e.seq}))},[ve,u,n]);let be=i?.providerId===w,xe=r?.hasSubagentItems===!0||i?.hasSubagents===!0||Object.keys(r?.agentActivity??{}).length>0,Se=(0,v.useMemo)(()=>{let e=new Map;if(!xe)return e;for(let t of RO(m??[]))e.set(t.agentId,t.name);return e},[m,xe]),we=(0,v.useRef)(Se);we.current=Se;let Te=(0,v.useRef)(r);Te.current=r;let Ee=(0,v.useCallback)(e=>{let t=Te.current,n=t?.index.get(e);return n!==void 0&&t?.items[n]?.kind===`tool`},[]),R=(0,v.useCallback)(e=>we.current.get(e)??null,[]),De=(0,v.useRef)(e.providers);De.current=e.providers;let Oe=(0,v.useCallback)(e=>Iu(e,De.current),[]),ke=wM(),Ae=(0,v.useCallback)((e,n=!1)=>{let r=[],i=null;for(let t of zj(Bj(e,Ee))){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=SM(o);t!==null&&t!==i&&(r.push((0,U.jsx)(EM,{iso:o,today:ke},`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,U.jsxs)(`div`,{[mj]:t.id,className:`flex items-end gap-2`,children:[(0,U.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,U.jsx)(Pk,{items:e.run,agentNameOf:R})}),(0,U.jsx)(TM,{iso:e.run[e.run.length-1].timestamp})]},`run:${t.id}`)}let r=e.item,i=(()=>{switch(r.kind){case`user`:return(0,U.jsx)(Gj,{item:r},r.id);case`assistant`:return(0,U.jsx)(Zj,{item:r},r.id);case`thinking`:return f?(0,U.jsx)(Dk,{item:r},r.id):null;case`tool`:return(0,U.jsx)(Ek,{node:e,renderChildren:Ae},r.id);case`result`:return(0,U.jsx)(tM,{item:r,hideCost:be},r.id);case`compact`:return(0,U.jsx)(nM,{item:r},r.id);case`permission`:return r.status===`pending`?null:(0,U.jsx)(Fk,{item:r,agentName:r.request.agentId?R(r.request.agentId):null,onDecide:e=>t.respondPermission(r.request.requestId,e)},r.id);case`system`:return(0,U.jsx)(aM,{item:r,modelNameOf:Oe},r.id);case`error`:return(0,U.jsx)(cM,{item:r},r.id)}})();if(i===null)return null;let a=r.kind===`user`&&Wj(r);return(0,U.jsxs)(`div`,{[mj]:r.id,...n&&a?{[Ij]:r.id}:{},className:H(`flex items-end gap-2`,r.id===ee&&`chat-search-current`),children:[(0,U.jsx)(`div`,{className:`min-w-0 flex-1`,children:i}),a?null:(0,U.jsx)(TM,{iso:r.timestamp})]},r.id)}},[t,f,be,ee,R,Ee,ke,Oe]),z=(0,v.useMemo)(()=>{if(ue===null||!m)return null;let e=m.find(e=>e.id===ue);if(!e||e.kind!==`user`)return null;let t=xm(e.text);return Rj(t&&t.reply!==``?t.reply:e.text)},[m,ue]);if(!u)return(0,U.jsx)(ig,{icon:(0,U.jsx)(K.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,U.jsxs)(q,{variant:`primary`,onClick:()=>t.newTab(),children:[(0,U.jsx)(K.Plus,{className:`w-4 h-4`}),` New chat`]})});let je=r?.init,Me=r?.status===`running`||r?.status===`waiting_permission`,Ne=mM(r),Pe=Ne===`answer`?`Waiting for your answer`:Ne===`approval`?`Waiting for your approval`:OM(r?.status,r?.statusText,e.prefs.autoAcceptPermissions);return(0,U.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[S.open?(0,U.jsx)(pj,{query:S.query,index:E,count:T.length,focusSeq:S.focusSeq,onQuery:A,onStep:M,onClose:k}):null,(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[z===null?null:(0,U.jsx)(`div`,{ref:fe,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,U.jsxs)(`button`,{type:`button`,onClick:he,title:`Go to this message`,"data-testid":`pinned-user-message`,"data-pinned-id":ue,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,U.jsx)(K.User,{className:`h-3 w-3 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:z})]})}),(0,U.jsx)(`div`,{ref:o,onScroll:me,onContextMenu:oe,onClick:L,className:`flex-1 overflow-y-auto px-3 py-3 sm:px-6`,"data-testid":`transcript`,children:(0,U.jsx)(fk.Provider,{value:N,children:(0,U.jsxs)(`div`,{className:`w-full`,children:[a&&a.projectDir?(0,U.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-faint`,children:[(0,U.jsx)(K.Folder,{className:`w-3 h-3`}),(0,U.jsx)(`span`,{className:`font-mono`,children:a.projectDir}),(0,U.jsx)(X,{tone:`accent`,children:`project attached`})]}):null,i||je?(0,U.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-faint`,children:[(0,U.jsx)(K.Folder,{className:`w-3 h-3`}),(0,U.jsx)(`span`,{className:`font-mono`,children:je?.cwd??i?.cwd}),je?.model??i?.model?(0,U.jsx)(X,{children:ks(je?.model??i?.model??``)}):null,i?.providerId?(0,U.jsx)(X,{tone:`accent`,children:i.providerId}):null,(0,U.jsx)(X,{children:je?.permissionMode??i?.permissionMode??`default`}),je?(0,U.jsxs)(`span`,{children:[je.tools.length,` tools · engine `,je.claudeCodeVersion]}):null,i?.mirrored?(0,U.jsx)(X,{tone:`think`,children:`mirrored`}):null]}):null,x.hasMore?(0,U.jsx)(`div`,{className:`mb-2 flex items-center justify-center`,"data-testid":`window-more`,children:(0,U.jsxs)(q,{size:`sm`,onClick:le,children:[(0,U.jsx)(K.ArrowDown,{className:`w-3 h-3 rotate-180`}),` Load `,100,` `,`older lines (`,x.hiddenAbove,` hidden)`]})}):null,d&&(!r||r.items.length===0)?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-sm text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{}),` Loading transcript…`]}):null,!d&&(r?.items.length??0)===0?a?(0,U.jsx)(DM,{hasProject:a.projectDir!==null}):r?(0,U.jsx)(`div`,{className:`py-10 text-center text-sm text-fg-muted`,children:`Send a message to start this session.`}):null:null,Ae(x.items,!0),Me?(0,U.jsx)(dM,{label:Pe,lastFrameAt:hM(r)}):null,(0,U.jsx)(`div`,{className:`h-2`})]})})}),(0,U.jsx)(lg,{open:te!==null,at:te?.at??{x:0,y:0},items:ce,onClose:ae,label:`Chat`,testId:`chat-context-menu`})]}),(0,U.jsx)(Hj,{items:h,onCancel:e=>{e.requestId&&t.cancelQueued(e.requestId)},onSendNow:e=>e.requestId?t.sendQueuedNow(e.requestId):Promise.resolve(null)}),S.open?null:(0,U.jsx)(J,{label:`Find in this chat (Ctrl+F)`,onClick:O,className:`absolute right-5 top-2 border border-border bg-surface shadow-md`,"data-testid":`chat-search-open`,children:(0,U.jsx)(K.Search,{className:`w-3.5 h-3.5`})}),s?null:(0,U.jsxs)(`button`,{type:`button`,onClick:ge,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,U.jsx)(K.ArrowDown,{className:`mr-1 inline w-3 h-3`}),` Jump to latest`]})]})}function FM(e){return(e/1048576).toFixed(e>=104857600?0:1)+` MB`}function IM(e){switch(e.phase){case`download`:return e.totalBytes?`Downloading the coding engine (v${e.version}) — ${FM(e.receivedBytes)} of ${FM(e.totalBytes)}…`:`Downloading the coding engine (v${e.version}) — ${FM(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 LM(){let{state:e}=W(),t=e.engineDownload;if(!t)return null;let n=IM(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,U.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,U.jsx)(`div`,{children:n}),i===null?null:(0,U.jsx)(`div`,{className:`mt-1 h-1 w-full overflow-hidden rounded bg-fg/10`,children:(0,U.jsx)(`div`,{className:`h-full bg-accent`,style:{width:i+`%`}})})]})}function RM({open:e,onClose:t}){let{state:n,actions:r}=W();(0,v.useEffect)(()=>{e&&r.runDoctor()},[e,r]);let i=n.doctor,a=i?.filter(e=>!e.ok).length??0;return(0,U.jsxs)(tg,{open:e,title:`Doctor`,onClose:t,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(q,{onClick:()=>void r.runDoctor(),children:[(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`}),` Run again`]}),(0,U.jsx)(q,{variant:`primary`,onClick:t,children:`Close`})]}),children:[n.info?(0,U.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,U.jsxs)(`div`,{children:[`Host: `,n.info.hostName,` (`,n.info.platform,`/`,n.info.arch,`)`]}),(0,U.jsxs)(`div`,{children:[`App: `,ah(n.info.appVersion,n.info.cliChannel),n.info.cliChannel&&n.info.cliChannel!==`stable`?` — ${n.info.cliChannel} channel (updates stay within it)`:``]}),(0,U.jsxs)(`div`,{className:`truncate`,title:n.info.engine.binaryPath,children:[`Engine: `,n.info.engine.version??`unknown`,` — `,n.info.engine.binaryPath]}),(0,U.jsxs)(`div`,{className:`truncate`,title:n.info.engine.configDir,children:[`Isolated config dir: `,n.info.engine.configDir]}),(0,U.jsxs)(`div`,{children:[`Listening: `,n.info.addresses.join(`, `),`:`,n.info.port]})]}):null,i===null?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-sm text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{}),` Running checks…`]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`mb-2 text-sm`,children:a===0?(0,U.jsxs)(`span`,{className:`text-ok`,children:[`All `,i.length,` checks passed.`]}):(0,U.jsxs)(`span`,{className:`text-danger`,children:[a,` of `,i.length,` checks need attention.`]})}),(0,U.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:i.map(e=>(0,U.jsxs)(`li`,{className:`flex items-start gap-2 px-3 py-2 text-sm`,children:[e.ok?(0,U.jsx)(K.Check,{className:`mt-0.5 text-ok`}):(0,U.jsx)(K.Alert,{className:`mt-0.5 text-danger`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-medium`,children:e.label}),(0,U.jsx)(`div`,{className:`pre-wrap text-xs text-fg-muted`,children:e.detail}),!e.ok&&e.fix?(0,U.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 zM({open:e,onClose:t}){let{state:n,actions:r}=W(),i=zh(),a=Bh(),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,U.jsx)(tg,{open:e,title:`Use a project folder`,onClose:t,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:t,children:b?`Not now`:`Close`}),b?(0,U.jsx)(q,{variant:`primary`,busy:d,onClick:()=>void _(),"data-testid":`project-switch`,children:`Switch to this project`}):null]}),children:y?(0,U.jsxs)(VM,{tone:`warn`,testId:`project-remote`,children:[`This chat runs on `,(0,U.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,U.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),h(s)},children:[(0,U.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,U.jsxs)(`p`,{children:[(0,U.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,U.jsx)(`span`,{className:`font-mono`,children:` CLAUDE.md`}),` and`,` `,(0,U.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,U.jsxs)(`p`,{children:[(0,U.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,U.jsxs)(`p`,{children:[(0,U.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,U.jsx)(`span`,{className:`font-mono`,children:`CLAUDE.md`}),` or a`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:`.claude/`}),` folder, a`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:`.git`}),` repo, or a`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:`package.json`}),`.`]}),(0,U.jsxs)(`p`,{children:[(0,U.jsx)(`strong`,{className:`text-fg`,children:`Do not set:`}),` your whole home directory, a drive root (`,(0,U.jsx)(`span`,{className:`font-mono`,children:`C:`}),`),`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:`Desktop`}),`,`,(0,U.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,U.jsxs)(`p`,{children:[`A folder buys `,(0,U.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,U.jsx)($h,{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,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`input`,{className:Y,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,U.jsxs)(q,{onClick:()=>void g(),children:[(0,U.jsx)(K.Folder,{className:`w-4 h-4`}),` Browse`]}):null,(0,U.jsx)(q,{busy:l,disabled:s.trim().length===0,onClick:()=>void h(s),"data-testid":`project-check`,children:`Check`})]})}),p?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(BM,{result:p,restarts:i!==null}),o===null?(0,U.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,U.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 BM({result:e,restarts:t}){return!e.exists||!e.isDirectory?(0,U.jsxs)(VM,{tone:`danger`,testId:`project-verdict`,children:[(0,U.jsx)(`strong`,{className:`font-mono`,children:e.dir}),` is not a folder on this PC.`]}):e.anchorable?e.looksLikeProject?(0,U.jsxs)(VM,{tone:`accent`,testId:`project-verdict`,children:[(0,U.jsxs)(`div`,{className:`font-medium`,children:[`Switching this chat to `,e.dir,` loads:`]}),(0,U.jsxs)(`ul`,{className:`mt-1 list-disc space-y-0.5 pl-4`,children:[(0,U.jsxs)(`li`,{children:[`its `,(0,U.jsx)(`code`,{children:e.hasClaudeMd?`CLAUDE.md`:`CLAUDE.md (none at the root)`}),` and the ones above it`]}),(0,U.jsxs)(`li`,{children:[(0,U.jsx)(`code`,{children:`.claude/settings.json`}),` and `,(0,U.jsx)(`code`,{children:`settings.local.json`}),e.hasClaudeDir?``:` (none yet)`]}),(0,U.jsx)(`li`,{children:`that project's skills, sub-agents, slash commands and hooks`}),(0,U.jsx)(`li`,{children:`silence: file operations inside it stop raising a permission card`})]}),(0,U.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,U.jsxs)(VM,{tone:`accent`,testId:`project-verdict`,children:[(0,U.jsxs)(`div`,{className:`font-medium`,children:[`Switching this chat to `,e.dir,`:`]}),(0,U.jsxs)(`ul`,{className:`mt-1 list-disc space-y-0.5 pl-4`,children:[(0,U.jsxs)(`li`,{children:[`it has no `,(0,U.jsx)(`code`,{children:`CLAUDE.md`}),` and no `,(0,U.jsx)(`code`,{children:`.claude/`}),` folder yet, so nothing is loaded from it — add them later and the next restart picks them up`]}),(0,U.jsx)(`li`,{children:`silence: file operations inside it stop raising a permission card`})]}),(0,U.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,U.jsxs)(VM,{tone:`danger`,testId:`project-verdict`,children:[`OonaCode will not use `,(0,U.jsx)(`strong`,{className:`font-mono`,children:e.dir}),` as a project:`,` `,e.reason??`it is not a usable project directory`,`.`]})}function VM({tone:e,testId:t,children:n}){return(0,U.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 HM=(e,t)=>`${e}::${t}`;function UM(e){let t=e.indexOf(`::`);return t<=0||t===e.length-2?null:{providerId:e.slice(0,t),model:e.slice(t+2)}}function WM(e){let t=e?.chatDefaults??{};return{name:e?.name??``,goal:e?.goal??``,instructions:e?.instructions??``,repositories:(e?.repositories??[]).join(`
|
|
141
|
-
`),model:t.providerId&&t.model?HM(t.providerId,t.model):``,effort:t.effort??``,cwd:t.cwd??``,memoryEnabled:e?.memoryEnabled===!0,memory:e?.memory??``,tasksEnabled:e?.tasksEnabled!==!1,minInterval:String(e?.minRoutineIntervalMinutes??15)}}var GM=e=>e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e.length>0);function KM(e){let t=UM(e.model);return!t&&!e.effort&&!e.cwd.trim()?null:{providerId:t?.providerId??null,model:t?.model??null,effort:e.effort||null,cwd:e.cwd.trim()||null}}function qM(e){if(!e.name.trim())return`A project needs a name.`;let t=Number(e.minInterval);return!Number.isInteger(t)||t<Ws.minIntervalFloor||t>Ws.minIntervalCeiling?`The minimum interval is a whole number of minutes, ${Ws.minIntervalFloor}–${Ws.minIntervalCeiling}.`:GM(e.repositories).length>Ws.repositories?`At most ${Ws.repositories} repositories.`:null}var JM=(e,t)=>(e?.providerId??null)===(t?.providerId??null)&&(e?.model??null)===(t?.model??null)&&(e?.effort??null)===(t?.effort??null)&&(e?.cwd??null)===(t?.cwd??null);function YM(e,t){let n=WM(t),r={};e.name.trim()!==t.name&&(r.name=e.name.trim()),e.goal!==n.goal&&(r.goal=e.goal),e.instructions!==t.instructions&&(r.instructions=e.instructions);let i=GM(e.repositories);i.join(`
|
|
142
|
-
`)!==(t.repositories??[]).join(`
|
|
143
|
-
`)&&(r.repositories=i);let a=KM(e);JM(t.chatDefaults,a)||(r.chatDefaults=a),e.memoryEnabled!==n.memoryEnabled&&(r.memoryEnabled=e.memoryEnabled),e.memory!==n.memory&&(r.memory=e.memory),e.tasksEnabled!==n.tasksEnabled&&(r.tasksEnabled=e.tasksEnabled);let o=Number(e.minInterval);return String(o)!==n.minInterval&&Number.isInteger(o)&&(r.minRoutineIntervalMinutes=o),r}function XM(e){let t=KM(e),n=GM(e.repositories),r=Number(e.minInterval);return{name:e.name.trim(),instructions:e.instructions,...e.goal.trim()?{goal:e.goal}:{},...n.length>0?{repositories:n}:{},...t?{chatDefaults:t}:{},...e.memoryEnabled?{memoryEnabled:!0}:{},...e.memory?{memory:e.memory}:{},...e.tasksEnabled?{}:{tasksEnabled:!1},...Number.isInteger(r)&&r!==15?{minRoutineIntervalMinutes:r}:{}}}function ZM(e,t){if(t===null){let t=WM(null);return Object.keys(t).some(n=>e[n]!==t[n])}return Object.keys(YM(e,t)).length>0}function QM(e){let t=typeof window<`u`?window.oonacode:void 0;t?.openExternal?t.openExternal(e):window.open(e,`_blank`,`noopener,noreferrer`)}function $M({open:e,onClose:t}){let{state:n,actions:r}=W(),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,j=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`?QM(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 M=m?.command?`${m.command.file} ${m.command.args.join(` `)}`:null,N=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`)}},P=async()=>{if(o.trim()){l(!0);try{await r.submitClaudeLoginCode(o)&&s(``)}finally{l(!1)}}},F=A?(0,U.jsxs)(`div`,{className:`flex w-full flex-wrap items-center justify-end gap-2`,children:[(0,U.jsx)(q,{onClick:t,"data-testid":`claude-login-close`,children:`Close`}),(0,U.jsxs)(q,{onClick:()=>r.openClaudeLogin(`copy`),"data-testid":`claude-login-copy-mode`,children:[(0,U.jsx)(K.Copy,{className:`w-4 h-4`}),` Copy link`]}),(0,U.jsxs)(q,{variant:`primary`,onClick:()=>r.openClaudeLogin(`open`),"data-testid":`claude-login-open-mode`,children:[(0,U.jsx)(K.LogIn,{className:`w-4 h-4`}),` Sign in with my subscription`]})]}):j||m?(0,U.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[O?null:(0,U.jsx)(q,{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,U.jsx)(q,{variant:`primary`,onClick:t,"data-testid":`claude-login-close`,children:`Close`})]}):(0,U.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[(0,U.jsx)(q,{onClick:t,children:`Keep in background`}),(0,U.jsx)(q,{variant:`danger`,onClick:()=>void r.cancelClaudeLogin(),"data-testid":`claude-login-cancel`,children:`Cancel sign-in`})]});return(0,U.jsx)(tg,{open:e,title:`Connect your Claude subscription`,onClose:t,footer:F,children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.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,U.jsxs)(`div`,{className:`space-y-2 text-sm`,"data-testid":`claude-login-choose`,children:[(0,U.jsxs)(`p`,{children:[(0,U.jsx)(`span`,{className:`font-medium`,children:`Sign in with my subscription`}),` opens the Claude sign-in page in this PC's browser.`]}),(0,U.jsxs)(`p`,{children:[(0,U.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,U.jsx)(`p`,{className:`text-fg-faint`,children:`Either way this window connects by itself when you finish signing in.`})]}):null,A?null:(0,U.jsx)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-xs`,"data-testid":`claude-login-wait`,children:D?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:a===`copy`?`Sign-in link (copied):`:`Sign-in link (opened in your browser):`}),(0,U.jsx)(`div`,{className:`break-all font-mono select-all`,"data-testid":`claude-login-url`,children:D}),(0,U.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,U.jsxs)(q,{size:`sm`,onClick:()=>void N(),"data-testid":`claude-login-copy`,children:[(0,U.jsx)(K.Copy,{className:`w-3 h-3`}),` `,u?`Copied`:`Copy link`]}),(0,U.jsx)(q,{size:`sm`,onClick:()=>QM(D),children:`Open in browser`})]})]}):O?null:(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{className:`w-4 h-4 animate-spin`}),` Preparing your sign-in link…`]})}),(0,U.jsx)(`div`,{className:H(`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,U.jsx)(`div`,{className:`text-xs`,children:f?(0,U.jsx)($h,{label:`The page showed a code instead? Paste it here`,children:(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`input`,{className:Y,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`&&P()}}),(0,U.jsx)(q,{variant:`primary`,busy:c,disabled:!o.trim(),onClick:()=>void P(),"data-testid":`claude-login-submit`,children:`Continue`})]})}):(0,U.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,M?(0,U.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-2 p-3 text-xs`,children:[(0,U.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,U.jsx)($D,{code:M,language:n.info?.platform===`win32`?`powershell`:`bash`})]}):null]})})}function eN({compact:e=!1}){let{actions:t}=W(),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),u=(0,v.useRef)(null),d=(0,v.useCallback)(async()=>{let e=await t.githubLink(`get`);e&&r(e)},[t]);(0,v.useEffect)(()=>{d()},[d]);let f=n?.login.phase===`awaiting_approval`;(0,v.useEffect)(()=>{if(!f)return;let e=setInterval(()=>void d(),2e3);return()=>clearInterval(e)},[f,d]);let p=f?n?.login.verificationUriComplete??n?.login.verificationUri??null:null;if((0,v.useEffect)(()=>{let e=n?.login.id;!f||!p||!e||u.current===e||(u.current=e,QM(p))},[f,p,n?.login.id]),!n)return null;let m=async e=>{a(!0);try{let n=await t.githubLink(e);n&&r(n)}finally{a(!1),s(!1)}},h=e=>{navigator.clipboard?.writeText(e).then(()=>{l(!0),setTimeout(()=>l(!1),2e3)}).catch(()=>t.toast(`error`,`Could not copy — select it and copy by hand`))},g=n.account,_=n.login.phase===`failed`||n.login.phase===`expired`;return(0,U.jsxs)(`div`,{className:`space-y-2 rounded-md border border-border bg-surface-2/40 p-3 text-sm`,"data-testid":`github-link`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(K.GitBranch,{className:`h-4 w-4 shrink-0`}),g?(0,U.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,"data-testid":`github-linked`,children:[`GitHub linked as `,(0,U.jsxs)(`b`,{children:[`@`,g.login]}),g.name?(0,U.jsxs)(`span`,{className:`text-fg-muted`,children:[` · `,g.name]}):null]}):(0,U.jsx)(`span`,{className:`min-w-0 flex-1`,children:`GitHub not linked`}),g?(0,U.jsx)(q,{size:`sm`,variant:o?`danger`:`ghost`,disabled:i,onClick:()=>o?void m(`unlink`):s(!0),"data-testid":`github-unlink`,children:o?`Unlink — sure?`:`Unlink`}):n.available&&!f?(0,U.jsx)(q,{size:`sm`,variant:`primary`,disabled:i,onClick:()=>void m(`start`),"data-testid":`github-link-start`,children:`Link GitHub`}):null]}),f?(0,U.jsxs)(`div`,{className:`space-y-2`,"data-testid":`github-link-pending`,children:[(0,U.jsxs)(`p`,{className:`text-fg-muted`,children:[`GitHub’s page opened in your browser. If it did not, open`,` `,(0,U.jsx)(`a`,{className:`underline`,href:p??`#`,onClick:e=>{e.preventDefault(),p&&QM(p)},children:p}),` `,`on any device and enter:`]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`code`,{className:`rounded border border-border px-2 py-1 font-mono text-base`,"data-testid":`github-user-code`,children:n.login.userCode}),(0,U.jsxs)(q,{size:`sm`,onClick:()=>n.login.userCode&&h(n.login.userCode),children:[(0,U.jsx)(K.Copy,{className:`h-3.5 w-3.5`}),` `,c?`Copied`:`Copy`]}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void m(`cancel`),children:`Cancel`})]}),(0,U.jsx)(`p`,{className:`text-xs text-fg-faint`,children:`Waiting for GitHub…`})]}):null,_?(0,U.jsxs)(`p`,{className:`text-xs text-danger`,"data-testid":`github-link-ended`,children:[n.login.message??`The link did not complete.`,` Press Link GitHub to try again.`]}):null,!e||!g?(0,U.jsx)(`p`,{className:`text-xs text-fg-faint`,children:g?`The agent’s git and gh use this account on every PC of yours, for github.com only. The token stays in your encrypted vault and never reaches the OonaCode server.`:n.available?`Public repositories need nothing. For private ones, link GitHub: the agent’s git and gh then sign in as you on every PC of yours. Without it, the agent uses whatever git sign-in this PC already has.`:n.unavailableReason??`Link GitHub is not available.`}):null]})}var tN=`__new__`;function nN({title:e,children:t}){return(0,U.jsxs)(`section`,{className:`space-y-2 border-t border-border pt-3 first:border-t-0 first:pt-0`,children:[(0,U.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:e}),t]})}function rN({open:e,startNew:t=!1,selectId:n=null,onClose:r}){let{state:i,actions:a}=W(),o=i.vaultProjects,s=i.info&&i.info.platform!==`win32`?`${i.info.homeDir??`/home/you`}/src/my-app`:`C:\\src\\my-app`,[c,l]=(0,v.useState)(tN),[u,d]=(0,v.useState)(WM(null)),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(!1),g=(e,t)=>d(n=>({...n,[e]:t}));(0,v.useEffect)(()=>{if(!e)return;a.refreshVaultProjects();let r=n&&o.some(e=>e.id===n)?n:null;l(t?tN:r??o[0]?.id??tN),h(!1)},[e]);let _=c===tN?null:o.find(e=>e.id===c)??null;(0,v.useEffect)(()=>{d(WM(_)),h(!1)},[_?.id,_?.updatedAt]);let y=(0,v.useMemo)(()=>i.providers.filter(e=>e.configured).flatMap(e=>e.definition.models.map(t=>({key:HM(e.definition.id,t.id),label:`${e.definition.displayName} — ${t.displayName||t.id}`,option:t}))),[i.providers]),b=y.find(e=>e.key===u.model)??null,x=u.model&&!b?UM(u.model):null,S=b?he(b.option):[],C=ZM(u,_),w=C?qM(u):null;async function T(){if(!qM(u)){p(!0);try{if(_===null){let e=await a.createVaultProject(XM(u));e&&l(e.id)}else await a.updateVaultProject(_.id,YM(u,_))}finally{p(!1)}}}async function E(){if(_){if(!m){h(!0);return}p(!0);try{await a.deleteVaultProject(_.id)&&l(tN)}finally{p(!1)}}}async function D(){let e=await window.oonacode?.pickDirectory?.({title:`The folder new chats in this project run in`,...u.cwd?{defaultPath:u.cwd}:{}});e&&g(`cwd`,e)}let k=e=>i.sessions.filter(t=>t.projectId===e).length,A=e=>e.sessionCount??k(e.id),j=_?A(_):0;return(0,U.jsx)(tg,{open:e,title:`Projects`,onClose:r,wide:!0,footer:(0,U.jsxs)(U.Fragment,{children:[_?j>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,"data-testid":`project-delete-reason`,children:O(j)}),(0,U.jsx)(q,{variant:`ghost`,disabled:!0,"data-testid":`project-delete`,children:`Delete project`})]}):(0,U.jsx)(q,{variant:m?`danger`:`ghost`,onClick:E,disabled:f,"data-testid":`project-delete`,children:m?`Delete ${_.name}?`:`Delete project`}):null,(0,U.jsx)(`span`,{className:`flex-1`}),w?(0,U.jsx)(`span`,{className:`text-xs text-danger`,"data-testid":`project-problem`,children:w}):null,(0,U.jsx)(q,{variant:`ghost`,onClick:r,children:`Close`}),(0,U.jsx)(q,{variant:`primary`,onClick:T,disabled:f||!C||w!==null,"data-testid":`project-save`,children:_===null?`Create project`:`Save`})]}),children:(0,U.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-[180px_1fr]`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`projects-list`,children:[(0,U.jsxs)(`button`,{type:`button`,className:H(`flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,c===tN?`bg-accent-soft text-fg`:`hover:bg-surface-2 text-fg-muted`),onClick:()=>l(tN),"data-testid":`project-new`,children:[(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),` New project`]}),o.map(e=>(0,U.jsxs)(`button`,{type:`button`,className:H(`flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm`,c===e.id?`bg-accent-soft text-fg`:`hover:bg-surface-2 text-fg`),onClick:()=>l(e.id),"data-testid":`project-item-${e.id}`,children:[(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:A(e)})]},e.id))]}),(0,U.jsxs)(`div`,{className:`max-h-[65vh] space-y-4 overflow-y-auto pr-1`,children:[(0,U.jsxs)(nN,{title:`Project`,children:[(0,U.jsx)($h,{label:`Name`,children:(0,U.jsx)(`input`,{className:Y,value:u.name,onChange:e=>g(`name`,e.target.value),placeholder:`My app`,maxLength:Ws.name,"data-testid":`project-name`})}),(0,U.jsx)($h,{label:`Goal (optional)`,hint:`What the project is for, in a line or two.`,children:(0,U.jsx)(`input`,{className:Y,value:u.goal,onChange:e=>g(`goal`,e.target.value),placeholder:`A desktop app that…`,maxLength:Ws.goal,"data-testid":`project-goal`})}),(0,U.jsx)($h,{label:`Instructions for the agent (optional)`,children:(0,U.jsx)(`textarea`,{className:H(Y,`h-40 font-mono text-xs`),value:u.instructions,onChange:e=>g(`instructions`,e.target.value),placeholder:`Standing rules for every chat in this project — e.g.
|
|
144
|
-
- push to the feature branch, never to main
|
|
145
|
-
- run the tests before saying a change is done
|
|
146
|
-
- use the browser on port 9170 for anything on the web`,maxLength:Ws.instructions,"data-testid":`project-instructions`})})]}),(0,U.jsxs)(nN,{title:`Repositories`,children:[(0,U.jsx)($h,{label:`One per line (optional)`,hint:`Every chat in the project is told about them.`,children:(0,U.jsx)(`textarea`,{className:H(Y,`h-16 font-mono text-xs`),value:u.repositories,onChange:e=>g(`repositories`,e.target.value),placeholder:`https://github.com/you/app`,"data-testid":`project-repositories`})}),(0,U.jsx)(eN,{compact:!0})]}),(0,U.jsxs)(nN,{title:`New chats`,children:[(0,U.jsx)($h,{label:`Model`,hint:`What a new chat in this project starts on.`,children:(0,U.jsxs)(`select`,{className:Y,value:u.model,onChange:e=>{g(`model`,e.target.value),g(`effort`,``)},"data-testid":`project-model`,children:[(0,U.jsx)(`option`,{value:``,children:`Whatever a new chat would start on`}),x?(0,U.jsxs)(`option`,{value:u.model,children:[x.model,` (not on this PC)`]}):null,y.map(e=>(0,U.jsx)(`option`,{value:e.key,children:e.label},e.key))]})}),S.length>0?(0,U.jsx)($h,{label:`Effort`,children:(0,U.jsxs)(`select`,{className:Y,value:u.effort,onChange:e=>g(`effort`,e.target.value),"data-testid":`project-effort`,children:[(0,U.jsx)(`option`,{value:``,children:`Default`}),S.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))]})}):null,(0,U.jsx)($h,{label:`Folder`,hint:`Where a new chat runs; left empty, each chat gets its own.`,children:(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`input`,{className:H(Y,`flex-1 font-mono text-xs`),value:u.cwd,onChange:e=>g(`cwd`,e.target.value),placeholder:s,"data-testid":`project-cwd`}),window.oonacode?.pickDirectory?(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void D(),children:`Choose…`}):null]})})]}),(0,U.jsxs)(nN,{title:`Memory`,children:[(0,U.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:u.memoryEnabled,onChange:e=>g(`memoryEnabled`,e.target.checked),"data-testid":`project-memory-enabled`}),(0,U.jsx)(`span`,{children:`Keep a project memory — notes every chat of the project reads at its start, and the agent keeps up to date.`})]}),u.memoryEnabled?(0,U.jsx)(`textarea`,{className:H(Y,`h-28 font-mono text-xs`),value:u.memory,onChange:e=>g(`memory`,e.target.value),placeholder:`Nothing noted yet.`,maxLength:Ws.memory,"data-testid":`project-memory`}):null]}),(0,U.jsxs)(nN,{title:`Scheduled tasks`,children:[(0,U.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:u.tasksEnabled,onChange:e=>g(`tasksEnabled`,e.target.checked),"data-testid":`project-tasks-enabled`}),(0,U.jsx)(`span`,{children:`The agent may schedule work in this project's chats — once, or on a repeat — with OonaCode's scheduler on this PC.`})]}),u.tasksEnabled?(0,U.jsx)($h,{label:`Shortest repeat, in minutes`,children:(0,U.jsx)(`input`,{className:H(Y,`w-28`),inputMode:`numeric`,value:u.minInterval,onChange:e=>g(`minInterval`,e.target.value),"data-testid":`project-min-interval`})}):null,_?(0,U.jsx)(GO,{projectId:_.id,showChat:!0}):null]}),(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Saved settings reach the project's chats at their next message. Projects live in your vault: only your own devices can read them.`})]})]})})}var iN=`(min-width: 768px)`;function aN(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(iN).matches}function oN(){let[e,t]=(0,v.useState)(aN);return(0,v.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(iN),n=()=>t(e.matches);return n(),e.addEventListener?.(`change`,n),()=>e.removeEventListener?.(`change`,n)},[]),e}function sN(e){try{return!!e?.matches(`:hover`)}catch{return!1}}function cN(e){if(typeof document>`u`)return!1;if(document.querySelector(`[role="menu"], [role="dialog"]`))return!0;let t=document.activeElement;return!!(e&&t&&e.contains(t)&&t.tagName===`INPUT`)}function lN({hidden:e,children:t}){let{state:n,actions:r}=W(),i=n.prefs.sidebarPinned,a=n.ui.sidebarOpen,[o,s]=(0,v.useState)(null),c=o??n.prefs.sidebarWidth,[l,u]=(0,v.useState)(!1),d=oN(),f=(0,v.useRef)(null),p=(0,v.useRef)(null),m=(0,v.useCallback)(()=>{p.current!==null&&(clearTimeout(p.current),p.current=null)},[]),h=(0,v.useCallback)(()=>{m(),p.current=setTimeout(function e(){if(cN(f.current)){p.current=setTimeout(e,350);return}p.current=null,!sN(f.current)&&u(!1)},350)},[m]);(0,v.useEffect)(()=>m,[m]),(0,v.useEffect)(()=>{u(!1),m()},[i,m]),(0,v.useEffect)(()=>{if(e)return;let t=e=>{if(!(!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey)&&(e.key===`k`||e.key===`K`)){if(aN()){if(i)return;u(!0),h()}else a||r.setSidebar(!0)}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,i,a,h,r]);let g=e=>{e.preventDefault();let t=e.clientX,i=c,a=i,o=e=>{a=pc(i+(e.clientX-t)),s(a)},l=()=>{window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,l),document.body.style.cursor=``,document.body.style.userSelect=``,s(null),a!==n.prefs.sidebarWidth&&r.savePrefs({sidebarWidth:a})};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,l)},_=i||l;return(0,U.jsxs)(U.Fragment,{children:[!i&&!l&&!e?(0,U.jsx)(`div`,{className:`absolute inset-y-0 left-0 z-40 hidden w-2 md:block`,onMouseEnter:()=>{u(!0),h()},"aria-hidden":!0,"data-testid":`sidebar-hover-edge`}):null,(0,U.jsxs)(`aside`,{ref:f,"data-chrome":`sidebar`,hidden:e,inert:!e&&(d?!_:!a),"data-testid":`sidebar-frame`,"data-state":i?`docked`:l?`peek`:`hidden`,style:{"--sidebar-w":`${c}px`},onMouseEnter:i?void 0:m,onMouseLeave:i?void 0:h,className:H(`absolute inset-y-0 left-0 z-30 w-72 max-w-[85vw] border-r border-border bg-surface transition-transform md:w-[var(--sidebar-w)] md:max-w-[70vw]`,a?`translate-x-0`:`-translate-x-full`,i?`md:relative md:z-auto md:translate-x-0`:H(`md:z-40 md:shadow-2xl`,_?`md:translate-x-0`:`md:-translate-x-full`)),children:[t,(0,U.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize the session list`,title:`Drag to resize · double-click for the default width`,className:`absolute inset-y-0 -right-1 z-10 hidden w-2 cursor-col-resize hover:bg-accent/30 md:block`,onPointerDown:g,onDoubleClick:()=>void r.savePrefs({sidebarWidth:288}),"data-testid":`sidebar-resize`})]})]})}function uN({open:e,onClose:t}){return(0,U.jsx)(tg,{open:e,title:`Export my chats`,onClose:t,children:(0,U.jsx)(dN,{onDone:t})})}function dN({onDone:e}){let{api:t,state:n}=W(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(0),p=n.sessionsTotal||n.sessions.length;(0,v.useEffect)(()=>{if(!a){f(0);return}let e=Date.now(),t=setInterval(()=>f(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[a]);let m=async()=>{if(!t.exportSessionsArchive){c(`this PC is running an older OonaCode that cannot export chats`);return}o(!0),c(null);try{let n=await t.exportSessionsArchive(r),a=URL.createObjectURL(n),o=document.createElement(`a`);o.href=a,o.download=`oonacode-chats-${new Date().toISOString().slice(0,10)}.zip`,o.click(),URL.revokeObjectURL(a),i(``),u(!1),e()}catch(e){c(e instanceof Error?e.message:`the export failed`)}finally{o(!1)}};return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(tg,{open:a,title:`Exporting your chats`,onClose:()=>void 0,children:(0,U.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,U.jsx)(K.Spinner,{className:`mt-0.5 w-5 h-5 shrink-0 text-accent`}),(0,U.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[(0,U.jsxs)(`div`,{className:`font-medium`,children:[`Packing`,` `,p>0?`${p} chat${p===1?``:`s`}`:`your chats`,`…`]}),(0,U.jsxs)(`div`,{className:`mt-1 tabular text-fg-muted`,children:[Math.floor(d/60),`:`,String(d%60).padStart(2,`0`),` elapsed`]}),(0,U.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,U.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[`One zip with a plain `,(0,U.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,U.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.`}),l?(0,U.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`input`,{type:`password`,autoFocus:!0,className:Y+` max-w-[16rem]`,placeholder:`Account password`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&r&&m()},"data-testid":`export-chats-password`}),(0,U.jsx)(q,{onClick:()=>void m(),disabled:a||!r,children:a?`Exporting…`:`Export`}),(0,U.jsx)(q,{variant:`ghost`,onClick:()=>{u(!1),i(``),c(null)},children:`Cancel`})]}):(0,U.jsx)(q,{className:`mt-2`,onClick:()=>u(!0),"data-testid":`export-chats`,children:`Export chats…`}),s?(0,U.jsx)(`div`,{className:`mt-2 text-xs text-danger`,children:s}):null]})}var fN=70,pN=96,mN=170,hN=56;function gN(e,t=22){let n=e.trim().replace(/\s+/g,` `);return n.length<=t?n:`${n.slice(0,Math.max(1,t-1)).trimEnd()}…`}var _N={working:3,idle:2,asleep:1,missing:0},vN=Math.PI*2,yN=e=>(e%vN+vN)%vN,bN=e=>Math.round(e*100)/100;function xN(e){let t=0,n=0;for(let r of e)t+=Math.cos(r),n+=Math.sin(r);return Math.hypot(t,n)<1e-9?null:Math.atan2(n,t)}function SN(e,t=!1){return e.filter(e=>t||e.status!==`closed`).filter(e=>e.members.length>0).sort((e,t)=>e.createdAt===t.createdAt?e.id<t.id?-1:+(e.id>t.id):e.createdAt<t.createdAt?-1:1)}function CN(e,t={}){let n=t.now??Date.now(),r=SN(e,t.showClosed??!1),i=t.showClosed?0:e.filter(e=>e.status===`closed`).length,a=r.length,o=a<=1?0:Math.max(72,a*pN/vN),s=e=>-Math.PI/2+vN*e/Math.max(1,a),c=new Map;r.forEach((e,t)=>{for(let n of e.members){let r=n.leftAt===null,i=c.get(n.sessionId);i?(r&&!i.titleFromCurrent&&n.title&&(i.title=n.title,i.titleFromCurrent=!0),_N[n.state]>_N[i.state]&&(i.state=n.state)):(i={sessionId:n.sessionId,hostId:n.hostId,title:n.title,titleFromCurrent:r,state:n.state,hubs:[],conversationIds:[],anyCurrent:!1},c.set(n.sessionId,i)),i.conversationIds.includes(e.id)||(i.hubs.push(t),i.conversationIds.push(e.id)),r&&(i.anyCurrent=!0)}});let l=c.size,u=Math.max(o+120,l*fN/vN,110),d=[...c.values()].map(e=>({acc:e,pref:yN((a<=1?0:xN(e.hubs.map(s))??s(e.hubs[0]))+Math.PI/2)})).sort((e,t)=>Math.abs(e.pref-t.pref)>1e-9?e.pref-t.pref:e.acc.sessionId<t.acc.sessionId?-1:+(e.acc.sessionId>t.acc.sessionId)),f=vN/Math.max(1,l),p=(a<=1?null:xN(d.map((e,t)=>e.pref-t*f)))??0,m=bN(2*(u+mN)),h=bN(2*(u+hN)),g=m/2,_=h/2,v=r.map((e,t)=>{let r=s(t),i=e.members.filter(e=>e.leftAt===null).length,a=Date.parse(e.lastActivityAt),c=Ll(e);return{id:e.id,x:bN(g+o*Math.cos(r)),y:bN(_+o*Math.sin(r)),name:c,label:gN(c),status:e.status,waiting:e.waiting,members:i,messageCount:e.messageCount,recent:e.status!==`closed`&&Number.isFinite(a)&&n-a>=-5e3&&n-a<=6e4}}),y=d.map(({acc:e},t)=>{let n=-Math.PI/2+p+t*f,r=g+u*Math.cos(n),i=_+u*Math.sin(n),a=Math.cos(n),o=Math.sin(n),s=a>.3?`start`:a<-.3?`end`:`middle`,c=s===`middle`?r:r+a*15,l=s===`middle`?o<0?i-15:i+15+8:i+o*15+4;return{sessionId:e.sessionId,hostId:e.hostId,x:bN(r),y:bN(i),title:e.title,label:gN(e.title||`a chat`),state:e.state,conversationIds:e.conversationIds,left:!e.anyCurrent,labelX:bN(c),labelY:bN(l),anchor:s}}),b=new Map(v.map(e=>[e.id,e])),x=new Map(y.map(e=>[e.sessionId,e])),S=[];for(let e of r){let t=b.get(e.id),n=new Set,r=new Map;for(let t of e.members)r.set(t.sessionId,(r.get(t.sessionId)??!0)&&t.leftAt!==null);for(let i of e.members){if(n.has(i.sessionId))continue;n.add(i.sessionId);let a=x.get(i.sessionId);S.push({conversationId:e.id,sessionId:i.sessionId,left:r.get(i.sessionId)??!1,x1:t.x,y1:t.y,x2:a.x,y2:a.y})}}return{hubs:v,chats:y,edges:S,width:m,height:h,hiddenClosed:i}}function wN(e){if(!e)return null;for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.kind===`notice`||!n.fromSession))return{conversationId:n.conversationId,from:n.fromSession,to:n.toSession,kind:n.kind}}return null}function TN(e,t,n,r,i,a){let o=Math.hypot(n-e,r-t);if(o<=i+a||o===0)return{x1:e,y1:t,x2:n,y2:r};let s=(n-e)/o,c=(r-t)/o;return{x1:bN(e+s*i),y1:bN(t+c*i),x2:bN(n-s*a),y2:bN(r-c*a)}}var EN={working:`working`,idle:`idle`,asleep:`asleep`,missing:`not on this PC any more`},DN={working:`fill-accent stroke-accent animate-pulse`,idle:`fill-accent-soft stroke-accent`,asleep:`fill-surface-3 stroke-fg-faint`,missing:`fill-surface-2 stroke-fg-faint`},ON={active:`stroke-ok`,paused:`stroke-warn`,closed:`stroke-fg-faint`};function kN(e){return t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())}}function AN({list:e,showClosed:t,selectedId:n,messages:r,onSelectConversation:i,onOpenChat:a,canOpenChat:o,now:s}){let c=(0,v.useMemo)(()=>CN(e,{showClosed:t,now:s}),[e,t,s]),l=(0,v.useMemo)(()=>wN(r),[r]);if(c.hubs.length===0)return(0,U.jsxs)(`div`,{className:`space-y-1 py-6 text-center text-sm text-fg-muted`,"data-testid":`conversation-map-empty`,children:[(0,U.jsx)(`p`,{children:`No chats are talking to each other right now.`}),(0,U.jsx)(`p`,{className:`text-xs`,children:`Turn on "Talk to other chats" in a chat's Tools menu.`}),c.hiddenClosed>0?(0,U.jsxs)(`p`,{className:`text-xs text-fg-faint`,children:[c.hiddenClosed,` closed conversation`,c.hiddenClosed===1?``:`s`,` hidden.`]}):null]});let u=new Map(c.hubs.map(e=>[e.id,e])),d=new Map(c.chats.map(e=>[e.sessionId,e])),f=[];if(l&&u.has(l.conversationId)){let e=u.get(l.conversationId),t=d.get(l.from),n=d.get(l.to);t&&f.push({key:`from`,...TN(t.x,t.y,e.x,e.y,11,20)}),n&&f.push({key:`to`,...TN(e.x,e.y,n.x,n.y,18,13)})}return(0,U.jsxs)(`div`,{className:`max-h-[65vh] overflow-auto rounded-md border border-border bg-surface`,"data-testid":`conversation-map`,children:[(0,U.jsxs)(`svg`,{viewBox:`0 0 ${c.width} ${c.height}`,preserveAspectRatio:`xMidYMid meet`,className:`block h-auto w-full min-w-[480px] select-none`,style:{maxHeight:`63vh`},role:`img`,"aria-label":`Which chats are talking to each other`,children:[(0,U.jsx)(`defs`,{children:(0,U.jsx)(`marker`,{id:`conversation-map-arrow`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerWidth:`7`,markerHeight:`7`,orient:`auto-start-reverse`,children:(0,U.jsx)(`path`,{d:`M0,0 L10,5 L0,10 z`,className:`fill-accent`})})}),(0,U.jsx)(`g`,{"data-testid":`conversation-map-edges`,children:c.edges.map(e=>{let t=u.get(e.conversationId),r=e.conversationId===n;return(0,U.jsx)(`line`,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,className:H(r?`stroke-accent`:t.status===`active`?`stroke-fg-muted`:`stroke-border`),strokeWidth:r?2:t.status===`active`?1.5:1,strokeDasharray:e.left?`4 4`:void 0,opacity:t.status===`closed`?.5:1,"data-testid":`map-edge-${e.conversationId}-${e.sessionId}`,"data-left":e.left?`true`:void 0},`${e.conversationId}:${e.sessionId}`)})}),f.length>0?(0,U.jsx)(`g`,{"data-testid":`conversation-map-latest`,children:f.map(e=>(0,U.jsx)(`line`,{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,className:`stroke-accent`,strokeWidth:3,markerEnd:`url(#conversation-map-arrow)`},e.key))}):null,c.hubs.map(e=>{let t=e.id===n,r=[e.name,`${Vl[e.status]} · ${e.members} chat${e.members===1?``:`s`} · ${e.messageCount} message${e.messageCount===1?``:`s`}`,e.waiting>0?`${e.waiting} waiting to be delivered`:null,`Click to see this conversation.`].filter(Boolean).join(`
|
|
147
|
-
`);return(0,U.jsxs)(`g`,{role:`button`,tabIndex:0,"aria-label":`Conversation ${e.name}, ${Vl[e.status]}`,"aria-pressed":t,className:`cursor-pointer outline-none`,onClick:()=>i(e.id),onKeyDown:kN(()=>i(e.id)),"data-testid":`map-hub-${e.id}`,"data-status":e.status,"data-recent":e.recent?`true`:void 0,children:[(0,U.jsx)(`title`,{children:r}),e.recent?(0,U.jsx)(`circle`,{cx:e.x,cy:e.y,r:23,className:`fill-accent-soft stroke-accent animate-pulse`,strokeWidth:1}):null,(0,U.jsx)(`circle`,{cx:e.x,cy:e.y,r:16,className:H(t?`fill-accent-soft`:`fill-surface-2`,ON[e.status]),strokeWidth:t?3.5:2.5,strokeDasharray:e.status===`paused`?`5 3`:void 0}),(0,U.jsx)(`text`,{x:e.x,y:e.y+4,textAnchor:`middle`,className:`fill-fg text-[11px] font-semibold`,children:e.members}),(0,U.jsx)(`text`,{x:e.x,y:e.y+16+14,textAnchor:`middle`,className:H(`text-[11px]`,e.status===`closed`?`fill-fg-faint`:`fill-fg`,t&&`font-semibold`),children:e.label}),e.status!==`active`||e.waiting>0?(0,U.jsx)(`text`,{x:e.x,y:e.y+16+27,textAnchor:`middle`,className:H(`text-[10px]`,e.status===`paused`?`fill-warn`:`fill-fg-faint`),children:[e.status===`active`?null:Vl[e.status],e.waiting>0?`${e.waiting} waiting`:null].filter(Boolean).join(` · `)}):null]},e.id)}),c.chats.map(e=>{let t=e.state!==`missing`&&o(e.sessionId),n=e.conversationIds.map(e=>u.get(e)?.name??e),r=[e.title,EN[e.state],`In ${n.length} conversation${n.length===1?``:`s`}: ${n.join(`, `)}`,e.left?`It has left.`:null,t?`Click to open this chat.`:null].filter(Boolean).join(`
|
|
148
|
-
`),i=e.state===`missing`||e.left;return(0,U.jsxs)(`g`,{role:t?`button`:void 0,tabIndex:t?0:void 0,"aria-label":t?`Open chat ${e.title}`:void 0,className:H(t?`cursor-pointer`:`cursor-default`,`outline-none`),opacity:i?.5:1,onClick:t?()=>a(e.sessionId):void 0,onKeyDown:t?kN(()=>a(e.sessionId)):void 0,"data-testid":`map-chat-${e.sessionId}`,"data-state":e.state,children:[(0,U.jsx)(`title`,{children:r}),(0,U.jsx)(`circle`,{cx:e.x,cy:e.y,r:9,className:DN[e.state],strokeWidth:2,strokeDasharray:e.state===`missing`?`3 2`:void 0}),(0,U.jsx)(`text`,{x:e.labelX,y:e.labelY,textAnchor:e.anchor,className:`fill-fg text-[11px]`,children:e.label})]},e.sessionId)})]}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 border-t border-border px-3 py-1.5 text-[11px] text-fg-muted`,"data-testid":`conversation-map-legend`,children:[(0,U.jsx)(jN,{dot:`bg-accent animate-pulse`,children:`working`}),(0,U.jsx)(jN,{dot:`bg-accent-soft border border-accent`,children:`idle`}),(0,U.jsx)(jN,{dot:`bg-surface-3 border border-fg-faint`,children:`asleep`}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`inline-block h-3 w-3 rounded-full border-2 border-ok`}),`active`]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`inline-block h-3 w-3 rounded-full border-2 border-dashed border-warn`}),`paused`]}),(0,U.jsx)(`span`,{children:`dashed spoke: left`}),f.length>0?(0,U.jsx)(`span`,{className:`text-accent`,children:`arrows: the newest message`}):null,c.hiddenClosed>0?(0,U.jsxs)(`span`,{className:`text-fg-faint`,children:[c.hiddenClosed,` closed hidden`]}):null]})]})}function jN({dot:e,children:t}){return(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:H(`inline-block h-2.5 w-2.5 rounded-full`,e)}),t]})}function MN({open:e,selectId:t=null,onClose:n}){let{state:r,actions:i}=W(),a=r.conversationsChange,[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)(!1),[y,b]=(0,v.useState)(!1),[x,S]=(0,v.useState)(`list`),[C,w]=(0,v.useState)(!1),T=(0,v.useRef)(null);T.current=f;let E=(0,v.useRef)(-1),D=(0,v.useCallback)(async()=>{let e=await i.listConversations();if(e===`unsupported`){l(!0);return}if(e===null){d(!0);return}l(!1),d(!1),s(e)},[i]),O=(0,v.useCallback)(async e=>{let t=await i.conversationHistory(e);t&&T.current===e&&h(t)},[i]);(0,v.useEffect)(()=>{e&&(E.current=a.seq,_(!1),p(t??null),D())},[e]),(0,v.useEffect)(()=>{!e||f!==null||!o||o.length===0||p(o[0].id)},[e,o,f]),(0,v.useEffect)(()=>{if(!e||!f){h(null);return}h(e=>e?.conversation.id===f?e:null),O(f)},[e,f,O]),(0,v.useEffect)(()=>{if(!e||a.seq===E.current)return;E.current=a.seq,D();let t=T.current;t&&(a.conversationIds===null||a.conversationIds.includes(t))&&O(t)},[e,a,D,O]);let k=e=>{s(t=>t?.map(t=>t.id===e.id?e:t)??t),h(t=>t&&t.conversation.id===e.id?{...t,conversation:e}:t)},A=async(e,t,n)=>{let r=await i.conversationAction(e,t,n);return r&&k(r),r!==null},j=async()=>{b(!0);try{await i.stopAllConversations()}finally{b(!1),_(!1)}D(),T.current&&O(T.current)},M=async e=>{await i.cancelChatMessage(e.id),T.current&&O(T.current)},N=(0,v.useCallback)((e,t,n=[])=>{if(!e)return t??`OonaCode`;let i=n.find(t=>t.sessionId===e);if(i?.title)return i.title;if(t)return t;let a=r.sessions.find(t=>t.id===e);return a?Ip(a):`a chat`},[r.sessions]),P=m&&m.conversation.id===f?m.conversation:o?.find(e=>e.id===f)??null;return(0,U.jsxs)(tg,{open:e,title:`Conversations`,onClose:n,wide:!0,footer:(0,U.jsx)(q,{variant:`ghost`,onClick:n,children:`Close`}),children:[(0,U.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(`p`,{className:`min-w-0 flex-1 text-xs text-fg-muted`,children:[`Messages and tasks your chats send each other, on this PC.`,` `,(0,U.jsx)(Zh,{label:`Conversations`,details:Zl.window})]}),c?null:(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,U.jsxs)(q,{variant:`danger`,size:`sm`,onClick:()=>_(!0),disabled:g||y,title:Zl.stopAll,"data-testid":`conversations-stop-all`,children:[(0,U.jsx)(K.Stop,{className:`h-3 w-3`}),` Stop all conversations`]}),(0,U.jsx)(Zh,{label:`Stop all conversations`,details:Zl.stopAll})]})]}),g?(0,U.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alertdialog`,"aria-label":`Stop all conversations?`,"data-testid":`conversations-stop-confirm`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1`,children:`Pause every conversation and stop the turns they are running now? Nothing is deleted; you can resume each one.`}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>_(!1),children:`Cancel`}),(0,U.jsx)(q,{size:`sm`,variant:`danger`,busy:y,onClick:()=>void j(),"data-testid":`conversations-stop-confirm-yes`,children:`Stop all`})]}):null,!c&&o!==null?(0,U.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-3`,children:[(0,U.jsx)(`div`,{className:`inline-flex overflow-hidden rounded-md border border-border text-xs`,role:`group`,"aria-label":`View`,children:[`list`,`map`].map(e=>(0,U.jsx)(`button`,{type:`button`,"aria-pressed":x===e,onClick:()=>S(e),className:H(`px-3 py-1`,x===e?`bg-accent text-accent-fg`:`text-fg-muted hover:bg-surface-2`),title:e===`list`?Zl.listView:Zl.mapView,"data-testid":`conversations-view-${e}`,children:e===`list`?`List`:`Map`},e))}),x===`map`?(0,U.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-fg-muted`,title:Zl.showClosed,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>w(e.target.checked),"data-testid":`conversation-map-show-closed`}),`Show closed`]}):null,(0,U.jsx)(Zh,{label:`Map`,details:Zl.mapView})]}):null,c?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`conversations-unsupported`,children:`OonaCode on this PC is too old for conversations between chats. Update it, then open this window again.`}):o===null?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`conversations-loading`,children:u?`Could not read the conversations from this PC right now. They show here as soon as it answers.`:`Loading…`}):x===`map`?(0,U.jsx)(AN,{list:o,showClosed:C,selectedId:f,messages:m&&m.conversation.id===f?m.messages:null,onSelectConversation:e=>{p(e),S(`list`)},onOpenChat:e=>{n(),i.selectSession(e)},canOpenChat:e=>r.sessions.some(t=>t.id===e)}):o.length===0?(0,U.jsxs)(`div`,{className:`space-y-1 text-sm text-fg-muted`,"data-testid":`conversations-empty`,children:[(0,U.jsx)(`p`,{children:`No conversations yet.`}),(0,U.jsx)(`p`,{className:`text-xs`,children:`To start one, turn on "Talk to other chats" in the Tools menu of two chats, then ask one of them to send the other a message or a task.`})]}):(0,U.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-[260px_1fr]`,children:[(0,U.jsx)(`ul`,{className:`flex max-h-[65vh] flex-col gap-1 overflow-y-auto pr-1`,"data-testid":`conversations-list`,children:o.map(e=>(0,U.jsx)(`li`,{children:(0,U.jsx)(FN,{c:e,selected:e.id===f,onSelect:()=>p(e.id)})},e.id))}),(0,U.jsx)(`div`,{className:`max-h-[65vh] min-w-0 overflow-y-auto pr-1`,children:P?(0,U.jsx)(zN,{c:P,messages:m&&m.conversation.id===P.id?m.messages:null,titleOf:N,onAction:(e,t)=>A(P.id,e,t),onWithdraw:e=>void M(e),onOpenChat:e=>{n(),i.selectSession(e)},isLocalChat:e=>r.sessions.some(t=>t.id===e)},P.id):(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`Choose a conversation.`})})]})]})}function NN({c:e}){return(0,U.jsx)(`span`,{title:Zl.status,"data-testid":`conversation-status`,children:(0,U.jsx)(X,{tone:Hl(e.status),children:Vl[e.status]})})}function PN({label:e,used:t,budget:n,format:r=e=>e.toLocaleString()}){let i=Jl(t,n),a=i>=1?`bg-danger`:i>=.8?`bg-warn`:`bg-accent`;return(0,U.jsxs)(`div`,{className:`mt-1`,"data-testid":`usage-${e.toLowerCase()}`,children:[(0,U.jsxs)(`div`,{className:`flex justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,U.jsx)(`span`,{children:e}),(0,U.jsxs)(`span`,{"data-testid":`usage-numbers`,children:[r(t),` of `,r(n)]})]}),(0,U.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-surface-3`,role:`progressbar`,"aria-label":`${e} used`,"aria-valuemin":0,"aria-valuemax":n,"aria-valuenow":t,children:(0,U.jsx)(`div`,{className:H(`h-full rounded-full`,a),style:{width:`${Math.round(i*100)}%`}})})]})}function FN({c:e,selected:t,onSelect:n}){let r=e.members.filter(e=>e.leftAt===null);return(0,U.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,className:H(`w-full rounded-md border px-2.5 py-2 text-left text-xs`,t?`border-accent bg-accent-soft`:`border-border hover:bg-surface-2`),"data-testid":`conversation-row-${e.id}`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm font-medium text-fg`,children:Ll(e)}),(0,U.jsx)(NN,{c:e})]}),(0,U.jsxs)(`div`,{className:`mt-0.5 truncate text-fg-muted`,"data-testid":`conversation-members`,children:[r.length,` chat`,r.length===1?``:`s`,e.title?`: ${r.map(e=>e.title).join(`, `)}`:``]}),e.status!==`active`&&e.pausedReason?(0,U.jsx)(`div`,{className:`mt-0.5 text-warn`,"data-testid":`conversation-paused-reason`,children:e.pausedReason}):null,(0,U.jsx)(PN,{label:`Messages`,used:e.used.messages,budget:e.budget.messages}),(0,U.jsx)(PN,{label:`Tokens`,used:e.used.tokens,budget:e.budget.tokens,format:Dp}),(0,U.jsxs)(`div`,{className:`mt-1 flex justify-between gap-2 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`span`,{"data-testid":`conversation-cost`,children:Tp(e.used.costUsd)}),(0,U.jsx)(`span`,{title:Ap(e.lastActivityAt),children:Op(e.lastActivityAt)})]})]})}function IN({title:e,help:t,children:n}){return(0,U.jsxs)(`section`,{className:`space-y-2 border-t border-border pt-3 first:border-t-0 first:pt-0`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:[e,t?(0,U.jsx)(Zh,{label:e,details:t}):null]}),n]})}var LN={working:`working`,idle:`idle`,asleep:`asleep`,missing:`gone`},RN={working:`This chat is working on a turn right now.`,idle:`This chat is open and waiting.`,asleep:`This chat is not running; a message wakes it from its saved history.`,missing:`This chat is not on this PC any more (deleted).`};function zN({c:e,messages:t,titleOf:n,onAction:r,onWithdraw:i,onOpenChat:a,isLocalChat:o}){let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(String(e.budget.messages)),[h,g]=(0,v.useState)(String(e.budget.tokens));(0,v.useEffect)(()=>{m(String(e.budget.messages)),g(String(e.budget.tokens))},[e.budget.messages,e.budget.tokens]);let _=async(e,t,n)=>{c(e);try{return await r(t,n)}finally{c(null)}},y=p.trim()!==String(e.budget.messages)||h.trim()!==String(e.budget.tokens),b=y?Xl(p,h):null,x=()=>{if(!y||Xl(p,h))return;let t={},n=Number(p.trim()),r=Number(h.trim());n!==e.budget.messages&&(t.messages=n),r!==e.budget.tokens&&(t.tokens=r),_(`budget`,`budget`,t)},S=e.status===`closed`,C=(0,v.useMemo)(()=>[...e.members].sort((e,t)=>(e.leftAt===null?0:1)-(t.leftAt===null?0:1)),[e.members]);return(0,U.jsxs)(`div`,{className:`space-y-4`,"data-testid":`conversation-detail`,"data-id":e.id,children:[(0,U.jsxs)(IN,{title:`Conversation`,help:Zl.status,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 text-base font-semibold text-fg`,children:Ll(e)}),(0,U.jsx)(NN,{c:e})]}),e.pausedReason&&!S?(0,U.jsxs)(`p`,{className:`text-xs text-warn`,"data-testid":`conversation-detail-reason`,children:[`Paused: `,e.pausedReason]}):e.pausedReason&&S?(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Closed: `,e.pausedReason]}):null,(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Started `,Ap(e.createdAt),` · last activity`,` `,(0,U.jsx)(`span`,{title:Ap(e.lastActivityAt),children:Op(e.lastActivityAt)}),e.waiting>0?` · ${e.waiting} waiting to be delivered`:``]}),S?null:(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[e.status===`active`?(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(q,{size:`sm`,onClick:()=>void _(`pause`,`pause`),busy:s===`pause`,title:Zl.pause,"data-testid":`conversation-pause`,children:`Pause`}),(0,U.jsx)(Zh,{label:`Pause`,details:Zl.pause})]}):(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:()=>void _(`resume`,`resume`),busy:s===`resume`,title:Zl.resume,"data-testid":`conversation-resume`,children:`Resume`}),(0,U.jsx)(Zh,{label:`Resume`,details:Zl.resume})]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(q,{size:`sm`,variant:l?`danger`:`ghost`,busy:s===`close`,title:Zl.close,onClick:()=>{if(!l){u(!0);return}u(!1),_(`close`,`close`)},"data-testid":`conversation-close`,children:l?`Close it for good?`:`Close`}),(0,U.jsx)(Zh,{label:`Close`,details:Zl.close})]})]})]}),(0,U.jsxs)(IN,{title:`Budget`,help:Zl.budget,children:[(0,U.jsx)(PN,{label:`Messages`,used:e.used.messages,budget:e.budget.messages}),(0,U.jsx)(PN,{label:`Tokens`,used:e.used.tokens,budget:e.budget.tokens,format:Dp}),(0,U.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,U.jsxs)(`span`,{"data-testid":`conversation-detail-cost`,children:[`Cost so far `,Tp(e.used.costUsd),` · `,Dp(e.used.tokens),` new tokens`]}),(0,U.jsx)(Zh,{label:`Cost`,details:Zl.cost})]}),S?null:(0,U.jsxs)(`div`,{className:`flex flex-wrap items-end gap-2`,children:[(0,U.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-fg-muted`,children:[`Messages`,(0,U.jsx)(`input`,{className:H(Y,`w-24`),inputMode:`numeric`,value:p,onChange:e=>m(e.target.value),"data-testid":`conversation-budget-messages`})]}),(0,U.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-fg-muted`,children:[`Tokens`,(0,U.jsx)(`input`,{className:H(Y,`w-32`),inputMode:`numeric`,value:h,onChange:e=>g(e.target.value),"data-testid":`conversation-budget-tokens`})]}),(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:x,disabled:!y||b!==null,busy:s===`budget`,title:Zl.budget,"data-testid":`conversation-budget-save`,children:`Save budget`}),b?(0,U.jsx)(`span`,{className:`text-xs text-danger`,"data-testid":`conversation-budget-problem`,children:b}):null]})]}),(0,U.jsx)(IN,{title:`Chats`,help:Zl.removeMember,children:(0,U.jsx)(`ul`,{className:`space-y-1`,"data-testid":`conversation-members-list`,children:C.map(e=>{let t=`${e.hostId}:${e.sessionId}`,n=e.leftAt!==null;return(0,U.jsxs)(`li`,{className:H(`flex flex-wrap items-center gap-2 rounded-md border border-border px-2.5 py-1.5 text-xs`,n&&`opacity-60`),"data-testid":`conversation-member-${e.sessionId}`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-fg`,children:e.title}),(0,U.jsx)(`span`,{title:RN[e.state],children:(0,U.jsx)(X,{tone:e.state===`working`?`accent`:`neutral`,children:LN[e.state]})}),e.talkOn===!1?(0,U.jsx)(`span`,{className:`text-warn`,title:`Its "Talk to other chats" switch is off, so its part of this conversation is on hold.`,children:`switch off`}):null,n?(0,U.jsx)(`span`,{className:`text-fg-faint`,title:Ap(e.leftAt),children:`left`}):null,e.state!==`missing`&&o(e.sessionId)?(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>a(e.sessionId),title:Zl.openChat,"data-testid":`conversation-member-open`,children:`Open chat`}):null,!n&&!S?(0,U.jsx)(q,{size:`sm`,variant:d===t?`danger`:`ghost`,busy:s===`remove:${t}`,title:Zl.removeMember,onClick:()=>{if(d!==t){f(t);return}f(null),_(`remove:${t}`,`remove-member`,{sessionId:e.sessionId,hostId:e.hostId})},"data-testid":`conversation-member-remove`,children:d===t?`Remove?`:`Remove`}):null]},t)})})}),(0,U.jsx)(IN,{title:`History`,help:Zl.history,children:t===null?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Loading…`}):t.length===0?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Nothing has been sent yet.`}):(0,U.jsx)(`ol`,{className:`space-y-2`,"data-testid":`conversation-history`,children:t.map(t=>(0,U.jsx)(BN,{m:t,from:t.kind===`notice`?`OonaCode`:n(t.fromSession,t.fromTitle,e.members),to:n(t.toSession,t.toTitle,e.members),onWithdraw:()=>i(t)},t.id))})})]})}function BN({m:e,from:t,to:n,onWithdraw:r}){let i=Kl(e),a=Yl(i),[o,s]=(0,v.useState)(!1),c=e.kind===`reply`?K.Reply:e.kind===`notice`?K.Alert:e.kind===`continue`?K.Refresh:K.Mail;return(0,U.jsxs)(`li`,{className:H(`rounded-md border px-2.5 py-2 text-xs`,e.kind===`notice`?`border-warn/40 bg-warn-soft/40`:`border-border`),"data-testid":`conversation-message-${e.id}`,"data-kind":e.kind,"data-status":e.status,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,U.jsx)(c,{className:H(`h-3.5 w-3.5`,e.kind===`notice`?`text-warn`:`text-accent`)}),(0,U.jsx)(`span`,{className:`font-medium text-fg`,children:Ul[e.kind]}),(0,U.jsxs)(`span`,{className:`min-w-0 truncate text-fg-muted`,"data-testid":`conversation-message-route`,children:[t,` → `,n]}),(0,U.jsx)(`span`,{className:`text-fg-faint`,title:Ap(e.createdAt),children:jp(e.createdAt)}),(0,U.jsx)(`span`,{className:`flex-1`}),e.kind===`notice`?null:(0,U.jsx)(`span`,{title:Wl[e.status],children:(0,U.jsx)(X,{tone:Gl(e.status),children:(0,U.jsx)(`span`,{"data-testid":`conversation-message-status`,children:e.status})})})]}),e.expectsReply||e.continued||e.stalled?(0,U.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap gap-x-2 text-fg-muted`,children:[e.expectsReply?(0,U.jsx)(`span`,{children:`reply expected`}):null,e.continued?(0,U.jsx)(`span`,{children:`continued after an OonaCode restart`}):null,e.stalled?(0,U.jsxs)(`span`,{className:`text-warn`,children:[`waiting for your permission to use `,e.stalled]}):null]}):null,e.error?(0,U.jsx)(`div`,{className:H(`mt-0.5`,e.status===`failed`?`text-danger`:`text-fg-muted`),"data-testid":`conversation-message-error`,children:e.error}):null,e.tokens>0||e.costUsd>0?(0,U.jsxs)(`div`,{className:`mt-0.5 text-fg-faint`,"data-testid":`conversation-message-usage`,children:[`The turn it caused: `,Dp(e.tokens),` tokens · `,Tp(e.costUsd)]}):null,(0,U.jsx)(`div`,{className:H(`mt-1.5 text-fg`,a&&!o&&`max-h-24 overflow-hidden [mask-image:linear-gradient(to_bottom,black_60%,transparent)]`),"data-testid":`conversation-message-body`,"data-collapsed":a&&!o?`true`:void 0,children:(0,U.jsx)(oO,{text:i})}),(0,U.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[a?(0,U.jsx)(`button`,{type:`button`,className:`text-accent hover:underline`,onClick:()=>s(e=>!e),"aria-expanded":o,"data-testid":`conversation-message-expand`,children:o?`Show less`:`Show all`}):null,(0,U.jsx)(`span`,{className:`flex-1`}),ql(e)?(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:r,title:Zl.withdraw,"data-testid":`conversation-message-withdraw`,children:`Withdraw`}):null]})]})}function VN({open:e,onClose:t}){let{state:n,actions:r}=W(),i=n.chatAboutsChange,[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(``),[h,g]=(0,v.useState)(!1),[_,y]=(0,v.useState)(!1),[b,x]=(0,v.useState)(!1),S=(0,v.useRef)(-1),C=(0,v.useCallback)(async()=>{let e=await r.listChatAbouts();if(e===`unsupported`){c(!0);return}if(e===null){u(!0);return}c(!1),u(!1),o(e),f(e.generateAll)},[r]);(0,v.useEffect)(()=>{e&&(S.current=i.seq,C())},[e]),(0,v.useEffect)(()=>{!e||i.seq===S.current||(S.current=i.seq,i.generateAll!==void 0&&f(i.generateAll),C())},[e,i,C]);let w=n.settings?.chatAboutEnabled??a?.settings.enabled??fl.enabled,T=async e=>{x(!0);try{await r.saveSettings({chatAboutEnabled:e})}finally{x(!1)}C()},E=async()=>{g(!0);try{let e=await r.generateAllChatAbouts();e&&f(e.generateAll)}finally{g(!1)}},D=async()=>{y(!0);try{let e=await r.stopGenerateAllChatAbouts();e&&f(e.generateAll)}finally{y(!1)}},O=(0,v.useMemo)(()=>{let e=a?.chats??[],t=p.trim().toLowerCase();return t?e.filter(e=>e.title.toLowerCase().includes(t)||(e.about??``).toLowerCase().includes(t)):e},[a,p]),k=(0,v.useCallback)(e=>n.sessions.find(t=>t.id===e)?.entryCount??null,[n.sessions]),A=a?Ol(a.totals):null,j=d?.running===!0;return(0,U.jsxs)(tg,{open:e,title:`What your chats are about`,onClose:t,wide:!0,footer:(0,U.jsx)(q,{variant:`ghost`,onClick:t,children:`Close`}),children:[(0,U.jsxs)(`p`,{className:`mb-3 flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,U.jsx)(`span`,{className:`min-w-0`,children:`A short note per chat on this PC saying what it works on, so your other chats can tell which one to ask.`}),(0,U.jsx)(Zh,{label:`What your chats are about`,details:(0,U.jsx)(Qh,{items:[...Nl.what,...Nl.when,...Nl.who,...Nl.yours,...Nl.where]})})]}),s?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`chat-abouts-unsupported`,children:`OonaCode on this PC is too old for chat abouts. Update it, then open this window again.`}):a===null?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`chat-abouts-loading`,children:l?`Could not read the abouts from this PC right now. They show here as soon as it answers.`:`Loading…`}):(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsx)(`div`,{className:`rounded-md border border-border px-3`,children:(0,U.jsx)(ng,{label:`Write an about for every chat`,hint:w?`On: each chat’s housekeeper model writes its about in the background.`:`Off: nothing is written and nothing is spent. Regenerate and “Generate for all chats now” are unavailable.`,details:[Nl.switch,...Nl.who],checked:w,disabled:b,onChange:e=>void T(e),testId:`chat-abouts-switch`})}),A?(0,U.jsxs)(`div`,{className:`text-xs text-fg-muted`,"data-testid":`chat-abouts-totals`,children:[(0,U.jsx)(`span`,{className:`font-medium text-fg`,children:`All about calls so far: `}),(0,U.jsx)(`span`,{"data-testid":`chat-abouts-totals-line`,children:A.line}),A.unpriced?(0,U.jsx)(`span`,{className:`block text-fg-faint`,"data-testid":`chat-abouts-totals-unpriced`,children:A.unpriced}):null]}):null,(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsxs)(q,{size:`sm`,variant:`primary`,onClick:()=>void E(),busy:h,disabled:!w||j,title:w?Nl.generateAll:Nl.regenerateOff,"data-testid":`chat-abouts-generate-all`,children:[(0,U.jsx)(K.Refresh,{className:`h-3 w-3`}),` Generate for all chats now`]}),(0,U.jsx)(Zh,{label:`Generate for all chats now`,details:Nl.generateAll})]}),j?(0,U.jsxs)(q,{size:`sm`,variant:`danger`,onClick:()=>void D(),busy:_,title:Nl.stop,"data-testid":`chat-abouts-stop`,children:[(0,U.jsx)(K.Stop,{className:`h-3 w-3`}),` Stop`]}):null]}),d?(0,U.jsx)(HN,{g:d}):null,(0,U.jsx)(`input`,{className:H(Y,`text-xs`),type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:`Find a chat by its title or its about`,"aria-label":`Find a chat by its title or its about`,"data-testid":`chat-abouts-filter`}),a.chats.length===0?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`chat-abouts-empty`,children:`No chats on this PC yet.`}):O.length===0?(0,U.jsxs)(`p`,{className:`text-sm text-fg-muted`,"data-testid":`chat-abouts-no-match`,children:[`No chat matches “`,p.trim(),`”.`]}):(0,U.jsx)(`ul`,{className:`space-y-2`,"data-testid":`chat-abouts-list`,children:O.map(e=>(0,U.jsx)(UN,{row:e,enabled:w,entryCount:k(e.sessionId),onOpen:()=>{r.selectSession(e.sessionId)}},e.sessionId))})]})]})}function HN({g:e}){let t=e.total>0?Math.round(Math.min(e.done,e.total)/e.total*100):100;return(0,U.jsxs)(`div`,{className:`space-y-1 text-xs`,"data-testid":`chat-abouts-progress`,children:[(0,U.jsx)(`div`,{className:`text-fg-muted`,"data-testid":`chat-abouts-progress-line`,children:Al(e)}),(0,U.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-surface-3`,role:`progressbar`,"aria-label":`Generate for all chats now`,"aria-valuemin":0,"aria-valuemax":e.total,"aria-valuenow":e.done,children:(0,U.jsx)(`div`,{className:H(`h-full rounded-full`,e.running?`bg-accent`:`bg-fg-faint`),style:{width:`${t}%`}})}),!e.running&&e.stoppedReason?(0,U.jsxs)(`div`,{className:`text-warn`,"data-testid":`chat-abouts-stopped-reason`,children:[`Stopped: `,e.stoppedReason]}):null]})}function UN({row:e,enabled:t,entryCount:n,onOpen:r}){let i=e.title.trim()||`Untitled chat`,a=Cl(e);return(0,U.jsxs)(`li`,{className:`rounded-md border border-border px-3 py-2 text-xs`,"data-testid":`chat-about-row-${e.sessionId}`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:`min-w-0 truncate text-left text-sm font-medium text-fg hover:text-accent hover:underline`,onClick:r,title:`Open this chat`,"data-testid":`chat-about-open`,children:i}),e.source===`user`?(0,U.jsx)(`span`,{title:Nl.yours[0],children:(0,U.jsx)(X,{tone:`accent`,children:`yours`})}):null,e.stale&&e.about?(0,U.jsx)(`span`,{title:Nl.stale,"data-testid":`chat-about-stale`,children:(0,U.jsx)(X,{tone:`warn`,children:`stale`})}):null,e.pending?(0,U.jsx)(`span`,{"data-testid":`chat-about-pending`,children:(0,U.jsx)(X,{tone:`accent`,children:`writing…`})}):null]}),e.about?(0,U.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap break-words text-fg`,"data-testid":`chat-about-text`,children:e.about}):(0,U.jsxs)(`p`,{className:`mt-1 text-fg-muted`,"data-testid":`chat-about-missing`,children:[`No about yet. `,kl(e,{enabled:t,entryCount:n})]}),e.about&&e.lastError?(0,U.jsxs)(`p`,{className:`mt-0.5 text-danger`,"data-testid":`chat-about-error`,children:[`The last attempt failed: `,e.lastError]}):null,(0,U.jsxs)(`div`,{className:`mt-1 flex flex-wrap justify-between gap-x-3 gap-y-0.5 text-[11px] text-fg-faint`,children:[e.about&&e.aboutAt?(0,U.jsxs)(`span`,{title:Ap(e.aboutAt),"data-testid":`chat-about-written`,children:[`Written `,Op(e.aboutAt),a?` by ${a}`:``]}):(0,U.jsx)(`span`,{}),(0,U.jsx)(`span`,{title:e.route?`Paid by ${wl[e.route]}`:void 0,"data-testid":`chat-about-spend`,children:Dl(e.spend,e.route)})]})]})}function WN({open:e,onClose:t}){let{state:n,actions:r}=W(),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=Fp(a?Ip(a):o?.title??`New chat`);async function m(){if(i){d(!0);try{await r.setSessionProject(i,c)&&t()}finally{d(!1)}}}return(0,U.jsxs)(tg,{open:e,title:`Move “${p}” to a project`,onClose:t,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{variant:`ghost`,onClick:()=>{t(),r.openDialog(`projects`)},children:`Manage projects…`}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(q,{variant:`ghost`,onClick:t,children:`Cancel`}),(0,U.jsx)(q,{variant:`primary`,onClick:m,disabled:u||c===s,"data-testid":`assign-project-apply`,children:`Apply`})]}),children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-0.5`,role:`radiogroup`,"aria-label":`Project`,children:[(0,U.jsx)(GN,{selected:c===null,onSelect:()=>l(null),label:`No project`,testId:`assign-project-none`}),n.vaultProjects.map(e=>(0,U.jsx)(GN,{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,U.jsxs)(`p`,{className:`px-2 py-2 text-xs text-fg-muted`,children:[`No projects yet — create one under `,(0,U.jsx)(`em`,{children:`Manage projects…`}),`.`]}):null]}),f?(0,U.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,U.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 GN({selected:e,onSelect:t,label:n,hint:r,disabled:i=!1,testId:a}){return(0,U.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":e,onClick:t,disabled:i,className:H(`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,U.jsx)(`span`,{className:H(`inline-block h-3 w-3 rounded-full border`,e?`border-accent bg-accent`:`border-border`)}),(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n}),r?(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:r}):null]})}function KN(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 qN(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 JN(e){let t=[];for(let n of e){let e=n.definition,r=gs(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 YN(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 XN({open:e,providerId:t,onClose:n}){let{state:r,actions:i}=W(),a=(0,v.useMemo)(()=>t?qN(r.providers,t):[],[r.providers,t]),o=(0,v.useMemo)(()=>JN(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=YN(b),w=a.some(e=>(e.credentials??[]).some(e=>e.class!==`none`)),T=x.credentialClass!==`none`,E=xs(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,U.jsx)(tg,{open:e,title:`${w?`Manage`:`Connect`} ${S}`,onClose:n,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:n,children:`Cancel`}),b.loginKind===`oauth`?(0,U.jsxs)(q,{onClick:()=>i.openOauthLogin(b.provider.definition.id),"data-testid":`connect-oauth-signin`,children:[(0,U.jsx)(K.LogIn,{className:`w-4 h-4`}),` `,b.provider.definition.subscriptionLogin?.signInLabel??`Sign in instead`]}):b.loginKind===`claude`?(0,U.jsxs)(q,{onClick:()=>i.openClaudeLogin(null),"data-testid":`connect-claude-signin`,children:[(0,U.jsx)(K.LogIn,{className:`w-4 h-4`}),` Sign in instead`]}):null,(0,U.jsx)(q,{variant:`primary`,busy:h,disabled:!D,onClick:()=>void O(),children:h?`Checking…`:T?`Save key`:`Use this provider`})]}),children:(0,U.jsxs)(`div`,{className:`space-y-3`,children:[o.length>1?(0,U.jsx)(`div`,{className:`flex gap-1 border-b border-border`,role:`tablist`,children:o.map(e=>{let t=YN(e)[0];return(0,U.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,U.jsx)(`span`,{className:`ml-1.5 font-mono text-[11px] text-ok`,children:t.masked}):null]},e.key)})}):null,C.length>0?(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:`Connected`}),C.map(e=>(0,U.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,U.jsx)(X,{tone:e.class===`subscription`?`accent`:`ok`,children:b.label}),(0,U.jsx)(`span`,{className:`font-mono text-xs`,children:e.masked}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-fg-faint`,children:e.label}),(0,U.jsx)(q,{size:`sm`,onClick:()=>void i.testCredential(e.id),children:`Test`}),(0,U.jsx)(q,{size:`sm`,variant:`danger`,onClick:()=>void i.deleteCredential(e.id),children:`Remove`})]},e.id))]}):null,(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,U.jsx)(X,{tone:E.viaGateway?`accent`:`ok`,children:E.badge}),(0,U.jsx)(X,{children:x.kind}),b.keyFormat?(0,U.jsxs)(`span`,{className:`text-fg-faint`,children:[`key format `,b.keyFormat]}):null]}),(0,U.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,U.jsxs)(U.Fragment,{children:[(0,U.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,U.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,U.jsx)(`li`,{children:e},t)):KN(b.provider,b.variant).map((e,t)=>(0,U.jsx)(`li`,{children:e},t))}),(0,U.jsx)($h,{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,U.jsx)(`input`,{className:Y,type:`password`,autoComplete:`off`,spellCheck:!1,value:l,placeholder:b.keyFormat??`sk-…`,onChange:e=>{u(e.target.value),y(null)}})}),_?(0,U.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,U.jsx)($h,{label:`Base URL`,hint:`Point this at your own server if it is not the default. Each record has its own endpoint.`,children:(0,U.jsx)(`input`,{className:Y,value:d,spellCheck:!1,onChange:e=>f(e.target.value),placeholder:b.variant?.baseUrl??x.baseUrl})}):null,(0,U.jsx)($h,{label:`Label (optional)`,children:(0,U.jsx)(`input`,{className:Y,value:p,onChange:e=>m(e.target.value),placeholder:`${S} ${b.label.toLowerCase()} key`})})]}):(0,U.jsxs)(`div`,{className:`rounded-md bg-surface-2 px-3 py-2 text-xs text-fg-muted`,children:[x.displayName,` needs no credential.`]})]})})}function ZN({open:e,onClose:t}){let{state:n,actions:r}=W(),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,QM(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,U.jsx)(tg,{open:e,title:p,onClose:t,footer:(0,U.jsxs)(U.Fragment,{children:[m?(0,U.jsx)(q,{onClick:()=>i&&void r.cancelOauthLogin(i),"data-testid":`oauth-login-cancel`,children:`Cancel sign-in`}):null,_&&o?.phase!==`connected`?(0,U.jsx)(q,{onClick:()=>c(e=>e+1),"data-testid":`oauth-login-retry`,children:`Try again`}):null,(0,U.jsx)(q,{variant:`primary`,onClick:t,children:o?.phase===`connected`?`Done`:`Close`})]}),children:(0,U.jsx)(`div`,{className:`space-y-3 text-sm`,"data-testid":`oauth-login-dialog`,children:m&&o?(0,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`code`,{className:`text-lg font-mono px-2 py-1 rounded border border-border`,"data-testid":`oauth-user-code`,children:o.userCode}),(0,U.jsxs)(q,{onClick:()=>o.userCode&&g(o.userCode),children:[(0,U.jsx)(K.Copy,{className:`w-4 h-4`}),` `,l?`Copied`:`Copy code`]})]}),h?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 break-all`,children:[(0,U.jsx)(`a`,{className:`underline`,href:h,onClick:e=>{e.preventDefault(),QM(h)},children:h}),(0,U.jsxs)(q,{onClick:()=>g(h),children:[(0,U.jsx)(K.Copy,{className:`w-4 h-4`}),` Copy link`]})]}):null,(0,U.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,U.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,U.jsx)(`p`,{className:`text-danger`,"data-testid":`oauth-login-ended`,children:o?.message??`The sign-in did not complete.`}):(0,U.jsx)(`p`,{children:`Starting the sign-in…`})})})}function QN({open:e,onClose:t}){let{state:n,actions:r}=W(),i=(0,v.useMemo)(()=>uu(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,U.jsx)(tg,{open:e,title:`Manage models`,onClose:t,wide:!0,footer:(0,U.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-2`,children:[(0,U.jsxs)(q,{onClick:()=>{t(),r.openSettings(`providers`)},"data-testid":`manage-models-add-provider`,children:[(0,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`}),` Add provider`]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(q,{onClick:t,children:`Cancel`}),(0,U.jsx)(q,{variant:`primary`,busy:l,onClick:()=>void h(),"data-testid":`manage-models-save`,children:`Save`})]})]}),children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.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,U.jsx)(`input`,{className:Y,value:s,onChange:e=>c(e.target.value),placeholder:`Filter models…`,"data-testid":`manage-models-filter`}),i.length===0?(0,U.jsxs)(`div`,{className:`text-sm text-fg-faint`,children:[`No provider is connected yet — use `,(0,U.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,U.jsxs)(`div`,{className:`rounded-md border border-border p-3`,"data-testid":`manage-models-${e.definition.id}`,children:[(0,U.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`font-medium`,children:e.definition.displayName}),(0,U.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[r===t.length?`all`:r,` of `,t.length,` shown`]}),(0,U.jsxs)(`span`,{className:`ml-auto flex gap-1`,children:[(0,U.jsx)(q,{size:`sm`,onClick:()=>m(e.definition.id,!0,t),children:`All`}),(0,U.jsx)(q,{size:`sm`,onClick:()=>m(e.definition.id,!1,t),children:`None`})]})]}),(0,U.jsxs)(`div`,{className:`grid gap-1 sm:grid-cols-2`,children:[n.map(n=>(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,U.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,U.jsxs)(`span`,{className:`truncate`,title:n.id,children:[n.displayName??n.id,n.displayName&&n.displayName!==n.id?(0,U.jsxs)(`span`,{className:`text-fg-faint`,children:[` · `,n.id]}):null]})]},n.id)),n.length===0?(0,U.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[(0,U.jsx)(K.Info,{className:`mr-1 inline w-3 h-3`}),` No model matches the filter.`]}):null]})]},e.definition.id)})]})})}var $N={mode:`names`,mine:!0,model:!0,tools:!1,subagents:!1,projectId:null,when:`any`,caseSensitive:!1,wholeWord:!1};function eP(e,t,n){let r=be(t,{caseSensitive:n.caseSensitive,wholeWord:n.wholeWord});if(!r)return[{text:e,hit:!1}];let i=[],a=0;for(let t of e.matchAll(r)){let n=t.index??0;t[0].length!==0&&(n>a&&i.push({text:e.slice(a,n),hit:!1}),i.push({text:t[0],hit:!0}),a=n+t[0].length)}return a<e.length&&i.push({text:e.slice(a),hit:!1}),i}function tP(e){return Object.keys($N).some(t=>e[t]!==$N[t])}function nP(e,t=Date.now()){if(e===`any`)return null;if(e===`today`){let e=new Date(t);return e.setHours(0,0,0,0),e}return new Date(t-(e===`week`?7:30)*24*60*60*1e3)}function rP(e,t,n,r=Date.now()){if(n.projectId!==null&&e.projectId!==n.projectId)return!1;let i=nP(n.when,r);if(i&&e.mtime<i.getTime())return!1;if((n.caseSensitive||n.wholeWord)&&t.trim()!==``){let r=[e.title,e.firstPrompt,e.lastPrompt,e.projectDir],i={caseSensitive:n.caseSensitive,wholeWord:n.wholeWord};if(!r.some(e=>typeof e==`string`&&xe(e,t,i)))return!1}return!0}function iP(e,t,n=Date.now()){let r=e.trim();if(r.length<2||!t.mine&&!t.model&&!t.tools)return null;let i=nP(t.when,n);return{q:r,limit:200,from:t.mine&&t.model?`both`:t.mine?`user`:t.model?`assistant`:`none`,tools:t.tools,subagents:t.subagents,...i?{since:i.toISOString()}:{},...t.projectId?{projectId:t.projectId}:{},caseSensitive:t.caseSensitive,wholeWord:t.wholeWord}}function aP({label:e,hint:t,checked:n,onChange:r,testId:i}){return(0,U.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 py-0.5 text-xs`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-0.5`,checked:n,onChange:e=>r(e.target.checked),"data-testid":i}),(0,U.jsxs)(`span`,{children:[(0,U.jsx)(`span`,{className:`text-fg`,children:e}),t?(0,U.jsx)(`span`,{className:`block text-[11px] text-fg-faint`,children:t}):null]})]})}var oP=`w-full rounded-md border border-border bg-surface px-2 py-1 text-xs text-fg focus:outline-none`,sP={names:`Names & prompts`,conversations:`Whole chats`,namesHint:`A chat’s name, its first and last message, and its folder.`,conversationsHint:`Every message of every chat on this PC. Pick whose words to look in.`};function cP({options:e,onChange:t,projects:n,onClose:r,words:i=sP}){let a=(n,r)=>t({...e,[n]:r}),o=e.mode===`conversations`,s=o&&!e.mine&&!e.model&&!e.tools;return(0,U.jsxs)(`div`,{className:`absolute left-2 right-2 top-full z-30 mt-1 space-y-3 rounded-lg border border-border bg-surface p-3 shadow-xl`,onMouseDown:e=>{!(e.target instanceof HTMLSelectElement)&&!(e.target instanceof HTMLInputElement)&&e.preventDefault()},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),r())},"data-testid":`search-options`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wide text-fg-faint`,children:`Search in`}),(0,U.jsx)(rg,{label:`Search in`,value:e.mode,options:[{value:`names`,label:i.names},{value:`conversations`,label:i.conversations}],onChange:e=>a(`mode`,e)}),(0,U.jsx)(`p`,{className:`text-[11px] text-fg-faint`,"data-testid":`search-mode-hint`,children:o?i.conversationsHint:i.namesHint})]}),o?(0,U.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,U.jsx)(aP,{label:`My messages`,checked:e.mine,onChange:e=>a(`mine`,e),testId:`search-opt-mine`}),(0,U.jsx)(aP,{label:`Model replies`,checked:e.model,onChange:e=>a(`model`,e),testId:`search-opt-model`}),(0,U.jsx)(aP,{label:`Tool calls & output`,hint:`Commands, file paths and what the tools answered.`,checked:e.tools,onChange:e=>a(`tools`,e),testId:`search-opt-tools`}),(0,U.jsx)(aP,{label:`Subagents’ conversations`,checked:e.subagents,onChange:e=>a(`subagents`,e),testId:`search-opt-subagents`}),s?(0,U.jsx)(`p`,{className:`text-[11px] text-warn`,children:`Tick at least one to search.`}):null]}):null,(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[n?(0,U.jsxs)(`label`,{className:`space-y-1 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`span`,{children:`Project`}),(0,U.jsxs)(`select`,{className:oP,value:e.projectId??``,onChange:e=>a(`projectId`,e.target.value||null),"data-testid":`search-opt-project`,children:[(0,U.jsx)(`option`,{value:``,children:`All projects`}),n.map(e=>(0,U.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}):null,(0,U.jsxs)(`label`,{className:`space-y-1 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`span`,{children:`When`}),(0,U.jsxs)(`select`,{className:oP,value:e.when,onChange:e=>a(`when`,e.target.value),"data-testid":`search-opt-when`,children:[(0,U.jsx)(`option`,{value:`any`,children:`Any time`}),(0,U.jsx)(`option`,{value:`today`,children:`Today`}),(0,U.jsx)(`option`,{value:`week`,children:`Last 7 days`}),(0,U.jsx)(`option`,{value:`month`,children:`Last 30 days`})]})]})]}),(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-x-4`,children:[(0,U.jsx)(aP,{label:`Match case`,checked:e.caseSensitive,onChange:e=>a(`caseSensitive`,e),testId:`search-opt-case`}),(0,U.jsx)(aP,{label:`Whole words`,checked:e.wholeWord,onChange:e=>a(`wholeWord`,e),testId:`search-opt-word`})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border pt-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:H(`text-xs`,tP(e)?`text-accent hover:underline`:`text-fg-faint`),disabled:!tP(e),onClick:()=>t($N),"data-testid":`search-opt-reset`,children:`Reset`}),(0,U.jsx)(`button`,{type:`button`,className:`rounded-md bg-surface-2 px-2 py-1 text-xs text-fg hover:bg-surface-3`,onClick:r,"data-testid":`search-opt-done`,children:`Done`})]})]})}function lP(e){return e.kind===`tool`?e.tool??`Tool`:e.role===`assistant`?`Model`:`You`}function uP({query:e,options:t}){let{state:n,actions:r}=W(),i=(0,v.useMemo)(()=>iP(e,t),[e,t]),[a,o]=(0,v.useState)(null),s=i?JSON.stringify(i):``;(0,v.useEffect)(()=>{if(!i)return;let e=!0,t=setTimeout(()=>{r.searchTranscripts(i).then(t=>{e&&o({key:s,res:t})})},350);return()=>{e=!1,clearTimeout(t)}},[s,r]);let c=a&&a.key===s?a:null,l=(0,v.useMemo)(()=>{let e=new Map;for(let t of c?.res?.hits??[]){let r=n.sessions.find(e=>e.id===t.sessionId)?.title||t.title||`Untitled chat`,i=e.get(t.sessionId)??{title:r,hits:[]};i.hits.push(t),e.set(t.sessionId,i)}return[...e.entries()]},[c,n.sessions]);if(!i)return(0,U.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-fg-faint`,"data-testid":`transcript-search-idle`,children:e.trim().length<2?`Type at least two characters to search every chat.`:`Tick what to look in — your messages, the model’s replies or the tools’ side.`});if(!c)return(0,U.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-fg-faint`,"data-testid":`transcript-search-busy`,children:`Searching every chat…`});if(c.res===null)return(0,U.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-danger`,"data-testid":`transcript-search-failed`,children:`This PC could not search its chats. Try again, or update OonaCode.`});let u=c.res.hits.length;return(0,U.jsxs)(`div`,{className:`pb-2`,"data-testid":`transcript-search-results`,children:[(0,U.jsx)(`div`,{className:`px-3 py-1.5 text-[11px] text-fg-faint`,children:u===0?`No message on this PC says that.`:`${u}${c.res.truncated?`+`:``} ${u===1?`message`:`messages`} in ${l.length} ${l.length===1?`chat`:`chats`}`}),l.map(([n,i])=>(0,U.jsxs)(`div`,{className:`mb-1.5`,"data-testid":`transcript-search-chat-${n}`,children:[(0,U.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded px-2 py-1 text-left text-[13px] font-semibold text-fg hover:bg-surface-2`,onClick:()=>r.openChatWithSearch(n,e.trim()),children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:i.title}),(0,U.jsx)(`span`,{className:`shrink-0 rounded-full bg-surface-3 px-1.5 text-[10px] font-semibold text-fg-muted`,children:i.hits.length})]}),i.hits.map(i=>(0,U.jsxs)(`button`,{type:`button`,className:`block w-full rounded px-2 py-1 pl-4 text-left text-xs hover:bg-surface-2`,onClick:()=>r.openChatWithSearch(n,e.trim()),"data-testid":`transcript-search-hit`,children:[(0,U.jsxs)(`span`,{className:`mb-0.5 flex items-center gap-1.5 text-[10px] text-fg-faint`,children:[i.kind===`tool`?(0,U.jsx)(K.Tool,{className:`h-3 w-3`}):i.role===`assistant`?(0,U.jsx)(K.Bot,{className:`h-3 w-3`}):(0,U.jsx)(K.User,{className:`h-3 w-3`}),(0,U.jsx)(`span`,{className:`font-medium text-fg-muted`,children:lP(i)}),i.subpath?(0,U.jsx)(`span`,{children:`· subagent`}):null,i.timestamp?(0,U.jsx)(`span`,{className:`ml-auto`,children:Op(i.timestamp)}):null]}),(0,U.jsx)(`span`,{className:`line-clamp-3 text-fg-muted`,children:eP(i.snippet,e,t).map((e,t)=>e.hit?(0,U.jsx)(`mark`,{className:`rounded bg-warn-soft px-0.5 text-fg`,children:e.text},t):(0,U.jsx)(`span`,{children:e.text},t))})]},`${i.seq}`))]},n))]})}function dP(e){return`${e.agentId??`claude-code`}:${e.id}`}function fP(e){let t=Date.parse(e.lastEntryAt??e.updatedAt);return Number.isFinite(t)?t:0}function pP(e,t,n=Date.now()){let r=nP(t.when,n)?.getTime()??null,i=be(e,{caseSensitive:t.caseSensitive,wholeWord:t.wholeWord});return e=>r!==null&&fP(e)<r?!1:i===null||[e.title,e.firstPrompt,e.lastPrompt,e.cwd,e.projectName,e.id].some(e=>typeof e==`string`&&(i.lastIndex=0,i.test(e)))}function mP(e,t,n=Date.now()){let r=e.trim();if(r.length<2||!t.mine&&!t.model&&!t.tools)return null;let i=nP(t.when,n);return{q:r,from:t.mine&&t.model?`both`:t.mine?`user`:t.model?`assistant`:`none`,tools:t.tools,subagents:t.subagents,...i?{since:i.toISOString()}:{},caseSensitive:t.caseSensitive,wholeWord:t.wholeWord}}function hP(e,t){let n=new Map;for(let t of e){let e=dP(t);n.set(e,e);for(let r of t.supersedes??[]){let i=dP({agentId:t.agentId,id:r});n.has(i)||n.set(i,e)}}let r=new Map;for(let e of t){let t=n.get(dP(e));if(!t)continue;let i=r.get(t);if(!i){r.set(t,{...e,snippets:e.snippets.slice(0,3)});continue}r.set(t,{...i,hits:i.hits+e.hits,...i.hitsCapped||e.hitsCapped?{hitsCapped:!0}:{},snippets:[...i.snippets,...e.snippets].slice(0,3)})}return r}var gP={names:`Names & folders`,conversations:`Whole conversations`,namesHint:`A chat’s name, its first and last message, and the folder it ran in.`,conversationsHint:`Every message of every chat listed here, read from the other apps’ own files. Pick whose words to look in.`};function _P(e){return e.partial===`time`?`Stopped after ${Math.round(e.elapsedMs/1e3)} s — these are the chats found until then. A longer phrase narrows it.`:e.partial===`chats`?`Stopped at ${e.chats.length} chats — a longer phrase narrows it.`:null}function vP(e){return e?e.replace(/[\\/]+$/,``).split(/[\\/]/).length<=2?e:`…${e.slice(-40)}`:`no folder recorded`}function yP(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function bP(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):``}function xP(e){return e.alreadyImported&&e.upToDate===!0}function SP(e){return!e.alreadyImported&&e.deletedHere===!0}function CP(e){return typeof e.unavailable==`string`&&e.unavailable.length>0}function wP(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 TP({open:e,onClose:t}){let{state:n,actions:r}=W(),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&&!SP(e)&&!CP(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(xP),[b]),O=(0,v.useMemo)(()=>b.filter(SP),[b]),[k,A]=(0,v.useState)(``),[j,M]=(0,v.useState)($N),[N,P]=(0,v.useState)(!1),F=(0,v.useRef)(null),I=k.trim()!==``,L=j.mode===`conversations`,[ee,te]=(0,v.useState)(new Set);(0,v.useEffect)(()=>te(new Set),[k,j]);let ne=(0,v.useMemo)(()=>L?mP(k,j):null,[L,k,j]),re=ne?JSON.stringify(ne):``,[ie,ae]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!e||!ne)return;let t=new AbortController,n=!0,i=setTimeout(()=>{r.searchImportChats(ne,t.signal).then(e=>{n&&ae({key:re,res:e})})},350);return()=>{n=!1,clearTimeout(i),t.abort()}},[e,re,r]);let oe=ie&&ie.key===re?ie:null,se=(0,v.useMemo)(()=>oe?.res?hP(b,oe.res.chats):null,[oe,b]),ce=(0,v.useMemo)(()=>I?L?se?b.filter(e=>se.has(dP(e))):[]:b.filter(pP(k,j)):null,[I,L,b,k,j,se]),le=(0,v.useMemo)(()=>ce??b.filter(e=>(C||!xP(e))&&(T||!SP(e))),[ce,b,C,T]),ue=(0,v.useMemo)(()=>new Set(le),[le]),de=e=>!I||L?e:eP(e,k,j).map((e,t)=>e.hit?(0,U.jsx)(`mark`,{className:`rounded bg-warn-soft px-0.5 text-fg`,children:e.text},t):(0,U.jsx)(`span`,{children:e.text},t)),fe=(0,v.useMemo)(()=>b.filter(e=>e.alreadyImported&&p.has(e.id)),[b,p]),pe=(0,v.useMemo)(()=>{let e=[...new Set(b.map(e=>e.agentName??`Claude Code`))];return e.length===1?e[0]:`coding-agent`},[b]),me=(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:wP(t.chats)}))},[b]);(0,v.useEffect)(()=>{h===null&&me.length>0&&g(new Set([me[0].key]))},[me,h]),(0,v.useEffect)(()=>{e&&(u(null),y(null),g(null),A(``),ae(null),P(!1),o(!0),r.scanClaudeSessions().then(e=>{f(e.sessions),m(new Set(e.sessions.filter(e=>!e.alreadyImported&&!SP(e)&&!CP(e)).map(e=>e.id)))}).catch(e=>u(e instanceof Error?e.message:String(e))).finally(()=>o(!1)))},[e]);let he=e=>m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),ge=n.prefs.claudeImportOffered,_e=(0,v.useCallback)(()=>{ge||r.savePrefs({claudeImportOffered:!0}),t()},[ge,r,t]),ve=async()=>{c(!0),u(null);try{let e=await r.importClaudeSessions([...p],fe.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,U.jsx)(tg,{open:e,title:`Import your ${pe} chats`,onClose:_e,wide:!0,footer:(0,U.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-2`,children:[(0,U.jsx)(`span`,{className:`text-[11px] text-fg-faint`,children:fe.length>0?(0,U.jsxs)(`span`,{className:`text-warn`,children:[fe.length,` already-imported `,fe.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,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(q,{onClick:_e,"data-testid":`import-claude-close`,children:_?`Done`:`Not now`}),_?null:(0,U.jsxs)(q,{variant:`primary`,busy:s,disabled:p.size===0,onClick:()=>void ve(),"data-testid":`import-claude-run`,children:[`Import `,p.size>0?p.size:``]})]})]}),children:(0,U.jsxs)(`div`,{className:`space-y-3`,"data-testid":`import-claude-body`,children:[a?(0,U.jsx)(`div`,{className:`text-sm text-fg-muted`,children:`Looking for chats on this PC…`}):null,i&&!_?(0,U.jsxs)(`div`,{className:`space-y-2`,"data-testid":`import-claude-progress`,children:[(0,U.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,U.jsxs)(`span`,{children:[`Importing `,(0,U.jsx)(`strong`,{children:i.done}),` of `,(0,U.jsx)(`strong`,{children:i.total}),`…`]}),(0,U.jsxs)(`span`,{className:`text-[11px] text-fg-faint`,children:[Math.round(i.done/Math.max(i.total,1)*100),`%`]})]}),(0,U.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded bg-surface-2`,children:(0,U.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,U.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,title:i.current,children:[`reading: `,i.current]}):null,(0,U.jsxs)(`div`,{className:`flex gap-3 text-[11px] text-fg-faint`,children:[(0,U.jsxs)(`span`,{children:[i.imported,` imported`]}),i.skipped>0?(0,U.jsxs)(`span`,{children:[i.skipped,` already in`]}):null,i.failed>0?(0,U.jsxs)(`span`,{className:`text-warn`,children:[i.failed,` could not be read`]}):null]}),(0,U.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,U.jsx)(`div`,{className:`rounded border border-danger/40 bg-danger/10 p-2 text-sm text-danger`,children:l}):null,_?(0,U.jsxs)(`div`,{className:`text-sm`,"data-testid":`import-claude-done`,children:[(0,U.jsxs)(`p`,{children:[`Imported `,(0,U.jsx)(`strong`,{children:_.imported}),` `,_.imported===1?`chat`:`chats`,_.replaced>0?(0,U.jsxs)(U.Fragment,{children:[` and rebuilt `,(0,U.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,U.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,U.jsxs)(`span`,{children:[t>0?`, `:``,(0,U.jsx)(`strong`,{children:e})]},e)),` `,`and filed `,_.projectsMade.length===1?`its`:`their`,` chats under`,` `,_.projectsMade.length===1?`it`:`them`,`.`]}):null,_.filed>0?(0,U.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,U.jsxs)(`p`,{className:`mt-1 text-warn`,children:[_.failed,` could not be read and were left alone.`]}):null,_.warnings.map(e=>(0,U.jsx)(`p`,{className:`mt-1 text-warn`,children:e},e))]}):null,!a&&!_&&!i&&d!==null&&d.length>0?(0,U.jsxs)(`div`,{className:`space-y-0.5 text-sm`,"data-testid":`import-claude-tally`,children:[(0,U.jsxs)(`p`,{children:[(0,U.jsx)(`strong`,{children:d.length}),` `,d.length===1?`chat`:`chats`,` on this PC`,me.length>0?` — `:``,me.map((e,t)=>(0,U.jsxs)(`span`,{children:[t>0?`, `:``,(0,U.jsx)(`strong`,{children:e.chats.length}),` `,e.name]},e.key))]}),(0,U.jsxs)(`p`,{className:`text-fg-muted`,children:[S.length>0?`${S.length} already imported · `:``,(0,U.jsx)(`strong`,{className:`text-fg`,children:x.length}),` new`]}),D.length>0?(0,U.jsxs)(`p`,{className:`text-[11px] text-fg-faint`,children:[D.length,` imported and up to date `,C?`shown`:`hidden`,` —`,` `,(0,U.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,U.jsxs)(`p`,{className:`text-[11px] text-fg-faint`,"data-testid":`import-claude-deleted-line`,children:[O.length,` you deleted here `,T?`shown`:`hidden`,` —`,` `,(0,U.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&&!I?(0,U.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,U.jsxs)(U.Fragment,{children:[(0,U.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,U.jsxs)(`div`,{className:`relative`,"data-testid":`import-search`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsxs)(`div`,{className:`relative flex-1`,children:[(0,U.jsx)(K.Search,{className:`pointer-events-none absolute left-2 top-2 w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`input`,{ref:F,"aria-label":`Search the chats to import`,className:H(Y,`pl-7`),placeholder:L?`Search inside every conversation`:`Search by name, message or folder`,value:k,onChange:e=>A(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(k!==``||N)&&(e.preventDefault(),e.stopPropagation(),N?P(!1):A(``))},"data-testid":`import-search-input`})]}),(0,U.jsxs)(J,{label:N?`Hide search options`:`Search options`,className:H(`relative`,N&&`text-accent`),"aria-pressed":N,onMouseDown:e=>e.preventDefault(),onClick:()=>P(e=>!e),"data-testid":`import-search-options-toggle`,children:[(0,U.jsx)(K.Sliders,{}),tP(j)?(0,U.jsx)(`span`,{className:`absolute right-0.5 top-0.5 h-1.5 w-1.5 rounded-full bg-accent`,"data-testid":`import-search-options-dot`}):null]}),I?(0,U.jsx)(J,{label:`Clear search`,onMouseDown:e=>e.preventDefault(),onClick:()=>{A(``),F.current?.focus()},"data-testid":`import-search-clear`,children:(0,U.jsx)(K.X,{})}):null]}),N?(0,U.jsx)(cP,{options:j,onChange:M,words:gP,onClose:()=>{P(!1),F.current?.focus()}}):null]}),I?(0,U.jsx)(OP,{query:k,conversations:L,request:ne!==null,answer:oe,matches:ce?.length??0,messages:[...se?.values()??[]].reduce((e,t)=>e+t.hits,0),capped:[...se?.values()??[]].some(e=>e.hitsCapped)}):null,(0,U.jsx)(`div`,{className:`max-h-96 space-y-3 overflow-y-auto`,children:me.map(e=>{let t=e.chats.filter(e=>ue.has(e)),n=t.filter(e=>!CP(e)).map(e=>e.id),r=n.filter(e=>p.has(e)).length,i=ce===null?h?.has(e.key)??!1:!ee.has(e.key),a=e.chats.filter(e=>!e.alreadyImported&&!SP(e)&&!CP(e)).length,o=e.chats.length-t.length;return t.length===0?null:(0,U.jsxs)(`div`,{className:`rounded border border-border`,"data-testid":`import-group-${e.key}`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border bg-surface-2 px-2 py-1.5`,children:[(0,U.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,onClick:()=>{let t=t=>{let n=new Set(t??[]);return n.has(e.key)?n.delete(e.key):n.add(e.key),n};ce===null?g(t):te(t)},"aria-expanded":i,"data-testid":`import-group-header-${e.key}`,children:[(0,U.jsx)(K.Chevron,{open:i,className:`w-3 h-3 shrink-0`}),e.name,(0,U.jsxs)(`span`,{className:`font-normal text-fg-faint`,children:[e.chats.length,` `,e.chats.length===1?`chat`:`chats`,a>0?` · ${a} new`:` · all imported`,ce===null?o>0?` · ${o} up to date hidden`:``:` · ${t.length} ${t.length===1?`match`:`matches`}`,r>0?` · ${r} selected`:``]})]}),(0,U.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,U.jsxs)(`label`,{className:`flex items-start gap-2 border-b border-border p-2 last:border-b-0 ${CP(e)?`cursor-default opacity-60`:`cursor-pointer hover:bg-surface-2`}`,"data-testid":`import-row-${e.id}`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:p.has(e.id),disabled:CP(e),onChange:()=>he(e.id),"aria-label":e.title??e.firstPrompt??e.id}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block truncate text-sm`,children:e.title||e.firstPrompt?de(e.title||e.firstPrompt||``):(0,U.jsx)(`span`,{className:`text-fg-faint`,children:`(no prompt)`})}),(0,U.jsxs)(`span`,{className:`mt-0.5 block truncate text-[11px] text-fg-faint`,children:[e.projectName?(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,U.jsx)(K.Project,{className:`w-3 h-3`}),de(e.projectName)]}):(0,U.jsxs)(U.Fragment,{children:[e.cwd?(0,U.jsx)(`span`,{title:e.cwd,children:de(vP(e.cwd))}):vP(e.cwd),e.cwd&&!e.cwdExists?` · folder is gone`:``]}),` `,`· `,e.entryCount,` entries`,e.bytes>0?` · ${yP(e.bytes)}`:``,` ·`,` `,bP(e.lastEntryAt??e.updatedAt),e.model?` · ${e.model}`:``]}),e.unavailable||e.note?(0,U.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,se?.has(dP(e))?(0,U.jsx)(DP,{hit:se.get(dP(e)),query:k,options:j,testId:`import-row-hits-${e.id}`}):null]}),SP(e)?(0,U.jsx)(`span`,{className:`mt-0.5 shrink-0 rounded bg-surface-2 px-1 text-[11px] text-fg-faint`,title:`You imported this chat and deleted it here; its original is still on this PC`,"data-testid":`import-deleted-${e.id}`,children:`deleted here`}):null,e.supersedes&&e.supersedes.length>0?(0,U.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,U.jsxs)(`span`,{className:`mt-0.5 flex shrink-0 items-center gap-1 text-[11px] text-fg-faint`,children:[(0,U.jsx)(K.Check,{className:`w-3 h-3 text-ok`}),`imported`,e.upToDate===!1?(0,U.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,U.jsx)(K.ArrowDown,{className:`w-2.5 h-2.5`}),`behind`]}):null,xP(e)?(0,U.jsx)(`span`,{"data-testid":`import-uptodate-${e.id}`,children:`· up to date`}):null]}):null]},e.id)):null]},e.key)})}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3 text-[11px] text-fg-faint`,children:[(0,U.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>{let e=le.filter(e=>!CP(e)).map(e=>e.id);m(t=>ce===null?new Set(e):new Set([...t,...e]))},"data-testid":`import-claude-select-all`,children:ce===null?`Select all`:`Select all matches`}),(0,U.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>m(e=>{if(ce===null)return new Set;let t=new Set(e);for(let e of le)t.delete(e.id);return t}),"data-testid":`import-claude-select-none`,children:ce===null?`Select none`:`Unselect matches`})]})]}):null]})})}function EP(e){let t=e.kind===`tool`?e.tool??`Tool`:e.role===`assistant`?`Model`:`You`;return e.subagent?`${t} (subagent)`:t}function DP({hit:e,query:t,options:n,testId:r}){return(0,U.jsxs)(`span`,{className:`mt-1 block space-y-0.5`,"data-testid":r,children:[(0,U.jsxs)(`span`,{className:`block text-[11px] font-medium text-fg-muted`,children:[e.hits,e.hitsCapped?`+`:``,` `,e.hits===1&&!e.hitsCapped?`message says`:`messages say`,` it`]}),e.snippets.map((e,r)=>(0,U.jsxs)(`span`,{className:`block line-clamp-2 text-[11px] text-fg-muted`,"data-testid":`import-row-snippet`,children:[(0,U.jsxs)(`span`,{className:`font-medium text-fg-faint`,children:[EP(e),`:`]}),` `,eP(e.snippet,t,n).map((e,t)=>e.hit?(0,U.jsx)(`mark`,{className:`rounded bg-warn-soft px-0.5 text-fg`,children:e.text},t):(0,U.jsx)(`span`,{children:e.text},t))]},r))]})}function OP({query:e,conversations:t,request:n,answer:r,matches:i,messages:a,capped:o}){let s=(e,t,n=`text-fg-muted`)=>(0,U.jsx)(`p`,{className:`text-[11px] ${n}`,"data-testid":t,children:e});if(!t)return i===0?s(`No chat’s name, message or folder says “${e.trim()}”. Whole conversations, in the search options, looks inside them.`,`import-search-none`):s(`${i} ${i===1?`chat matches`:`chats match`}`,`import-search-count`);if(!n)return s(e.trim().length<2?`Type at least two characters to search inside the conversations.`:`Tick what to look in — your messages, the model’s replies or the tools’ side.`,`import-search-idle`);if(!r)return s(`Searching every conversation on this PC…`,`import-search-busy`);if(r.res===null)return s(`This PC could not search its conversations. Try again, or update OonaCode.`,`import-search-failed`,`text-danger`);let c=r.res,l=_P(c),u=c.sources.filter(e=>e.note).map(e=>`${e.agentName}: ${e.note}`);return(0,U.jsxs)(`div`,{className:`space-y-0.5`,children:[i===0?s(c.partial===`aborted`?`The search was stopped.`:`No conversation on this PC says that.`,`import-search-none`):s(`${i} ${i===1?`chat says`:`chats say`} it · ${a}${o?`+`:``} ${a===1&&!o?`message`:`messages`}`,`import-search-count`),l?s(l,`import-search-partial`,`text-warn`):null,u.map(e=>(0,U.jsx)(`p`,{className:`text-[11px] text-fg-faint`,"data-testid":`import-search-source-note`,children:e},e))]})}var kP={model:null,previousModel:null,costUsd:0,inputTokens:0,outputTokens:0,turns:0,durationMs:0,contextTokens:null,contextWindow:null,contextUsed:null,costSource:`engine`,credits:null,resetAtIndex:null,didReset:!1,countedResults:0};function AP(e,t){let n=t?ks(t):null,r=null,i=null;for(let t=0;t<e.length;t++){let a=e[t];if(!a||a.kind!==`assistant`||!N(a.model))continue;let o=ks(a.model);n!==null&&o!==n&&(r=t,i=n),n=o}return{index:r,from:i,to:n}}function jP(e){let{items:t,session:n=null,initModel:r=null,boundary:i=null,models:a}=e,o=e.contextTokens!=null&&e.contextTokens>0?e.contextTokens:null;if(t.length===0&&!n)return kP;let s=AP(t,r),c=i&&i.index>=0?Math.min(i.index,t.length):null,l=null,u=null;s.index!==null&&(c===null||s.index>=c)?(l=s.index,u=s.from):c!==null&&(l=c,u=i?.from??s.from);let d=l??0,f=0,p=0,m=0,h=0,g=0,_=0;for(let e=d;e<t.length;e++){let n=t[e];!n||n.kind!==`result`||(_+=1,f+=n.costUsd,p+=n.inputTokens,m+=n.outputTokens,h+=n.numTurns,g+=n.durationMs)}_===0&&l===null&&n&&(f=n.totalCostUsd,p=n.inputTokens,m=n.outputTokens);let v=`engine`,y=null;n&&n.providerId===`oonacode`&&(f=n.totalCostUsd,y=n.poolCredits??null,v=`gateway`);let b=r?ks(r):null,x=i&&c!==null&&l===c?i.to:s.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:u,costUsd:f,inputTokens:p,outputTokens:m,turns:h,durationMs:g,contextTokens:o,contextWindow:C,contextUsed:C&&C>0&&o!==null?Math.min(1,o/C):null,resetAtIndex:l,didReset:l!==null,countedResults:_,costSource:v,credits:y}}var MP=[...Nl.what,...Nl.when,...Nl.who,...Nl.yours,...Nl.where];function NP({sessionId:e,entryCount:t}){let{state:n,actions:r}=W(),i=n.chatAboutsChange,a=gl(n.settings??{}),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(``),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)(!1),[y,b]=(0,v.useState)(null),[x,S]=(0,v.useState)(null),C=(0,v.useRef)(i.seq),w=(0,v.useRef)(!0);(0,v.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]);let T=(0,v.useCallback)(async()=>{let t=await r.getChatAbout(e);if(w.current){if(t===`unsupported`){l(!0);return}t!==null&&(l(!1),s(t))}},[r,e]);if((0,v.useEffect)(()=>{T()},[T]),(0,v.useEffect)(()=>{i.seq!==C.current&&(C.current=i.seq,Sl(i,e)&&T())},[i,e,T]),c||o===null)return null;let E=()=>{p(o.about??``),d(!0),S(null),b(null)},D=async()=>{if(jl(f))return;let t=f.trim()===``;h(!0);try{let n=await r.updateChatAbout(e,t?null:f);if(!w.current||!n)return;s(n),d(!1),S(t?a.enabled?`Cleared. The housekeeper writes a new about at the chat’s next change.`:`Cleared. None is written while chat abouts are off.`:null)}finally{w.current&&h(!1)}},O=async()=>{_(!0),b(null),S(null);try{let t=await r.regenerateChatAbout(e);if(!w.current)return;t.about&&s(t.about),t.ok||b(t.error??`The about could not be written.`)}finally{w.current&&_(!1)}},k=Ml(f,a.maxWords),A=jl(f),j=Cl(o);return(0,U.jsxs)(`div`,{className:`mb-2`,"data-testid":`session-about`,children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,U.jsx)(`span`,{"aria-hidden":`true`,children:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`})}),`About`,(0,U.jsx)(Zh,{label:`About`,details:(0,U.jsx)(Qh,{items:MP})}),o.stale&&o.about?(0,U.jsx)(`span`,{title:Nl.stale,"data-testid":`session-about-stale`,children:(0,U.jsx)(X,{tone:`warn`,children:`stale`})}):null]}),u?(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(`textarea`,{className:H(Y,`min-h-[7rem] resize-y text-xs`),value:f,onChange:e=>p(e.target.value),"aria-label":`This chat’s about`,placeholder:`What this chat works on, for your other chats to read`,autoFocus:!0,"data-testid":`session-about-input`}),(0,U.jsxs)(`div`,{className:H(`text-[11px]`,k.overChars?`text-danger`:k.overWords?`text-warn`:`text-fg-faint`),"data-testid":`session-about-count`,children:[k.words,` / `,a.maxWords,` words · `,k.chars.toLocaleString(`en-US`),` /`,` `,ml.userChars.toLocaleString(`en-US`),` characters`]}),A?(0,U.jsx)(`div`,{className:`text-[11px] text-danger`,"data-testid":`session-about-problem`,children:A}):k.overWords?(0,U.jsxs)(`div`,{className:`text-[11px] text-warn`,children:[`Longer than the `,a.maxWords,` words the housekeeper writes; your other chats read all of it.`]}):null,(0,U.jsx)(`div`,{className:`text-[11px] text-fg-faint`,children:`Saved empty, it is cleared, and the housekeeper writes one again at the chat’s next change.`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:()=>void D(),busy:m,disabled:A!==null,"data-testid":`session-about-save`,children:`Save`}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>d(!1),disabled:m,"data-testid":`session-about-cancel`,children:`Cancel`})]})]}):(0,U.jsxs)(U.Fragment,{children:[o.about?(0,U.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-xs text-fg`,"data-testid":`session-about-text`,children:o.about}):(0,U.jsxs)(`p`,{className:`text-[11px] text-fg-muted`,"data-testid":`session-about-missing`,children:[`No about yet. `,kl(o,{enabled:a.enabled,entryCount:t})]}),o.about&&o.aboutAt?(0,U.jsxs)(`div`,{className:`mt-0.5 text-[11px] text-fg-faint`,title:Ap(o.aboutAt),"data-testid":`session-about-written`,children:[`Written `,Op(o.aboutAt),j?` by ${j}`:``]}):null,o.about&&o.pending?(0,U.jsx)(`div`,{className:`text-[11px] text-accent`,children:`Being written again now…`}):null,o.about&&o.lastError?(0,U.jsxs)(`div`,{className:`text-[11px] text-danger`,"data-testid":`session-about-last-error`,children:[`The last attempt failed: `,o.lastError]}):null,(0,U.jsxs)(`div`,{className:`mt-0.5 text-[11px] text-fg-faint`,title:o.route?`Paid by ${wl[o.route]}`:void 0,"data-testid":`session-about-spend`,children:[`Cost so far: `,Dl(o.spend,o.route)]}),x?(0,U.jsx)(`div`,{className:`mt-0.5 text-[11px] text-fg-muted`,"data-testid":`session-about-note`,children:x}):null,y?(0,U.jsx)(`div`,{className:`mt-0.5 text-[11px] text-danger`,role:`alert`,"data-testid":`session-about-regen-error`,children:y}):null,(0,U.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-1.5`,children:[(0,U.jsxs)(q,{size:`sm`,variant:`ghost`,onClick:E,disabled:g,title:Nl.edit,"data-testid":`session-about-edit`,children:[(0,U.jsx)(K.Edit,{className:`h-3 w-3`}),` Edit`]}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void O(),disabled:!a.enabled||g,title:a.enabled?Nl.regenerate:Nl.regenerateOff,"data-testid":`session-about-regenerate`,children:g?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(K.Spinner,{className:`h-3 w-3`}),` Writing…`]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(K.Refresh,{className:`h-3 w-3`}),` Regenerate`]})})]}),a.enabled?null:(0,U.jsx)(`div`,{className:`mt-0.5 text-[11px] text-fg-faint`,"data-testid":`session-about-off`,children:`Regenerate is unavailable: chat abouts are off.`})]})]})}function PP({label:e,icon:t,children:n}){return(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,U.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-xs text-fg-faint`,children:[t?(0,U.jsx)(`span`,{className:`shrink-0 text-fg-faint`,"aria-hidden":`true`,children:t}):null,e]}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-right text-xs font-medium text-fg`,children:n})]})}function FP({label:e,icon:t}){return(0,U.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,U.jsx)(`span`,{"aria-hidden":`true`,children:t}),e]})}var IP={provider:(0,U.jsx)(K.Plug,{className:`w-3.5 h-3.5`}),route:(0,U.jsx)(K.Globe,{className:`w-3.5 h-3.5`}),model:(0,U.jsx)(K.Bot,{className:`w-3.5 h-3.5`}),permission:(0,U.jsx)(K.Shield,{className:`w-3.5 h-3.5`}),context:(0,U.jsx)(K.Brain,{className:`w-3.5 h-3.5`}),window:(0,U.jsx)(K.Panel,{className:`w-3.5 h-3.5`}),compactions:(0,U.jsx)(K.CollapseAll,{className:`w-3.5 h-3.5`}),usage:(0,U.jsx)(K.Coins,{className:`w-3.5 h-3.5`}),tokensIn:(0,U.jsx)(K.Download,{className:`w-3.5 h-3.5`}),tokensOut:(0,U.jsx)(K.Upload,{className:`w-3.5 h-3.5`}),duration:(0,U.jsx)(K.Clock,{className:`w-3.5 h-3.5`}),turns:(0,U.jsx)(K.Send,{className:`w-3.5 h-3.5`}),session:(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5`}),status:(0,U.jsx)(K.Monitor,{className:`w-3.5 h-3.5`}),updated:(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`}),entries:(0,U.jsx)(K.Menu,{className:`w-3.5 h-3.5`}),mirror:(0,U.jsx)(K.Copy,{className:`w-3.5 h-3.5`}),project:(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5`}),folder:(0,U.jsx)(K.Folder,{className:`w-3.5 h-3.5`})};function LP({used:e}){let t=Math.round(e*100);return(0,U.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,U.jsx)(`div`,{className:H(`h-full rounded-full`,t>=90?`bg-danger`:t>=70?`bg-warn`:`bg-accent`),style:{width:`${t}%`}})})}function RP(){let{state:e,actions:t}=W(),n=zh(),r=n?e.remote.tabs[n.id]!==void 0:!1,i=n?e.drafts[n.id]!==void 0:!1,a=Rh(),o=e.currentSessionId,s=n?.projectId?e.vaultProjects.find(e=>e.id===n.projectId):void 0,c=s?.instructions.trim()??``,l=n?.providerId??e.activeProviderId,u=e.providers.find(e=>e.definition.id===l),d=u?.definition.models??(l?e.models[l]?.models:void 0),f=(0,v.useMemo)(()=>{let e=u?.definition;return e?xs(e,{credentialClass:(u.credentials.find(e=>e.variantId===n?.variantId)??u.credentials[0])?.class??null}):null},[u,n?.variantId]),p=(0,v.useMemo)(()=>jP({items:a?.items??[],session:n,initModel:a?.init?.model??null,boundary:o?e.modelBoundaries[o]??null:null,models:d,contextTokens:a?.contextTokens??null}),[a?.items,a?.init?.model,a?.contextTokens,n,o,e.modelBoundaries,d]),m=(0,v.useMemo)(()=>(a?.items??[]).filter(e=>e.kind===`user`&&e.compactSummary).length,[a?.items]);return(0,U.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,U.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,U.jsx)(K.Info,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`span`,{className:`flex-1 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:`Session info`}),(0,U.jsx)(J,{label:`Hide session info`,className:`p-1`,onClick:()=>void t.savePrefs({sessionPanelOpen:!1}),children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]}),n?(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-2`,children:[p.didReset?(0,U.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`,p.previousModel?` (was ${p.previousModel})`:``,`.`]}):null,!r&&!i?(0,U.jsx)(NP,{sessionId:n.id,entryCount:n.entryCount??null},n.id):null,(0,U.jsxs)(`div`,{className:`mb-2`,children:[(0,U.jsx)(FP,{label:`Model`,icon:IP.model}),(0,U.jsx)(PP,{label:`Provider`,icon:IP.provider,children:u?.definition.displayName??l??`—`}),(0,U.jsx)(PP,{label:`Route`,icon:IP.route,children:f?(0,U.jsx)(X,{tone:f.viaGateway?`accent`:`ok`,children:f.badge}):`—`}),f?(0,U.jsx)(`div`,{className:`pb-1 text-[11px] leading-snug text-fg-faint`,children:f.detail}):null,(0,U.jsx)(PP,{label:`Model`,icon:IP.model,children:p.model??n.model??`—`}),(0,U.jsx)(PP,{label:`Permission mode`,icon:IP.permission,children:(0,U.jsx)(X,{children:n.permissionMode})})]}),(0,U.jsxs)(`div`,{className:`mb-2`,children:[(0,U.jsx)(FP,{label:`Context`,icon:IP.context}),p.contextUsed!==null&&p.contextTokens!==null?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(LP,{used:p.contextUsed}),(0,U.jsxs)(`div`,{className:`mt-1 text-[11px] text-fg-muted`,"data-testid":`context-used`,children:[Dp(p.contextTokens),` / `,Dp(p.contextWindow??0),` `,`tokens (`,Math.round(p.contextUsed*100),`%)`]})]}):(0,U.jsx)(`div`,{className:`text-[11px] text-fg-muted`,"data-testid":`context-used`,children:p.contextTokens===null?`Measured at the next reply`:`${Dp(p.contextTokens)} tokens (window unknown)`}),(0,U.jsx)(PP,{label:`Context window`,icon:IP.window,children:(0,U.jsx)(`span`,{"data-testid":`context-window`,children:p.contextWindow?`${Dp(p.contextWindow)} tokens`:`unknown`})}),(0,U.jsx)(PP,{label:`Compactions`,icon:IP.compactions,children:(0,U.jsx)(`span`,{"data-testid":`compaction-count`,children:m})})]}),(0,U.jsxs)(`div`,{className:`mb-2`,children:[(0,U.jsx)(FP,{label:`Usage`,icon:IP.usage}),(0,U.jsx)(PP,{label:`Tokens in`,icon:IP.tokensIn,children:Dp(p.inputTokens)}),(0,U.jsx)(PP,{label:`Tokens out`,icon:IP.tokensOut,children:Dp(p.outputTokens)}),p.credits===null?null:(0,U.jsx)(PP,{label:`Credits used`,icon:IP.usage,children:p.credits.toLocaleString(`en-US`,{maximumFractionDigits:2})}),(0,U.jsx)(PP,{label:`Duration`,icon:IP.duration,children:p.countedResults>0&&Ep(p.durationMs)||`—`}),(0,U.jsx)(PP,{label:`Turns`,icon:IP.turns,children:p.countedResults>0?p.turns:`—`})]}),(0,U.jsxs)(`div`,{className:`mb-2`,children:[(0,U.jsx)(FP,{label:`Session`,icon:IP.session}),(0,U.jsx)(PP,{label:`Status`,icon:IP.status,children:(0,U.jsx)(X,{tone:a?.status===`error`?`danger`:a?.status===`running`?`accent`:a?.status===`waiting_permission`?`warn`:`neutral`,children:a?.status??n.status})}),(0,U.jsx)(PP,{label:`Updated`,icon:IP.updated,children:Op(n.updatedAt)}),(0,U.jsx)(PP,{label:`Entries`,icon:IP.entries,children:n.entryCount}),(0,U.jsx)(PP,{label:`History mirror`,icon:IP.mirror,children:n.mirrored?`on`:`off`}),(0,U.jsx)(PP,{label:`Project`,icon:IP.project,children:(0,U.jsx)(`span`,{"data-testid":`session-project`,children:s?s.name:`—`})}),c?(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words pb-1 text-[11px] leading-snug text-fg-faint`,"data-testid":`session-project-instructions`,children:c.length>300?`${c.slice(0,300)}\u2026`:c}):null,r?null:(0,U.jsx)(`button`,{type:`button`,className:`text-[11px] text-accent hover:underline`,onClick:()=>t.openAssignProject(n.id),"data-testid":`session-change-project`,children:s?`Move to another project…`:`Move to a project…`}),(0,U.jsx)(PP,{label:`Folder`,icon:IP.folder,children:n.projectDir?`project`:`own workspace`}),(0,U.jsx)(`div`,{className:`mt-1 break-all font-mono text-[10px] text-fg-faint`,"data-testid":`session-folder`,children:n.cwd}),r?null:(0,U.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…`})]}),r?null:(0,U.jsxs)(`div`,{className:`space-y-1.5`,"data-testid":`session-scheduled-tasks`,children:[(0,U.jsx)(FP,{label:`Scheduled tasks`,icon:IP.session}),(0,U.jsx)(GO,{sessionId:n.id})]}),a?.init?(0,U.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[`engine `,a.init.claudeCodeVersion,` · `,a.init.tools.length,` tools`]}):null]}):(0,U.jsx)(`div`,{className:`p-4 text-xs text-fg-faint`,children:`Open a chat to see its statistics.`})]})}function zP(e){let t=e=>e.type===`dir`?0:1;return[...e].sort((e,n)=>t(e)-t(n)||e.name.localeCompare(n.name))}function BP(e){let t=[];return e.target.type===`file`&&t.push({key:`open`,label:`Open`,icon:(0,U.jsx)(K.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,U.jsx)(K.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,U.jsx)(K.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,U.jsx)(K.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:e.onDelete,testId:`files-menu-delete`}),t}function VP(e,t){return t instanceof zd&&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 ${mE(e.path)}: ${t instanceof Error?t.message:String(t)}`}function HP(){let{state:e,dispatch:t,actions:n,api:r}=W(),i=zh(),a=Rh(),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),j=(0,v.useCallback)(()=>O(null),[]),M=(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:zP(n.entries),loading:!1,error:null}}))}catch(n){if(x.current!==t)return;Ud(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&&M(``)},[o,s,M]);let N=(0,v.useRef)(c);(0,v.useEffect)(()=>{if(N.current&&!c&&o&&!s)for(let e of Object.keys(y.current))(e===``||b.current.has(e))&&M(e);N.current=c},[c,o,s,M]);let P=e=>{h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),y.current[e]?.entries||M(e)),n})},F=()=>{if(o){M(``);for(let e of m)M(e)}},I=(e,t)=>{ZD(e).then(e=>n.toast(e?`success`:`error`,e?t:`Could not copy to the clipboard`))},L=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??[])_E(n,e.path)&&t({type:`file_close`,sessionId:i,path:n});x.current===i&&(h(t=>new Set([...t].filter(t=>!_E(t,e.path)))),p(t=>Object.fromEntries(Object.entries(t).filter(([t])=>!_E(t,e.path)))),M(gE(e.path))),n.toast(`success`,`Deleted ${mE(e.path)}`)}catch(t){n.toast(`error`,VP(e,t)),x.current===i&&M(gE(e.path))}finally{A(!1),O(null)}}},ee=C?BP({target:C.target,remote:s,canDelete:typeof r.deleteSessionFile==`function`,canCopyPath:d!==``,onOpen:()=>n.openFile(C.target.path),onCopyPath:()=>I(bE(d,C.target.path,u),`Path copied`),onCopyRelativePath:()=>I(yE(C.target.path,vE(d,u)),`Relative path copied`),onDelete:()=>O(C.target)}):[],te=()=>void n.savePrefs({explorerOpen:!1}),ne=i?.cwd?mE(i.cwd)||i.cwd:`Files`,re=f[``],ie=C?.target.path??null,ae=(0,v.useMemo)(()=>o?s?(0,U.jsx)(WP,{children:`This chat runs on another PC; its files can be browsed there.`}):g?(0,U.jsx)(WP,{children:`This host is too old to list files — update it from the title bar.`}):re?.error&&!re.entries?(0,U.jsx)(WP,{tone:`danger`,children:re.error}):re?.entries?re.entries.length===0?(0,U.jsx)(WP,{children:`The folder is empty.`}):(0,U.jsx)(`ul`,{role:`tree`,"aria-label":`Workspace files`,className:`py-1`,children:(0,U.jsx)(qP,{rel:``,depth:0,tree:f,expanded:m,activeFile:l,menuPath:ie,onToggle:P,onOpen:e=>n.openFile(e),onMenu:E})}):(0,U.jsx)(WP,{children:`Listing…`}):(0,U.jsx)(WP,{children:`Open a chat to browse the folder it works in.`}),[o,s,g,re,f,m,l,ie,n]);return(0,U.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,U.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,U.jsx)(K.Folder,{className:`w-3.5 h-3.5 text-fg-faint`}),(0,U.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:ne}),(0,U.jsx)(J,{label:`Refresh files`,className:`p-1`,onClick:F,disabled:!o||s,"data-testid":`file-explorer-refresh`,children:(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(J,{label:`Hide files`,className:`p-1`,onClick:te,children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:ae}),(0,U.jsx)(lg,{open:C!==null,at:C?.at??{x:0,y:0},anchorEl:C?.el??null,label:`File actions`,testId:`files-context-menu`,onClose:T,items:ee}),(0,U.jsx)(UP,{target:D,absolute:D?d?bE(d,D.path,u):D.path:``,platform:u,busy:k,onConfirm:()=>void L(),onClose:j})]})}function UP({target:e,absolute:t,platform:n,busy:r,onConfirm:i,onClose:a}){let o=e?.type===`dir`;return(0,U.jsx)(tg,{open:e!==null,title:o?`Delete this folder?`:`Delete this file?`,onClose:a,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:a,disabled:r,"data-testid":`files-delete-cancel`,children:`Cancel`}),(0,U.jsx)(q,{variant:`danger`,busy:r,onClick:i,"data-testid":`files-delete-confirm`,children:`Delete permanently`})]}),children:(0,U.jsxs)(`div`,{className:`space-y-2 text-sm text-fg-muted`,"data-testid":`files-delete-dialog`,children:[(0,U.jsx)(`p`,{className:`break-all rounded bg-surface-2 px-2 py-1 font-mono text-xs text-fg`,children:t}),(0,U.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 WP({children:e,tone:t}){return(0,U.jsx)(`div`,{className:H(`p-4 text-xs`,t===`danger`?`text-danger`:`text-fg-faint`),children:e})}function GP(e){let t=e.getBoundingClientRect();return{x:t.left+24,y:t.bottom}}function KP(e,t){return{onContextMenu:n=>{n.preventDefault();let r=n.currentTarget;t(e,n.clientX===0&&n.clientY===0?GP(r):{x:n.clientX,y:n.clientY},r)},onKeyDown:n=>{(n.key===`ContextMenu`||n.shiftKey&&n.key===`F10`)&&(n.preventDefault(),t(e,GP(n.currentTarget),n.currentTarget))}}}function qP({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,U.jsx)(`li`,{className:`px-2 py-1 text-[11px] text-danger`,style:{paddingLeft:`${.5+t*.75}rem`},children:l.error}):l.entries?(0,U.jsx)(U.Fragment,{children:l.entries.map(l=>{let u=hE(e,l.name),d=a===u;if(l.type===`dir`){let e=r.has(u);return(0,U.jsxs)(`li`,{role:`treeitem`,"aria-expanded":e,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>o(u),...KP({path:u,type:`dir`},c),"data-testid":`explorer-dir-${u}`,className:H(`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,U.jsx)(K.ChevronRight,{className:H(`w-3 h-3 shrink-0 text-fg-faint transition-transform`,e&&`rotate-90`)}),(0,U.jsx)(K.Folder,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,U.jsx)(`span`,{className:`truncate`,children:l.name})]}),e?(0,U.jsx)(`ul`,{role:`group`,children:(0,U.jsx)(qP,{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,U.jsx)(`li`,{role:`treeitem`,"aria-selected":f,children:(0,U.jsxs)(`button`,{type:`button`,onClick:()=>s(u),...KP({path:u,type:l.type},c),disabled:l.type!==`file`,"data-testid":`explorer-file-${u}`,title:`${u} · ${zE(l.size)}`,className:H(`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,U.jsx)(K.File,{className:`w-3.5 h-3.5 shrink-0 text-fg-faint`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:l.name}),(0,U.jsx)(`span`,{className:`shrink-0 text-[10px] text-fg-faint`,children:zE(l.size)})]})},u)})}):(0,U.jsx)(`li`,{className:`px-2 py-1 text-[11px] text-fg-faint`,style:{paddingLeft:`${.5+t*.75}rem`},children:`Listing…`}):null}var JP=524288,YP={shown:null,bytes:0,pixels:null,error:null,loading:!1},XP=[{value:`source`,label:`Source`},{value:`preview`,label:`Preview`}],ZP=`preview`;function QP(){let{state:e,actions:t,api:n}=W(),r=Rh(),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)(ZP),p=e=>{ZP=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]??YP)}}}),g=async e=>{if(!i)return;let t=i;h(t,e,e=>({...e,loading:!0,error:null}));try{let r=await $P(n,t,e);if(m.current!==t)return;h(t,e,e=>{let t=e.shown!==null&&nF(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,U.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,U.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,U.jsx)(K.File,{className:`w-3.5 h-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:o,children:o}),x?.pixels?(0,U.jsxs)(`span`,{className:`shrink-0`,"data-testid":`file-viewer-pixels`,children:[x.pixels.w,` × `,x.pixels.h]}):null,S?(0,U.jsx)(`span`,{className:`shrink-0`,children:zE(x.bytes)}):null,C?(0,U.jsx)(`span`,{className:`shrink-0 font-sans`,children:(0,U.jsx)(rg,{label:`Markdown view`,value:d,options:XP,onChange:p})}):null,(0,U.jsx)(`span`,{className:`shrink-0 rounded bg-surface-2 px-1 text-[10px] uppercase tracking-wide`,children:`read-only`}),(0,U.jsx)(J,{label:`Re-read this file`,className:`p-1`,onClick:()=>void g(o),"data-testid":`file-viewer-refresh`,children:(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(J,{label:`Back to the chat`,className:`p-1`,onClick:()=>t.showChat(),"data-testid":`file-viewer-back`,children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto px-3 py-2`,"data-testid":`file-viewer-body`,children:(0,U.jsx)(rF,{path:o,loaded:x,markdownMode:d,onPixels:(e,t)=>_(o,e,t)},`${i}\n${o}`)})]})}async function $P(e,t,n){let r=DE(n),i=e.readSessionFileBytes?async()=>new Uint8Array(await e.readSessionFileBytes(t,n)):null;if(i&&r.mime!==null){let e=await i();return{shown:eF(r.kind,r.mime,e),bytes:e.byteLength}}if(i&&r.kind===`unknown`)return tF(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 IE(a)?i?tF(await i(),o):{shown:{kind:`binary`},bytes:a.length}:{shown:{kind:`text`,text:a,markdown:o},bytes:a.length}}function eF(e,t,n){return e===`pdf`?{kind:`pdf`}:{kind:e,blob:new Blob([n],{type:t}),digest:RE(n)}}function tF(e,t){let n=NE(e);if(n)return{shown:eF(n.kind,n.mime,e),bytes:e.length};let r=LE(e);return{shown:r===null?{kind:`binary`}:{kind:`text`,text:r,markdown:t},bytes:e.length}}function nF(e,t){return`digest`in e&&`digest`in t&&e.kind===t.kind&&e.digest===t.digest}function rF({path:e,loaded:t,markdownMode:n,onPixels:r}){if(!t||t.loading&&t.shown===null)return(0,U.jsx)(iF,{children:`Reading…`});if(t.error&&t.shown===null)return(0,U.jsx)(iF,{tone:`danger`,testId:`file-viewer-error`,children:t.error});let i=t.shown;if(!i)return null;let a=mE(e),o=zE(t.bytes);switch(i.kind){case`image`:return(0,U.jsx)(cF,{blob:i.blob,name:a,onPixels:r},i.digest);case`audio`:case`video`:return(0,U.jsx)(lF,{kind:i.kind,blob:i.blob,name:a,size:o},i.digest);case`pdf`:return(0,U.jsxs)(iF,{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,U.jsxs)(iF,{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,U.jsx)(aF,{path:e,text:i.text,markdown:i.markdown,mode:n})}}function iF({children:e,tone:t,testId:n}){return(0,U.jsx)(`div`,{className:t===`danger`?`py-4 text-xs text-danger`:`py-4 text-xs text-fg-faint`,"data-testid":n,children:e})}function aF({path:e,text:t,markdown:n,mode:r}){let i=t.length>JP,a=i?t.slice(0,JP):t;return(0,U.jsxs)(U.Fragment,{children:[n&&r===`preview`?(0,U.jsx)(`div`,{className:`max-w-3xl py-2 text-sm`,"data-testid":`file-viewer-markdown`,children:(0,U.jsx)(oO,{text:a})}):(0,U.jsx)($D,{code:a,language:TE(e)}),i?(0,U.jsxs)(`div`,{className:`pb-2 text-[11px] text-fg-faint`,children:[`Showing the first `,zE(JP),` of `,zE(t.length),`.`]}):null]})}function oF(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 sF={backgroundImage:`repeating-conic-gradient(rgb(128 128 128 / 0.22) 0% 25%, transparent 0% 50%)`,backgroundSize:`16px 16px`};function cF({blob:e,name:t,onPixels:n}){let r=oF(e),[i,a]=(0,v.useState)(!1);return i?(0,U.jsxs)(iF,{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,U.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,U.jsx)(`img`,{src:r,alt:t,draggable:!1,"data-testid":`file-viewer-image`,className:`block max-h-full max-w-full object-contain`,style:sF,onLoad:e=>n(e.currentTarget.naturalWidth,e.currentTarget.naturalHeight),onError:()=>a(!0)})}):null}function lF({kind:e,blob:t,name:n,size:r}){let i=oF(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,U.jsx)(iF,{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,U.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,U.jsx)(`audio`,{src:i,controls:!0,preload:`metadata`,onError:s,"data-testid":`file-viewer-audio`,className:`w-full max-w-xl`})}):(0,U.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center`,children:(0,U.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 uF={autoAccept:{hint:`Allow every tool the agent wants to use, without asking you. Off by default.`,details:[`Answered by this PC itself, so it covers EVERY chat running here — started in this app, the oona terminal, your phone, Telegram, the website or another PC.`,`The agent’s questions to you (its multiple-choice cards) still wait for your answer.`,`Subagents never ask: their tool requests are always allowed.`,`Takes effect at the next tool request, even in a chat that is already working.`,`What a chat may attempt at all is still its own Build / Plan / Ask first / Autonomous choice in the composer; this only answers the prompts it would have shown you.`]},reasoning:{hint:`Show the model’s thinking between its messages.`,details:[`Display only — the model thinks the same either way.`,`Hidden thinking is also left out of chat search (Ctrl+F).`,`For the windows this PC serves (this app, the local web UI). The phone has its own switch.`]},colourScheme:{hint:`System follows your desktop’s light or dark setting.`,details:[`Also colours this window’s title bar and menu.`,`Your own colours per element are under Theme.`]},notifications:{hint:`Desktop notifications from this app while its window is not in front.`,details:[`Nothing pops up while you are looking at the window.`,`Your phone’s push notifications are separate: the phone buzzes only while no window on this PC is open.`]},notifyFinished:{hint:`When a chat’s turn ends — finished, or failed.`,details:[`Named after the chat; clicking the notification opens it.`]},notifyWaiting:{hint:`When a chat waits for you: a permission, or one of the agent’s questions.`,details:[`With auto-accept on, only the agent’s questions still wait for you, so only they notify.`]},notifyError:{hint:`When a chat stops on an error.`,details:[`The error itself is also written into the chat.`]},transcriptWindow:{hint:`How many messages and tool cards of a chat stay drawn; older ones leave the top like a stack and come back when you scroll up.`,details:[`Only what is DRAWN: the whole chat is still kept, and still searched.`,`Smaller is faster on long agentic chats; larger keeps more on screen.`]},defaultCwd:{hint:`The folder a new chat runs in when it is not given one. Empty: each chat gets its own private folder.`,details:[`A folder here becomes each new chat’s project: its CLAUDE.md, .claude settings, hooks and skills load. Your home folder and drive roots never load as a project.`,`Empty is the safe default: the agent then works only inside that chat’s own folder under OonaCode’s data directory.`,`Used by chats started in this app. A project’s own folder (Projects → New chats) wins over it; the oona terminal always uses the folder you run it in.`]},mirrorHistory:{hint:`Keep an encrypted copy of this PC’s chats on your account.`,details:[`Encrypted on this PC with your vault key before it is uploaded: the server stores only ciphertext it cannot read.`,`It is how your phone, the website and your other PCs list and read this PC’s chats — also while this PC is off.`,`Turning it off stops uploading; what is already on your account stays until you delete those chats.`]},remoteAccess:{hint:`Let your phone, Telegram, the website and your other PCs reach this PC.`,details:[`This PC keeps one outbound, end-to-end encrypted channel to your OonaCode server; every other device reaches it through that channel alone.`,`Off: they still see this PC online, marked “remote access off”, and cannot open its chats, send prompts, unlock it remotely or delete its chats. This PC also cannot open chats on your other PCs.`,`Chat history already mirrored to your account stays readable everywhere.`,`Takes effect immediately.`]},imageRetention:{hint:`Pictures in this PC’s chat history older than this are replaced with a short note. 0 keeps them forever. Default: a year.`,details:[`Replaced: the pictures stored in this PC’s chats — screenshots and other pictures a tool returned, and pictures you pasted into a message — once they are older than this.`,`Each becomes a one-line note saying a picture was there, why and when it went, e.g. “[Picture removed after 365 days to save space — picture from a tool (PNG), 412 KB]”.`,`Not affected: the words of every chat, and the files on your disk. The chat continues normally — the model no longer needs pictures that old.`,`Runs by itself: a few minutes after this PC’s OonaCode starts, then once a day, in small steps that never hold up a chat. A chat that is working, or was in the last hour, is done at the next run.`,`The database file stops growing from pictures; it does not shrink. The space is reused for new chats.`,`Only this PC’s own copy of its chats. What is already mirrored to your account is not changed here.`]},chatAbout:{hint:`A short note per chat saying what it works on, which your other chats read through “Talk to other chats”. On by default.`,details:[`Written in the background by each chat’s housekeeper — the cheap helper model of the chat’s own provider — after a turn ends, only when the chat changed since, and at most once per interval below.`,`The same switch covers Regenerate (in a chat’s session info) and “Generate for all chats now” (View → What chats are about…). Off stops all three, so nothing is spent on abouts.`,`Paid by the chat’s own route: an OonaCode pool chat spends credits, your own API key is billed by your provider, and your own subscription’s plan covers it.`,`An about is part of its chat and stays on this PC: it is not uploaded or mirrored to your account.`]},chatAboutInterval:{hint:`At most one background about per chat in this many minutes.`,details:[`Only the background job waits for it: Regenerate and “Generate for all chats now” write at once.`,`A background about is written only after a turn ends and only when the chat changed, so a chat nobody uses costs nothing, whatever this says.`,`Shorter keeps abouts fresher and makes more calls.`]},chatAboutMaxWords:{hint:`The longest about the housekeeper may write.`,details:[`A longer answer is cut at this many words.`,`Applies to every about the housekeeper writes: in the background, by Regenerate and by “Generate for all chats now”. An about you write yourself may be longer (up to 2,000 characters).`,`A longer about costs a few more output tokens, and a chat that lists your chats reads every one of them.`]},chatAboutInputChars:{hint:`How much of a chat the housekeeper reads to write its about.`,details:[`Taken from the chat’s title, project and folder, its previous about, your first message, the newest summary of the earlier conversation, your latest messages and the agent’s last answer — each with a share, so no part crowds out the others.`,`Applies to the background job, Regenerate and “Generate for all chats now”.`,`Most of what a call costs: roughly a quarter as many tokens as characters. More gives a better-informed about and costs more.`]},keepUnlocked:{hint:`Leave your vault unlocked when you close or quit the app.`,details:[`Off (default): closing the window — to the tray too — or quitting stops the chats that are running and locks this PC until you unlock it. Your phone and other devices cannot use it meanwhile.`,`On: chats keep running and your other devices keep working after the window is closed. Choose it on a PC only you use.`]},server:{hint:`Your account’s OonaCode server.`,details:[`Where your account lives: sign-in, OonaCode-pool models and credits, your encrypted vault and chat history, remote access, and app updates.`,`Your own API keys and subscriptions never go through it — this PC calls those providers directly.`,`Set by signing in. (Developers point a build at another server with OONACODE_GATEWAY_URL.)`]},diagnostics:{hint:`While you are signed in, this PC sends OonaCode its warnings and errors, and a short report of any turn that fails.`,details:[`A report names the error, the model and the provider — never the content of your chats.`,`It is how bugs you never reported get fixed. There is no usage tracking.`]}};function dF(){let{actions:e}=W(),[t,n]=(0,v.useState)(void 0),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(null),s=(0,v.useCallback)(async()=>{n(await e.listSkills())},[e]);return(0,v.useEffect)(()=>{s()},[s]),t===`unsupported`?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`This PC’s OonaCode is older than skills — update it to manage them here.`}):r?(0,U.jsx)(fF,{onDone:()=>{i(!1),eA(),hO(),s()}}):(0,U.jsxs)(`div`,{className:`space-y-3`,"data-testid":`skills-section`,children:[(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Skills every chat on this PC gets — type `,(0,U.jsx)(`span`,{className:`font-mono`,children:`/`}),` in the message box to use one for that message. They work with every model. A change applies from a chat’s next start (a new chat, or one idle for ten minutes).`]}),(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`skills-per-chat-note`,children:[`The model is not shown them on its own: each chat chooses which skills the model may use by itself, in the `,(0,U.jsx)(`span`,{className:`font-medium`,children:`Skills`}),` menu under its message box — only those cost tokens on every message of that chat.`]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(q,{size:`sm`,onClick:()=>i(!0),"data-testid":`skills-import-open`,children:[(0,U.jsx)(K.Download,{className:`h-3.5 w-3.5`}),` Import from Claude Code…`]}),t?(0,U.jsx)(`span`,{className:`truncate text-[11px] text-fg-faint`,title:t.dir,children:t.dir}):null]}),t===void 0?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Loading…`}):t===null?(0,U.jsx)(`p`,{className:`text-xs text-danger`,children:`The host could not list the skills right now.`}):t.skills.length===0?(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`skills-empty`,children:[`No skills of your own yet. Import them from Claude Code, or put a folder with a`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:`SKILL.md`}),` in the folder above.`]}):(0,U.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:t.skills.map(t=>(0,U.jsxs)(`li`,{className:`flex items-start gap-3 px-3 py-2 text-sm`,"data-testid":`skill-row`,"data-name":t.name,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,U.jsxs)(`span`,{className:`font-mono font-medium`,children:[`/`,t.name]}),t.argumentHint?(0,U.jsx)(`span`,{className:`font-mono text-xs text-fg-faint`,children:t.argumentHint}):null,t.broken?(0,U.jsx)(X,{tone:`warn`,children:`no SKILL.md`}):null]}),t.description?(0,U.jsx)(`div`,{className:`line-clamp-2 text-xs text-fg-muted`,title:t.description,children:t.description}):null,(0,U.jsxs)(`div`,{className:`text-[11px] text-fg-faint`,children:[zE(t.bytes),` · `,t.files,` file`,t.files===1?``:`s`,t.importedFrom?(0,U.jsxs)(U.Fragment,{children:[` `,`· imported `,t.importedAt?Op(t.importedAt):``,` from`,` `,(0,U.jsx)(`span`,{title:t.importedFrom,children:t.importedFrom})]}):null]})]}),(0,U.jsxs)(q,{size:`sm`,variant:`ghost`,busy:a===t.name,"aria-label":`Remove ${t.name}`,onClick:async()=>{o(t.name);let n=await e.removeSkill(t.name);o(null),n&&(eA(),hO(),await s())},"data-testid":`skill-remove`,children:[(0,U.jsx)(K.Trash,{className:`h-3.5 w-3.5`}),` Remove`]})]},t.name))})]})}function fF({onDone:e}){let{actions:t}=W(),[n,r]=(0,v.useState)(void 0),[i,a]=(0,v.useState)(()=>new Set),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null);(0,v.useEffect)(()=>{let e=!0;return t.scanClaudeSkills().then(t=>{e&&r(t)}),()=>{e=!1}},[t]);let f=(0,v.useMemo)(()=>{let e=new Map;for(let t of n?.skills??[]){let n=t.origin===`plugin`?`Plugin: ${t.plugin??`?`}`:`Your skills`;e.set(n,[...e.get(n)??[],t])}return[...e.entries()]},[n]),p=e=>a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,U.jsxs)(`div`,{className:`space-y-3`,"data-testid":`skills-import`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:e,children:`← Back`}),(0,U.jsx)(`span`,{className:`text-sm font-medium`,children:`Import skills from Claude Code`})]}),(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Tick the skills to copy into OonaCode. Your Claude Code install is only read — nothing in it is changed.`,n?.roots.length?(0,U.jsxs)(U.Fragment,{children:[` `,`Read from `,(0,U.jsx)(`span`,{className:`font-mono`,children:n.roots.join(`, `)}),`.`]}):null]}),n===void 0?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Looking…`}):n===null?(0,U.jsx)(`p`,{className:`text-xs text-danger`,children:`The host could not read Claude Code’s skills.`}):n.skills.length===0?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,"data-testid":`skills-import-empty`,children:`No skills found in Claude Code on this PC.`}):f.map(([e,t])=>(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] font-medium uppercase tracking-wide text-fg-faint`,children:e}),(0,U.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:t.map(e=>{let t=!!e.unavailable||e.alreadyInOonaCode&&!o;return(0,U.jsx)(`li`,{className:`px-3 py-1.5 text-sm`,children:(0,U.jsxs)(`label`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:i.has(e.key)&&!t,disabled:t,onChange:()=>p(e.key),"data-testid":`skills-import-pick`,"data-name":e.name}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`span`,{className:`font-mono font-medium`,children:[`/`,e.name]}),` `,e.alreadyInOonaCode?(0,U.jsx)(X,{children:`already in OonaCode`}):null,` `,e.unavailable?(0,U.jsx)(X,{tone:`warn`,children:e.unavailable}):null,e.description?(0,U.jsx)(`span`,{className:`line-clamp-2 block text-xs text-fg-muted`,children:e.description}):null,e.note?(0,U.jsx)(`span`,{className:`block text-[11px] text-warn`,children:e.note}):null,(0,U.jsxs)(`span`,{className:`block text-[11px] text-fg-faint`,children:[zE(e.bytes),` · `,e.path]})]})]})},e.key)})})]},e)),n&&n.skills.some(e=>e.alreadyInOonaCode)?(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-fg-muted`,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked)}),`Replace the ones already in OonaCode`]}):null,u?(0,U.jsx)(`p`,{className:`text-xs text-fg-muted`,role:`status`,"data-testid":`skills-import-outcome`,children:u}):null,(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(q,{variant:`primary`,size:`sm`,busy:c,disabled:i.size===0,"data-testid":`skills-import-go`,onClick:async()=>{l(!0);let n=await t.importClaudeSkills([...i],o);if(l(!1),!n)return;let r=n.skipped.map(e=>`${e.name||e.key}: ${e.reason}`);d(`Imported ${n.imported.length}`+(r.length>0?` · skipped ${r.join(`; `)}`:``)),n.skipped.length===0&&e()},children:[`Import `,i.size>0?i.size:``]}),(0,U.jsx)(q,{size:`sm`,onClick:e,children:`Cancel`})]})]})}var pF=[{id:`general`,label:`General`,icon:K.Settings},{id:`theme`,label:`Theme`,icon:K.Palette},{id:`advanced`,label:`Advanced`,icon:K.Sliders},{id:`skills`,label:`Skills`,icon:K.Tool},{id:`providers`,label:`Providers`,icon:K.Plug},{id:`devices`,label:`Devices`,icon:K.Monitor},{id:`host`,label:`This PC`,icon:K.Stethoscope}];function mF(){let{state:e,actions:t}=W(),n=e.prefs,r=e.settings?.theme??`system`;return(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(ng,{label:`Auto-accept permissions`,hint:uF.autoAccept.hint,details:uF.autoAccept.details,checked:n.autoAcceptPermissions,onChange:e=>void t.savePrefs({autoAcceptPermissions:e}),testId:`settings-auto-accept`}),(0,U.jsx)(ng,{label:`Show reasoning in the timeline`,hint:uF.reasoning.hint,details:uF.reasoning.details,checked:n.showReasoningSummaries,onChange:e=>void t.savePrefs({showReasoningSummaries:e})}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border py-3`,children:[(0,U.jsxs)(`span`,{children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[`Colour scheme`,(0,U.jsx)(Zh,{label:`Colour scheme`,details:(0,U.jsx)(Qh,{items:uF.colourScheme.details})})]}),(0,U.jsx)(`span`,{className:`mt-0.5 block text-xs text-fg-faint`,children:uF.colourScheme.hint})]}),(0,U.jsx)(rg,{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,U.jsxs)(`div`,{className:`border-t border-border pt-2`,children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:[(0,U.jsx)(K.Bell,{className:`w-3 h-3`}),` Notifications`,(0,U.jsx)(Zh,{label:`Notifications`,details:(0,U.jsx)(Qh,{items:uF.notifications.details})})]}),(0,U.jsx)(`p`,{className:`text-xs text-fg-faint`,children:uF.notifications.hint}),(0,U.jsx)(ng,{label:`Agent finished or needs attention`,hint:uF.notifyFinished.hint,details:uF.notifyFinished.details,checked:n.notifications.agentFinished,onChange:e=>void t.savePrefs({notifications:{...n.notifications,agentFinished:e}})}),(0,U.jsx)(ng,{label:`Permission or question waiting for you`,hint:uF.notifyWaiting.hint,details:uF.notifyWaiting.details,checked:n.notifications.permissionRequired,onChange:e=>void t.savePrefs({notifications:{...n.notifications,permissionRequired:e}})}),(0,U.jsx)(ng,{label:`Error occurred`,hint:uF.notifyError.hint,details:uF.notifyError.details,checked:n.notifications.errorOccurred,onChange:e=>void t.savePrefs({notifications:{...n.notifications,errorOccurred:e}})})]}),e.prefsBackend===`local`?(0,U.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 hF(e){let t=e.replace(/-/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)}function gF(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 lc){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 lc){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 _F(){let{state:e,actions:t}=W(),n=e.prefs,[r,i]=(0,v.useState)(`dark`),a=(0,v.useMemo)(()=>gF(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,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:`Theme colours`}),(0,U.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,U.jsx)(rg,{label:`Edit colour scheme`,value:r,options:[{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}],onChange:e=>{f(r),i(e)}})]}),(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-x-4 sm:grid-cols-2`,children:lc.map(e=>{let t=m[e]!==void 0,n=m[e]??a[e]??`#808080`;return(0,U.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-border py-1.5`,"data-testid":`theme-color-row-${r}-${e}`,children:[(0,U.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":`${hF(e)} colour (${r} scheme)`,"data-testid":`theme-color-${r}-${e}`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-fg-muted`,children:hF(e)}),(0,U.jsx)(`span`,{className:`w-16 shrink-0 text-right font-mono text-[10px] text-fg-faint`,children:t?m[e]:`default`}),t?(0,U.jsx)(J,{label:`Reset ${hF(e)} to the theme colour`,className:`p-0.5`,"data-testid":`theme-color-clear-${r}-${e}`,onClick:()=>g(e),children:(0,U.jsx)(K.Refresh,{className:`w-3 h-3`})}):null]},e)})}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-2`,children:[(0,U.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,U.jsx)(q,{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 vF(){let{state:e,actions:t}=W(),n=e.prefs,[r,i]=(0,v.useState)(String(n.transcriptWindowSize));return(0,v.useEffect)(()=>i(String(n.transcriptWindowSize)),[n.transcriptWindowSize]),(0,U.jsx)(`div`,{className:`space-y-1`,children:(0,U.jsx)($h,{label:`Transcript window size`,hint:`${uF.transcriptWindow.hint} Scrolling to the top brings back 100 more. 100–${cc}, default 500.`,details:uF.transcriptWindow.details,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{className:H(Y,`w-32`),type:`number`,min:100,max:cc,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,U.jsx)(`span`,{className:`text-xs text-fg-faint`,children:`messages and tool cards`})]})})})}function yF(){let{state:e,actions:t}=W(),n=(0,v.useMemo)(()=>ys(e.providers),[e.providers]);return(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[n.length===0?(0,U.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=vs(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,U.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,"data-testid":`provider-${r.id}`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`text-sm font-medium`,children:r.displayName}),i?(0,U.jsx)(X,{tone:`accent`,children:`active`}):null,r.route===`direct`?(0,U.jsx)(X,{tone:`ok`,children:`direct`}):null,s.length>0?s.map(e=>(0,U.jsxs)(X,{tone:`ok`,children:[e===`subscription`?`subscription`:`API key`,` connected`]},e)):o?(0,U.jsx)(X,{tone:`ok`,children:`connected`}):(0,U.jsx)(X,{tone:`warn`,children:`not connected`})]}),(0,U.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,U.jsxs)(q,{size:`sm`,variant:o?`secondary`:`primary`,onClick:()=>t.openProviderConnect(r.id),children:[(0,U.jsx)(K.Plus,{className:`w-3 h-3`}),` `,o?`Manage…`:`Connect`]})]},r.id)}),(0,U.jsx)(`div`,{className:`pt-3`,children:(0,U.jsx)(eN,{})})]})}function bF(){let{state:e,actions:t}=W(),[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,U.jsxs)(`div`,{className:`space-y-1.5`,children:[e.remote.loading?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-4 text-sm text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{}),` Loading devices…`]}):null,e.remote.hosts.map(e=>(0,U.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border px-3 py-2`,children:[(0,U.jsx)(K.Monitor,{className:`w-4 h-4 shrink-0 text-fg-faint`}),(0,U.jsx)(`div`,{className:`min-w-0 flex-1`,children:n===e.hostId?(0,U.jsx)(`input`,{className:Y,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,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium`,children:[e.label||e.hostName,e.isSelf?(0,U.jsx)(X,{tone:`accent`,children:`this PC`}):null,(0,U.jsx)(X,{tone:e.online?`ok`:`neutral`,children:e.online?`online`:`offline`}),e.remoteAccessOff?(0,U.jsx)(X,{tone:`warn`,children:`remote access off`}):null]}),(0,U.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[e.platform,e.appVersion?` · v${e.appVersion}`:``,e.lastSeenAt?` · seen ${Op(e.lastSeenAt)}`:``]})]})}),n===e.hostId?(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:()=>{i.trim()&&t.renameHost(e.hostId,i.trim()),r(null)},children:`Save`}):(0,U.jsxs)(q,{size:`sm`,onClick:()=>{r(e.hostId),a(e.label||e.hostName)},children:[(0,U.jsx)(K.Edit,{className:`w-3 h-3`}),` Rename`]})]},e.hostId)),!e.remote.loading&&e.remote.hosts.length===0?(0,U.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`No devices reported yet.`}):null]}):(0,U.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,U.jsx)(`strong`,{children:e.connection.hostName??`unknown`}),`.`]}):(0,U.jsx)(`div`,{className:`py-6 text-center text-sm text-fg-muted`,children:`Sign in to see the devices on your account.`})}function xF(e,t,n=Date.now()){if(e===0)return`Off — pictures are kept forever.`;if(!t)return`Not run yet — it runs a few minutes after OonaCode starts, then daily.`;let r=Op(t.finishedAt,n);return t.pictures===0?`Last run: nothing to replace, ${r}.`:`Last run: ${t.pictures.toLocaleString(`en-US`)} ${t.pictures===1?`picture`:`pictures`}, ${zE(t.bytesFreed)}, ${r}.`}function SF({days:e,lastRun:t,onSave:n}){let[r,i]=(0,v.useState)(String(e));(0,v.useEffect)(()=>i(String(e)),[e]);let a=()=>{let t=Number.parseInt(r,10);if(!Number.isFinite(t)){i(String(e));return}let a=t<=0?0:Math.min(Ec,Math.max(1,t));i(String(a)),a!==e&&n(a)};return(0,U.jsxs)($h,{label:`Replace pictures older than`,hint:uF.imageRetention.hint,details:uF.imageRetention.details,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{className:H(Y,`w-24`),type:`number`,min:0,max:Ec,step:1,value:r,onChange:e=>i(e.target.value),onBlur:a,onKeyDown:e=>{e.key===`Enter`&&a()},"aria-label":`Replace pictures older than (days)`,"data-testid":`settings-image-retention`}),(0,U.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`days`,e===365?` (a year)`:``]})]}),(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,"data-testid":`settings-image-retention-status`,children:xF(e,t)})]})}function CF(e,t,n){let r=e.trim(),i=Number(r);return!/^\d+$/.test(r)||i<t||i>n?`A whole number from ${t.toLocaleString(`en-US`)} to ${n.toLocaleString(`en-US`)}.`:null}function wF({label:e,unit:t,hint:n,details:r,value:i,min:a,max:o,defaultValue:s,onSave:c,testId:l}){let[u,d]=(0,v.useState)(String(i)),[f,p]=(0,v.useState)(null);(0,v.useEffect)(()=>{d(String(i)),p(null)},[i]);let m=()=>{let e=CF(u,a,o);if(p(e),e)return;let t=Number(u.trim());t!==i&&c(t)},h=e=>e.toLocaleString(`en-US`);return(0,U.jsxs)($h,{label:e,hint:`${n} ${h(a)}–${h(o)}, default ${h(s)}.`,details:r,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{className:H(Y,`w-28`,f&&`border-danger`),type:`number`,min:a,max:o,step:1,value:u,onChange:e=>d(e.target.value),onBlur:m,onKeyDown:e=>{e.key===`Enter`&&m()},"aria-label":e,"aria-invalid":f!==null,"data-testid":l}),(0,U.jsx)(`span`,{className:`text-xs text-fg-faint`,children:t})]}),f?(0,U.jsx)(`span`,{className:`text-xs text-danger`,role:`alert`,"data-testid":`${l}-problem`,children:f}):null]})}function TF({settings:e}){let{actions:t}=W(),n=pl,r=fl;return(0,U.jsxs)(`div`,{className:`border-t border-border pt-3`,"data-testid":`settings-chat-abouts`,children:[(0,U.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,U.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Chat abouts`}),(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>t.openChatAbouts(),"data-testid":`settings-open-chat-abouts`,children:`What your chats are about…`})]}),e.chatAboutEnabled===void 0?null:(0,U.jsx)(ng,{label:`Write an about for every chat`,hint:uF.chatAbout.hint,details:uF.chatAbout.details,checked:e.chatAboutEnabled,onChange:e=>void t.saveSettings({chatAboutEnabled:e}),testId:`settings-chat-about-enabled`}),(0,U.jsxs)(`div`,{className:`space-y-3 pt-1`,children:[e.chatAboutIntervalMinutes===void 0?null:(0,U.jsx)(wF,{label:`Minutes between background abouts`,unit:`minutes`,hint:uF.chatAboutInterval.hint,details:uF.chatAboutInterval.details,value:e.chatAboutIntervalMinutes,min:n.intervalMinutes.min,max:n.intervalMinutes.max,defaultValue:r.intervalMinutes,onSave:e=>void t.saveSettings({chatAboutIntervalMinutes:e}),testId:`settings-chat-about-interval`}),e.chatAboutMaxWords===void 0?null:(0,U.jsx)(wF,{label:`Longest about`,unit:`words`,hint:uF.chatAboutMaxWords.hint,details:uF.chatAboutMaxWords.details,value:e.chatAboutMaxWords,min:n.maxWords.min,max:n.maxWords.max,defaultValue:r.maxWords,onSave:e=>void t.saveSettings({chatAboutMaxWords:e}),testId:`settings-chat-about-max-words`}),e.chatAboutInputChars===void 0?null:(0,U.jsx)(wF,{label:`How much of a chat is read`,unit:`characters`,hint:uF.chatAboutInputChars.hint,details:uF.chatAboutInputChars.details,value:e.chatAboutInputChars,min:n.inputChars.min,max:n.inputChars.max,defaultValue:r.inputChars,onSave:e=>void t.saveSettings({chatAboutInputChars:e}),testId:`settings-chat-about-input-chars`})]})]})}function EF(){let{state:e,actions:t}=W(),n=e.settings,[r,i]=(0,v.useState)(n?.defaultCwd??``);if((0,v.useEffect)(()=>i(n?.defaultCwd??``),[n?.defaultCwd]),(0,v.useEffect)(()=>{t.refreshSettings()},[t]),!n)return(0,U.jsx)(`div`,{className:`py-6 text-sm text-fg-muted`,children:`Loading settings…`});let a=e.account?.gatewayUrl??n.gatewayUrl??x,o=e=>{let r=e.trim()?e.trim():null;r!==(n.defaultCwd??null)&&t.saveSettings({defaultCwd:r})},s=async()=>{let e=await window.oonacode?.pickDirectory?.({title:`The folder new chats run in`,...r?{defaultPath:r}:{}});e&&(i(e),o(e))};return(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsx)($h,{label:`Default working directory`,hint:uF.defaultCwd.hint,details:uF.defaultCwd.details,children:(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`input`,{className:H(Y,`flex-1 font-mono text-xs`),value:r,onChange:e=>i(e.target.value),onBlur:()=>o(r),placeholder:`Empty — each chat gets its own folder`,spellCheck:!1,"data-testid":`settings-default-cwd`}),window.oonacode?.pickDirectory?(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>void s(),children:`Choose…`}):null,r?(0,U.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>{i(``),o(``)},children:`Clear`}):null]})}),(0,U.jsxs)(`div`,{className:`border-t border-border pt-1`,children:[(0,U.jsx)(ng,{label:`Mirror chat history to my account`,hint:uF.mirrorHistory.hint,details:uF.mirrorHistory.details,checked:n.mirrorHistory,onChange:e=>void t.saveSettings({mirrorHistory:e}),testId:`settings-mirror`}),(0,U.jsx)(ng,{label:`Remote access`,hint:uF.remoteAccess.hint,details:uF.remoteAccess.details,checked:n.relayEnabled??!0,onChange:e=>void t.saveSettings({relayEnabled:e}),testId:`settings-relay`}),(0,U.jsx)(ng,{label:`Keep the vault unlocked when the app closes`,hint:uF.keepUnlocked.hint,details:uF.keepUnlocked.details,checked:n.keepUnlockedOnExit??!1,onChange:e=>void t.saveSettings({keepUnlockedOnExit:e}),testId:`settings-keep-unlocked-exit`})]}),n.imageRetentionDays===void 0?null:(0,U.jsx)(`div`,{className:`border-t border-border pt-3`,children:(0,U.jsx)(SF,{days:n.imageRetentionDays,lastRun:n.imageRetentionLastRun??null,onSave:e=>void t.saveSettings({imageRetentionDays:e})})}),n.chatAboutEnabled!==void 0||n.chatAboutIntervalMinutes!==void 0||n.chatAboutMaxWords!==void 0||n.chatAboutInputChars!==void 0?(0,U.jsx)(TF,{settings:n}):null,(0,U.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-3 text-xs`,children:[(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,U.jsxs)(`span`,{children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[`Server`,(0,U.jsx)(Zh,{label:`Server`,details:(0,U.jsx)(Qh,{items:uF.server.details})})]}),(0,U.jsx)(`span`,{className:`block text-fg-faint`,children:uF.server.hint})]}),(0,U.jsx)(`span`,{className:`break-all font-mono text-fg-muted`,"data-testid":`settings-server`,children:a})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[`Diagnostics`,(0,U.jsx)(Zh,{label:`Diagnostics`,details:(0,U.jsx)(Qh,{items:uF.diagnostics.details})})]}),(0,U.jsx)(`span`,{className:`block text-fg-faint`,children:uF.diagnostics.hint})]})]})]})}function DF({open:e,onClose:t}){let{state:n,actions:r}=W(),[i,a]=(0,v.useState)(`general`),o=n.ui.settingsSection;return(0,v.useEffect)(()=>{e&&o&&a(o)},[e,o]),(0,v.useEffect)(()=>{e&&!n.settings&&r.refreshSettings()},[e,n.settings,r]),(0,U.jsx)(tg,{open:e,title:`Settings`,onClose:t,wide:!0,footer:(0,U.jsx)(q,{onClick:t,children:`Done`}),children:(0,U.jsxs)(`div`,{className:`flex min-h-[22rem] gap-4`,children:[(0,U.jsxs)(`nav`,{className:`w-36 shrink-0 space-y-0.5`,"aria-label":`Settings sections`,children:[pF.map(e=>{let t=e.icon;return(0,U.jsxs)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-current":i===e.id?`true`:void 0,className:H(`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,U.jsx)(t,{className:`w-3.5 h-3.5`}),e.label]},e.id)}),(0,U.jsxs)(`div`,{className:`pt-3 text-[11px] text-fg-faint`,children:[`OonaCode Desktop v`,ah(typeof window<`u`&&window.oonacode?.appVersion||n.connection.appVersion||`0.0.0`,ih({bridge:typeof window<`u`?window.oonacode:void 0,info:n.info}))]})]}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[i===`general`?(0,U.jsx)(mF,{}):null,i===`theme`?(0,U.jsx)(_F,{}):null,i===`advanced`?(0,U.jsx)(vF,{}):null,i===`skills`?(0,U.jsx)(dF,{}):null,i===`providers`?(0,U.jsx)(yF,{}):null,i===`devices`?(0,U.jsx)(bF,{}):null,i===`host`?(0,U.jsx)(EF,{}):null]})]})})}function OF({toast:e}){let{actions:t}=W();(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,U.jsxs)(`div`,{role:e.kind===`error`?`alert`:`status`,className:H(`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,U.jsx)(K.Alert,{className:`mt-0.5 w-4 h-4`}):e.kind===`success`?(0,U.jsx)(K.Check,{className:`mt-0.5 w-4 h-4`}):null,(0,U.jsx)(`div`,{className:`pre-wrap min-w-0 flex-1`,children:e.text}),(0,U.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`opacity-60 hover:opacity-100`,onClick:()=>t.dismissToast(e.id),children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]})}function kF(){let{state:e}=W();return e.toasts.length===0?null:(0,U.jsx)(`div`,{className:`pointer-events-none fixed bottom-4 right-4 z-50 flex flex-col gap-2`,children:e.toasts.map(e=>(0,U.jsx)(OF,{toast:e},e.id))})}var AF=2e3;function jF(e){if(!MF(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 MF(e){if(typeof e!=`string`||e===``)return!1;try{let{protocol:t}=new URL(e);return t===`http:`||t===`https:`}catch{return!1}}function NF(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 PF({children:e,testId:t}){let{state:n}=W(),r=n.connection.hostName??n.info?.hostName??null;return(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,"data-testid":t,children:[(0,U.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-border bg-surface px-3`,children:[(0,U.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`text-fg-faint`,children:`/`}),(0,U.jsx)(`span`,{className:`truncate text-sm text-fg-muted`,"data-testid":`frame-host-name`,children:r})]}):null]}),(0,U.jsx)(`main`,{className:`flex min-h-0 flex-1 items-start justify-center overflow-y-auto p-6`,children:(0,U.jsx)(`div`,{className:`w-full max-w-md py-6`,children:e})}),(0,U.jsx)(kF,{})]})}function FF(){return(0,U.jsx)(PF,{testId:`account-loading`,children:(0,U.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-sm text-fg-muted`,children:[(0,U.jsx)(K.Spinner,{className:`w-4 h-4`}),(0,U.jsx)(`span`,{children:`Checking your account…`})]})})}function IF({link:e}){let{actions:t}=W(),[n,r]=(0,v.useState)(!1),i=e.verificationUrl??``,a=e.verificationUrlComplete??i,o=MF(a),s=t.refreshAccountLink;return(0,v.useEffect)(()=>{let e=setInterval(()=>void s(),AF);return()=>clearInterval(e)},[s]),(0,U.jsxs)(`div`,{className:`space-y-3`,"data-testid":`link-waiting`,children:[(0,U.jsxs)(`ol`,{className:`space-y-2 text-sm`,children:[(0,U.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`1. Open`}),o?(0,U.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(),jF(a))},children:i}):(0,U.jsx)(`span`,{className:`break-all font-medium`,"data-testid":`link-url`,children:i})]}),(0,U.jsxs)(`li`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`2. Enter`}),(0,U.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,U.jsxs)(`p`,{className:`flex items-center gap-2 text-xs text-fg-muted`,role:`status`,children:[(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{children:`Waiting for approval in your browser…`})]}),(0,U.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,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[o?(0,U.jsxs)(q,{size:`sm`,onClick:()=>jF(a),"data-testid":`link-reopen`,children:[(0,U.jsx)(K.LogIn,{className:`w-3.5 h-3.5`}),` Open the browser again`]}):null,(0,U.jsx)(q,{size:`sm`,variant:`ghost`,busy:n,"data-testid":`link-cancel`,onClick:()=>{r(!0),t.cancelAccountLink().finally(()=>r(!1))},children:`Cancel`})]})]})}function LF(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 RF(){let{state:e,actions:t}=W(),n=e.accountLink,r=LF(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`&&jF(e.verificationUrlComplete??e.verificationUrl??``)}finally{a(!1)}},[t]);if(n?.status===`waiting`)return(0,U.jsx)(IF,{link:n});let s=n&&(n.status===`denied`||n.status===`expired`);return(0,U.jsxs)(`div`,{className:`space-y-2`,children:[s?(0,U.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:NF(n)}):null,(0,U.jsxs)(q,{variant:`primary`,busy:i,onClick:()=>void o(),"data-testid":`link-start`,className:`w-full justify-center`,children:[(0,U.jsx)(K.LogIn,{className:`w-3.5 h-3.5`}),s?`Try again in your browser`:`Sign in with your browser`]}),(0,U.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 zF(){let{state:e}=W(),[t,n]=(0,v.useState)(!1),r=t||e.emailVerification!==null;return(0,U.jsx)(PF,{testId:`sign-in-view`,children:(0,U.jsxs)(`div`,{className:`space-y-5`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight`,children:`Sign in to use OonaCode`}),(0,U.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,U.jsx)(RF,{}),(0,U.jsx)(`div`,{className:H(`space-y-3 border-t border-border pt-4`,r?``:`text-center`),children:r?(0,U.jsx)(rj,{}):(0,U.jsx)(q,{size:`sm`,variant:`ghost`,"data-testid":`use-password`,onClick:()=>n(!0),children:`Use an email and password instead`})})]})})}function BF(){let{state:e,actions:t}=W(),[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,U.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,U.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,U.jsx)(K.Lock,{className:`mx-auto h-10 w-10 text-fg-faint`}),(0,U.jsx)(`h1`,{className:`text-lg font-semibold`,children:`This device is locked`}),(0,U.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,U.jsx)(`input`,{ref:u,type:`password`,className:Y,value:n,onChange:e=>r(e.target.value),onMouseDown:e=>e.stopPropagation(),placeholder:`Account password`,autoFocus:!0,"data-testid":`locked-password`}),(0,U.jsxs)(`label`,{className:`flex items-start justify-center gap-2 text-sm text-fg-muted`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1`,checked:i,onChange:e=>a(e.target.checked),"data-testid":`locked-keep-unlocked`}),(0,U.jsx)(`span`,{children:`Keep me unlocked on this PC`})]}),c?(0,U.jsx)(`div`,{className:`text-sm text-danger`,"data-testid":`locked-error`,children:c}):null,(0,U.jsx)(q,{type:`submit`,variant:`primary`,busy:o,disabled:!n,children:`Unlock`}),(0,U.jsxs)(`div`,{className:`text-xs text-fg-faint`,children:[`Signed in as `,e.account?.email??`this account`,` ·`,` `,(0,U.jsx)(`button`,{type:`button`,className:`underline hover:text-fg`,onClick:()=>void t.logout(),children:`Sign out`})]})]}),(0,U.jsx)(kF,{})]})}function VF(e){let t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function HF(e,t,n){let r=VF(n),i=e.filter(e=>!t.has(e.id)).sort((e,t)=>t.mtime-e.mtime),a=[],o=[];for(let e of i)(e.mtime>=r?a:o).push(e);return{today:a,older:o}}function UF(e,t){let n=t.trim().toLowerCase();return n===``||e.toLowerCase().includes(n)}var WF=`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`,GF=`flex items-center gap-1 px-2 pb-0.5 pt-2 text-[11px] font-semibold uppercase tracking-wide text-fg-faint`,KF=`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`,qF=`flex min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-fg hover:bg-surface-2`;function JF(){let{state:e,actions:t}=W(),[n,r]=(0,v.useState)($N),[i,a]=(0,v.useState)({}),[o,s]=(0,v.useState)(!1),c=jA(),[l,u]=(0,v.useState)(null),d=(0,v.useCallback)(()=>u(null),[]),f=tI(),p=BA(),m=VF(p),h=e.prefs.sidebarView,g=e.prefs.pinned,_=e=>a(t=>({...t,[e]:t[e]!==!0})),y=e=>i[e]===!0,b=e.prefs.collapsedProjects,x=e=>b.includes(e),S=e=>{let n=x(e)?b.filter(t=>t!==e):[...b,e];t.savePrefs({collapsedProjects:n})},C=(0,v.useCallback)(e=>{t.selectSession(e),window.innerWidth<768&&t.setSidebar(!1)},[t]),w=(0,v.useCallback)(e=>{t.openPage({kind:`project`,projectId:e}),window.innerWidth<768&&t.setSidebar(!1)},[t]),T=e.search.trim()!==``,E=(0,v.useMemo)(()=>{let t=e.sessions.filter(t=>!e.remote.tabs[t.id]);if(!T)return t;let r=Date.now();return t.filter(t=>rP(t,e.search,n,r))},[e.sessions,e.remote.tabs,e.search,T,n]),D=(0,v.useMemo)(()=>{let t=new Map(E.map(e=>[e.id,e])),n=[];for(let r of g)if(r.kind===`chat`){let i=t.get(r.id)??(T?void 0:e.pinnedRows[r.id]);i&&!e.remote.tabs[i.id]&&n.push({kind:`chat`,session:i})}else{let t=e.vaultProjects.find(e=>e.id===r.id);if(!t||!UF(t.name,T?e.search:``))continue;let i=e.sessions.filter(e=>e.projectId===t.id);n.push({kind:`project`,project:t,sessions:i})}return n},[g,E,T,e.search,e.pinnedRows,e.remote.tabs,e.vaultProjects,e.sessions]),O=(0,v.useMemo)(()=>new Set(g.filter(e=>e.kind===`chat`).map(e=>e.id)),[g]),k=(0,v.useMemo)(()=>h===`recent`?HF(E,O,m):null,[h,E,O,m]),A=(0,v.useMemo)(()=>new Map(e.vaultProjects.map(e=>[e.id,e.name])),[e.vaultProjects]),j=(0,v.useMemo)(()=>{if(h!==`projects`)return[];let t=new Map;for(let n of e.vaultProjects)t.set(n.id,{name:n.name,sessions:[]});let n=[];for(let e of E){let r=e.projectId?t.get(e.projectId):void 0;r?r.sessions.push(e):n.push(e)}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)}),T?r.filter(e=>e.sessions.length>0):r},[h,e.vaultProjects,E,T]),M=e=>{t.savePrefs({collapsedProjects:e?j.map(e=>e.key):[]})},N=(0,v.useMemo)(()=>e.remote.hosts.filter(e=>!e.isSelf),[e.remote.hosts]),P=()=>{let e=y(`remote`);_(`remote`),e&&t.refreshHosts()},F=e=>{t.setSearch(e),t.refreshSessions(e)},[I,L]=(0,v.useState)(!1),[ee,te]=(0,v.useState)(0),ne=(0,v.useRef)(null),[re,ie]=(0,v.useState)(!1),[ae,oe]=(0,v.useState)(``),se=n.mode===`conversations`,ce=se?ae:e.search,le=I||ce!==``||re;(0,v.useEffect)(()=>{I&&ne.current?.focus()},[I,ee]),(0,v.useEffect)(()=>{let e=e=>{!(e.ctrlKey||e.metaKey)||e.shiftKey||e.altKey||(e.key===`k`||e.key===`K`)&&window.oonacode?.host!==`vscode`&&(e.preventDefault(),L(!0),te(e=>e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let ue=()=>{e.search!==``&&F(``),oe(``),ie(!1),L(!1)},de=t=>{t.mode!==n.mode&&(t.mode===`conversations`?(oe(e.search),e.search!==``&&F(``)):(ae!==``&&F(ae),oe(``))),r(t)},fe=E.length,pe=e=>{e!==h&&t.savePrefs({sidebarView:e})},me=e.page,he={onOpen:C,onMenu:c.openMenu,clock:p},ge=!e.sessionsLoading&&fe===0&&!e.sessionsError?(0,U.jsx)(`div`,{className:`px-3 py-3 text-center text-xs text-fg-faint`,"data-testid":`sessions-empty`,children:T?`No sessions match.`:`No sessions yet — press + to start one.`}):null;return(0,U.jsxs)(`nav`,{className:`flex h-full w-full flex-col bg-surface`,"aria-label":`Sessions`,children:[(0,U.jsxs)(`div`,{className:`relative flex flex-wrap items-center justify-end gap-x-2 gap-y-1 border-b border-border p-2`,children:[(0,U.jsx)(J,{label:`Search chats (Ctrl+K)`,onClick:()=>{L(!0),te(e=>e+1)},"data-testid":`open-search`,children:(0,U.jsx)(K.Search,{})}),(0,U.jsx)(`span`,{className:`flex-1`}),le?(0,U.jsxs)(`div`,{className:`absolute inset-0 z-10 flex items-center gap-1 bg-surface px-2`,"data-testid":`sidebar-search`,children:[(0,U.jsxs)(`div`,{className:`relative flex-1`,children:[(0,U.jsx)(K.Search,{className:`pointer-events-none absolute left-2 top-2 w-3.5 h-3.5 text-fg-faint`}),(0,U.jsx)(`input`,{ref:ne,"aria-label":`Search sessions`,className:H(Y,`pl-7`),placeholder:se?`Search every chat`:`Search chats`,value:ce,onChange:e=>se?oe(e.target.value):F(e.target.value),onBlur:()=>{ce===``&&!re&&L(!1)},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),ue())}})]}),(0,U.jsxs)(J,{label:re?`Hide search options`:`Search options`,className:H(`relative`,re&&`text-accent`),"aria-pressed":re,onMouseDown:e=>e.preventDefault(),onClick:()=>ie(e=>!e),"data-testid":`search-options-toggle`,children:[(0,U.jsx)(K.Sliders,{}),tP(n)?(0,U.jsx)(`span`,{className:`absolute right-0.5 top-0.5 h-1.5 w-1.5 rounded-full bg-accent`,"data-testid":`search-options-dot`}):null]}),(0,U.jsx)(J,{label:`Close search`,onMouseDown:e=>e.preventDefault(),onClick:ue,"data-testid":`close-search`,children:(0,U.jsx)(K.X,{})})]}):null,le&&re?(0,U.jsx)(cP,{options:n,onChange:de,projects:e.vaultProjects,onClose:()=>{ie(!1),ne.current?.focus()}}):null,(0,U.jsx)(J,{label:`Refresh sessions`,onClick:()=>{t.refreshSessions(),t.refreshHosts()},children:(0,U.jsx)(K.Refresh,{className:e.sessionsLoading?`spin`:``})}),e.account?.loggedIn?(0,U.jsx)(J,{label:`Import chats from your other coding agents`,onClick:()=>t.openDialog(`import-claude`),"data-testid":`open-import-claude`,children:(0,U.jsx)(K.Download,{})}):null,e.account?.loggedIn?(0,U.jsx)(J,{label:`Export my chats`,onClick:()=>t.openDialog(`export-chats`),"data-testid":`open-export-chats`,children:(0,U.jsx)(K.Upload,{})}):null,h===`projects`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(J,{label:`Collapse all projects`,onClick:()=>M(!0),"data-testid":`projects-collapse-all`,children:(0,U.jsx)(K.CollapseAll,{})}),(0,U.jsx)(J,{label:`Expand all projects`,onClick:()=>M(!1),"data-testid":`projects-expand-all`,children:(0,U.jsx)(K.ExpandAll,{})})]}):null,(0,U.jsx)(J,{label:`Conversations — what your chats send each other`,onClick:()=>t.openConversations(),"data-testid":`open-conversations`,children:(0,U.jsx)(K.Chats,{})}),(0,U.jsx)(J,{label:`What your chats are about — each chat’s about and what it cost`,onClick:()=>t.openChatAbouts(),"data-testid":`open-chat-abouts`,children:(0,U.jsx)(K.Info,{})}),(0,U.jsx)(J,{label:e.prefs.sidebarPinned?`Hide the session list — it slides in when the pointer reaches the left edge`:`Pin the session list beside the chat`,className:H(`hidden md:inline-flex`,e.prefs.sidebarPinned?`text-accent`:`text-fg-muted`),"aria-pressed":e.prefs.sidebarPinned,onClick:()=>void t.savePrefs({sidebarPinned:!e.prefs.sidebarPinned}),"data-testid":`sidebar-pin`,children:(0,U.jsx)(K.Pin,{})})]}),(0,U.jsx)(YF,{clock:p}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-1 pb-2`,children:se&&ae.trim()!==``?(0,U.jsx)(uP,{query:ae,options:n}):(0,U.jsxs)(U.Fragment,{children:[D.length>0?(0,U.jsxs)(`div`,{className:`mb-1`,"data-testid":`section-pinned`,children:[(0,U.jsx)(`div`,{className:GF,children:(0,U.jsx)(`span`,{children:`Pinned`})}),D.map(t=>t.kind===`chat`?(0,U.jsx)(kA,{session:t.session,active:t.session.id===e.currentSessionId&&me===null,link:e.sessionLinks[t.session.id]??null,menuOpen:c.menuFor===t.session.id,kindIcon:!0,testIdPrefix:`pinned-session`,...he},`chat:${t.session.id}`):(0,U.jsx)(QF,{project:t.project,sessions:t.sessions,active:me?.kind===`project`&&me.projectId===t.project.id,onOpen:w,onMenu:(e,n)=>u({target:{projectId:t.project.id,foldKey:null},at:e,el:n})},`project:${t.project.id}`))]}):null,(0,U.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-local`,children:[e.sessionsError?(0,U.jsx)(`div`,{className:`px-2 py-2 text-xs text-danger`,children:e.sessionsError}):null,k?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{"data-testid":`section-today`,children:[(0,U.jsxs)(`div`,{className:GF,children:[(0,U.jsx)(`span`,{children:`Today`}),(0,U.jsx)(`span`,{className:`font-normal normal-case`,children:k.today.length||``}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(ZF,{view:h,onChange:pe})]}),ge??(k.today.length===0?(0,U.jsx)(`div`,{className:`px-3 py-1 text-xs text-fg-faint`,"data-testid":`today-empty`,children:T?`Nothing from today matches.`:`Nothing yet today.`}):k.today.map(t=>(0,U.jsx)(kA,{session:t,active:t.id===e.currentSessionId&&me===null,link:e.sessionLinks[t.id]??null,menuOpen:c.menuFor===t.id,projectName:t.projectId?A.get(t.projectId)??null:null,...he},t.id)))]}),k.older.length>0?(0,U.jsxs)(`div`,{"data-testid":`section-older`,children:[(0,U.jsxs)(`div`,{className:GF,children:[(0,U.jsx)(`span`,{children:`Older`}),(0,U.jsx)(`span`,{className:`font-normal normal-case`,children:k.older.length})]}),k.older.map(t=>(0,U.jsx)(kA,{session:t,active:t.id===e.currentSessionId&&me===null,link:e.sessionLinks[t.id]??null,menuOpen:c.menuFor===t.id,projectName:t.projectId?A.get(t.projectId)??null:null,...he},t.id))]}):null]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:GF,"data-testid":`section-by-project`,children:[(0,U.jsx)(`span`,{children:`By project`}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsx)(ZF,{view:h,onChange:pe})]}),ge,j.map(n=>{let r=`local:${n.key}`;return(0,U.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`project-group-${n.key}`,children:[(0,U.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,U.jsx)(nI,{group:n,collapsed:x(n.key),onToggle:()=>S(n.key),onMenu:(e,t)=>u({target:{projectId:n.projectId,foldKey:n.key},at:e,el:t}),menuOpen:l?.target.foldKey===n.key}),n.projectId?(0,U.jsxs)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:[(0,U.jsx)(J,{label:`Settings of ${n.name}`,className:`p-1`,"data-testid":`project-settings-${n.key}`,onClick:e=>{e.stopPropagation(),t.openProjectSettings(n.projectId)},children:(0,U.jsx)(K.Settings,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(K.Plus,{className:`w-3.5 h-3.5`})})]}):null]}),x(n.key)?null:n.sessions.map(t=>(0,U.jsx)(kA,{session:t,active:t.id===e.currentSessionId&&me===null,link:e.sessionLinks[t.id]??null,menuOpen:c.menuFor===t.id,...he},t.id))]},r)})]})]}),(0,U.jsxs)(`div`,{className:`mb-1`,"data-testid":`sessions-remote`,children:[(0,U.jsxs)(`button`,{type:`button`,className:WF,onClick:P,"aria-expanded":!y(`remote`),children:[(0,U.jsx)(K.Chevron,{open:!y(`remote`),className:`w-3 h-3`}),(0,U.jsx)(K.Globe,{className:`w-3 h-3`}),(0,U.jsx)(`span`,{className:`truncate`,children:`Remote`}),(0,U.jsx)(`span`,{className:`ml-auto font-normal`,children:N.length})]}),y(`remote`)?null:(0,U.jsxs)(U.Fragment,{children:[!e.remote.supported||e.remote.reason===`logged_out`?(0,U.jsx)(`div`,{className:`px-3 py-3 text-xs text-fg-faint`,children:`Sign in to see the sessions of your other devices.`}):N.length===0?(0,U.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,N.map(e=>(0,U.jsx)($F,{host:e,collapsed:y(`host:${e.hostId}`)||i[`host:${e.hostId}`]===void 0,onToggle:()=>{let n=`host:${e.hostId}`,r=i[n]===void 0||i[n]===!0;a(e=>({...e,[n]:!r})),r&&t.refreshHostSessions(e.hostId)}},e.hostId))]})]})]})}),(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border px-3 py-2 text-[11px] text-fg-faint`,children:(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.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`,f]}),(0,U.jsx)(J,{label:`Lock this device — vault and sessions`,className:`p-1`,"data-testid":`lock-device`,onClick:()=>s(!0),children:(0,U.jsx)(K.Lock,{className:`h-3.5 w-3.5`})})]})}),(0,U.jsx)(lg,{open:l!==null,at:l?.at??{x:0,y:0},anchorEl:l?.el??null,label:`Project actions`,testId:`project-context-menu`,onClose:d,items:l?MA({projectId:l.target.projectId,pinned:l.target.projectId!==null&&Cc(g,`project`,l.target.projectId),fold:l.target.foldKey===null?null:{collapsed:x(l.target.foldKey),onToggle:()=>S(l.target.foldKey)},actions:t}):[]}),c.element,(0,U.jsx)(ag,{open:o,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:()=>s(!1)})]})}function YF({clock:e}){let{state:t,actions:n}=W(),[r,i]=(0,v.useState)(null),a=(0,v.useCallback)(()=>i(null),[]),o=t.page,s=()=>{window.innerWidth<768&&n.setSidebar(!1)};return(0,U.jsxs)(`div`,{className:`shrink-0 border-b border-border px-1 py-1`,"data-testid":`sidebar-nav`,children:[(0,U.jsxs)(`div`,{className:`flex items-center rounded-md hover:bg-surface-2`,children:[(0,U.jsxs)(`button`,{type:`button`,className:H(qF,`flex-1 hover:bg-transparent`),title:`New chat (Ctrl+T)`,onClick:()=>{n.newTab(),s()},"data-testid":`sidebar-new`,children:[(0,U.jsx)(K.Edit,{className:`w-4 h-4 shrink-0 text-fg-muted`}),(0,U.jsx)(`span`,{children:`New`})]}),(0,U.jsx)(J,{label:`Start a new chat or a new project`,className:`mr-1 p-1`,"aria-haspopup":`menu`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();i({at:{x:t.left,y:t.bottom+2},el:e.currentTarget})},"data-testid":`sidebar-new-menu`,children:(0,U.jsx)(K.Chevron,{open:!0,className:`w-3.5 h-3.5`})})]}),(0,U.jsxs)(`button`,{type:`button`,className:H(qF,`w-full`,o?.kind===`projects`||o?.kind===`project`?`bg-surface-2 font-medium`:``),"aria-current":o?.kind===`projects`?`page`:void 0,onClick:()=>{n.openPage({kind:`projects`}),s()},"data-testid":`open-projects`,children:[(0,U.jsx)(K.Project,{className:`w-4 h-4 shrink-0 text-fg-muted`}),(0,U.jsx)(`span`,{children:`Projects`})]}),(0,U.jsx)(XF,{clock:e,active:o?.kind===`scheduled`,onOpen:()=>{n.openPage({kind:`scheduled`}),s()}}),(0,U.jsx)(lg,{open:r!==null,at:r?.at??{x:0,y:0},anchorEl:r?.el??null,label:`New`,testId:`sidebar-new-context-menu`,onClose:a,items:[{key:`chat`,label:`New chat`,hint:`Ctrl+T`,icon:(0,U.jsx)(K.Chats,{className:`w-3.5 h-3.5`}),onSelect:()=>{n.newTab(),s()},testId:`sidebar-new-chat`},{key:`project`,label:`New project…`,icon:(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5`}),onSelect:()=>n.openNewProject(),testId:`sidebar-new-project`}]})]})}function XF({clock:e,active:t,onOpen:n}){let{tasks:r}=zA(),i=(0,v.useMemo)(()=>r?YA(r,e):null,[r,e]);return(0,U.jsxs)(`button`,{type:`button`,className:H(qF,`w-full`,t?`bg-surface-2 font-medium`:``),"aria-current":t?`page`:void 0,onClick:n,title:i?.text??`Every scheduled task on this PC`,"data-testid":`open-scheduled`,children:[(0,U.jsx)(K.Clock,{className:`w-4 h-4 shrink-0 text-fg-muted`}),(0,U.jsx)(`span`,{className:`flex-1`,children:`Scheduled`}),i?(0,U.jsx)(`span`,{className:H(`mr-1 inline-block h-2 w-2 shrink-0 rounded-full`,i.tone===`stuck`?`bg-warn`:`bg-accent`),"aria-label":i.text,"data-testid":`scheduled-dot`,"data-tone":i.tone}):null]})}function ZF({view:e,onChange:t}){let[n,r]=(0,v.useState)(null),i=(0,v.useCallback)(()=>r(null),[]),a=e=>e?(0,U.jsx)(K.Check,{className:`w-3.5 h-3.5 text-accent`}):(0,U.jsx)(`span`,{className:`w-3.5`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(J,{label:`How the list is laid out`,className:`p-0.5 normal-case`,"aria-haspopup":`menu`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();r({at:{x:t.left,y:t.bottom+2},el:e.currentTarget})},"data-testid":`sidebar-view-options`,children:(0,U.jsx)(K.Sliders,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(lg,{open:n!==null,at:n?.at??{x:0,y:0},anchorEl:n?.el??null,label:`How the list is laid out`,testId:`sidebar-view-menu`,onClose:i,items:[{key:`recent`,label:`Recent — Today, then Older`,icon:a(e===`recent`),onSelect:()=>t(`recent`),testId:`sidebar-view-recent`},{key:`projects`,label:`By project`,icon:a(e===`projects`),onSelect:()=>t(`projects`),testId:`sidebar-view-projects`}]})]})}function QF({project:e,sessions:t,active:n,onOpen:r,onMenu:i}){let a=(0,v.useRef)(null),o=e.sessionCount??t.length;return(0,U.jsxs)(`div`,{ref:a,className:H(`group relative flex items-center rounded-md`,n?`bg-accent-soft`:`hover:bg-surface-2`),onContextMenu:e=>{e.preventDefault(),i({x:e.clientX,y:e.clientY},a.current)},children:[(0,U.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 py-1.5 pl-2 pr-8 text-left`,"aria-current":n?`page`:void 0,title:`Open ${e.name}`,onClick:()=>r(e.id),"data-testid":`pinned-project-${e.id}`,children:[(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-fg`,children:e.name}),(0,U.jsx)(wA,{sessions:t,testId:`pinned-project-busy-${e.id}`}),(0,U.jsx)(`span`,{className:`shrink-0 rounded-full bg-surface-3 px-1.5 py-px text-[10px] font-semibold text-fg-muted`,children:o})]}),(0,U.jsx)(J,{label:`Project actions`,className:`pointer-events-none absolute right-1 bg-surface/90 p-1 opacity-0 group-focus-within:pointer-events-auto group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:opacity-100`,"data-testid":`pinned-project-menu-${e.id}`,onClick:e=>{e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();i({x:t.left,y:t.bottom+2},a.current)},children:(0,U.jsx)(K.More,{className:`w-3.5 h-3.5`})})]})}function $F({host:e,collapsed:t,onToggle:n}){let{state:r,actions:i}=W(),a=e.label||e.hostName,o=r.remote.sessions[e.hostId],[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),d=e.remoteAccessOff===!0;return(0,U.jsxs)(`div`,{className:`mb-1 pl-2`,"data-testid":`remote-host-${e.hostId}`,children:[(0,U.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,U.jsxs)(`button`,{type:`button`,className:WF,onClick:n,"aria-expanded":!t,title:e.online?`${a} — online`:`${a} — offline (read-only history)`,children:[(0,U.jsx)(K.Chevron,{open:!t,className:`w-3 h-3`}),(0,U.jsx)(`span`,{className:H(`inline-block h-2 w-2 shrink-0 rounded-full`,e.online?`bg-ok`:`bg-fg-faint`),"aria-label":e.online?`online`:`offline`}),(0,U.jsx)(`span`,{className:`truncate normal-case`,children:a}),d?(0,U.jsx)(`span`,{className:`shrink-0 rounded-full bg-warn-soft px-1.5 text-[10px] font-normal normal-case text-warn`,"data-testid":`remote-off-${e.hostId}`,children:`remote access off`}):null,(0,U.jsx)(`span`,{className:`ml-auto font-normal`,children:!d&&o?o.length:``})]}),(0,U.jsxs)(`div`,{className:`absolute right-1 hidden items-center rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:[(0,U.jsx)(J,{label:d?_u(a):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||d,"data-testid":`remote-new-chat-${e.hostId}`,onClick:()=>void i.newRemoteTab(e.hostId),children:(0,U.jsx)(K.Plus,{className:`w-3 h-3`})}),(0,U.jsx)(J,{label:`Unlock this device`,className:`p-1`,disabled:d,"data-testid":`remote-unlock-${e.hostId}`,onClick:()=>c(`unlock`),children:(0,U.jsx)(K.Lock,{className:`w-3 h-3`})}),(0,U.jsx)(J,{label:`Rename device`,className:`p-1`,onClick:()=>c(`rename`),children:(0,U.jsx)(K.Edit,{className:`w-3 h-3`})})]}),(0,U.jsx)(og,{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,U.jsx)(og,{open:s===`rename`,title:`Rename device`,label:`Device name`,initialValue:a,onSubmit:t=>{t!==a&&i.renameHost(e.hostId,t)},onClose:()=>c(null)})]}),!t&&d?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-warn`,"data-testid":`remote-off-note-${e.hostId}`,children:_u(a)}):t?null:o===void 0?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`Loading…`}):o.length===0?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-faint`,children:`No sessions on this device.`}):o.map(t=>(0,U.jsx)(eI,{host:e,session:t,active:t.id===r.currentSessionId&&r.page===null,onConfirmDelete:()=>u(t)},t.id)),(0,U.jsx)(ag,{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 eI({host:e,session:t,active:n,onConfirmDelete:r}){let{actions:i}=W(),a=Ip(t);return(0,U.jsxs)(`div`,{className:H(`group flex items-center rounded-md`,n?`bg-accent-soft`:`hover:bg-surface-2`),children:[(0,U.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,U.jsx)(SA,{status:t.status}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:H(`truncate text-sm`,n?`font-medium`:``),children:a}),(0,U.jsxs)(`div`,{className:`truncate text-[11px] text-fg-faint`,children:[Op(t.updatedAt),t.model?` · ${t.model}`:``,e.online?``:` · read-only`]})]})]}),(0,U.jsx)(`div`,{className:`mr-1 hidden items-center gap-0.5 rounded bg-surface/90 group-hover:flex group-focus-within:flex`,children:(0,U.jsx)(J,{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,U.jsx)(K.Trash,{className:`w-3.5 h-3.5`})})})]})}function tI(){let{state:e}=W(),t=typeof window<`u`?window.oonacode:void 0;return ah(t?.appVersion??e.bundleAppVersion??e.connection.appVersion??e.info?.appVersion??`0.0.0`,ih({bridge:t,info:e.info}))}function nI({group:e,collapsed:t,onToggle:n,onMenu:r,menuOpen:i=!1}){let a=(0,v.useRef)(null),o=(0,v.useRef)(null),[s,c]=(0,v.useState)(null),l=(0,v.useCallback)(()=>{o.current!==null&&(clearTimeout(o.current),o.current=null),c(null)},[]),u=(0,v.useRef)(i);return u.current=i,(0,v.useEffect)(()=>{i&&l()},[i,l]),(0,v.useEffect)(()=>{if(s===null)return;let e=e=>{sg(e.target,a.current)&&l()};return window.addEventListener(`scroll`,e,!0),()=>window.removeEventListener(`scroll`,e,!0)},[s,l]),(0,v.useEffect)(()=>()=>{o.current!==null&&clearTimeout(o.current)},[]),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`button`,{ref:a,type:`button`,className:KF,onClick:()=>{l(),n()},onMouseEnter:()=>{o.current!==null&&clearTimeout(o.current),!u.current&&(o.current=setTimeout(()=>{o.current=null,a.current&&!u.current&&c(a.current.getBoundingClientRect())},450))},onMouseLeave:l,onContextMenu:e=>{e.preventDefault(),l(),r({x:e.clientX,y:e.clientY},a.current)},"aria-expanded":!t,"data-testid":`project-header-${e.key}`,children:[(0,U.jsx)(K.Chevron,{open:!t,className:`w-3 h-3 shrink-0`}),(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.name}),(0,U.jsx)(wA,{sessions:e.sessions,testId:`project-busy-${e.key}`}),(0,U.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})]}),s===null?null:(0,U.jsx)(rI,{group:e,anchor:s})]})}function rI({group:e,anchor:t}){let{state:n}=W(),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,Kh.createPortal)((0,U.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,U.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5`,children:[(0,U.jsx)(K.Project,{className:`w-3.5 h-3.5 shrink-0 text-project`}),(0,U.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.name})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(EA,{label:`Chats`,value:String(e.sessions.length)}),(0,U.jsx)(EA,{label:`Working now`,value:i>0?String(i):null}),(0,U.jsx)(EA,{label:`Last activity`,value:a?Op(a):null}),(0,U.jsx)(EA,{label:o.length>1?`Folders`:`Folder`,value:o.length>1?`${o.length} folders`:o[0]??null})]}),e.projectId?(0,U.jsxs)(`div`,{className:`mt-2 border-t border-border pt-2`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-fg-faint`,children:`Standing instructions`}),s?(0,U.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,U.jsx)(`div`,{className:`text-fg-faint`,children:`None — chats here start with nothing extra.`})]}):(0,U.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 text-fg-faint`,children:`Chats filed under no project.`})]}),document.body)}function iI(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 aI(e){let t=e.split(/[\\/]+/).filter(Boolean);return t[t.length-1]??e}function oI(){let{state:e,actions:t}=W(),n=Bh(),r=zh(),i=n?.projectDir??(r?.projectDir?r.cwd:null)??null,a=i?aI(i):`no folder`,[o,s]=(0,v.useState)(null),c=e.currentSessionId?e.files[e.currentSessionId]:void 0,l=c?.active??null,u=e.page,d=u===null?null:u.kind===`projects`?`Projects`:u.kind===`scheduled`?`Scheduled`:e.vaultProjects.find(e=>e.id===u.projectId)?.name??`Project`,[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),g=(0,v.useCallback)(()=>h(null),[]),[_,y]=(0,v.useState)(null),b=_?e.remote.tabs[_.id]??null:null,x=(0,v.useRef)(null);(0,v.useEffect)(()=>{x.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[l]);let S=e.tabs.ids,C=m?m.kind===`chat`?[{key:`rename`,label:`Rename…`,icon:(0,U.jsx)(K.Edit,{className:`w-3.5 h-3.5`}),onSelect:()=>{t.selectSession(m.id),p(m.id)},testId:`tab-menu-rename`},{key:`close`,label:`Close`,icon:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`}),separated:!0,onSelect:()=>t.closeTab(m.id),testId:`tab-menu-close`},{key:`close-others`,label:`Close other tabs`,disabled:S.length<2,onSelect:()=>{for(let e of S)e!==m.id&&t.closeTab(e)},testId:`tab-menu-close-others`},{key:`close-all`,label:`Close all tabs`,onSelect:()=>{for(let e of S)t.closeTab(e)},testId:`tab-menu-close-all`},{key:`delete`,label:`Delete`,icon:(0,U.jsx)(K.Trash,{className:`w-3.5 h-3.5`}),danger:!0,separated:!0,onSelect:()=>{e.drafts[m.id]?t.closeTab(m.id):y({id:m.id,title:m.title})},testId:`tab-menu-delete`}]:[{key:`close`,label:`Close`,icon:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`}),onSelect:()=>t.closeFile(m.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!==m.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`}]:[],w=(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?Wp(n):r?Ip(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]),T=(0,v.useCallback)((e,n)=>{p(null),t.renameTab(e,n)},[t]),E=e.currentSessionId?e.remote.tabs[e.currentSessionId]??null:null,D=(0,v.useRef)(null),O=e.tabs.activeId;(0,v.useEffect)(()=>{D.current?.scrollIntoView({block:`nearest`,inline:`nearest`})},[O]);let k=(0,v.useRef)(null),A=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=k.current;if(!e)return;let t=e=>{let t=A.current;if(!t)return;let n=iI(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,U.jsxs)(`div`,{ref:k,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,U.jsxs)(`div`,{ref:A,className:`flex min-w-0 flex-1 items-stretch gap-1 overflow-x-auto`,"data-testid":`tabs-scroller`,children:[u===null?null:(0,U.jsxs)(`div`,{role:`tab`,"aria-selected":!0,tabIndex:0,onAuxClick:e=>{e.button===1&&(e.preventDefault(),t.closePage())},className:`group relative flex min-w-[7rem] max-w-[15rem] shrink-0 items-center gap-1.5 rounded-t-md border-b-2 border-accent bg-surface-2 px-2 text-xs text-fg`,"data-testid":`page-tab`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 py-1`,children:[u.kind===`scheduled`?(0,U.jsx)(K.Clock,{className:`w-3 h-3 shrink-0 text-fg-faint`}):(0,U.jsx)(K.Project,{className:`w-3 h-3 shrink-0 text-project`}),(0,U.jsx)(`span`,{className:`truncate`,children:Np(d??``,28)})]}),(0,U.jsx)(J,{label:`Close ${d??`page`}`,className:`p-0.5`,onClick:()=>t.closePage(),"data-testid":`page-tab-close`,children:(0,U.jsx)(K.X,{className:`w-3 h-3`})})]}),w.map((n,r)=>{let i=n.id===e.tabs.activeId&&l===null&&u===null,a=f===n.id;return(0,U.jsxs)(`div`,{ref:n.id===e.tabs.activeId?D: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(),h({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:H(`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,U.jsx)(sI,{initial:n.customTitle,placeholder:n.title,onCommit:e=>T(n.id,e),onCancel:()=>p(null)}):(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{t.selectSession(n.id),t.showChat(n.id)},onDoubleClick:()=>p(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,U.jsx)(K.Spinner,{className:H(`w-3 h-3 shrink-0`,n.waiting?`text-warn`:`text-accent`),title:`Agent running`}):n.error?(0,U.jsx)(K.Alert,{className:`w-3 h-3 shrink-0 text-danger`}):(0,U.jsx)(`span`,{className:`w-3 shrink-0`,"aria-hidden":!0}),(0,U.jsx)(`span`,{className:`truncate`,children:Np(n.title,28)})]}),(0,U.jsx)(J,{label:`Close ${n.title}`,className:`p-0.5 opacity-0 group-hover:opacity-100 focus:opacity-100`,onClick:()=>t.closeTab(n.id),children:(0,U.jsx)(K.X,{className:`w-3 h-3`})})]},n.id)}),c?.open.map(e=>{let n=l===e&&u===null,r=mE(e);return(0,U.jsxs)(`div`,{ref:n?x:void 0,role:`tab`,"aria-selected":n,tabIndex:n?0:-1,title:e,onContextMenu:t=>{t.preventDefault(),h({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:H(`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,U.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,U.jsx)(K.File,{className:`w-3 h-3 shrink-0 text-fg-faint`}),(0,U.jsx)(`span`,{className:`truncate`,children:Np(r,28)})]}),(0,U.jsx)(J,{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,U.jsx)(K.X,{className:`w-3 h-3`})})]},`file:${e}`)})]}),(0,U.jsx)(lg,{open:m!==null,at:m?.at??{x:0,y:0},anchorEl:m?.el??null,label:`Tab actions`,onClose:g,items:C.map(e=>({...e,onSelect:()=>{g(),e.onSelect()}}))}),(0,U.jsx)(ag,{open:_!==null,title:_?`Delete "${Np(_.title,60)}"?`:`Delete this chat?`,message:b?`Its conversation is removed from ${b.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.`:`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:()=>{_&&(b?t.deleteRemoteSession(b.hostId,b.sessionId):t.deleteSession(_.id))},onClose:()=>y(null)}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 pl-1`,children:[(0,U.jsx)(J,{label:`New chat`,onClick:()=>t.newTab(),"data-testid":`new-tab`,children:(0,U.jsx)(K.Plus,{className:`w-4 h-4`})}),(0,U.jsxs)(`button`,{hidden:u!==null,type:`button`,title:E?`Choose a project folder in OonaCode on ${E.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":E?`Choose a project folder in OonaCode on ${E.hostName}`:`Use a project folder…`,disabled:E!==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,U.jsx)(K.Folder,{className:`w-3.5 h-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`hidden truncate sm:inline`,"data-testid":`folder-chip`,children:a})]})]})]})}function sI({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,U.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 cI(){let e=typeof window<`u`?window.oonacode:void 0;return{desktop:typeof e?.installUpdate==`function`,terminal:typeof e?.updateTerminalInstall==`function`}}function lI(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 uI=2*Math.PI*10;function dI(){return typeof window<`u`&&window.oonacode!==void 0}function fI(){let{state:e,actions:t}=W(),n=e.update,r=e.updateInstall,i=e.prefs.dismissedUpdateVersion,a=n.version!==``&&(e.updateDismissed===n.version||i===n.version);if(!dI())return null;let o=lh({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,U.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:H(`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,U.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,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,className:`stroke-border`}),(0,U.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:uI,strokeDashoffset:uI*(1-Math.max(0,Math.min(100,u))/100),className:`stroke-accent`})]}):null,c&&o!==`downloading`&&o!==`ready`?(0,U.jsx)(`span`,{"data-testid":`update-badge-checking`,className:`inline-flex`,children:(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`})}):o===`ready`?(0,U.jsx)(`span`,{"data-testid":`update-badge-ready`,className:`inline-flex`,children:(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`})}):o===`downloading`?(0,U.jsx)(`span`,{"data-testid":`update-badge-downloading`,className:`text-[9px] font-semibold`,children:u}):(0,U.jsx)(`span`,{"data-testid":o===`available`?`update-badge-available`:`update-badge-idle`,className:`inline-flex`,children:(0,U.jsx)(K.Download,{className:`w-3.5 h-3.5`})}),o===`available`?(0,U.jsx)(`span`,{className:`absolute -right-0.5 -top-0.5 h-2 w-2 rounded-full bg-accent`,"aria-hidden":!0}):null]})}function pI(){let{state:e,actions:t}=W(),n=e.updateInstall,r=Math.round(Math.max(0,Math.min(100,n.percent))),i=fh(n.bytesPerSecond);if(n.phase===`error`)return(0,U.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,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-medium`,children:`The update could not be downloaded.`}),(0,U.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.error})]})]}),(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsxs)(q,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`update-retry`,children:[(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]});let a=n.phase===`installing`;return(0,U.jsxs)(`div`,{className:`space-y-1.5`,"data-testid":`update-progress`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,U.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,U.jsxs)(`span`,{className:`text-fg-muted`,children:[r,`%`]})]}),n.notice?(0,U.jsx)(`div`,{className:`pre-wrap text-xs text-warn`,"data-testid":`update-notice`,role:`status`,children:n.notice}):null,(0,U.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-2`,children:(0,U.jsx)(`div`,{className:H(`h-full rounded-full bg-accent`,a&&`animate-pulse`),style:{width:`${a?100:r}%`},"data-testid":`update-progress-bar`})}),a?(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-fg-faint`,children:[(0,U.jsxs)(`span`,{children:[dh(n.transferred),n.total>0?` of ${dh(n.total)}`:``]}),i?(0,U.jsx)(`span`,{children:i}):null]})]})}function mI(){let{state:e,actions:t}=W(),n=e.terminalUpdate;return n.running?(0,U.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,U.jsx)(K.Spinner,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-medium text-fg`,children:`Updating the oona CLI and host service...`}),(0,U.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,U.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,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(K.Alert,{className:`mt-0.5 w-3.5 h-3.5 shrink-0`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-medium`,children:`The CLI and host service could not be updated.`}),(0,U.jsx)(`div`,{className:`mt-0.5 pre-wrap break-words`,children:n.message})]})]}),(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsxs)(q,{size:`sm`,onClick:()=>void t.installUpdate(),"data-testid":`terminal-update-retry`,children:[(0,U.jsx)(K.Refresh,{className:`w-3.5 h-3.5`}),` Try again`]})})]}):null}function hI({open:e,onClose:t}){let{state:n,actions:r}=W(),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=cI(),l=mh(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,U.jsx)(tg,{open:e,title:`Update OonaCode`,onClose:t,footer:d?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:t,children:`Later`}),(0,U.jsxs)(q,{variant:`primary`,onClick:()=>void r.installUpdate(),"data-testid":`update-restart`,children:[(0,U.jsx)(K.Refresh,{className:`w-4 h-4`}),`Restart and install`]})]}):f?(0,U.jsx)(q,{onClick:t,children:`Close`}):l.upToDate?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(q,{onClick:()=>void r.checkUpdates(!0),busy:m,disabled:m,"data-testid":`update-check-again`,children:[(0,U.jsx)(K.Refresh,{className:`w-4 h-4`}),`Check again`]}),(0,U.jsx)(q,{variant:`primary`,onClick:t,children:`Close`})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:()=>r.dismissUpdate(),children:`Skip this version`}),(0,U.jsx)(q,{onClick:t,children:`Later`}),(0,U.jsxs)(q,{variant:`primary`,busy:m,disabled:m,onClick:()=>void r.installUpdate(),children:[(0,U.jsx)(K.Download,{className:`w-4 h-4`}),l.label]})]}),children:(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[u?(0,U.jsxs)(`span`,{className:`font-medium`,children:[`Release `,u]}):null,i.channel?(0,U.jsx)(X,{children:i.channel}):null,n.updateChecking?(0,U.jsx)(`span`,{className:`text-xs text-fg-faint`,"data-testid":`update-rechecking`,children:`checking for a newer one…`}):null,i.publishedAt?(0,U.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`published `,new Date(i.publishedAt).toLocaleDateString()]}):null]}),f?(0,U.jsx)(pI,{}):null,(0,U.jsx)(mI,{}),i.components.length>0?(0,U.jsx)(`ul`,{className:`divide-y divide-border rounded-md border border-border`,children:i.components.map(e=>(0,U.jsxs)(`li`,{className:`flex items-start gap-3 px-3 py-2`,children:[(0,U.jsx)(K.Download,{className:`mt-0.5 w-3.5 h-3.5 shrink-0 text-accent`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:e.label}),(0,U.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[e.current,` → `,(0,U.jsx)(`span`,{className:`font-medium text-fg`,children:e.latest})]}),(0,U.jsx)(`div`,{className:`text-xs text-fg-faint`,"data-testid":`update-how-${e.component}`,children:hh(e.component,c)}),e.notes?(0,U.jsx)(`div`,{className:`mt-0.5 pre-wrap text-xs text-fg-faint`,children:e.notes}):null]})]},e.component))}):null,i.notes?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-xs font-semibold uppercase tracking-wide text-fg-faint`,children:`Release notes`}),(0,U.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,U.jsx)(`p`,{className:`text-xs text-fg-faint`,"data-testid":`update-plan-note`,children:lI(l)})]})})}function gI(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 _I(){let{state:e,actions:t}=W(),n=gI(e.connection.status),r=e.account?.loggedIn===!0,i=typeof window<`u`&&window.oonacode?.host===`vscode`;return(0,U.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,U.jsx)(J,{label:`Toggle sidebar`,onClick:()=>{typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(min-width: 768px)`).matches?t.savePrefs({sidebarPinned:!e.prefs.sidebarPinned}):t.setSidebar(!e.ui.sidebarOpen)},"data-testid":`toggle-sidebar`,children:(0,U.jsx)(K.PanelLeft,{})}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[i?null:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`font-semibold tracking-tight`,children:`OonaCode`}),(0,U.jsx)(`span`,{className:`hidden text-fg-faint sm:inline`,children:`/`})]}),(0,U.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,U.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,U.jsx)(`span`,{className:H(`inline-block h-2 w-2 rounded-full`,n.cls),"aria-hidden":!0}),(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:n.label})]})]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,U.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,U.jsx)(K.Bug,{className:`w-3.5 h-3.5`})}),(0,U.jsx)(fI,{}),e.hostUpdatedTo?(0,U.jsxs)(q,{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,U.jsxs)(q,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),"data-testid":`sign-in`,children:[(0,U.jsx)(K.LogIn,{className:`w-3.5 h-3.5`}),` Sign in`]}),(0,U.jsx)(J,{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,U.jsx)(K.Folder,{})}),(0,U.jsx)(J,{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,U.jsx)(K.Panel,{})}),(0,U.jsx)(J,{label:`Doctor`,onClick:()=>t.openDialog(`doctor`),children:(0,U.jsx)(K.Stethoscope,{})}),r?(0,U.jsx)(vI,{}):null,(0,U.jsx)(J,{label:`Account`,onClick:()=>t.openDialog(`account`),children:(0,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(K.User,{}),r?(0,U.jsx)(`span`,{className:H(`absolute -right-0.5 -top-0.5 h-1.5 w-1.5 rounded-full`,e.account?.vaultUnlocked?`bg-ok`:`bg-warn`)}):null]})}),(0,U.jsx)(J,{label:`Settings`,onClick:()=>t.openDialog(`settings`),children:(0,U.jsx)(K.Settings,{})})]})]})}function vI(){let{state:e}=W(),[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?Vm(i):null,s=Wm(i),c=Gm;return(0,U.jsxs)(`div`,{className:`relative`,ref:r,children:[(0,U.jsx)(J,{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,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(K.Coins,{}),a===null?null:(0,U.jsx)(`span`,{className:H(`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,U.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,U.jsx)(`div`,{className:`text-fg-muted`,children:`Balance is unavailable — the gateway can't be reached.`}):(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Plan`}),(0,U.jsxs)(`span`,{className:`font-medium`,children:[i.planName,i.status===`none`?` (lapsed)`:``]})]}),(0,U.jsx)(`div`,{className:`h-px bg-border`}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Credits`}),(0,U.jsx)(`span`,{className:`font-semibold tabular-nums`,children:c(o.balance)})]}),s?(0,U.jsx)(`div`,{className:H(`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,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Plan credits`}),(0,U.jsx)(`span`,{className:`tabular-nums`,children:c(o.plan??0)})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`Top-up credits`}),(0,U.jsx)(`span`,{className:`tabular-nums`,children:c(o.topup??0)})]})]}):null,(0,U.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 yI(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 bI(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 ${dh(e.size)}; a file may be at most ${dh(Bs)}.`};if(i+e.size>12582912)return{accepted:n,refused:`All files together may be at most ${dh(Vs)}.`};n.push(e),r+=1,i+=e.size}return{accepted:n,refused:null}}function xI(e){return e instanceof zd?e.code===`account_required`||e.status===401?`Sign in to OonaCode first — a report is filed under your account so we can answer it.`:Ud(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 SI=0;function CI({open:e,onClose:t}){let{state:n,actions:r,api:i}=W(),[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}=bI(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 yI(t);if(!n)continue;let r=t.type||`application/octet-stream`;SI+=1,e.push({key:`f${SI}`,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,zs),...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(xI(e))}finally{u(!1)}},E=zs-a.length;return(0,U.jsx)(tg,{open:e,title:`Bug Report`,onClose:t,footer:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{onClick:t,disabled:l,children:`Cancel`}),(0,U.jsxs)(q,{variant:`primary`,busy:l,disabled:!a.trim()||p,onClick:()=>void T(),"data-testid":`bug-report-send`,children:[(0,U.jsx)(K.Bug,{className:`w-4 h-4`}),`Send report`]})]}),children:(0,U.jsxs)(`div`,{className:`space-y-3 text-sm`,"data-testid":`bug-report-dialog`,children:[(0,U.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,U.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,U.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,U.jsx)(`span`,{className:`font-medium text-fg`,children:`What happened?`}),(0,U.jsx)(`textarea`,{name:`message`,className:H(Y,`min-h-32 resize-y`),value:a,maxLength:zs,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,U.jsx)(`span`,{className:`text-xs text-fg-faint`,children:E<500?`${E} characters left`:``})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{ref:h,type:`file`,multiple:!0,className:`hidden`,onChange:C,"data-testid":`bug-report-files`}),(0,U.jsxs)(q,{size:`sm`,onClick:()=>h.current?.click(),disabled:l||p||s.length>=5,children:[(0,U.jsx)(K.Paperclip,{className:`w-3.5 h-3.5`}),`Attach files or pictures`]}),(0,U.jsxs)(`span`,{className:`text-xs text-fg-faint`,children:[`up to `,5,` files,`,` `,dh(Bs),` each`]})]}),s.length>0?(0,U.jsx)(`ul`,{className:`flex flex-wrap gap-2`,"data-testid":`bug-report-attachments`,children:s.map(e=>(0,U.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,U.jsx)(`img`,{src:e.preview,alt:``,className:`h-8 w-8 rounded object-cover`,"aria-hidden":!0}):(0,U.jsx)(K.Paperclip,{className:`w-3.5 h-3.5 text-fg-muted`}),(0,U.jsx)(`span`,{className:`max-w-40 truncate`,title:e.name,children:e.name}),(0,U.jsx)(`span`,{className:`text-fg-faint`,children:dh(e.size)}),(0,U.jsx)(J,{label:`Remove ${e.name}`,onClick:()=>w(e.key),children:(0,U.jsx)(K.X,{className:`w-3.5 h-3.5`})})]},e.key))}):null]}),d?(0,U.jsx)(`div`,{className:`text-xs text-danger`,role:`alert`,"data-testid":`bug-report-error`,children:d}):null]})})}function wI(e){let t=Date.parse(`${e}T12:00:00`);return Number.isFinite(t)?new Date(t).toLocaleDateString(void 0,{dateStyle:`long`}):e}function TI({open:e,notes:t,onClose:n}){return(0,U.jsx)(tg,{open:e,title:`What's new in OonaCode`,onClose:n,footer:(0,U.jsx)(q,{variant:`primary`,onClick:n,children:`Got it`}),children:(0,U.jsx)(`div`,{className:`space-y-5 text-sm`,"data-testid":`whats-new`,children:t.map(e=>(0,U.jsxs)(`section`,{"data-version":e.version,children:[(0,U.jsxs)(`div`,{className:`mb-2 flex items-baseline gap-2`,children:[(0,U.jsxs)(`h3`,{className:`text-base font-semibold`,children:[`Version `,e.version]}),(0,U.jsx)(`span`,{className:`text-xs text-fg-faint`,children:wI(e.date)})]}),e.added.length>0?(0,U.jsx)(`ul`,{className:`space-y-1.5`,children:e.added.map((e,t)=>(0,U.jsxs)(`li`,{className:`flex gap-2`,children:[(0,U.jsx)(K.Plus,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-accent`}),(0,U.jsx)(`span`,{children:e})]},t))}):null,e.fixed.length>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`mb-1 mt-3 text-xs font-medium uppercase tracking-wide text-fg-faint`,children:`Fixed`}),(0,U.jsx)(`ul`,{className:`space-y-1.5`,children:e.fixed.map((e,t)=>(0,U.jsxs)(`li`,{className:`flex gap-2`,children:[(0,U.jsx)(K.Check,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-ok`}),(0,U.jsx)(`span`,{children:e})]},t))})]}):null]},e.version))})})}function EI(){let{state:e,actions:t}=W(),n=jd(e.account);return!n||e.ui.dialog===`account`?null:(0,U.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,U.jsx)(K.Alert,{className:`w-3.5 h-3.5`}),(0,U.jsx)(`span`,{className:`flex-1`,children:Rd(n)}),(0,U.jsx)(q,{size:`sm`,variant:`primary`,onClick:()=>t.openDialog(`account`),children:`Open Account`})]})}function DI({onReconnect:e}){let{state:t}=W(),n=t.connection.status;if(n===`open`||n===`idle`||n===`connecting`)return null;let r=n===`unauthorized`&&!window.oonacode;return(0,U.jsxs)(`div`,{role:`status`,className:H(`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,U.jsx)(K.Alert,{className:`w-3.5 h-3.5`}):(0,U.jsx)(K.Spinner,{className:`w-3.5 h-3.5`}),(0,U.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,U.jsx)(q,{size:`sm`,variant:`danger`,onClick:e,children:`Enter token`}):null]})}function OI(){let{actions:e}=W();(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 kI(){let{state:e,actions:t}=W(),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 AI(){let{state:e,actions:t}=W(),n=(0,v.useRef)(!1),[r,i]=(0,v.useState)(null),a=typeof window<`u`?window.oonacode:void 0,o=a?.appVersion??e.bundleAppVersion??null,s=e.settings!==null,c=e.prefs.lastSeenReleaseNotes,l=e.sessionListLoaded,u=e.sessionsTotal>0||e.sessions.length>0,d=e.settings?.uiPrefs,f=d!==void 0&&!(`lastSeenReleaseNotes`in d),p=e.ui.dialog===`none`,m=e.info?.platform??a?.platform??null;(0,v.useEffect)(()=>{if(n.current||!s||!o||!p||c===null&&!l||(n.current=!0,f))return;let{record:e,show:r}=jc(o,c,u,void 0,m);e!==null&&t.savePrefs({lastSeenReleaseNotes:e}),r.length!==0&&(i(r),t.openDialog(`whats-new`))},[t,f,p,o,c,m,l,s,u]);let h=e.ui.dialog===`whats-new`;return(0,v.useEffect)(()=>{!h&&r&&i(null)},[r,h]),r??(o?Ac(o,`0`,void 0,m):[])}function jI({page:e}){return e.kind===`projects`?(0,U.jsx)(UA,{}):e.kind===`project`?(0,U.jsx)(GA,{projectId:e.projectId},e.projectId):(0,U.jsx)(ZA,{})}function MI({onUnauthorized:e}){let{state:t,actions:n}=W(),r=(0,v.useCallback)(()=>n.openDialog(`none`),[n]),i=AI();kI();let a=typeof window<`u`&&window.oonacode?.host===`vscode`,o=t.ui.sidebarOpen&&!a;return OI(),(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-bg text-fg`,children:[(0,U.jsx)(_I,{}),(0,U.jsx)(DI,{onReconnect:e}),(0,U.jsx)(EI,{}),(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,U.jsx)(lN,{hidden:a,children:(0,U.jsx)(JF,{})}),o?(0,U.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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 md:hidden`,onClick:()=>void n.savePrefs({explorerOpen:!1}),"aria-hidden":!0}),(0,U.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,U.jsx)(HP,{})})]}):null,(0,U.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,U.jsx)(oI,{}),t.page?(0,U.jsx)(jI,{page:t.page}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(pg,{}),t.currentSessionId&&t.files[t.currentSessionId]?.active?(0,U.jsx)(QP,{}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(MM,{}),(0,U.jsx)(LM,{}),(0,U.jsx)(yA,{},t.currentSessionId??`none`)]})]})]}),t.prefs.sessionPanelOpen?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 lg:hidden`,onClick:()=>void n.savePrefs({sessionPanelOpen:!1}),"aria-hidden":!0}),(0,U.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,U.jsx)(RP,{})})]}):null]}),(0,U.jsx)(zM,{open:t.ui.dialog===`project`,onClose:r}),(0,U.jsx)(rN,{open:t.ui.dialog===`projects`,startNew:t.projectsStartNew,selectId:t.projectsSelectId,onClose:r}),(0,U.jsx)(WN,{open:t.ui.dialog===`assign-project`,onClose:r}),(0,U.jsx)(DF,{open:t.ui.dialog===`settings`,onClose:r}),(0,U.jsx)(oj,{open:t.ui.dialog===`account`,onClose:r}),(0,U.jsx)(RM,{open:t.ui.dialog===`doctor`,onClose:r}),(0,U.jsx)(fg,{open:t.ui.dialog===`session-picker`,onClose:r}),(0,U.jsx)(hI,{open:t.ui.dialog===`update`,onClose:r}),(0,U.jsx)(CI,{open:t.ui.dialog===`bug-report`,onClose:r}),(0,U.jsx)($M,{open:t.ui.dialog===`claude-login`,onClose:r}),(0,U.jsx)(ZN,{open:t.ui.dialog===`oauth-login`,onClose:r}),(0,U.jsx)(QN,{open:t.ui.dialog===`manage-models`,onClose:r}),(0,U.jsx)(TP,{open:t.ui.dialog===`import-claude`,onClose:r}),(0,U.jsx)(uN,{open:t.ui.dialog===`export-chats`,onClose:r}),(0,U.jsx)(MN,{open:t.ui.dialog===`conversations`,selectId:t.conversationsSelectId,onClose:r}),(0,U.jsx)(VN,{open:t.ui.dialog===`chat-abouts`,onClose:r}),(0,U.jsx)(TI,{open:t.ui.dialog===`whats-new`,notes:i,onClose:r}),(0,U.jsx)(XN,{open:t.ui.connectProviderId!==null,providerId:t.ui.connectProviderId,onClose:()=>n.openProviderConnect(null)}),(0,U.jsx)(kF,{})]})}function NI({onUnauthorized:e}){let{state:t}=W(),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&&jd(t.account)===null?(0,U.jsx)(BF,{}):(0,U.jsx)(MI,{onUnauthorized:e}):(0,U.jsx)(zF,{}):(0,U.jsx)(FF,{})}function PI({api:e,socket:t,relay:n,initialSessionId:r,onUnauthorized:i,reportError:a}){return(0,U.jsx)(Gh,{api:e,socket:t,relay:n??null,initialSessionId:r??null,onUnauthorized:i,...a?{reportError:a}:{},children:(0,U.jsx)(NI,{onUnauthorized:i})})}var FI=`oonacode.host.connection`,II=`session`;function LI(e){let t=e.replace(/^#\/?\??/,``),n=new URLSearchParams(t),r=n.get(`token`),i=n.get(`host`)??n.get(`baseUrl`),a=n.get(II);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 RI(e){if(!e)return null;try{let t=e.getItem(FI);if(!t)return null;let n=JSON.parse(t);if(typeof n.baseUrl==`string`&&typeof n.token==`string`&&n.token)return{baseUrl:Vd(n.baseUrl),token:n.token}}catch{}return null}function zI(e,t){if(e)try{t?e.setItem(FI,JSON.stringify(t)):e.removeItem(FI)}catch{}}async function BI(e){let t=LI(e.location.hash);if(t.token){let n={baseUrl:Vd(t.baseUrl??e.location.origin),token:t.token};zI(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:Vd(n.baseUrl),token:n.token};return zI(e.storage,r),{connection:r,source:`bridge`,sessionId:t.sessionId}}}catch{}let n=RI(e.storage);return n?{connection:n,source:`storage`,sessionId:t.sessionId}:{connection:null,source:`none`,sessionId:t.sessionId}}function VI(e=window){let t=null;try{t=e.sessionStorage}catch{t=null}return BI({location:e.location,storage:t,replaceUrl:t=>e.history.replaceState(null,``,t),bridge:e.oonacode})}var HI=1;function UI(){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 WI(e,t){return`${Vd(e).replace(/^http(s?):/i,`ws$1:`)}${b}?token=${encodeURIComponent(t)}`}var GI=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:Vd(e.baseUrl)},this.clientId=e.clientId??UI()}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!==HI)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=WI(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}Ee(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}${R.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])KI(()=>n(e));for(let t of[...this.anyHandlers])KI(()=>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])KI(()=>n(e,t))}};function KI(e){try{e()}catch(e){console.error(`[HostSocket] handler failed`,e)}}var qI=/([?&#](?:token|access_token|key|api_key|secret|password)=)[^&#\s"']*/gi,JI=/\b(Bearer|Basic)\s+[A-Za-z0-9\-._~+/=]{8,}/g;function YI(e){return e.replace(qI,`$1[redacted]`).replace(JI,`$1 [redacted]`)}function XI(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function ZI(e){return typeof e==`object`&&!!e&&typeof e.message==`string`}function QI(e){if(ZI(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:XI(e,512),stack:null}:{message:`Unhandled rejection (${e===null?`null`:Array.isArray(e)?`array`:typeof e})`,stack:null}}function $I(e){return e?e.split(`
|
|
149
|
-
`).find(e=>/^\s+at\s/.test(e))?.trim()??``:``}function eL(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}=QI(n),l=t();if(!o(`${s}\n${$I(c)}`,l))return!1;let u={client:`web-ui`,message:XI(YI(s),Ls),detail:{source:`manual`,...i,embedded:r},at:new Date(l).toISOString()};return c&&(u.stack=XI(YI(c),Rs)),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 tL=1;function nL(e,t){return`${Vd(e).replace(/^http(s?):/i,`ws$1:`)}${R.remoteWs}?token=${encodeURIComponent(t)}`}function rL(e){return`tab-${e}-${Math.random().toString(36).slice(2,10)}`}var iL=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=nL(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!==tL)return!1;try{return t.send(JSON.stringify(e)),!0}catch{return!1}}attach(e){this.#c+=1;let t=rL(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===tL?(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(!Oe(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:ke(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 aL({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,U.jsx)(`div`,{className:`flex min-h-full items-center justify-center bg-bg p-4`,children:(0,U.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,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-lg font-semibold`,children:`Connect to your OonaCode host`}),(0,U.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,U.jsx)(`code`,{className:`rounded bg-surface-2 px-1 font-mono`,children:`oona web`}),`.`]})]}),t?(0,U.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,U.jsx)($h,{label:`Host URL`,children:(0,U.jsx)(`input`,{className:Y,value:r,onChange:e=>i(e.target.value),placeholder:`http://127.0.0.1:41317`,spellCheck:!1,autoComplete:`url`})}),(0,U.jsx)($h,{label:`Host token`,hint:'Found in host/host.json ("token") in the OonaCode folder of the PC running the host — %LOCALAPPDATA%\\OonaCode on Windows, ~/.oonacode on Linux — printed by `oona serve --show-token`, or embedded in the URL printed by `oona web --print`.',children:(0,U.jsx)(`input`,{className:Y,type:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`off`,spellCheck:!1,autoFocus:!0})}),(0,U.jsx)(q,{type:`submit`,variant:`primary`,className:`w-full justify-center`,disabled:!s,children:`Connect`})]})})}function oL(e){return!!e&&e.platform===`linux`&&e.host!==`vscode`&&!!e.onMenuModel}var sL=e=>!!e&&e.type!==`separator`&&e.enabled;function cL(e,t,n){let r=e.length;for(let i=1;i<=r;i+=1){let a=((t+n*i)%r+r)%r;if(sL(e[a]))return a}return-1}function lL({label:e,mnemonic:t,show:n}){let r=n&&t?e.toLowerCase().indexOf(t):-1;return r<0?e:(0,U.jsxs)(U.Fragment,{children:[e.slice(0,r),(0,U.jsx)(`span`,{className:`underline underline-offset-2`,children:e[r]}),e.slice(r+1)]})}function uL({bridge:e}){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(-1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=(0,v.useRef)(null);(0,v.useEffect)(()=>e.onMenuModel?.(e=>{n(e),i(null),o(-1),c(null)}),[e]);let f=t?.items??[],p=(0,v.useCallback)(e=>e===null?[]:f[e]?.submenu??[],[f]),m=(0,v.useCallback)(()=>{i(null),o(-1),c(null)},[]),h=(0,v.useCallback)((e,t)=>{i(e);let n=p(e);o(t?cL(n,-1,1):-1),t&&c(e)},[p]),g=(0,v.useCallback)(t=>{!t||!sL(t)||t.type===`submenu`||(m(),e.invokeMenuItem?.(t.id))},[e,m]);if((0,v.useEffect)(()=>{if(f.length===0)return;let e=!1,t=()=>r!==null||s!==null,n=e=>{e.preventDefault(),e.stopPropagation()},l=l=>{if(l.key===`Alt`){e=!l.repeat,u(!0);return}e=!1;let d=!l.ctrlKey&&!l.metaKey&&!l.shiftKey;if(!t()){if(l.key===`F10`&&d&&!l.altKey){n(l),c(0);return}if(l.altKey&&d&&l.key.length===1){let e=f.findIndex(e=>e.mnemonic===l.key.toLowerCase());e>=0&&(n(l),h(e,!0))}return}let _=p(r),v=s??r??0,y=e=>{let t=(v+e+f.length)%f.length;r===null?c(t):h(t,!0)};switch(l.key){case`Escape`:n(l),r!==null&&s!==null?(i(null),o(-1)):m();return;case`ArrowLeft`:n(l),y(-1);return;case`ArrowRight`:n(l),y(1);return;case`ArrowDown`:n(l),r===null?h(v,!0):o(cL(_,a,1));return;case`ArrowUp`:n(l),r===null?(h(v,!0),o(cL(p(v),0,-1))):o(cL(_,a<0?0:a,-1));return;case`Home`:n(l),r!==null&&o(cL(_,-1,1));return;case`End`:n(l),r!==null&&o(cL(_,0,-1));return;case`Enter`:case` `:n(l),r===null?h(v,!0):g(_[a]);return;case`Tab`:m();return}if(l.key.length===1&&!l.ctrlKey&&!l.metaKey){n(l);let e=l.key.toLowerCase();if(r!==null)g(_.find(t=>t.mnemonic===e&&sL(t)));else{let t=f.findIndex(t=>t.mnemonic===e);t>=0&&h(t,!0)}return}m()},_=n=>{n.key===`Alt`&&(u(!1),e&&(e=!1,t()?m():c(0)))},v=()=>{e=!1,u(!1),m()},y=e=>{(r!==null||s!==null)&&(d.current&&e.target instanceof Node&&d.current.contains(e.target)||m())};return window.addEventListener(`keydown`,l,!0),window.addEventListener(`keyup`,_,!0),window.addEventListener(`blur`,v),document.addEventListener(`mousedown`,y,!0),()=>{window.removeEventListener(`keydown`,l,!0),window.removeEventListener(`keyup`,_,!0),window.removeEventListener(`blur`,v),document.removeEventListener(`mousedown`,y,!0)}},[f,r,s,a,p,h,g,m]),!t||f.length===0)return null;let _=l||s!==null;return(0,U.jsx)(`div`,{ref:d,role:`menubar`,"aria-label":`Application menu`,className:`flex h-7 shrink-0 items-stretch gap-px border-b border-border bg-surface px-1 text-[13px] text-fg select-none`,children:f.map((e,t)=>{let n=r===t;return(0,U.jsxs)(`div`,{className:`relative flex`,children:[(0,U.jsx)(`button`,{type:`button`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":n,tabIndex:-1,disabled:!e.enabled,"data-menu-top":e.id,onMouseDown:e=>{e.preventDefault(),n?m():h(t,!1)},onMouseEnter:()=>{r!==null&&r!==t&&h(t,!1)},className:H(`my-0.5 rounded-sm px-2.5`,n||s===t?`bg-surface-3`:`hover:bg-surface-2`,!e.enabled&&`text-fg-faint`),children:(0,U.jsx)(lL,{label:e.label,mnemonic:e.mnemonic,show:_})}),n&&e.submenu?(0,U.jsx)(dL,{entries:e.submenu,active:a,showMnemonics:_,onHover:o,onRun:g}):null]},e.id)})})}function dL({entries:e,active:t,showMnemonics:n,onHover:r,onRun:i,nested:a=!1}){let[o,s]=(0,v.useState)(null);return(0,U.jsx)(`div`,{role:`menu`,className:H(`absolute z-[70] min-w-[15rem] rounded-md border border-border bg-surface py-1 text-fg shadow-lg`,a?`top-0 left-full -mt-1 ml-px`:`top-full left-0 mt-px`),children:e.map((e,a)=>{if(e.type===`separator`)return(0,U.jsx)(`div`,{role:`separator`,className:`my-1 border-t border-border`},e.id);let c=e.type===`checkbox`?`menuitemcheckbox`:e.type===`radio`?`menuitemradio`:`menuitem`,l=e.type===`checkbox`||e.type===`radio`;return(0,U.jsxs)(`div`,{role:c,"aria-disabled":!e.enabled||void 0,"aria-checked":l?e.checked:void 0,"aria-haspopup":e.type===`submenu`?`menu`:void 0,"data-menu-entry":e.id,onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>{r(a),s(e.type===`submenu`?a:null)},onClick:()=>i(e),className:H(`relative flex cursor-default items-center gap-2 px-3 py-1`,a===t&&e.enabled&&`bg-surface-2`,!e.enabled&&`text-fg-faint`),children:[(0,U.jsx)(`span`,{className:`w-4 shrink-0 text-center`,"aria-hidden":!0,children:l&&e.checked?e.type===`radio`?`•`:`✓`:``}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:(0,U.jsx)(lL,{label:e.label,mnemonic:e.mnemonic,show:n})}),e.accelerator?(0,U.jsx)(`span`,{className:`shrink-0 pl-6 text-xs text-fg-faint`,children:e.accelerator}):null,e.type===`submenu`?(0,U.jsx)(`span`,{className:`shrink-0 pl-4 text-fg-faint`,"aria-hidden":!0,children:`›`}):null,e.type===`submenu`&&o===a&&e.submenu?(0,U.jsx)(dL,{entries:e.submenu,active:-1,showMnemonics:n,onHover:()=>{},onRun:i,nested:!0}):null]},e.id)})})}function fL(e){return!!e&&typeof e==`object`&&typeof e.hostId==`string`}function pL(e){return Math.min(5e3,500*2**Math.max(0,e))}async function mL(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(pL(n))}}function hL(){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,mL({getConnection:()=>e.getConnection(),accepts:e=>Hd(e).health().then(e=>fL(e),()=>!1),cancelled:()=>l.current}).then(e=>{c.current=!1,e&&(zI(window.sessionStorage,e),s(e=>e+1),t({baseUrl:e.baseUrl,token:e.token}))}),!0)},[]);(0,v.useEffect)(()=>{VI().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)(()=>{zI(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:Hd(e),socket:new GI({baseUrl:e.baseUrl,token:e.token,clientKind:window.oonacode?`desktop`:`web`,clientVersion:window.oonacode?.appVersion}),relay:new iL({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?eL({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,U.jsx)(aL,{defaultBaseUrl:window.location.origin,error:i,onConnect:e=>{zI(window.sessionStorage,e),a(null),t(e)}}):(0,U.jsx)(PI,{api:f.api,socket:f.socket,relay:f.relay,initialSessionId:n,onUnauthorized:d,...p?{reportError:p.report}:{}},o)}function gL({children:e}){let t=typeof window>`u`?void 0:window.oonacode;return oL(t)?(0,U.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,U.jsx)(uL,{bridge:t}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1`,children:e})]}):(0,U.jsx)(U.Fragment,{children:e})}var _L=document.getElementById(`root`);(0,y.createRoot)(_L).render((0,U.jsx)(v.StrictMode,{children:(0,U.jsx)(gL,{children:(0,U.jsx)(hL,{})})}));
|