codexui-android 0.1.81 → 0.1.82

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.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreadConversation-DlVMY4f_.js","assets/ThreadConversation-BsN7bN3q.css","assets/ReviewPane-Dee4Qknm.js","assets/ReviewPane-CyugWwTM.css","assets/SkillsHub-DUNP6fA0.js","assets/SkillsHub-Bg1Le103.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreadConversation-Dl_rx6II.js","assets/ThreadConversation-BsN7bN3q.css","assets/ReviewPane-CxVyabn_.js","assets/ReviewPane-CyugWwTM.css","assets/SkillsHub-BXlwzycZ.js","assets/SkillsHub-Bg1Le103.css"])))=>i.map(i=>d[i]);
2
2
  (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();/**
3
3
  * @vue/shared v3.5.32
4
4
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -15,7 +15,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreadConversat
15
15
  * @vue/runtime-dom v3.5.32
16
16
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
17
17
  * @license MIT
18
- **/let Cd;const Lp=typeof window<"u"&&window.trustedTypes;if(Lp)try{Cd=Lp.createPolicy("vue",{createHTML:e=>e})}catch{}const xv=Cd?e=>Cd.createHTML(e):e=>e,IS="http://www.w3.org/2000/svg",AS="http://www.w3.org/1998/Math/MathML",bo=typeof document<"u"?document:null,Dp=bo&&bo.createElement("template"),CS={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?bo.createElementNS(IS,e):t==="mathml"?bo.createElementNS(AS,e):n?bo.createElement(e,{is:n}):bo.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>bo.createTextNode(e),createComment:e=>bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Dp.innerHTML=xv(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const a=Dp.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ho="transition",Vi="animation",pa=Symbol("_vtc"),Rv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},xS=hn({},Zg,Rv),RS=e=>(e.displayName="Transition",e.props=xS,e),Mv=RS((e,{slots:t})=>Rf(Iw,MS(e),t)),ws=(e,t=[])=>{Ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},jp=e=>e?Ye(e)?e.some(t=>t.length>1):e.length>1:!1;function MS(e){const t={};for(const V in e)V in Rv||(t[V]=e[V]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=i,appearToClass:d=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,T=PS(o),k=T&&T[0],H=T&&T[1],{onBeforeEnter:P,onEnter:O,onEnterCancelled:W,onLeave:Y,onLeaveCancelled:ce,onBeforeAppear:re=P,onAppear:Z=O,onAppearCancelled:he=W}=t,Ce=(V,ae,xe,Fe)=>{V._enterCancelled=Fe,Ss(V,ae?d:a),Ss(V,ae?c:i),xe&&xe()},Ae=(V,ae)=>{V._isLeaving=!1,Ss(V,f),Ss(V,v),Ss(V,m),ae&&ae()},ue=V=>(ae,xe)=>{const Fe=V?Z:O,_e=()=>Ce(ae,V,xe);ws(Fe,[ae,_e]),Fp(()=>{Ss(ae,V?l:s),vo(ae,V?d:a),jp(Fe)||Bp(ae,r,k,_e)})};return hn(t,{onBeforeEnter(V){ws(P,[V]),vo(V,s),vo(V,i)},onBeforeAppear(V){ws(re,[V]),vo(V,l),vo(V,c)},onEnter:ue(!1),onAppear:ue(!0),onLeave(V,ae){V._isLeaving=!0;const xe=()=>Ae(V,ae);vo(V,f),V._enterCancelled?(vo(V,m),Hp(V)):(Hp(V),vo(V,m)),Fp(()=>{V._isLeaving&&(Ss(V,f),vo(V,v),jp(Y)||Bp(V,r,H,xe))}),ws(Y,[V,xe])},onEnterCancelled(V){Ce(V,!1,void 0,!0),ws(W,[V])},onAppearCancelled(V){Ce(V,!0,void 0,!0),ws(he,[V])},onLeaveCancelled(V){Ae(V),ws(ce,[V])}})}function PS(e){if(e==null)return null;if(Ct(e))return[Iu(e.enter),Iu(e.leave)];{const t=Iu(e);return[t,t]}}function Iu(e){return $b(e)}function vo(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[pa]||(e[pa]=new Set)).add(t)}function Ss(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[pa];n&&(n.delete(t),n.size||(e[pa]=void 0))}function Fp(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $S=0;function Bp(e,t,n,r){const o=e._endId=++$S,s=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:i,timeout:a,propCount:l}=NS(e,t);if(!i)return r();const c=i+"end";let d=0;const f=()=>{e.removeEventListener(c,m),s()},m=v=>{v.target===e&&++d>=l&&f()};setTimeout(()=>{d<l&&f()},a+1),e.addEventListener(c,m)}function NS(e,t){const n=window.getComputedStyle(e),r=T=>(n[T]||"").split(", "),o=r(`${Ho}Delay`),s=r(`${Ho}Duration`),i=qp(o,s),a=r(`${Vi}Delay`),l=r(`${Vi}Duration`),c=qp(a,l);let d=null,f=0,m=0;t===Ho?i>0&&(d=Ho,f=i,m=s.length):t===Vi?c>0&&(d=Vi,f=c,m=l.length):(f=Math.max(i,c),d=f>0?i>c?Ho:Vi:null,m=d?d===Ho?s.length:l.length:0);const v=d===Ho&&/\b(?:transform|all)(?:,|$)/.test(r(`${Ho}Property`).toString());return{type:d,timeout:f,propCount:m,hasTransform:v}}function qp(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,r)=>Up(n)+Up(e[r])))}function Up(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Hp(e){return(e?e.ownerDocument:document).body.offsetHeight}function OS(e,t,n){const r=e[pa];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Wp=Symbol("_vod"),LS=Symbol("_vsh"),DS=Symbol(""),jS=/(?:^|;)\s*display\s*:/;function FS(e,t,n){const r=e.style,o=Kt(n);let s=!1;if(n&&!o){if(t)if(Kt(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Ml(r,a,"")}else for(const i in t)n[i]==null&&Ml(r,i,"");for(const i in n)i==="display"&&(s=!0),Ml(r,i,n[i])}else if(o){if(t!==n){const i=r[DS];i&&(n+=";"+i),r.cssText=n,s=jS.test(n)}}else t&&e.removeAttribute("style");Wp in e&&(e[Wp]=s?r.display:"",e[LS]&&(r.display="none"))}const Vp=/\s*!important$/;function Ml(e,t,n){if(Ye(n))n.forEach(r=>Ml(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=BS(e,t);Vp.test(n)?e.setProperty(is(r),n.replace(Vp,""),"important"):e[r]=n}}const zp=["Webkit","Moz","ms"],Au={};function BS(e,t){const n=Au[t];if(n)return n;let r=Yn(t);if(r!=="filter"&&r in e)return Au[t]=r;r=pc(r);for(let o=0;o<zp.length;o++){const s=zp[o]+r;if(s in e)return Au[t]=s}return t}const Gp="http://www.w3.org/1999/xlink";function Kp(e,t,n,r,o,s=Fb(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Gp,t.slice(6,t.length)):e.setAttributeNS(Gp,t,n):n==null||s&&!Eg(n)?e.removeAttribute(t):e.setAttribute(t,s?"":Wr(n)?String(n):n)}function Yp(e,t,n,r,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?xv(n):n);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const a=s==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(a!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=Eg(n):n==null&&a==="string"?(n="",i=!0):a==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(o||t)}function Xo(e,t,n,r){e.addEventListener(t,n,r)}function qS(e,t,n,r){e.removeEventListener(t,n,r)}const Jp=Symbol("_vei");function US(e,t,n,r,o=null){const s=e[Jp]||(e[Jp]={}),i=s[t];if(r&&i)i.value=r;else{const[a,l]=HS(t);if(r){const c=s[t]=zS(r,o);Xo(e,a,c,l)}else i&&(qS(e,a,i,l),s[t]=void 0)}}const Xp=/(?:Once|Passive|Capture)$/;function HS(e){let t;if(Xp.test(e)){t={};let r;for(;r=e.match(Xp);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):is(e.slice(2)),t]}let Cu=0;const WS=Promise.resolve(),VS=()=>Cu||(WS.then(()=>Cu=0),Cu=Date.now());function zS(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;zr(GS(r,n.value),t,5,[r])};return n.value=e,n.attached=VS(),n}function GS(e,t){if(Ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Qp=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,KS=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?OS(e,r,i):t==="style"?FS(e,n,r):uc(t)?dc(t)||US(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):YS(e,t,r,i))?(Yp(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Kp(e,t,r,i,s,t!=="value")):e._isVueCE&&(JS(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Kt(r)))?Yp(e,Yn(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Kp(e,t,r,i))};function YS(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qp(t)&&tt(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Qp(t)&&Kt(n)?!1:t in e}function JS(e,t){const n=e._def.props;if(!n)return!1;const r=Yn(t);return Array.isArray(n)?n.some(o=>Yn(o)===r):Object.keys(n).some(o=>Yn(o)===r)}const mi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ye(t)?n=>Al(t,n):t};function XS(e){e.target.composing=!0}function Zp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Io=Symbol("_assign");function eh(e,t,n){return t&&(e=e.trim()),n&&(e=hc(e)),e}const fo={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e[Io]=mi(o);const s=r||o.props&&o.props.type==="number";Xo(e,t?"change":"input",i=>{i.target.composing||e[Io](eh(e.value,n,s))}),(n||s)&&Xo(e,"change",()=>{e.value=eh(e.value,n,s)}),t||(Xo(e,"compositionstart",XS),Xo(e,"compositionend",Zp),Xo(e,"change",Zp))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:o,number:s}},i){if(e[Io]=mi(i),e.composing)return;const a=(s||e.type==="number")&&!/^0\d/.test(e.value)?hc(e.value):e.value,l=t??"";if(a===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(r&&t===n||o&&e.value.trim()===l)||(e.value=l)}},QS={deep:!0,created(e,t,n){e[Io]=mi(n),Xo(e,"change",()=>{const r=e._modelValue,o=ha(e),s=e.checked,i=e[Io];if(Ye(r)){const a=hf(r,o),l=a!==-1;if(s&&!l)i(r.concat(o));else if(!s&&l){const c=[...r];c.splice(a,1),i(c)}}else if(Ei(r)){const a=new Set(r);s?a.add(o):a.delete(o),i(a)}else i(Pv(e,s))})},mounted:th,beforeUpdate(e,t,n){e[Io]=mi(n),th(e,t,n)}};function th(e,{value:t,oldValue:n},r){e._modelValue=t;let o;if(Ye(t))o=hf(t,r.props.value)>-1;else if(Ei(t))o=t.has(r.props.value);else{if(t===n)return;o=ki(t,Pv(e,!0))}e.checked!==o&&(e.checked=o)}const s2={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=Ei(t);Xo(e,"change",()=>{const s=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?hc(ha(i)):ha(i));e[Io](e.multiple?o?new Set(s):s:s[0]),e._assigning=!0,Jt(()=>{e._assigning=!1})}),e[Io]=mi(r)},mounted(e,{value:t}){nh(e,t)},beforeUpdate(e,t,n){e[Io]=mi(n)},updated(e,{value:t}){e._assigning||nh(e,t)}};function nh(e,t){const n=e.multiple,r=Ye(t);if(!(n&&!r&&!Ei(t))){for(let o=0,s=e.options.length;o<s;o++){const i=e.options[o],a=ha(i);if(n)if(r){const l=typeof a;l==="string"||l==="number"?i.selected=t.some(c=>String(c)===String(a)):i.selected=hf(t,a)>-1}else i.selected=t.has(a);else if(ki(ha(i),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ha(e){return"_value"in e?e._value:e.value}function Pv(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ZS=["ctrl","shift","alt","meta"],eT={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ZS.some(n=>e[`${n}Key`]&&!t.includes(n))},_t=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((o,...s)=>{for(let i=0;i<t.length;i++){const a=eT[t[i]];if(a&&a(o,t))return}return e(o,...s)}))},tT={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Sn=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(o=>{if(!("key"in o))return;const s=is(o.key);if(t.some(i=>i===s||tT[i]===s))return e(o)}))},nT=hn({patchProp:KS},CS);let rh;function rT(){return rh||(rh=cS(nT))}const oT=((...e)=>{const t=rT().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=iT(r);if(!o)return;const s=t._component;!tt(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const i=n(o,!1,sT(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t});function sT(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function iT(e){return Kt(e)?document.querySelector(e):e}const Ve=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,mt=globalThis,Ns="10.48.0";function Bs(){return Tc(mt),mt}function Tc(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Ns,t[Ns]=t[Ns]||{}}function Ii(e,t,n=mt){const r=n.__SENTRY__=n.__SENTRY__||{},o=r[Ns]=r[Ns]||{};return o[e]||(o[e]=t())}const aT=["debug","info","warn","error","log","assert","trace"],lT="Sentry Logger ",Jl={};function Fo(e){if(!("console"in mt))return e();const t=mt.console,n={},r=Object.keys(Jl);r.forEach(o=>{const s=Jl[o];n[o]=t[o],t[o]=s});try{return e()}finally{r.forEach(o=>{t[o]=n[o]})}}function cT(){Pf().enabled=!0}function uT(){Pf().enabled=!1}function $v(){return Pf().enabled}function dT(...e){Mf("log",...e)}function fT(...e){Mf("warn",...e)}function pT(...e){Mf("error",...e)}function Mf(e,...t){Ve&&$v()&&Fo(()=>{mt.console[e](`${lT}[${e}]:`,...t)})}function Pf(){return Ve?Ii("loggerSettings",()=>({enabled:!1})):{enabled:!1}}const Ie={enable:cT,disable:uT,isEnabled:$v,log:dT,warn:fT,error:pT},Nv=50,js="?",oh=/\(error: (.*)\)/,sh=/captureMessage|captureException/;function Ov(...e){const t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,o=0)=>{const s=[],i=n.split(`
18
+ **/let Cd;const Lp=typeof window<"u"&&window.trustedTypes;if(Lp)try{Cd=Lp.createPolicy("vue",{createHTML:e=>e})}catch{}const xv=Cd?e=>Cd.createHTML(e):e=>e,IS="http://www.w3.org/2000/svg",AS="http://www.w3.org/1998/Math/MathML",bo=typeof document<"u"?document:null,Dp=bo&&bo.createElement("template"),CS={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?bo.createElementNS(IS,e):t==="mathml"?bo.createElementNS(AS,e):n?bo.createElement(e,{is:n}):bo.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>bo.createTextNode(e),createComment:e=>bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Dp.innerHTML=xv(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const a=Dp.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ho="transition",Vi="animation",pa=Symbol("_vtc"),Rv={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},xS=hn({},Zg,Rv),RS=e=>(e.displayName="Transition",e.props=xS,e),Mv=RS((e,{slots:t})=>Rf(Iw,MS(e),t)),ws=(e,t=[])=>{Ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},jp=e=>e?Ye(e)?e.some(t=>t.length>1):e.length>1:!1;function MS(e){const t={};for(const V in e)V in Rv||(t[V]=e[V]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=i,appearToClass:d=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,T=PS(o),k=T&&T[0],H=T&&T[1],{onBeforeEnter:P,onEnter:O,onEnterCancelled:W,onLeave:Y,onLeaveCancelled:ce,onBeforeAppear:re=P,onAppear:Z=O,onAppearCancelled:he=W}=t,Ce=(V,ae,xe,Fe)=>{V._enterCancelled=Fe,Ss(V,ae?d:a),Ss(V,ae?c:i),xe&&xe()},Ae=(V,ae)=>{V._isLeaving=!1,Ss(V,f),Ss(V,v),Ss(V,m),ae&&ae()},ue=V=>(ae,xe)=>{const Fe=V?Z:O,_e=()=>Ce(ae,V,xe);ws(Fe,[ae,_e]),Fp(()=>{Ss(ae,V?l:s),vo(ae,V?d:a),jp(Fe)||Bp(ae,r,k,_e)})};return hn(t,{onBeforeEnter(V){ws(P,[V]),vo(V,s),vo(V,i)},onBeforeAppear(V){ws(re,[V]),vo(V,l),vo(V,c)},onEnter:ue(!1),onAppear:ue(!0),onLeave(V,ae){V._isLeaving=!0;const xe=()=>Ae(V,ae);vo(V,f),V._enterCancelled?(vo(V,m),Hp(V)):(Hp(V),vo(V,m)),Fp(()=>{V._isLeaving&&(Ss(V,f),vo(V,v),jp(Y)||Bp(V,r,H,xe))}),ws(Y,[V,xe])},onEnterCancelled(V){Ce(V,!1,void 0,!0),ws(W,[V])},onAppearCancelled(V){Ce(V,!0,void 0,!0),ws(he,[V])},onLeaveCancelled(V){Ae(V),ws(ce,[V])}})}function PS(e){if(e==null)return null;if(Ct(e))return[Iu(e.enter),Iu(e.leave)];{const t=Iu(e);return[t,t]}}function Iu(e){return $b(e)}function vo(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[pa]||(e[pa]=new Set)).add(t)}function Ss(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[pa];n&&(n.delete(t),n.size||(e[pa]=void 0))}function Fp(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $S=0;function Bp(e,t,n,r){const o=e._endId=++$S,s=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:i,timeout:a,propCount:l}=NS(e,t);if(!i)return r();const c=i+"end";let d=0;const f=()=>{e.removeEventListener(c,m),s()},m=v=>{v.target===e&&++d>=l&&f()};setTimeout(()=>{d<l&&f()},a+1),e.addEventListener(c,m)}function NS(e,t){const n=window.getComputedStyle(e),r=T=>(n[T]||"").split(", "),o=r(`${Ho}Delay`),s=r(`${Ho}Duration`),i=qp(o,s),a=r(`${Vi}Delay`),l=r(`${Vi}Duration`),c=qp(a,l);let d=null,f=0,m=0;t===Ho?i>0&&(d=Ho,f=i,m=s.length):t===Vi?c>0&&(d=Vi,f=c,m=l.length):(f=Math.max(i,c),d=f>0?i>c?Ho:Vi:null,m=d?d===Ho?s.length:l.length:0);const v=d===Ho&&/\b(?:transform|all)(?:,|$)/.test(r(`${Ho}Property`).toString());return{type:d,timeout:f,propCount:m,hasTransform:v}}function qp(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,r)=>Up(n)+Up(e[r])))}function Up(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Hp(e){return(e?e.ownerDocument:document).body.offsetHeight}function OS(e,t,n){const r=e[pa];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Wp=Symbol("_vod"),LS=Symbol("_vsh"),DS=Symbol(""),jS=/(?:^|;)\s*display\s*:/;function FS(e,t,n){const r=e.style,o=Kt(n);let s=!1;if(n&&!o){if(t)if(Kt(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Ml(r,a,"")}else for(const i in t)n[i]==null&&Ml(r,i,"");for(const i in n)i==="display"&&(s=!0),Ml(r,i,n[i])}else if(o){if(t!==n){const i=r[DS];i&&(n+=";"+i),r.cssText=n,s=jS.test(n)}}else t&&e.removeAttribute("style");Wp in e&&(e[Wp]=s?r.display:"",e[LS]&&(r.display="none"))}const Vp=/\s*!important$/;function Ml(e,t,n){if(Ye(n))n.forEach(r=>Ml(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=BS(e,t);Vp.test(n)?e.setProperty(is(r),n.replace(Vp,""),"important"):e[r]=n}}const zp=["Webkit","Moz","ms"],Au={};function BS(e,t){const n=Au[t];if(n)return n;let r=Yn(t);if(r!=="filter"&&r in e)return Au[t]=r;r=pc(r);for(let o=0;o<zp.length;o++){const s=zp[o]+r;if(s in e)return Au[t]=s}return t}const Gp="http://www.w3.org/1999/xlink";function Kp(e,t,n,r,o,s=Fb(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Gp,t.slice(6,t.length)):e.setAttributeNS(Gp,t,n):n==null||s&&!Eg(n)?e.removeAttribute(t):e.setAttribute(t,s?"":Wr(n)?String(n):n)}function Yp(e,t,n,r,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?xv(n):n);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const a=s==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(a!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=Eg(n):n==null&&a==="string"?(n="",i=!0):a==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(o||t)}function Xo(e,t,n,r){e.addEventListener(t,n,r)}function qS(e,t,n,r){e.removeEventListener(t,n,r)}const Jp=Symbol("_vei");function US(e,t,n,r,o=null){const s=e[Jp]||(e[Jp]={}),i=s[t];if(r&&i)i.value=r;else{const[a,l]=HS(t);if(r){const c=s[t]=zS(r,o);Xo(e,a,c,l)}else i&&(qS(e,a,i,l),s[t]=void 0)}}const Xp=/(?:Once|Passive|Capture)$/;function HS(e){let t;if(Xp.test(e)){t={};let r;for(;r=e.match(Xp);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):is(e.slice(2)),t]}let Cu=0;const WS=Promise.resolve(),VS=()=>Cu||(WS.then(()=>Cu=0),Cu=Date.now());function zS(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;zr(GS(r,n.value),t,5,[r])};return n.value=e,n.attached=VS(),n}function GS(e,t){if(Ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Qp=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,KS=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?OS(e,r,i):t==="style"?FS(e,n,r):uc(t)?dc(t)||US(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):YS(e,t,r,i))?(Yp(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Kp(e,t,r,i,s,t!=="value")):e._isVueCE&&(JS(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Kt(r)))?Yp(e,Yn(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Kp(e,t,r,i))};function YS(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qp(t)&&tt(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Qp(t)&&Kt(n)?!1:t in e}function JS(e,t){const n=e._def.props;if(!n)return!1;const r=Yn(t);return Array.isArray(n)?n.some(o=>Yn(o)===r):Object.keys(n).some(o=>Yn(o)===r)}const mi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ye(t)?n=>Al(t,n):t};function XS(e){e.target.composing=!0}function Zp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Io=Symbol("_assign");function eh(e,t,n){return t&&(e=e.trim()),n&&(e=hc(e)),e}const fo={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e[Io]=mi(o);const s=r||o.props&&o.props.type==="number";Xo(e,t?"change":"input",i=>{i.target.composing||e[Io](eh(e.value,n,s))}),(n||s)&&Xo(e,"change",()=>{e.value=eh(e.value,n,s)}),t||(Xo(e,"compositionstart",XS),Xo(e,"compositionend",Zp),Xo(e,"change",Zp))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:o,number:s}},i){if(e[Io]=mi(i),e.composing)return;const a=(s||e.type==="number")&&!/^0\d/.test(e.value)?hc(e.value):e.value,l=t??"";if(a===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(r&&t===n||o&&e.value.trim()===l)||(e.value=l)}},QS={deep:!0,created(e,t,n){e[Io]=mi(n),Xo(e,"change",()=>{const r=e._modelValue,o=ha(e),s=e.checked,i=e[Io];if(Ye(r)){const a=hf(r,o),l=a!==-1;if(s&&!l)i(r.concat(o));else if(!s&&l){const c=[...r];c.splice(a,1),i(c)}}else if(Ei(r)){const a=new Set(r);s?a.add(o):a.delete(o),i(a)}else i(Pv(e,s))})},mounted:th,beforeUpdate(e,t,n){e[Io]=mi(n),th(e,t,n)}};function th(e,{value:t,oldValue:n},r){e._modelValue=t;let o;if(Ye(t))o=hf(t,r.props.value)>-1;else if(Ei(t))o=t.has(r.props.value);else{if(t===n)return;o=ki(t,Pv(e,!0))}e.checked!==o&&(e.checked=o)}const i2={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=Ei(t);Xo(e,"change",()=>{const s=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?hc(ha(i)):ha(i));e[Io](e.multiple?o?new Set(s):s:s[0]),e._assigning=!0,Jt(()=>{e._assigning=!1})}),e[Io]=mi(r)},mounted(e,{value:t}){nh(e,t)},beforeUpdate(e,t,n){e[Io]=mi(n)},updated(e,{value:t}){e._assigning||nh(e,t)}};function nh(e,t){const n=e.multiple,r=Ye(t);if(!(n&&!r&&!Ei(t))){for(let o=0,s=e.options.length;o<s;o++){const i=e.options[o],a=ha(i);if(n)if(r){const l=typeof a;l==="string"||l==="number"?i.selected=t.some(c=>String(c)===String(a)):i.selected=hf(t,a)>-1}else i.selected=t.has(a);else if(ki(ha(i),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ha(e){return"_value"in e?e._value:e.value}function Pv(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ZS=["ctrl","shift","alt","meta"],eT={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ZS.some(n=>e[`${n}Key`]&&!t.includes(n))},_t=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((o,...s)=>{for(let i=0;i<t.length;i++){const a=eT[t[i]];if(a&&a(o,t))return}return e(o,...s)}))},tT={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Sn=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(o=>{if(!("key"in o))return;const s=is(o.key);if(t.some(i=>i===s||tT[i]===s))return e(o)}))},nT=hn({patchProp:KS},CS);let rh;function rT(){return rh||(rh=cS(nT))}const oT=((...e)=>{const t=rT().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=iT(r);if(!o)return;const s=t._component;!tt(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const i=n(o,!1,sT(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),i},t});function sT(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function iT(e){return Kt(e)?document.querySelector(e):e}const Ve=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,mt=globalThis,Ns="10.48.0";function Bs(){return Tc(mt),mt}function Tc(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Ns,t[Ns]=t[Ns]||{}}function Ii(e,t,n=mt){const r=n.__SENTRY__=n.__SENTRY__||{},o=r[Ns]=r[Ns]||{};return o[e]||(o[e]=t())}const aT=["debug","info","warn","error","log","assert","trace"],lT="Sentry Logger ",Jl={};function Fo(e){if(!("console"in mt))return e();const t=mt.console,n={},r=Object.keys(Jl);r.forEach(o=>{const s=Jl[o];n[o]=t[o],t[o]=s});try{return e()}finally{r.forEach(o=>{t[o]=n[o]})}}function cT(){Pf().enabled=!0}function uT(){Pf().enabled=!1}function $v(){return Pf().enabled}function dT(...e){Mf("log",...e)}function fT(...e){Mf("warn",...e)}function pT(...e){Mf("error",...e)}function Mf(e,...t){Ve&&$v()&&Fo(()=>{mt.console[e](`${lT}[${e}]:`,...t)})}function Pf(){return Ve?Ii("loggerSettings",()=>({enabled:!1})):{enabled:!1}}const Ie={enable:cT,disable:uT,isEnabled:$v,log:dT,warn:fT,error:pT},Nv=50,js="?",oh=/\(error: (.*)\)/,sh=/captureMessage|captureException/;function Ov(...e){const t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,o=0)=>{const s=[],i=n.split(`
19
19
  `);for(let a=r;a<i.length;a++){let l=i[a];l.length>1024&&(l=l.slice(0,1024));const c=oh.test(l)?l.replace(oh,"$1"):l;if(!c.includes("Error: ")){for(const d of t){const f=d(c);if(f){s.push(f);break}}if(s.length>=Nv+o)break}}return mT(s.slice(o))}}function hT(e){return Array.isArray(e)?Ov(...e):e}function mT(e){if(!e.length)return[];const t=Array.from(e);return/sentryWrapped/.test(gl(t).function||"")&&t.pop(),t.reverse(),sh.test(gl(t).function||"")&&(t.pop(),sh.test(gl(t).function||"")&&t.pop()),t.slice(0,Nv).map(n=>({...n,filename:n.filename||gl(t).filename,function:n.function||js}))}function gl(e){return e[e.length-1]||{}}const xu="<anonymous>";function $o(e){try{return!e||typeof e!="function"?xu:e.name||xu}catch{return xu}}function ih(e){const t=e.exception;if(t){const n=[];try{return t.values.forEach(r=>{r.stacktrace.frames&&n.push(...r.stacktrace.frames)}),n}catch{return}}}function Lv(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}const Pl={},ah={};function ls(e,t){Pl[e]=Pl[e]||[],Pl[e].push(t)}function cs(e,t){if(!ah[e]){ah[e]=!0;try{t()}catch(n){Ve&&Ie.error(`Error while instrumenting ${e}`,n)}}}function kr(e,t){const n=e&&Pl[e];if(n)for(const r of n)try{r(t)}catch(o){Ve&&Ie.error(`Error while triggering instrumentation handler.
20
20
  Type: ${e}
21
21
  Name: ${$o(r)}
@@ -64,26 +64,26 @@ ${t.map((o,s)=>`${(s===0?"---> ":dx(" ",5+s*2))+(Array.isArray(o)?`${oa(o[0])}..
64
64
  `))if(r&&!(r.startsWith("+++")||r.startsWith("---")||r.startsWith("@@"))){if(r.startsWith("+")){t+=1;continue}r.startsWith("-")&&(n+=1)}return{addedLineCount:t,removedLineCount:n}}function N_(e){return e==="failed"||e==="declined"||e==="completed"?e:"inProgress"}function O_(e){const t=Array.isArray(e)?e:[],n=[];for(const r of t){const o=r,s=typeof o.path=="string"?o.path:"",i=typeof o.diff=="string"?o.diff:"",a=o.kind,l=a==null?void 0:a.type;if(!s||l!=="add"&&l!=="delete"&&l!=="update")continue;const c=l==="update"&&typeof(a==null?void 0:a.move_path)=="string"?a.move_path:null,d=l==="update"?rR(i):l==="add"?{addedLineCount:Om(i),removedLineCount:0}:{addedLineCount:0,removedLineCount:Om(i)};n.push({path:s,operation:l,movedToPath:c,diff:i,...d})}return n}function oR(e){if(e.type==="agentMessage")return[{id:e.id,role:"assistant",text:e.text,messageType:e.type}];if(e.type==="userMessage"){const t=tR(e.id,e.content),n=[];return(t.text.length>0||t.images.length>0||t.fileAttachments.length>0)&&n.push({id:e.id,role:"user",text:t.text,images:t.images,fileAttachments:t.fileAttachments.length>0?t.fileAttachments:void 0,messageType:e.type}),n.push(...t.rawBlocks),n.length===0?[]:n}if(e.type==="reasoning")return[];if(e.type==="plan"){const t=typeof e.text=="string"?e.text:"";return[{id:e.id,role:"assistant",text:t,messageType:"plan",plan:nR(t)??void 0}]}if(e.type==="commandExecution"){const t=e,n=sR(t.status),r=typeof t.command=="string"?t.command:"",o=typeof t.cwd=="string"?t.cwd:null,s=typeof t.aggregatedOutput=="string"?t.aggregatedOutput:"",i=typeof t.exitCode=="number"?t.exitCode:null;return[{id:e.id,role:"system",text:r,messageType:"commandExecution",commandExecution:{command:r,cwd:o,status:n,aggregatedOutput:s,exitCode:i}}]}if(e.type==="fileChange"){const t=O_(e.changes),n=N_(e.status);return t.length===0||n!=="completed"?[]:[{id:e.id,role:"system",text:"",messageType:"fileChange",fileChangeStatus:n,fileChanges:t}]}return[]}function sR(e){return e==="completed"||e==="failed"||e==="declined"||e==="interrupted"?e:e==="inProgress"||e==="in_progress"?"inProgress":"completed"}function iR(e){const t=e,n=[t.name,t.title,e.preview];for(const r of n)if(typeof r=="string"&&r.trim().length>0)return r.trim();return""}function aR(e){const t=iR(e);return t.length>0?t:"Untitled thread"}function sp(e){return(e==null?void 0:e.status)==="inProgress"}function lR(e){const t=e;if(t.inProgress===!0||t.status==="inProgress"||t.turnStatus==="inProgress")return!0;const r=(Array.isArray(e.turns)?e.turns:[]).at(-1);return sp(r)}function cR(e){const t=e,n=nn(typeof t.cwd=="string"?t.cwd:e.cwd),r=Y1(n),o=t.isWorktree===!0||t.worktree===!0||t.worktreeId!==void 0||t.worktreePath!==void 0||r.includes("/.codex/worktrees/")||r.includes("/.git/worktrees/");return{id:e.id,title:aR(e),projectName:Ha(n),cwd:n,hasWorktree:o,createdAtIso:Nm(e.createdAt),updatedAtIso:Nm(e.updatedAt),preview:e.preview,unread:!1,inProgress:lR(e)}}function uR(e){const t=new Map;for(const n of e){const r=t.get(n.projectName);r?r.push(n):t.set(n.projectName,[n])}return Array.from(t.entries()).map(([n,r])=>({projectName:n,threads:r.sort((o,s)=>new Date(s.updatedAtIso).getTime()-new Date(o.updatedAtIso).getTime())})).sort((n,r)=>{var i,a;const o=new Date(((i=n.threads[0])==null?void 0:i.updatedAtIso)??0).getTime();return new Date(((a=r.threads[0])==null?void 0:a.updatedAtIso)??0).getTime()-o})}function dR(e){const t=e.data.map(cR);return uR(t)}function Oc(e){const t=Array.isArray(e.thread.turns)?e.thread.turns:[],n=[];for(let r=0;r<t.length;r++){const o=t[r],s=typeof(o==null?void 0:o.id)=="string"?o.id:void 0,i=Array.isArray(o.items)?o.items:[];for(const a of i)for(const l of oR(a))n.push({...l,turnId:s,turnIndex:r})}return n}function fR(e){const t=Array.isArray(e.thread.turns)?e.thread.turns:[];return sp(t.at(-1))}function L_(e){const t=Array.isArray(e.thread.turns)?e.thread.turns:[];for(let n=t.length-1;n>=0;n-=1){const r=t[n];if(sp(r)&&typeof r.id=="string"&&r.id.trim().length>0)return r.id.trim()}return""}const pR=5e3;function Qu(e){return e&&e.length>0?e:null}function Zu(e){return e&&e.length>0?e:null}const Lm=[{value:"default",label:"Default"},{value:"plan",label:"Plan"}];function Dm(e,t){const n=t.trim();if(!n)return"";const r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),[o="",s=""]=e.split("/",2),i=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=o&&s?`${i}\\s*/\\s*${a}`:r;return n.replace(/^[★☆*\s:|\-]+/u,"").replace(/^(sponsor|star)\s+/i,"").replace(new RegExp(`^${r}\\s*[-:|]*\\s*`,"i"),"").replace(new RegExp(`^${l}\\s*[-:|]*\\s*`,"i"),"").replace(/^(sponsor|star)\s+/i,"").trim()}function Tn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ht(e){return typeof e=="string"&&e.length>0?e:null}function Nn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function sc(e){return typeof e=="boolean"?e:null}function hR(e){return e==="payment_required"?e:null}function mR(e){if(!e)return!1;const t=e.toLowerCase();return t.includes("payment required")||/\b402\b/.test(t)}function jm(e){const t=Tn(e);if(!t)return null;const n=Nn(t.usedPercent??t.used_percent);if(n===null)return null;const r=Nn(t.windowDurationMins??t.window_minutes);return{usedPercent:n,windowDurationMins:r,windowMinutes:r,resetsAt:Nn(t.resetsAt??t.resets_at)}}function gR(e){const t=Tn(e);if(!t)return null;const n=sc(t.hasCredits??t.has_credits),r=sc(t.unlimited);return n===null||r===null?null:{hasCredits:n,unlimited:r,balance:ht(t.balance)}}function nf(e){const t=Tn(e);if(!t)return null;const n=jm(t.primary),r=jm(t.secondary),o=gR(t.credits);return!n&&!r&&!o?null:{limitId:ht(t.limitId??t.limit_id),limitName:ht(t.limitName??t.limit_name),primary:n,secondary:r,credits:o,planType:ht(t.planType??t.plan_type)}}function D_(e,t=null){const n=Tn(e);if(!n)return null;const r=ht(n.accountId),o=ht(n.quotaStatus),s=o==="loading"||o==="ready"||o==="error"?o:"idle";return r?{accountId:r,authMode:ht(n.authMode),email:ht(n.email),planType:ht(n.planType),lastRefreshedAtIso:ht(n.lastRefreshedAtIso)??"",lastActivatedAtIso:ht(n.lastActivatedAtIso),quotaSnapshot:nf(n.quotaSnapshot),quotaUpdatedAtIso:ht(n.quotaUpdatedAtIso),quotaStatus:s,quotaError:ht(n.quotaError),unavailableReason:hR(n.unavailableReason)??(mR(ht(n.quotaError))?"payment_required":null),isActive:sc(n.isActive)??r===t}:null}function j_(e){const t=Tn(e);if(!t)return null;const n=Tn(t.rateLimitsByLimitId??t.rate_limits_by_limit_id),r=nf(n==null?void 0:n.codex);return r||nf(t.rateLimits??t.rate_limits)}async function sn(e,t){try{return await U1(e,t)}catch(n){throw Do(n,`RPC ${e} failed`,e)}}function F_(e){const t=Array.isArray(e.thread.turns)?e.thread.turns:[],n={};for(let r=0;r<t.length;r+=1){const o=t[r];typeof(o==null?void 0:o.id)!="string"||o.id.length===0||(n[o.id]=r)}return n}function vR(e){return typeof e=="string"&&["none","minimal","low","medium","high","xhigh"].includes(e)?e:""}function yR(e){return typeof e=="string"&&e.trim().toLowerCase()==="fast"?"fast":"standard"}async function _R(){const e=await sn("thread/list",{archived:!1,limit:100,sortKey:"updated_at",modelProviders:[]});return dR(e)}async function bR(e){try{const t=await fetch(`/codex-api/thread-live-state?threadId=${encodeURIComponent(e)}`);return t.ok?await t.json():null}catch{return null}}function wR(e){const t=e.conversationState;if(!t||!Array.isArray(t.turns)||t.turns.length===0)return null;const n={thread:{id:e.threadId,turns:t.turns}};return{messages:Oc(n),inProgress:e.isInProgress,activeTurnId:L_(n),turnIndexByTurnId:F_(n)}}async function SR(e){const t=await bR(e);if(t&&!t.liveStateError){const o=wR(t);if(o&&o.messages.length>0)return o}const n=await sn("thread/read",{threadId:e,includeTurns:!0});return{messages:Oc(n),inProgress:fR(n),activeTurnId:L_(n),turnIndexByTurnId:F_(n)}}async function TR(){try{return await _R()}catch(e){throw Do(e,"Failed to load thread groups","thread/list")}}async function Fm(e){try{return await SR(e)}catch(t){throw Do(t,`Failed to load thread ${e}`,"thread/read")}}function ER(e){const t=Tn(e);if(!t)return null;const n=ht(t.key),r=typeof t.text=="string"?t.text:"",o=ht(t.kind);return!n||!o||o!=="meta"&&o!=="hunk"&&o!=="add"&&o!=="remove"&&o!=="context"?null:{key:n,kind:o,text:r,oldLine:Nn(t.oldLine),newLine:Nn(t.newLine)}}function kR(e){const t=Tn(e);if(!t)return null;const n=ht(t.id),r=typeof t.header=="string"?t.header:"",o=typeof t.patch=="string"?t.patch:"";return n?{id:n,header:r,patch:o,addedLineCount:Nn(t.addedLineCount)??0,removedLineCount:Nn(t.removedLineCount)??0,oldStart:Nn(t.oldStart),oldLineCount:Nn(t.oldLineCount)??0,newStart:Nn(t.newStart),newLineCount:Nn(t.newLineCount)??0,lines:Array.isArray(t.lines)?t.lines.map(s=>ER(s)).filter(s=>s!==null):[]}:null}function IR(e){const t=Tn(e);if(!t)return null;const n=ht(t.id),r=ht(t.path),o=ht(t.absolutePath),s=ht(t.operation);return!n||!r||!o||!s||s!=="add"&&s!=="delete"&&s!=="update"&&s!=="rename"?null:{id:n,path:r,absolutePath:o,previousPath:ht(t.previousPath),previousAbsolutePath:ht(t.previousAbsolutePath),operation:s,addedLineCount:Nn(t.addedLineCount)??0,removedLineCount:Nn(t.removedLineCount)??0,diff:typeof t.diff=="string"?t.diff:"",hunks:Array.isArray(t.hunks)?t.hunks.map(i=>kR(i)).filter(i=>i!==null):[]}}function B_(e){const t=Tn(e),n=Tn(t==null?void 0:t.data),r=Tn(n==null?void 0:n.summary),o=ht(n==null?void 0:n.scope)==="baseBranch"?"baseBranch":"workspace",s=ht(n==null?void 0:n.workspaceView)==="staged"?"staged":"unstaged";return{cwd:ht(n==null?void 0:n.cwd)??"",gitRoot:ht(n==null?void 0:n.gitRoot),isGitRepo:sc(n==null?void 0:n.isGitRepo)??!1,scope:o,workspaceView:s,baseBranch:ht(n==null?void 0:n.baseBranch),baseBranchOptions:Array.isArray(n==null?void 0:n.baseBranchOptions)?n.baseBranchOptions.map(i=>ht(i)).filter(i=>typeof i=="string"&&i.length>0):[],headBranch:ht(n==null?void 0:n.headBranch),mergeBaseSha:ht(n==null?void 0:n.mergeBaseSha),generatedAtIso:ht(n==null?void 0:n.generatedAtIso)??"",summary:{fileCount:Nn(r==null?void 0:r.fileCount)??0,addedLineCount:Nn(r==null?void 0:r.addedLineCount)??0,removedLineCount:Nn(r==null?void 0:r.removedLineCount)??0},files:Array.isArray(n==null?void 0:n.files)?n.files.map(i=>IR(i)).filter(i=>i!==null):[]}}function AR(e){var r;const t=e.trim();if(!t)return{absolutePath:null,startLine:null,endLine:null};const n=t.match(/^(.*?):(\d+)-(\d+)$/u);return n?{absolutePath:((r=n[1])==null?void 0:r.trim())||null,startLine:Number(n[2]),endLine:Number(n[3])}:{absolutePath:t||null,startLine:null,endLine:null}}function CR(e){var i;const t=e.replace(/\r\n/g,`
65
65
  `).trim();if(!t)return{reviewText:"",summary:"",findings:[]};const n=t.search(/\n(?:Full review comments|Review comment):\n/iu),r=n>=0?t.slice(0,n).trim():t,o=n>=0?t.slice(n).trim():"",s=[];if(o){const l=o.replace(/^(?:Full review comments|Review comment):\n*/iu,"").trim().matchAll(/^- (.+?) — (.+)\n?((?: .*(?:\n|$))*)/gmu);let c=0;for(const d of l){const f=((i=d[1])==null?void 0:i.trim())??"",m=AR(d[2]??""),v=(d[0]??"").trim(),T=(d[3]??"").split(`
66
66
  `).map(k=>k.replace(/^ /u,"")).join(`
67
- `).trim();s.push({id:`finding:${c}`,title:f||`Finding ${c+1}`,body:T,path:m.absolutePath?m.absolutePath.split("/").filter(Boolean).slice(-1)[0]??m.absolutePath:null,absolutePath:m.absolutePath,startLine:m.startLine,endLine:m.endLine,rawText:v}),c+=1}}return{reviewText:t,summary:r,findings:s}}function Bm(e,t){const n=Array.isArray(e.thread.turns)?e.thread.turns:[];for(let r=n.length-1;r>=0;r-=1){const o=n[r],s=Array.isArray(o==null?void 0:o.items)?o.items:[];for(let i=s.length-1;i>=0;i-=1){const a=s[i];if((a==null?void 0:a.type)!==t)continue;const l=typeof a.review=="string"?a.review.trim():"";if(l)return l}}return null}async function i2(e){const t=await sn("thread/read",{threadId:e,includeTurns:!0}),n=Bm(t,"exitedReviewMode");return{enteredReviewLabel:Bm(t,"enteredReviewMode"),result:n?CR(n):null}}function xR(e){return W1(e)}async function RR(e,t){await V1({id:e,...t})}async function MR(){return z1()}async function qm(){try{const e=await sn("account/rateLimits/read");return j_(e)}catch(e){throw Do(e,"Failed to load account rate limits","account/rateLimits/read")}}function ip(e){const t=Tn(e),n=ht(t==null?void 0:t.activeAccountId),r=Array.isArray(t==null?void 0:t.accounts)?t==null?void 0:t.accounts:[];return{activeAccountId:n,importedAccountId:ht(t==null?void 0:t.importedAccountId)??void 0,accounts:r.map(o=>D_(o,n)).filter(o=>o!==null)}}async function PR(){const e=await fetch("/codex-api/accounts"),t=await e.json();if(!e.ok)throw new Error(Jn(t,"Failed to load accounts"));const n=Tn(t);return ip(n==null?void 0:n.data)}async function $R(){const e=await fetch("/codex-api/accounts/refresh",{method:"POST"}),t=await e.json();if(!e.ok)throw new Error(Jn(t,"Failed to refresh accounts"));const n=Tn(t);return ip(n==null?void 0:n.data)}async function NR(e){const t=await fetch("/codex-api/accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accountId:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to switch account"));const r=Tn(n),o=Tn(r==null?void 0:r.data),s=D_(o==null?void 0:o.account,ht(o==null?void 0:o.activeAccountId));if(!s)throw new Error("Failed to switch account");return s}async function OR(e){const t=await fetch("/codex-api/accounts/remove",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accountId:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to remove account"));const r=Tn(n);return ip(r==null?void 0:r.data)}async function ed(e){const t=await sn("thread/resume",{threadId:e});return{model:ic(t)}}async function LR(e){await sn("thread/archive",{threadId:e})}async function DR(e,t){await sn("thread/name/set",{threadId:e,name:t})}async function td(e,t){const n=await sn("thread/rollback",{threadId:e,numTurns:t});return Oc(n)}async function jR(e,t,n){try{const r=await fetch("/codex-api/thread/rollback-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e,turnId:t,cwd:n})});return r.ok?await r.json():{reverted:0,errors:["Server error"]}}catch{return{reverted:0,errors:["Network error"]}}}function rf(e){if(!e||typeof e!="object")return"";const n=e.thread;if(n&&typeof n=="object"){const r=n.id;if(typeof r=="string"&&r.length>0)return r}return""}function FR(e){if(!e||typeof e!="object")return"";const n=e.thread;if(n&&typeof n=="object"){const r=n.cwd;if(typeof r=="string"&&r.length>0)return r}return""}function ic(e){if(!e||typeof e!="object")return"";const t=e.model;return typeof t=="string"?t.trim():""}async function Um(e,t){try{const n={};typeof e=="string"&&e.trim().length>0&&(n.cwd=e.trim()),typeof t=="string"&&t.trim().length>0&&(n.model=t.trim());const r=await sn("thread/start",n),o=rf(r);if(!o)throw new Error("thread/start did not return a thread id");return{threadId:o,model:ic(r)}}catch(n){throw Do(n,"Failed to start a new thread","thread/start")}}async function Hm(e,t,n){if(arguments.length<=1)try{const r=await sn("thread/fork",{threadId:e,persistExtendedHistory:!0}),o=rf(r);if(!o)throw new Error("thread/fork did not return a thread id");return{threadId:o,cwd:FR(r),model:ic(r),messages:Oc(r)}}catch(r){throw Do(r,`Failed to fork thread ${e}`,"thread/fork")}try{const r=e.trim();if(!r)throw new Error("thread/fork requires threadId");const o={threadId:r};typeof t=="string"&&t.trim().length>0&&(o.cwd=t.trim()),typeof n=="string"&&n.trim().length>0&&(o.model=n.trim());const s=await sn("thread/fork",o),i=rf(s);if(!i)throw new Error("thread/fork did not return a thread id");return{threadId:i,model:ic(s)}}catch(r){throw Do(r,`Failed to fork thread ${e}`,"thread/fork")}}function BR(e,t){if(t.length===0)return e;let n=`# Files mentioned by the user:
67
+ `).trim();s.push({id:`finding:${c}`,title:f||`Finding ${c+1}`,body:T,path:m.absolutePath?m.absolutePath.split("/").filter(Boolean).slice(-1)[0]??m.absolutePath:null,absolutePath:m.absolutePath,startLine:m.startLine,endLine:m.endLine,rawText:v}),c+=1}}return{reviewText:t,summary:r,findings:s}}function Bm(e,t){const n=Array.isArray(e.thread.turns)?e.thread.turns:[];for(let r=n.length-1;r>=0;r-=1){const o=n[r],s=Array.isArray(o==null?void 0:o.items)?o.items:[];for(let i=s.length-1;i>=0;i-=1){const a=s[i];if((a==null?void 0:a.type)!==t)continue;const l=typeof a.review=="string"?a.review.trim():"";if(l)return l}}return null}async function a2(e){const t=await sn("thread/read",{threadId:e,includeTurns:!0}),n=Bm(t,"exitedReviewMode");return{enteredReviewLabel:Bm(t,"enteredReviewMode"),result:n?CR(n):null}}function xR(e){return W1(e)}async function RR(e,t){await V1({id:e,...t})}async function MR(){return z1()}async function qm(){try{const e=await sn("account/rateLimits/read");return j_(e)}catch(e){throw Do(e,"Failed to load account rate limits","account/rateLimits/read")}}function ip(e){const t=Tn(e),n=ht(t==null?void 0:t.activeAccountId),r=Array.isArray(t==null?void 0:t.accounts)?t==null?void 0:t.accounts:[];return{activeAccountId:n,importedAccountId:ht(t==null?void 0:t.importedAccountId)??void 0,accounts:r.map(o=>D_(o,n)).filter(o=>o!==null)}}async function PR(){const e=await fetch("/codex-api/accounts"),t=await e.json();if(!e.ok)throw new Error(Jn(t,"Failed to load accounts"));const n=Tn(t);return ip(n==null?void 0:n.data)}async function $R(){const e=await fetch("/codex-api/accounts/refresh",{method:"POST"}),t=await e.json();if(!e.ok)throw new Error(Jn(t,"Failed to refresh accounts"));const n=Tn(t);return ip(n==null?void 0:n.data)}async function NR(e){const t=await fetch("/codex-api/accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accountId:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to switch account"));const r=Tn(n),o=Tn(r==null?void 0:r.data),s=D_(o==null?void 0:o.account,ht(o==null?void 0:o.activeAccountId));if(!s)throw new Error("Failed to switch account");return s}async function OR(e){const t=await fetch("/codex-api/accounts/remove",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accountId:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to remove account"));const r=Tn(n);return ip(r==null?void 0:r.data)}async function ed(e){const t=await sn("thread/resume",{threadId:e});return{model:ic(t)}}async function LR(e){await sn("thread/archive",{threadId:e})}async function DR(e,t){await sn("thread/name/set",{threadId:e,name:t})}async function td(e,t){const n=await sn("thread/rollback",{threadId:e,numTurns:t});return Oc(n)}async function jR(e,t,n){try{const r=await fetch("/codex-api/thread/rollback-files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e,turnId:t,cwd:n})});return r.ok?await r.json():{reverted:0,errors:["Server error"]}}catch{return{reverted:0,errors:["Network error"]}}}function rf(e){if(!e||typeof e!="object")return"";const n=e.thread;if(n&&typeof n=="object"){const r=n.id;if(typeof r=="string"&&r.length>0)return r}return""}function FR(e){if(!e||typeof e!="object")return"";const n=e.thread;if(n&&typeof n=="object"){const r=n.cwd;if(typeof r=="string"&&r.length>0)return r}return""}function ic(e){if(!e||typeof e!="object")return"";const t=e.model;return typeof t=="string"?t.trim():""}async function Um(e,t){try{const n={};typeof e=="string"&&e.trim().length>0&&(n.cwd=e.trim()),typeof t=="string"&&t.trim().length>0&&(n.model=t.trim());const r=await sn("thread/start",n),o=rf(r);if(!o)throw new Error("thread/start did not return a thread id");return{threadId:o,model:ic(r)}}catch(n){throw Do(n,"Failed to start a new thread","thread/start")}}async function Hm(e,t,n){if(arguments.length<=1)try{const r=await sn("thread/fork",{threadId:e,persistExtendedHistory:!0}),o=rf(r);if(!o)throw new Error("thread/fork did not return a thread id");return{threadId:o,cwd:FR(r),model:ic(r),messages:Oc(r)}}catch(r){throw Do(r,`Failed to fork thread ${e}`,"thread/fork")}try{const r=e.trim();if(!r)throw new Error("thread/fork requires threadId");const o={threadId:r};typeof t=="string"&&t.trim().length>0&&(o.cwd=t.trim()),typeof n=="string"&&n.trim().length>0&&(o.model=n.trim());const s=await sn("thread/fork",o),i=rf(s);if(!i)throw new Error("thread/fork did not return a thread id");return{threadId:i,model:ic(s)}}catch(r){throw Do(r,`Failed to fork thread ${e}`,"thread/fork")}}function BR(e,t){if(t.length===0)return e;let n=`# Files mentioned by the user:
68
68
  `;for(const r of t)n+=`
69
69
  ## ${r.label}: ${r.path}
70
70
  `;return`${n}
71
71
  ## My request for Codex:
72
72
 
73
73
  ${e}
74
- `}async function qR(e,t,n){var l;const r=(t==null?void 0:t.trim())??"";if(r)return{model:r,reasoningEffort:e==="plan"?Qu(n):Zu(n)};let o=null;try{o=await U_()}catch{o=null}const s=(o==null?void 0:o.model.trim())??"";if(s)return{model:s,reasoningEffort:e==="plan"?Qu(n??(o==null?void 0:o.reasoningEffort)):Zu(n??(o==null?void 0:o.reasoningEffort))};let i=[];try{i=await q_()}catch{i=[]}const a=((l=i.find(c=>c.trim().length>0))==null?void 0:l.trim())??"";if(a)return{model:a,reasoningEffort:e==="plan"?Qu(n??(o==null?void 0:o.reasoningEffort)):Zu(n??(o==null?void 0:o.reasoningEffort))};throw new Error(`${e==="plan"?"Plan":"Default"} mode requires an available model. Wait for models to load and try again.`)}async function nd(e,t,n=[],r,o,s,i=[],a){var l;try{const c=(r==null?void 0:r.trim())??"",f=[{type:"text",text:BR(t,i)}];for(const k of n){const H=k.trim();H&&f.push({type:"image",url:H,image_url:H})}if(s)for(const k of s)f.push({type:"skill",name:k.name,path:k.path});const m=i.map(k=>({label:k.label,path:k.path,fsPath:k.fsPath})),v={threadId:e,input:f};if(m.length>0&&(v.attachments=m),c&&(v.model=c),typeof o=="string"&&o.length>0&&(v.effort=o),a){const k=await qR(a,c,o);v.collaborationMode={mode:a,settings:{model:k.model,reasoning_effort:k.reasoningEffort,developer_instructions:null}}}const T=await sn("turn/start",v);return typeof((l=T==null?void 0:T.turn)==null?void 0:l.id)=="string"?T.turn.id.trim():""}catch(c){throw Do(c,`Failed to start turn for thread ${e}`,"turn/start")}}async function UR(e,t){const n=e.trim(),r=(t==null?void 0:t.trim())||"";if(n)try{if(!r)throw new Error("turn/interrupt requires turnId");await sn("turn/interrupt",{threadId:n,turnId:r})}catch(o){throw Do(o,`Failed to interrupt turn for thread ${n}`,"turn/interrupt")}}async function HR(e){const t=e==="fast"?"fast":"standard";await sn("config/batchWrite",{edits:[{keyPath:"features.fast_mode",value:!0,mergeStrategy:"upsert"},{keyPath:"service_tier",value:t==="fast"?"fast":null,mergeStrategy:t==="fast"?"upsert":"replace"}],filePath:null,expectedVersion:null})}async function q_(){const e=await sn("model/list",{}),t=[];for(const n of e.data){const r=n.id||n.model;!r||t.includes(r)||t.push(r)}try{const n=await fetch("/codex-api/provider-models",{signal:AbortSignal.timeout(pR)});let r=null;try{r=await n.json()}catch{r=null}if(n.ok&&Array.isArray(r==null?void 0:r.data))for(const o of r.data){if(typeof o!="string")continue;const s=o.trim();!s||t.includes(s)||t.push(s)}}catch{}return t}async function U_(){const e=await sn("config/read",{}),t=e.config.model??"",n=vR(e.config.model_reasoning_effort),r=yR(e.config.service_tier);return{model:t,reasoningEffort:n,speedMode:r}}function WR(e){const t=e.trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}async function VR(){try{const e=await sn("collaborationMode/list",{}),t=new Set,n=[];for(const r of e.data){const o=r.mode;o!=="default"&&o!=="plan"||t.has(o)||(t.add(o),n.push({value:o,label:WR(r.name||o)||(o==="plan"?"Plan":"Default")}))}if(n.length>0){for(const r of Lm)t.has(r.value)||n.push(r);return n.sort((r,o)=>r.value===o.value?0:r.value==="default"?-1:1)}}catch{}return Lm}function zR(e){const t=e&&typeof e=="object"&&!Array.isArray(e)?e:{},n=s=>{if(!Array.isArray(s))return[];const i=[];for(const a of s)typeof a=="string"&&a.length>0&&!i.includes(a)&&i.push(a);return i},r=t.labels,o={};if(r&&typeof r=="object"&&!Array.isArray(r))for(const[s,i]of Object.entries(r)){const a=typeof s=="string"?nn(s):"";a.length>0&&typeof i=="string"&&(o[a]=i)}return{order:n(t.order).map(s=>nn(s)),labels:o,active:n(t.active).map(s=>nn(s))}}async function ks(){const e=await fetch("/codex-api/workspace-roots-state"),t=await e.json();if(!e.ok)throw new Error("Failed to load workspace roots state");const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{};return zR(n.data)}async function GR(e,t){const n=(t??"").trim(),r=await fetch("/codex-api/worktree/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sourceCwd:e,baseBranch:n||void 0})}),o=await r.json();if(!r.ok||!o.data)throw new Error(o.error||"Failed to create worktree");return{...o.data,cwd:nn(o.data.cwd),gitRoot:nn(o.data.gitRoot)}}async function KR(e){const t=e.trim();if(!t)return[];const n=new URLSearchParams({sourceCwd:t}),r=await fetch(`/codex-api/worktree/branches?${n.toString()}`),o=await r.json();if(!r.ok)throw new Error(o.error||"Failed to load branches");const s=Array.isArray(o.data)?o.data:[],i=[],a=new Set;for(const l of s){if(!l||typeof l!="object"||Array.isArray(l))continue;const c=l,d=typeof c.value=="string"?c.value.trim():"",f=typeof c.label=="string"?c.label.trim():"";!d||a.has(d)||(a.add(d),i.push({value:d,label:f||d}))}return i}async function YR(e){const t=e.trim();if(!t)return{currentBranch:null,options:[]};const n=new URLSearchParams({cwd:t}),r=await fetch(`/codex-api/git/branches?${n.toString()}`),o=await r.json();if(!r.ok)throw new Error(o.error||"Failed to load Git branch state");const s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{},i=s.currentBranch,a=typeof i=="string"&&i.trim()?i.trim():null,l=Array.isArray(s.options)?s.options:[],c=[],d=new Set;for(const f of l){if(!f||typeof f!="object"||Array.isArray(f))continue;const m=f,v=typeof m.value=="string"?m.value.trim():"",T=typeof m.label=="string"?m.label.trim():"";!v||d.has(v)||(d.add(v),c.push({value:v,label:T||v}))}return a&&!d.has(a)&&c.unshift({value:a,label:a}),{currentBranch:a,options:c}}async function JR(e,t){var s;const n=await fetch("/codex-api/git/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.trim(),branch:t.trim()})}),r=await n.json();if(!n.ok)throw new Error(r.error||"Failed to switch branch");const o=(s=r.data)==null?void 0:s.currentBranch;return typeof o=="string"&&o.trim()?o.trim():null}async function a2(e,t,n,r){const o=new URLSearchParams({cwd:e,scope:t,workspaceView:n});r&&r.trim()&&o.set("baseBranch",r.trim());const s=await fetch(`/codex-api/review/snapshot?${o.toString()}`),i=await s.json();if(!s.ok)throw new Error(Jn(i,"Failed to load review snapshot"));return B_(i)}async function l2(e){const t=await fetch("/codex-api/review/action",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to apply review action"));return B_(n)}async function c2(e){const t=await fetch("/codex-api/review/git/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to initialize Git"))}async function u2(e,t,n,r){const o=t==="baseBranch"?{type:"baseBranch",branch:(r??"").trim()}:{type:"uncommittedChanges"};if(o.type==="baseBranch"&&!o.branch)throw new Error("Base branch is unavailable");await sn("review/start",{threadId:e,target:o,delivery:"inline"})}async function Wm(){const e=await fetch("/codex-api/home-directory"),t=await e.json();if(!e.ok)throw new Error("Failed to load home directory");const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{},r=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{};return typeof r.path=="string"?r.path.trim():""}async function XR(e,t){const n=new URLSearchParams({path:e});(t==null?void 0:t.showHidden)===!0&&n.set("showHidden","1");const r=await fetch(`/codex-local-directories?${n.toString()}`),o=await H_(r);if(!r.ok){const l=Jn(o,"Failed to load local directories");throw new Error(l)}const s=o&&typeof o=="object"&&!Array.isArray(o)?o:{},i=s.data&&typeof s.data=="object"&&!Array.isArray(s.data)?s.data:{},a=Array.isArray(i.entries)?i.entries:[];return{path:typeof i.path=="string"?nn(i.path):"",parentPath:typeof i.parentPath=="string"?nn(i.parentPath):"",entries:a.flatMap(l=>{if(!l||typeof l!="object"||Array.isArray(l))return[];const c=l,d=typeof c.name=="string"?c.name.trim():"",f=typeof c.path=="string"?nn(c.path):"";return d&&f?[{name:d,path:f}]:[]})}}async function H_(e){const t=await e.text();if(!t)return{};try{return JSON.parse(t)}catch{throw new Error(`Expected JSON response from ${e.url||"request"}`)}}async function rd(e){if(!(await fetch("/codex-api/workspace-roots-state",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok)throw new Error("Failed to save workspace roots state")}async function Vm(e,t){const n=await fetch("/codex-api/project-root",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,createIfMissing:(t==null?void 0:t.createIfMissing)===!0,label:(t==null?void 0:t.label)??""})}),r=await n.json();if(!n.ok){const a=Jn(r,"Failed to open project root");throw new Error(a)}const o=r&&typeof r=="object"&&!Array.isArray(r)?r:{},s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{};return typeof s.path=="string"?nn(s.path):""}async function QR(e){const t=await fetch("/codex-api/local-directory",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})}),n=await H_(t);if(!t.ok){const s=Jn(n,"Failed to create local directory");throw new Error(s)}const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},o=r.data&&typeof r.data=="object"&&!Array.isArray(r.data)?r.data:{};return typeof o.path=="string"?nn(o.path):""}async function ZR(e){const t=new URLSearchParams({basePath:e}),n=await fetch(`/codex-api/project-root-suggestion?${t.toString()}`),r=await n.json();if(!n.ok){const i=Jn(r,"Failed to suggest project name");throw new Error(i)}const o=r&&typeof r=="object"&&!Array.isArray(r)?r:{},s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{};return{name:typeof s.name=="string"?s.name.trim():"",path:typeof s.path=="string"?nn(s.path):""}}async function eM(e,t,n=20){const r=e.trim();if(!r)return[];const o=await fetch("/codex-api/composer-file-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,query:t.trim(),limit:n})}),s=await o.json();if(!o.ok){const c=Jn(s,"Failed to search files");throw new Error(c)}const i=s&&typeof s=="object"&&!Array.isArray(s)?s:{},a=Array.isArray(i.data)?i.data:[],l=[];for(const c of a){if(!c||typeof c!="object"||Array.isArray(c))continue;const f=c.path,m=typeof f=="string"?f.trim():"";m&&l.push({path:m})}return l}async function tM(e,t=200){const n=await fetch("/codex-api/thread-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,limit:t})}),r=await n.json();if(!n.ok)throw new Error(r.error||"Failed to search threads");return r.data??{threadIds:[],indexedThreadCount:0}}async function nM(e){const t=await fetch("/codex-api/telegram/configure-bot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({botToken:e})}),n=await t.json();if(!t.ok){const r=Jn(n,"Failed to connect Telegram bot");throw new Error(r)}}async function rM(){const e=await fetch("/codex-api/telegram/status"),t=await e.json();if(!e.ok){const o=Jn(t,"Failed to load Telegram status");throw new Error(o)}const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{},r=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{};return{configured:r.configured===!0,active:r.active===!0,mappedChats:typeof r.mappedChats=="number"?r.mappedChats:0,mappedThreads:typeof r.mappedThreads=="number"?r.mappedThreads:0,lastError:typeof r.lastError=="string"?r.lastError:""}}function oM(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),r=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${r}`}async function sM(e,t=6){const n=Math.min(10,Math.max(1,Math.floor(t)));if(e.startsWith("search-")){const d=new Date;e==="search-daily"?d.setUTCDate(d.getUTCDate()-1):e==="search-weekly"?d.setUTCDate(d.getUTCDate()-7):d.setUTCDate(d.getUTCDate()-30);const f=new URLSearchParams({q:`created:>=${oM(d)}`,sort:"stars",order:"desc",per_page:String(n)}),m=await fetch(`https://api.github.com/search/repositories?${f.toString()}`,{headers:{Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}});if(!m.ok)throw new Error(`Failed to fetch GitHub search projects (${m.status})`);const v=await m.json(),T=v&&typeof v=="object"&&!Array.isArray(v)?v:{},k=Array.isArray(T.items)?T.items:[],H=[];for(const P of k){if(!P||typeof P!="object"||Array.isArray(P))continue;const O=P,W=typeof O.id=="number"?O.id:0,Y=typeof O.full_name=="string"?O.full_name.trim():"",ce=typeof O.html_url=="string"?O.html_url.trim():"";if(!W||!Y||!ce)continue;const[re="",Z=""]=Y.split("/",2);H.push({id:W,fullName:Y,owner:re,repo:Z,url:ce,description:Dm(Y,typeof O.description=="string"?O.description:""),language:typeof O.language=="string"?O.language.trim():"",stars:typeof O.stargazers_count=="number"?O.stargazers_count:0})}return H}const r=e==="trending-daily"?"daily":e==="trending-weekly"?"weekly":"monthly",o=new URLSearchParams({since:r,limit:String(n)}),s=await fetch(`/codex-api/github-trending?${o.toString()}`),i=await s.json();if(!s.ok){const d=Jn(i,"Failed to fetch GitHub trending projects");throw new Error(d)}const a=i&&typeof i=="object"&&!Array.isArray(i)?i:{},l=Array.isArray(a.data)?a.data:[],c=[];for(const d of l){if(!d||typeof d!="object"||Array.isArray(d))continue;const f=d,m=typeof f.id=="number"?f.id:0,v=typeof f.fullName=="string"?f.fullName.trim():"",T=typeof f.url=="string"?f.url.trim():"";if(!m||!v||!T)continue;const[k="",H=""]=v.split("/",2);c.push({id:m,fullName:v,owner:k,repo:H,url:T,description:Dm(v,typeof f.description=="string"?f.description:""),language:typeof f.language=="string"?f.language.trim():"",stars:typeof f.stars=="number"?f.stars:0})}return c}function Jn(e,t){const n=e&&typeof e=="object"&&!Array.isArray(e)?e:{},r=n.message;if(typeof r=="string"&&r.trim().length>0)return r;const o=n.error;return typeof o=="string"&&o.trim().length>0?o:t}async function iM(){try{const e=await fetch("/codex-api/thread-titles");return e.ok?(await e.json()).data??{titles:{},order:[]}:{titles:{},order:[]}}catch{return{titles:{},order:[]}}}async function od(e,t){try{await fetch("/codex-api/thread-titles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,title:t})})}catch{}}async function aM(){try{const e=await fetch("/codex-api/thread-pins");return e.ok?(await e.json()).data??{threadIds:[]}:{threadIds:[]}}catch{return{threadIds:[]}}}async function lM(e){try{await fetch("/codex-api/thread-pins",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadIds:e})})}catch{}}async function cM(e,t){var n;try{return((n=(await sn("generate-thread-title",{prompt:e,cwd:t})).title)==null?void 0:n.trim())??""}catch{return""}}async function uM(e){try{const t={};e&&e.length>0&&(t.cwds=e);const n=await sn("skills/list",t),r=[],o=new Set;for(const s of n.data)for(const i of s.skills)!i.name||o.has(i.path)||(o.add(i.path),r.push({name:i.name,description:i.shortDescription||i.description||"",path:i.path,scope:i.scope,enabled:i.enabled}));return r}catch{return[]}}const dM=6e4;async function sd(e){const t=new AbortController,n=setTimeout(()=>t.abort(),dM);try{const r=new FormData;r.append("file",e);const o=await fetch("/codex-api/upload-file",{method:"POST",body:r,signal:t.signal});return o.ok?(await o.json()).path??null:null}catch{return null}finally{clearTimeout(n)}}const fM={},pM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function hM(e,t){return A(),L("svg",pM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m6 9l6 6l6-6"},null,-1)])])}const ap=Et(fM,[["render",hM]]),mM={},gM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function vM(e,t){return A(),L("svg",gM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 6l6 6l-6 6"},null,-1)])])}const yM=Et(mM,[["render",vM]]),_M={},bM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function wM(e,t){return A(),L("svg",bM,[...t[0]||(t[0]=[y("path",{fill:"currentColor",d:"M6 12a2 2 0 1 0 0-4a2 2 0 0 0 0 4m6 0a2 2 0 1 0 0-4a2 2 0 0 0 0 4m6 0a2 2 0 1 0 0-4a2 2 0 0 0 0 4"},null,-1)])])}const Ki=Et(_M,[["render",wM]]),SM={},TM={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function EM(e,t){return A(),L("svg",TM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 20h4L18.5 9.5a2.828 2.828 0 1 0-4-4L4 16zm9.5-13.5l4 4"},null,-1)])])}const ac=Et(SM,[["render",EM]]),kM={},IM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function AM(e,t){return A(),L("svg",IM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2"},null,-1)])])}const lp=Et(kM,[["render",AM]]),CM={},xM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function RM(e,t){return A(),L("svg",xM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m5 19l2.757-7.351A1 1 0 0 1 8.693 11H21a1 1 0 0 1 .986 1.164l-.996 5.211A2 2 0 0 1 19.026 19za2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4l3 3h7a2 2 0 0 1 2 2v2"},null,-1)])])}const MM=Et(CM,[["render",RM]]),PM={},$M={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function NM(e,t){return A(),L("svg",$M,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 18v-6m0 0a4 4 0 0 1 4-4h2m-6 4a4 4 0 0 0-4-4H6m0-4a2 2 0 1 0 0 4a2 2 0 0 0 0-4m12 0a2 2 0 1 0 0 4a2 2 0 0 0 0-4m-6 14a2 2 0 1 0 0 4a2 2 0 0 0 0-4"},null,-1)])])}const Ul=Et(PM,[["render",NM]]),OM={},LM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function DM(e,t){return A(),L("svg",LM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m15 4.5l-4 4L7 10l-1.5 1.5l7 7L14 17l1.5-4l4-4M9 15l-4.5 4.5M14.5 4L20 9.5"},null,-1)])])}const id=Et(OM,[["render",DM]]),jM={key:0,class:"sidebar-menu-row-left"},FM={class:"sidebar-menu-row-main"},BM={key:1,class:"sidebar-menu-row-right"},qM={key:0,class:"sidebar-menu-row-right-default"},UM={key:1,class:"sidebar-menu-row-right-hover"},HM=An({inheritAttrs:!1,__name:"SidebarMenuRow",props:{as:{default:"div"},forceRightHover:{type:Boolean,default:!1}},setup(e){const t=e,n=qw(),r=se(()=>!!n.left),o=se(()=>!!n.right),s=se(()=>!!n["right-hover"]),i=se(()=>o.value||s.value);return(a,l)=>(A(),yt(Ef(t.as),kv({class:"sidebar-menu-row","data-has-left":r.value,"data-has-right":i.value,"data-has-right-hover":s.value,"data-force-right-hover":t.forceRightHover},a.$attrs),{default:kt(()=>[r.value?(A(),L("span",jM,[co(a.$slots,"left",{},void 0,!0)])):Se("",!0),y("span",FM,[co(a.$slots,"default",{},void 0,!0)]),i.value?(A(),L("span",BM,[o.value?(A(),L("span",qM,[co(a.$slots,"right",{},void 0,!0)])):Se("",!0),s.value?(A(),L("span",UM,[co(a.$slots,"right-hover",{},void 0,!0)])):Se("",!0)])):Se("",!0)]),_:3},16,["data-has-left","data-has-right","data-has-right-hover","data-force-right-hover"]))}}),Ts=Et(HM,[["__scopeId","data-v-36239f39"]]),WM={class:"thread-tree-root"},VM={key:0,class:"pinned-section"},zM={class:"thread-list"},GM=["data-menu-open"],KM={class:"thread-left-stack"},YM=["data-state"],JM=["onClick"],XM=["onClick"],QM={class:"thread-row-title-wrap"},ZM={class:"thread-row-title-line"},eP={class:"thread-row-title"},tP=["data-state"],nP={class:"thread-row-time"},rP=["onClick"],oP=["aria-expanded"],sP=["data-active"],iP={key:0},aP=["data-active"],lP={key:0},cP={key:1,class:"thread-tree-no-results"},uP={key:2,class:"thread-tree-loading"},dP={key:3,class:"thread-list thread-list-global"},fP=["data-menu-open"],pP={class:"thread-left-stack"},hP=["data-state"],mP=["onClick"],gP=["onClick"],vP={class:"thread-row-title-wrap"},yP={class:"thread-row-title-line"},_P={class:"thread-row-title"},bP=["data-state"],wP={class:"thread-row-time"},SP=["onClick"],TP=["data-project-name","data-expanded","data-dragging"],EP={class:"project-icon-stack"},kP={class:"project-icon-folder"},IP={class:"project-icon-chevron"},AP=["data-dragging-handle","onMousedown"],CP={class:"project-title"},xP={class:"project-hover-controls"},RP=["onClick"],MP=["data-open-direction"],PP=["onClick"],$P=["onClick"],NP=["onInput"],OP=["aria-label","title","onClick"],LP={key:0,class:"thread-list"},DP=["data-menu-open"],jP={class:"thread-left-stack"},FP=["data-state"],BP=["onClick"],qP=["onClick"],UP={class:"thread-row-title-wrap"},HP={class:"thread-row-title-line"},WP={class:"thread-row-title"},VP=["data-state"],zP={class:"thread-row-time"},GP=["onClick"],KP=["onClick"],YP=["data-open-direction"],JP={class:"rename-thread-panel",role:"dialog","aria-modal":"true","aria-label":"Thread title"},XP=["onKeydown"],QP={class:"rename-thread-panel",role:"dialog","aria-modal":"true","aria-label":"Delete thread"},ZP={class:"rename-thread-subtitle"},e$=4,zm=6,Gm="codex-web-local.thread-view-mode.v1",Km="codex-web-local.collapsed-projects.v1",t$=An({__name:"SidebarThreadTree",props:{groups:{},projectDisplayNameById:{},selectedThreadId:{},isLoading:{type:Boolean},searchQuery:{},searchMatchedThreadIds:{}},emits:["select","archive","start-new-thread","browse-thread-files","rename-project","rename-thread","remove-project","reorder-project","export-thread","fork-thread"],setup(e,{emit:t}){const n=e,r=t,o=j({}),s=j({});let i=!1;const a=j([]),l=j(""),c=j(""),d=j({}),f=j({}),m=j({}),v=j("actions"),T=j(""),k=j(!1),H=j(""),P=j(""),O=j(null),W=j(!1),Y=j(""),ce=j(""),re=j(null),Z=j(null),he=j(null);let Ce=null,Ae=null;const ue=j(""),V=j({}),ae=new Map,xe=new Map,Fe=new Map,_e=new WeakMap,Me=j(null),fe=j(null),De=j(!1),Be=j(ot()),Re=typeof window<"u"?new ResizeObserver(S=>{for(const C of S){const N=C.target,z=_e.get(N);z&&Qn(z,N)}}):null;function Ge(){if(typeof window>"u")return{};try{const S=window.localStorage.getItem(Km);if(!S)return{};const C=JSON.parse(S);return!C||typeof C!="object"||Array.isArray(C)?{}:C}catch{return{}}}function ot(){return typeof window>"u"?"project":window.localStorage.getItem(Gm)==="chronological"?"chronological":"project"}s.value=Ge(),lt(s,S=>{typeof window>"u"||window.localStorage.setItem(Km,JSON.stringify(S))},{deep:!0}),lt(Be,S=>{typeof window>"u"||window.localStorage.setItem(Gm,S)});const nt=se(()=>n.searchQuery.trim().toLowerCase()),st=se(()=>nt.value.length>0),Ke=se(()=>n.searchMatchedThreadIds?new Set(n.searchMatchedThreadIds):null),J=se(()=>new Set(a.value));function be(S){if(!st.value)return!0;if(Ke.value)return Ke.value.has(S.id);const C=nt.value;return S.title.toLowerCase().includes(C)||S.preview.toLowerCase().includes(C)}const we=se(()=>st.value?n.groups.map(S=>({...S,threads:S.threads.filter(be)})).filter(S=>S.threads.length>0):n.groups),ve=se(()=>Be.value==="chronological"),Ze=se(()=>{const S=we.value,C=[];for(const N of S)for(const z of N.threads)J.value.has(z.id)||C.push(z);return C.sort((N,z)=>{const w=new Date(N.updatedAtIso||N.createdAtIso).getTime();return new Date(z.updatedAtIso||z.createdAtIso).getTime()-w})}),E=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads)S.set(N.id,N);return S});lt(a,S=>{i&&lM(S)}),lt(E,S=>{const C=a.value.filter(N=>S.has(N));C.length!==a.value.length&&(a.value=C)}),as(async()=>{const{threadIds:S}=await aM(),C=Array.isArray(S)?S.filter(N=>typeof N=="string").map(N=>N.trim()).filter((N,z,w)=>N.length>0&&w.indexOf(N)===z):[];C.length>0&&(a.value=C),i=!0});const I=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads)S.set(N.id,C.projectName);return S}),q=se(()=>{const S=new Map;for(const C of n.groups){const N=C.threads.filter(z=>!J.value.has(z.id));S.set(C.projectName,N)}return S}),Q=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads){const z=new Date(N.updatedAtIso||N.createdAtIso).getTime();S.set(N.id,z)}return S}),ee=se(()=>{const S=c.value;return S?E.value.get(S)??null:null}),te=se(()=>a.value.map(S=>E.value.get(S)??null).filter(S=>S!==null).filter(be)),ie=se(()=>{const S=he.value;if(!S||S.dropTargetIndexFull===null||n.groups.length===0)return null;const C=Math.max(0,Math.min(S.dropTargetIndexFull,n.groups.length)),N=C>S.fromIndex?C-1:C,z=Math.max(0,Math.min(N,n.groups.length-1));return z===S.fromIndex?null:z}),pe=se(()=>{const C=(st.value?we.value:n.groups).map(K=>K.projectName),N=he.value,z=ie.value;if(!N||z===null)return C;const w=[...C],[R]=w.splice(N.fromIndex,1);return R?(w.splice(z,0,R),w):C}),me=se(()=>{const S={};let C=0;for(const N of pe.value)S[N]=C,C+=Dt(N);return S}),ne=se(()=>{let S=0;for(const C of pe.value)S+=Dt(C);return{height:`${Math.max(0,S)}px`}});function Ue(S){if(Number.isNaN(S))return"n/a";const C=Math.abs(Date.now()-S);if(C<6e4)return"now";const N=Math.floor(C/6e4);if(N<60)return`${N}m`;const z=Math.floor(N/60);return z<24?`${z}h`:`${Math.floor(z/24)}d`}function ke(S){const C=Q.value.get(S.id);return Ue(typeof C=="number"?C:new Date(S.updatedAtIso||S.createdAtIso).getTime())}function ye(S){return J.value.has(S)}function $e(S){if(ye(S)){a.value=a.value.filter(C=>C!==S);return}a.value=[S,...a.value]}function x(S){r("select",S)}function $(S){r("export-thread",S),Qe()}function D(S){r("fork-thread",S),Qe()}function X(S){return`start new thread ${Ut(S)}`}function le(S){r("start-new-thread",S)}function Le(S){r("browse-thread-files",S),Qe()}function Ne(S,C){if(c.value===S){if(C){const N=C.relatedTarget,z=fe.value;if(N instanceof Node&&z&&z.contains(N))return}Qe()}}function rt(S){return c.value===S}function Qe(){c.value="",m.value={}}function wt(S){if(c.value===S){Qe();return}Ht(),De.value=!1,c.value=S,Jt(()=>{an(S)})}function Rt(S,C){S.preventDefault(),c.value=C}function ct(S,C){H.value=S,P.value=C,k.value=!0,Qe(),Jt(()=>{var N,z;(N=O.value)==null||N.focus(),(z=O.value)==null||z.select()})}function Qt(){k.value=!1,H.value="",P.value=""}function mn(){const S=H.value,C=P.value.trim();!S||!C||(r("rename-thread",{threadId:S,title:C}),Qt())}function ar(S,C){Y.value=S,ce.value=C,W.value=!0,Qe()}function Xn(){W.value=!1,Y.value="",ce.value=""}function mr(){const S=Y.value;S&&(a.value=a.value.filter(C=>C!==S),r("archive",S),Xn())}function Ut(S){return n.projectDisplayNameById[S]??S}function Zt(S){return l.value===S}function Ht(){l.value="",v.value="actions",T.value=""}function gr(){const S=!De.value;S&&(Ht(),Qe()),De.value=S}function Wt(S){Be.value=S,De.value=!1}function Yr(S){if(l.value===S){Ht();return}Qe(),De.value=!1,l.value=S,v.value="actions",T.value=Ut(S),Jt(()=>{dt(S)})}function jn(S){Qe(),l.value=S,v.value="rename",T.value=Ut(S),Jt(()=>{dt(S)})}function vr(S){r("rename-project",{projectName:S,displayName:T.value})}function Mr(S){r("remove-project",S),Ht()}function ho(S,C){if(!S.altKey||S.key!=="ArrowUp"&&S.key!=="ArrowDown")return;const N=n.groups.findIndex(R=>R.projectName===C);if(N<0)return;const z=S.key==="ArrowUp"?-1:1,w=Math.max(0,Math.min(N+z,n.groups.length-1));w!==N&&(S.preventDefault(),r("reorder-project",{projectName:C,toIndex:w}))}function Fn(S){return o.value[S]===!0}function en(S){return s.value[S]===!0}function Pr(S){o.value={...o.value,[S]:!Fn(S)}}function Cn(S){if(ue.value===S){ue.value="";return}s.value={...s.value,[S]:!en(S)}}function Dt(S){const C=V.value[S]??0,N=he.value,w=((N==null?void 0:N.projectName)===S?N.groupHeight:null)??C,R=en(S)?0:zm;return Math.max(0,w+R)}function lr(S,C){const N=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(N){xe.set(S,N);return}xe.delete(S)}function $r(S,C){const N=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(N){Fe.set(S,N);return}Fe.delete(S)}function gn(S){let C=S.parentElement;for(;C;){const N=window.getComputedStyle(C),z=N.overflowY||N.overflow;if(z==="auto"||z==="scroll"||z==="hidden"||z==="clip")return C.getBoundingClientRect();C=C.parentElement}return new DOMRect(0,0,window.innerWidth,window.innerHeight)}function Vt(S,C){const N=S.getBoundingClientRect(),z=gn(S),w=6,R=z.bottom-N.bottom,K=N.top-z.top;return R>=C+w?"down":K>R?"up":"down"}function Mt(S,C){const N=Fe.get(S);if(!N)return"down";const z=Vt(N,C);return f.value={...f.value,[S]:z},z}function vn(S){return f.value[S]??"down"}function dt(S){const C=xe.get(S);C&&(d.value={...d.value,[S]:Vt(C,112)})}function gt(S,C,N){return Math.min(Math.max(S,C),N)}function an(S){const C=Fe.get(S);if(!C)return;const N=fe.value,z=N==null?void 0:N.getBoundingClientRect(),w=(z==null?void 0:z.height)||(N==null?void 0:N.offsetHeight)||112,R=(z==null?void 0:z.width)||(N==null?void 0:N.offsetWidth)||160,K=Mt(S,w),Ee=C.getBoundingClientRect(),it=8,Ft=4,Gt=Math.max(it,window.innerWidth-R-it),Pt=gt(Ee.right-R,it,Gt),wn=gt(K==="up"?Ee.top-w-Ft:Ee.bottom+Ft,it,Math.max(it,window.innerHeight-w-it));m.value={left:`${Math.round(Pt)}px`,top:`${Math.round(wn)}px`}}function Bn(){const S=c.value;S&&an(S)}function cr(){window.addEventListener("resize",Bn),document.addEventListener("scroll",Bn,!0)}function qn(){window.removeEventListener("resize",Bn),document.removeEventListener("scroll",Bn,!0)}function xn(S){const C=l.value;if(!C)return!1;const N=xe.get(C);if(!N)return!1;if((typeof S.composedPath=="function"?S.composedPath():[]).includes(N))return!0;const w=S.target;return w instanceof Node?N.contains(w):!1}function ln(S){const C=c.value;if(!C)return!1;const N=Fe.get(C);if(!N)return!1;const z=typeof S.composedPath=="function"?S.composedPath():[];if(z.includes(N))return!0;const w=fe.value;if(w&&z.includes(w))return!0;const R=S.target;return R instanceof Node?!!(N.contains(R)||w&&w.contains(R)):!1}function Un(S){if(De.value){const C=Me.value,N=typeof S.composedPath=="function"?S.composedPath():[];!!C&&(N.includes(C)||S.target instanceof Node&&C.contains(S.target))||(De.value=!1)}l.value&&(xn(S)||Ht(),c.value&&(ln(S)||Qe()))}function ur(S){l.value&&!xn(S)&&Ht(),c.value&&!ln(S)&&Qe()}function Nr(){De.value&&(De.value=!1),l.value&&Ht(),c.value&&Qe()}function Hn(){window.addEventListener("pointerdown",Un,{capture:!0}),window.addEventListener("focusin",ur,{capture:!0}),window.addEventListener("blur",Nr)}function En(){window.removeEventListener("pointerdown",Un,{capture:!0}),window.removeEventListener("focusin",ur,{capture:!0}),window.removeEventListener("blur",Nr)}function Qn(S,C){const N=C.getBoundingClientRect().height;if(!Number.isFinite(N)||N<=0)return;const z=V.value[S];z!==void 0&&Math.abs(z-N)<.5||(V.value={...V.value,[S]:N})}function yn(S,C){const N=ae.get(S);N&&N!==C&&Re&&Re.unobserve(N);const z=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(z){ae.set(S,z),_e.set(z,S),Qn(S,z),Re==null||Re.observe(z);return}N&&(Re==null||Re.unobserve(N)),ae.delete(S)}function _n(S,C){if(S.button!==0||Z.value||he.value)return;const N=n.groups.findIndex(K=>K.projectName===C),z=ae.get(C);if(N<0||!z)return;const w=z.getBoundingClientRect(),R=en(C)?0:zm;Z.value={projectName:C,fromIndex:N,startClientX:S.clientX,startClientY:S.clientY,pointerOffsetY:S.clientY-w.top,groupLeft:w.left,groupWidth:w.width,groupHeight:w.height,groupOuterHeight:w.height+R},S.preventDefault(),Rn()}function Rn(){window.addEventListener("mousemove",yr),window.addEventListener("mouseup",Jr),window.addEventListener("keydown",Nt)}function bn(){window.removeEventListener("mousemove",yr),window.removeEventListener("mouseup",Jr),window.removeEventListener("keydown",Nt)}function yr(S){Ce={clientX:S.clientX,clientY:S.clientY},Wn()}function Jr(S){qe({clientX:S.clientX,clientY:S.clientY});const C=he.value;if(C&&ie.value!==null){const N=n.groups.findIndex(z=>z.projectName===C.projectName);if(N>=0){const z=ie.value;z!==N&&r("reorder-project",{projectName:C.projectName,toIndex:z})}}on()}function Nt(S){S.key==="Escape"&&(!Z.value&&!he.value||(S.preventDefault(),on()))}function on(){Ae!==null&&(window.cancelAnimationFrame(Ae),Ae=null),Ce=null,Z.value=null,he.value=null,ue.value="",bn()}function Wn(){Ae===null&&(Ae=window.requestAnimationFrame(()=>{if(Ae=null,!Ce)return;const S=Ce;Ce=null,qe(S)}))}function qe(S){const C=Z.value;if(!he.value&&C){const N=S.clientX-C.startClientX,z=S.clientY-C.startClientY;if(Math.hypot(N,z)<e$)return;Ht(),ue.value=C.projectName,he.value={projectName:C.projectName,fromIndex:C.fromIndex,pointerOffsetY:C.pointerOffsetY,groupLeft:C.groupLeft,groupWidth:C.groupWidth,groupHeight:C.groupHeight,groupOuterHeight:C.groupOuterHeight,ghostTop:S.clientY-C.pointerOffsetY,dropTargetIndexFull:null}}he.value&&Te(S)}function Te(S){const C=he.value;if(!C)return;if(C.ghostTop=S.clientY-C.pointerOffsetY,!St(S)){C.dropTargetIndexFull=null;return}const N=S.clientY,z=re.value;if(!z){C.dropTargetIndexFull=null;return}const w=z.getBoundingClientRect(),R=new Map(n.groups.map((Ft,Gt)=>[Ft.projectName,Gt])),K=n.groups.map(Ft=>Ft.projectName).filter(Ft=>Ft!==C.projectName);let Ee=0,it=n.groups.length;for(const Ft of K){const Gt=R.get(Ft);if(Gt===void 0)continue;const Pt=Dt(Ft),wn=w.top+Ee+Pt/2;if(N<wn){it=Gt;break}Ee+=Pt}C.dropTargetIndexFull=it}function St(S){const C=re.value;if(!C)return!1;const N=C.getBoundingClientRect(),z=S.clientX>=N.left&&S.clientX<=N.right,w=S.clientY>=N.top-32&&S.clientY<=N.bottom+32;return z&&w}function Or(S){var C;return((C=he.value)==null?void 0:C.projectName)===S}function Lr(S){const C=he.value,N=me.value[S]??0,z=c.value?I.value.get(c.value)??"":"",w=l.value===S||z===S;return!C||C.projectName!==S?{position:"absolute",top:"0",left:"0",right:"0",zIndex:w?"40":"1",transform:`translate3d(0, ${N}px, 0)`,willChange:"transform",transition:"transform 180ms ease"}:{position:"fixed",top:"0",left:`${C.groupLeft}px`,width:`${C.groupWidth}px`,height:`${C.groupHeight}px`,zIndex:"50",pointerEvents:"none",transform:`translate3d(0, ${C.ghostTop}px, 0)`,willChange:"transform",transition:"transform 0ms linear"}}function Zn(S){return q.value.get(S.projectName)??[]}function er(S){if(st.value)return Zn(S);if(en(S.projectName))return[];const C=Zn(S);return Fn(S.projectName)?C:C.slice(0,10)}function Xr(S){return st.value?!1:!en(S.projectName)&&Zn(S).length>10}function _r(S){return Zn(S).length>0}function Mn(S){return!!S.pendingRequestState||S.inProgress||S.unread}function qt(S){return S.pendingRequestState==="approval"?"Awaiting approval":"Awaiting response"}function zt(S){return S.pendingRequestState==="approval"?"awaiting-approval":S.pendingRequestState==="response"?"awaiting-response":S.inProgress?"working":S.unread?"unread":"idle"}lt(()=>n.groups.map(S=>S.projectName),S=>{var w,R;const C=((w=he.value)==null?void 0:w.projectName)??((R=Z.value)==null?void 0:R.projectName)??"";C&&!n.groups.some(K=>K.projectName===C)&&on();const N=new Set(S),z=Object.fromEntries(Object.entries(V.value).filter(([K])=>N.has(K)));Object.keys(z).length!==Object.keys(V.value).length&&(V.value=z)});const br=se(()=>De.value||l.value!==""||c.value!=="");return lt(br,S=>{if(S){Hn();return}En()}),lt(c,S=>{if(!S){qn();return}cr(),Jt(()=>{an(S)})}),Fs(()=>{for(const S of ae.values())Re==null||Re.unobserve(S);ae.clear(),xe.clear(),qn(),En(),on()}),(S,C)=>(A(),L("section",WM,[te.value.length>0?(A(),L("section",VM,[y("ul",zM,[(A(!0),L(Xe,null,Bt(te.value,N=>(A(),L("li",{key:N.id,class:"thread-row-item","data-menu-open":rt(N.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":N.id===e.selectedThreadId,"data-pinned":ye(N.id),"data-menu-open":rt(N.id)?"true":"false","force-right-hover":rt(N.id),onMouseleave:z=>Ne(N.id,z),onContextmenu:z=>Rt(z,N.id)},{left:kt(()=>[y("span",KM,[Mn(N)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(N)},null,8,YM)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:z=>$e(N.id)},[ze(id,{class:"thread-icon"})],8,JM)])]),right:kt(()=>[y("span",nP,ge(ke(N)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:z=>$r(N.id,z),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(z=>wt(N.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,rP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:z=>x(N.id)},[y("span",QM,[y("span",ZM,[y("span",eP,ge(N.title),1),N.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),N.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":N.pendingRequestState},ge(qt(N)),9,tP)):Se("",!0)])])],8,XM)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,GM))),128))])])):Se("",!0),ze(Ts,{as:"header",class:"thread-tree-header-row"},{right:kt(()=>[y("div",{ref_key:"organizeMenuWrapRef",ref:Me,class:"organize-menu-wrap"},[y("button",{class:"organize-menu-trigger",type:"button","aria-expanded":De.value,"aria-label":"Organize threads",title:"Organize threads",onClick:gr},[ze(Ki,{class:"thread-icon"})],8,oP),De.value?(A(),L("div",{key:0,class:"organize-menu-panel",onClick:C[2]||(C[2]=_t(()=>{},["stop"]))},[C[14]||(C[14]=y("p",{class:"organize-menu-title"},"Organize",-1)),y("button",{class:"organize-menu-item","data-active":Be.value==="project",type:"button",onClick:C[0]||(C[0]=N=>Wt("project"))},[C[12]||(C[12]=y("span",null,"By project",-1)),Be.value==="project"?(A(),L("span",iP,"✓")):Se("",!0)],8,sP),y("button",{class:"organize-menu-item","data-active":Be.value==="chronological",type:"button",onClick:C[1]||(C[1]=N=>Wt("chronological"))},[C[13]||(C[13]=y("span",null,"Chronological list",-1)),Be.value==="chronological"?(A(),L("span",lP,"✓")):Se("",!0)],8,aP)])):Se("",!0)],512)]),default:kt(()=>[C[15]||(C[15]=y("span",{class:"thread-tree-header"},"Threads",-1))]),_:1}),st.value&&we.value.length===0?(A(),L("p",cP,"No matching threads")):e.isLoading&&e.groups.length===0?(A(),L("p",uP,"Loading threads...")):ve.value?(A(),L("ul",dP,[(A(!0),L(Xe,null,Bt(Ze.value,N=>(A(),L("li",{key:N.id,class:"thread-row-item","data-menu-open":rt(N.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":N.id===e.selectedThreadId,"data-pinned":ye(N.id),"data-menu-open":rt(N.id)?"true":"false","force-right-hover":rt(N.id),onMouseleave:z=>Ne(N.id,z),onContextmenu:z=>Rt(z,N.id)},{left:kt(()=>[y("span",pP,[Mn(N)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(N)},null,8,hP)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:z=>$e(N.id)},[ze(id,{class:"thread-icon"})],8,mP)])]),right:kt(()=>[y("span",wP,ge(ke(N)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:z=>$r(N.id,z),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(z=>wt(N.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,SP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:z=>x(N.id)},[y("span",vP,[y("span",yP,[y("span",_P,ge(N.title),1),N.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),N.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":N.pendingRequestState},ge(qt(N)),9,bP)):Se("",!0)])])],8,gP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,fP))),128))])):(A(),L("div",{key:4,ref_key:"groupsContainerRef",ref:re,class:"thread-tree-groups",style:ko(ne.value)},[(A(!0),L(Xe,null,Bt(we.value,N=>(A(),L("article",{key:N.projectName,ref_for:!0,ref:z=>yn(N.projectName,z),class:"project-group","data-project-name":N.projectName,"data-expanded":!en(N.projectName),"data-dragging":Or(N.projectName),style:ko(Lr(N.projectName))},[ze(Ts,{as:"div",class:"project-header-row",role:"button",tabindex:"0",onClick:z=>Cn(N.projectName),onKeydown:[z=>ho(z,N.projectName),Sn(_t(z=>Cn(N.projectName),["prevent"]),["enter"]),Sn(_t(z=>Cn(N.projectName),["prevent"]),["space"])]},{left:kt(()=>[y("span",EP,[y("span",kP,[en(N.projectName)?(A(),yt(lp,{key:0,class:"thread-icon"})):(A(),yt(MM,{key:1,class:"thread-icon"}))]),y("span",IP,[en(N.projectName)?(A(),yt(yM,{key:0,class:"thread-icon"})):(A(),yt(ap,{key:1,class:"thread-icon"}))])])]),right:kt(()=>[y("div",xP,[y("div",{ref_for:!0,ref:z=>lr(N.projectName,z),class:"project-menu-wrap"},[y("button",{class:"project-menu-trigger",type:"button",title:"project_menu",onClick:_t(z=>Yr(N.projectName),["stop"])},[ze(Ki,{class:"thread-icon"})],8,RP),Zt(N.projectName)?(A(),L("div",{key:0,class:"project-menu-panel","data-open-direction":d.value[N.projectName]??"down",onClick:C[4]||(C[4]=_t(()=>{},["stop"]))},[v.value==="actions"?(A(),L(Xe,{key:0},[y("button",{class:"project-menu-item",type:"button",onClick:z=>jn(N.projectName)}," Edit name ",8,PP),y("button",{class:"project-menu-item project-menu-item-danger",type:"button",onClick:z=>Mr(N.projectName)}," Remove ",8,$P)],64)):(A(),L(Xe,{key:1},[C[16]||(C[16]=y("label",{class:"project-menu-label"},"Project name",-1)),Br(y("input",{"onUpdate:modelValue":C[3]||(C[3]=z=>T.value=z),class:"project-menu-input",type:"text",onInput:z=>vr(N.projectName)},null,40,NP),[[fo,T.value]])],64))],8,MP)):Se("",!0)],512),y("button",{class:"thread-start-button",type:"button","aria-label":X(N.projectName),title:X(N.projectName),onClick:_t(z=>le(N.projectName),["stop"])},[ze(ac,{class:"thread-icon"})],8,OP)])]),default:kt(()=>[y("span",{class:"project-main-button","data-dragging-handle":Or(N.projectName),onMousedown:_t(z=>_n(z,N.projectName),["left"])},[y("span",CP,ge(Ut(N.projectName)),1)],40,AP)]),_:2},1032,["onClick","onKeydown"]),_r(N)?(A(),L("ul",LP,[(A(!0),L(Xe,null,Bt(er(N),z=>(A(),L("li",{key:z.id,class:"thread-row-item","data-menu-open":rt(z.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":z.id===e.selectedThreadId,"data-pinned":ye(z.id),"data-menu-open":rt(z.id)?"true":"false","force-right-hover":rt(z.id),onMouseleave:w=>Ne(z.id,w),onContextmenu:w=>Rt(w,z.id)},{left:kt(()=>[y("span",jP,[Mn(z)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(z)},null,8,FP)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:w=>$e(z.id)},[ze(id,{class:"thread-icon"})],8,BP)])]),right:kt(()=>[y("span",zP,ge(ke(z)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:w=>$r(z.id,w),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(w=>wt(z.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,GP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:w=>x(z.id)},[y("span",UP,[y("span",HP,[y("span",WP,ge(z.title),1),z.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),z.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":z.pendingRequestState},ge(qt(z)),9,VP)):Se("",!0)])])],8,qP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,DP))),128))])):(A(),yt(Ts,{key:1,as:"p",class:"project-empty-row"},{left:kt(()=>[...C[17]||(C[17]=[y("span",{class:"project-empty-spacer"},null,-1)])]),default:kt(()=>[C[18]||(C[18]=y("span",{class:"project-empty"},"No threads",-1))]),_:1})),Xr(N)?(A(),yt(Ts,{key:2,class:"thread-show-more-row"},{left:kt(()=>[...C[19]||(C[19]=[y("span",{class:"thread-show-more-spacer"},null,-1)])]),default:kt(()=>[y("button",{class:"thread-show-more-button",type:"button",onClick:z=>Pr(N.projectName)},ge(Fn(N.projectName)?"Show less":"Show more"),9,KP)]),_:2},1024)):Se("",!0)],12,TP))),128))],4)),(A(),yt(xl,{to:"body"},[ee.value?(A(),L("div",{key:0,ref_key:"openThreadMenuPanelRef",ref:fe,class:"thread-menu-panel thread-menu-panel-fixed",style:ko(m.value),"data-open-direction":vn(ee.value.id),onClick:C[10]||(C[10]=_t(()=>{},["stop"]))},[y("button",{class:"thread-menu-item",type:"button",onClick:C[5]||(C[5]=N=>Le(ee.value.id))}," Browse files "),y("button",{class:"thread-menu-item",type:"button",onClick:C[6]||(C[6]=N=>$(ee.value.id))}," Export chat "),y("button",{class:"thread-menu-item",type:"button",onClick:C[7]||(C[7]=N=>D(ee.value.id))}," Create chat fork "),y("button",{class:"thread-menu-item",type:"button",onClick:C[8]||(C[8]=N=>ct(ee.value.id,ee.value.title))}," Rename thread "),y("button",{class:"thread-menu-item thread-menu-item-danger",type:"button",onClick:C[9]||(C[9]=N=>ar(ee.value.id,ee.value.title))}," Delete thread ")],12,YP)):Se("",!0)])),(A(),yt(xl,{to:"body"},[k.value?(A(),L("div",{key:0,class:"rename-thread-overlay",onClick:_t(Qt,["self"])},[y("div",JP,[C[20]||(C[20]=y("h3",{class:"rename-thread-title"},"Rename thread",-1)),C[21]||(C[21]=y("p",{class:"rename-thread-subtitle"},"Make it short and recognizable.",-1)),Br(y("input",{ref_key:"renameThreadInputRef",ref:O,"onUpdate:modelValue":C[11]||(C[11]=N=>P.value=N),class:"rename-thread-input",type:"text",placeholder:"Add title...",onKeydown:[Sn(_t(mn,["prevent"]),["enter"]),Sn(_t(Qt,["prevent"]),["esc"])]},null,40,XP),[[fo,P.value]]),y("div",{class:"rename-thread-actions"},[y("button",{class:"rename-thread-button",type:"button",onClick:Qt},"Cancel"),y("button",{class:"rename-thread-button rename-thread-button-primary",type:"button",onClick:mn},"Save")])])])):Se("",!0)])),(A(),yt(xl,{to:"body"},[W.value?(A(),L("div",{key:0,class:"rename-thread-overlay",onClick:_t(Xn,["self"])},[y("div",QP,[C[22]||(C[22]=y("h3",{class:"rename-thread-title"},"Delete thread?",-1)),y("p",ZP,' This will archive the thread "'+ge(ce.value)+'". You can find it later in archived threads. ',1),y("div",{class:"rename-thread-actions"},[y("button",{class:"rename-thread-button",type:"button",onClick:Xn},"Cancel"),y("button",{class:"rename-thread-button rename-thread-button-danger",type:"button",onClick:mr},"Delete")])])])):Se("",!0)]))]))}}),n$=Et(t$,[["__scopeId","data-v-5a4523d9"]]),r$={class:"content-header"},o$={class:"content-leading"},s$={class:"content-title"},i$={class:"content-actions"},a$=An({__name:"ContentHeader",props:{title:{}},setup(e){return(t,n)=>(A(),L("header",r$,[y("div",o$,[co(t.$slots,"leading",{},void 0)]),y("h1",s$,ge(e.title),1),y("div",i$,[co(t.$slots,"actions",{},void 0)])]))}}),l$=Et(a$,[["__scopeId","data-v-66ee223c"]]),Ym=.0025,ad=3,Jm=2,c$=256;function u$(e){var ue;const t=j("idle"),n=j(typeof navigator<"u"&&!!((ue=navigator.mediaDevices)!=null&&ue.getUserMedia)),r=j(0),o=j(null);let s=null,i=null,a=[],l=null,c=null,d=null,f=null,m=[],v=!1,T=!1,k=null;function H(){k&&(k.abort(),k=null),t.value==="transcribing"&&(t.value="idle")}function P(){const V=o.value;if(!V||typeof window>"u")return;const ae=V.getContext("2d");if(!ae)return;const xe=Math.max(1,Math.floor(V.clientWidth)),Fe=Math.max(1,Math.floor(V.clientHeight||36)),_e=window.devicePixelRatio||1,Me=Math.max(1,Math.floor(xe*_e)),fe=Math.max(1,Math.floor(Fe*_e));(V.width!==Me||V.height!==fe)&&(V.width=Me,V.height=fe),ae.setTransform(_e,0,0,_e,0,0),ae.clearRect(0,0,xe,Fe);const De=Math.max(12,Math.floor(xe/(ad+Jm))),Be=m.slice(-De),Re=Math.max(0,De-Be.length),Ge=Fe/2,ot=getComputedStyle(V).color||"#000000";for(let nt=0;nt<De;nt+=1){const st=Be[nt-Re]??0,J=Math.max(.08,Math.min(1,st*18))*Ge,be=nt*(ad+Jm);ae.globalAlpha=st<=Ym?.35:1,ae.fillStyle=ot,ae.fillRect(be,Ge-J,ad,J*2)}ae.globalAlpha=1}function O(){m=[],r.value=0,P()}function W(){d&&(d.disconnect(),d.onaudioprocess=null,d=null),c&&(c.disconnect(),c=null),l&&(l.close(),l=null),f=null}function Y(V){if(typeof window>"u")return;const ae=window.webkitAudioContext,xe=window.AudioContext??ae;xe&&(W(),O(),l=new xe,c=l.createMediaStreamSource(V),d=l.createScriptProcessor(2048,1,1),f=performance.now(),d.onaudioprocess=Fe=>{const _e=Fe.inputBuffer.getChannelData(0);let Me=0;for(let fe=0;fe<_e.length;fe+=1){const De=Math.abs(_e[fe]??0);Me+=De<Ym?0:De}m.push(Me/_e.length),m.length>c$&&m.shift(),f!==null&&(r.value=Math.max(0,performance.now()-f)),P()},c.connect(d),d.connect(l.destination),P())}async function ce(){var V;if(t.value==="transcribing"&&H(),!(t.value!=="idle"||!n.value||v)){v=!0,T=!1;try{i=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1}}),a=[],s=new MediaRecorder(i),s.ondataavailable=ae=>{ae.data.size>0&&a.push(ae.data)},s.onstop=()=>{var Fe;const ae=a,xe=(s==null?void 0:s.mimeType)||((Fe=ae[0])==null?void 0:Fe.type)||"audio/webm";Ce(),he(ae,xe)},Y(i),s.start(250),t.value="recording",T&&re()}catch(ae){Ce(),t.value="idle",(V=e.onError)==null||V.call(e,ae)}finally{v=!1}}}function re(){if(v&&t.value==="idle"){T=!0;return}if(!(t.value!=="recording"||!s)&&s.state!=="inactive"){t.value="transcribing";try{s.requestData()}catch{}s.stop()}}function Z(){T=!1,H(),Ce(),t.value="idle"}async function he(V,ae){var _e,Me,fe,De,Be;if(V.length===0){(_e=e.onEmpty)==null||_e.call(e),t.value="idle";return}const xe=new Blob(V,{type:ae});t.value="transcribing";let Fe=null;try{const Re=ae.split(/[/;]/)[1]??"webm",Ge=new FormData;Ge.append("file",xe,`codex.${Re}`);const ot=((Me=e.getLanguage)==null?void 0:Me.call(e).trim())??"";ot&&ot.toLowerCase()!=="auto"&&Ge.append("language",ot),Fe=new AbortController,k=Fe;const nt=await fetch("/codex-api/transcribe",{method:"POST",body:Ge,signal:Fe.signal}),st=await nt.text();let Ke=null;try{Ke=st.trim()?JSON.parse(st):null}catch{Ke=null}if(!nt.ok){const be=(fe=Ke==null?void 0:Ke.error)==null?void 0:fe.trim(),we=st.trim();throw new Error(be||we||`Transcription failed: ${nt.status}`)}const J=((Ke==null?void 0:Ke.text)??"").trim();J.length>0?e.onTranscript(J):(De=e.onEmpty)==null||De.call(e)}catch(Re){if(Re instanceof DOMException&&Re.name==="AbortError")return;(Be=e.onError)==null||Be.call(e,Re)}finally{Fe&&k===Fe&&(k=null),t.value==="transcribing"&&(t.value="idle")}}function Ce(){W(),O(),s&&(s.ondataavailable=null,s.onstop=null,s=null),i&&(i.getTracks().forEach(V=>V.stop()),i=null),a=[]}Fs(()=>{Z()});function Ae(){if(t.value==="recording"){re();return}(t.value==="idle"||t.value==="transcribing")&&ce()}return{state:t,isSupported:n,recordingDurationMs:r,waveformCanvasRef:o,startRecording:ce,stopRecording:re,toggleRecording:Ae,cancel:Z}}const d$={},f$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function p$(e,t){return A(),L("svg",f$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m12 5l0 14m-6-8l6-6l6 6"},null,-1)])])}const h$=Et(d$,[["render",p$]]),m$={},g$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function v$(e,t){return A(),L("svg",g$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 3L4 14h6l-1 7l9-11h-6z"},null,-1)])])}const y$=Et(m$,[["render",v$]]),_$={},b$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function w$(e,t){return A(),L("svg",b$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 2m0 3a3 3 0 0 1 3-3h0a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h0a3 3 0 0 1-3-3zM5 10a7 7 0 0 0 14 0M8 21h8M12 17v4"},null,-1)])])}const S$=Et(_$,[["render",w$]]),T$={},E$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function k$(e,t){return A(),L("svg",E$,[...t[0]||(t[0]=[y("path",{stroke:"none",fill:"none",d:"M0 0h24v24H0z"},null,-1),y("path",{fill:"currentColor",d:"M8 5a3 3 0 0 0 -3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3 -3v-8a3 3 0 0 0 -3 -3h-8z"},null,-1)])])}const Xm=Et(T$,[["render",k$]]),I$=["disabled"],A$={class:"composer-dropdown-value"},C$={class:"composer-dropdown-menu"},x$={key:0,class:"composer-dropdown-search-wrap"},R$=["placeholder","onKeydown"],M$={class:"composer-dropdown-options",role:"listbox"},P$=["onClick"],$$={key:0,class:"composer-dropdown-empty"},N$={key:1,class:"composer-dropdown-add-wrap"},O$=["placeholder","onKeydown"],L$=An({__name:"ComposerDropdown",props:{modelValue:{},options:{},placeholder:{},disabled:{type:Boolean},selectedPrefixIcon:{},openDirection:{},enableSearch:{type:Boolean},searchPlaceholder:{},showAddAction:{type:Boolean},addActionLabel:{},addActionMode:{},defaultAddValue:{},addPlaceholder:{}},emits:["update:modelValue","add","add-action"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(null),a=j(!1),l=j(""),c=j(!1),d=j(""),f=se(()=>{var V;const ue=n.options.find(ae=>ae.value===n.modelValue);return ue?ue.label:((V=n.placeholder)==null?void 0:V.trim())||""}),m=se(()=>n.openDirection??"down"),v=se(()=>n.enableSearch===!0),T=se(()=>n.showAddAction===!0),k=se(()=>{var ue;return((ue=n.searchPlaceholder)==null?void 0:ue.trim())||"Quick search projects"}),H=se(()=>{var ue;return((ue=n.addActionLabel)==null?void 0:ue.trim())||"Add new project"}),P=se(()=>n.addActionMode??"inline"),O=se(()=>{var ue;return((ue=n.addPlaceholder)==null?void 0:ue.trim())||"Project name or absolute path"}),W=se(()=>{const ue=l.value.trim().toLowerCase();return ue?n.options.filter(V=>V.label.toLowerCase().includes(ue)||V.value.toLowerCase().includes(ue)):n.options});function Y(){n.disabled||(a.value=!a.value)}function ce(ue){r("update:modelValue",ue),a.value=!1,l.value=""}function re(){var ue;if(P.value==="event"){r("add-action"),a.value=!1,l.value="";return}c.value=!0,d.value=((ue=n.defaultAddValue)==null?void 0:ue.trim())||"",Jt(()=>{var V;return(V=i.value)==null?void 0:V.focus()})}function Z(){if(l.value.length>0){l.value="";return}a.value=!1}function he(){const ue=d.value.trim();ue&&(r("add",ue),c.value=!1,d.value="",a.value=!1,l.value="")}function Ce(){c.value=!1,d.value="",a.value=!1,l.value=""}function Ae(ue){if(!a.value)return;const V=o.value;if(!V)return;const ae=ue.target;ae instanceof Node&&(V.contains(ae)||(a.value=!1,l.value="",c.value=!1,d.value=""))}return lt(a,ue=>{if(!ue){c.value=!1,d.value="";return}v.value&&Jt(()=>{var V;return(V=s.value)==null?void 0:V.focus()})}),as(()=>{window.addEventListener("pointerdown",Ae)}),Fs(()=>{window.removeEventListener("pointerdown",Ae)}),(ue,V)=>(A(),L("div",{ref_key:"rootRef",ref:o,class:"composer-dropdown"},[y("button",{class:"composer-dropdown-trigger",type:"button",disabled:e.disabled,onClick:Y},[e.selectedPrefixIcon?(A(),yt(Ef(e.selectedPrefixIcon),{key:0,class:"composer-dropdown-prefix-icon"})):Se("",!0),y("span",A$,ge(f.value),1),ze(ap,{class:"composer-dropdown-chevron"})],8,I$),a.value?(A(),L("div",{key:0,class:pt(["composer-dropdown-menu-wrap",{"composer-dropdown-menu-wrap-up":m.value==="up","composer-dropdown-menu-wrap-down":m.value==="down"}])},[y("div",C$,[v.value?(A(),L("div",x$,[Br(y("input",{ref_key:"searchInputRef",ref:s,"onUpdate:modelValue":V[0]||(V[0]=ae=>l.value=ae),class:"composer-dropdown-search-input",type:"text",placeholder:k.value,onKeydown:Sn(_t(Z,["prevent"]),["esc"])},null,40,R$),[[fo,l.value]])])):Se("",!0),y("ul",M$,[(A(!0),L(Xe,null,Bt(W.value,ae=>(A(),L("li",{key:ae.value},[y("button",{class:pt(["composer-dropdown-option",{"is-selected":ae.value===e.modelValue}]),type:"button",onClick:xe=>ce(ae.value)},ge(ae.label),11,P$)]))),128)),W.value.length===0?(A(),L("li",$$," No matching projects ")):Se("",!0)]),T.value?(A(),L("div",N$,[c.value?(A(),L(Xe,{key:0},[Br(y("input",{ref_key:"addInputRef",ref:i,"onUpdate:modelValue":V[1]||(V[1]=ae=>d.value=ae),class:"composer-dropdown-add-input",type:"text",placeholder:O.value,onKeydown:[Sn(_t(he,["prevent"]),["enter"]),Sn(_t(Ce,["prevent"]),["esc"])]},null,40,O$),[[fo,d.value]]),y("div",{class:"composer-dropdown-add-actions"},[y("button",{type:"button",class:"composer-dropdown-add-btn",onClick:he},"Open"),y("button",{type:"button",class:"composer-dropdown-add-btn",onClick:Ce},"Cancel")])],64)):(A(),L("button",{key:1,type:"button",class:"composer-dropdown-add",onClick:re},ge(H.value),1))])):Se("",!0)])],2)):Se("",!0)],512))}}),xs=Et(L$,[["__scopeId","data-v-ab273eac"]]),D$=["disabled"],j$={class:"search-dropdown-value"},F$={class:"search-dropdown-search-wrap"},B$=["placeholder","onKeydown"],q$={key:0,class:"search-dropdown-list",role:"listbox"},U$=["onClick","onPointerenter"],H$={class:"search-dropdown-option-check"},W$={class:"search-dropdown-option-label"},V$={key:0,class:"search-dropdown-option-desc"},z$={key:1,class:"search-dropdown-empty"},G$=An({__name:"ComposerSearchDropdown",props:{options:{},selectedValues:{},placeholder:{},searchPlaceholder:{},disabled:{type:Boolean},openDirection:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(null),a=j(!1),l=j(""),c=j(0),d=se(()=>n.openDirection??"down"),f=se(()=>new Set(n.selectedValues)),m=se(()=>{if(n.selectedValues.length===0)return n.placeholder||"Select...";if(n.selectedValues.length===1){const Y=n.options.find(ce=>ce.value===n.selectedValues[0]);return(Y==null?void 0:Y.label)||n.placeholder||"Select..."}return`${n.selectedValues.length} selected`}),v=se(()=>{const Y=l.value.toLowerCase().trim();return Y?n.options.filter(ce=>{var re;return ce.label.toLowerCase().includes(Y)||(((re=ce.description)==null?void 0:re.toLowerCase().includes(Y))??!1)}):n.options});function T(){const Y=s.value,ce=o.value;if(!Y||!ce||window.innerWidth>=640)return;const re=ce.getBoundingClientRect();d.value==="up"?(Y.style.setProperty("bottom",`${window.innerHeight-re.top+8}px`,"important"),Y.style.setProperty("top","auto","important")):(Y.style.setProperty("top",`${re.bottom+8}px`,"important"),Y.style.setProperty("bottom","auto","important"))}function k(){n.disabled||(a.value=!a.value,a.value&&(l.value="",c.value=0,Jt(()=>{var Y;Jt(()=>{T()}),(Y=i.value)==null||Y.focus()})))}function H(Y){r("toggle",Y.value,!f.value.has(Y.value)),a.value=!1}function P(Y){v.value.length!==0&&(c.value=(c.value+Y+v.value.length)%v.value.length)}function O(){const Y=v.value[c.value];Y&&H(Y)}function W(Y){if(!a.value)return;const ce=o.value;if(!ce)return;const re=Y.target;re instanceof Node&&(ce.contains(re)||(a.value=!1))}return lt(l,()=>{c.value=0}),as(()=>window.addEventListener("pointerdown",W)),Fs(()=>window.removeEventListener("pointerdown",W)),(Y,ce)=>(A(),L("div",{ref_key:"rootRef",ref:o,class:"search-dropdown"},[y("button",{class:"search-dropdown-trigger",type:"button",disabled:e.disabled,onClick:k},[y("span",j$,ge(m.value),1),ze(ap,{class:"search-dropdown-chevron"})],8,D$),a.value?(A(),L("div",{key:0,ref_key:"menuRef",ref:s,class:pt(["search-dropdown-menu-wrap",{"search-dropdown-menu-wrap-up":d.value==="up","search-dropdown-menu-wrap-down":d.value==="down"}])},[y("div",F$,[Br(y("input",{ref_key:"searchRef",ref:i,"onUpdate:modelValue":ce[0]||(ce[0]=re=>l.value=re),class:"search-dropdown-search",type:"text",placeholder:e.searchPlaceholder,onKeydown:[ce[1]||(ce[1]=Sn(_t(re=>a.value=!1,["prevent"]),["escape"])),Sn(_t(O,["prevent"]),["enter"]),ce[2]||(ce[2]=Sn(_t(re=>P(1),["prevent"]),["arrow-down"])),ce[3]||(ce[3]=Sn(_t(re=>P(-1),["prevent"]),["arrow-up"]))]},null,40,B$),[[fo,l.value]])]),v.value.length>0?(A(),L("ul",q$,[(A(!0),L(Xe,null,Bt(v.value,(re,Z)=>(A(),L("li",{key:re.value},[y("button",{class:pt(["search-dropdown-option",{"is-selected":f.value.has(re.value),"is-highlighted":Z===c.value}]),type:"button",onClick:he=>H(re),onPointerenter:he=>c.value=Z},[y("span",H$,ge(f.value.has(re.value)?"✓":""),1),y("span",W$,ge(re.label),1),re.description?(A(),L("span",V$,ge(re.description),1)):Se("",!0)],42,U$)]))),128))])):(A(),L("div",z$,"No results"))],2)):Se("",!0)],512))}}),K$=Et(G$,[["__scopeId","data-v-3147b20f"]]),Y$={class:"skill-picker-header"},J$=["onKeydown"],X$={key:0,class:"skill-picker-list",role:"listbox"},Q$=["onClick","onPointerenter"],Z$={class:"skill-picker-name"},eN={key:0,class:"skill-picker-desc"},tN={key:1,class:"skill-picker-empty"},nN=An({__name:"ComposerSkillPicker",props:{skills:{},visible:{type:Boolean},anchorBottom:{},anchorLeft:{}},emits:["select","close"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(""),a=j(0),l=se(()=>{const m=i.value.toLowerCase().trim();return m?n.skills.filter(v=>v.name.toLowerCase().includes(m)||v.description.toLowerCase().includes(m)):n.skills}),c=se(()=>{const m={};return n.anchorBottom!=null&&(m.bottom=`${n.anchorBottom}px`),n.anchorLeft!=null&&(m.left=`${n.anchorLeft}px`),m});function d(m){l.value.length!==0&&(a.value=(a.value+m+l.value.length)%l.value.length)}function f(){const m=l.value[a.value];m&&r("select",m)}return lt(()=>n.visible,m=>{m&&(i.value="",a.value=0,Jt(()=>{var v;return(v=s.value)==null?void 0:v.focus()}))}),lt(i,()=>{a.value=0}),(m,v)=>e.visible?(A(),L("div",{key:0,ref_key:"rootRef",ref:o,class:"skill-picker",style:ko(c.value)},[y("div",Y$,[Br(y("input",{ref_key:"searchInputRef",ref:s,"onUpdate:modelValue":v[0]||(v[0]=T=>i.value=T),class:"skill-picker-search",type:"text",placeholder:"Search skills...",onKeydown:[v[1]||(v[1]=Sn(_t(T=>m.$emit("close"),["prevent"]),["escape"])),Sn(_t(f,["prevent"]),["enter"]),v[2]||(v[2]=Sn(_t(T=>d(1),["prevent"]),["arrow-down"])),v[3]||(v[3]=Sn(_t(T=>d(-1),["prevent"]),["arrow-up"]))]},null,40,J$),[[fo,i.value]])]),l.value.length>0?(A(),L("ul",X$,[(A(!0),L(Xe,null,Bt(l.value,(T,k)=>(A(),L("li",{key:T.path},[y("button",{class:pt(["skill-picker-item",{"is-highlighted":k===a.value}]),type:"button",onClick:H=>m.$emit("select",T),onPointerenter:H=>a.value=k},[y("span",Z$,ge(T.name),1),T.description?(A(),L("span",eN,ge(T.description),1)):Se("",!0)],42,Q$)]))),128))])):(A(),L("div",tN,"No skills found"))],4)):Se("",!0)}}),rN=Et(nN,[["__scopeId","data-v-ff3fb7dc"]]),oN={key:0,class:"thread-composer-dictation-error"},sN={key:0,class:"thread-composer-attachments"},iN=["src","alt"],aN=["aria-label","disabled","onClick"],lN={key:1,class:"thread-composer-folder-chips"},cN=["title"],uN={class:"thread-composer-folder-chip-meta"},dN=["aria-label","disabled","onClick"],fN={key:2,class:"thread-composer-file-chips"},pN=["title"],hN=["aria-label","disabled","onClick"],mN={key:3,class:"thread-composer-skill-chips"},gN={class:"thread-composer-skill-chip-name"},vN=["aria-label","onClick"],yN={key:0,class:"thread-composer-drop-overlay","aria-hidden":"true"},_N={key:1,class:"thread-composer-file-mentions"},bN=["onMousedown"],wN={key:1,class:"thread-composer-file-mention-icon-markdown"},SN={class:"thread-composer-file-mention-text"},TN={class:"thread-composer-file-mention-name"},EN={key:0,class:"thread-composer-file-mention-dir"},kN={key:1,class:"thread-composer-file-mention-empty"},IN=["placeholder","disabled"],AN=["disabled"],CN={key:0,class:"thread-composer-attach-menu"},xN=["disabled"],RN=["disabled"],MN=["disabled"],PN={class:"thread-composer-attach-mode"},$N={class:"thread-composer-attach-mode-buttons"},NN=["disabled"],ON=["disabled"],LN=["aria-checked","aria-label","disabled"],DN={class:"thread-composer-attach-setting-copy"},jN={class:"thread-composer-attach-setting-description"},FN=["aria-checked","aria-label","disabled"],BN={key:0,class:"thread-composer-dictation-waveform-wrap","aria-hidden":"true"},qN={key:1,class:"thread-composer-dictation-timer"},UN=["aria-label","title","disabled"],HN=["disabled"],WN=["aria-label","title","disabled"],VN=["disabled"],zN=["disabled"],GN=["disabled"],KN=2e3,YN="codex-web-local.thread-draft.v1.",JN=An({__name:"ThreadComposer",props:{activeThreadId:{},cwd:{},collaborationModes:{},selectedCollaborationMode:{},models:{},selectedModel:{},selectedReasoningEffort:{},selectedSpeedMode:{},skills:{},threadTokenUsage:{},codexQuota:{},isTurnInProgress:{type:Boolean},isInterruptingTurn:{type:Boolean},isUpdatingSpeedMode:{type:Boolean},disabled:{type:Boolean},hasQueueAbove:{type:Boolean},sendWithEnter:{type:Boolean},inProgressSubmitMode:{},dictationClickToToggle:{type:Boolean},dictationAutoSend:{type:Boolean},dictationLanguage:{}},emits:["submit","interrupt","update:selected-collaboration-mode","update:selected-model","update:selected-reasoning-effort","update:selected-speed-mode"],setup(e,{expose:t,emit:n}){const r=e,o=n,s=j(""),i=j([]),a=j([]),l=j([]),c=j([]),d=j(""),f=j(0),m=j(null),v=j(!1),{state:T,isSupported:k,recordingDurationMs:H,waveformCanvasRef:P,startRecording:O,stopRecording:W,toggleRecording:Y,cancel:ce}=u$({getLanguage:()=>r.dictationLanguage??"auto",onTranscript:w=>{if(s.value=s.value?`${s.value}
74
+ `}async function qR(e,t,n){var l;const r=(t==null?void 0:t.trim())??"";if(r)return{model:r,reasoningEffort:e==="plan"?Qu(n):Zu(n)};let o=null;try{o=await U_()}catch{o=null}const s=(o==null?void 0:o.model.trim())??"";if(s)return{model:s,reasoningEffort:e==="plan"?Qu(n??(o==null?void 0:o.reasoningEffort)):Zu(n??(o==null?void 0:o.reasoningEffort))};let i=[];try{i=await q_()}catch{i=[]}const a=((l=i.find(c=>c.trim().length>0))==null?void 0:l.trim())??"";if(a)return{model:a,reasoningEffort:e==="plan"?Qu(n??(o==null?void 0:o.reasoningEffort)):Zu(n??(o==null?void 0:o.reasoningEffort))};throw new Error(`${e==="plan"?"Plan":"Default"} mode requires an available model. Wait for models to load and try again.`)}async function nd(e,t,n=[],r,o,s,i=[],a){var l;try{const c=(r==null?void 0:r.trim())??"",f=[{type:"text",text:BR(t,i)}];for(const k of n){const H=k.trim();H&&f.push({type:"image",url:H,image_url:H})}if(s)for(const k of s)f.push({type:"skill",name:k.name,path:k.path});const m=i.map(k=>({label:k.label,path:k.path,fsPath:k.fsPath})),v={threadId:e,input:f};if(m.length>0&&(v.attachments=m),c&&(v.model=c),typeof o=="string"&&o.length>0&&(v.effort=o),a){const k=await qR(a,c,o);v.collaborationMode={mode:a,settings:{model:k.model,reasoning_effort:k.reasoningEffort,developer_instructions:null}}}const T=await sn("turn/start",v);return typeof((l=T==null?void 0:T.turn)==null?void 0:l.id)=="string"?T.turn.id.trim():""}catch(c){throw Do(c,`Failed to start turn for thread ${e}`,"turn/start")}}async function UR(e,t){const n=e.trim(),r=(t==null?void 0:t.trim())||"";if(n)try{if(!r)throw new Error("turn/interrupt requires turnId");await sn("turn/interrupt",{threadId:n,turnId:r})}catch(o){throw Do(o,`Failed to interrupt turn for thread ${n}`,"turn/interrupt")}}async function HR(e){const t=e==="fast"?"fast":"standard";await sn("config/batchWrite",{edits:[{keyPath:"features.fast_mode",value:!0,mergeStrategy:"upsert"},{keyPath:"service_tier",value:t==="fast"?"fast":null,mergeStrategy:t==="fast"?"upsert":"replace"}],filePath:null,expectedVersion:null})}async function q_(){const e=await sn("model/list",{}),t=[];for(const n of e.data){const r=n.id||n.model;!r||t.includes(r)||t.push(r)}try{const n=await fetch("/codex-api/provider-models",{signal:AbortSignal.timeout(pR)});let r=null;try{r=await n.json()}catch{r=null}if(n.ok&&Array.isArray(r==null?void 0:r.data))for(const o of r.data){if(typeof o!="string")continue;const s=o.trim();!s||t.includes(s)||t.push(s)}}catch{}return t}async function U_(){const e=await sn("config/read",{}),t=e.config.model??"",n=vR(e.config.model_reasoning_effort),r=yR(e.config.service_tier);return{model:t,reasoningEffort:n,speedMode:r}}function WR(e){const t=e.trim();return t?t.replace(/[_-]+/g," ").replace(/\b\w/g,n=>n.toUpperCase()):""}async function VR(){try{const e=await sn("collaborationMode/list",{}),t=new Set,n=[];for(const r of e.data){const o=r.mode;o!=="default"&&o!=="plan"||t.has(o)||(t.add(o),n.push({value:o,label:WR(r.name||o)||(o==="plan"?"Plan":"Default")}))}if(n.length>0){for(const r of Lm)t.has(r.value)||n.push(r);return n.sort((r,o)=>r.value===o.value?0:r.value==="default"?-1:1)}}catch{}return Lm}function zR(e){const t=e&&typeof e=="object"&&!Array.isArray(e)?e:{},n=s=>{if(!Array.isArray(s))return[];const i=[];for(const a of s)typeof a=="string"&&a.length>0&&!i.includes(a)&&i.push(a);return i},r=t.labels,o={};if(r&&typeof r=="object"&&!Array.isArray(r))for(const[s,i]of Object.entries(r)){const a=typeof s=="string"?nn(s):"";a.length>0&&typeof i=="string"&&(o[a]=i)}return{order:n(t.order).map(s=>nn(s)),labels:o,active:n(t.active).map(s=>nn(s))}}async function ks(){const e=await fetch("/codex-api/workspace-roots-state"),t=await e.json();if(!e.ok)throw new Error("Failed to load workspace roots state");const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{};return zR(n.data)}async function GR(e,t){const n=(t??"").trim(),r=await fetch("/codex-api/worktree/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sourceCwd:e,baseBranch:n||void 0})}),o=await r.json();if(!r.ok||!o.data)throw new Error(o.error||"Failed to create worktree");return{...o.data,cwd:nn(o.data.cwd),gitRoot:nn(o.data.gitRoot)}}async function KR(e){const t=e.trim();if(!t)return[];const n=new URLSearchParams({sourceCwd:t}),r=await fetch(`/codex-api/worktree/branches?${n.toString()}`),o=await r.json();if(!r.ok)throw new Error(o.error||"Failed to load branches");const s=Array.isArray(o.data)?o.data:[],i=[],a=new Set;for(const l of s){if(!l||typeof l!="object"||Array.isArray(l))continue;const c=l,d=typeof c.value=="string"?c.value.trim():"",f=typeof c.label=="string"?c.label.trim():"";!d||a.has(d)||(a.add(d),i.push({value:d,label:f||d}))}return i}async function YR(e){const t=e.trim();if(!t)return{currentBranch:null,options:[]};const n=new URLSearchParams({cwd:t}),r=await fetch(`/codex-api/git/branches?${n.toString()}`),o=await r.json();if(!r.ok)throw new Error(o.error||"Failed to load Git branch state");const s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{},i=s.currentBranch,a=typeof i=="string"&&i.trim()?i.trim():null,l=Array.isArray(s.options)?s.options:[],c=[],d=new Set;for(const f of l){if(!f||typeof f!="object"||Array.isArray(f))continue;const m=f,v=typeof m.value=="string"?m.value.trim():"",T=typeof m.label=="string"?m.label.trim():"";!v||d.has(v)||(d.add(v),c.push({value:v,label:T||v}))}return a&&!d.has(a)&&c.unshift({value:a,label:a}),{currentBranch:a,options:c}}async function JR(e,t){var s;const n=await fetch("/codex-api/git/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.trim(),branch:t.trim()})}),r=await n.json();if(!n.ok)throw new Error(r.error||"Failed to switch branch");const o=(s=r.data)==null?void 0:s.currentBranch;return typeof o=="string"&&o.trim()?o.trim():null}async function l2(e,t,n,r){const o=new URLSearchParams({cwd:e,scope:t,workspaceView:n});r&&r.trim()&&o.set("baseBranch",r.trim());const s=await fetch(`/codex-api/review/snapshot?${o.toString()}`),i=await s.json();if(!s.ok)throw new Error(Jn(i,"Failed to load review snapshot"));return B_(i)}async function c2(e){const t=await fetch("/codex-api/review/action",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to apply review action"));return B_(n)}async function u2(e){const t=await fetch("/codex-api/review/git/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})}),n=await t.json();if(!t.ok)throw new Error(Jn(n,"Failed to initialize Git"))}async function d2(e,t,n,r){const o=t==="baseBranch"?{type:"baseBranch",branch:(r??"").trim()}:{type:"uncommittedChanges"};if(o.type==="baseBranch"&&!o.branch)throw new Error("Base branch is unavailable");await sn("review/start",{threadId:e,target:o,delivery:"inline"})}async function Wm(){const e=await fetch("/codex-api/home-directory"),t=await e.json();if(!e.ok)throw new Error("Failed to load home directory");const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{},r=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{};return typeof r.path=="string"?r.path.trim():""}async function XR(e,t){const n=new URLSearchParams({path:e});(t==null?void 0:t.showHidden)===!0&&n.set("showHidden","1");const r=await fetch(`/codex-local-directories?${n.toString()}`),o=await H_(r);if(!r.ok){const l=Jn(o,"Failed to load local directories");throw new Error(l)}const s=o&&typeof o=="object"&&!Array.isArray(o)?o:{},i=s.data&&typeof s.data=="object"&&!Array.isArray(s.data)?s.data:{},a=Array.isArray(i.entries)?i.entries:[];return{path:typeof i.path=="string"?nn(i.path):"",parentPath:typeof i.parentPath=="string"?nn(i.parentPath):"",entries:a.flatMap(l=>{if(!l||typeof l!="object"||Array.isArray(l))return[];const c=l,d=typeof c.name=="string"?c.name.trim():"",f=typeof c.path=="string"?nn(c.path):"";return d&&f?[{name:d,path:f}]:[]})}}async function H_(e){const t=await e.text();if(!t)return{};try{return JSON.parse(t)}catch{throw new Error(`Expected JSON response from ${e.url||"request"}`)}}async function rd(e){if(!(await fetch("/codex-api/workspace-roots-state",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok)throw new Error("Failed to save workspace roots state")}async function Vm(e,t){const n=await fetch("/codex-api/project-root",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,createIfMissing:(t==null?void 0:t.createIfMissing)===!0,label:(t==null?void 0:t.label)??""})}),r=await n.json();if(!n.ok){const a=Jn(r,"Failed to open project root");throw new Error(a)}const o=r&&typeof r=="object"&&!Array.isArray(r)?r:{},s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{};return typeof s.path=="string"?nn(s.path):""}async function QR(e){const t=await fetch("/codex-api/local-directory",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})}),n=await H_(t);if(!t.ok){const s=Jn(n,"Failed to create local directory");throw new Error(s)}const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},o=r.data&&typeof r.data=="object"&&!Array.isArray(r.data)?r.data:{};return typeof o.path=="string"?nn(o.path):""}async function ZR(e){const t=new URLSearchParams({basePath:e}),n=await fetch(`/codex-api/project-root-suggestion?${t.toString()}`),r=await n.json();if(!n.ok){const i=Jn(r,"Failed to suggest project name");throw new Error(i)}const o=r&&typeof r=="object"&&!Array.isArray(r)?r:{},s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:{};return{name:typeof s.name=="string"?s.name.trim():"",path:typeof s.path=="string"?nn(s.path):""}}async function eM(e,t,n=20){const r=e.trim();if(!r)return[];const o=await fetch("/codex-api/composer-file-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,query:t.trim(),limit:n})}),s=await o.json();if(!o.ok){const c=Jn(s,"Failed to search files");throw new Error(c)}const i=s&&typeof s=="object"&&!Array.isArray(s)?s:{},a=Array.isArray(i.data)?i.data:[],l=[];for(const c of a){if(!c||typeof c!="object"||Array.isArray(c))continue;const f=c.path,m=typeof f=="string"?f.trim():"";m&&l.push({path:m})}return l}async function tM(e,t=200){const n=await fetch("/codex-api/thread-search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,limit:t})}),r=await n.json();if(!n.ok)throw new Error(r.error||"Failed to search threads");return r.data??{threadIds:[],indexedThreadCount:0}}async function nM(e){const t=await fetch("/codex-api/telegram/configure-bot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({botToken:e})}),n=await t.json();if(!t.ok){const r=Jn(n,"Failed to connect Telegram bot");throw new Error(r)}}async function rM(){const e=await fetch("/codex-api/telegram/status"),t=await e.json();if(!e.ok){const o=Jn(t,"Failed to load Telegram status");throw new Error(o)}const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{},r=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:{};return{configured:r.configured===!0,active:r.active===!0,mappedChats:typeof r.mappedChats=="number"?r.mappedChats:0,mappedThreads:typeof r.mappedThreads=="number"?r.mappedThreads:0,lastError:typeof r.lastError=="string"?r.lastError:""}}function oM(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),r=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${r}`}async function sM(e,t=6){const n=Math.min(10,Math.max(1,Math.floor(t)));if(e.startsWith("search-")){const d=new Date;e==="search-daily"?d.setUTCDate(d.getUTCDate()-1):e==="search-weekly"?d.setUTCDate(d.getUTCDate()-7):d.setUTCDate(d.getUTCDate()-30);const f=new URLSearchParams({q:`created:>=${oM(d)}`,sort:"stars",order:"desc",per_page:String(n)}),m=await fetch(`https://api.github.com/search/repositories?${f.toString()}`,{headers:{Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}});if(!m.ok)throw new Error(`Failed to fetch GitHub search projects (${m.status})`);const v=await m.json(),T=v&&typeof v=="object"&&!Array.isArray(v)?v:{},k=Array.isArray(T.items)?T.items:[],H=[];for(const P of k){if(!P||typeof P!="object"||Array.isArray(P))continue;const O=P,W=typeof O.id=="number"?O.id:0,Y=typeof O.full_name=="string"?O.full_name.trim():"",ce=typeof O.html_url=="string"?O.html_url.trim():"";if(!W||!Y||!ce)continue;const[re="",Z=""]=Y.split("/",2);H.push({id:W,fullName:Y,owner:re,repo:Z,url:ce,description:Dm(Y,typeof O.description=="string"?O.description:""),language:typeof O.language=="string"?O.language.trim():"",stars:typeof O.stargazers_count=="number"?O.stargazers_count:0})}return H}const r=e==="trending-daily"?"daily":e==="trending-weekly"?"weekly":"monthly",o=new URLSearchParams({since:r,limit:String(n)}),s=await fetch(`/codex-api/github-trending?${o.toString()}`),i=await s.json();if(!s.ok){const d=Jn(i,"Failed to fetch GitHub trending projects");throw new Error(d)}const a=i&&typeof i=="object"&&!Array.isArray(i)?i:{},l=Array.isArray(a.data)?a.data:[],c=[];for(const d of l){if(!d||typeof d!="object"||Array.isArray(d))continue;const f=d,m=typeof f.id=="number"?f.id:0,v=typeof f.fullName=="string"?f.fullName.trim():"",T=typeof f.url=="string"?f.url.trim():"";if(!m||!v||!T)continue;const[k="",H=""]=v.split("/",2);c.push({id:m,fullName:v,owner:k,repo:H,url:T,description:Dm(v,typeof f.description=="string"?f.description:""),language:typeof f.language=="string"?f.language.trim():"",stars:typeof f.stars=="number"?f.stars:0})}return c}function Jn(e,t){const n=e&&typeof e=="object"&&!Array.isArray(e)?e:{},r=n.message;if(typeof r=="string"&&r.trim().length>0)return r;const o=n.error;return typeof o=="string"&&o.trim().length>0?o:t}async function iM(){try{const e=await fetch("/codex-api/thread-titles");return e.ok?(await e.json()).data??{titles:{},order:[]}:{titles:{},order:[]}}catch{return{titles:{},order:[]}}}async function od(e,t){try{await fetch("/codex-api/thread-titles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,title:t})})}catch{}}async function aM(){try{const e=await fetch("/codex-api/thread-pins");return e.ok?(await e.json()).data??{threadIds:[]}:{threadIds:[]}}catch{return{threadIds:[]}}}async function lM(e){try{await fetch("/codex-api/thread-pins",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadIds:e})})}catch{}}async function cM(e,t){var n;try{return((n=(await sn("generate-thread-title",{prompt:e,cwd:t})).title)==null?void 0:n.trim())??""}catch{return""}}async function uM(e){try{const t={};e&&e.length>0&&(t.cwds=e);const n=await sn("skills/list",t),r=[],o=new Set;for(const s of n.data)for(const i of s.skills)!i.name||o.has(i.path)||(o.add(i.path),r.push({name:i.name,description:i.shortDescription||i.description||"",path:i.path,scope:i.scope,enabled:i.enabled}));return r}catch{return[]}}const dM=6e4;async function sd(e){const t=new AbortController,n=setTimeout(()=>t.abort(),dM);try{const r=new FormData;r.append("file",e);const o=await fetch("/codex-api/upload-file",{method:"POST",body:r,signal:t.signal});return o.ok?(await o.json()).path??null:null}catch{return null}finally{clearTimeout(n)}}const fM={},pM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function hM(e,t){return A(),L("svg",pM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m6 9l6 6l6-6"},null,-1)])])}const ap=Et(fM,[["render",hM]]),mM={},gM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function vM(e,t){return A(),L("svg",gM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 6l6 6l-6 6"},null,-1)])])}const yM=Et(mM,[["render",vM]]),_M={},bM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function wM(e,t){return A(),L("svg",bM,[...t[0]||(t[0]=[y("path",{fill:"currentColor",d:"M6 12a2 2 0 1 0 0-4a2 2 0 0 0 0 4m6 0a2 2 0 1 0 0-4a2 2 0 0 0 0 4m6 0a2 2 0 1 0 0-4a2 2 0 0 0 0 4"},null,-1)])])}const Ki=Et(_M,[["render",wM]]),SM={},TM={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function EM(e,t){return A(),L("svg",TM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 20h4L18.5 9.5a2.828 2.828 0 1 0-4-4L4 16zm9.5-13.5l4 4"},null,-1)])])}const ac=Et(SM,[["render",EM]]),kM={},IM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function AM(e,t){return A(),L("svg",IM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2"},null,-1)])])}const lp=Et(kM,[["render",AM]]),CM={},xM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function RM(e,t){return A(),L("svg",xM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m5 19l2.757-7.351A1 1 0 0 1 8.693 11H21a1 1 0 0 1 .986 1.164l-.996 5.211A2 2 0 0 1 19.026 19za2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4l3 3h7a2 2 0 0 1 2 2v2"},null,-1)])])}const MM=Et(CM,[["render",RM]]),PM={},$M={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function NM(e,t){return A(),L("svg",$M,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 18v-6m0 0a4 4 0 0 1 4-4h2m-6 4a4 4 0 0 0-4-4H6m0-4a2 2 0 1 0 0 4a2 2 0 0 0 0-4m12 0a2 2 0 1 0 0 4a2 2 0 0 0 0-4m-6 14a2 2 0 1 0 0 4a2 2 0 0 0 0-4"},null,-1)])])}const Ul=Et(PM,[["render",NM]]),OM={},LM={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function DM(e,t){return A(),L("svg",LM,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m15 4.5l-4 4L7 10l-1.5 1.5l7 7L14 17l1.5-4l4-4M9 15l-4.5 4.5M14.5 4L20 9.5"},null,-1)])])}const id=Et(OM,[["render",DM]]),jM={key:0,class:"sidebar-menu-row-left"},FM={class:"sidebar-menu-row-main"},BM={key:1,class:"sidebar-menu-row-right"},qM={key:0,class:"sidebar-menu-row-right-default"},UM={key:1,class:"sidebar-menu-row-right-hover"},HM=An({inheritAttrs:!1,__name:"SidebarMenuRow",props:{as:{default:"div"},forceRightHover:{type:Boolean,default:!1}},setup(e){const t=e,n=qw(),r=se(()=>!!n.left),o=se(()=>!!n.right),s=se(()=>!!n["right-hover"]),i=se(()=>o.value||s.value);return(a,l)=>(A(),yt(Ef(t.as),kv({class:"sidebar-menu-row","data-has-left":r.value,"data-has-right":i.value,"data-has-right-hover":s.value,"data-force-right-hover":t.forceRightHover},a.$attrs),{default:kt(()=>[r.value?(A(),L("span",jM,[co(a.$slots,"left",{},void 0,!0)])):Se("",!0),y("span",FM,[co(a.$slots,"default",{},void 0,!0)]),i.value?(A(),L("span",BM,[o.value?(A(),L("span",qM,[co(a.$slots,"right",{},void 0,!0)])):Se("",!0),s.value?(A(),L("span",UM,[co(a.$slots,"right-hover",{},void 0,!0)])):Se("",!0)])):Se("",!0)]),_:3},16,["data-has-left","data-has-right","data-has-right-hover","data-force-right-hover"]))}}),Ts=Et(HM,[["__scopeId","data-v-36239f39"]]),WM={class:"thread-tree-root"},VM={key:0,class:"pinned-section"},zM={class:"thread-list"},GM=["data-menu-open"],KM={class:"thread-left-stack"},YM=["data-state"],JM=["onClick"],XM=["onClick"],QM={class:"thread-row-title-wrap"},ZM={class:"thread-row-title-line"},eP={class:"thread-row-title"},tP=["data-state"],nP={class:"thread-row-time"},rP=["onClick"],oP=["aria-expanded"],sP=["data-active"],iP={key:0},aP=["data-active"],lP={key:0},cP={key:1,class:"thread-tree-no-results"},uP={key:2,class:"thread-tree-loading"},dP={key:3,class:"thread-list thread-list-global"},fP=["data-menu-open"],pP={class:"thread-left-stack"},hP=["data-state"],mP=["onClick"],gP=["onClick"],vP={class:"thread-row-title-wrap"},yP={class:"thread-row-title-line"},_P={class:"thread-row-title"},bP=["data-state"],wP={class:"thread-row-time"},SP=["onClick"],TP=["data-project-name","data-expanded","data-dragging"],EP={class:"project-icon-stack"},kP={class:"project-icon-folder"},IP={class:"project-icon-chevron"},AP=["data-dragging-handle","onMousedown"],CP={class:"project-title"},xP={class:"project-hover-controls"},RP=["onClick"],MP=["data-open-direction"],PP=["onClick"],$P=["onClick"],NP=["onInput"],OP=["aria-label","title","onClick"],LP={key:0,class:"thread-list"},DP=["data-menu-open"],jP={class:"thread-left-stack"},FP=["data-state"],BP=["onClick"],qP=["onClick"],UP={class:"thread-row-title-wrap"},HP={class:"thread-row-title-line"},WP={class:"thread-row-title"},VP=["data-state"],zP={class:"thread-row-time"},GP=["onClick"],KP=["onClick"],YP=["data-open-direction"],JP={class:"rename-thread-panel",role:"dialog","aria-modal":"true","aria-label":"Thread title"},XP=["onKeydown"],QP={class:"rename-thread-panel",role:"dialog","aria-modal":"true","aria-label":"Delete thread"},ZP={class:"rename-thread-subtitle"},e$=4,zm=6,Gm="codex-web-local.thread-view-mode.v1",Km="codex-web-local.collapsed-projects.v1",t$=An({__name:"SidebarThreadTree",props:{groups:{},projectDisplayNameById:{},selectedThreadId:{},isLoading:{type:Boolean},searchQuery:{},searchMatchedThreadIds:{}},emits:["select","archive","start-new-thread","browse-thread-files","rename-project","rename-thread","remove-project","reorder-project","export-thread","fork-thread"],setup(e,{emit:t}){const n=e,r=t,o=j({}),s=j({});let i=!1;const a=j([]),l=j(""),c=j(""),d=j({}),f=j({}),m=j({}),v=j("actions"),T=j(""),k=j(!1),H=j(""),P=j(""),O=j(null),W=j(!1),Y=j(""),ce=j(""),re=j(null),Z=j(null),he=j(null);let Ce=null,Ae=null;const ue=j(""),V=j({}),ae=new Map,xe=new Map,Fe=new Map,_e=new WeakMap,Me=j(null),fe=j(null),De=j(!1),Be=j(ot()),Re=typeof window<"u"?new ResizeObserver(S=>{for(const C of S){const N=C.target,z=_e.get(N);z&&Qn(z,N)}}):null;function Ge(){if(typeof window>"u")return{};try{const S=window.localStorage.getItem(Km);if(!S)return{};const C=JSON.parse(S);return!C||typeof C!="object"||Array.isArray(C)?{}:C}catch{return{}}}function ot(){return typeof window>"u"?"project":window.localStorage.getItem(Gm)==="chronological"?"chronological":"project"}s.value=Ge(),lt(s,S=>{typeof window>"u"||window.localStorage.setItem(Km,JSON.stringify(S))},{deep:!0}),lt(Be,S=>{typeof window>"u"||window.localStorage.setItem(Gm,S)});const nt=se(()=>n.searchQuery.trim().toLowerCase()),st=se(()=>nt.value.length>0),Ke=se(()=>n.searchMatchedThreadIds?new Set(n.searchMatchedThreadIds):null),J=se(()=>new Set(a.value));function be(S){if(!st.value)return!0;if(Ke.value)return Ke.value.has(S.id);const C=nt.value;return S.title.toLowerCase().includes(C)||S.preview.toLowerCase().includes(C)}const we=se(()=>st.value?n.groups.map(S=>({...S,threads:S.threads.filter(be)})).filter(S=>S.threads.length>0):n.groups),ve=se(()=>Be.value==="chronological"),Ze=se(()=>{const S=we.value,C=[];for(const N of S)for(const z of N.threads)J.value.has(z.id)||C.push(z);return C.sort((N,z)=>{const w=new Date(N.updatedAtIso||N.createdAtIso).getTime();return new Date(z.updatedAtIso||z.createdAtIso).getTime()-w})}),E=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads)S.set(N.id,N);return S});lt(a,S=>{i&&lM(S)}),lt(E,S=>{const C=a.value.filter(N=>S.has(N));C.length!==a.value.length&&(a.value=C)}),as(async()=>{const{threadIds:S}=await aM(),C=Array.isArray(S)?S.filter(N=>typeof N=="string").map(N=>N.trim()).filter((N,z,w)=>N.length>0&&w.indexOf(N)===z):[];C.length>0&&(a.value=C),i=!0});const I=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads)S.set(N.id,C.projectName);return S}),q=se(()=>{const S=new Map;for(const C of n.groups){const N=C.threads.filter(z=>!J.value.has(z.id));S.set(C.projectName,N)}return S}),Q=se(()=>{const S=new Map;for(const C of n.groups)for(const N of C.threads){const z=new Date(N.updatedAtIso||N.createdAtIso).getTime();S.set(N.id,z)}return S}),ee=se(()=>{const S=c.value;return S?E.value.get(S)??null:null}),te=se(()=>a.value.map(S=>E.value.get(S)??null).filter(S=>S!==null).filter(be)),ie=se(()=>{const S=he.value;if(!S||S.dropTargetIndexFull===null||n.groups.length===0)return null;const C=Math.max(0,Math.min(S.dropTargetIndexFull,n.groups.length)),N=C>S.fromIndex?C-1:C,z=Math.max(0,Math.min(N,n.groups.length-1));return z===S.fromIndex?null:z}),pe=se(()=>{const C=(st.value?we.value:n.groups).map(K=>K.projectName),N=he.value,z=ie.value;if(!N||z===null)return C;const w=[...C],[R]=w.splice(N.fromIndex,1);return R?(w.splice(z,0,R),w):C}),me=se(()=>{const S={};let C=0;for(const N of pe.value)S[N]=C,C+=Dt(N);return S}),ne=se(()=>{let S=0;for(const C of pe.value)S+=Dt(C);return{height:`${Math.max(0,S)}px`}});function Ue(S){if(Number.isNaN(S))return"n/a";const C=Math.abs(Date.now()-S);if(C<6e4)return"now";const N=Math.floor(C/6e4);if(N<60)return`${N}m`;const z=Math.floor(N/60);return z<24?`${z}h`:`${Math.floor(z/24)}d`}function ke(S){const C=Q.value.get(S.id);return Ue(typeof C=="number"?C:new Date(S.updatedAtIso||S.createdAtIso).getTime())}function ye(S){return J.value.has(S)}function $e(S){if(ye(S)){a.value=a.value.filter(C=>C!==S);return}a.value=[S,...a.value]}function x(S){r("select",S)}function $(S){r("export-thread",S),Qe()}function D(S){r("fork-thread",S),Qe()}function X(S){return`start new thread ${Ut(S)}`}function le(S){r("start-new-thread",S)}function Le(S){r("browse-thread-files",S),Qe()}function Ne(S,C){if(c.value===S){if(C){const N=C.relatedTarget,z=fe.value;if(N instanceof Node&&z&&z.contains(N))return}Qe()}}function rt(S){return c.value===S}function Qe(){c.value="",m.value={}}function wt(S){if(c.value===S){Qe();return}Ht(),De.value=!1,c.value=S,Jt(()=>{an(S)})}function Rt(S,C){S.preventDefault(),c.value=C}function ct(S,C){H.value=S,P.value=C,k.value=!0,Qe(),Jt(()=>{var N,z;(N=O.value)==null||N.focus(),(z=O.value)==null||z.select()})}function Qt(){k.value=!1,H.value="",P.value=""}function mn(){const S=H.value,C=P.value.trim();!S||!C||(r("rename-thread",{threadId:S,title:C}),Qt())}function ar(S,C){Y.value=S,ce.value=C,W.value=!0,Qe()}function Xn(){W.value=!1,Y.value="",ce.value=""}function mr(){const S=Y.value;S&&(a.value=a.value.filter(C=>C!==S),r("archive",S),Xn())}function Ut(S){return n.projectDisplayNameById[S]??S}function Zt(S){return l.value===S}function Ht(){l.value="",v.value="actions",T.value=""}function gr(){const S=!De.value;S&&(Ht(),Qe()),De.value=S}function Wt(S){Be.value=S,De.value=!1}function Yr(S){if(l.value===S){Ht();return}Qe(),De.value=!1,l.value=S,v.value="actions",T.value=Ut(S),Jt(()=>{dt(S)})}function jn(S){Qe(),l.value=S,v.value="rename",T.value=Ut(S),Jt(()=>{dt(S)})}function vr(S){r("rename-project",{projectName:S,displayName:T.value})}function Mr(S){r("remove-project",S),Ht()}function ho(S,C){if(!S.altKey||S.key!=="ArrowUp"&&S.key!=="ArrowDown")return;const N=n.groups.findIndex(R=>R.projectName===C);if(N<0)return;const z=S.key==="ArrowUp"?-1:1,w=Math.max(0,Math.min(N+z,n.groups.length-1));w!==N&&(S.preventDefault(),r("reorder-project",{projectName:C,toIndex:w}))}function Fn(S){return o.value[S]===!0}function en(S){return s.value[S]===!0}function Pr(S){o.value={...o.value,[S]:!Fn(S)}}function Cn(S){if(ue.value===S){ue.value="";return}s.value={...s.value,[S]:!en(S)}}function Dt(S){const C=V.value[S]??0,N=he.value,w=((N==null?void 0:N.projectName)===S?N.groupHeight:null)??C,R=en(S)?0:zm;return Math.max(0,w+R)}function lr(S,C){const N=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(N){xe.set(S,N);return}xe.delete(S)}function $r(S,C){const N=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(N){Fe.set(S,N);return}Fe.delete(S)}function gn(S){let C=S.parentElement;for(;C;){const N=window.getComputedStyle(C),z=N.overflowY||N.overflow;if(z==="auto"||z==="scroll"||z==="hidden"||z==="clip")return C.getBoundingClientRect();C=C.parentElement}return new DOMRect(0,0,window.innerWidth,window.innerHeight)}function Vt(S,C){const N=S.getBoundingClientRect(),z=gn(S),w=6,R=z.bottom-N.bottom,K=N.top-z.top;return R>=C+w?"down":K>R?"up":"down"}function Mt(S,C){const N=Fe.get(S);if(!N)return"down";const z=Vt(N,C);return f.value={...f.value,[S]:z},z}function vn(S){return f.value[S]??"down"}function dt(S){const C=xe.get(S);C&&(d.value={...d.value,[S]:Vt(C,112)})}function gt(S,C,N){return Math.min(Math.max(S,C),N)}function an(S){const C=Fe.get(S);if(!C)return;const N=fe.value,z=N==null?void 0:N.getBoundingClientRect(),w=(z==null?void 0:z.height)||(N==null?void 0:N.offsetHeight)||112,R=(z==null?void 0:z.width)||(N==null?void 0:N.offsetWidth)||160,K=Mt(S,w),Ee=C.getBoundingClientRect(),it=8,Ft=4,Gt=Math.max(it,window.innerWidth-R-it),Pt=gt(Ee.right-R,it,Gt),wn=gt(K==="up"?Ee.top-w-Ft:Ee.bottom+Ft,it,Math.max(it,window.innerHeight-w-it));m.value={left:`${Math.round(Pt)}px`,top:`${Math.round(wn)}px`}}function Bn(){const S=c.value;S&&an(S)}function cr(){window.addEventListener("resize",Bn),document.addEventListener("scroll",Bn,!0)}function qn(){window.removeEventListener("resize",Bn),document.removeEventListener("scroll",Bn,!0)}function xn(S){const C=l.value;if(!C)return!1;const N=xe.get(C);if(!N)return!1;if((typeof S.composedPath=="function"?S.composedPath():[]).includes(N))return!0;const w=S.target;return w instanceof Node?N.contains(w):!1}function ln(S){const C=c.value;if(!C)return!1;const N=Fe.get(C);if(!N)return!1;const z=typeof S.composedPath=="function"?S.composedPath():[];if(z.includes(N))return!0;const w=fe.value;if(w&&z.includes(w))return!0;const R=S.target;return R instanceof Node?!!(N.contains(R)||w&&w.contains(R)):!1}function Un(S){if(De.value){const C=Me.value,N=typeof S.composedPath=="function"?S.composedPath():[];!!C&&(N.includes(C)||S.target instanceof Node&&C.contains(S.target))||(De.value=!1)}l.value&&(xn(S)||Ht(),c.value&&(ln(S)||Qe()))}function ur(S){l.value&&!xn(S)&&Ht(),c.value&&!ln(S)&&Qe()}function Nr(){De.value&&(De.value=!1),l.value&&Ht(),c.value&&Qe()}function Hn(){window.addEventListener("pointerdown",Un,{capture:!0}),window.addEventListener("focusin",ur,{capture:!0}),window.addEventListener("blur",Nr)}function En(){window.removeEventListener("pointerdown",Un,{capture:!0}),window.removeEventListener("focusin",ur,{capture:!0}),window.removeEventListener("blur",Nr)}function Qn(S,C){const N=C.getBoundingClientRect().height;if(!Number.isFinite(N)||N<=0)return;const z=V.value[S];z!==void 0&&Math.abs(z-N)<.5||(V.value={...V.value,[S]:N})}function yn(S,C){const N=ae.get(S);N&&N!==C&&Re&&Re.unobserve(N);const z=C instanceof HTMLElement?C:C&&"$el"in C&&C.$el instanceof HTMLElement?C.$el:null;if(z){ae.set(S,z),_e.set(z,S),Qn(S,z),Re==null||Re.observe(z);return}N&&(Re==null||Re.unobserve(N)),ae.delete(S)}function _n(S,C){if(S.button!==0||Z.value||he.value)return;const N=n.groups.findIndex(K=>K.projectName===C),z=ae.get(C);if(N<0||!z)return;const w=z.getBoundingClientRect(),R=en(C)?0:zm;Z.value={projectName:C,fromIndex:N,startClientX:S.clientX,startClientY:S.clientY,pointerOffsetY:S.clientY-w.top,groupLeft:w.left,groupWidth:w.width,groupHeight:w.height,groupOuterHeight:w.height+R},S.preventDefault(),Rn()}function Rn(){window.addEventListener("mousemove",yr),window.addEventListener("mouseup",Jr),window.addEventListener("keydown",Nt)}function bn(){window.removeEventListener("mousemove",yr),window.removeEventListener("mouseup",Jr),window.removeEventListener("keydown",Nt)}function yr(S){Ce={clientX:S.clientX,clientY:S.clientY},Wn()}function Jr(S){qe({clientX:S.clientX,clientY:S.clientY});const C=he.value;if(C&&ie.value!==null){const N=n.groups.findIndex(z=>z.projectName===C.projectName);if(N>=0){const z=ie.value;z!==N&&r("reorder-project",{projectName:C.projectName,toIndex:z})}}on()}function Nt(S){S.key==="Escape"&&(!Z.value&&!he.value||(S.preventDefault(),on()))}function on(){Ae!==null&&(window.cancelAnimationFrame(Ae),Ae=null),Ce=null,Z.value=null,he.value=null,ue.value="",bn()}function Wn(){Ae===null&&(Ae=window.requestAnimationFrame(()=>{if(Ae=null,!Ce)return;const S=Ce;Ce=null,qe(S)}))}function qe(S){const C=Z.value;if(!he.value&&C){const N=S.clientX-C.startClientX,z=S.clientY-C.startClientY;if(Math.hypot(N,z)<e$)return;Ht(),ue.value=C.projectName,he.value={projectName:C.projectName,fromIndex:C.fromIndex,pointerOffsetY:C.pointerOffsetY,groupLeft:C.groupLeft,groupWidth:C.groupWidth,groupHeight:C.groupHeight,groupOuterHeight:C.groupOuterHeight,ghostTop:S.clientY-C.pointerOffsetY,dropTargetIndexFull:null}}he.value&&Te(S)}function Te(S){const C=he.value;if(!C)return;if(C.ghostTop=S.clientY-C.pointerOffsetY,!St(S)){C.dropTargetIndexFull=null;return}const N=S.clientY,z=re.value;if(!z){C.dropTargetIndexFull=null;return}const w=z.getBoundingClientRect(),R=new Map(n.groups.map((Ft,Gt)=>[Ft.projectName,Gt])),K=n.groups.map(Ft=>Ft.projectName).filter(Ft=>Ft!==C.projectName);let Ee=0,it=n.groups.length;for(const Ft of K){const Gt=R.get(Ft);if(Gt===void 0)continue;const Pt=Dt(Ft),wn=w.top+Ee+Pt/2;if(N<wn){it=Gt;break}Ee+=Pt}C.dropTargetIndexFull=it}function St(S){const C=re.value;if(!C)return!1;const N=C.getBoundingClientRect(),z=S.clientX>=N.left&&S.clientX<=N.right,w=S.clientY>=N.top-32&&S.clientY<=N.bottom+32;return z&&w}function Or(S){var C;return((C=he.value)==null?void 0:C.projectName)===S}function Lr(S){const C=he.value,N=me.value[S]??0,z=c.value?I.value.get(c.value)??"":"",w=l.value===S||z===S;return!C||C.projectName!==S?{position:"absolute",top:"0",left:"0",right:"0",zIndex:w?"40":"1",transform:`translate3d(0, ${N}px, 0)`,willChange:"transform",transition:"transform 180ms ease"}:{position:"fixed",top:"0",left:`${C.groupLeft}px`,width:`${C.groupWidth}px`,height:`${C.groupHeight}px`,zIndex:"50",pointerEvents:"none",transform:`translate3d(0, ${C.ghostTop}px, 0)`,willChange:"transform",transition:"transform 0ms linear"}}function Zn(S){return q.value.get(S.projectName)??[]}function er(S){if(st.value)return Zn(S);if(en(S.projectName))return[];const C=Zn(S);return Fn(S.projectName)?C:C.slice(0,10)}function Xr(S){return st.value?!1:!en(S.projectName)&&Zn(S).length>10}function _r(S){return Zn(S).length>0}function Mn(S){return!!S.pendingRequestState||S.inProgress||S.unread}function qt(S){return S.pendingRequestState==="approval"?"Awaiting approval":"Awaiting response"}function zt(S){return S.pendingRequestState==="approval"?"awaiting-approval":S.pendingRequestState==="response"?"awaiting-response":S.inProgress?"working":S.unread?"unread":"idle"}lt(()=>n.groups.map(S=>S.projectName),S=>{var w,R;const C=((w=he.value)==null?void 0:w.projectName)??((R=Z.value)==null?void 0:R.projectName)??"";C&&!n.groups.some(K=>K.projectName===C)&&on();const N=new Set(S),z=Object.fromEntries(Object.entries(V.value).filter(([K])=>N.has(K)));Object.keys(z).length!==Object.keys(V.value).length&&(V.value=z)});const br=se(()=>De.value||l.value!==""||c.value!=="");return lt(br,S=>{if(S){Hn();return}En()}),lt(c,S=>{if(!S){qn();return}cr(),Jt(()=>{an(S)})}),Fs(()=>{for(const S of ae.values())Re==null||Re.unobserve(S);ae.clear(),xe.clear(),qn(),En(),on()}),(S,C)=>(A(),L("section",WM,[te.value.length>0?(A(),L("section",VM,[y("ul",zM,[(A(!0),L(Xe,null,Bt(te.value,N=>(A(),L("li",{key:N.id,class:"thread-row-item","data-menu-open":rt(N.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":N.id===e.selectedThreadId,"data-pinned":ye(N.id),"data-menu-open":rt(N.id)?"true":"false","force-right-hover":rt(N.id),onMouseleave:z=>Ne(N.id,z),onContextmenu:z=>Rt(z,N.id)},{left:kt(()=>[y("span",KM,[Mn(N)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(N)},null,8,YM)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:z=>$e(N.id)},[ze(id,{class:"thread-icon"})],8,JM)])]),right:kt(()=>[y("span",nP,ge(ke(N)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:z=>$r(N.id,z),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(z=>wt(N.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,rP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:z=>x(N.id)},[y("span",QM,[y("span",ZM,[y("span",eP,ge(N.title),1),N.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),N.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":N.pendingRequestState},ge(qt(N)),9,tP)):Se("",!0)])])],8,XM)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,GM))),128))])])):Se("",!0),ze(Ts,{as:"header",class:"thread-tree-header-row"},{right:kt(()=>[y("div",{ref_key:"organizeMenuWrapRef",ref:Me,class:"organize-menu-wrap"},[y("button",{class:"organize-menu-trigger",type:"button","aria-expanded":De.value,"aria-label":"Organize threads",title:"Organize threads",onClick:gr},[ze(Ki,{class:"thread-icon"})],8,oP),De.value?(A(),L("div",{key:0,class:"organize-menu-panel",onClick:C[2]||(C[2]=_t(()=>{},["stop"]))},[C[14]||(C[14]=y("p",{class:"organize-menu-title"},"Organize",-1)),y("button",{class:"organize-menu-item","data-active":Be.value==="project",type:"button",onClick:C[0]||(C[0]=N=>Wt("project"))},[C[12]||(C[12]=y("span",null,"By project",-1)),Be.value==="project"?(A(),L("span",iP,"✓")):Se("",!0)],8,sP),y("button",{class:"organize-menu-item","data-active":Be.value==="chronological",type:"button",onClick:C[1]||(C[1]=N=>Wt("chronological"))},[C[13]||(C[13]=y("span",null,"Chronological list",-1)),Be.value==="chronological"?(A(),L("span",lP,"✓")):Se("",!0)],8,aP)])):Se("",!0)],512)]),default:kt(()=>[C[15]||(C[15]=y("span",{class:"thread-tree-header"},"Threads",-1))]),_:1}),st.value&&we.value.length===0?(A(),L("p",cP,"No matching threads")):e.isLoading&&e.groups.length===0?(A(),L("p",uP,"Loading threads...")):ve.value?(A(),L("ul",dP,[(A(!0),L(Xe,null,Bt(Ze.value,N=>(A(),L("li",{key:N.id,class:"thread-row-item","data-menu-open":rt(N.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":N.id===e.selectedThreadId,"data-pinned":ye(N.id),"data-menu-open":rt(N.id)?"true":"false","force-right-hover":rt(N.id),onMouseleave:z=>Ne(N.id,z),onContextmenu:z=>Rt(z,N.id)},{left:kt(()=>[y("span",pP,[Mn(N)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(N)},null,8,hP)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:z=>$e(N.id)},[ze(id,{class:"thread-icon"})],8,mP)])]),right:kt(()=>[y("span",wP,ge(ke(N)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:z=>$r(N.id,z),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(z=>wt(N.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,SP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:z=>x(N.id)},[y("span",vP,[y("span",yP,[y("span",_P,ge(N.title),1),N.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),N.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":N.pendingRequestState},ge(qt(N)),9,bP)):Se("",!0)])])],8,gP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,fP))),128))])):(A(),L("div",{key:4,ref_key:"groupsContainerRef",ref:re,class:"thread-tree-groups",style:ko(ne.value)},[(A(!0),L(Xe,null,Bt(we.value,N=>(A(),L("article",{key:N.projectName,ref_for:!0,ref:z=>yn(N.projectName,z),class:"project-group","data-project-name":N.projectName,"data-expanded":!en(N.projectName),"data-dragging":Or(N.projectName),style:ko(Lr(N.projectName))},[ze(Ts,{as:"div",class:"project-header-row",role:"button",tabindex:"0",onClick:z=>Cn(N.projectName),onKeydown:[z=>ho(z,N.projectName),Sn(_t(z=>Cn(N.projectName),["prevent"]),["enter"]),Sn(_t(z=>Cn(N.projectName),["prevent"]),["space"])]},{left:kt(()=>[y("span",EP,[y("span",kP,[en(N.projectName)?(A(),yt(lp,{key:0,class:"thread-icon"})):(A(),yt(MM,{key:1,class:"thread-icon"}))]),y("span",IP,[en(N.projectName)?(A(),yt(yM,{key:0,class:"thread-icon"})):(A(),yt(ap,{key:1,class:"thread-icon"}))])])]),right:kt(()=>[y("div",xP,[y("div",{ref_for:!0,ref:z=>lr(N.projectName,z),class:"project-menu-wrap"},[y("button",{class:"project-menu-trigger",type:"button",title:"project_menu",onClick:_t(z=>Yr(N.projectName),["stop"])},[ze(Ki,{class:"thread-icon"})],8,RP),Zt(N.projectName)?(A(),L("div",{key:0,class:"project-menu-panel","data-open-direction":d.value[N.projectName]??"down",onClick:C[4]||(C[4]=_t(()=>{},["stop"]))},[v.value==="actions"?(A(),L(Xe,{key:0},[y("button",{class:"project-menu-item",type:"button",onClick:z=>jn(N.projectName)}," Edit name ",8,PP),y("button",{class:"project-menu-item project-menu-item-danger",type:"button",onClick:z=>Mr(N.projectName)}," Remove ",8,$P)],64)):(A(),L(Xe,{key:1},[C[16]||(C[16]=y("label",{class:"project-menu-label"},"Project name",-1)),Br(y("input",{"onUpdate:modelValue":C[3]||(C[3]=z=>T.value=z),class:"project-menu-input",type:"text",onInput:z=>vr(N.projectName)},null,40,NP),[[fo,T.value]])],64))],8,MP)):Se("",!0)],512),y("button",{class:"thread-start-button",type:"button","aria-label":X(N.projectName),title:X(N.projectName),onClick:_t(z=>le(N.projectName),["stop"])},[ze(ac,{class:"thread-icon"})],8,OP)])]),default:kt(()=>[y("span",{class:"project-main-button","data-dragging-handle":Or(N.projectName),onMousedown:_t(z=>_n(z,N.projectName),["left"])},[y("span",CP,ge(Ut(N.projectName)),1)],40,AP)]),_:2},1032,["onClick","onKeydown"]),_r(N)?(A(),L("ul",LP,[(A(!0),L(Xe,null,Bt(er(N),z=>(A(),L("li",{key:z.id,class:"thread-row-item","data-menu-open":rt(z.id)?"true":"false"},[ze(Ts,{class:"thread-row","data-active":z.id===e.selectedThreadId,"data-pinned":ye(z.id),"data-menu-open":rt(z.id)?"true":"false","force-right-hover":rt(z.id),onMouseleave:w=>Ne(z.id,w),onContextmenu:w=>Rt(w,z.id)},{left:kt(()=>[y("span",jP,[Mn(z)?(A(),L("span",{key:0,class:"thread-status-indicator","data-state":zt(z)},null,8,FP)):Se("",!0),y("button",{class:"thread-pin-button",type:"button",title:"pin",onClick:w=>$e(z.id)},[ze(id,{class:"thread-icon"})],8,BP)])]),right:kt(()=>[y("span",zP,ge(ke(z)),1)]),"right-hover":kt(()=>[y("div",{ref_for:!0,ref:w=>$r(z.id,w),class:"thread-menu-wrap"},[y("button",{class:"thread-menu-trigger",type:"button",title:"thread_menu",onClick:_t(w=>wt(z.id),["stop"])},[ze(Ki,{class:"thread-icon"})],8,GP)],512)]),default:kt(()=>[y("button",{class:"thread-main-button",type:"button",onClick:w=>x(z.id)},[y("span",UP,[y("span",HP,[y("span",WP,ge(z.title),1),z.hasWorktree?(A(),yt(Ul,{key:0,class:"thread-row-worktree-icon",title:"Worktree thread"})):Se("",!0),z.pendingRequestState?(A(),L("span",{key:1,class:"thread-row-request-chip","data-state":z.pendingRequestState},ge(qt(z)),9,VP)):Se("",!0)])])],8,qP)]),_:2},1032,["data-active","data-pinned","data-menu-open","force-right-hover","onMouseleave","onContextmenu"])],8,DP))),128))])):(A(),yt(Ts,{key:1,as:"p",class:"project-empty-row"},{left:kt(()=>[...C[17]||(C[17]=[y("span",{class:"project-empty-spacer"},null,-1)])]),default:kt(()=>[C[18]||(C[18]=y("span",{class:"project-empty"},"No threads",-1))]),_:1})),Xr(N)?(A(),yt(Ts,{key:2,class:"thread-show-more-row"},{left:kt(()=>[...C[19]||(C[19]=[y("span",{class:"thread-show-more-spacer"},null,-1)])]),default:kt(()=>[y("button",{class:"thread-show-more-button",type:"button",onClick:z=>Pr(N.projectName)},ge(Fn(N.projectName)?"Show less":"Show more"),9,KP)]),_:2},1024)):Se("",!0)],12,TP))),128))],4)),(A(),yt(xl,{to:"body"},[ee.value?(A(),L("div",{key:0,ref_key:"openThreadMenuPanelRef",ref:fe,class:"thread-menu-panel thread-menu-panel-fixed",style:ko(m.value),"data-open-direction":vn(ee.value.id),onClick:C[10]||(C[10]=_t(()=>{},["stop"]))},[y("button",{class:"thread-menu-item",type:"button",onClick:C[5]||(C[5]=N=>Le(ee.value.id))}," Browse files "),y("button",{class:"thread-menu-item",type:"button",onClick:C[6]||(C[6]=N=>$(ee.value.id))}," Export chat "),y("button",{class:"thread-menu-item",type:"button",onClick:C[7]||(C[7]=N=>D(ee.value.id))}," Create chat fork "),y("button",{class:"thread-menu-item",type:"button",onClick:C[8]||(C[8]=N=>ct(ee.value.id,ee.value.title))}," Rename thread "),y("button",{class:"thread-menu-item thread-menu-item-danger",type:"button",onClick:C[9]||(C[9]=N=>ar(ee.value.id,ee.value.title))}," Delete thread ")],12,YP)):Se("",!0)])),(A(),yt(xl,{to:"body"},[k.value?(A(),L("div",{key:0,class:"rename-thread-overlay",onClick:_t(Qt,["self"])},[y("div",JP,[C[20]||(C[20]=y("h3",{class:"rename-thread-title"},"Rename thread",-1)),C[21]||(C[21]=y("p",{class:"rename-thread-subtitle"},"Make it short and recognizable.",-1)),Br(y("input",{ref_key:"renameThreadInputRef",ref:O,"onUpdate:modelValue":C[11]||(C[11]=N=>P.value=N),class:"rename-thread-input",type:"text",placeholder:"Add title...",onKeydown:[Sn(_t(mn,["prevent"]),["enter"]),Sn(_t(Qt,["prevent"]),["esc"])]},null,40,XP),[[fo,P.value]]),y("div",{class:"rename-thread-actions"},[y("button",{class:"rename-thread-button",type:"button",onClick:Qt},"Cancel"),y("button",{class:"rename-thread-button rename-thread-button-primary",type:"button",onClick:mn},"Save")])])])):Se("",!0)])),(A(),yt(xl,{to:"body"},[W.value?(A(),L("div",{key:0,class:"rename-thread-overlay",onClick:_t(Xn,["self"])},[y("div",QP,[C[22]||(C[22]=y("h3",{class:"rename-thread-title"},"Delete thread?",-1)),y("p",ZP,' This will archive the thread "'+ge(ce.value)+'". You can find it later in archived threads. ',1),y("div",{class:"rename-thread-actions"},[y("button",{class:"rename-thread-button",type:"button",onClick:Xn},"Cancel"),y("button",{class:"rename-thread-button rename-thread-button-danger",type:"button",onClick:mr},"Delete")])])])):Se("",!0)]))]))}}),n$=Et(t$,[["__scopeId","data-v-5a4523d9"]]),r$={class:"content-header"},o$={class:"content-leading"},s$={class:"content-title"},i$={class:"content-actions"},a$=An({__name:"ContentHeader",props:{title:{}},setup(e){return(t,n)=>(A(),L("header",r$,[y("div",o$,[co(t.$slots,"leading",{},void 0)]),y("h1",s$,ge(e.title),1),y("div",i$,[co(t.$slots,"actions",{},void 0)])]))}}),l$=Et(a$,[["__scopeId","data-v-66ee223c"]]),Ym=.0025,ad=3,Jm=2,c$=256;function u$(e){var ue;const t=j("idle"),n=j(typeof navigator<"u"&&!!((ue=navigator.mediaDevices)!=null&&ue.getUserMedia)),r=j(0),o=j(null);let s=null,i=null,a=[],l=null,c=null,d=null,f=null,m=[],v=!1,T=!1,k=null;function H(){k&&(k.abort(),k=null),t.value==="transcribing"&&(t.value="idle")}function P(){const V=o.value;if(!V||typeof window>"u")return;const ae=V.getContext("2d");if(!ae)return;const xe=Math.max(1,Math.floor(V.clientWidth)),Fe=Math.max(1,Math.floor(V.clientHeight||36)),_e=window.devicePixelRatio||1,Me=Math.max(1,Math.floor(xe*_e)),fe=Math.max(1,Math.floor(Fe*_e));(V.width!==Me||V.height!==fe)&&(V.width=Me,V.height=fe),ae.setTransform(_e,0,0,_e,0,0),ae.clearRect(0,0,xe,Fe);const De=Math.max(12,Math.floor(xe/(ad+Jm))),Be=m.slice(-De),Re=Math.max(0,De-Be.length),Ge=Fe/2,ot=getComputedStyle(V).color||"#000000";for(let nt=0;nt<De;nt+=1){const st=Be[nt-Re]??0,J=Math.max(.08,Math.min(1,st*18))*Ge,be=nt*(ad+Jm);ae.globalAlpha=st<=Ym?.35:1,ae.fillStyle=ot,ae.fillRect(be,Ge-J,ad,J*2)}ae.globalAlpha=1}function O(){m=[],r.value=0,P()}function W(){d&&(d.disconnect(),d.onaudioprocess=null,d=null),c&&(c.disconnect(),c=null),l&&(l.close(),l=null),f=null}function Y(V){if(typeof window>"u")return;const ae=window.webkitAudioContext,xe=window.AudioContext??ae;xe&&(W(),O(),l=new xe,c=l.createMediaStreamSource(V),d=l.createScriptProcessor(2048,1,1),f=performance.now(),d.onaudioprocess=Fe=>{const _e=Fe.inputBuffer.getChannelData(0);let Me=0;for(let fe=0;fe<_e.length;fe+=1){const De=Math.abs(_e[fe]??0);Me+=De<Ym?0:De}m.push(Me/_e.length),m.length>c$&&m.shift(),f!==null&&(r.value=Math.max(0,performance.now()-f)),P()},c.connect(d),d.connect(l.destination),P())}async function ce(){var V;if(t.value==="transcribing"&&H(),!(t.value!=="idle"||!n.value||v)){v=!0,T=!1;try{i=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1}}),a=[],s=new MediaRecorder(i),s.ondataavailable=ae=>{ae.data.size>0&&a.push(ae.data)},s.onstop=()=>{var Fe;const ae=a,xe=(s==null?void 0:s.mimeType)||((Fe=ae[0])==null?void 0:Fe.type)||"audio/webm";Ce(),he(ae,xe)},Y(i),s.start(250),t.value="recording",T&&re()}catch(ae){Ce(),t.value="idle",(V=e.onError)==null||V.call(e,ae)}finally{v=!1}}}function re(){if(v&&t.value==="idle"){T=!0;return}if(!(t.value!=="recording"||!s)&&s.state!=="inactive"){t.value="transcribing";try{s.requestData()}catch{}s.stop()}}function Z(){T=!1,H(),Ce(),t.value="idle"}async function he(V,ae){var _e,Me,fe,De,Be;if(V.length===0){(_e=e.onEmpty)==null||_e.call(e),t.value="idle";return}const xe=new Blob(V,{type:ae});t.value="transcribing";let Fe=null;try{const Re=ae.split(/[/;]/)[1]??"webm",Ge=new FormData;Ge.append("file",xe,`codex.${Re}`);const ot=((Me=e.getLanguage)==null?void 0:Me.call(e).trim())??"";ot&&ot.toLowerCase()!=="auto"&&Ge.append("language",ot),Fe=new AbortController,k=Fe;const nt=await fetch("/codex-api/transcribe",{method:"POST",body:Ge,signal:Fe.signal}),st=await nt.text();let Ke=null;try{Ke=st.trim()?JSON.parse(st):null}catch{Ke=null}if(!nt.ok){const be=(fe=Ke==null?void 0:Ke.error)==null?void 0:fe.trim(),we=st.trim();throw new Error(be||we||`Transcription failed: ${nt.status}`)}const J=((Ke==null?void 0:Ke.text)??"").trim();J.length>0?e.onTranscript(J):(De=e.onEmpty)==null||De.call(e)}catch(Re){if(Re instanceof DOMException&&Re.name==="AbortError")return;(Be=e.onError)==null||Be.call(e,Re)}finally{Fe&&k===Fe&&(k=null),t.value==="transcribing"&&(t.value="idle")}}function Ce(){W(),O(),s&&(s.ondataavailable=null,s.onstop=null,s=null),i&&(i.getTracks().forEach(V=>V.stop()),i=null),a=[]}Fs(()=>{Z()});function Ae(){if(t.value==="recording"){re();return}(t.value==="idle"||t.value==="transcribing")&&ce()}return{state:t,isSupported:n,recordingDurationMs:r,waveformCanvasRef:o,startRecording:ce,stopRecording:re,toggleRecording:Ae,cancel:Z}}const d$={},f$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function p$(e,t){return A(),L("svg",f$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m12 5l0 14m-6-8l6-6l6 6"},null,-1)])])}const h$=Et(d$,[["render",p$]]),m$={},g$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function v$(e,t){return A(),L("svg",g$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 3L4 14h6l-1 7l9-11h-6z"},null,-1)])])}const y$=Et(m$,[["render",v$]]),_$={},b$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function w$(e,t){return A(),L("svg",b$,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 2m0 3a3 3 0 0 1 3-3h0a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h0a3 3 0 0 1-3-3zM5 10a7 7 0 0 0 14 0M8 21h8M12 17v4"},null,-1)])])}const S$=Et(_$,[["render",w$]]),T$={},E$={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function k$(e,t){return A(),L("svg",E$,[...t[0]||(t[0]=[y("path",{stroke:"none",fill:"none",d:"M0 0h24v24H0z"},null,-1),y("path",{fill:"currentColor",d:"M8 5a3 3 0 0 0 -3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3 -3v-8a3 3 0 0 0 -3 -3h-8z"},null,-1)])])}const Xm=Et(T$,[["render",k$]]),I$=["disabled"],A$={class:"composer-dropdown-value"},C$={class:"composer-dropdown-menu"},x$={key:0,class:"composer-dropdown-search-wrap"},R$=["placeholder","onKeydown"],M$={class:"composer-dropdown-options",role:"listbox"},P$=["onClick"],$$={key:0,class:"composer-dropdown-empty"},N$={key:1,class:"composer-dropdown-add-wrap"},O$=["placeholder","onKeydown"],L$=An({__name:"ComposerDropdown",props:{modelValue:{},options:{},placeholder:{},disabled:{type:Boolean},selectedPrefixIcon:{},openDirection:{},enableSearch:{type:Boolean},searchPlaceholder:{},showAddAction:{type:Boolean},addActionLabel:{},addActionMode:{},defaultAddValue:{},addPlaceholder:{}},emits:["update:modelValue","add","add-action"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(null),a=j(!1),l=j(""),c=j(!1),d=j(""),f=se(()=>{var V;const ue=n.options.find(ae=>ae.value===n.modelValue);return ue?ue.label:((V=n.placeholder)==null?void 0:V.trim())||""}),m=se(()=>n.openDirection??"down"),v=se(()=>n.enableSearch===!0),T=se(()=>n.showAddAction===!0),k=se(()=>{var ue;return((ue=n.searchPlaceholder)==null?void 0:ue.trim())||"Quick search projects"}),H=se(()=>{var ue;return((ue=n.addActionLabel)==null?void 0:ue.trim())||"Add new project"}),P=se(()=>n.addActionMode??"inline"),O=se(()=>{var ue;return((ue=n.addPlaceholder)==null?void 0:ue.trim())||"Project name or absolute path"}),W=se(()=>{const ue=l.value.trim().toLowerCase();return ue?n.options.filter(V=>V.label.toLowerCase().includes(ue)||V.value.toLowerCase().includes(ue)):n.options});function Y(){n.disabled||(a.value=!a.value)}function ce(ue){r("update:modelValue",ue),a.value=!1,l.value=""}function re(){var ue;if(P.value==="event"){r("add-action"),a.value=!1,l.value="";return}c.value=!0,d.value=((ue=n.defaultAddValue)==null?void 0:ue.trim())||"",Jt(()=>{var V;return(V=i.value)==null?void 0:V.focus()})}function Z(){if(l.value.length>0){l.value="";return}a.value=!1}function he(){const ue=d.value.trim();ue&&(r("add",ue),c.value=!1,d.value="",a.value=!1,l.value="")}function Ce(){c.value=!1,d.value="",a.value=!1,l.value=""}function Ae(ue){if(!a.value)return;const V=o.value;if(!V)return;const ae=ue.target;ae instanceof Node&&(V.contains(ae)||(a.value=!1,l.value="",c.value=!1,d.value=""))}return lt(a,ue=>{if(!ue){c.value=!1,d.value="";return}v.value&&Jt(()=>{var V;return(V=s.value)==null?void 0:V.focus()})}),as(()=>{window.addEventListener("pointerdown",Ae)}),Fs(()=>{window.removeEventListener("pointerdown",Ae)}),(ue,V)=>(A(),L("div",{ref_key:"rootRef",ref:o,class:"composer-dropdown"},[y("button",{class:"composer-dropdown-trigger",type:"button",disabled:e.disabled,onClick:Y},[e.selectedPrefixIcon?(A(),yt(Ef(e.selectedPrefixIcon),{key:0,class:"composer-dropdown-prefix-icon"})):Se("",!0),y("span",A$,ge(f.value),1),ze(ap,{class:"composer-dropdown-chevron"})],8,I$),a.value?(A(),L("div",{key:0,class:pt(["composer-dropdown-menu-wrap",{"composer-dropdown-menu-wrap-up":m.value==="up","composer-dropdown-menu-wrap-down":m.value==="down"}])},[y("div",C$,[v.value?(A(),L("div",x$,[Br(y("input",{ref_key:"searchInputRef",ref:s,"onUpdate:modelValue":V[0]||(V[0]=ae=>l.value=ae),class:"composer-dropdown-search-input",type:"text",placeholder:k.value,onKeydown:Sn(_t(Z,["prevent"]),["esc"])},null,40,R$),[[fo,l.value]])])):Se("",!0),y("ul",M$,[(A(!0),L(Xe,null,Bt(W.value,ae=>(A(),L("li",{key:ae.value},[y("button",{class:pt(["composer-dropdown-option",{"is-selected":ae.value===e.modelValue}]),type:"button",onClick:xe=>ce(ae.value)},ge(ae.label),11,P$)]))),128)),W.value.length===0?(A(),L("li",$$," No matching projects ")):Se("",!0)]),T.value?(A(),L("div",N$,[c.value?(A(),L(Xe,{key:0},[Br(y("input",{ref_key:"addInputRef",ref:i,"onUpdate:modelValue":V[1]||(V[1]=ae=>d.value=ae),class:"composer-dropdown-add-input",type:"text",placeholder:O.value,onKeydown:[Sn(_t(he,["prevent"]),["enter"]),Sn(_t(Ce,["prevent"]),["esc"])]},null,40,O$),[[fo,d.value]]),y("div",{class:"composer-dropdown-add-actions"},[y("button",{type:"button",class:"composer-dropdown-add-btn",onClick:he},"Open"),y("button",{type:"button",class:"composer-dropdown-add-btn",onClick:Ce},"Cancel")])],64)):(A(),L("button",{key:1,type:"button",class:"composer-dropdown-add",onClick:re},ge(H.value),1))])):Se("",!0)])],2)):Se("",!0)],512))}}),xs=Et(L$,[["__scopeId","data-v-ab273eac"]]),D$=["disabled"],j$={class:"search-dropdown-value"},F$={class:"search-dropdown-search-wrap"},B$=["placeholder","onKeydown"],q$={key:0,class:"search-dropdown-list",role:"listbox"},U$=["onClick","onPointerenter"],H$={class:"search-dropdown-option-check"},W$={class:"search-dropdown-option-label"},V$={key:0,class:"search-dropdown-option-desc"},z$={key:1,class:"search-dropdown-empty"},G$=An({__name:"ComposerSearchDropdown",props:{options:{},selectedValues:{},placeholder:{},searchPlaceholder:{},disabled:{type:Boolean},openDirection:{}},emits:["toggle"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(null),a=j(!1),l=j(""),c=j(0),d=se(()=>n.openDirection??"down"),f=se(()=>new Set(n.selectedValues)),m=se(()=>{if(n.selectedValues.length===0)return n.placeholder||"Select...";if(n.selectedValues.length===1){const Y=n.options.find(ce=>ce.value===n.selectedValues[0]);return(Y==null?void 0:Y.label)||n.placeholder||"Select..."}return`${n.selectedValues.length} selected`}),v=se(()=>{const Y=l.value.toLowerCase().trim();return Y?n.options.filter(ce=>{var re;return ce.label.toLowerCase().includes(Y)||(((re=ce.description)==null?void 0:re.toLowerCase().includes(Y))??!1)}):n.options});function T(){const Y=s.value,ce=o.value;if(!Y||!ce||window.innerWidth>=640)return;const re=ce.getBoundingClientRect();d.value==="up"?(Y.style.setProperty("bottom",`${window.innerHeight-re.top+8}px`,"important"),Y.style.setProperty("top","auto","important")):(Y.style.setProperty("top",`${re.bottom+8}px`,"important"),Y.style.setProperty("bottom","auto","important"))}function k(){n.disabled||(a.value=!a.value,a.value&&(l.value="",c.value=0,Jt(()=>{var Y;Jt(()=>{T()}),(Y=i.value)==null||Y.focus()})))}function H(Y){r("toggle",Y.value,!f.value.has(Y.value)),a.value=!1}function P(Y){v.value.length!==0&&(c.value=(c.value+Y+v.value.length)%v.value.length)}function O(){const Y=v.value[c.value];Y&&H(Y)}function W(Y){if(!a.value)return;const ce=o.value;if(!ce)return;const re=Y.target;re instanceof Node&&(ce.contains(re)||(a.value=!1))}return lt(l,()=>{c.value=0}),as(()=>window.addEventListener("pointerdown",W)),Fs(()=>window.removeEventListener("pointerdown",W)),(Y,ce)=>(A(),L("div",{ref_key:"rootRef",ref:o,class:"search-dropdown"},[y("button",{class:"search-dropdown-trigger",type:"button",disabled:e.disabled,onClick:k},[y("span",j$,ge(m.value),1),ze(ap,{class:"search-dropdown-chevron"})],8,D$),a.value?(A(),L("div",{key:0,ref_key:"menuRef",ref:s,class:pt(["search-dropdown-menu-wrap",{"search-dropdown-menu-wrap-up":d.value==="up","search-dropdown-menu-wrap-down":d.value==="down"}])},[y("div",F$,[Br(y("input",{ref_key:"searchRef",ref:i,"onUpdate:modelValue":ce[0]||(ce[0]=re=>l.value=re),class:"search-dropdown-search",type:"text",placeholder:e.searchPlaceholder,onKeydown:[ce[1]||(ce[1]=Sn(_t(re=>a.value=!1,["prevent"]),["escape"])),Sn(_t(O,["prevent"]),["enter"]),ce[2]||(ce[2]=Sn(_t(re=>P(1),["prevent"]),["arrow-down"])),ce[3]||(ce[3]=Sn(_t(re=>P(-1),["prevent"]),["arrow-up"]))]},null,40,B$),[[fo,l.value]])]),v.value.length>0?(A(),L("ul",q$,[(A(!0),L(Xe,null,Bt(v.value,(re,Z)=>(A(),L("li",{key:re.value},[y("button",{class:pt(["search-dropdown-option",{"is-selected":f.value.has(re.value),"is-highlighted":Z===c.value}]),type:"button",onClick:he=>H(re),onPointerenter:he=>c.value=Z},[y("span",H$,ge(f.value.has(re.value)?"✓":""),1),y("span",W$,ge(re.label),1),re.description?(A(),L("span",V$,ge(re.description),1)):Se("",!0)],42,U$)]))),128))])):(A(),L("div",z$,"No results"))],2)):Se("",!0)],512))}}),K$=Et(G$,[["__scopeId","data-v-3147b20f"]]),Y$={class:"skill-picker-header"},J$=["onKeydown"],X$={key:0,class:"skill-picker-list",role:"listbox"},Q$=["onClick","onPointerenter"],Z$={class:"skill-picker-name"},eN={key:0,class:"skill-picker-desc"},tN={key:1,class:"skill-picker-empty"},nN=An({__name:"ComposerSkillPicker",props:{skills:{},visible:{type:Boolean},anchorBottom:{},anchorLeft:{}},emits:["select","close"],setup(e,{emit:t}){const n=e,r=t,o=j(null),s=j(null),i=j(""),a=j(0),l=se(()=>{const m=i.value.toLowerCase().trim();return m?n.skills.filter(v=>v.name.toLowerCase().includes(m)||v.description.toLowerCase().includes(m)):n.skills}),c=se(()=>{const m={};return n.anchorBottom!=null&&(m.bottom=`${n.anchorBottom}px`),n.anchorLeft!=null&&(m.left=`${n.anchorLeft}px`),m});function d(m){l.value.length!==0&&(a.value=(a.value+m+l.value.length)%l.value.length)}function f(){const m=l.value[a.value];m&&r("select",m)}return lt(()=>n.visible,m=>{m&&(i.value="",a.value=0,Jt(()=>{var v;return(v=s.value)==null?void 0:v.focus()}))}),lt(i,()=>{a.value=0}),(m,v)=>e.visible?(A(),L("div",{key:0,ref_key:"rootRef",ref:o,class:"skill-picker",style:ko(c.value)},[y("div",Y$,[Br(y("input",{ref_key:"searchInputRef",ref:s,"onUpdate:modelValue":v[0]||(v[0]=T=>i.value=T),class:"skill-picker-search",type:"text",placeholder:"Search skills...",onKeydown:[v[1]||(v[1]=Sn(_t(T=>m.$emit("close"),["prevent"]),["escape"])),Sn(_t(f,["prevent"]),["enter"]),v[2]||(v[2]=Sn(_t(T=>d(1),["prevent"]),["arrow-down"])),v[3]||(v[3]=Sn(_t(T=>d(-1),["prevent"]),["arrow-up"]))]},null,40,J$),[[fo,i.value]])]),l.value.length>0?(A(),L("ul",X$,[(A(!0),L(Xe,null,Bt(l.value,(T,k)=>(A(),L("li",{key:T.path},[y("button",{class:pt(["skill-picker-item",{"is-highlighted":k===a.value}]),type:"button",onClick:H=>m.$emit("select",T),onPointerenter:H=>a.value=k},[y("span",Z$,ge(T.name),1),T.description?(A(),L("span",eN,ge(T.description),1)):Se("",!0)],42,Q$)]))),128))])):(A(),L("div",tN,"No skills found"))],4)):Se("",!0)}}),rN=Et(nN,[["__scopeId","data-v-ff3fb7dc"]]),oN={key:0,class:"thread-composer-dictation-error"},sN={key:0,class:"thread-composer-attachments"},iN=["src","alt"],aN=["aria-label","disabled","onClick"],lN={key:1,class:"thread-composer-folder-chips"},cN=["title"],uN={class:"thread-composer-folder-chip-meta"},dN=["aria-label","disabled","onClick"],fN={key:2,class:"thread-composer-file-chips"},pN=["title"],hN=["aria-label","disabled","onClick"],mN={key:3,class:"thread-composer-skill-chips"},gN={class:"thread-composer-skill-chip-name"},vN=["aria-label","onClick"],yN={key:0,class:"thread-composer-drop-overlay","aria-hidden":"true"},_N={key:1,class:"thread-composer-file-mentions"},bN=["onMousedown"],wN={key:1,class:"thread-composer-file-mention-icon-markdown"},SN={class:"thread-composer-file-mention-text"},TN={class:"thread-composer-file-mention-name"},EN={key:0,class:"thread-composer-file-mention-dir"},kN={key:1,class:"thread-composer-file-mention-empty"},IN=["placeholder","disabled"],AN=["disabled"],CN={key:0,class:"thread-composer-attach-menu"},xN=["disabled"],RN=["disabled"],MN=["disabled"],PN={class:"thread-composer-attach-mode"},$N={class:"thread-composer-attach-mode-buttons"},NN=["disabled"],ON=["disabled"],LN=["aria-checked","aria-label","disabled"],DN={class:"thread-composer-attach-setting-copy"},jN={class:"thread-composer-attach-setting-description"},FN=["aria-checked","aria-label","disabled"],BN={key:0,class:"thread-composer-dictation-waveform-wrap","aria-hidden":"true"},qN={key:1,class:"thread-composer-dictation-timer"},UN=["aria-label","title","disabled"],HN=["disabled"],WN=["aria-label","title","disabled"],VN=["disabled"],zN=["disabled"],GN=["disabled"],KN=2e3,YN="codex-web-local.thread-draft.v1.",JN=An({__name:"ThreadComposer",props:{activeThreadId:{},cwd:{},collaborationModes:{},selectedCollaborationMode:{},models:{},selectedModel:{},selectedReasoningEffort:{},selectedSpeedMode:{},skills:{},threadTokenUsage:{},codexQuota:{},isTurnInProgress:{type:Boolean},isInterruptingTurn:{type:Boolean},isUpdatingSpeedMode:{type:Boolean},disabled:{type:Boolean},hasQueueAbove:{type:Boolean},sendWithEnter:{type:Boolean},inProgressSubmitMode:{},dictationClickToToggle:{type:Boolean},dictationAutoSend:{type:Boolean},dictationLanguage:{}},emits:["submit","interrupt","update:selected-collaboration-mode","update:selected-model","update:selected-reasoning-effort","update:selected-speed-mode"],setup(e,{expose:t,emit:n}){const r=e,o=n,s=j(""),i=j([]),a=j([]),l=j([]),c=j([]),d=j(""),f=j(0),m=j(null),v=j(!1),{state:T,isSupported:k,recordingDurationMs:H,waveformCanvasRef:P,startRecording:O,stopRecording:W,toggleRecording:Y,cancel:ce}=u$({getLanguage:()=>r.dictationLanguage??"auto",onTranscript:w=>{if(s.value=s.value?`${s.value}
75
75
  ${w}`:w,d.value="",r.dictationAutoSend!==!1){const R=r.isTurnInProgress?ye.value:"steer";Le(R);return}Jt(()=>{var R;return(R=Ae.value)==null?void 0:R.focus()})},onEmpty:()=>{d.value=r.dictationClickToToggle?"No speech detected. Click again after speaking.":"No speech detected. Hold the mic and speak."},onError:w=>{if(w instanceof DOMException&&w.name==="NotAllowedError"){d.value="Microphone access was denied.";return}d.value=w instanceof Error?w.message:"Dictation failed."}}),re=j(null),Z=j(null),he=j(null),Ce=j(null),Ae=j(null),{isMobile:ue}=rp(),V=j(!1),ae=j(!1),xe=j(null),Fe=j(""),_e=j([]),Me=j(!1),fe=j(0),De=j(0);let Be=0,Re=null,Ge=!1,ot=0,nt=0;const st=typeof navigator<"u"&&/Android/i.test(navigator.userAgent);let Ke="";const J=[{value:"none",label:"None"},{value:"minimal",label:"Minimal"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"Extra high"}];function be(w){return w.trim().replace(/^gpt/i,"GPT")}const we=se(()=>r.models.map(w=>({value:w,label:be(w)}))),ve=se(()=>r.selectedCollaborationMode==="plan"),Ze=se(()=>r.selectedCollaborationMode==="plan"&&r.selectedModel.trim().length===0),E=se(()=>r.skills??[]),I=se(()=>a.value.map(w=>w.path)),q=se(()=>(r.skills??[]).map(w=>({value:w.path,label:w.name,description:w.description}))),Q=se(()=>r.disabled||r.isUpdatingSpeedMode||!r.activeThreadId||Ze.value||f.value>0?!1:s.value.trim().length>0||i.value.length>0||l.value.length>0),ee=se(()=>s.value.trim().length>0||i.value.length>0||a.value.length>0||l.value.length>0||c.value.length>0),te=se(()=>{const w=new Set;for(const R of c.value)for(const K of R.filePaths)w.add(K);return l.value.filter(R=>!w.has(R.fsPath))}),ie=se(()=>r.disabled||!r.activeThreadId),pe=se(()=>r.selectedModel.trim()==="gpt-5.4"),me=se(()=>r.selectedSpeedMode==="fast"&&pe.value),ne=se(()=>ie.value||r.isUpdatingSpeedMode===!0),Ue=se(()=>r.isUpdatingSpeedMode?"Saving speed setting...":r.selectedSpeedMode==="fast"?"About 1.5x faster, with credits used at 2x":"Default speed with normal credit usage"),ke=se(()=>r.inProgressSubmitMode==="steer"?"steer":"queue"),ye=j(ke.value),$e=se(()=>T.value==="recording"),x=se(()=>T.value==="recording"?"Stop dictation":r.dictationClickToToggle?"Click to dictate":"Hold to dictate"),$=se(()=>T.value==="idle"?d.value.trim():""),D=se(()=>{const w=Math.max(0,Math.floor(H.value/1e3)),R=Math.floor(w/60),K=w%60;return`${R}:${String(K).padStart(2,"0")}`}),X=se(()=>r.activeThreadId?Ze.value?"Loading models for plan mode...":"Type a message... (@ for files, / for skills)":"Select a thread to send a message"),le=se(()=>s.value.trim().length>0||i.value.length>0||l.value.length>0);function Le(w="steer"){var K;const R=s.value.trim();if(Q.value){if(o("submit",{text:R,imageUrls:i.value.map(Ee=>Ee.url),fileAttachments:[...l.value],skills:a.value.map(Ee=>({name:Ee.name,path:Ee.path})),mode:w}),Qt(r.activeThreadId),Qe(),c.value=[],V.value=!1,ae.value=!1,St(),st||ue.value){(K=Ae.value)==null||K.blur();return}Jt(()=>{var Ee;return(Ee=Ae.value)==null?void 0:Ee.focus()})}}function Ne(w){ye.value=w}function rt(w){De.value+=1,s.value=w.text,i.value=w.imageUrls.map((R,K)=>({id:`queued-${Date.now()}-${K}-${Math.random().toString(36).slice(2,8)}`,name:`Image ${K+1}`,url:R})),a.value=w.skills.map(R=>(r.skills??[]).find(K=>K.path===R.path)??{name:R.name,description:"",path:R.path}),l.value=w.fileAttachments.map(R=>({...R})),c.value=[],d.value="",m.value=null,f.value=0,V.value=!1,ae.value=!1,St(),nt+=1}function Qe(){rt({text:"",imageUrls:[],fileAttachments:[],skills:[]})}function wt(w){return`${YN}${w}`}function Rt(w){if(typeof window>"u")return null;const R=w.trim();if(!R)return null;try{const K=window.localStorage.getItem(wt(R));if(!K)return null;const Ee=JSON.parse(K);return typeof Ee=="string"?{text:Ee,imageUrls:[],fileAttachments:[],skills:[]}:{text:typeof Ee.text=="string"?Ee.text:"",imageUrls:Array.isArray(Ee.imageUrls)?Ee.imageUrls.filter(it=>typeof it=="string"):[],fileAttachments:Array.isArray(Ee.fileAttachments)?Ee.fileAttachments.filter(it=>!!it&&typeof it.label=="string"&&typeof it.path=="string"&&typeof it.fsPath=="string"):[],skills:Array.isArray(Ee.skills)?Ee.skills.filter(it=>!!it&&typeof it.name=="string"&&typeof it.path=="string"):[]}}catch{return null}}function ct(w,R){if(typeof window>"u")return;const K=w.trim();if(K)try{if(R.text.trim().length>0||R.imageUrls.length>0||R.fileAttachments.length>0||R.skills.length>0){window.localStorage.setItem(wt(K),JSON.stringify(R));return}window.localStorage.removeItem(wt(K))}catch{}}function Qt(w){ct(w,{text:"",imageUrls:[],fileAttachments:[],skills:[]})}function mn(){return{text:s.value,imageUrls:i.value.map(w=>w.url),fileAttachments:l.value.map(w=>({...w})),skills:a.value.map(w=>({name:w.name,path:w.path}))}}function ar(){o("interrupt")}function Xn(w){o("update:selected-model",w)}function mr(){o("update:selected-collaboration-mode",ve.value?"default":"plan")}function Ut(w){o("update:selected-reasoning-effort",w)}function Zt(){ne.value||o("update:selected-speed-mode",r.selectedSpeedMode==="fast"?"standard":"fast")}function Ht(){r.dictationClickToToggle&&(d.value&&(d.value=""),Y())}function gr(w){if(r.dictationClickToToggle||(w.preventDefault(),Ge))return;Ge=!0;const R=w.currentTarget;if(R)try{R.setPointerCapture(w.pointerId)}catch{}d.value&&(d.value=""),window.addEventListener("pointerup",Wt),window.addEventListener("pointercancel",Wt),window.addEventListener("blur",Wt),O()}function Wt(){r.dictationClickToToggle||Ge&&(Ge=!1,window.removeEventListener("pointerup",Wt),window.removeEventListener("pointercancel",Wt),window.removeEventListener("blur",Wt),W())}function Yr(){ie.value||(V.value=!V.value)}function jn(){var w;(w=Z.value)==null||w.click()}function vr(){var w;(w=he.value)==null||w.click()}function Mr(){var w;(w=Ce.value)==null||w.click()}function ho(w){i.value=i.value.filter(R=>R.id!==w)}function Fn(w){a.value=a.value.filter(R=>R.path!==w)}function en(w){l.value=l.value.filter(R=>R.fsPath!==w)}function Pr(w){const R=c.value.find(Ee=>Ee.id===w);if(!R)return;const K=new Set(R.filePaths);l.value=l.value.filter(Ee=>!K.has(Ee.fsPath)),c.value=c.value.filter(Ee=>Ee.id!==w)}function Cn(w){return w.total<=0?0:Math.round(w.processed/w.total*100)}function Dt(w,R){const K=w.replace(/\\/g,"/");if(l.value.some(Ft=>Ft.fsPath===K))return;const Ee=K.split("/").filter(Boolean),it=(R==null?void 0:R.trim())||Ee[Ee.length-1]||K;l.value=[...l.value,{label:it,path:K,fsPath:K}]}function lr(w){return w.type.startsWith("image/")?!0:/\.(png|jpe?g|gif|webp)$/i.test(w.name)}function $r(w){return w?Array.from(w):[]}function gn(w){return w!==nt?!1:(f.value+=1,!0)}function Vt(w){w===nt&&(f.value=Math.max(0,f.value-1))}function Mt(w){if(w<=0)return;const R=m.value,K=R?R.succeeded+R.failed:0;if(!R||K>=R.total){m.value={total:w,succeeded:0,failed:0};return}m.value={...R,total:R.total+w}}function vn(w){const R=m.value;R&&(m.value={...R,succeeded:R.succeeded+(w==="success"?1:0),failed:R.failed+(w==="failure"?1:0)})}function dt(){return`${Date.now()}-${Math.random().toString(36).slice(2)}`}function gt(w){const R=new Date,K=[R.getFullYear(),String(R.getMonth()+1).padStart(2,"0"),String(R.getDate()).padStart(2,"0"),String(R.getHours()).padStart(2,"0"),String(R.getMinutes()).padStart(2,"0"),String(R.getSeconds()).padStart(2,"0")].join("-"),Ee=w.type.startsWith("image/")&&w.type.slice(6).replace(/[^a-z0-9]+/gi,"")||"png";return`pasted-image-${K}.${Ee}`}function an(){const w=new Date;return`pasted-text-${[w.getFullYear(),String(w.getMonth()+1).padStart(2,"0"),String(w.getDate()).padStart(2,"0"),String(w.getHours()).padStart(2,"0"),String(w.getMinutes()).padStart(2,"0"),String(w.getSeconds()).padStart(2,"0")].join("-")}.txt`}function Bn(w){return w.name.trim()?w:new File([w],gt(w),{type:w.type||"image/png",lastModified:Date.now()})}function cr(w){return new Promise((R,K)=>{const Ee=new FileReader;Ee.onload=()=>{if(typeof Ee.result=="string"){R(Ee.result);return}K(new Error("Image read returned an unsupported result"))},Ee.onerror=()=>{K(Ee.error??new Error("Image read failed"))},Ee.readAsDataURL(w)})}async function qn(w,R){if(gn(R))try{const K=Bn(w),Ee=await cr(K);if(R!==nt)return;i.value=[...i.value,{id:dt(),name:K.name,url:Ee}],vn("success")}catch{R===nt&&vn("failure")}finally{Vt(R)}}async function xn(w,R){if(gn(R))try{const K=await sd(w);if(R!==nt)return;if(!K){vn("failure");return}Dt(K),vn("success")}catch{R===nt&&vn("failure")}finally{Vt(R)}}function ln(w){const R=$r(w);if(R.length===0)return;Mt(R.length),V.value=!1,ae.value=!1,St();const K=nt;for(const Ee of R)lr(Ee)?qn(Ee,K):xn(Ee,K)}function Un(){ot=0,v.value=!1}function ur(w){if(!w||w.length===0)return;const R=De.value;for(const K of Array.from(w))if(lr(K)){const Ee=new FileReader;Ee.onload=()=>{R===De.value&&typeof Ee.result=="string"&&i.value.push({id:`${Date.now()}-${Math.random().toString(36).slice(2)}`,name:K.name,url:Ee.result})},Ee.readAsDataURL(K)}else sd(K).then(Ee=>{R===De.value&&Ee&&Dt(Ee)}).catch(()=>{})}function Nr(w){return w?Array.from(w.types??[]).includes("Files"):!1}async function Hn(w){if(!w||w.length===0)return;const R=De.value,K=Array.from(w),it=(K[0].webkitRelativePath||K[0].name).split("/").filter(Boolean)[0]||"Folder",Ft=`${Date.now()}-${Math.random().toString(36).slice(2)}`;c.value=[...c.value,{id:Ft,name:it,total:K.length,processed:0,filePaths:[],isUploading:!0}];const Gt=Pt=>{R===De.value&&(c.value=c.value.map(wn=>wn.id===Ft?Pt(wn):wn))};for(const Pt of K)try{const wn=await sd(Pt);if(R!==De.value)return;if(wn){const Qr=Pt.webkitRelativePath||Pt.name;Dt(wn,Qr),Gt(ds=>({...ds,processed:ds.processed+1,filePaths:[...ds.filePaths,wn]}));continue}Gt(Qr=>({...Qr,processed:Qr.processed+1}))}catch{Gt(wn=>({...wn,processed:wn.processed+1}))}Gt(Pt=>({...Pt,isUploading:!1}))}function En(w){w&&(w.value="")}function Qn(w){const R=w.target;ur((R==null?void 0:R.files)??null),En(R),V.value=!1}function yn(w){const R=w.target;ur((R==null?void 0:R.files)??null),En(R),V.value=!1}function _n(w){const R=w.target;Hn((R==null?void 0:R.files)??null),En(R),V.value=!1}function Rn(w){ie.value||!Nr(w.dataTransfer)||(w.preventDefault(),ot+=1,v.value=!0)}function bn(w){ie.value||!Nr(w.dataTransfer)||(w.preventDefault(),w.dataTransfer&&(w.dataTransfer.dropEffect="copy"),v.value=!0)}function yr(w){v.value&&(w.preventDefault(),ot=Math.max(0,ot-1),ot===0&&Un())}function Jr(w){var R;ie.value||!Nr(w.dataTransfer)||(w.preventDefault(),Un(),ln(((R=w.dataTransfer)==null?void 0:R.files)??null))}function Nt(){!v.value&&ot===0||Un()}function on(w){var Ft,Gt;if(ie.value)return;const R=((Ft=w.clipboardData)==null?void 0:Ft.getData("text/plain"))??"";if(R.length>=KN){w.preventDefault();const Pt=new File([R],an(),{type:"text/plain",lastModified:Date.now()});ln([Pt]);return}const K=Array.from(((Gt=w.clipboardData)==null?void 0:Gt.items)??[]);if(K.length===0)return;const Ee=R.length>0,it=K.filter(Pt=>Pt.kind==="file"&&Pt.type.startsWith("image/")).map(Pt=>Pt.getAsFile()).filter(Pt=>Pt instanceof File);it.length!==0&&(Ee||w.preventDefault(),ln(it))}function Wn(){d.value&&(d.value="");const R=s.value.startsWith("/");R!==ae.value&&(ae.value=R),Or()}function qe(w){if(Me.value){if(w.key==="Escape"){w.preventDefault(),St();return}if(w.key==="ArrowDown"){w.preventDefault(),_e.value.length>0&&(fe.value=(fe.value+1)%_e.value.length);return}if(w.key==="ArrowUp"){if(w.preventDefault(),_e.value.length>0){const K=_e.value.length;fe.value=(fe.value+K-1)%K}return}if(w.key==="Enter"||w.key==="Tab"){w.preventDefault();const K=_e.value[fe.value];K?Zn(K):St();return}}if(r.sendWithEnter!==!1?w.key==="Enter"&&!w.shiftKey:w.key==="Enter"&&(w.metaKey||w.ctrlKey)){w.preventDefault(),Le(r.isTurnInProgress?ye.value:"steer");return}if(ae.value){if(w.key==="Escape"){w.preventDefault(),Te();return}if(w.key==="ArrowDown"||w.key==="ArrowUp"){w.preventDefault();return}}}function Te(){var w;ae.value=!1,(w=Ae.value)==null||w.focus()}function St(){Me.value=!1,xe.value=null,Fe.value="",_e.value=[],fe.value=0}function Or(){const w=Ae.value;if(!w){St();return}const R=w.selectionStart??s.value.length,Ee=s.value.slice(0,R).match(/(^|\s)(@[^\s@]*)$/);if(!Ee){St();return}const it=Ee[2]??"",Ft=it.length,Gt=R-Ft;xe.value=Gt,Fe.value=it.slice(1),Me.value=!0,Lr()}async function Lr(){if(!Me.value)return;const w=(r.cwd??"").trim();if(!w){_e.value=[];return}Re&&clearTimeout(Re);const R=++Be;Re=setTimeout(async()=>{try{const K=await eM(w,Fe.value,20);if(!Me.value||R!==Be)return;_e.value=K,fe.value=0}catch{if(!Me.value||R!==Be)return;_e.value=[]}},120)}function Zn(w){const R=Ae.value,K=xe.value;if(K!==null&&R){const Ee=R.selectionStart??s.value.length;s.value=`${s.value.slice(0,K)}${s.value.slice(Ee)}`.trimEnd()}Dt(w.path),St(),Jt(()=>R==null?void 0:R.focus())}function er(w){ce(),rt(w),Jt(()=>{var R;return(R=Ae.value)==null?void 0:R.focus()})}function Xr(w){const R=w.trim();R&&(ce(),s.value.trim().length>0?s.value=`${s.value.trimEnd()}
76
76
  ${R}`:s.value=R,Jt(()=>{var K;return(K=Ae.value)==null?void 0:K.focus()}))}function _r(w){const R=w.lastIndexOf("/");return R<0?w:w.slice(R+1)}function Mn(w){const R=w.lastIndexOf("/");return R<=0?"":w.slice(0,R)}function qt(w){const R=_r(w),K=R.lastIndexOf(".");return K<=0?"":R.slice(K+1).toLowerCase()}function zt(w){const R=qt(w);return R==="ts"?"TS":R==="tsx"?"TSX":R==="js"?"JS":R==="jsx"?"JSX":R==="json"?"{}":""}function br(w){const R=qt(w);return R.startsWith("ts")?"ts":R.startsWith("js")?"js":R==="json"?"json":"default"}function S(w){const R=qt(w);return R==="md"||R==="mdx"}function C(w){var R;a.value.some(K=>K.path===w.path)||(a.value=[...a.value,w]),s.value=s.value.startsWith("/")?"":s.value,ae.value=!1,(R=Ae.value)==null||R.focus()}function N(w,R){if(R){const K=(r.skills??[]).find(Ee=>Ee.path===w);K&&!a.value.some(Ee=>Ee.path===w)&&(a.value=[...a.value,K])}else a.value=a.value.filter(K=>K.path!==w)}function z(w){if(!V.value)return;const R=re.value;if(!R)return;const K=w.target;!K||R.contains(K)||(V.value=!1)}return as(()=>{document.addEventListener("click",z),window.addEventListener("drop",Nt),window.addEventListener("dragend",Nt),window.addEventListener("blur",Nt)}),t({hydrateDraft:er,appendTextToDraft:Xr,hasUnsavedDraft:()=>ee.value}),Fs(()=>{document.removeEventListener("click",z),window.removeEventListener("drop",Nt),window.removeEventListener("dragend",Nt),window.removeEventListener("blur",Nt),window.removeEventListener("pointerup",Wt),window.removeEventListener("pointercancel",Wt),window.removeEventListener("blur",Wt),Re&&clearTimeout(Re)}),lt(()=>r.activeThreadId,w=>{ce(),Ke&&ct(Ke,mn()),Qe();const R=Rt(w);R&&(rt(R),Wn()),Ke=w.trim()},{immediate:!0}),lt([s,i,l,a],()=>{Ke&&ct(Ke,mn())},{deep:!0}),lt(()=>r.cwd,()=>{Me.value&&Lr()}),lt(ke,w=>{ye.value=w}),(w,R)=>(A(),L("form",{class:"thread-composer",onSubmit:R[4]||(R[4]=_t(K=>Le(e.isTurnInProgress?ye.value:"steer"),["prevent"]))},[$.value?(A(),L("p",oN,ge($.value),1)):Se("",!0),y("div",{class:pt(["thread-composer-shell",{"thread-composer-shell--no-top-radius":e.hasQueueAbove,"thread-composer-shell--drag-active":v.value}])},[i.value.length>0?(A(),L("div",sN,[(A(!0),L(Xe,null,Bt(i.value,K=>(A(),L("div",{key:K.id,class:"thread-composer-attachment"},[y("img",{class:"thread-composer-attachment-image",src:K.url,alt:K.name||"Selected image"},null,8,iN),y("button",{class:"thread-composer-attachment-remove",type:"button","aria-label":`Remove ${K.name||"image"}`,disabled:ie.value,onClick:Ee=>ho(K.id)}," x ",8,aN)]))),128))])):Se("",!0),c.value.length>0?(A(),L("div",lN,[(A(!0),L(Xe,null,Bt(c.value,K=>(A(),L("span",{key:K.id,class:"thread-composer-folder-chip"},[ze(lp,{class:"thread-composer-folder-chip-icon"}),y("span",{class:"thread-composer-folder-chip-name",title:K.name},ge(K.name),9,cN),y("span",uN,[K.isUploading?(A(),L(Xe,{key:0},[$s(ge(Cn(K))+"% uploading ("+ge(K.processed)+"/"+ge(K.total)+") ",1)],64)):(A(),L(Xe,{key:1},[$s(ge(K.filePaths.length)+" file"+ge(K.filePaths.length===1?"":"s"),1)],64))]),y("button",{class:"thread-composer-folder-chip-remove",type:"button","aria-label":`Remove folder ${K.name}`,disabled:ie.value,onClick:Ee=>Pr(K.id)},"×",8,dN)]))),128))])):Se("",!0),te.value.length>0?(A(),L("div",fN,[(A(!0),L(Xe,null,Bt(te.value,K=>(A(),L("span",{key:K.fsPath,class:"thread-composer-file-chip"},[ze(ac,{class:"thread-composer-file-chip-icon"}),y("span",{class:"thread-composer-file-chip-name",title:K.fsPath},ge(K.label),9,pN),y("button",{class:"thread-composer-file-chip-remove",type:"button","aria-label":`Remove ${K.label}`,disabled:ie.value,onClick:Ee=>en(K.fsPath)},"×",8,hN)]))),128))])):Se("",!0),a.value.length>0?(A(),L("div",mN,[(A(!0),L(Xe,null,Bt(a.value,K=>(A(),L("span",{key:K.path,class:"thread-composer-skill-chip"},[y("span",gN,ge(K.name),1),y("button",{class:"thread-composer-skill-chip-remove",type:"button","aria-label":`Remove skill ${K.name}`,onClick:Ee=>Fn(K.path)},"×",8,vN)]))),128))])):Se("",!0),y("div",{class:pt(["thread-composer-input-wrap",{"thread-composer-input-wrap--drag-active":v.value}]),onDragenter:Rn,onDragover:bn,onDragleave:yr,onDrop:Jr},[v.value?(A(),L("div",yN,[...R[5]||(R[5]=[y("span",{class:"thread-composer-drop-overlay-copy"},"Drop images or files",-1)])])):Se("",!0),Me.value?(A(),L("div",_N,[_e.value.length>0?(A(!0),L(Xe,{key:0},Bt(_e.value,(K,Ee)=>(A(),L("button",{key:K.path,class:pt(["thread-composer-file-mention-row",{"is-active":Ee===fe.value}]),type:"button",onMousedown:_t(it=>Zn(K),["prevent"])},[zt(K.path)?(A(),L("span",{key:0,class:pt(["thread-composer-file-mention-icon-badge",`is-${br(K.path)}`])},ge(zt(K.path)),3)):S(K.path)?(A(),L("span",wN,"↓")):(A(),yt(ac,{key:2,class:"thread-composer-file-mention-icon-file"})),y("span",SN,[y("span",TN,ge(_r(K.path)),1),Mn(K.path)?(A(),L("span",EN,ge(Mn(K.path)),1)):Se("",!0)])],42,bN))),128)):(A(),L("div",kN,"No matching files"))])):Se("",!0),Br(y("textarea",{ref_key:"inputRef",ref:Ae,"onUpdate:modelValue":R[0]||(R[0]=K=>s.value=K),class:"thread-composer-input",placeholder:X.value,disabled:ie.value,onInput:Wn,onKeydown:qe,onPaste:on},null,40,IN),[[fo,s.value]]),ze(rN,{skills:E.value,visible:ae.value,"anchor-bottom":44,"anchor-left":0,onSelect:C,onClose:Te},null,8,["skills","visible"])],34),y("div",{class:pt(["thread-composer-controls",{"thread-composer-controls--recording":$e.value}])},[y("div",{ref_key:"attachMenuRootRef",ref:re,class:"thread-composer-attach"},[y("button",{class:"thread-composer-attach-trigger",type:"button","aria-label":"Add photos & files",disabled:ie.value,onClick:Yr}," + ",8,AN),V.value?(A(),L("div",CN,[y("button",{class:"thread-composer-attach-item",type:"button",disabled:ie.value,onClick:jn}," Add photos & files ",8,xN),y("button",{class:"thread-composer-attach-item",type:"button",disabled:ie.value,onClick:Mr}," Add folder ",8,RN),y("button",{class:"thread-composer-attach-item",type:"button",disabled:ie.value,onClick:vr}," Take photo ",8,MN),R[9]||(R[9]=y("div",{class:"thread-composer-attach-separator"},null,-1)),y("div",PN,[R[6]||(R[6]=y("span",{class:"thread-composer-attach-mode-label"},"In-progress send",-1)),y("div",$N,[y("button",{class:pt(["thread-composer-attach-mode-button",{"is-active":ye.value==="steer"}]),type:"button",disabled:ie.value,onClick:R[1]||(R[1]=K=>Ne("steer"))}," Steer ",10,NN),y("button",{class:pt(["thread-composer-attach-mode-button",{"is-active":ye.value==="queue"}]),type:"button",disabled:ie.value,onClick:R[2]||(R[2]=K=>Ne("queue"))}," Queue ",10,ON)])]),R[10]||(R[10]=y("div",{class:"thread-composer-attach-separator"},null,-1)),pe.value?(A(),L("button",{key:0,class:"thread-composer-attach-setting",type:"button",role:"switch","aria-checked":e.selectedSpeedMode==="fast","aria-label":`Fast mode ${e.selectedSpeedMode==="fast"?"enabled":"disabled"}`,disabled:ne.value,onClick:Zt},[y("span",DN,[R[7]||(R[7]=y("span",{class:"thread-composer-attach-setting-label"},"Fast mode",-1)),y("span",jN,ge(Ue.value),1)]),y("span",{class:pt(["thread-composer-attach-switch",{"is-on":e.selectedSpeedMode==="fast","is-busy":e.isUpdatingSpeedMode,"is-disabled":ne.value}])},null,2)],8,LN)):Se("",!0),y("button",{class:"thread-composer-attach-setting",type:"button",role:"switch","aria-checked":ve.value,"aria-label":ve.value?"Disable plan mode":"Enable plan mode",disabled:e.disabled||!e.activeThreadId||e.isTurnInProgress,onClick:mr},[R[8]||(R[8]=y("span",{class:"thread-composer-attach-setting-copy"},[y("span",{class:"thread-composer-attach-setting-label"},"Plan mode"),y("span",{class:"thread-composer-attach-setting-description"},"Agent proposes a plan before acting")],-1)),y("span",{class:pt(["thread-composer-attach-switch",{"is-on":ve.value}])},null,2)],8,FN)])):Se("",!0)],512),$e.value?Se("",!0):(A(),L(Xe,{key:0},[ze(xs,{class:"thread-composer-control","model-value":e.selectedModel,options:we.value,"selected-prefix-icon":me.value?y$:null,placeholder:"Model","open-direction":"up",disabled:e.disabled||!e.activeThreadId||e.models.length===0||e.isTurnInProgress,"onUpdate:modelValue":Xn},null,8,["model-value","options","selected-prefix-icon","disabled"]),ze(K$,{class:"thread-composer-control",options:q.value,"selected-values":I.value,placeholder:"Skills","search-placeholder":"Search skills...","open-direction":"up",disabled:e.disabled||!e.activeThreadId||e.isTurnInProgress,onToggle:N},null,8,["options","selected-values","disabled"]),ze(xs,{class:"thread-composer-control","model-value":e.selectedReasoningEffort,options:J,placeholder:"Thinking","open-direction":"up",disabled:e.disabled||!e.activeThreadId||e.isTurnInProgress,"onUpdate:modelValue":Ut},null,8,["model-value","disabled"])],64)),y("div",{class:pt(["thread-composer-actions",{"thread-composer-actions--recording":$e.value}])},[He(T)==="recording"?(A(),L("div",BN,[y("canvas",{ref_key:"dictationWaveformCanvasRef",ref:P,class:"thread-composer-dictation-waveform"},null,512)])):Se("",!0),He(T)==="recording"?(A(),L("span",qN,ge(D.value),1)):Se("",!0),He(k)?(A(),L("button",{key:2,class:pt(["thread-composer-mic",{"thread-composer-mic--active":He(T)==="recording"}]),type:"button","aria-label":x.value,title:x.value,disabled:ie.value,onClick:Ht,onPointerdown:gr,onPointerup:Wt,onPointercancel:Wt},[He(T)==="recording"?(A(),yt(Xm,{key:0,class:"thread-composer-mic-icon thread-composer-mic-icon--stop"})):(A(),yt(S$,{key:1,class:"thread-composer-mic-icon"}))],42,UN)):Se("",!0),e.isTurnInProgress&&!le.value?(A(),L("button",{key:3,class:"thread-composer-stop",type:"button","aria-label":"Stop",disabled:e.disabled||!e.activeThreadId||e.isInterruptingTurn,onClick:ar},[ze(Xm,{class:"thread-composer-stop-icon"})],8,HN)):(A(),L("button",{key:4,class:pt(["thread-composer-submit",{"thread-composer-submit--queue":e.isTurnInProgress&&ye.value==="queue"}]),type:"button","aria-label":e.isTurnInProgress&&ye.value==="queue"?"Queue message":"Send message",title:e.isTurnInProgress?`Send as ${ye.value}`:"Send",disabled:!Q.value,onClick:R[3]||(R[3]=K=>Le(e.isTurnInProgress?ye.value:"steer"))},[ze(h$,{class:"thread-composer-submit-icon"})],10,WN))],2)],2)],2),y("input",{ref_key:"photoLibraryInputRef",ref:Z,class:"thread-composer-hidden-input",type:"file",multiple:"",disabled:ie.value,onChange:Qn},null,40,VN),y("input",{ref_key:"cameraCaptureInputRef",ref:he,class:"thread-composer-hidden-input",type:"file",accept:"image/*",capture:"environment",disabled:ie.value,onChange:yn},null,40,zN),y("input",{ref_key:"folderPickerInputRef",ref:Ce,class:"thread-composer-hidden-input",type:"file",multiple:"",webkitdirectory:"",directory:"",disabled:ie.value,onChange:_n},null,40,GN)],32))}}),Qm=Et(JN,[["__scopeId","data-v-25d88825"]]),XN={key:0,class:"thread-pending-request"},QN={class:"thread-pending-request-title"},ZN=["title"],eO={class:"thread-pending-request-approval"},tO={class:"thread-pending-request-options",role:"radiogroup","aria-label":"Approval choices"},nO=["aria-pressed","onClick"],rO={class:"thread-pending-request-option-index"},oO={class:"thread-pending-request-option-label"},sO={class:"thread-pending-request-footer thread-pending-request-footer--approval"},iO=["value"],aO={class:"thread-pending-request-header"},lO={class:"thread-pending-request-heading"},cO={class:"thread-pending-request-eyebrow"},uO={class:"thread-pending-request-title"},dO={key:0,class:"thread-pending-request-counter"},fO={key:0,class:"thread-pending-request-preview"},pO={class:"thread-pending-request-preview-code"},hO={key:1,class:"thread-pending-request-user-input"},mO={key:0,class:"thread-pending-request-question-description"},gO=["href"],vO={class:"thread-pending-request-question-title"},yO={key:0},_O={key:0,class:"thread-pending-request-question-text"},bO={key:1,class:"thread-pending-request-input-wrap"},wO=["type","value","onInput"],SO={key:2,class:"thread-pending-request-select-wrap"},TO=["value","onChange"],EO={key:0,value:""},kO={key:3,class:"thread-pending-request-select-wrap"},IO=["value","onChange"],AO={key:0,value:""},CO=["value"],xO={key:4,class:"thread-pending-request-question-options"},RO=["checked","onChange"],MO={class:"thread-pending-request-checkbox-label"},PO={key:2,class:"thread-pending-request-validation-error"},$O={class:"thread-pending-request-footer"},NO={key:2,class:"thread-pending-request-user-input"},OO={class:"thread-pending-request-question-title"},LO={key:0,class:"thread-pending-request-question-text"},DO={key:1,class:"thread-pending-request-question-options"},jO={class:"thread-pending-request-select-wrap"},FO=["value","onChange"],BO=["value"],qO={key:0,class:"thread-pending-request-question-description"},UO={key:2,class:"thread-pending-request-input-wrap"},HO=["value","onInput"],WO={class:"thread-pending-request-footer"},VO={key:3,class:"thread-pending-request-actions"},zO={key:4,class:"thread-pending-request-actions"},GO=An({__name:"ThreadPendingRequestPanel",props:{request:{},requestCount:{},hasQueueAbove:{type:Boolean}},emits:["respondServerRequest"],setup(e,{emit:t}){const n=e,r=t,o=j("accept"),s=j(""),i=j({}),a=j({}),l=j({}),c=j("");function d(x){return x!==null&&typeof x=="object"&&!Array.isArray(x)?x:null}function f(x){return typeof x=="string"?x.trim():""}function m(x){return typeof x=="string"?x:null}function v(x){return/^[A-Za-z0-9_./:@%+=,-]+$/.test(x)?x:JSON.stringify(x)}function T(x){const D=(Array.isArray(x.commandActions)?x.commandActions:[]).map(X=>d(X)).map(X=>f(X==null?void 0:X.command)).find(X=>X.length>0);if(D)return D.replace(/\s+/g," ").trim();if(Array.isArray(x.command)){const X=x.command.filter(le=>typeof le=="string").map(le=>le.trim()).filter(le=>le.length>0);if(X.length>0)return X.map(le=>v(le)).join(" ")}return Z(f(x.command))}function k(x){return x.method==="item/commandExecution/requestApproval"||x.method==="execCommandApproval"}function H(x){return x.method==="item/fileChange/requestApproval"||x.method==="applyPatchApproval"}function P(x){return x.method==="item/permissions/requestApproval"}function O(x){return k(x)||H(x)||P(x)}function W(x){return x.method==="mcpServer/elicitation/request"}function Y(x){const $=d(x.params);return f($==null?void 0:$.reason)||f($==null?void 0:$.prompt)||f($==null?void 0:$.message)}function ce(x){return O(x)?"Awaiting approval":W(x)?"MCP server input required":x.method==="item/tool/requestUserInput"?"Awaiting response":x.method==="item/tool/call"?"Tool call waiting for response":x.method}function re(x){const $=Y(x);return $||(k(x)?"Do you want to run this command?":H(x)?"Do you want to make these changes?":P(x)?"Do you want to grant these permissions?":W(x)?"An MCP server needs your input before Codex can continue.":x.method==="item/tool/requestUserInput"?"Codex needs your answer before it can continue.":"Codex is waiting for a response before it can continue.")}function Z(x){var Le;const $=x.trim();if(!$)return"";const D=$.match(/-Command\s+(.+)$/i),X=((Le=D==null?void 0:D[1])==null?void 0:Le.trim())??$;return(X.startsWith('"')&&X.endsWith('"')?X.slice(1,-1):X).replace(/\\"/g,'"').replace(/`"/g,'"').replace(/""/g,'"').replace(/\s+/g," ").trim()}function he(x){const $=d(x.params);if(!$)return"";if(k(x))return T($);if(H(x)){const D=f($.grantRoot)||f($.grant_root);if(D)return D.replace(/\s+/g," ").trim();const X=d($.fileChanges)??d($.changes);if(!X)return"";const le=Object.keys(X).map(Le=>Le.trim()).filter(Le=>Le.length>0);return le.length===0?"":le.slice(0,3).join(", ")}return P(x)?Ce($.permissions):W(x)?f($.serverName)||f($.url):""}function Ce(x){const $=d(x);if(!$)return"";const D=[],X=d($.fileSystem),le=d($.network),Le=Array.isArray(X==null?void 0:X.read)?X.read.filter(rt=>typeof rt=="string"):[],Ne=Array.isArray(X==null?void 0:X.write)?X.write.filter(rt=>typeof rt=="string"):[];return Le.length>0&&D.push(`Read: ${Le.join(", ")}`),Ne.length>0&&D.push(`Write: ${Ne.join(", ")}`),(le==null?void 0:le.enabled)===!0&&D.push("Network access"),D.join(" • ")}function Ae(x){return!x||!O(x)?[]:[{id:"accept",label:"Yes"},{id:"acceptForSession",label:"Yes for Session"}]}const ue=se(()=>Ae(n.request));lt(()=>{var x;return((x=n.request)==null?void 0:x.id)??0},()=>{var x;s.value="",i.value={},a.value={},l.value={},c.value="",o.value=((x=ue.value[0])==null?void 0:x.id)??"accept"},{immediate:!0}),lt(ue,x=>{var $;o.value!=="decline"&&(x.some(D=>D.id===o.value)||(o.value=(($=x[0])==null?void 0:$.id)??"accept"))},{immediate:!0});function V(x,$){return`${String(x)}:${$}`}function ae(x){const $=d(x.params),D=Array.isArray($==null?void 0:$.questions)?$.questions:[],X=[];for(const le of D){const Le=d(le);if(!Le)continue;const Ne=f(Le.id);if(!Ne)continue;const rt=Array.isArray(Le.options)?Le.options.map(Qe=>d(Qe)).map(Qe=>({label:f(Qe==null?void 0:Qe.label),description:f(Qe==null?void 0:Qe.description)})).filter(Qe=>Qe.label.length>0):[];X.push({id:Ne,header:f(Le.header),question:f(Le.question),isOther:Le.isOther===!0,options:rt})}return X}function xe(x,$,D){const X=V(x,$),le=i.value[X];return typeof le=="string"&&le.length>0?le:D}function Fe(x,$){return a.value[V(x,$)]??""}function _e(x,$,D){const X=D.target;if(!(X instanceof HTMLSelectElement))return;const le=V(x,$);i.value={...i.value,[le]:X.value}}function Me(x,$,D){const X=D.target;if(!(X instanceof HTMLInputElement))return;const le=V(x,$);a.value={...a.value,[le]:X.value}}function fe(x,$,D){var le,Le;const X=xe(x,$,((le=D[0])==null?void 0:le.label)||"");return((Le=D.find(Ne=>Ne.label===X))==null?void 0:Le.description)??""}function De(x,$){return`${String(x)}:${$}`}function Be(x){var $;return f(($=d(x.params))==null?void 0:$.serverName)}function Re(x){var D;const $=f((D=d(x.params))==null?void 0:D.url);if(!$)return"";try{const X=new URL($),le=X.protocol.toLowerCase();return le==="https:"||le==="http:"?X.toString():""}catch{return""}}function Ge(x){const $=d(x.params),D=d($==null?void 0:$.requestedSchema),X=d(D==null?void 0:D.properties);if(!X)return[];const le=new Set(Array.isArray(D==null?void 0:D.required)?D.required.filter(Le=>typeof Le=="string"):[]);return Object.entries(X).map(([Le,Ne])=>ot(Le,d(Ne),le.has(Le))).filter(Le=>Le!==null)}function ot(x,$,D){if(!$)return null;const X=f($.title)||x,le=f($.description),Le=f($.type);if(Le==="boolean")return{key:x,label:X,description:le,required:D,kind:"boolean",inputType:"checkbox",options:[],defaultValue:typeof $.default=="boolean"?$.default:null,hasExplicitDefault:typeof $.default=="boolean"};if(Le==="number"||Le==="integer")return{key:x,label:X,description:le,required:D,kind:"number",inputType:"number",options:[],defaultValue:typeof $.default=="number"?$.default:null,hasExplicitDefault:typeof $.default=="number"};const Ne=nt($);if(Le==="array")return{key:x,label:X,description:le,required:D,kind:"multiEnum",inputType:"checkbox",options:Ne,defaultValue:Array.isArray($.default)?$.default.filter(Qe=>typeof Qe=="string"):[],hasExplicitDefault:Array.isArray($.default)};const rt=m($.default);return Ne.length>0?{key:x,label:X,description:le,required:D,kind:"singleEnum",inputType:"select",options:Ne,defaultValue:rt,hasExplicitDefault:rt!==null}:{key:x,label:X,description:le,required:D,kind:"string",inputType:st($),options:[],defaultValue:rt,hasExplicitDefault:rt!==null}}function nt(x){const D=(Array.isArray(x.oneOf)?x.oneOf:Array.isArray(x.anyOf)?x.anyOf:[]).map(Ne=>d(Ne)).map(Ne=>({value:f(Ne==null?void 0:Ne.const),label:f(Ne==null?void 0:Ne.title)||f(Ne==null?void 0:Ne.const)})).filter(Ne=>Ne.value.length>0);if(D.length>0)return D;const X=d(x.items);if(X){const Ne=nt(X);if(Ne.length>0)return Ne}const le=Array.isArray(x.enum)?x.enum.filter(Ne=>typeof Ne=="string"):[],Le=Array.isArray(x.enumNames)?x.enumNames.filter(Ne=>typeof Ne=="string"):[];return le.map((Ne,rt)=>({value:Ne,label:Le[rt]||Ne}))}function st(x){const $=f(x.format);return $==="email"?"email":$==="uri"?"url":$==="date"?"date":$==="date-time"?"datetime-local":"text"}function Ke(x,$){const D=l.value[De(x,$.key)];return D!==void 0?D:$.defaultValue}function J(x,$){const D=Ke(x,$);return Array.isArray(D)?D.filter(X=>typeof X=="string"):[]}function be(x,$,D){const X=D.target;if(!(X instanceof HTMLInputElement)&&!(X instanceof HTMLSelectElement))return;const le=X.value,Le=($.kind==="number",le);l.value={...l.value,[De(x,$.key)]:le.length>0?Le:null},c.value=""}function we(x,$,D){const X=D.target;if(!(X instanceof HTMLSelectElement))return;let le=null;X.value==="true"?le=!0:X.value==="false"&&(le=!1),l.value={...l.value,[De(x,$.key)]:le},c.value=""}function ve(x,$,D,X){const le=X.target;if(!(le instanceof HTMLInputElement))return;const Le=new Set(J(x,$));le.checked?Le.add(D):Le.delete(D),l.value={...l.value,[De(x,$.key)]:Array.from(Le)},c.value=""}function Ze(x){return x===!0?"true":x===!1?"false":""}function E(x,$){const D=Ke(x,$);return $.kind==="multiEnum"?Array.isArray(D)&&D.length>0:$.kind==="boolean"?typeof D=="boolean":$.kind==="number"&&typeof D=="number"?!0:typeof D=="string"&&D.trim().length>0}function I(x){const $=Ge(x).filter(D=>D.required&&!E(x.id,D)).map(D=>D.label);return $.length===0?"":$.length===1?`Answer the required field: ${$[0]}.`:`Answer the required fields: ${$.join(", ")}.`}function q(x){const $={};for(const D of Ge(x)){const X=Ke(x.id,D);if(D.kind==="multiEnum"){const Le=Array.isArray(X)?X:[];(Le.length>0||D.required)&&($[D.key]=Le);continue}if(D.kind==="boolean"){typeof X=="boolean"&&($[D.key]=X);continue}if(D.kind==="number"){const Le=typeof X=="number"?X:Number(String(X).trim());Number.isNaN(Le)||($[D.key]=Le);continue}const le=String(X??"").trim();(le.length>0||D.required)&&($[D.key]=le)}return $}function Q(x){o.value=x}function ee(){o.value="decline"}function te(x){const $=x.target;$ instanceof HTMLInputElement&&(s.value=$.value,o.value="decline")}function ie(x,$){var D;if(P(x)){if($==="decline"||$==="cancel"){r("respondServerRequest",{id:x.id,error:{code:-32e3,message:$==="cancel"?"Cancelled from CodexUI.":"Declined from CodexUI."}});return}const X=d((D=d(x.params))==null?void 0:D.permissions)??{};r("respondServerRequest",{id:x.id,result:{permissions:X,scope:$==="acceptForSession"?"session":"turn"}});return}r("respondServerRequest",{id:x.id,result:{decision:$}})}function pe(x){const $=s.value.trim(),D=$.length>0?"decline":o.value;if(P(x)){ie(x,D);return}r("respondServerRequest",{id:x.id,result:{decision:D},followUpMessageText:$||void 0})}function me(x,$){const D=d(x.params),X={action:$};if($==="accept"&&f(D==null?void 0:D.mode)==="form"){const le=I(x);if(le){c.value=le;return}X.content=q(x)}r("respondServerRequest",{id:x.id,result:X})}function ne(x){var X;const $=ae(x),D={};for(const le of $){const Le=xe(x.id,le.id,((X=le.options[0])==null?void 0:X.label)||""),Ne=Fe(x.id,le.id).trim(),rt=[Le,Ne].map(Qe=>Qe.trim()).filter(Qe=>Qe.length>0);D[le.id]={answers:rt}}r("respondServerRequest",{id:x.id,result:{answers:D}})}function Ue(x){r("respondServerRequest",{id:x.id,result:{success:!1,contentItems:[{type:"inputText",text:"Tool call rejected from CodexUI."}]}})}function ke(x){r("respondServerRequest",{id:x.id,result:{success:!0,contentItems:[]}})}function ye(x){r("respondServerRequest",{id:x.id,result:{}})}function $e(x){r("respondServerRequest",{id:x.id,error:{code:-32e3,message:"Rejected from CodexUI."}})}return(x,$)=>e.request?(A(),L("section",XN,[y("article",{class:pt(["thread-pending-request-shell",{"thread-pending-request-shell--no-top-radius":e.hasQueueAbove}])},[O(e.request)?(A(),L(Xe,{key:0},[y("p",QN,ge(re(e.request)),1),he(e.request)?(A(),L("p",{key:0,class:"thread-pending-request-command-line",title:he(e.request)},ge(he(e.request)),9,ZN)):Se("",!0),y("section",eO,[y("div",tO,[(A(!0),L(Xe,null,Bt(ue.value,(D,X)=>(A(),L("button",{key:D.id,type:"button",class:pt(["thread-pending-request-option",{"is-selected":o.value===D.id}]),"aria-pressed":o.value===D.id,onClick:le=>Q(D.id)},[y("span",rO,ge(X+1)+".",1),y("span",oO,ge(D.label),1)],10,nO))),128))]),y("footer",sO,[y("label",{class:pt(["thread-pending-request-inline-input",{"is-active":o.value==="decline"||s.value.length>0}])},[$[11]||($[11]=y("span",{class:"thread-pending-request-option-index"},"3.",-1)),y("input",{class:"thread-pending-request-inline-control",type:"text",value:s.value,placeholder:"No, and tell Codex what to do differently",onFocus:ee,onInput:te,onKeydown:$[0]||($[0]=Sn(_t(D=>pe(e.request),["prevent"]),["enter"]))},null,40,iO)],2),y("button",{type:"button",class:"thread-pending-request-secondary",onClick:$[1]||($[1]=D=>ie(e.request,"cancel"))}," Skip "),y("button",{type:"button",class:"thread-pending-request-primary",onClick:$[2]||($[2]=D=>pe(e.request))}," Send ")])])],64)):(A(),L(Xe,{key:1},[y("header",aO,[y("div",lO,[y("p",cO,ge(ce(e.request)),1),y("p",uO,ge(re(e.request)),1)]),(e.requestCount??0)>1?(A(),L("span",dO,ge(e.requestCount??0)+" pending",1)):Se("",!0)]),he(e.request)?(A(),L("div",fO,[y("code",pO,ge(he(e.request)),1)])):Se("",!0),e.request.method==="mcpServer/elicitation/request"?(A(),L("section",hO,[Be(e.request)?(A(),L("p",mO," Server: "+ge(Be(e.request)),1)):Se("",!0),Re(e.request)?(A(),L("a",{key:1,class:"thread-pending-request-link",href:Re(e.request),target:"_blank",rel:"noopener noreferrer"}," Open authorization link ",8,gO)):Se("",!0),(A(!0),L(Xe,null,Bt(Ge(e.request),D=>(A(),L("div",{key:`${e.request.id}:${D.key}`,class:"thread-pending-request-question"},[y("p",vO,[$s(ge(D.label),1),D.required?(A(),L("span",yO," *")):Se("",!0)]),D.description?(A(),L("p",_O,ge(D.description),1)):Se("",!0),D.kind==="string"||D.kind==="number"?(A(),L("label",bO,[$[12]||($[12]=y("span",{class:"thread-pending-request-select-label"},"Value",-1)),y("input",{class:"thread-pending-request-input",type:D.inputType,value:String(Ke(e.request.id,D)??""),onInput:X=>be(e.request.id,D,X)},null,40,wO)])):D.kind==="boolean"?(A(),L("label",SO,[$[15]||($[15]=y("span",{class:"thread-pending-request-select-label"},"Choice",-1)),y("select",{class:"thread-pending-request-select",value:Ze(Ke(e.request.id,D)),onChange:X=>we(e.request.id,D,X)},[D.hasExplicitDefault?Se("",!0):(A(),L("option",EO,"Select true or false")),$[13]||($[13]=y("option",{value:"true"},"True",-1)),$[14]||($[14]=y("option",{value:"false"},"False",-1))],40,TO)])):D.kind==="singleEnum"?(A(),L("label",kO,[$[16]||($[16]=y("span",{class:"thread-pending-request-select-label"},"Choice",-1)),y("select",{class:"thread-pending-request-select",value:String(Ke(e.request.id,D)??""),onChange:X=>be(e.request.id,D,X)},[D.hasExplicitDefault?Se("",!0):(A(),L("option",AO,"Select an option")),(A(!0),L(Xe,null,Bt(D.options,X=>(A(),L("option",{key:`${e.request.id}:${D.key}:${X.value}`,value:X.value},ge(X.label),9,CO))),128))],40,IO)])):(A(),L("div",xO,[(A(!0),L(Xe,null,Bt(D.options,X=>(A(),L("label",{key:`${e.request.id}:${D.key}:${X.value}`,class:"thread-pending-request-checkbox-row"},[y("input",{class:"thread-pending-request-checkbox",type:"checkbox",checked:J(e.request.id,D).includes(X.value),onChange:le=>ve(e.request.id,D,X.value,le)},null,40,RO),y("span",MO,ge(X.label),1)]))),128))]))]))),128)),c.value?(A(),L("p",PO,ge(c.value),1)):Se("",!0),y("footer",$O,[y("button",{type:"button",class:"thread-pending-request-secondary",onClick:$[3]||($[3]=D=>me(e.request,"cancel"))}," Cancel "),y("button",{type:"button",class:"thread-pending-request-secondary",onClick:$[4]||($[4]=D=>me(e.request,"decline"))}," Decline "),y("button",{type:"button",class:"thread-pending-request-primary",onClick:$[5]||($[5]=D=>me(e.request,"accept"))}," Continue ")])])):e.request.method==="item/tool/requestUserInput"?(A(),L("section",NO,[(A(!0),L(Xe,null,Bt(ae(e.request),D=>{var X;return A(),L("div",{key:`${e.request.id}:${D.id}`,class:"thread-pending-request-question"},[y("p",OO,ge(D.header||D.question),1),D.question?(A(),L("p",LO,ge(D.question),1)):Se("",!0),D.options.length>0?(A(),L("div",DO,[y("label",jO,[$[17]||($[17]=y("span",{class:"thread-pending-request-select-label"},"Choice",-1)),y("select",{class:"thread-pending-request-select",value:xe(e.request.id,D.id,((X=D.options[0])==null?void 0:X.label)||""),onChange:le=>_e(e.request.id,D.id,le)},[(A(!0),L(Xe,null,Bt(D.options,le=>(A(),L("option",{key:`${e.request.id}:${D.id}:${le.label}`,value:le.label},ge(le.label),9,BO))),128))],40,FO)]),fe(e.request.id,D.id,D.options)?(A(),L("p",qO,ge(fe(e.request.id,D.id,D.options)),1)):Se("",!0)])):Se("",!0),D.isOther?(A(),L("label",UO,[$[18]||($[18]=y("span",{class:"thread-pending-request-select-label"},"Other answer",-1)),y("input",{class:"thread-pending-request-input",type:"text",value:Fe(e.request.id,D.id),placeholder:"Other answer",onInput:le=>Me(e.request.id,D.id,le)},null,40,HO)])):Se("",!0)])}),128)),y("footer",WO,[y("button",{type:"button",class:"thread-pending-request-primary",onClick:$[6]||($[6]=D=>ne(e.request))}," Send ")])])):e.request.method==="item/tool/call"?(A(),L("section",VO,[y("button",{type:"button",class:"thread-pending-request-primary",onClick:$[7]||($[7]=D=>Ue(e.request))}," Fail Tool Call "),y("button",{type:"button",class:"thread-pending-request-secondary",onClick:$[8]||($[8]=D=>ke(e.request))}," Success (Empty) ")])):(A(),L("section",zO,[y("button",{type:"button",class:"thread-pending-request-primary",onClick:$[9]||($[9]=D=>ye(e.request))}," Return Empty Result "),y("button",{type:"button",class:"thread-pending-request-secondary",onClick:$[10]||($[10]=D=>$e(e.request))}," Reject Request ")]))],64))],2)])):Se("",!0)}}),KO=Et(GO,[["__scopeId","data-v-a033894d"]]),YO={key:0,class:"queued-messages"},JO={class:"queued-messages-inner"},XO={class:"queued-row-text"},QO={class:"queued-row-actions"},ZO=["onClick"],eL=["onClick"],tL=["onClick"],nL=An({__name:"QueuedMessages",props:{messages:{}},emits:["edit","steer","delete"],setup(e){function t(n){var l,c,d;const r=n.text.trim();if(r)return r;const o=[],s=((l=n.imageUrls)==null?void 0:l.length)??0,i=((c=n.fileAttachments)==null?void 0:c.length)??0,a=((d=n.skills)==null?void 0:d.length)??0;return s>0&&o.push(`${s} image${s===1?"":"s"}`),i>0&&o.push(`${i} file${i===1?"":"s"}`),a>0&&o.push(`${a} skill${a===1?"":"s"}`),o.join(", ")||"(empty queued message)"}return(n,r)=>e.messages.length>0?(A(),L("div",YO,[y("div",JO,[(A(!0),L(Xe,null,Bt(e.messages,o=>(A(),L("div",{key:o.id,class:"queued-row"},[r[1]||(r[1]=y("svg",{class:"queued-row-icon",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})],-1)),y("span",XO,ge(t(o)),1),y("div",QO,[y("button",{class:"queued-row-edit",type:"button",title:"Edit queued message",onClick:s=>n.$emit("edit",o.id)},"Edit",8,ZO),y("button",{class:"queued-row-steer",type:"button",title:"Send now without interrupting work",onClick:s=>n.$emit("steer",o.id)},"Steer",8,eL),y("button",{class:"queued-row-delete",type:"button","aria-label":"Delete queued message",title:"Delete queued message",onClick:s=>n.$emit("delete",o.id)},[...r[0]||(r[0]=[y("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"},[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 7h16M10 11v6M14 11v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3"})],-1)])],8,tL)])]))),128))])])):Se("",!0)}}),rL=Et(nL,[["__scopeId","data-v-835c6739"]]),oL={key:0,class:"rate-limit-status","aria-live":"polite"},sL=["title"],iL={class:"rate-limit-card-header"},aL={class:"rate-limit-card-title"},lL={key:0,class:"rate-limit-card-plan"},cL={class:"rate-limit-card-metrics"},uL={key:0,class:"rate-limit-card-footer"},dL=An({__name:"RateLimitStatus",props:{snapshots:{}},setup(e){function t(P){var O,W;return((O=P.limitId)==null?void 0:O.trim())||((W=P.limitName)==null?void 0:W.trim())||"__default__"}function n(P){var O,W;return((O=P.limitName)==null?void 0:O.trim())||((W=P.limitId)==null?void 0:W.trim())||"Rate limits"}function r(P){const O=P.trim();return O?O.replace(/[_-]+/g," ").replace(/\b\w/g,W=>W.toUpperCase()):""}function o(P){return!P||P<=0?"Window":P%1440===0?`${P/1440}d`:P%60===0?`${P/60}h`:P<60?`${P}m`:`${Math.round(P/60*10)/10}h`}function s(P){const O=Math.max(0,Math.min(100,100-P));return`${Math.round(O)}% left`}function i(P){return`${Math.round(P)}%`}function a(P,O){return{key:O,label:`${o(P.windowDurationMins)} ${s(P.usedPercent)}`}}function l(P){const O=[];return P.primary&&O.push(a(P.primary,"primary")),P.secondary&&O.push(a(P.secondary,"secondary")),O}function c(P){if(!P)return"";const O=new Date(P*1e3),W=O.getMonth()+1,Y=String(O.getDate()).padStart(2,"0"),ce=String(O.getHours()).padStart(2,"0"),re=String(O.getMinutes()).padStart(2,"0");return`${W}.${Y} ${ce}:${re}`}function d(P){if(!(P!=null&&P.resetsAt))return"";const O=P.resetsAt*1e3-Date.now();if(O<=0)return"Resetting now";const W=Math.round(O/6e4);if(W<60)return`Resets in ${W}m`;const Y=Math.round(W/60);return Y<24?`Resets in ${Y}h`:`Resets in ${Math.round(Y/24)}d`}function f(P){return[P.primary,P.secondary].filter(O=>O!==null)}function m(P){const O=f(P);return O.length===0?null:[...O].sort((W,Y)=>{const ce=W.windowDurationMins??Number.MAX_SAFE_INTEGER,re=Y.windowDurationMins??Number.MAX_SAFE_INTEGER;return ce!==re?ce-re:(W.resetsAt??Number.MAX_SAFE_INTEGER)-(Y.resetsAt??Number.MAX_SAFE_INTEGER)})[0]}function v(P){const O=f(P);if(O.length===0)return"";const W=[...O].sort((ce,re)=>{const Z=ce.windowDurationMins??-1,he=re.windowDurationMins??-1;return Z!==he?he-Z:(re.resetsAt??-1)-(ce.resetsAt??-1)})[0],Y=c(W.resetsAt);return Y||""}function T(P){const O=P.credits;return O?O.unlimited?"Unlimited credits":O.balance?`Credits ${O.balance}`:O.hasCredits?"Credits available":"":""}function k(P){return[d(m(P)),v(P),T(P)].filter(O=>O.length>0)}function H(P){const O=[n(P)];for(const W of l(P))O.push(W.label);for(const W of f(P))O.push(`${o(W.windowDurationMins)} used ${i(W.usedPercent)}`);for(const W of k(P))O.push(W);return O.join(`
77
- `)}return(P,O)=>e.snapshots.length>0?(A(),L("aside",oL,[(A(!0),L(Xe,null,Bt(e.snapshots,W=>(A(),L("div",{key:t(W),class:"rate-limit-card",title:H(W)},[y("div",iL,[y("span",aL,ge(n(W)),1),W.planType?(A(),L("span",lL,ge(r(W.planType)),1)):Se("",!0)]),y("div",cL,[(A(!0),L(Xe,null,Bt(l(W),Y=>(A(),L("span",{key:Y.key,class:"rate-limit-card-metric"},ge(Y.label),1))),128))]),k(W).length>0?(A(),L("div",uL,ge(k(W).join(" | ")),1)):Se("",!0)],8,sL))),128))])):Se("",!0)}}),fL=Et(dL,[["__scopeId","data-v-df88906b"]]),pL={class:"runtime-toggle",role:"radiogroup","aria-label":"Continue in"},hL=["aria-checked","onClick"],mL={class:"runtime-toggle-option-label"},gL=An({__name:"ComposerRuntimeDropdown",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,r=[{value:"local",label:"Local project",icon:lp},{value:"worktree",label:"New worktree",icon:Ul}];function o(s){n("update:modelValue",s)}return(s,i)=>(A(),L("div",pL,[(A(),L(Xe,null,Bt(r,a=>y("button",{key:a.value,class:pt(["runtime-toggle-option",{"is-selected":e.modelValue===a.value}]),type:"button",role:"radio","aria-checked":e.modelValue===a.value,onClick:l=>o(a.value)},[(A(),yt(Ef(a.icon),{class:"runtime-toggle-option-icon"})),y("span",mL,ge(a.label),1)],10,hL)),64))]))}}),vL=Et(gL,[["__scopeId","data-v-e8b0d0ac"]]),yL={},_L={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function bL(e,t){return A(),L("svg",_L,[...t[0]||(t[0]=[y("path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12"},null,-1),y("path",{d:"M9 4l0 16"},null,-1)])])}const wL=Et(yL,[["render",bL]]),SL={},TL={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true"};function EL(e,t){return A(),L("svg",TL,[...t[0]||(t[0]=[y("path",{d:"M6 21a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3zm12 -16h-8v14h8a1 1 0 0 0 1 -1v-12a1 1 0 0 0 -1 -1"},null,-1)])])}const kL=Et(SL,[["render",EL]]),IL={class:"sidebar-thread-controls"},AL=["aria-label","title"],CL=An({__name:"SidebarThreadControls",props:{isSidebarCollapsed:{type:Boolean},showNewThreadButton:{type:Boolean}},emits:["toggle-sidebar","start-new-thread"],setup(e){return(t,n)=>(A(),L("div",IL,[y("button",{class:"sidebar-thread-controls-button",type:"button","aria-label":e.isSidebarCollapsed?"Expand sidebar":"Collapse sidebar",title:e.isSidebarCollapsed?"Expand sidebar":"Collapse sidebar",onClick:n[0]||(n[0]=r=>t.$emit("toggle-sidebar"))},[e.isSidebarCollapsed?(A(),yt(kL,{key:0,class:"sidebar-thread-controls-icon"})):(A(),yt(wL,{key:1,class:"sidebar-thread-controls-icon"}))],8,AL),co(t.$slots,"default",{},void 0),e.showNewThreadButton?(A(),L("button",{key:0,class:"sidebar-thread-controls-button",type:"button","aria-label":"Start new thread",title:"Start new thread",onClick:n[1]||(n[1]=r=>t.$emit("start-new-thread"))},[ze(ac,{class:"sidebar-thread-controls-icon"})])):Se("",!0)]))}}),Zm=Et(CL,[["__scopeId","data-v-46a10052"]]),xL={},RL={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function ML(e,t){return A(),L("svg",RL,[...t[0]||(t[0]=[y("circle",{cx:"11",cy:"11",r:"8"},null,-1),y("path",{d:"m21 21-4.35-4.35"},null,-1)])])}const eg=Et(xL,[["render",ML]]),PL={},$L={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function NL(e,t){return A(),L("svg",$L,[...t[0]||(t[0]=[y("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[y("path",{d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065"}),y("path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0"})],-1)])])}const OL=Et(PL,[["render",NL]]),LL={},DL={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function jL(e,t){return A(),L("svg",DL,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M18 6L6 18M6 6l12 12"},null,-1)])])}const FL=Et(LL,[["render",jL]]);function oo(e){return e.flatMap(t=>t.threads)}const W_="codex-web-local.thread-read-state.v1",V_="codex-web-local.thread-scroll-state.v1",z_="codex-web-local.thread-token-usage.v1",of="codex-web-local.selected-thread-id.v1",sf="codex-web-local.selected-model-by-context.v1",G_="codex-web-local.selected-model-id.v1",K_="codex-web-local.project-order.v1",Y_="codex-web-local.project-display-name.v1",af="codex-web-local.collaboration-mode-by-context.v1",J_="codex-web-local.collaboration-mode.v1",Wa="__new-thread__",ld=220,BL=500,qL=3e3,tg=["none","minimal","low","medium","high","xhigh"],Qs="__global__",jr="gpt-5.2-codex";function UL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(W_);if(!e)return{};const t=JSON.parse(e);return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return{}}}function ng(e){typeof window>"u"||window.localStorage.setItem(W_,JSON.stringify(e))}function lf(e){return e==="plan"?"plan":"default"}function lc(e){return typeof e=="string"?e.trim():""}function qr(){return Object.create(null)}function cd(e){const t=qr();for(const[n,r]of Object.entries(e))t[n]=r;return t}function ud(e,t){if(!(t in e))return e;const n=qr();for(const[r,o]of Object.entries(e))r!==t&&(n[r]=o);return n}function rg(e,t){let n=!1;const r=qr();for(const[o,s]of Object.entries(e)){if(o===Wa||t.has(o)){r[o]=s;continue}n=!0}return n?r:e}function cc(e){return e.trim()||Wa}function HL(){if(typeof window>"u")return qr();try{const n=window.localStorage.getItem(sf);if(n){const r=JSON.parse(n);if(!r||typeof r!="object"||Array.isArray(r))return qr();const o=qr();for(const[s,i]of Object.entries(r)){if(typeof s!="string"||s.length===0)continue;const a=lc(i);a&&(o[s]=a)}return o}}catch{}const e=lc(window.localStorage.getItem(G_)),t=qr();return e&&(t[Wa]=e),t}function og(e,t){const n=cc(t),r=lc(e[n]);return r||lc(e[Wa])}function dd(e){if(!(typeof window>"u"))try{Object.keys(e).length===0?window.localStorage.removeItem(sf):window.localStorage.setItem(sf,JSON.stringify(e)),window.localStorage.removeItem(G_)}catch{}}function WL(){if(typeof window>"u")return qr();try{const n=window.localStorage.getItem(af);if(n){const r=JSON.parse(n);if(!r||typeof r!="object"||Array.isArray(r))return qr();const o=qr();for(const[s,i]of Object.entries(r)){if(typeof s!="string"||s.length===0)continue;const a=lf(i);a==="plan"&&(o[s]=a)}return o}}catch{}const e=lf(window.localStorage.getItem(J_)),t=qr();return e==="plan"&&(t[Wa]="plan"),t}function Sl(e,t){const n=cc(t);return lf(e[n])}function sg(e){if(!(typeof window>"u"))try{Object.keys(e).length===0?window.localStorage.removeItem(af):window.localStorage.setItem(af,JSON.stringify(e)),window.localStorage.removeItem(J_)}catch{}}function ia(e,t,n){return Math.min(Math.max(e,t),n)}function VL(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e;if(typeof t.scrollTop!="number"||!Number.isFinite(t.scrollTop)||typeof t.isAtBottom!="boolean")return null;const n={scrollTop:Math.max(0,t.scrollTop),isAtBottom:t.isAtBottom};return typeof t.scrollRatio=="number"&&Number.isFinite(t.scrollRatio)&&(n.scrollRatio=ia(t.scrollRatio,0,1)),n}function zL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(V_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){if(!r)continue;const s=VL(o);s&&(n[r]=s)}return n}catch{return{}}}function ig(e){typeof window>"u"||window.localStorage.setItem(V_,JSON.stringify(e))}function ri(e){if(typeof e=="number"&&Number.isFinite(e))return Math.max(0,Math.trunc(e));if(typeof e=="string"&&e.trim().length>0){const t=Number(e);if(Number.isFinite(t))return Math.max(0,Math.trunc(t))}return null}function ag(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e;return{totalTokens:ri(t.totalTokens)??0,inputTokens:ri(t.inputTokens)??0,cachedInputTokens:ri(t.cachedInputTokens)??0,outputTokens:ri(t.outputTokens)??0,reasoningOutputTokens:ri(t.reasoningOutputTokens)??0}}function GL(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,n=ag(t.total),r=ag(t.last);if(!n||!r)return null;const o=ri(t.modelContextWindow),s=r.totalTokens,i=typeof o=="number"?Math.max(o-s,0):null,a=typeof o=="number"&&o>0?ia(Math.round((i??0)/o*100),0,100):null;return{total:n,last:r,modelContextWindow:o,currentContextTokens:s,remainingContextTokens:i,remainingContextPercent:a}}function KL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(z_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){if(!r)continue;const s=GL(o);s&&(n[r]=s)}return n}catch{return{}}}function lg(e){typeof window>"u"||window.localStorage.setItem(z_,JSON.stringify(e))}function YL(){return typeof window>"u"?"":window.localStorage.getItem(of)??""}function JL(e){if(!(typeof window>"u")){if(!e){window.localStorage.removeItem(of);return}window.localStorage.setItem(of,e)}}function XL(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(K_);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=[];for(const r of t){if(typeof r!="string"||r.length===0)continue;const o=Ha(r);o.length>0&&!n.includes(o)&&n.push(o)}return n}catch{return[]}}function Zs(e){typeof window>"u"||window.localStorage.setItem(K_,JSON.stringify(e))}function QL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(Y_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){const s=typeof r=="string"?Ha(r):"";s.length>0&&typeof o=="string"&&(n[s]=o)}return n}catch{return{}}}function fd(e){typeof window>"u"||window.localStorage.setItem(Y_,JSON.stringify(e))}function Tl(e,t){const n=[];for(const r of e)n.includes(r)||n.push(r);for(const r of t)n.includes(r.projectName)||n.push(r.projectName);return Jo(e,n)?e:n}function pd(e,t){const n=new Map(e.map(o=>[o.projectName,o])),r=t.map(o=>n.get(o)??null).filter(o=>o!==null&&o.threads.length>0);for(const o of e)t.includes(o.projectName)||r.push(o);return r}function Jo(e,t){const n=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(n.length!==r.length)return!1;for(let o=0;o<n.length;o+=1)if(n[o]!==r[o])return!1;return!0}function ZL(e,t,n){if(t<0||t>=e.length||n<0||n>=e.length||t===n)return e;const r=[...e],[o]=r.splice(t,1);return r.splice(n,0,o),r}function eD(e,t){return!e&&!t?!0:!e||!t?!1:e.status===t.status&&e.aggregatedOutput===t.aggregatedOutput&&e.exitCode===t.exitCode}function tD(e=[],t=[]){var n,r,o,s;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i+=1)if(((n=e[i])==null?void 0:n.step)!==((r=t[i])==null?void 0:r.step)||((o=e[i])==null?void 0:o.status)!==((s=t[i])==null?void 0:s.status))return!1;return!0}function nD(e,t){return!e&&!t?!0:!e||!t?!1:e.explanation===t.explanation&&e.isStreaming===t.isStreaming&&tD(e.steps,t.steps)}function El(e){if(!(e instanceof Error))return!1;const t=e.message.toLowerCase();return t.includes("not supported when using codex with a chatgpt account")||t.includes("model is not supported")}function cf(e,t){return e.id===t.id&&e.role===t.role&&e.text===t.text&&Jo(e.images,t.images)&&oD(e.fileChanges,t.fileChanges)&&e.fileChangeStatus===t.fileChangeStatus&&e.messageType===t.messageType&&e.rawPayload===t.rawPayload&&e.isUnhandled===t.isUnhandled&&eD(e.commandExecution,t.commandExecution)&&nD(e.plan,t.plan)&&e.turnId===t.turnId&&e.turnIndex===t.turnIndex}function ii(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function rD(e,t,n={}){const r=new Map(e.map(d=>[d.id,d])),o=new Map(t.map(d=>[d.id,d])),s=t.map(d=>{const f=r.get(d.id);return f&&cf(f,d)?f:d});if(n.preserveMissing!==!0)return ii(e,s)?e:s;const i=e.map(d=>{const f=o.get(d.id);return!f||cf(d,f)?d:f}),a=new Set(e.map(d=>d.id)),l=s.filter(d=>!a.has(d.id)),c=[...i,...l];return ii(e,c)?e:c}function oD(e,t){if(!e&&!t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){const r=e[n],o=t[n];if(r.path!==o.path||r.operation!==o.operation||r.movedToPath!==o.movedToPath||r.diff!==o.diff||r.addedLineCount!==o.addedLineCount||r.removedLineCount!==o.removedLineCount)return!1}return!0}function uf(e){return e.replace(/\s+/gu," ").trim()}function sD(e,t){const n=new Set(t.filter(o=>o.role==="assistant").map(o=>uf(o.text)).filter(o=>o.length>0));if(n.size===0)return e;const r=e.filter(o=>{if(o.messageType!=="agentMessage.live")return!0;const s=uf(o.text);return s.length===0?!1:!n.has(s)});return r.length===e.length?e:r}function kl(e,t){const n=e.findIndex(s=>s.id===t.id);if(n<0)return[...e,t];const r=e[n];if(cf(r,t))return e;const o=[...e];return o.splice(n,1,t),o}const X_="worked";function zo(e){if(!e)return null;const t=new Date(e).getTime();return Number.isNaN(t)?null:t}function iD(e){if(!Number.isFinite(e)||e<=0)return"<1s";const t=Math.max(1,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60,s=[];n>0&&s.push(`${n}h`),(r>0||n>0)&&s.push(`${r}m`);const i=o>0||s.length===0?o:0;return s.push(`${i}s`),s.join(" ")}function aD(e,t){return!e&&!t?!0:!e||!t?!1:e.turnId===t.turnId&&e.durationMs===t.durationMs}function lD(e,t){if(!e&&!t)return!0;if(!e||!t||e.label!==t.label||e.details.length!==t.details.length)return!1;for(let n=0;n<e.details.length;n+=1)if(e.details[n]!==t.details[n])return!1;return!0}function cD(e){return{id:`turn-summary:${e.turnId}`,role:"system",text:`Worked for ${iD(e.durationMs)}`,messageType:X_,turnId:e.turnId}}function uD(e){for(let t=e.length-1;t>=0;t-=1)if(e[t].role==="assistant")return t;return-1}function dD(e,t){const n=cD(t),r=e.filter(i=>i.messageType!==X_),o=uD(r);if(o<0)return[...r,n];const s=[...r];return s.splice(o,0,n),s}function Ot(e,t){if(!(t in e))return e;const n={...e};return delete n[t],n}function fD(e,t){if(t.size===0)return e;let n=!1;const r={};for(const[o,s]of Object.entries(e)){if(t.has(o)){n=!0;continue}r[o]=s}return n?r:e}function pD(e,t){return e.id===t.id&&e.title===t.title&&e.projectName===t.projectName&&e.cwd===t.cwd&&e.createdAtIso===t.createdAtIso&&e.updatedAtIso===t.updatedAtIso&&e.preview===t.preview&&e.unread===t.unread&&e.inProgress===t.inProgress&&e.pendingRequestState===t.pendingRequestState}function hD(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function mD(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function un(e,t){const n=Object.entries(e).filter(([r])=>t.has(r));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}function Il(e,t){const n=new Map(e.map(o=>[o.projectName,o])),r=t.map(o=>{const s=n.get(o.projectName),i=new Map((s==null?void 0:s.threads.map(l=>[l.id,l]))??[]),a=o.threads.map(l=>{const c=i.get(l.id);return c&&pD(c,l)?c:l});return s&&s.projectName===o.projectName&&hD(s.threads,a)?s:{projectName:o.projectName,threads:a}});return mD(e,r)?e:r}function gD(e,t,n){const r=new Set(oo(t).map(a=>a.id)),o=oo(e).filter(a=>n[a.id]===!0&&!r.has(a.id));if(o.length===0)return t;const s=new Map(t.map(a=>[a.projectName,a])),i=t.map(a=>({projectName:a.projectName,threads:[...a.threads]}));for(const a of o){if(s.get(a.projectName)){const c=i.findIndex(d=>d.projectName===a.projectName);c>=0&&(i[c]={projectName:i[c].projectName,threads:[a,...i[c].threads]});continue}i.push({projectName:a.projectName,threads:[a]})}return i}function Go(e){return Ha(e)}function vD(e){const t=e.split(`
78
- `).map(n=>n.trim()).find(n=>n.length>0);return t?t.slice(0,80):"Untitled thread"}function yD(e){const t=e.trim()||"Untitled thread";return/^fork:\s+/iu.test(t)?t:`Fork: ${t}`}function _D(){const e=j([]),t=j([]),n=j(YL()),r=j({}),o=j({}),s=j({}),i=j({}),a=j({}),l=j({}),c=j({}),d=j({}),f=j({}),m=j({}),v=j([]),T=j([{value:"default",label:"Default"},{value:"plan",label:"Plan"}]),k=j(WL()),H=j(HL()),P=j(Sl(k.value,n.value)),O=j(og(H.value,n.value)),W=j("medium"),Y=j("standard"),ce=j(UL()),re=j(zL()),Z=j(XL()),he=j(QL()),Ce=j({}),Ae=j({}),ue=j({}),V=j({}),ae=j({}),xe=j({}),Fe=j({}),_e=j({}),Me=j({}),fe=j({}),De=j(null),Be=j(KL()),Re=j({}),Ge=j([]),ot=j([]),nt=j(!1),st=j(!1),Ke=j(!1),J=j(!1),be=j(!1),we=j(!1),ve=j(""),Ze=j(!1),E=j(!1);let I=null,q=null,Q=null;const ee=new Map;let te=null,ie=!1;const pe=new Set;let me=!1,ne=!1;const Ue=new Map,ke=new Set,ye=se(()=>oo(e.value)),$e=se(()=>ye.value.find(u=>u.id===n.value)??null),x=se(()=>re.value[n.value]??null),$=se(()=>{const u=[],p=n.value;return p&&Array.isArray(Me.value[p])&&u.push(...Me.value[p]),Array.isArray(Me.value[Qs])&&u.push(...Me.value[Qs]),u.sort((g,b)=>g.receivedAtIso.localeCompare(b.receivedAtIso))}),D=se(()=>{var F;const u=n.value;if(!u)return null;const p=xe.value[u],g=(i.value[u]??"").trim(),b=(((F=Fe.value[u])==null?void 0:F.message)??"").trim();return!p&&!g&&!b?null:{activityLabel:(p==null?void 0:p.label)||"Thinking",activityDetails:(p==null?void 0:p.details)??[],reasoningText:g,errorText:b}}),X=se(()=>De.value),le=se(()=>{const u=n.value;return u?Be.value[u]??null:null}),Le=se(()=>{const u=n.value;if(!u)return[];const p=r.value[u]??[],g=o.value[u]??[],b=s.value[u]??[],F=a.value[u]??[],B=l.value[u]??[],U=[...p,...g,...F,...B,...b],G=ae.value[u];return G?dD(U,G):U});function Ne(u){return og(H.value,u).trim()}function rt(...u){const p=[...v.value];for(const g of u){const b=g.trim();b&&!p.includes(b)&&p.push(b)}Jo(v.value,p)||(v.value=p)}function Qe(u){n.value!==u&&(n.value=u,JL(u),O.value=Ne(u),rt(O.value),P.value=Sl(k.value,u),ne=!1)}function wt(u){const p=u.trim(),g=cc(n.value);if(p){const b=cd(H.value);b[g]=p,H.value=b}else H.value=ud(H.value,g);O.value=Ne(n.value),rt(O.value),dd(H.value),pr({category:"ui.model",message:`model → ${O.value}`,level:"info"})}function Rt(u,p){const g=u.trim();if(!g)return;const b=p.trim();if(b){const F=cd(H.value);F[g]=b,H.value=F}else H.value=ud(H.value,g);rt(b),n.value===g&&(O.value=Ne(n.value)),dd(H.value)}function ct(u,p){const g=u.trim();if(!g)return;if(!p){if(!(g in Be.value))return;Be.value=Ot(Be.value,g),lg(Be.value);return}const b=Be.value[g];b&&JSON.stringify(b)===JSON.stringify(p)||(Be.value={...Be.value,[g]:p},lg(Be.value))}function Qt(u){const p=u==="plan"?"plan":"default",g=cc(n.value);if(!(Sl(k.value,n.value)===p&&P.value===p)){if(P.value=p,p==="plan"){const F=cd(k.value);F[g]=p,k.value=F}else k.value=ud(k.value,g);sg(k.value)}}function mn(u){De.value=u}async function ar(u=n.value){u.trim()?Rt(u,jr):wt(jr),rt(jr)}function Xn(u,p){fe.value={...fe.value,[u]:p}}function mr(u){fe.value[u]&&(fe.value=Ot(fe.value,u))}async function Ut(u){if(ke.has(u))return;const p=fe.value[u];if(!(!p||p.fallbackRetried)){ke.add(u),Xn(u,{...p,fallbackRetried:!0});try{await ar(u);try{const g=await td(u,1);xn(u,g),Rn(u),ln(u,[]),_n(u),a.value[u]&&(a.value=Ot(a.value,u))}catch{}gt(u,null),ve.value="",Vt(u,null),dt(u,{label:"Thinking",details:Wt(jr,p.effort,p.collaborationMode)}),Mt(u,!0),ue.value[u]!==!0&&await ed(u),await nd(u,p.text,p.imageUrls,jr,p.effort||void 0,p.skills.length>0?p.skills:void 0,p.fileAttachments,p.collaborationMode),ue.value={...ue.value,[u]:!0},vr(),pe.add(u),ie=!0,await Dr()}catch(g){const b=g instanceof Error?g.message:"Unknown application error";gt(u,b),ve.value=b,Mt(u,!1),dt(u,null)}finally{ke.delete(u)}}}function Zt(u){u&&!tg.includes(u)||(W.value=u)}async function Ht(u){const p=u==="fast"?"fast":"standard";if(be.value||Y.value===p)return;const g=Y.value;Y.value=p,be.value=!0,ve.value="";try{await HR(p)}catch(b){Y.value=g,ve.value=b instanceof Error?b.message:"Failed to update Fast mode"}finally{be.value=!1}}async function gr(){try{const u=await VR();T.value=u,u.some(p=>p.value===P.value)||Qt("default")}catch{}}function Wt(u,p,g=P.value){const b=u.trim()||"default",F=p||"default",B=g==="plan"?"Plan":"Default",U=Y.value==="fast"?"Fast":"Standard";return[`Mode: ${B}`,`Model: ${b}`,`Thinking: ${F}`,`Speed: ${U}`]}async function Yr(){try{const[u,p]=await Promise.all([q_(),U_()]),g=Ne(n.value),b=p.model.trim(),F=[...u];for(const B of[g,b])B&&!F.includes(B)&&F.push(B);v.value=F,g||(b&&F.includes(b)?wt(p.model):F.length>0?wt(F[0]):wt("")),p.reasoningEffort&&tg.includes(p.reasoningEffort)&&(W.value=p.reasoningEffort),Y.value=p.speedMode}catch{}}async function jn(){if(te){await te;return}te=(async()=>{try{ot.value=er(await qm())}catch{}finally{te=null}})(),await te}function vr(){if(typeof window>"u"){jn();return}Q!==null&&window.clearTimeout(Q),Q=window.setTimeout(()=>{Q=null,jn()},BL)}function Mr(u){if(!u||typeof window>"u")return;const p=ee.get(u);p!==void 0&&(window.clearTimeout(p),ee.delete(u))}function ho(u){if(!u||typeof window>"u")return;Mr(u);const p=window.setTimeout(()=>{ee.delete(u),pe.add(u),Dr()},qL);ee.set(u,p)}function Fn(u){const p=Re.value;return Object.keys(p).length===0?u:u.map(g=>({projectName:g.projectName,threads:g.threads.map(b=>{const F=p[b.id];return F?{...b,title:F}:b})}))}function en(u){return u?Array.isArray(Me.value[u])?Me.value[u]:[]:[]}function Pr(u){return u==="item/commandExecution/requestApproval"||u==="item/fileChange/requestApproval"||u==="item/permissions/requestApproval"||u==="execCommandApproval"||u==="applyPatchApproval"}function Cn(u){return u.some(p=>Pr(p.method))?"approval":u.length>0?"response":null}function Dt(){const p=Fn(t.value).map(g=>({projectName:g.projectName,threads:g.threads.map(b=>{const F=c.value[b.id]===!0,B=Cn(en(b.id)),U=n.value===b.id,G=ce.value[b.id],oe=m.value[b.id]===!0,je=!U&&!F&&(oe||G!==b.updatedAtIso);return{...b,inProgress:F,unread:je,pendingRequestState:B}})}));e.value=Il(e.value,p)}function lr(u,p,g){const b=new Date().toISOString(),F=nn(p),B=Ha(F),U={id:u,title:vD(g),projectName:B,cwd:F,hasWorktree:F.includes("/.codex/worktrees/")||F.includes("/.git/worktrees/"),createdAtIso:b,updatedAtIso:b,preview:g,unread:!1,inProgress:!1},G=t.value.findIndex(je=>je.projectName===B);if(G>=0){const We=t.value[G].threads.filter(tn=>tn.id!==u),ft={projectName:B,threads:[U,...We]},vt=[...t.value];vt.splice(G,1,ft),t.value=vt}else t.value=[{projectName:B,threads:[U]},...t.value];const oe=Tl(Z.value,t.value);Jo(Z.value,oe)||(Z.value=oe,Zs(Z.value)),Dt()}function $r(u){const p=new Set(u.map(G=>G.id)),g=rg(H.value,p);g!==H.value&&(H.value=g,O.value=Ne(n.value),rt(O.value),dd(g));const b=rg(k.value,p);b!==k.value&&(k.value=b,P.value=Sl(b,n.value),sg(b));const F=un(ce.value,p);F!==ce.value&&(ce.value=F,ng(F));const B=un(re.value,p);B!==re.value&&(re.value=B,ig(B)),Ae.value=un(Ae.value,p),Ce.value=un(Ce.value,p),ue.value=un(ue.value,p),V.value=un(V.value,p),r.value=un(r.value,p),s.value=un(s.value,p),i.value=un(i.value,p),a.value=un(a.value,p),l.value=un(l.value,p),ae.value=un(ae.value,p),xe.value=un(xe.value,p),Fe.value=un(Fe.value,p),_e.value=un(_e.value,p),Be.value=un(Be.value,p),m.value=un(m.value,p),c.value=un(c.value,p);const U={};for(const[G,oe]of Object.entries(Me.value))(G===Qs||p.has(G))&&(U[G]=oe);Me.value=U}function gn(u){const p=oo(t.value).find(g=>g.id===u);p&&(ce.value={...ce.value,[u]:p.updatedAtIso},ng(ce.value),m.value[u]&&(m.value=Ot(m.value,u)),Dt())}function Vt(u,p){if(!u)return;const g=ae.value[u];if(p){if(aD(g,p))return;ae.value={...ae.value,[u]:p}}else g&&(ae.value=Ot(ae.value,u))}function Mt(u,p){!u||c.value[u]===!0===p||(p?c.value={...c.value,[u]:!0}:c.value=Ot(c.value,u),Dt())}function vn(u){u&&u!==n.value&&m.value[u]!==!0&&(m.value={...m.value,[u]:!0},Dt())}function dt(u,p){if(!u)return;const g=xe.value[u];if(!p){g&&(xe.value=Ot(xe.value,u));return}const b=Qr(p.label)||"Thinking",F=p.details.map(G=>Qr(G)).filter(G=>G.length>0&&G!==b),B=Array.from(new Set([...(g==null?void 0:g.details)??[],...F])).slice(-3),U={label:b,details:B};lD(g,U)||(xe.value={...xe.value,[u]:U})}function gt(u,p,g={}){if(!u)return;const b=Fe.value[u],F=p?uf(p):"";if(!F){b&&(Fe.value=Ot(Fe.value,u));return}const B=g.transient===!0;(b==null?void 0:b.message)===F&&b.transient===B||(Fe.value={...Fe.value,[u]:{message:F,transient:B}})}function an(u){var p;u&&(p=Fe.value[u])!=null&&p.transient&&gt(u,null)}function Bn(){const u=Object.entries(Fe.value).filter(([,g])=>g==null?void 0:g.transient).map(([g])=>g);if(u.length===0)return;let p=Fe.value;for(const g of u)p=Ot(p,g);Fe.value=p}function cr(u){const p=oo(t.value).find(g=>g.id===u);return(p==null?void 0:p.updatedAtIso)??""}function qn(u,p){if(!u)return;const g={scrollTop:Math.max(0,p.scrollTop),isAtBottom:p.isAtBottom===!0};typeof p.scrollRatio=="number"&&Number.isFinite(p.scrollRatio)&&(g.scrollRatio=ia(p.scrollRatio,0,1));const b=re.value[u];b&&b.scrollTop===g.scrollTop&&b.isAtBottom===g.isAtBottom&&b.scrollRatio===g.scrollRatio||(re.value={...re.value,[u]:g},ig(re.value))}function xn(u,p){const g=r.value[u]??[];ii(g,p)||(r.value={...r.value,[u]:p})}function ln(u,p){const g=s.value[u]??[];ii(g,p)||(s.value={...s.value,[u]:p})}function Un(u,p){const g=l.value[u]??[];ii(g,p)||(l.value={...l.value,[u]:p})}function ur(u,p){const g=o.value[u]??[];ii(g,p)||(o.value={...o.value,[u]:p})}function Nr(u,p){const g=o.value[u]??[],b=kl(g,p);ur(u,b)}function Hn(u,p){const g=s.value[u]??[],b=kl(g,p);ln(u,b)}function En(u,p){const g=l.value[u]??[],b=kl(g,p);Un(u,b)}function Qn(u,p){if(!u)return;const g=p.trim(),b=i.value[u]??"";if(g.length===0){if(!b)return;i.value=Ot(i.value,u);return}b!==g&&(i.value={...i.value,[u]:g})}function yn(u,p){if(!u)return;const g=i.value[u]??"";Qn(u,`${g}${p}`)}function _n(u){u&&u in i.value&&(i.value=Ot(i.value,u))}function Rn(u){u&&u in o.value&&(o.value=Ot(o.value,u))}function bn(u){u&&u in l.value&&(l.value=Ot(l.value,u))}function yr(u){u&&(Rn(u),_n(u),dt(u,null),a.value[u]&&(a.value=Ot(a.value,u)),_e.value[u]&&(_e.value=Ot(_e.value,u)),mr(u))}function Jr(u){return u==="completed"?"completed":u==="inProgress"||u==="in_progress"?"inProgress":"pending"}function Nt(u){var g;const p=[];(g=u.explanation)!=null&&g.trim()&&p.push(u.explanation.trim());for(const b of u.steps){const F=b.status==="completed"?"x":b.status==="inProgress"?"~":" ";p.push(`- [${F}] ${b.step}`)}return p.join(`
77
+ `)}return(P,O)=>e.snapshots.length>0?(A(),L("aside",oL,[(A(!0),L(Xe,null,Bt(e.snapshots,W=>(A(),L("div",{key:t(W),class:"rate-limit-card",title:H(W)},[y("div",iL,[y("span",aL,ge(n(W)),1),W.planType?(A(),L("span",lL,ge(r(W.planType)),1)):Se("",!0)]),y("div",cL,[(A(!0),L(Xe,null,Bt(l(W),Y=>(A(),L("span",{key:Y.key,class:"rate-limit-card-metric"},ge(Y.label),1))),128))]),k(W).length>0?(A(),L("div",uL,ge(k(W).join(" | ")),1)):Se("",!0)],8,sL))),128))])):Se("",!0)}}),fL=Et(dL,[["__scopeId","data-v-df88906b"]]),pL={class:"runtime-toggle",role:"radiogroup","aria-label":"Continue in"},hL=["aria-checked","onClick"],mL={class:"runtime-toggle-option-label"},gL=An({__name:"ComposerRuntimeDropdown",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,r=[{value:"local",label:"Local project",icon:lp},{value:"worktree",label:"New worktree",icon:Ul}];function o(s){n("update:modelValue",s)}return(s,i)=>(A(),L("div",pL,[(A(),L(Xe,null,Bt(r,a=>y("button",{key:a.value,class:pt(["runtime-toggle-option",{"is-selected":e.modelValue===a.value}]),type:"button",role:"radio","aria-checked":e.modelValue===a.value,onClick:l=>o(a.value)},[(A(),yt(Ef(a.icon),{class:"runtime-toggle-option-icon"})),y("span",mL,ge(a.label),1)],10,hL)),64))]))}}),vL=Et(gL,[["__scopeId","data-v-e8b0d0ac"]]),yL={},_L={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function bL(e,t){return A(),L("svg",_L,[...t[0]||(t[0]=[y("path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12"},null,-1),y("path",{d:"M9 4l0 16"},null,-1)])])}const wL=Et(yL,[["render",bL]]),SL={},TL={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true"};function EL(e,t){return A(),L("svg",TL,[...t[0]||(t[0]=[y("path",{d:"M6 21a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3zm12 -16h-8v14h8a1 1 0 0 0 1 -1v-12a1 1 0 0 0 -1 -1"},null,-1)])])}const kL=Et(SL,[["render",EL]]),IL={class:"sidebar-thread-controls"},AL=["aria-label","title"],CL=An({__name:"SidebarThreadControls",props:{isSidebarCollapsed:{type:Boolean},showNewThreadButton:{type:Boolean}},emits:["toggle-sidebar","start-new-thread"],setup(e){return(t,n)=>(A(),L("div",IL,[y("button",{class:"sidebar-thread-controls-button",type:"button","aria-label":e.isSidebarCollapsed?"Expand sidebar":"Collapse sidebar",title:e.isSidebarCollapsed?"Expand sidebar":"Collapse sidebar",onClick:n[0]||(n[0]=r=>t.$emit("toggle-sidebar"))},[e.isSidebarCollapsed?(A(),yt(kL,{key:0,class:"sidebar-thread-controls-icon"})):(A(),yt(wL,{key:1,class:"sidebar-thread-controls-icon"}))],8,AL),co(t.$slots,"default",{},void 0),e.showNewThreadButton?(A(),L("button",{key:0,class:"sidebar-thread-controls-button",type:"button","aria-label":"Start new thread",title:"Start new thread",onClick:n[1]||(n[1]=r=>t.$emit("start-new-thread"))},[ze(ac,{class:"sidebar-thread-controls-icon"})])):Se("",!0)]))}}),Zm=Et(CL,[["__scopeId","data-v-46a10052"]]),xL={},RL={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"};function ML(e,t){return A(),L("svg",RL,[...t[0]||(t[0]=[y("circle",{cx:"11",cy:"11",r:"8"},null,-1),y("path",{d:"m21 21-4.35-4.35"},null,-1)])])}const eg=Et(xL,[["render",ML]]),PL={},$L={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24"};function NL(e,t){return A(),L("svg",$L,[...t[0]||(t[0]=[y("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[y("path",{d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065"}),y("path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0"})],-1)])])}const OL=Et(PL,[["render",NL]]),LL={},DL={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24","aria-hidden":"true"};function jL(e,t){return A(),L("svg",DL,[...t[0]||(t[0]=[y("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M18 6L6 18M6 6l12 12"},null,-1)])])}const FL=Et(LL,[["render",jL]]);function oo(e){return e.flatMap(t=>t.threads)}const W_="codex-web-local.thread-read-state.v1",V_="codex-web-local.thread-scroll-state.v1",z_="codex-web-local.thread-token-usage.v1",of="codex-web-local.selected-thread-id.v1",sf="codex-web-local.selected-model-by-context.v1",G_="codex-web-local.selected-model-id.v1",K_="codex-web-local.project-order.v1",Y_="codex-web-local.project-display-name.v1",af="codex-web-local.collaboration-mode-by-context.v1",J_="codex-web-local.collaboration-mode.v1",Wa="__new-thread__",ld=220,BL=500,qL=3e3,tg=["none","minimal","low","medium","high","xhigh"],Qs="__global__",UL="gpt-5.4-mini",jr="gpt-5.2-codex";function HL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(W_);if(!e)return{};const t=JSON.parse(e);return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return{}}}function ng(e){typeof window>"u"||window.localStorage.setItem(W_,JSON.stringify(e))}function lf(e){return e==="plan"?"plan":"default"}function lc(e){return typeof e=="string"?e.trim():""}function qr(){return Object.create(null)}function cd(e){const t=qr();for(const[n,r]of Object.entries(e))t[n]=r;return t}function ud(e,t){if(!(t in e))return e;const n=qr();for(const[r,o]of Object.entries(e))r!==t&&(n[r]=o);return n}function rg(e,t){let n=!1;const r=qr();for(const[o,s]of Object.entries(e)){if(o===Wa||t.has(o)){r[o]=s;continue}n=!0}return n?r:e}function cc(e){return e.trim()||Wa}function WL(){if(typeof window>"u")return qr();try{const n=window.localStorage.getItem(sf);if(n){const r=JSON.parse(n);if(!r||typeof r!="object"||Array.isArray(r))return qr();const o=qr();for(const[s,i]of Object.entries(r)){if(typeof s!="string"||s.length===0)continue;const a=lc(i);a&&(o[s]=a)}return o}}catch{}const e=lc(window.localStorage.getItem(G_)),t=qr();return e&&(t[Wa]=e),t}function og(e,t){const n=cc(t),r=lc(e[n]);return r||lc(e[Wa])||UL}function dd(e){if(!(typeof window>"u"))try{Object.keys(e).length===0?window.localStorage.removeItem(sf):window.localStorage.setItem(sf,JSON.stringify(e)),window.localStorage.removeItem(G_)}catch{}}function VL(){if(typeof window>"u")return qr();try{const n=window.localStorage.getItem(af);if(n){const r=JSON.parse(n);if(!r||typeof r!="object"||Array.isArray(r))return qr();const o=qr();for(const[s,i]of Object.entries(r)){if(typeof s!="string"||s.length===0)continue;const a=lf(i);a==="plan"&&(o[s]=a)}return o}}catch{}const e=lf(window.localStorage.getItem(J_)),t=qr();return e==="plan"&&(t[Wa]="plan"),t}function Sl(e,t){const n=cc(t);return lf(e[n])}function sg(e){if(!(typeof window>"u"))try{Object.keys(e).length===0?window.localStorage.removeItem(af):window.localStorage.setItem(af,JSON.stringify(e)),window.localStorage.removeItem(J_)}catch{}}function ia(e,t,n){return Math.min(Math.max(e,t),n)}function zL(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e;if(typeof t.scrollTop!="number"||!Number.isFinite(t.scrollTop)||typeof t.isAtBottom!="boolean")return null;const n={scrollTop:Math.max(0,t.scrollTop),isAtBottom:t.isAtBottom};return typeof t.scrollRatio=="number"&&Number.isFinite(t.scrollRatio)&&(n.scrollRatio=ia(t.scrollRatio,0,1)),n}function GL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(V_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){if(!r)continue;const s=zL(o);s&&(n[r]=s)}return n}catch{return{}}}function ig(e){typeof window>"u"||window.localStorage.setItem(V_,JSON.stringify(e))}function ri(e){if(typeof e=="number"&&Number.isFinite(e))return Math.max(0,Math.trunc(e));if(typeof e=="string"&&e.trim().length>0){const t=Number(e);if(Number.isFinite(t))return Math.max(0,Math.trunc(t))}return null}function ag(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e;return{totalTokens:ri(t.totalTokens)??0,inputTokens:ri(t.inputTokens)??0,cachedInputTokens:ri(t.cachedInputTokens)??0,outputTokens:ri(t.outputTokens)??0,reasoningOutputTokens:ri(t.reasoningOutputTokens)??0}}function KL(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,n=ag(t.total),r=ag(t.last);if(!n||!r)return null;const o=ri(t.modelContextWindow),s=r.totalTokens,i=typeof o=="number"?Math.max(o-s,0):null,a=typeof o=="number"&&o>0?ia(Math.round((i??0)/o*100),0,100):null;return{total:n,last:r,modelContextWindow:o,currentContextTokens:s,remainingContextTokens:i,remainingContextPercent:a}}function YL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(z_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){if(!r)continue;const s=KL(o);s&&(n[r]=s)}return n}catch{return{}}}function lg(e){typeof window>"u"||window.localStorage.setItem(z_,JSON.stringify(e))}function JL(){return typeof window>"u"?"":window.localStorage.getItem(of)??""}function XL(e){if(!(typeof window>"u")){if(!e){window.localStorage.removeItem(of);return}window.localStorage.setItem(of,e)}}function QL(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(K_);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=[];for(const r of t){if(typeof r!="string"||r.length===0)continue;const o=Ha(r);o.length>0&&!n.includes(o)&&n.push(o)}return n}catch{return[]}}function Zs(e){typeof window>"u"||window.localStorage.setItem(K_,JSON.stringify(e))}function ZL(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(Y_);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t)){const s=typeof r=="string"?Ha(r):"";s.length>0&&typeof o=="string"&&(n[s]=o)}return n}catch{return{}}}function fd(e){typeof window>"u"||window.localStorage.setItem(Y_,JSON.stringify(e))}function Tl(e,t){const n=[];for(const r of e)n.includes(r)||n.push(r);for(const r of t)n.includes(r.projectName)||n.push(r.projectName);return Jo(e,n)?e:n}function pd(e,t){const n=new Map(e.map(o=>[o.projectName,o])),r=t.map(o=>n.get(o)??null).filter(o=>o!==null&&o.threads.length>0);for(const o of e)t.includes(o.projectName)||r.push(o);return r}function Jo(e,t){const n=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(n.length!==r.length)return!1;for(let o=0;o<n.length;o+=1)if(n[o]!==r[o])return!1;return!0}function eD(e,t,n){if(t<0||t>=e.length||n<0||n>=e.length||t===n)return e;const r=[...e],[o]=r.splice(t,1);return r.splice(n,0,o),r}function tD(e,t){return!e&&!t?!0:!e||!t?!1:e.status===t.status&&e.aggregatedOutput===t.aggregatedOutput&&e.exitCode===t.exitCode}function nD(e=[],t=[]){var n,r,o,s;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i+=1)if(((n=e[i])==null?void 0:n.step)!==((r=t[i])==null?void 0:r.step)||((o=e[i])==null?void 0:o.status)!==((s=t[i])==null?void 0:s.status))return!1;return!0}function rD(e,t){return!e&&!t?!0:!e||!t?!1:e.explanation===t.explanation&&e.isStreaming===t.isStreaming&&nD(e.steps,t.steps)}function El(e){if(!(e instanceof Error))return!1;const t=e.message.toLowerCase();return t.includes("not supported when using codex with a chatgpt account")||t.includes("model is not supported")}function cf(e,t){return e.id===t.id&&e.role===t.role&&e.text===t.text&&Jo(e.images,t.images)&&sD(e.fileChanges,t.fileChanges)&&e.fileChangeStatus===t.fileChangeStatus&&e.messageType===t.messageType&&e.rawPayload===t.rawPayload&&e.isUnhandled===t.isUnhandled&&tD(e.commandExecution,t.commandExecution)&&rD(e.plan,t.plan)&&e.turnId===t.turnId&&e.turnIndex===t.turnIndex}function ii(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function oD(e,t,n={}){const r=new Map(e.map(d=>[d.id,d])),o=new Map(t.map(d=>[d.id,d])),s=t.map(d=>{const f=r.get(d.id);return f&&cf(f,d)?f:d});if(n.preserveMissing!==!0)return ii(e,s)?e:s;const i=e.map(d=>{const f=o.get(d.id);return!f||cf(d,f)?d:f}),a=new Set(e.map(d=>d.id)),l=s.filter(d=>!a.has(d.id)),c=[...i,...l];return ii(e,c)?e:c}function sD(e,t){if(!e&&!t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){const r=e[n],o=t[n];if(r.path!==o.path||r.operation!==o.operation||r.movedToPath!==o.movedToPath||r.diff!==o.diff||r.addedLineCount!==o.addedLineCount||r.removedLineCount!==o.removedLineCount)return!1}return!0}function uf(e){return e.replace(/\s+/gu," ").trim()}function iD(e,t){const n=new Set(t.filter(o=>o.role==="assistant").map(o=>uf(o.text)).filter(o=>o.length>0));if(n.size===0)return e;const r=e.filter(o=>{if(o.messageType!=="agentMessage.live")return!0;const s=uf(o.text);return s.length===0?!1:!n.has(s)});return r.length===e.length?e:r}function kl(e,t){const n=e.findIndex(s=>s.id===t.id);if(n<0)return[...e,t];const r=e[n];if(cf(r,t))return e;const o=[...e];return o.splice(n,1,t),o}const X_="worked";function zo(e){if(!e)return null;const t=new Date(e).getTime();return Number.isNaN(t)?null:t}function aD(e){if(!Number.isFinite(e)||e<=0)return"<1s";const t=Math.max(1,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60,s=[];n>0&&s.push(`${n}h`),(r>0||n>0)&&s.push(`${r}m`);const i=o>0||s.length===0?o:0;return s.push(`${i}s`),s.join(" ")}function lD(e,t){return!e&&!t?!0:!e||!t?!1:e.turnId===t.turnId&&e.durationMs===t.durationMs}function cD(e,t){if(!e&&!t)return!0;if(!e||!t||e.label!==t.label||e.details.length!==t.details.length)return!1;for(let n=0;n<e.details.length;n+=1)if(e.details[n]!==t.details[n])return!1;return!0}function uD(e){return{id:`turn-summary:${e.turnId}`,role:"system",text:`Worked for ${aD(e.durationMs)}`,messageType:X_,turnId:e.turnId}}function dD(e){for(let t=e.length-1;t>=0;t-=1)if(e[t].role==="assistant")return t;return-1}function fD(e,t){const n=uD(t),r=e.filter(i=>i.messageType!==X_),o=dD(r);if(o<0)return[...r,n];const s=[...r];return s.splice(o,0,n),s}function Ot(e,t){if(!(t in e))return e;const n={...e};return delete n[t],n}function pD(e,t){if(t.size===0)return e;let n=!1;const r={};for(const[o,s]of Object.entries(e)){if(t.has(o)){n=!0;continue}r[o]=s}return n?r:e}function hD(e,t){return e.id===t.id&&e.title===t.title&&e.projectName===t.projectName&&e.cwd===t.cwd&&e.createdAtIso===t.createdAtIso&&e.updatedAtIso===t.updatedAtIso&&e.preview===t.preview&&e.unread===t.unread&&e.inProgress===t.inProgress&&e.pendingRequestState===t.pendingRequestState}function mD(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function gD(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function un(e,t){const n=Object.entries(e).filter(([r])=>t.has(r));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}function Il(e,t){const n=new Map(e.map(o=>[o.projectName,o])),r=t.map(o=>{const s=n.get(o.projectName),i=new Map((s==null?void 0:s.threads.map(l=>[l.id,l]))??[]),a=o.threads.map(l=>{const c=i.get(l.id);return c&&hD(c,l)?c:l});return s&&s.projectName===o.projectName&&mD(s.threads,a)?s:{projectName:o.projectName,threads:a}});return gD(e,r)?e:r}function vD(e,t,n){const r=new Set(oo(t).map(a=>a.id)),o=oo(e).filter(a=>n[a.id]===!0&&!r.has(a.id));if(o.length===0)return t;const s=new Map(t.map(a=>[a.projectName,a])),i=t.map(a=>({projectName:a.projectName,threads:[...a.threads]}));for(const a of o){if(s.get(a.projectName)){const c=i.findIndex(d=>d.projectName===a.projectName);c>=0&&(i[c]={projectName:i[c].projectName,threads:[a,...i[c].threads]});continue}i.push({projectName:a.projectName,threads:[a]})}return i}function Go(e){return Ha(e)}function yD(e){const t=e.split(`
78
+ `).map(n=>n.trim()).find(n=>n.length>0);return t?t.slice(0,80):"Untitled thread"}function _D(e){const t=e.trim()||"Untitled thread";return/^fork:\s+/iu.test(t)?t:`Fork: ${t}`}function bD(){const e=j([]),t=j([]),n=j(JL()),r=j({}),o=j({}),s=j({}),i=j({}),a=j({}),l=j({}),c=j({}),d=j({}),f=j({}),m=j({}),v=j([]),T=j([{value:"default",label:"Default"},{value:"plan",label:"Plan"}]),k=j(VL()),H=j(WL()),P=j(Sl(k.value,n.value)),O=j(og(H.value,n.value)),W=j("medium"),Y=j("standard"),ce=j(HL()),re=j(GL()),Z=j(QL()),he=j(ZL()),Ce=j({}),Ae=j({}),ue=j({}),V=j({}),ae=j({}),xe=j({}),Fe=j({}),_e=j({}),Me=j({}),fe=j({}),De=j(null),Be=j(YL()),Re=j({}),Ge=j([]),ot=j([]),nt=j(!1),st=j(!1),Ke=j(!1),J=j(!1),be=j(!1),we=j(!1),ve=j(""),Ze=j(!1),E=j(!1);let I=null,q=null,Q=null;const ee=new Map;let te=null,ie=!1;const pe=new Set;let me=!1,ne=!1;const Ue=new Map,ke=new Set,ye=se(()=>oo(e.value)),$e=se(()=>ye.value.find(u=>u.id===n.value)??null),x=se(()=>re.value[n.value]??null),$=se(()=>{const u=[],p=n.value;return p&&Array.isArray(Me.value[p])&&u.push(...Me.value[p]),Array.isArray(Me.value[Qs])&&u.push(...Me.value[Qs]),u.sort((g,b)=>g.receivedAtIso.localeCompare(b.receivedAtIso))}),D=se(()=>{var F;const u=n.value;if(!u)return null;const p=xe.value[u],g=(i.value[u]??"").trim(),b=(((F=Fe.value[u])==null?void 0:F.message)??"").trim();return!p&&!g&&!b?null:{activityLabel:(p==null?void 0:p.label)||"Thinking",activityDetails:(p==null?void 0:p.details)??[],reasoningText:g,errorText:b}}),X=se(()=>De.value),le=se(()=>{const u=n.value;return u?Be.value[u]??null:null}),Le=se(()=>{const u=n.value;if(!u)return[];const p=r.value[u]??[],g=o.value[u]??[],b=s.value[u]??[],F=a.value[u]??[],B=l.value[u]??[],U=[...p,...g,...F,...B,...b],G=ae.value[u];return G?fD(U,G):U});function Ne(u){return og(H.value,u).trim()}function rt(...u){const p=[...v.value];for(const g of u){const b=g.trim();b&&!p.includes(b)&&p.push(b)}Jo(v.value,p)||(v.value=p)}function Qe(u){n.value!==u&&(n.value=u,XL(u),O.value=Ne(u),rt(O.value),P.value=Sl(k.value,u),ne=!1)}function wt(u){const p=u.trim(),g=cc(n.value);if(p){const b=cd(H.value);b[g]=p,H.value=b}else H.value=ud(H.value,g);O.value=Ne(n.value),rt(O.value),dd(H.value),pr({category:"ui.model",message:`model → ${O.value}`,level:"info"})}function Rt(u,p){const g=u.trim();if(!g)return;const b=p.trim();if(b){const F=cd(H.value);F[g]=b,H.value=F}else H.value=ud(H.value,g);rt(b),n.value===g&&(O.value=Ne(n.value)),dd(H.value)}function ct(u,p){const g=u.trim();if(!g)return;if(!p){if(!(g in Be.value))return;Be.value=Ot(Be.value,g),lg(Be.value);return}const b=Be.value[g];b&&JSON.stringify(b)===JSON.stringify(p)||(Be.value={...Be.value,[g]:p},lg(Be.value))}function Qt(u){const p=u==="plan"?"plan":"default",g=cc(n.value);if(!(Sl(k.value,n.value)===p&&P.value===p)){if(P.value=p,p==="plan"){const F=cd(k.value);F[g]=p,k.value=F}else k.value=ud(k.value,g);sg(k.value)}}function mn(u){De.value=u}async function ar(u=n.value){u.trim()?Rt(u,jr):wt(jr),rt(jr)}function Xn(u,p){fe.value={...fe.value,[u]:p}}function mr(u){fe.value[u]&&(fe.value=Ot(fe.value,u))}async function Ut(u){if(ke.has(u))return;const p=fe.value[u];if(!(!p||p.fallbackRetried)){ke.add(u),Xn(u,{...p,fallbackRetried:!0});try{await ar(u);try{const g=await td(u,1);xn(u,g),Rn(u),ln(u,[]),_n(u),a.value[u]&&(a.value=Ot(a.value,u))}catch{}gt(u,null),ve.value="",Vt(u,null),dt(u,{label:"Thinking",details:Wt(jr,p.effort,p.collaborationMode)}),Mt(u,!0),ue.value[u]!==!0&&await ed(u),await nd(u,p.text,p.imageUrls,jr,p.effort||void 0,p.skills.length>0?p.skills:void 0,p.fileAttachments,p.collaborationMode),ue.value={...ue.value,[u]:!0},vr(),pe.add(u),ie=!0,await Dr()}catch(g){const b=g instanceof Error?g.message:"Unknown application error";gt(u,b),ve.value=b,Mt(u,!1),dt(u,null)}finally{ke.delete(u)}}}function Zt(u){u&&!tg.includes(u)||(W.value=u)}async function Ht(u){const p=u==="fast"?"fast":"standard";if(be.value||Y.value===p)return;const g=Y.value;Y.value=p,be.value=!0,ve.value="";try{await HR(p)}catch(b){Y.value=g,ve.value=b instanceof Error?b.message:"Failed to update Fast mode"}finally{be.value=!1}}async function gr(){try{const u=await VR();T.value=u,u.some(p=>p.value===P.value)||Qt("default")}catch{}}function Wt(u,p,g=P.value){const b=u.trim()||"default",F=p||"default",B=g==="plan"?"Plan":"Default",U=Y.value==="fast"?"Fast":"Standard";return[`Mode: ${B}`,`Model: ${b}`,`Thinking: ${F}`,`Speed: ${U}`]}async function Yr(){try{const[u,p]=await Promise.all([q_(),U_()]),g=Ne(n.value),b=p.model.trim(),F=[...u];for(const B of[g,b])B&&!F.includes(B)&&F.push(B);v.value=F,g||(b&&F.includes(b)?wt(p.model):F.length>0?wt(F[0]):wt("")),p.reasoningEffort&&tg.includes(p.reasoningEffort)&&(W.value=p.reasoningEffort),Y.value=p.speedMode}catch{}}async function jn(){if(te){await te;return}te=(async()=>{try{ot.value=er(await qm())}catch{}finally{te=null}})(),await te}function vr(){if(typeof window>"u"){jn();return}Q!==null&&window.clearTimeout(Q),Q=window.setTimeout(()=>{Q=null,jn()},BL)}function Mr(u){if(!u||typeof window>"u")return;const p=ee.get(u);p!==void 0&&(window.clearTimeout(p),ee.delete(u))}function ho(u){if(!u||typeof window>"u")return;Mr(u);const p=window.setTimeout(()=>{ee.delete(u),pe.add(u),Dr()},qL);ee.set(u,p)}function Fn(u){const p=Re.value;return Object.keys(p).length===0?u:u.map(g=>({projectName:g.projectName,threads:g.threads.map(b=>{const F=p[b.id];return F?{...b,title:F}:b})}))}function en(u){return u?Array.isArray(Me.value[u])?Me.value[u]:[]:[]}function Pr(u){return u==="item/commandExecution/requestApproval"||u==="item/fileChange/requestApproval"||u==="item/permissions/requestApproval"||u==="execCommandApproval"||u==="applyPatchApproval"}function Cn(u){return u.some(p=>Pr(p.method))?"approval":u.length>0?"response":null}function Dt(){const p=Fn(t.value).map(g=>({projectName:g.projectName,threads:g.threads.map(b=>{const F=c.value[b.id]===!0,B=Cn(en(b.id)),U=n.value===b.id,G=ce.value[b.id],oe=m.value[b.id]===!0,je=!U&&!F&&(oe||G!==b.updatedAtIso);return{...b,inProgress:F,unread:je,pendingRequestState:B}})}));e.value=Il(e.value,p)}function lr(u,p,g){const b=new Date().toISOString(),F=nn(p),B=Ha(F),U={id:u,title:yD(g),projectName:B,cwd:F,hasWorktree:F.includes("/.codex/worktrees/")||F.includes("/.git/worktrees/"),createdAtIso:b,updatedAtIso:b,preview:g,unread:!1,inProgress:!1},G=t.value.findIndex(je=>je.projectName===B);if(G>=0){const We=t.value[G].threads.filter(tn=>tn.id!==u),ft={projectName:B,threads:[U,...We]},vt=[...t.value];vt.splice(G,1,ft),t.value=vt}else t.value=[{projectName:B,threads:[U]},...t.value];const oe=Tl(Z.value,t.value);Jo(Z.value,oe)||(Z.value=oe,Zs(Z.value)),Dt()}function $r(u){const p=new Set(u.map(G=>G.id)),g=rg(H.value,p);g!==H.value&&(H.value=g,O.value=Ne(n.value),rt(O.value),dd(g));const b=rg(k.value,p);b!==k.value&&(k.value=b,P.value=Sl(b,n.value),sg(b));const F=un(ce.value,p);F!==ce.value&&(ce.value=F,ng(F));const B=un(re.value,p);B!==re.value&&(re.value=B,ig(B)),Ae.value=un(Ae.value,p),Ce.value=un(Ce.value,p),ue.value=un(ue.value,p),V.value=un(V.value,p),r.value=un(r.value,p),s.value=un(s.value,p),i.value=un(i.value,p),a.value=un(a.value,p),l.value=un(l.value,p),ae.value=un(ae.value,p),xe.value=un(xe.value,p),Fe.value=un(Fe.value,p),_e.value=un(_e.value,p),Be.value=un(Be.value,p),m.value=un(m.value,p),c.value=un(c.value,p);const U={};for(const[G,oe]of Object.entries(Me.value))(G===Qs||p.has(G))&&(U[G]=oe);Me.value=U}function gn(u){const p=oo(t.value).find(g=>g.id===u);p&&(ce.value={...ce.value,[u]:p.updatedAtIso},ng(ce.value),m.value[u]&&(m.value=Ot(m.value,u)),Dt())}function Vt(u,p){if(!u)return;const g=ae.value[u];if(p){if(lD(g,p))return;ae.value={...ae.value,[u]:p}}else g&&(ae.value=Ot(ae.value,u))}function Mt(u,p){!u||c.value[u]===!0===p||(p?c.value={...c.value,[u]:!0}:c.value=Ot(c.value,u),Dt())}function vn(u){u&&u!==n.value&&m.value[u]!==!0&&(m.value={...m.value,[u]:!0},Dt())}function dt(u,p){if(!u)return;const g=xe.value[u];if(!p){g&&(xe.value=Ot(xe.value,u));return}const b=Qr(p.label)||"Thinking",F=p.details.map(G=>Qr(G)).filter(G=>G.length>0&&G!==b),B=Array.from(new Set([...(g==null?void 0:g.details)??[],...F])).slice(-3),U={label:b,details:B};cD(g,U)||(xe.value={...xe.value,[u]:U})}function gt(u,p,g={}){if(!u)return;const b=Fe.value[u],F=p?uf(p):"";if(!F){b&&(Fe.value=Ot(Fe.value,u));return}const B=g.transient===!0;(b==null?void 0:b.message)===F&&b.transient===B||(Fe.value={...Fe.value,[u]:{message:F,transient:B}})}function an(u){var p;u&&(p=Fe.value[u])!=null&&p.transient&&gt(u,null)}function Bn(){const u=Object.entries(Fe.value).filter(([,g])=>g==null?void 0:g.transient).map(([g])=>g);if(u.length===0)return;let p=Fe.value;for(const g of u)p=Ot(p,g);Fe.value=p}function cr(u){const p=oo(t.value).find(g=>g.id===u);return(p==null?void 0:p.updatedAtIso)??""}function qn(u,p){if(!u)return;const g={scrollTop:Math.max(0,p.scrollTop),isAtBottom:p.isAtBottom===!0};typeof p.scrollRatio=="number"&&Number.isFinite(p.scrollRatio)&&(g.scrollRatio=ia(p.scrollRatio,0,1));const b=re.value[u];b&&b.scrollTop===g.scrollTop&&b.isAtBottom===g.isAtBottom&&b.scrollRatio===g.scrollRatio||(re.value={...re.value,[u]:g},ig(re.value))}function xn(u,p){const g=r.value[u]??[];ii(g,p)||(r.value={...r.value,[u]:p})}function ln(u,p){const g=s.value[u]??[];ii(g,p)||(s.value={...s.value,[u]:p})}function Un(u,p){const g=l.value[u]??[];ii(g,p)||(l.value={...l.value,[u]:p})}function ur(u,p){const g=o.value[u]??[];ii(g,p)||(o.value={...o.value,[u]:p})}function Nr(u,p){const g=o.value[u]??[],b=kl(g,p);ur(u,b)}function Hn(u,p){const g=s.value[u]??[],b=kl(g,p);ln(u,b)}function En(u,p){const g=l.value[u]??[],b=kl(g,p);Un(u,b)}function Qn(u,p){if(!u)return;const g=p.trim(),b=i.value[u]??"";if(g.length===0){if(!b)return;i.value=Ot(i.value,u);return}b!==g&&(i.value={...i.value,[u]:g})}function yn(u,p){if(!u)return;const g=i.value[u]??"";Qn(u,`${g}${p}`)}function _n(u){u&&u in i.value&&(i.value=Ot(i.value,u))}function Rn(u){u&&u in o.value&&(o.value=Ot(o.value,u))}function bn(u){u&&u in l.value&&(l.value=Ot(l.value,u))}function yr(u){u&&(Rn(u),_n(u),dt(u,null),a.value[u]&&(a.value=Ot(a.value,u)),_e.value[u]&&(_e.value=Ot(_e.value,u)),mr(u))}function Jr(u){return u==="completed"?"completed":u==="inProgress"||u==="in_progress"?"inProgress":"pending"}function Nt(u){var g;const p=[];(g=u.explanation)!=null&&g.trim()&&p.push(u.explanation.trim());for(const b of u.steps){const F=b.status==="completed"?"x":b.status==="inProgress"?"~":" ";p.push(`- [${F}] ${b.step}`)}return p.join(`
79
79
  `).trim()}function on(u){if(u.method!=="turn/plan/updated")return null;const p=qe(u.params),g=qt(u),b=Te(p==null?void 0:p.turnId)||Te(p==null?void 0:p.turn_id),B=(Array.isArray(p==null?void 0:p.plan)?p==null?void 0:p.plan:[]).map(oe=>qe(oe)).map(oe=>({step:Te(oe==null?void 0:oe.step),status:Jr(oe==null?void 0:oe.status)})).filter(oe=>oe.step.length>0);if(!g||!b)return null;const G={explanation:Te(p==null?void 0:p.explanation).trim()||void 0,steps:B,isStreaming:!0};return{threadId:g,message:{id:`${b}:plan`,role:"assistant",text:Nt(G),messageType:"plan.live",plan:G}}}function Wn(u){if(u.method!=="item/plan/delta")return null;const p=qe(u.params),g=qt(u),b=Te(p==null?void 0:p.turnId)||Te(p==null?void 0:p.turn_id),F=Te(p==null?void 0:p.delta);if(!g||!b||!F)return null;const B=`${b}:plan`,U=(o.value[g]??[]).find(je=>je.id===B),G=`${(U==null?void 0:U.text)??""}${F}`,oe=U!=null&&U.plan?{...U.plan,isStreaming:!0}:void 0;return{threadId:g,message:{id:B,role:"assistant",text:G,messageType:"plan.live",plan:oe}}}function qe(u){return u!==null&&typeof u=="object"&&!Array.isArray(u)?u:null}function Te(u){return typeof u=="string"?u:""}function St(u){return typeof u=="number"&&Number.isFinite(u)?u:null}function Or(u){var p,g;return((p=u.limitId)==null?void 0:p.trim())||((g=u.limitName)==null?void 0:g.trim())||"__default__"}function Lr(u){const p=qe(u);if(!p)return null;const g=St(p.windowDurationMins);return{usedPercent:ia(St(p.usedPercent)??0,0,100),windowDurationMins:g,windowMinutes:g,resetsAt:St(p.resetsAt)}}function Zn(u){const p=qe(u);if(!p)return null;const g=qe(p.credits);return{limitId:Te(p.limitId)||null,limitName:Te(p.limitName)||null,primary:Lr(p.primary),secondary:Lr(p.secondary),credits:g?{hasCredits:g.hasCredits===!0,unlimited:g.unlimited===!0,balance:Te(g.balance)||null}:null,planType:Te(p.planType)||null}}function er(u){const p=qe(u);if(!p)return[];const g=[],b=new Set,F=U=>{if(!U)return;const G=Or(U);b.has(G)||(b.add(G),g.push(U))};F(Zn(p.rateLimits));const B=qe(p.rateLimitsByLimitId);if(B)for(const U of Object.values(B))F(Zn(U));return g}function Xr(u){const p=qe(u);if(!p)return null;const g=St(p.totalTokens??p.total_tokens),b=St(p.inputTokens??p.input_tokens),F=St(p.cachedInputTokens??p.cached_input_tokens),B=St(p.outputTokens??p.output_tokens),U=St(p.reasoningOutputTokens??p.reasoning_output_tokens);return g===null||b===null||F===null||B===null||U===null?null:{totalTokens:g,inputTokens:b,cachedInputTokens:F,outputTokens:B,reasoningOutputTokens:U}}function _r(u){const p=qe(u);if(!p)return null;const g=Xr(p.total),b=Xr(p.last);if(!g||!b)return null;const F=St(p.modelContextWindow??p.model_context_window),B=b.totalTokens,U=typeof F=="number"?Math.max(F-B,0):null,G=typeof F=="number"&&F>0?ia(Math.round((U??0)/F*100),0,100):null;return{total:g,last:b,modelContextWindow:F,currentContextTokens:B,remainingContextTokens:U,remainingContextPercent:G}}function Mn(u){if(u.method!=="thread/tokenUsage/updated")return null;const p=qe(u.params),g=qt(u),b=_r((p==null?void 0:p.tokenUsage)??(p==null?void 0:p.token_usage));return!g||!b?null:{threadId:g,usage:b}}function qt(u){const p=qe(u.params);if(!p)return"";const g=Te(p.threadId);if(g)return g;const b=Te(p.thread_id);if(b)return b;const F=Te(p.conversationId);if(F)return F;const B=Te(p.conversation_id);if(B)return B;const U=qe(p.thread),G=Te(U==null?void 0:U.id);if(G)return G;const oe=qe(p.turn),je=Te(oe==null?void 0:oe.threadId);if(je)return je;const We=Te(oe==null?void 0:oe.thread_id);return We||""}function zt(u){if(u.method!=="turn/completed")return"";const p=qe(u.params),g=qe(p==null?void 0:p.turn);if(!g||g.status!=="failed")return"";const b=qe(g.error);return Te(b==null?void 0:b.message)}function br(u){var b;if(u.method!=="error")return null;const p=qe(u.params),g=Te(p==null?void 0:p.message)||Te((b=qe(p==null?void 0:p.error))==null?void 0:b.message);return g?{message:g,transient:(p==null?void 0:p.willRetry)===!0}:null}function S(u){const p=qe(u);if(!p)return null;const g=p.id,b=Te(p.method),F=p.params;if(typeof g!="number"||!Number.isInteger(g)||!b)return null;const B=qe(F),U=C(b,B),G=Te(B==null?void 0:B.threadId)||Te(B==null?void 0:B.thread_id)||Te(B==null?void 0:B.conversationId)||Te(B==null?void 0:B.conversation_id)||Qs,oe=Te(B==null?void 0:B.turnId)||Te(B==null?void 0:B.turn_id),je=Te(B==null?void 0:B.itemId)||Te(B==null?void 0:B.item_id)||Te(B==null?void 0:B.callId)||Te(B==null?void 0:B.call_id),We=Te(p.receivedAtIso)||new Date().toISOString();return{id:g,method:U,threadId:G,turnId:oe,itemId:je,receivedAtIso:We,params:F??null}}function C(u,p){const g=u.trim();return g&&(g==="item/commandExecution/requestApproval"||g==="execCommandApproval"||g==="exec_approval_request"||N(p)?"item/commandExecution/requestApproval":g==="item/fileChange/requestApproval"||g==="applyPatchApproval"||g==="apply_patch_approval_request"||z(p)?"item/fileChange/requestApproval":g==="item/tool/requestUserInput"||g==="request_user_input"||w(p)?"item/tool/requestUserInput":g==="mcpServer/elicitation/request"||g==="elicitation_request"||K(p)?"mcpServer/elicitation/request":g==="item/permissions/requestApproval"||Ee(p)?"item/permissions/requestApproval":g==="item/tool/call"||g==="dynamic_tool_call_request"||R(p)?"item/tool/call":g)}function N(u){if(!u)return!1;const p=u.command;return Array.isArray(p)&&p.some(g=>typeof g=="string"&&g.trim().length>0)||typeof p=="string"&&p.trim().length>0?!0:Array.isArray(u.commandActions)}function z(u){return u?typeof u.grantRoot=="string"&&u.grantRoot.trim().length>0||typeof u.grant_root=="string"&&u.grant_root.trim().length>0||qe(u.fileChanges)?!0:qe(u.changes)!==null:!1}function w(u){return!!(u&&Array.isArray(u.questions))}function R(u){return u?typeof u.toolName=="string"||typeof u.tool_name=="string"||typeof u.name=="string"||Array.isArray(u.arguments):!1}function K(u){if(!u)return!1;const p=Te(u.mode);return typeof u.serverName=="string"&&typeof u.threadId=="string"&&typeof u.message=="string"&&(p==="form"||p==="url")}function Ee(u){return u?typeof u.threadId=="string"&&typeof u.turnId=="string"&&typeof u.itemId=="string"&&qe(u.permissions)!==null:!1}function it(u){if(u.method!=="item/tool/requestUserInput")return[];const p=qe(u.params),g=Array.isArray(p==null?void 0:p.questions)?p.questions:[],b=[];for(const F of g){const B=qe(F),U=Te(B==null?void 0:B.id).trim();U&&b.push(U)}return b}function Ft(u){const p=u.threadId||Qs,g=Me.value[p]??[],b=g.findIndex(B=>B.id===u.id),F=[...g];b>=0?F.splice(b,1,u):F.push(u),Me.value={...Me.value,[p]:F.sort((B,U)=>B.receivedAtIso.localeCompare(U.receivedAtIso))},Dt()}function Gt(u){const p={};for(const[g,b]of Object.entries(Me.value)){const F=b.filter(B=>B.id!==u);F.length>0&&(p[g]=F)}Me.value=p,Dt()}function Pt(u){const p={};for(const g of u){const b=g.threadId||Qs,F=p[b]??[];F.push(g),p[b]=F}for(const g of Object.values(p))g.sort((b,F)=>b.receivedAtIso.localeCompare(F.receivedAtIso));Me.value=p}function wn(u){if(u.method==="server/request"){const p=S(u.params);return p&&Ft(p),!0}if(u.method==="server/request/resolved"){const p=qe(u.params),g=p==null?void 0:p.id;return typeof g=="number"&&Number.isInteger(g)&&Gt(g),!0}return!1}function Qr(u){return u.replace(/\s+/gu," ").trim()}function ds(u){const p=qt(u);if(!p)return null;if(u.method==="turn/started")return{threadId:p,activity:{label:"Thinking",details:[]}};if(u.method==="item/started"){const g=qe(u.params),b=qe(g==null?void 0:g.item),F=Te(b==null?void 0:b.type).toLowerCase();if(F==="reasoning")return{threadId:p,activity:{label:"Thinking",details:[]}};if(F==="agentmessage")return{threadId:p,activity:{label:"Writing response",details:[]}};if(F==="commandexecution"){const B=Te(b==null?void 0:b.command);return{threadId:p,activity:{label:"Running command",details:B?[B]:[]}}}if(F==="filechange"){const U=(Array.isArray(b==null?void 0:b.changes)?b.changes:[])[0],G=Te(U==null?void 0:U.path);return{threadId:p,activity:{label:"Applying changes",details:G?[G]:[]}}}}return u.method==="item/commandExecution/outputDelta"?{threadId:p,activity:{label:"Running command",details:[]}}:u.method==="item/fileChange/outputDelta"?{threadId:p,activity:{label:"Applying changes",details:[]}}:u.method==="item/reasoning/summaryTextDelta"||u.method==="item/reasoning/summaryPartAdded"?{threadId:p,activity:{label:"Thinking",details:[]}}:u.method==="item/agentMessage/delta"?{threadId:p,activity:{label:"Writing response",details:[]}}:null}function Lc(u){if(u.method!=="turn/started")return null;const p=qe(u.params);if(!p)return null;const g=qt(u);if(!g)return null;const b=qe(p.turn),F=Te(b==null?void 0:b.id)||Te(p.turnId)||`${g}:unknown`;if(!F)return null;const B=zo(Te(b==null?void 0:b.startedAt))??zo(Te(p.startedAt))??zo(u.atIso)??Date.now();return{threadId:g,turnId:F,startedAtMs:B}}function Dc(u){if(u.method!=="turn/completed")return null;const p=qe(u.params);if(!p)return null;const g=qt(u);if(!g)return null;const b=qe(p.turn),F=Te(b==null?void 0:b.id)||Te(p.turnId)||`${g}:unknown`;if(!F)return null;const B=zo(Te(b==null?void 0:b.completedAt))??zo(Te(p.completedAt))??zo(u.atIso)??Date.now(),U=zo(Te(b==null?void 0:b.startedAt))??zo(Te(p.startedAt))??void 0;return{threadId:g,turnId:F,completedAtMs:B,startedAtMs:U}}function fs(u){return`${u}:live-reasoning`}function Ni(u){const p=r.value[u]??[];let g=-1;for(const b of p)typeof b.turnIndex=="number"&&Number.isFinite(b.turnIndex)&&(g=Math.max(g,b.turnIndex));return g+1}function Va(u,p,g){if(!u||!p||!Number.isInteger(g)||g<0)return;const b=V.value[u]??{};b[p]!==g&&(V.value={...V.value,[u]:{...b,[p]:g}})}function jc(u,p){const g=V.value[u]??{},b=Object.entries(g),F=Object.entries(p);b.length===F.length&&b.every(([B,U])=>p[B]===U)||(V.value={...V.value,[u]:{...p}})}function Fc(u){const p=l.value[u];if(!p||p.length===0)return;const g=V.value[u]??{};let b=!1;const F=p.map(B=>{if(typeof B.turnIndex=="number"||!B.turnId)return B;const U=g[B.turnId];return typeof U!="number"?B:(b=!0,{...B,turnIndex:U})});b&&(l.value={...l.value,[u]:F})}function za(u){const p=qe(u.params);if(!p)return"";if(u.method==="item/started"){const g=qe(p.item);return!g||g.type!=="reasoning"?"":Te(g.id)}return""}function Ga(u){const p=qe(u.params);if(!p)return null;if(u.method==="item/reasoning/summaryTextDelta"){const g=Te(p.itemId),b=Te(p.delta);return!g||!b?null:{messageId:fs(g),delta:b}}return null}function Bc(u){const p=qe(u.params);if(!p)return"";if(u.method==="item/reasoning/summaryPartAdded"){const g=Te(p.itemId);return g?fs(g):""}return""}function qc(u){const p=qe(u.params);if(!p)return"";if(u.method==="item/completed"){const g=qe(p.item);return!g||g.type!=="reasoning"?"":fs(Te(g.id))}return""}function Uc(u){const p=qe(u.params);if(!p)return"";if(u.method==="item/started"){const g=qe(p.item);return!g||g.type!=="agentMessage"?"":Te(g.id)}return""}function Ka(u){const p=qe(u.params);if(!p)return null;if(u.method==="item/agentMessage/delta"){const g=Te(p.itemId),b=Te(p.delta);return!g||!b?null:{messageId:g,delta:b}}return null}function Oi(u){const p=qe(u.params);if(!p)return null;if(u.method==="item/completed"){const g=qe(p.item);if(!g||g.type!=="agentMessage")return null;const b=Te(g.id),F=Te(g.text);return!b||!F?null:{id:b,role:"assistant",text:F,messageType:"agentMessage.live"}}return null}function Bo(u){var je;if(u.method!=="item/started")return null;const p=qe(u.params),g=qe(p==null?void 0:p.item);if(!g||g.type!=="commandExecution")return null;const b=Te(g.id),F=Te(g.command);if(!b)return null;const B=typeof g.cwd=="string"?g.cwd:null,U=qt(u),G=Te(p==null?void 0:p.turnId)||Te(p==null?void 0:p.turn_id),oe=U&&G?(je=V.value[U])==null?void 0:je[G]:void 0;return{id:b,role:"system",text:F,messageType:"commandExecution",commandExecution:{command:F,cwd:B,status:"inProgress",aggregatedOutput:"",exitCode:null},turnId:G||void 0,turnIndex:typeof oe=="number"?oe:void 0}}function Hc(u){if(u.method!=="item/commandExecution/outputDelta")return null;const p=qe(u.params);if(!p)return null;const g=Te(p.itemId),b=Te(p.delta);return!g||!b?null:{itemId:g,delta:b}}function Wc(u){var tn;if(u.method!=="item/completed")return null;const p=qe(u.params),g=qe(p==null?void 0:p.item);if(!g||g.type!=="commandExecution")return null;const b=Te(g.id),F=Te(g.command);if(!b)return null;const B=typeof g.cwd=="string"?g.cwd:null,U=Te(g.status),G=U==="failed"?"failed":U==="declined"?"declined":U==="interrupted"?"interrupted":"completed",oe=typeof g.aggregatedOutput=="string"?g.aggregatedOutput:"",je=typeof g.exitCode=="number"?g.exitCode:null,We=qt(u),ft=Te(p==null?void 0:p.turnId)||Te(p==null?void 0:p.turn_id),vt=We&&ft?(tn=V.value[We])==null?void 0:tn[ft]:void 0;return{id:b,role:"system",text:F,messageType:"commandExecution",commandExecution:{command:F,cwd:B,status:G,aggregatedOutput:oe,exitCode:je},turnId:ft||void 0,turnIndex:typeof vt=="number"?vt:void 0}}function Vc(u){var je;if(u.method!=="item/completed")return null;const p=qe(u.params),g=qe(p==null?void 0:p.item);if(!g||g.type!=="fileChange")return null;const b=Te(g.id);if(!b)return null;const F=Te(p==null?void 0:p.threadId),B=Te(p==null?void 0:p.turnId),U=F&&B?(je=V.value[F])==null?void 0:je[B]:void 0,G=O_(g.changes),oe=N_(g.status);return G.length===0||oe!=="completed"?null:{id:b,role:"system",text:"",messageType:"fileChange",fileChangeStatus:oe,fileChanges:G,turnId:B||void 0,turnIndex:typeof U=="number"?U:void 0}}function Li(u,p){const g=a.value[u]??[],b=kl(g,p);b!==g&&(a.value={...a.value,[u]:b})}function zc(u,p){const g=a.value[u];if(!g||g.length===0)return;const b=new Set(p.map(B=>B.id)),F=g.filter(B=>!b.has(B.id));F.length!==g.length&&(F.length===0?a.value=Ot(a.value,u):a.value={...a.value,[u]:F})}function Di(u,p){const g=l.value[u];if(!g||g.length===0)return;const b=new Set(p.map(G=>G.id)),F=new Set(p.filter(G=>G.messageType==="fileChange"&&typeof G.turnId=="string"&&G.turnId.length>0).map(G=>G.turnId)),B=new Set(p.filter(G=>G.messageType==="fileChange"&&typeof G.turnIndex=="number").map(G=>G.turnIndex)),U=g.filter(G=>!b.has(G.id)&&!(G.turnId&&F.has(G.turnId))&&!(typeof G.turnIndex=="number"&&B.has(G.turnIndex)));U.length!==g.length&&(U.length===0?l.value=Ot(l.value,u):l.value={...l.value,[u]:U})}function Gc(u){if(u.method==="item/agentMessage/delta")return!0;const p=qe(u.params);if(!p)return!1;if(u.method==="item/completed"){const g=qe(p.item);return(g==null?void 0:g.type)==="agentMessage"}return!1}function Kc(u){var mo,vs,Zr,qi,ll;if(wn(u))return;if(u.method==="account/rateLimits/updated"&&vr(),u.method==="thread/name/updated"){const Je=qe(u.params),cn=Te(Je==null?void 0:Je.threadId),eo=Te(Je==null?void 0:Je.threadName);cn&&eo&&(Re.value={...Re.value,[cn]:eo},Dt(),od(cn,eo))}if(u.method==="account/rateLimits/updated"){mn(j_(u.params));return}const p=Mn(u);if(p){ct(p.threadId,p.usage);return}const g=ds(u);g&&dt(g.threadId,g.activity);const b=qt(u),F=br(u);!F&&b&&an(b);const B=Lc(u);B&&(Ue.set(B.turnId,B),Va(B.threadId,B.turnId,Ni(B.threadId)),_e.value={..._e.value,[B.threadId]:B.turnId},Rn(B.threadId),bn(B.threadId),Vt(B.threadId,null),gt(B.threadId,null),Mt(B.threadId,!0),m.value[B.threadId]&&(m.value=Ot(m.value,B.threadId)));const U=Dc(u),G=zt(u),oe=(U==null?void 0:U.threadId)??qt(u),je=oe?Ne(oe):"",We=!!oe&&!!G&&je!==jr&&El(new Error(G));if(U){fe.value[U.threadId];const Je=Ue.get(U.turnId);Je&&Ue.delete(U.turnId);const cn=St((mo=qe(u.params))==null?void 0:mo.durationMs)??St((Zr=qe((vs=qe(u.params))==null?void 0:vs.turn))==null?void 0:Zr.durationMs)??(typeof U.startedAtMs=="number"?U.completedAtMs-U.startedAtMs:null)??(Je?U.completedAtMs-Je.startedAtMs:null),eo=typeof cn=="number"?Math.max(0,cn):0;Vt(U.threadId,{turnId:U.turnId,durationMs:eo}),_e.value[U.threadId]&&(_e.value=Ot(_e.value,U.threadId)),Mt(U.threadId,!1),dt(U.threadId,null),vn(U.threadId),We||(mr(U.threadId),tl(U.threadId))}if(G){const Je=(U==null?void 0:U.threadId)||qt(u);Je&&gt(Je,G),ve.value=G,Je&&We&&Ut(Je)}else U&&gt(U.threadId,null);if(F){const Je=b,cn=Je?Ne(Je):O.value.trim();Je&&gt(Je,F.message,{transient:F.transient}),ve.value=F.message,cn!==jr&&El(new Error(F.message))&&(Je?Ut(Je):ar())}const ft=on(u);ft&&(Nr(ft.threadId,ft.message),dt(ft.threadId,{label:"Planning",details:((qi=ft.message.plan)==null?void 0:qi.steps.map(Je=>Je.step).slice(0,2))??[]}));const vt=Wn(u);if(vt&&(Nr(vt.threadId,vt.message),dt(vt.threadId,{label:"Planning",details:[]})),!b||b!==n.value)return;Uc(u);const tn=Ka(u);if(tn){const Je=(s.value[b]??[]).find(eo=>eo.id===tn.messageId),cn=`${(Je==null?void 0:Je.text)??""}${tn.delta}`;Hn(b,{id:tn.messageId,role:"assistant",text:cn,messageType:"agentMessage.live"})}const zs=Oi(u);zs&&Hn(b,zs),za(u);const Gs=Ga(u);if(Gs&&yn(b,Gs.delta),Bc(u)){const Je=i.value[b]??"";Je.trim().length>0&&!Je.endsWith(`
80
80
 
81
81
  `)&&Qn(b,`${Je}
82
82
 
83
- `)}qc(u);const Uo=Bo(u);Uo&&(Li(b,Uo),dt(b,{label:"Running command",details:[((ll=Uo.commandExecution)==null?void 0:ll.command)??""]}));const hs=Hc(u);if(hs){const Je=(a.value[b]??[]).find(cn=>cn.id===hs.itemId);Je!=null&&Je.commandExecution&&Li(b,{...Je,commandExecution:{...Je.commandExecution,aggregatedOutput:`${Je.commandExecution.aggregatedOutput}${hs.delta}`}})}const ms=Wc(u);ms&&Li(b,ms);const gs=Vc(u);if(gs&&En(b,gs),Gc(u)&&(ne&&n.value&&qn(n.value,{scrollTop:0,isAtBottom:!0,scrollRatio:1}),_n(b)),u.method==="turn/completed"){ne=!1,_n(b),a.value[b]&&(a.value=Ot(a.value,b));const Je=qt(u);Je&&(Mt(Je,!1),dt(Je,null),vn(Je),We||(mr(Je),tl(Je)))}}function Yc(u){if(u.method==="thread/tokenUsage/updated")return;const p=qt(u);p&&pe.add(p);const g=u.method;(g.startsWith("thread/")||g.startsWith("turn/")||g.startsWith("item/"))&&(ie=!0),!(q!==null||typeof window>"u")&&(q=window.setTimeout(()=>{q=null,Dr()},ld))}async function Jc(u){if(!me){me=!0;try{const p=await ks(),g=[];for(const b of p.order){const F=Go(b);g.includes(F)||g.push(F)}if(g.length>0){const b=Tl(g,u);Jo(Z.value,b)||(Z.value=b,Zs(Z.value))}if(Object.keys(p.labels).length>0){const b={...he.value};let F=!1;for(const[B,U]of Object.entries(p.labels)){const G=Go(B);b[G]!==U&&(b[G]=U,F=!0)}F&&(he.value=b,fd(b))}}catch{}}}async function Xc(){if(!(Object.keys(Re.value).length>0))try{const u=await iM();Object.keys(u.titles).length>0&&(Re.value=u.titles)}catch{}}async function Qc(u,p,g){if(Re.value[u])return;const b=p.trim();if(!b)return;const F=b.length>300?b.slice(0,300):b;try{const B=await cM(F,g);if(!B||Re.value[u])return;Re.value={...Re.value,[u]:B},Dt(),od(u,B)}catch{}}async function Ya(u){try{const p=await ks();if(p.order.length===0)return u;const g=new Set(p.order.map(b=>Go(b)));return u.filter(b=>g.has(b.projectName))}catch{return u}}async function ps(){var p;E.value||(nt.value=!0);const u=performance.now();try{const[g]=await Dd({name:"loadThreads",op:"ui.load.threads"},()=>Promise.all([TR(),Xc()]));await Jc(g);const b=await Ya(g),F=Tl(Z.value,b);Jo(Z.value,F)||(Z.value=F,Zs(Z.value));const B=pd(b,Z.value),U=gD(t.value,B,c.value);t.value=Il(t.value,U),c.value=un(c.value,new Set(oo(t.value).map(We=>We.id))),Dt(),E.value=!0;const G=oo(e.value);$r(G),G.some(We=>We.id===n.value)||Qe(((p=G[0])==null?void 0:p.id)??"");const je=Math.round(performance.now()-u);pr({category:"threads",message:`loaded ${G.length} threads in ${je}ms`,data:{projectCount:b.length},level:"info"})}finally{nt.value=!1}}async function tr(u,p={}){var B;if(!u)return;const g=Ae.value[u]===!0,b=p.silent!==!0&&!g;b&&(st.value=!0);const F=performance.now();try{const G=ue.value[u]!==!0?ed(u):null,oe=Fm(u),[je,We]=await Dd({name:"thread.loadMessages",op:"ui.load",attributes:{threadId:u,silent:p.silent??!1}},()=>Promise.all([G,oe]));je&&(Rt(u,je.model),ue.value={...ue.value,[u]:!0});const{messages:ft,inProgress:vt,activeTurnId:tn,turnIndexByTurnId:zs}=We;jc(u,zs),Fc(u);const Gs=r.value[u]??[],al=rD(Gs,ft,{preserveMissing:p.silent===!0});xn(u,al);const Uo=s.value[u]??[],hs=sD(Uo,ft);ln(u,hs),zc(u,ft),Di(u,ft),Ae.value={...Ae.value,[u]:!0};const ms=cr(u);ms&&(Ce.value={...Ce.value,[u]:ms}),Mt(u,vt),tn?_e.value={..._e.value,[u]:tn}:_e.value[u]&&(_e.value=Ot(_e.value,u)),vt||yr(u),gn(u);const gs=Math.round(performance.now()-F),mo=ye.value.find(Zr=>Zr.id===u),vs=((B=mo==null?void 0:mo.cwd)==null?void 0:B.split("/").pop())??"unknown";EE("thread",{id:u,messageCount:ft.length,loadMs:gs,projectFolder:vs}),pr({category:"thread",message:`loaded ${ft.length} msgs in ${gs}ms`,data:{threadId:u,projectFolder:vs},level:"info"})}finally{b&&(st.value=!1)}}async function Ja(u,p={}){u&&Ae.value[u]!==!0&&await tr(u,p)}async function qo(){var u,p;try{const g=((p=(u=$e.value)==null?void 0:u.cwd)==null?void 0:p.trim())??"";Ge.value=await uM(g?[g]:void 0)}catch{}}async function Xa(){try{mn(await qm())}catch{}}async function Zc(u={}){ve.value="";const p=u.includeSelectedThreadMessages!==!1,g=u.awaitAncillaryRefreshes===!0;try{await ps();const b=Promise.allSettled([Yr(),jn(),gr(),qo(),Xa()]).then(()=>{});p&&await tr(n.value),g&&await b}catch(b){ve.value=b instanceof Error?b.message:"Unknown application error"}}async function eu(u){Qe(u);try{await Promise.all([tr(u),qo()])}catch(p){ve.value=p instanceof Error?p.message:"Unknown application error"}}async function tu(u){try{await LR(u),await ps(),n.value===u&&await tr(n.value)}catch(p){ve.value=p instanceof Error?p.message:"Unknown application error"}}async function Qa(u,p){const g=p.trim();if(!(!u||!g))try{await DR(u,g),Re.value={...Re.value,[u]:g},Dt(),od(u,g)}catch(b){ve.value=b instanceof Error?b.message:"Unknown application error"}}async function nu(u){var U,G;const p=u.trim();if(!p)return"";const g=oo(t.value).find(oe=>oe.id===p),b=((U=g==null?void 0:g.cwd)==null?void 0:U.trim())??"",F=((G=g==null?void 0:g.title)==null?void 0:G.trim())??"Forked chat",B=Ne(p);ve.value="";try{const oe=await Hm(p,b||void 0,B||void 0),je=oe.threadId.trim();return je?(lr(je,b,F),Rt(je,oe.model),ue.value={...ue.value,[je]:!0},Qe(je),await ps(),await tr(je),je):""}catch(oe){return ve.value=oe instanceof Error?oe.message:"Unknown application error",""}}async function ru(u,p){var U;const g=u.trim();if(!g||!Number.isInteger(p)||p<0)return"";if(c.value[g]===!0)return ve.value="Finish the current turn before forking from a response.","";if(Ae.value[g]!==!0)try{await tr(g)}catch(G){return ve.value=G instanceof Error?G.message:"Unknown application error",""}const b=r.value[g]??[];let F=-1;for(const G of b)typeof G.turnIndex=="number"&&Number.isFinite(G.turnIndex)&&(F=Math.max(F,G.turnIndex));if(F>=0&&p>F)return"";const B=oo(t.value).find(G=>G.id===g)??null;try{ve.value="";const G=await Hm(g),oe=G.threadId.trim();if(!oe)return"";const je=G.cwd.trim()||((U=B==null?void 0:B.cwd)==null?void 0:U.trim())||"",We=yD((B==null?void 0:B.title)||(B==null?void 0:B.preview)||"Untitled thread");lr(oe,je,We),Rt(oe,G.model),xn(oe,G.messages),Ae.value={...Ae.value,[oe]:!0},ue.value={...ue.value,[oe]:!0},Rn(oe),ln(oe,[]),_n(oe),a.value[oe]&&(a.value=Ot(a.value,oe)),Vt(oe,null),dt(oe,null),gt(oe,null),Mt(oe,!1);const ft=F-p;if(ft>0){const vt=await td(oe,ft);xn(oe,vt)}return await Qa(oe,We),Qe(oe),ps().catch(()=>{}),oe}catch(G){return ve.value=G instanceof Error?G.message:"Unknown application error",""}}async function Za(u,p,g=[],b=[],F=[]){if(!u||!p.trim()||g.length>0||b.length>0||F.length>0)return!1;const U=(Me.value[u]??[]).filter(je=>je.method==="item/tool/requestUserInput");if(U.length!==1)return!1;const[G]=U,oe=it(G);return oe.length!==1?!1:Bi({id:G.id,result:{answers:{[oe[0]]:{answers:[p.trim()]}}}})}async function el(u,p=[],g=[],b="steer",F=[],B){if(be.value)return;const U=n.value,G=u.trim();if(!U||!G&&p.length===0&&F.length===0||await Za(U,G,p,g,F))return;pr({category:"ui.action",message:"send message",data:{threadId:U,hasImages:p.length>0,skillCount:g.length},level:"info"});const oe=c.value[U]===!0;if(oe&&b==="queue"){const je=d.value[U]??[],We=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,ft=[...je],vt=typeof B=="number"?Math.max(0,Math.min(B,ft.length)):ft.length;ft.splice(vt,0,{id:We,text:G,imageUrls:p,skills:g,fileAttachments:F,collaborationMode:P.value}),d.value={...d.value,[U]:ft};return}if(oe){ne=!0,Ws(U,G,p,g,F).catch(je=>{const We=je instanceof Error?je.message:"Unknown application error";gt(U,We),ve.value=We});return}ve.value="",ne=!0,Vt(U,null),dt(U,{label:"Thinking",details:Wt(Ne(U),W.value,P.value)}),gt(U,null),Mt(U,!0);try{await Ws(U,G,p,g,F)}catch(je){ne=!1,Mt(U,!1),dt(U,null);const We=je instanceof Error?je.message:"Unknown application error";throw gt(U,We),ve.value=We,je}}async function Hs(u,p,g=[],b=[],F=[]){if(be.value)return"";const B=u.trim(),U=p.trim(),G=O.value.trim();if(!B&&g.length===0&&F.length===0)return"";Ke.value=!0,ve.value="";let oe="";try{try{const vt=await Um(U||void 0,G||void 0);oe=vt.threadId,Rt(oe,vt.model)}catch(vt){if(G&&G!==jr&&El(vt)){await ar();const tn=await Um(U||void 0,jr);oe=tn.threadId,Rt(oe,tn.model)}else throw vt}if(!oe)return"";lr(oe,U,B||"[Image]"),ue.value={...ue.value,[oe]:!0},Qe(oe),ne=!0,Vt(oe,null),dt(oe,{label:"Thinking",details:Wt(O.value,W.value,P.value)}),gt(oe,null),Mt(oe,!0);const je=oe,We=U||null,ft=B;return Ws(oe,B,g,b,F).catch(vt=>{ne=!1,Mt(oe,!1),dt(oe,null);const tn=vt instanceof Error?vt.message:"Unknown application error";gt(oe,tn),ve.value=tn}).finally(()=>{Ke.value=!1}),Qc(je,ft,We),oe}catch(je){ne=!1,oe&&(Mt(oe,!1),dt(oe,null));const We=je instanceof Error?je.message:"Unknown application error";throw oe&&gt(oe,We),ve.value=We,Ke.value=!1,je}}async function Ws(u,p,g=[],b=[],F=[]){const B=W.value,U=P.value,G=p.trim(),oe=b.map(We=>({name:We.name,path:We.path})),je=F.map(We=>({...We}));Xn(u,{text:G,imageUrls:[...g],skills:oe,fileAttachments:je,effort:B,collaborationMode:U,fallbackRetried:!1});try{if(ue.value[u]!==!0){const vt=await ed(u);Rt(u,vt.model)}const We=Ne(u);let ft="";try{ft=await nd(u,p,g,We||void 0,B||void 0,b.length>0?b:void 0,F,U)}catch(vt){if(We&&We!==jr&&El(vt))await ar(u),Xn(u,{text:G,imageUrls:[...g],skills:oe,fileAttachments:je,effort:B,collaborationMode:U,fallbackRetried:!0}),ft=await nd(u,p,g,jr,B||void 0,b.length>0?b:void 0,F,U);else throw vt}ft&&(_e.value={..._e.value,[u]:ft}),ue.value={...ue.value,[u]:!0},pe.add(u),ie=!0,await Dr(),ho(u)}catch(We){throw We}}async function tl(u){if(f.value[u]===!0)return;const p=d.value[u];if(!p||p.length===0)return;f.value={...f.value,[u]:!0};const[g,...b]=p;d.value=b.length>0?{...d.value,[u]:b}:Ot(d.value,u),Ke.value=!0,ve.value="",ne=!0,Vt(u,null),dt(u,{label:"Thinking",details:Wt(Ne(u),W.value,g.collaborationMode)}),gt(u,null),Mt(u,!0);try{Qt(g.collaborationMode),await Ws(u,g.text,g.imageUrls,g.skills,g.fileAttachments)}catch{Mt(u,!1),dt(u,null)}finally{f.value=Ot(f.value,u),Ke.value=!1}}async function ou(){const u=n.value;if(!u||c.value[u]!==!0)return;let p=_e.value[u];if(!p){const{activeTurnId:g}=await Fm(u);p=g,p&&(_e.value={..._e.value,[u]:p})}if(!p)throw new Error("Could not determine active turn id for interrupt");J.value=!0,ve.value="";try{await UR(u,p),Mt(u,!1),dt(u,null),gt(u,null),_e.value[u]&&(_e.value=Ot(_e.value,u)),pe.add(u),ie=!0,await Dr()}catch(g){const b=g instanceof Error?g.message:"Failed to interrupt active turn";gt(u,b),ve.value=b}finally{J.value=!1}}async function su(u){var G,oe;const p=n.value;if(!p||we.value||!u.trim())return;const g=r.value[p]??[],b=g.find(je=>je.turnId===u),F=typeof(b==null?void 0:b.turnIndex)=="number"?b.turnIndex:-1;if(F<0)return;const B=g.reduce((je,We)=>typeof We.turnIndex=="number"&&We.turnIndex>je?We.turnIndex:je,-1);if(B<0||F>B)return;const U=B-F+1;if(!(U<1)){we.value=!0,ve.value="";try{const je=((oe=(G=$e.value)==null?void 0:G.cwd)==null?void 0:oe.trim())??"";je&&await jR(p,u,je);const We=await td(p,U);xn(p,We),ln(p,[]),_n(p),a.value[p]&&(a.value=Ot(a.value,p)),Vt(p,null),dt(p,null),gt(p,null),ie=!0,await Dr()}catch(je){ve.value=je instanceof Error?je.message:"Failed to rollback thread"}finally{we.value=!1}}}let Vs=null;async function nl(u,p){try{const g=await ks(),b={...g.labels};let F=!1;for(const B of g.order){if(Go(B)!==u)continue;const U=p.trim();U.length===0?b[B]!==void 0&&(delete b[B],F=!0):b[B]!==U&&(b[B]=U,F=!0)}F&&await rd({order:g.order,labels:b,active:g.active})}catch{}}function ji(u,p){u.length===0||(he.value[u]??"")===p||(he.value={...he.value,[u]:p},fd(he.value),Vs!==null&&clearTimeout(Vs),Vs=setTimeout(()=>{Vs=null,nl(u,p)},500))}async function iu(u){var B;if(u.length===0)return;const p=Z.value.filter(U=>U!==u);if(Jo(Z.value,p)||(Z.value=p,Zs(Z.value)),t.value=t.value.filter(U=>U.projectName!==u),he.value[u]!==void 0){const U={...he.value};delete U[u],he.value=U,fd(U)}Dt();const g=oo(e.value);$r(g),g.some(U=>U.id===n.value)||Qe(((B=g[0])==null?void 0:B.id)??"");const F=new Set;try{const U=await ks();for(const G of U.order)Go(G)===u&&F.add(G);for(const G of U.active)Go(G)===u&&F.add(G);for(const G of Object.keys(U.labels))Go(G)===u&&F.add(G)}catch{}if(F.size>0)try{const U=await ks(),G=U.order.filter(We=>!F.has(We)),oe=U.active.filter(We=>!F.has(We)),je=oe.length===0&&G.length>0?[G[0]]:oe;await rd({order:G,labels:fD(U.labels,F),active:je});return}catch{}await Fi()}function au(u,p){if(u.length===0||t.value.length===0)return;const g=t.value.map(oe=>oe.projectName),b=g.indexOf(u);if(b===-1)return;const F=Math.max(0,Math.min(p,g.length-1)),B=ZL(g,b,F);if(B===g)return;const U=Tl(B,t.value);Z.value=U,Zs(Z.value);const G=pd(t.value,Z.value);t.value=Il(t.value,G),Dt(),Fi()}function rl(u){const p=u.trim();if(!p)return;const g=[p,...Z.value.filter(F=>F!==p)];if(Jo(Z.value,g))return;Z.value=g,Zs(Z.value);const b=pd(t.value,Z.value);t.value=Il(t.value,b),Dt(),Fi()}async function Fi(){var u,p;try{const g=await ks(),b=new Map;for(const U of g.order){const G=Go(U);b.has(G)||b.set(G,U)}for(const U of t.value){const G=((p=(u=U.threads[0])==null?void 0:u.cwd)==null?void 0:p.trim())??"";G&&b.set(U.projectName,G)}const F=[];for(const U of Z.value){const G=b.get(U);G&&!F.includes(G)&&F.push(G)}for(const U of g.order)F.includes(U)||F.push(U);const B=g.active.filter(U=>F.includes(U));B.length===0&&F.length>0&&B.push(F[0]),await rd({order:F,labels:g.labels,active:B})}catch{}}async function Dr(){if(Ze.value){typeof window<"u"&&q===null&&(q=window.setTimeout(()=>{q=null,Dr()},ld));return}Ze.value=!0;const u=ie,p=new Set(pe);ie=!1,pe.clear();try{u&&await ps();const g=n.value;if(!g)return;const b=p.has(g),F=c.value[g]===!0,B=cr(g),U=Ce.value[g]??"",G=B.length>0&&B!==U;(b||F||G||u)&&await tr(g,{silent:!0})}catch{}finally{Ze.value=!1,(ie||pe.size>0)&&typeof window<"u"&&q===null&&(q=window.setTimeout(()=>{q=null,Dr()},ld))}}async function lu(){await ol(),ie=!0,n.value&&pe.add(n.value),await Dr()}function cu(){typeof window>"u"||I||(ol(),I=xR(u=>{if(u.method==="ready"){Bn(),lu();return}Kc(u),Yc(u)}))}async function ol(){try{const p=(await MR()).map(g=>S(g)).filter(g=>g!==null);Pt(p)}catch{}}async function Bi(u){try{return await RR(u.id,{result:u.result,error:u.error}),Gt(u.id),!0}catch(p){return ve.value=p instanceof Error?p.message:"Failed to reply to server request",!1}}function uu(){if(I&&(I(),I=null),ie=!1,pe.clear(),Ue.clear(),q!==null&&typeof window<"u"&&(window.clearTimeout(q),q=null),Q!==null&&typeof window<"u"&&(window.clearTimeout(Q),Q=null),typeof window<"u")for(const u of ee.values())window.clearTimeout(u);ee.clear(),ne=!1,r.value={},o.value={},s.value={},i.value={},a.value={},l.value={},V.value={},xe.value={},ae.value={},Fe.value={},_e.value={},d.value={},f.value={},De.value=null,Be.value={}}const du=se(()=>{const u=n.value;return u?d.value[u]??[]:[]});function nr(u){const p=n.value;if(!p)return;const g=d.value[p];if(!g)return;const b=g.filter(F=>F.id!==u);d.value=b.length>0?{...d.value,[p]:b}:Ot(d.value,p)}function sl(u){const p=n.value;if(!p)return;const g=d.value[p];if(!g)return;const b=g.find(F=>F.id===u);b&&(nr(u),Qt(b.collaborationMode),el(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments))}function il(u){Qe(u)}return{projectGroups:e,projectDisplayNameById:he,selectedThread:$e,selectedThreadTokenUsage:le,selectedThreadScrollState:x,selectedThreadServerRequests:$,selectedLiveOverlay:D,codexQuota:X,selectedThreadId:n,availableCollaborationModes:T,availableModelIds:v,selectedCollaborationMode:P,selectedModelId:O,selectedReasoningEffort:W,selectedSpeedMode:Y,installedSkills:Ge,accountRateLimitSnapshots:ot,messages:Le,isLoadingThreads:nt,isLoadingMessages:st,isSendingMessage:Ke,isInterruptingTurn:J,isUpdatingSpeedMode:be,isRollingBack:we,error:ve,refreshAll:Zc,refreshSkills:qo,selectThread:eu,loadMessages:tr,ensureThreadMessagesLoaded:Ja,setThreadScrollState:qn,archiveThreadById:tu,renameThreadById:Qa,forkThreadById:nu,forkThreadFromTurn:ru,rollbackSelectedThread:su,sendMessageToSelectedThread:el,sendMessageToNewThread:Hs,interruptSelectedThreadTurn:ou,selectedThreadQueuedMessages:du,removeQueuedMessage:nr,steerQueuedMessage:sl,setSelectedCollaborationMode:Qt,setSelectedModelId:wt,setSelectedReasoningEffort:Zt,updateSelectedSpeedMode:Ht,respondToPendingServerRequest:Bi,renameProject:ji,removeProject:iu,reorderProject:au,pinProjectToTop:rl,startPolling:cu,stopPolling:uu,primeSelectedThread:il}}const bD={class:"sidebar-root"},wD={class:"sidebar-scrollable"},SD=["aria-pressed"],TD={key:1,class:"sidebar-search-bar"},ED={key:0,class:"sidebar-settings-area"},kD={key:0,class:"sidebar-settings-panel"},ID={class:"sidebar-settings-account-section"},AD={class:"sidebar-settings-account-header"},CD={class:"sidebar-settings-account-header-main"},xD=["aria-expanded","title"],RD={class:"sidebar-settings-account-collapse-icon"},MD={class:"sidebar-settings-account-count"},PD=["disabled"],$D={key:0,class:"sidebar-settings-account-error"},ND={key:1,class:"sidebar-settings-account-empty"},OD={key:2,class:"sidebar-settings-account-list"},LD=["title","onMouseenter","onMouseleave"],DD={class:"sidebar-settings-account-main"},jD={class:"sidebar-settings-account-email"},FD={class:"sidebar-settings-account-meta"},BD={class:"sidebar-settings-account-quota"},qD={class:"sidebar-settings-account-id"},UD={class:"sidebar-settings-account-actions"},HD=["disabled","onClick"],WD=["disabled","onClick"],VD=["title"],zD=["title"],GD={class:"sidebar-settings-value"},KD=["title"],YD={class:"sidebar-settings-value"},JD=["title"],XD={class:"sidebar-settings-value"},QD=["title"],ZD=["title"],ej=["title"],tj=["title"],nj={class:"sidebar-settings-value"},rj=["data-state","title"],oj=["data-state"],sj={class:"sidebar-settings-context-meta"},ij={class:"sidebar-settings-rate-limits"},aj={class:"sidebar-settings-build-label","aria-label":"Worktree name and version"},lj={class:"sidebar-settings-button-version"},cj={class:"content-body"},uj={key:1,class:"content-grid content-grid-home"},dj={class:"new-thread-empty"},fj=["title"],pj={key:1,class:"new-thread-open-folder"},hj={class:"new-thread-open-folder-current"},mj=["title"],gj=["disabled"],vj={class:"new-thread-open-folder-actions"},yj={class:"new-thread-open-folder-toggle"},_j=["aria-pressed","disabled"],bj={key:0,class:"new-thread-open-folder-create"},wj={class:"new-thread-open-folder-create-composer"},Sj=["onKeydown"],Tj=["disabled"],Ej={key:0,class:"new-thread-open-folder-error"},kj={key:1,class:"new-thread-open-folder-error-actions"},Ij={class:"new-thread-open-folder-error"},Aj=["disabled"],Cj={key:2,class:"new-thread-open-folder-status"},xj={key:3,class:"new-thread-open-folder-status"},Rj={key:4,class:"new-thread-open-folder-list"},Mj=["title","disabled","onClick"],Pj={class:"new-thread-open-folder-item-name"},$j=["disabled","onClick"],Nj={key:2,class:"new-thread-branch-select"},Oj={class:"new-thread-branch-select-help"},Lj={class:"worktree-init-status-title"},Dj={class:"worktree-init-status-message"},jj={key:4,class:"new-thread-trending"},Fj={class:"new-thread-trending-header"},Bj={key:0,class:"new-thread-trending-empty"},qj={key:1,class:"new-thread-trending-empty"},Uj={key:2,class:"new-thread-trending-list"},Hj=["onClick"],Wj=["title"],Vj={class:"new-thread-trending-tip-name-owner"},zj={class:"new-thread-trending-tip-name-repo"},Gj={key:1,class:"new-thread-trending-tip-name-repo"},Kj={class:"new-thread-trending-tip-meta"},Yj={class:"new-thread-trending-tip-description"},Jj={class:"composer-with-queue"},Xj={key:2,class:"content-grid"},Qj={class:"content-thread"},Zj={class:"composer-with-queue"},cg="codex-web-local.sidebar-collapsed.v1",ug="codex-web-local.accounts-section-collapsed.v1",dg="codex-web-local.send-with-enter.v1",fg="codex-web-local.in-progress-send-mode.v1",pg="codex-web-local.dark-mode.v1",hg="codex-web-local.dictation-click-to-toggle.v1",mg="codex-web-local.dictation-auto-send.v1",gg="codex-web-local.dictation-language.v1",vg="codex-web-local.github-trending-projects.v1",yg="codex-web-local.chat-width.v1",e2=400,t2=An({__name:"App",setup(e){const t=Su(()=>zu(()=>import("./ThreadConversation-DlVMY4f_.js"),__vite__mapDeps([0,1]))),n=Su(()=>zu(()=>import("./ReviewPane-Dee4Qknm.js"),__vite__mapDeps([2,3]))),r=Su(()=>zu(()=>import("./SkillsHub-DUNP6fA0.js"),__vite__mapDeps([4,5]))),o="a77f",s="0.1.81",i={sendWithEnter:"When enabled, press Enter to send. When disabled, use Command+Enter to send.",inProgressSendMode:"If a turn is still running, choose whether a new prompt should steer the current turn or be queued.",appearance:"Switch between system theme, light mode, and dark mode.",chatWidth:"Choose how wide the conversation column and composer can grow on desktop screens.",dictationClickToToggle:"Use click-to-start and click-to-stop dictation instead of hold-to-talk.",dictationAutoSend:"Automatically send transcribed dictation when recording stops.",githubTrendingProjects:"Show or hide GitHub trending project cards on the new thread screen.",dictationLanguage:"Choose transcription language or keep auto-detect."},a={standard:{label:"Standard",columnMax:"45rem",cardMax:"76ch"},wide:{label:"Wide",columnMax:"72rem",cardMax:"88ch"},"extra-wide":{label:"Extra wide",columnMax:"96rem",cardMax:"96ch"}},l={en:"english",zh:"chinese",de:"german",es:"spanish",ru:"russian",ko:"korean",fr:"french",ja:"japanese",pt:"portuguese",tr:"turkish",pl:"polish",ca:"catalan",nl:"dutch",ar:"arabic",sv:"swedish",it:"italian",id:"indonesian",hi:"hindi",fi:"finnish",vi:"vietnamese",he:"hebrew",uk:"ukrainian",el:"greek",ms:"malay",cs:"czech",ro:"romanian",da:"danish",hu:"hungarian",ta:"tamil",no:"norwegian",th:"thai",ur:"urdu",hr:"croatian",bg:"bulgarian",lt:"lithuanian",la:"latin",mi:"maori",ml:"malayalam",cy:"welsh",sk:"slovak",te:"telugu",fa:"persian",lv:"latvian",bn:"bengali",sr:"serbian",az:"azerbaijani",sl:"slovenian",kn:"kannada",et:"estonian",mk:"macedonian",br:"breton",eu:"basque",is:"icelandic",hy:"armenian",ne:"nepali",mn:"mongolian",bs:"bosnian",kk:"kazakh",sq:"albanian",sw:"swahili",gl:"galician",mr:"marathi",pa:"punjabi",si:"sinhala",km:"khmer",sn:"shona",yo:"yoruba",so:"somali",af:"afrikaans",oc:"occitan",ka:"georgian",be:"belarusian",tg:"tajik",sd:"sindhi",gu:"gujarati",am:"amharic",yi:"yiddish",lo:"lao",uz:"uzbek",fo:"faroese",ht:"haitian creole",ps:"pashto",tk:"turkmen",nn:"nynorsk",mt:"maltese",sa:"sanskrit",lb:"luxembourgish",my:"myanmar",bo:"tibetan",tl:"tagalog",mg:"malagasy",as:"assamese",tt:"tatar",haw:"hawaiian",ln:"lingala",ha:"hausa",ba:"bashkir",jw:"javanese",su:"sundanese",yue:"cantonese"},{projectGroups:c,projectDisplayNameById:d,selectedThread:f,selectedThreadTokenUsage:m,selectedThreadScrollState:v,selectedThreadServerRequests:T,selectedLiveOverlay:k,codexQuota:H,selectedThreadId:P,availableCollaborationModes:O,availableModelIds:W,selectedCollaborationMode:Y,selectedModelId:ce,selectedReasoningEffort:re,selectedSpeedMode:Z,installedSkills:he,accountRateLimitSnapshots:Ce,messages:Ae,isLoadingThreads:ue,isLoadingMessages:V,isSendingMessage:ae,isInterruptingTurn:xe,isUpdatingSpeedMode:Fe,refreshAll:_e,refreshSkills:Me,selectThread:fe,ensureThreadMessagesLoaded:De,setThreadScrollState:Be,archiveThreadById:Re,forkThreadById:Ge,renameThreadById:ot,forkThreadFromTurn:nt,sendMessageToSelectedThread:st,sendMessageToNewThread:Ke,interruptSelectedThreadTurn:J,selectedThreadQueuedMessages:be,removeQueuedMessage:we,steerQueuedMessage:ve,setSelectedCollaborationMode:Ze,setSelectedModelId:E,setSelectedReasoningEffort:I,updateSelectedSpeedMode:q,respondToPendingServerRequest:Q,renameProject:ee,removeProject:te,reorderProject:ie,pinProjectToTop:pe,startPolling:me,stopPolling:ne,primeSelectedThread:Ue,rollbackSelectedThread:ke}=_D(),ye=O1(),$e=N1(),{isMobile:x}=rp(),$=j(null),D=j(null),X=j(null),le=j([]),Le=j(!1),Ne=j("trending-daily"),rt=j(null),Qe=j(!1);let wt=!1;const Rt=j(!1),ct=j(""),Qt=j("local"),mn=j(""),ar=j([]),Xn=j(!1),mr=j({order:[],labels:{}}),Ut=j({phase:"idle",title:"",message:""}),Zt=j(Sb()),Ht=j(""),gr=j(!1),Wt=j(null),Yr=j(null);let jn=null;const vr=j("New Project (1)"),Mr=j(""),ho=j(!1),Fn=j(Eb()),en=j(!1),Pr=j([]),Cn=j(null),Dt=j(!1),lr=j(!1),$r=j(null),gn=j([]),Vt=j(!1),Mt=j(!1),vn=j(""),dt=j(""),gt=j(""),an=j(""),Bn=j(cl(dg,!0)),cr=j(ub()),qn=j(cb()),xn=j(db()),ln=j(cl(hg,!1)),Un=j(cl(mg,!0)),ur=j(bb()),Nr=se(()=>wb()),Hn=j(cl(vg,!1)),En=j(!1),Qn=j(""),yn=j(""),_n=j(!1),Rn=j(!1),bn=j(""),yr=j(""),Jr=j([]),Nt=j(""),on=j(!1),Wn=j(!1),qe=j(!1),Te=j(""),St=j({configured:!1,active:!1,mappedChats:0,mappedThreads:0,lastError:""}),Or=j(null),Lr=j(!1),Zn=j(!1);let er=null,Xr=!1,_r=0;const Mn=se(()=>{const h=ye.params.threadId;return typeof h=="string"?h:""}),qt=se(()=>{const h=new Set;for(const _ of c.value)for(const M of _.threads)h.add(M.id);return h}),zt=se(()=>ye.name==="home"),br=se(()=>ye.name==="skills"),S=se(()=>{var h;return br.value?"Skills":zt.value?"New thread":((h=f.value)==null?void 0:h.title)??"Choose a thread"}),C=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",N=se(()=>{var _,M;return(((M=(_=f.value)==null?void 0:_.title)==null?void 0:M.trim())??"")||C}),z=se(()=>Ae.value.filter(h=>{const _=Ib(h.messageType,h.role);return _==="worked"?!0:!(_==="turnActivity.live"||_==="turnError.live"||_==="agentReasoning.live")})),w=se(()=>k.value),R=se(()=>zt.value?"__new-thread__":P.value),K=se(()=>{const h=T.value;return h.length>0?h[h.length-1]:null}),Ee=se(()=>{var h,_;return zt.value?ct.value.trim():((_=(h=f.value)==null?void 0:h.cwd)==null?void 0:_.trim())??""}),it=se(()=>{var h;return!zt.value&&((h=f.value)==null?void 0:h.inProgress)===!0}),Ft=se(()=>!zt.value&&!br.value&&P.value.trim().length>0),Gt=se(()=>ae.value||xe.value||it.value||T.value.length>0);function Pt(h){return Number.isFinite(h)?new Intl.NumberFormat("en-US",{notation:h>=1e3?"compact":"standard",maximumFractionDigits:h>=1e5?0:1}).format(Math.max(0,Math.trunc(h))):"0"}function wn(h){if(!h)return"Waiting for Codex thread/tokenUsage/updated events for this thread.";const _=[`Current context usage: ${h.currentContextTokens.toLocaleString()} tokens`,`Cumulative thread usage: ${h.total.totalTokens.toLocaleString()} tokens`];return typeof h.modelContextWindow=="number"?(_.unshift(`Model context window: ${h.modelContextWindow.toLocaleString()} tokens`),_.push(`Remaining context: ${(h.remainingContextTokens??0).toLocaleString()} tokens`)):_.push("Model context window is unavailable in the latest usage event."),_.join(`
83
+ `)}qc(u);const Uo=Bo(u);Uo&&(Li(b,Uo),dt(b,{label:"Running command",details:[((ll=Uo.commandExecution)==null?void 0:ll.command)??""]}));const hs=Hc(u);if(hs){const Je=(a.value[b]??[]).find(cn=>cn.id===hs.itemId);Je!=null&&Je.commandExecution&&Li(b,{...Je,commandExecution:{...Je.commandExecution,aggregatedOutput:`${Je.commandExecution.aggregatedOutput}${hs.delta}`}})}const ms=Wc(u);ms&&Li(b,ms);const gs=Vc(u);if(gs&&En(b,gs),Gc(u)&&(ne&&n.value&&qn(n.value,{scrollTop:0,isAtBottom:!0,scrollRatio:1}),_n(b)),u.method==="turn/completed"){ne=!1,_n(b),a.value[b]&&(a.value=Ot(a.value,b));const Je=qt(u);Je&&(Mt(Je,!1),dt(Je,null),vn(Je),We||(mr(Je),tl(Je)))}}function Yc(u){if(u.method==="thread/tokenUsage/updated")return;const p=qt(u);p&&pe.add(p);const g=u.method;(g.startsWith("thread/")||g.startsWith("turn/")||g.startsWith("item/"))&&(ie=!0),!(q!==null||typeof window>"u")&&(q=window.setTimeout(()=>{q=null,Dr()},ld))}async function Jc(u){if(!me){me=!0;try{const p=await ks(),g=[];for(const b of p.order){const F=Go(b);g.includes(F)||g.push(F)}if(g.length>0){const b=Tl(g,u);Jo(Z.value,b)||(Z.value=b,Zs(Z.value))}if(Object.keys(p.labels).length>0){const b={...he.value};let F=!1;for(const[B,U]of Object.entries(p.labels)){const G=Go(B);b[G]!==U&&(b[G]=U,F=!0)}F&&(he.value=b,fd(b))}}catch{}}}async function Xc(){if(!(Object.keys(Re.value).length>0))try{const u=await iM();Object.keys(u.titles).length>0&&(Re.value=u.titles)}catch{}}async function Qc(u,p,g){if(Re.value[u])return;const b=p.trim();if(!b)return;const F=b.length>300?b.slice(0,300):b;try{const B=await cM(F,g);if(!B||Re.value[u])return;Re.value={...Re.value,[u]:B},Dt(),od(u,B)}catch{}}async function Ya(u){try{const p=await ks();if(p.order.length===0)return u;const g=new Set(p.order.map(b=>Go(b)));return u.filter(b=>g.has(b.projectName))}catch{return u}}async function ps(){var p;E.value||(nt.value=!0);const u=performance.now();try{const[g]=await Dd({name:"loadThreads",op:"ui.load.threads"},()=>Promise.all([TR(),Xc()]));await Jc(g);const b=await Ya(g),F=Tl(Z.value,b);Jo(Z.value,F)||(Z.value=F,Zs(Z.value));const B=pd(b,Z.value),U=vD(t.value,B,c.value);t.value=Il(t.value,U),c.value=un(c.value,new Set(oo(t.value).map(We=>We.id))),Dt(),E.value=!0;const G=oo(e.value);$r(G),G.some(We=>We.id===n.value)||Qe(((p=G[0])==null?void 0:p.id)??"");const je=Math.round(performance.now()-u);pr({category:"threads",message:`loaded ${G.length} threads in ${je}ms`,data:{projectCount:b.length},level:"info"})}finally{nt.value=!1}}async function tr(u,p={}){var B;if(!u)return;const g=Ae.value[u]===!0,b=p.silent!==!0&&!g;b&&(st.value=!0);const F=performance.now();try{const G=ue.value[u]!==!0?ed(u):null,oe=Fm(u),[je,We]=await Dd({name:"thread.loadMessages",op:"ui.load",attributes:{threadId:u,silent:p.silent??!1}},()=>Promise.all([G,oe]));je&&(Rt(u,je.model),ue.value={...ue.value,[u]:!0});const{messages:ft,inProgress:vt,activeTurnId:tn,turnIndexByTurnId:zs}=We;jc(u,zs),Fc(u);const Gs=r.value[u]??[],al=oD(Gs,ft,{preserveMissing:p.silent===!0});xn(u,al);const Uo=s.value[u]??[],hs=iD(Uo,ft);ln(u,hs),zc(u,ft),Di(u,ft),Ae.value={...Ae.value,[u]:!0};const ms=cr(u);ms&&(Ce.value={...Ce.value,[u]:ms}),Mt(u,vt),tn?_e.value={..._e.value,[u]:tn}:_e.value[u]&&(_e.value=Ot(_e.value,u)),vt||yr(u),gn(u);const gs=Math.round(performance.now()-F),mo=ye.value.find(Zr=>Zr.id===u),vs=((B=mo==null?void 0:mo.cwd)==null?void 0:B.split("/").pop())??"unknown";EE("thread",{id:u,messageCount:ft.length,loadMs:gs,projectFolder:vs}),pr({category:"thread",message:`loaded ${ft.length} msgs in ${gs}ms`,data:{threadId:u,projectFolder:vs},level:"info"})}finally{b&&(st.value=!1)}}async function Ja(u,p={}){u&&Ae.value[u]!==!0&&await tr(u,p)}async function qo(){var u,p;try{const g=((p=(u=$e.value)==null?void 0:u.cwd)==null?void 0:p.trim())??"";Ge.value=await uM(g?[g]:void 0)}catch{}}async function Xa(){try{mn(await qm())}catch{}}async function Zc(u={}){ve.value="";const p=u.includeSelectedThreadMessages!==!1,g=u.awaitAncillaryRefreshes===!0;try{await ps();const b=Promise.allSettled([Yr(),jn(),gr(),qo(),Xa()]).then(()=>{});p&&await tr(n.value),g&&await b}catch(b){ve.value=b instanceof Error?b.message:"Unknown application error"}}async function eu(u){Qe(u);try{await Promise.all([tr(u),qo()])}catch(p){ve.value=p instanceof Error?p.message:"Unknown application error"}}async function tu(u){try{await LR(u),await ps(),n.value===u&&await tr(n.value)}catch(p){ve.value=p instanceof Error?p.message:"Unknown application error"}}async function Qa(u,p){const g=p.trim();if(!(!u||!g))try{await DR(u,g),Re.value={...Re.value,[u]:g},Dt(),od(u,g)}catch(b){ve.value=b instanceof Error?b.message:"Unknown application error"}}async function nu(u){var U,G;const p=u.trim();if(!p)return"";const g=oo(t.value).find(oe=>oe.id===p),b=((U=g==null?void 0:g.cwd)==null?void 0:U.trim())??"",F=((G=g==null?void 0:g.title)==null?void 0:G.trim())??"Forked chat",B=Ne(p);ve.value="";try{const oe=await Hm(p,b||void 0,B||void 0),je=oe.threadId.trim();return je?(lr(je,b,F),Rt(je,oe.model),ue.value={...ue.value,[je]:!0},Qe(je),await ps(),await tr(je),je):""}catch(oe){return ve.value=oe instanceof Error?oe.message:"Unknown application error",""}}async function ru(u,p){var U;const g=u.trim();if(!g||!Number.isInteger(p)||p<0)return"";if(c.value[g]===!0)return ve.value="Finish the current turn before forking from a response.","";if(Ae.value[g]!==!0)try{await tr(g)}catch(G){return ve.value=G instanceof Error?G.message:"Unknown application error",""}const b=r.value[g]??[];let F=-1;for(const G of b)typeof G.turnIndex=="number"&&Number.isFinite(G.turnIndex)&&(F=Math.max(F,G.turnIndex));if(F>=0&&p>F)return"";const B=oo(t.value).find(G=>G.id===g)??null;try{ve.value="";const G=await Hm(g),oe=G.threadId.trim();if(!oe)return"";const je=G.cwd.trim()||((U=B==null?void 0:B.cwd)==null?void 0:U.trim())||"",We=_D((B==null?void 0:B.title)||(B==null?void 0:B.preview)||"Untitled thread");lr(oe,je,We),Rt(oe,G.model),xn(oe,G.messages),Ae.value={...Ae.value,[oe]:!0},ue.value={...ue.value,[oe]:!0},Rn(oe),ln(oe,[]),_n(oe),a.value[oe]&&(a.value=Ot(a.value,oe)),Vt(oe,null),dt(oe,null),gt(oe,null),Mt(oe,!1);const ft=F-p;if(ft>0){const vt=await td(oe,ft);xn(oe,vt)}return await Qa(oe,We),Qe(oe),ps().catch(()=>{}),oe}catch(G){return ve.value=G instanceof Error?G.message:"Unknown application error",""}}async function Za(u,p,g=[],b=[],F=[]){if(!u||!p.trim()||g.length>0||b.length>0||F.length>0)return!1;const U=(Me.value[u]??[]).filter(je=>je.method==="item/tool/requestUserInput");if(U.length!==1)return!1;const[G]=U,oe=it(G);return oe.length!==1?!1:Bi({id:G.id,result:{answers:{[oe[0]]:{answers:[p.trim()]}}}})}async function el(u,p=[],g=[],b="steer",F=[],B){if(be.value)return;const U=n.value,G=u.trim();if(!U||!G&&p.length===0&&F.length===0||await Za(U,G,p,g,F))return;pr({category:"ui.action",message:"send message",data:{threadId:U,hasImages:p.length>0,skillCount:g.length},level:"info"});const oe=c.value[U]===!0;if(oe&&b==="queue"){const je=d.value[U]??[],We=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,ft=[...je],vt=typeof B=="number"?Math.max(0,Math.min(B,ft.length)):ft.length;ft.splice(vt,0,{id:We,text:G,imageUrls:p,skills:g,fileAttachments:F,collaborationMode:P.value}),d.value={...d.value,[U]:ft};return}if(oe){ne=!0,Ws(U,G,p,g,F).catch(je=>{const We=je instanceof Error?je.message:"Unknown application error";gt(U,We),ve.value=We});return}ve.value="",ne=!0,Vt(U,null),dt(U,{label:"Thinking",details:Wt(Ne(U),W.value,P.value)}),gt(U,null),Mt(U,!0);try{await Ws(U,G,p,g,F)}catch(je){ne=!1,Mt(U,!1),dt(U,null);const We=je instanceof Error?je.message:"Unknown application error";throw gt(U,We),ve.value=We,je}}async function Hs(u,p,g=[],b=[],F=[]){if(be.value)return"";const B=u.trim(),U=p.trim(),G=O.value.trim();if(!B&&g.length===0&&F.length===0)return"";Ke.value=!0,ve.value="";let oe="";try{try{const vt=await Um(U||void 0,G||void 0);oe=vt.threadId,Rt(oe,vt.model)}catch(vt){if(G&&G!==jr&&El(vt)){await ar();const tn=await Um(U||void 0,jr);oe=tn.threadId,Rt(oe,tn.model)}else throw vt}if(!oe)return"";lr(oe,U,B||"[Image]"),ue.value={...ue.value,[oe]:!0},Qe(oe),ne=!0,Vt(oe,null),dt(oe,{label:"Thinking",details:Wt(O.value,W.value,P.value)}),gt(oe,null),Mt(oe,!0);const je=oe,We=U||null,ft=B;return Ws(oe,B,g,b,F).catch(vt=>{ne=!1,Mt(oe,!1),dt(oe,null);const tn=vt instanceof Error?vt.message:"Unknown application error";gt(oe,tn),ve.value=tn}).finally(()=>{Ke.value=!1}),Qc(je,ft,We),oe}catch(je){ne=!1,oe&&(Mt(oe,!1),dt(oe,null));const We=je instanceof Error?je.message:"Unknown application error";throw oe&&gt(oe,We),ve.value=We,Ke.value=!1,je}}async function Ws(u,p,g=[],b=[],F=[]){const B=W.value,U=P.value,G=p.trim(),oe=b.map(We=>({name:We.name,path:We.path})),je=F.map(We=>({...We}));Xn(u,{text:G,imageUrls:[...g],skills:oe,fileAttachments:je,effort:B,collaborationMode:U,fallbackRetried:!1});try{if(ue.value[u]!==!0){const vt=await ed(u);Rt(u,vt.model)}const We=Ne(u);let ft="";try{ft=await nd(u,p,g,We||void 0,B||void 0,b.length>0?b:void 0,F,U)}catch(vt){if(We&&We!==jr&&El(vt))await ar(u),Xn(u,{text:G,imageUrls:[...g],skills:oe,fileAttachments:je,effort:B,collaborationMode:U,fallbackRetried:!0}),ft=await nd(u,p,g,jr,B||void 0,b.length>0?b:void 0,F,U);else throw vt}ft&&(_e.value={..._e.value,[u]:ft}),ue.value={...ue.value,[u]:!0},pe.add(u),ie=!0,await Dr(),ho(u)}catch(We){throw We}}async function tl(u){if(f.value[u]===!0)return;const p=d.value[u];if(!p||p.length===0)return;f.value={...f.value,[u]:!0};const[g,...b]=p;d.value=b.length>0?{...d.value,[u]:b}:Ot(d.value,u),Ke.value=!0,ve.value="",ne=!0,Vt(u,null),dt(u,{label:"Thinking",details:Wt(Ne(u),W.value,g.collaborationMode)}),gt(u,null),Mt(u,!0);try{Qt(g.collaborationMode),await Ws(u,g.text,g.imageUrls,g.skills,g.fileAttachments)}catch{Mt(u,!1),dt(u,null)}finally{f.value=Ot(f.value,u),Ke.value=!1}}async function ou(){const u=n.value;if(!u||c.value[u]!==!0)return;let p=_e.value[u];if(!p){const{activeTurnId:g}=await Fm(u);p=g,p&&(_e.value={..._e.value,[u]:p})}if(!p)throw new Error("Could not determine active turn id for interrupt");J.value=!0,ve.value="";try{await UR(u,p),Mt(u,!1),dt(u,null),gt(u,null),_e.value[u]&&(_e.value=Ot(_e.value,u)),pe.add(u),ie=!0,await Dr()}catch(g){const b=g instanceof Error?g.message:"Failed to interrupt active turn";gt(u,b),ve.value=b}finally{J.value=!1}}async function su(u){var G,oe;const p=n.value;if(!p||we.value||!u.trim())return;const g=r.value[p]??[],b=g.find(je=>je.turnId===u),F=typeof(b==null?void 0:b.turnIndex)=="number"?b.turnIndex:-1;if(F<0)return;const B=g.reduce((je,We)=>typeof We.turnIndex=="number"&&We.turnIndex>je?We.turnIndex:je,-1);if(B<0||F>B)return;const U=B-F+1;if(!(U<1)){we.value=!0,ve.value="";try{const je=((oe=(G=$e.value)==null?void 0:G.cwd)==null?void 0:oe.trim())??"";je&&await jR(p,u,je);const We=await td(p,U);xn(p,We),ln(p,[]),_n(p),a.value[p]&&(a.value=Ot(a.value,p)),Vt(p,null),dt(p,null),gt(p,null),ie=!0,await Dr()}catch(je){ve.value=je instanceof Error?je.message:"Failed to rollback thread"}finally{we.value=!1}}}let Vs=null;async function nl(u,p){try{const g=await ks(),b={...g.labels};let F=!1;for(const B of g.order){if(Go(B)!==u)continue;const U=p.trim();U.length===0?b[B]!==void 0&&(delete b[B],F=!0):b[B]!==U&&(b[B]=U,F=!0)}F&&await rd({order:g.order,labels:b,active:g.active})}catch{}}function ji(u,p){u.length===0||(he.value[u]??"")===p||(he.value={...he.value,[u]:p},fd(he.value),Vs!==null&&clearTimeout(Vs),Vs=setTimeout(()=>{Vs=null,nl(u,p)},500))}async function iu(u){var B;if(u.length===0)return;const p=Z.value.filter(U=>U!==u);if(Jo(Z.value,p)||(Z.value=p,Zs(Z.value)),t.value=t.value.filter(U=>U.projectName!==u),he.value[u]!==void 0){const U={...he.value};delete U[u],he.value=U,fd(U)}Dt();const g=oo(e.value);$r(g),g.some(U=>U.id===n.value)||Qe(((B=g[0])==null?void 0:B.id)??"");const F=new Set;try{const U=await ks();for(const G of U.order)Go(G)===u&&F.add(G);for(const G of U.active)Go(G)===u&&F.add(G);for(const G of Object.keys(U.labels))Go(G)===u&&F.add(G)}catch{}if(F.size>0)try{const U=await ks(),G=U.order.filter(We=>!F.has(We)),oe=U.active.filter(We=>!F.has(We)),je=oe.length===0&&G.length>0?[G[0]]:oe;await rd({order:G,labels:pD(U.labels,F),active:je});return}catch{}await Fi()}function au(u,p){if(u.length===0||t.value.length===0)return;const g=t.value.map(oe=>oe.projectName),b=g.indexOf(u);if(b===-1)return;const F=Math.max(0,Math.min(p,g.length-1)),B=eD(g,b,F);if(B===g)return;const U=Tl(B,t.value);Z.value=U,Zs(Z.value);const G=pd(t.value,Z.value);t.value=Il(t.value,G),Dt(),Fi()}function rl(u){const p=u.trim();if(!p)return;const g=[p,...Z.value.filter(F=>F!==p)];if(Jo(Z.value,g))return;Z.value=g,Zs(Z.value);const b=pd(t.value,Z.value);t.value=Il(t.value,b),Dt(),Fi()}async function Fi(){var u,p;try{const g=await ks(),b=new Map;for(const U of g.order){const G=Go(U);b.has(G)||b.set(G,U)}for(const U of t.value){const G=((p=(u=U.threads[0])==null?void 0:u.cwd)==null?void 0:p.trim())??"";G&&b.set(U.projectName,G)}const F=[];for(const U of Z.value){const G=b.get(U);G&&!F.includes(G)&&F.push(G)}for(const U of g.order)F.includes(U)||F.push(U);const B=g.active.filter(U=>F.includes(U));B.length===0&&F.length>0&&B.push(F[0]),await rd({order:F,labels:g.labels,active:B})}catch{}}async function Dr(){if(Ze.value){typeof window<"u"&&q===null&&(q=window.setTimeout(()=>{q=null,Dr()},ld));return}Ze.value=!0;const u=ie,p=new Set(pe);ie=!1,pe.clear();try{u&&await ps();const g=n.value;if(!g)return;const b=p.has(g),F=c.value[g]===!0,B=cr(g),U=Ce.value[g]??"",G=B.length>0&&B!==U;(b||F||G||u)&&await tr(g,{silent:!0})}catch{}finally{Ze.value=!1,(ie||pe.size>0)&&typeof window<"u"&&q===null&&(q=window.setTimeout(()=>{q=null,Dr()},ld))}}async function lu(){await ol(),ie=!0,n.value&&pe.add(n.value),await Dr()}function cu(){typeof window>"u"||I||(ol(),I=xR(u=>{if(u.method==="ready"){Bn(),lu();return}Kc(u),Yc(u)}))}async function ol(){try{const p=(await MR()).map(g=>S(g)).filter(g=>g!==null);Pt(p)}catch{}}async function Bi(u){try{return await RR(u.id,{result:u.result,error:u.error}),Gt(u.id),!0}catch(p){return ve.value=p instanceof Error?p.message:"Failed to reply to server request",!1}}function uu(){if(I&&(I(),I=null),ie=!1,pe.clear(),Ue.clear(),q!==null&&typeof window<"u"&&(window.clearTimeout(q),q=null),Q!==null&&typeof window<"u"&&(window.clearTimeout(Q),Q=null),typeof window<"u")for(const u of ee.values())window.clearTimeout(u);ee.clear(),ne=!1,r.value={},o.value={},s.value={},i.value={},a.value={},l.value={},V.value={},xe.value={},ae.value={},Fe.value={},_e.value={},d.value={},f.value={},De.value=null,Be.value={}}const du=se(()=>{const u=n.value;return u?d.value[u]??[]:[]});function nr(u){const p=n.value;if(!p)return;const g=d.value[p];if(!g)return;const b=g.filter(F=>F.id!==u);d.value=b.length>0?{...d.value,[p]:b}:Ot(d.value,p)}function sl(u){const p=n.value;if(!p)return;const g=d.value[p];if(!g)return;const b=g.find(F=>F.id===u);b&&(nr(u),Qt(b.collaborationMode),el(b.text,b.imageUrls,b.skills,"steer",b.fileAttachments))}function il(u){Qe(u)}return{projectGroups:e,projectDisplayNameById:he,selectedThread:$e,selectedThreadTokenUsage:le,selectedThreadScrollState:x,selectedThreadServerRequests:$,selectedLiveOverlay:D,codexQuota:X,selectedThreadId:n,availableCollaborationModes:T,availableModelIds:v,selectedCollaborationMode:P,selectedModelId:O,selectedReasoningEffort:W,selectedSpeedMode:Y,installedSkills:Ge,accountRateLimitSnapshots:ot,messages:Le,isLoadingThreads:nt,isLoadingMessages:st,isSendingMessage:Ke,isInterruptingTurn:J,isUpdatingSpeedMode:be,isRollingBack:we,error:ve,refreshAll:Zc,refreshSkills:qo,selectThread:eu,loadMessages:tr,ensureThreadMessagesLoaded:Ja,setThreadScrollState:qn,archiveThreadById:tu,renameThreadById:Qa,forkThreadById:nu,forkThreadFromTurn:ru,rollbackSelectedThread:su,sendMessageToSelectedThread:el,sendMessageToNewThread:Hs,interruptSelectedThreadTurn:ou,selectedThreadQueuedMessages:du,removeQueuedMessage:nr,steerQueuedMessage:sl,setSelectedCollaborationMode:Qt,setSelectedModelId:wt,setSelectedReasoningEffort:Zt,updateSelectedSpeedMode:Ht,respondToPendingServerRequest:Bi,renameProject:ji,removeProject:iu,reorderProject:au,pinProjectToTop:rl,startPolling:cu,stopPolling:uu,primeSelectedThread:il}}const wD={class:"sidebar-root"},SD={class:"sidebar-scrollable"},TD=["aria-pressed"],ED={key:1,class:"sidebar-search-bar"},kD={key:0,class:"sidebar-settings-area"},ID={key:0,class:"sidebar-settings-panel"},AD={class:"sidebar-settings-account-section"},CD={class:"sidebar-settings-account-header"},xD={class:"sidebar-settings-account-header-main"},RD=["aria-expanded","title"],MD={class:"sidebar-settings-account-collapse-icon"},PD={class:"sidebar-settings-account-count"},$D=["disabled"],ND={key:0,class:"sidebar-settings-account-error"},OD={key:1,class:"sidebar-settings-account-empty"},LD={key:2,class:"sidebar-settings-account-list"},DD=["title","onMouseenter","onMouseleave"],jD={class:"sidebar-settings-account-main"},FD={class:"sidebar-settings-account-email"},BD={class:"sidebar-settings-account-meta"},qD={class:"sidebar-settings-account-quota"},UD={class:"sidebar-settings-account-id"},HD={class:"sidebar-settings-account-actions"},WD=["disabled","onClick"],VD=["disabled","onClick"],zD=["title"],GD=["title"],KD={class:"sidebar-settings-value"},YD=["title"],JD={class:"sidebar-settings-value"},XD=["title"],QD={class:"sidebar-settings-value"},ZD=["title"],ej=["title"],tj=["title"],nj=["title"],rj={class:"sidebar-settings-value"},oj=["data-state","title"],sj=["data-state"],ij={class:"sidebar-settings-context-meta"},aj={class:"sidebar-settings-rate-limits"},lj={class:"sidebar-settings-build-label","aria-label":"Worktree name and version"},cj={class:"sidebar-settings-button-version"},uj={class:"content-body"},dj={key:1,class:"content-grid content-grid-home"},fj={class:"new-thread-empty"},pj=["title"],hj={key:1,class:"new-thread-open-folder"},mj={class:"new-thread-open-folder-current"},gj=["title"],vj=["disabled"],yj={class:"new-thread-open-folder-actions"},_j={class:"new-thread-open-folder-toggle"},bj=["aria-pressed","disabled"],wj={key:0,class:"new-thread-open-folder-create"},Sj={class:"new-thread-open-folder-create-composer"},Tj=["onKeydown"],Ej=["disabled"],kj={key:0,class:"new-thread-open-folder-error"},Ij={key:1,class:"new-thread-open-folder-error-actions"},Aj={class:"new-thread-open-folder-error"},Cj=["disabled"],xj={key:2,class:"new-thread-open-folder-status"},Rj={key:3,class:"new-thread-open-folder-status"},Mj={key:4,class:"new-thread-open-folder-list"},Pj=["title","disabled","onClick"],$j={class:"new-thread-open-folder-item-name"},Nj=["disabled","onClick"],Oj={key:2,class:"new-thread-branch-select"},Lj={class:"new-thread-branch-select-help"},Dj={class:"worktree-init-status-title"},jj={class:"worktree-init-status-message"},Fj={key:4,class:"new-thread-trending"},Bj={class:"new-thread-trending-header"},qj={key:0,class:"new-thread-trending-empty"},Uj={key:1,class:"new-thread-trending-empty"},Hj={key:2,class:"new-thread-trending-list"},Wj=["onClick"],Vj=["title"],zj={class:"new-thread-trending-tip-name-owner"},Gj={class:"new-thread-trending-tip-name-repo"},Kj={key:1,class:"new-thread-trending-tip-name-repo"},Yj={class:"new-thread-trending-tip-meta"},Jj={class:"new-thread-trending-tip-description"},Xj={class:"composer-with-queue"},Qj={key:2,class:"content-grid"},Zj={class:"content-thread"},e2={class:"composer-with-queue"},cg="codex-web-local.sidebar-collapsed.v1",ug="codex-web-local.accounts-section-collapsed.v1",dg="codex-web-local.send-with-enter.v1",fg="codex-web-local.in-progress-send-mode.v1",pg="codex-web-local.dark-mode.v1",hg="codex-web-local.dictation-click-to-toggle.v1",mg="codex-web-local.dictation-auto-send.v1",gg="codex-web-local.dictation-language.v1",vg="codex-web-local.github-trending-projects.v1",yg="codex-web-local.chat-width.v1",t2=400,n2=An({__name:"App",setup(e){const t=Su(()=>zu(()=>import("./ThreadConversation-Dl_rx6II.js"),__vite__mapDeps([0,1]))),n=Su(()=>zu(()=>import("./ReviewPane-CxVyabn_.js"),__vite__mapDeps([2,3]))),r=Su(()=>zu(()=>import("./SkillsHub-BXlwzycZ.js"),__vite__mapDeps([4,5]))),o="a77f",s="0.1.82",i={sendWithEnter:"When enabled, press Enter to send. When disabled, use Command+Enter to send.",inProgressSendMode:"If a turn is still running, choose whether a new prompt should steer the current turn or be queued.",appearance:"Switch between system theme, light mode, and dark mode.",chatWidth:"Choose how wide the conversation column and composer can grow on desktop screens.",dictationClickToToggle:"Use click-to-start and click-to-stop dictation instead of hold-to-talk.",dictationAutoSend:"Automatically send transcribed dictation when recording stops.",githubTrendingProjects:"Show or hide GitHub trending project cards on the new thread screen.",dictationLanguage:"Choose transcription language or keep auto-detect."},a={standard:{label:"Standard",columnMax:"45rem",cardMax:"76ch"},wide:{label:"Wide",columnMax:"72rem",cardMax:"88ch"},"extra-wide":{label:"Extra wide",columnMax:"96rem",cardMax:"96ch"}},l={en:"english",zh:"chinese",de:"german",es:"spanish",ru:"russian",ko:"korean",fr:"french",ja:"japanese",pt:"portuguese",tr:"turkish",pl:"polish",ca:"catalan",nl:"dutch",ar:"arabic",sv:"swedish",it:"italian",id:"indonesian",hi:"hindi",fi:"finnish",vi:"vietnamese",he:"hebrew",uk:"ukrainian",el:"greek",ms:"malay",cs:"czech",ro:"romanian",da:"danish",hu:"hungarian",ta:"tamil",no:"norwegian",th:"thai",ur:"urdu",hr:"croatian",bg:"bulgarian",lt:"lithuanian",la:"latin",mi:"maori",ml:"malayalam",cy:"welsh",sk:"slovak",te:"telugu",fa:"persian",lv:"latvian",bn:"bengali",sr:"serbian",az:"azerbaijani",sl:"slovenian",kn:"kannada",et:"estonian",mk:"macedonian",br:"breton",eu:"basque",is:"icelandic",hy:"armenian",ne:"nepali",mn:"mongolian",bs:"bosnian",kk:"kazakh",sq:"albanian",sw:"swahili",gl:"galician",mr:"marathi",pa:"punjabi",si:"sinhala",km:"khmer",sn:"shona",yo:"yoruba",so:"somali",af:"afrikaans",oc:"occitan",ka:"georgian",be:"belarusian",tg:"tajik",sd:"sindhi",gu:"gujarati",am:"amharic",yi:"yiddish",lo:"lao",uz:"uzbek",fo:"faroese",ht:"haitian creole",ps:"pashto",tk:"turkmen",nn:"nynorsk",mt:"maltese",sa:"sanskrit",lb:"luxembourgish",my:"myanmar",bo:"tibetan",tl:"tagalog",mg:"malagasy",as:"assamese",tt:"tatar",haw:"hawaiian",ln:"lingala",ha:"hausa",ba:"bashkir",jw:"javanese",su:"sundanese",yue:"cantonese"},{projectGroups:c,projectDisplayNameById:d,selectedThread:f,selectedThreadTokenUsage:m,selectedThreadScrollState:v,selectedThreadServerRequests:T,selectedLiveOverlay:k,codexQuota:H,selectedThreadId:P,availableCollaborationModes:O,availableModelIds:W,selectedCollaborationMode:Y,selectedModelId:ce,selectedReasoningEffort:re,selectedSpeedMode:Z,installedSkills:he,accountRateLimitSnapshots:Ce,messages:Ae,isLoadingThreads:ue,isLoadingMessages:V,isSendingMessage:ae,isInterruptingTurn:xe,isUpdatingSpeedMode:Fe,refreshAll:_e,refreshSkills:Me,selectThread:fe,ensureThreadMessagesLoaded:De,setThreadScrollState:Be,archiveThreadById:Re,forkThreadById:Ge,renameThreadById:ot,forkThreadFromTurn:nt,sendMessageToSelectedThread:st,sendMessageToNewThread:Ke,interruptSelectedThreadTurn:J,selectedThreadQueuedMessages:be,removeQueuedMessage:we,steerQueuedMessage:ve,setSelectedCollaborationMode:Ze,setSelectedModelId:E,setSelectedReasoningEffort:I,updateSelectedSpeedMode:q,respondToPendingServerRequest:Q,renameProject:ee,removeProject:te,reorderProject:ie,pinProjectToTop:pe,startPolling:me,stopPolling:ne,primeSelectedThread:Ue,rollbackSelectedThread:ke}=bD(),ye=O1(),$e=N1(),{isMobile:x}=rp(),$=j(null),D=j(null),X=j(null),le=j([]),Le=j(!1),Ne=j("trending-daily"),rt=j(null),Qe=j(!1);let wt=!1;const Rt=j(!1),ct=j(""),Qt=j("local"),mn=j(""),ar=j([]),Xn=j(!1),mr=j({order:[],labels:{}}),Ut=j({phase:"idle",title:"",message:""}),Zt=j(Sb()),Ht=j(""),gr=j(!1),Wt=j(null),Yr=j(null);let jn=null;const vr=j("New Project (1)"),Mr=j(""),ho=j(!1),Fn=j(Eb()),en=j(!1),Pr=j([]),Cn=j(null),Dt=j(!1),lr=j(!1),$r=j(null),gn=j([]),Vt=j(!1),Mt=j(!1),vn=j(""),dt=j(""),gt=j(""),an=j(""),Bn=j(cl(dg,!0)),cr=j(ub()),qn=j(cb()),xn=j(db()),ln=j(cl(hg,!1)),Un=j(cl(mg,!0)),ur=j(bb()),Nr=se(()=>wb()),Hn=j(cl(vg,!1)),En=j(!1),Qn=j(""),yn=j(""),_n=j(!1),Rn=j(!1),bn=j(""),yr=j(""),Jr=j([]),Nt=j(""),on=j(!1),Wn=j(!1),qe=j(!1),Te=j(""),St=j({configured:!1,active:!1,mappedChats:0,mappedThreads:0,lastError:""}),Or=j(null),Lr=j(!1),Zn=j(!1);let er=null,Xr=!1,_r=0;const Mn=se(()=>{const h=ye.params.threadId;return typeof h=="string"?h:""}),qt=se(()=>{const h=new Set;for(const _ of c.value)for(const M of _.threads)h.add(M.id);return h}),zt=se(()=>ye.name==="home"),br=se(()=>ye.name==="skills"),S=se(()=>{var h;return br.value?"Skills":zt.value?"New thread":((h=f.value)==null?void 0:h.title)??"Choose a thread"}),C=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",N=se(()=>{var _,M;return(((M=(_=f.value)==null?void 0:_.title)==null?void 0:M.trim())??"")||C}),z=se(()=>Ae.value.filter(h=>{const _=Ib(h.messageType,h.role);return _==="worked"?!0:!(_==="turnActivity.live"||_==="turnError.live"||_==="agentReasoning.live")})),w=se(()=>k.value),R=se(()=>zt.value?"__new-thread__":P.value),K=se(()=>{const h=T.value;return h.length>0?h[h.length-1]:null}),Ee=se(()=>{var h,_;return zt.value?ct.value.trim():((_=(h=f.value)==null?void 0:h.cwd)==null?void 0:_.trim())??""}),it=se(()=>{var h;return!zt.value&&((h=f.value)==null?void 0:h.inProgress)===!0}),Ft=se(()=>!zt.value&&!br.value&&P.value.trim().length>0),Gt=se(()=>ae.value||xe.value||it.value||T.value.length>0);function Pt(h){return Number.isFinite(h)?new Intl.NumberFormat("en-US",{notation:h>=1e3?"compact":"standard",maximumFractionDigits:h>=1e5?0:1}).format(Math.max(0,Math.trunc(h))):"0"}function wn(h){if(!h)return"Waiting for Codex thread/tokenUsage/updated events for this thread.";const _=[`Current context usage: ${h.currentContextTokens.toLocaleString()} tokens`,`Cumulative thread usage: ${h.total.totalTokens.toLocaleString()} tokens`];return typeof h.modelContextWindow=="number"?(_.unshift(`Model context window: ${h.modelContextWindow.toLocaleString()} tokens`),_.push(`Remaining context: ${(h.remainingContextTokens??0).toLocaleString()} tokens`)):_.push("Model context window is unavailable in the latest usage event."),_.join(`
84
84
  `)}const Qr=se(()=>{var _;const h=(_=m.value)==null?void 0:_.remainingContextPercent;return h===null||typeof h!="number"?"pending":h<=10?"danger":h<=25?"warning":"ok"}),ds=se(()=>{const h=m.value;return h?typeof h.remainingContextTokens=="number"?`${Pt(h.remainingContextTokens)} left`:`${Pt(h.currentContextTokens)} used`:"Awaiting data"}),Lc=se(()=>{const h=m.value;return h?typeof h.modelContextWindow=="number"?`${Pt(h.currentContextTokens)} used / ${Pt(h.modelContextWindow)}`:"Window size unavailable":"Updates after the next token usage event"}),Dc=se(()=>wn(m.value)),fs=se(()=>{var de,Pe;const h=[],_=new Set;for(const Oe of mr.value.order){const at=Oe.trim();!at||_.has(at)||(_.add(at),h.push({value:at,label:mr.value.labels[at]||ni(at)}))}for(const Oe of c.value){const at=((Pe=(de=Oe.threads[0])==null?void 0:de.cwd)==null?void 0:Pe.trim())??"";!at||_.has(at)||(_.add(at),h.push({value:at,label:d.value[Oe.projectName]??Oe.projectName}))}const M=ct.value.trim();return M&&!_.has(M)&&h.unshift({value:M,label:ni(M)}),h}),Ni=se(()=>{const h=mn.value.trim(),_=[...ar.value];return h&&!_.some(M=>M.value===h)&&_.unshift({value:h,label:h}),_}),Va=se(()=>{const h=mn.value.trim();if(!h)return"";const _=Ni.value.find(M=>M.value===h);return(_==null?void 0:_.label)??h}),jc=se(()=>Cn.value??"__detached_head__"),Fc=se(()=>{var de;const h=[{value:"__review__",label:en.value?"Review (Open)":"Review"}],_=new Set,M=((de=Cn.value)==null?void 0:de.trim())??"";M?(h.push({value:M,label:M}),_.add(M)):(h.push({value:"__detached_head__",label:"Detached HEAD"}),_.add("__detached_head__"));for(const Pe of Pr.value)!Pe.value||_.has(Pe.value)||(_.add(Pe.value),h.push(Pe));return h}),za=se(()=>bn.value.trim()),Ga=se(()=>{const h=Qn.value.trim();return!h||h==="."||h===".."?!1:!/[\\/]/u.test(h)}),Bc=se(()=>Ga.value&&za.value.trim().length>0&&!Nt.value),qc=se(()=>_n.value?"Creating…":"Create"),Uc=se(()=>{const h=bn.value.trim(),_=yr.value.trim();return!!(h&&_&&h!==_)}),Ka=se(()=>{const h=[];Uc.value&&h.push({key:`parent:${yr.value}`,name:"..",path:yr.value,kind:"parent"});for(const _ of Jr.value)h.push({key:`directory:${_.path}`,name:_.name,path:_.path,kind:"directory"});return h}),Oi=se(()=>{const h=Te.value.trim().toLowerCase();return h?Ka.value.filter(_=>_.kind==="parent"||_.name.toLowerCase().includes(h)):Ka.value}),Bo=typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)"):null,Hc=se(()=>[{value:"search-daily",label:"Search daily"},{value:"search-weekly",label:"Search weekly"},{value:"search-monthly",label:"Search monthly"},{value:"trending-daily",label:"Trending daily"},{value:"trending-weekly",label:"Trending weekly"},{value:"trending-monthly",label:"Trending monthly"}]),Wc=se(()=>a[xn.value].label),Vc=se(()=>{const h=a[xn.value];return{"--chat-column-max":h.columnMax,"--chat-card-max":h.cardMax}}),Li=se(()=>{if(!St.value.configured)return"Not configured";const h=St.value.active?"Online":"Configured (offline)",_=`${St.value.mappedChats} chat(s), ${St.value.mappedThreads} thread(s)`,M=St.value.lastError?`, error: ${St.value.lastError}`:"";return`${h}, ${_}${M}`});as(()=>{window.addEventListener("keydown",sl),document.addEventListener("visibilitychange",il),window.addEventListener("pageshow",u),window.addEventListener("focus",p),ul(),Bo==null||Bo.addEventListener("change",ul),Ab(),eb(),Ui(),cn(),Di(),Hn.value&&fu()}),_c(()=>{window.removeEventListener("keydown",sl),document.removeEventListener("visibilitychange",il),window.removeEventListener("pageshow",u),window.removeEventListener("focus",p),Bo==null||Bo.removeEventListener("change",ul),er!==null&&(window.clearInterval(er),er=null),jn&&(clearTimeout(jn),jn=null),ne()}),lt(Ht,h=>{const _=h.trim();if(jn&&(clearTimeout(jn),jn=null),!_){Yr.value=null;return}jn=setTimeout(()=>{tM(_,1e3).then(M=>{Ht.value.trim()===_&&(Yr.value=M.threadIds)}).catch(()=>{Ht.value.trim()===_&&(Yr.value=null)})},220)}),lt(gn,()=>{if(typeof window>"u")return;if(!gn.value.some(_=>_.quotaStatus==="loading")){er!==null&&(window.clearInterval(er),er=null);return}er===null&&(er=window.setInterval(()=>{Xr||(Xr=!0,Hs({silent:!0}).finally(()=>{Xr=!1}))},1500))},{deep:!0});function zc(){Me()}async function Di(){try{St.value=await rM()}catch(h){const _=h instanceof Error?h.message:"Failed to load Telegram status";St.value={configured:!1,active:!1,mappedChats:0,mappedThreads:0,lastError:_}}}function Gc(){gr.value=!gr.value,gr.value?Jt(()=>{var h;return(h=Wt.value)==null?void 0:h.focus()}):Ht.value=""}function Kc(){var h;Ht.value="",(h=Wt.value)==null||h.focus()}function Yc(h){h.key==="Escape"&&(gr.value=!1,Ht.value="")}function Jc(h){h&&(ye.name==="thread"&&Mn.value===h||($e.push({name:"thread",params:{threadId:h}}),x.value&&nr(!0)))}async function Xc(h){h&&(P.value!==h&&(await fe(h),await $e.push({name:"thread",params:{threadId:h}})),await Jt(),sb())}function Qc(h){return h.length>8?h.slice(-8):h}function Ya(h){const _=[h.planType||"unknown"];return h.authMode&&_.unshift(h.authMode),_.join(" · ")}function ps(h){if(!h)return!1;const _=h.toLowerCase();return _.includes("payment required")||/\b402\b/.test(_)}function tr(h){return h.unavailableReason==="payment_required"||ps(h.quotaError)}function Ja(h){return Vt.value||Mt.value||vn.value.length>0||h.isActive&&vn.value!==h.accountId&&Gt.value}function qo(h){return dt.value===h.accountId}function Xa(h){return gt.value===h.accountId||qo(h)}function Zc(h){return tr(h)?"Unavailable":h.isActive?"Active":Mt.value?"Switching…":"Switch"}function eu(h){return vn.value===h.accountId?"Removing…":qo(h)?"Click again to remove":"Remove"}function tu(h){gt.value=h}function Qa(h){gt.value===h&&(gt.value=""),vn.value!==h&&dt.value===h&&(dt.value="")}function nu(h){const _=h.quotaSnapshot;if(!_)return null;const M=[_==null?void 0:_.primary,_==null?void 0:_.secondary].filter(Oe=>Oe!==null),de=M.find(Oe=>Oe.windowMinutes===10080);if(de)return de;const Pe=M.filter(Oe=>typeof Oe.windowMinutes=="number"&&Oe.windowMinutes>=10080).sort((Oe,at)=>(Oe.windowMinutes??0)-(at.windowMinutes??0))[0]??null;return Pe||(_.secondary??null)}function ru(h){if(typeof h!="number"||!Number.isFinite(h))return"";const _=new Date(h*1e3);return`${_.getMonth()+1}月${_.getDate()}日`}function Za(h){var Oe,at;if(tr(h))return h.quotaError||"402 Payment Required";const _=h.quotaSnapshot,M=nu(h),de=(_==null?void 0:_.primary)??(_==null?void 0:_.secondary)??null,Pe=M??de;if(Pe){const Pn=Math.max(0,Math.min(100,100-Math.round(Pe.usedPercent))),to=ru(Pe.resetsAt);return to?`${Pn}% weekly remaining · ${to}`:`${Pn}% weekly remaining`}return(Oe=_==null?void 0:_.credits)!=null&&Oe.unlimited?"Unlimited credits":(at=_==null?void 0:_.credits)!=null&&at.hasCredits&&_.credits.balance?`${_.credits.balance} credits`:h.quotaStatus==="loading"?"Loading quota…":h.quotaStatus==="error"?h.quotaError||"Quota unavailable":h.quotaStatus==="ready"||h.quotaStatus==="idle"?"Quota unavailable":"Fetching account details…"}function el(h){return[h.email||"Account",Ya(h),tr(h)?"Unavailable account":null,Za(h),`Workspace ${h.accountId}`].filter(Boolean).join(`
85
- `)}async function Hs(h={}){try{const _=await PR();gn.value=_.accounts,_.accounts.some(M=>M.accountId===gt.value)||(gt.value=""),_.accounts.some(M=>M.accountId===dt.value)||(dt.value="")}catch(_){if(h.silent===!0)return;an.value=_ instanceof Error?_.message:"Failed to load accounts"}}async function Ws(){if(!(Vt.value||Mt.value)){an.value="",gt.value="",dt.value="",Vt.value=!0;try{const h=await $R();gn.value=h.accounts,ne(),me(),_e({includeSelectedThreadMessages:!0})}catch(h){an.value=h instanceof Error?h.message:"Failed to refresh accounts"}finally{Vt.value=!1}}}async function tl(h){if(!(Mt.value||Vt.value)){if(Gt.value){an.value="Finish the current turn and pending requests before switching accounts.";return}an.value="",gt.value="",dt.value="",Mt.value=!0;try{const _=await NR(h);gn.value=gn.value.map(M=>M.accountId===h?_:{...M,isActive:!1}),ne(),me(),_e({includeSelectedThreadMessages:!0}),Hs({silent:!0})}catch(_){an.value=_ instanceof Error?_.message:"Failed to switch account"}finally{Mt.value=!1}}}async function ou(h){if(Vt.value||Mt.value||vn.value.length>0)return;const _=gn.value.find(de=>de.accountId===h)??null;if(!_)return;if(dt.value!==h){dt.value=h;return}if(_.isActive&&Gt.value){an.value="Finish the current turn and pending requests before removing the active account.";return}const M=_.isActive;an.value="",dt.value="",vn.value=h;try{const de=await OR(h);gn.value=de.accounts,ne(),me(),M&&_e({includeSelectedThreadMessages:!0}),Hs({silent:!0})}catch(de){an.value=de instanceof Error?de.message:"Failed to remove account"}finally{vn.value=""}}function su(h){Re(h)}async function Vs(h){const _=await Ge(h);_&&(zt.value?await $e.replace({name:"thread",params:{threadId:_}}):await $e.push({name:"thread",params:{threadId:_}}),x.value&&nr(!0))}function nl(h){const _=h.trim().replace(/\\/gu,"/");return _?_.includes("/.codex/worktrees/")||_.includes("/.git/worktrees/"):!1}function ji(h,_=""){var Oe,at,Pn;const M=c.value.find(to=>to.projectName===h);if(!M)return _.trim();const de=M.threads.find(to=>!nl(to.cwd));return(((Oe=de==null?void 0:de.cwd)==null?void 0:Oe.trim())??((Pn=(at=M.threads[0])==null?void 0:at.cwd)==null?void 0:Pn.trim())??"")||_.trim()}function iu(h){var de,Pe;const _=c.value.find(Oe=>Oe.projectName===h),M=ji(h,((Pe=(de=_==null?void 0:_.threads[0])==null?void 0:de.cwd)==null?void 0:Pe.trim())??"");M&&(ct.value=M),x.value&&nr(!0),!zt.value&&$e.push({name:"home"})}function au(h){var M;let _="";for(const de of c.value){const Pe=de.threads.find(Oe=>Oe.id===h);if((M=Pe==null?void 0:Pe.cwd)!=null&&M.trim()){_=Pe.cwd.trim();break}}!_||typeof window>"u"||window.open(`/codex-local-browse${encodeURI(_)}`,"_blank","noopener,noreferrer")}function rl(){var M;const h=f.value,_=h?ji(h.projectName,((M=h.cwd)==null?void 0:M.trim())??""):"";_&&(ct.value=_),x.value&&nr(!0),!zt.value&&$e.push({name:"home"})}function Fi(h){ee(h.projectName,h.displayName)}function Dr(h){ot(h.threadId,h.title)}async function lu(h){await te(h),await Ui(),cn()}function cu(h){ie(h.projectName,h.toIndex)}function ol(h){Be(h.threadId,h.state)}function Bi(h){uu(h)}async function uu(h){var de;const _=await Q(h),M=((de=h.followUpMessageText)==null?void 0:de.trim())??"";if(!(!_||!M||zt.value))try{await st(M,[],[],"steer",[])}catch{}}async function du(h){const _=await nt(h.threadId,h.turnIndex);_&&(await $e.push({name:"thread",params:{threadId:_}}),P.value!==_&&await fe(_),x.value&&nr(!0))}function nr(h){Zt.value!==h&&(Zt.value=h,Tb(h))}function sl(h){h.defaultPrevented||!h.ctrlKey&&!h.metaKey||h.shiftKey||h.altKey||h.key.toLowerCase()==="b"&&(h.preventDefault(),nr(!Zt.value))}function il(){if(!(typeof document>"u")&&x.value){if(document.visibilityState==="hidden"){Or.value=Date.now(),Lr.value=!1;return}g()}}function u(h){h.persisted&&g()}function p(){ye.name==="home"&&(Ui(),cn()),g()}function g(){typeof window>"u"||typeof document>"u"||!x.value||document.visibilityState!=="visible"||Lr.value||Or.value===null||Date.now()-Or.value<e2||(Lr.value=!0,Or.value=null,b())}async function b(){if(!Zn.value){Zn.value=!0;try{await _e({includeSelectedThreadMessages:!0,awaitAncillaryRefreshes:!0}),await mu()}finally{Zn.value=!1}}}function F(h){const _=h.text;We();const M=rt.value,de=h.mode==="queue"&&M&&M.threadId===P.value?M.queueIndex:void 0;if(rt.value=null,zt.value){Cb(_,h.imageUrls,h.skills,h.fileAttachments);return}st(_,h.imageUrls,h.skills,h.mode,h.fileAttachments,de)}function B(h){const _=new Intl.NumberFormat().format(h.stars);return h.language?`${h.language} · ★ ${_}`:`★ ${_}`}function U(h){const M=new Set(["search-daily","search-weekly","search-monthly","trending-daily","trending-weekly","trending-monthly"]).has(h)?h:"trending-daily";Ne.value!==M&&(Ne.value=M)}function G(){if(typeof window>"u")return;const h=window.prompt("Telegram bot token");!h||!h.trim()||nM(h.trim()).then(()=>{window.alert("Telegram bot configured. Open the bot DM and send /start."),Di()}).catch(_=>{const M=_ instanceof Error?_.message:"Failed to connect Telegram bot";window.alert(M),Di()})}function oe(h){const _=$.value;_&&_.hydrateDraft({text:`Clone this GitHub project and run it: ${h.url}
85
+ `)}async function Hs(h={}){try{const _=await PR();gn.value=_.accounts,_.accounts.some(M=>M.accountId===gt.value)||(gt.value=""),_.accounts.some(M=>M.accountId===dt.value)||(dt.value="")}catch(_){if(h.silent===!0)return;an.value=_ instanceof Error?_.message:"Failed to load accounts"}}async function Ws(){if(!(Vt.value||Mt.value)){an.value="",gt.value="",dt.value="",Vt.value=!0;try{const h=await $R();gn.value=h.accounts,ne(),me(),_e({includeSelectedThreadMessages:!0})}catch(h){an.value=h instanceof Error?h.message:"Failed to refresh accounts"}finally{Vt.value=!1}}}async function tl(h){if(!(Mt.value||Vt.value)){if(Gt.value){an.value="Finish the current turn and pending requests before switching accounts.";return}an.value="",gt.value="",dt.value="",Mt.value=!0;try{const _=await NR(h);gn.value=gn.value.map(M=>M.accountId===h?_:{...M,isActive:!1}),ne(),me(),_e({includeSelectedThreadMessages:!0}),Hs({silent:!0})}catch(_){an.value=_ instanceof Error?_.message:"Failed to switch account"}finally{Mt.value=!1}}}async function ou(h){if(Vt.value||Mt.value||vn.value.length>0)return;const _=gn.value.find(de=>de.accountId===h)??null;if(!_)return;if(dt.value!==h){dt.value=h;return}if(_.isActive&&Gt.value){an.value="Finish the current turn and pending requests before removing the active account.";return}const M=_.isActive;an.value="",dt.value="",vn.value=h;try{const de=await OR(h);gn.value=de.accounts,ne(),me(),M&&_e({includeSelectedThreadMessages:!0}),Hs({silent:!0})}catch(de){an.value=de instanceof Error?de.message:"Failed to remove account"}finally{vn.value=""}}function su(h){Re(h)}async function Vs(h){const _=await Ge(h);_&&(zt.value?await $e.replace({name:"thread",params:{threadId:_}}):await $e.push({name:"thread",params:{threadId:_}}),x.value&&nr(!0))}function nl(h){const _=h.trim().replace(/\\/gu,"/");return _?_.includes("/.codex/worktrees/")||_.includes("/.git/worktrees/"):!1}function ji(h,_=""){var Oe,at,Pn;const M=c.value.find(to=>to.projectName===h);if(!M)return _.trim();const de=M.threads.find(to=>!nl(to.cwd));return(((Oe=de==null?void 0:de.cwd)==null?void 0:Oe.trim())??((Pn=(at=M.threads[0])==null?void 0:at.cwd)==null?void 0:Pn.trim())??"")||_.trim()}function iu(h){var de,Pe;const _=c.value.find(Oe=>Oe.projectName===h),M=ji(h,((Pe=(de=_==null?void 0:_.threads[0])==null?void 0:de.cwd)==null?void 0:Pe.trim())??"");M&&(ct.value=M),x.value&&nr(!0),!zt.value&&$e.push({name:"home"})}function au(h){var M;let _="";for(const de of c.value){const Pe=de.threads.find(Oe=>Oe.id===h);if((M=Pe==null?void 0:Pe.cwd)!=null&&M.trim()){_=Pe.cwd.trim();break}}!_||typeof window>"u"||window.open(`/codex-local-browse${encodeURI(_)}`,"_blank","noopener,noreferrer")}function rl(){var M;const h=f.value,_=h?ji(h.projectName,((M=h.cwd)==null?void 0:M.trim())??""):"";_&&(ct.value=_),x.value&&nr(!0),!zt.value&&$e.push({name:"home"})}function Fi(h){ee(h.projectName,h.displayName)}function Dr(h){ot(h.threadId,h.title)}async function lu(h){await te(h),await Ui(),cn()}function cu(h){ie(h.projectName,h.toIndex)}function ol(h){Be(h.threadId,h.state)}function Bi(h){uu(h)}async function uu(h){var de;const _=await Q(h),M=((de=h.followUpMessageText)==null?void 0:de.trim())??"";if(!(!_||!M||zt.value))try{await st(M,[],[],"steer",[])}catch{}}async function du(h){const _=await nt(h.threadId,h.turnIndex);_&&(await $e.push({name:"thread",params:{threadId:_}}),P.value!==_&&await fe(_),x.value&&nr(!0))}function nr(h){Zt.value!==h&&(Zt.value=h,Tb(h))}function sl(h){h.defaultPrevented||!h.ctrlKey&&!h.metaKey||h.shiftKey||h.altKey||h.key.toLowerCase()==="b"&&(h.preventDefault(),nr(!Zt.value))}function il(){if(!(typeof document>"u")&&x.value){if(document.visibilityState==="hidden"){Or.value=Date.now(),Lr.value=!1;return}g()}}function u(h){h.persisted&&g()}function p(){ye.name==="home"&&(Ui(),cn()),g()}function g(){typeof window>"u"||typeof document>"u"||!x.value||document.visibilityState!=="visible"||Lr.value||Or.value===null||Date.now()-Or.value<t2||(Lr.value=!0,Or.value=null,b())}async function b(){if(!Zn.value){Zn.value=!0;try{await _e({includeSelectedThreadMessages:!0,awaitAncillaryRefreshes:!0}),await mu()}finally{Zn.value=!1}}}function F(h){const _=h.text;We();const M=rt.value,de=h.mode==="queue"&&M&&M.threadId===P.value?M.queueIndex:void 0;if(rt.value=null,zt.value){Cb(_,h.imageUrls,h.skills,h.fileAttachments);return}st(_,h.imageUrls,h.skills,h.mode,h.fileAttachments,de)}function B(h){const _=new Intl.NumberFormat().format(h.stars);return h.language?`${h.language} · ★ ${_}`:`★ ${_}`}function U(h){const M=new Set(["search-daily","search-weekly","search-monthly","trending-daily","trending-weekly","trending-monthly"]).has(h)?h:"trending-daily";Ne.value!==M&&(Ne.value=M)}function G(){if(typeof window>"u")return;const h=window.prompt("Telegram bot token");!h||!h.trim()||nM(h.trim()).then(()=>{window.alert("Telegram bot configured. Open the bot DM and send /start."),Di()}).catch(_=>{const M=_ instanceof Error?_.message:"Failed to connect Telegram bot";window.alert(M),Di()})}function oe(h){const _=$.value;_&&_.hydrateDraft({text:`Clone this GitHub project and run it: ${h.url}
86
86
  Then explain what this project does in very simple words a 5th grader can understand.`,imageUrls:[],fileAttachments:[],skills:[]})}function je(h){const _=be.value.findIndex(Oe=>Oe.id===h),M=_>=0?be.value[_]:void 0,de=D.value;if(!M||!de||de.hasUnsavedDraft()&&!window.confirm("Replace the current draft with this queued message for editing?"))return;rt.value=P.value?{threadId:P.value,queueIndex:_}:null;const Pe={text:M.text,imageUrls:[...M.imageUrls],fileAttachments:M.fileAttachments.map(Oe=>({...Oe})),skills:M.skills.map(Oe=>({...Oe}))};de.hydrateDraft(Pe),we(h)}function We(){if(!x.value||zt.value)return;const h=()=>{var _;(_=X.value)==null||_.jumpToLatest()};h(),Jt(()=>{h(),!(typeof window>"u")&&window.requestAnimationFrame(()=>{h(),window.requestAnimationFrame(h)})})}function ft(h){ct.value=h.trim(),yn.value=""}function vt(h){mn.value=h.trim()}async function tn(h){const _=h.trim();if(!_||ye.name!=="thread"){Pr.value=[],Cn.value=null;return}Dt.value=!0;try{const M=await YR(_);Pr.value=M.options,Cn.value=M.currentBranch}catch{Pr.value=[],Cn.value=null}finally{Dt.value=!1}}function zs(h){if(h==="__review__"){en.value=!en.value;return}if(h==="__detached_head__"||lr.value)return;const _=h.trim();if(!_||_===(Cn.value??""))return;const M=Ee.value.trim();M&&(lr.value=!0,JR(M,_).then(de=>(Cn.value=de||_,en.value=!1,tn(M))).catch(de=>{const Pe=de instanceof Error?de.message:"Failed to switch branch";window.alert(Pe)}).finally(()=>{lr.value=!1}))}async function Gs(){const _=await Je()||Mr.value.trim()||"/",M=new URLSearchParams,de=vr.value.trim();de&&M.set("newProjectName",de);const Pe=M.toString();window.location.assign(`/codex-local-browse${encodeURI(_)}${Pe?`?${Pe}`:""}`)}async function al(){const h=ct.value.trim()||await Je();h&&(En.value=!1,Rn.value=!0,Te.value="",await Ks(h))}function Uo(){_r+=1,Rn.value=!1,on.value=!1,Nt.value="",Te.value="",Zr()}async function hs(h){!h||on.value||(Te.value="",await Ks(h))}function ms(){const h=bn.value.trim();!Rn.value||!h||Ks(h)}function gs(){const h=bn.value.trim();!Rn.value||!h||on.value||Ks(h)}async function mo(h=bn.value){const _=h.trim();if(_){Nt.value="",Wn.value=!0;try{const M=await Vm(_,{createIfMissing:!1,label:""});if(!M){Nt.value="Failed to open the selected folder.";return}ct.value=M,pe(ni(M)),await Ui(),await cn(),Uo()}catch(M){Nt.value=M instanceof Error?M.message:"Failed to open the selected folder."}finally{Wn.value=!1}}}async function vs(){if(yn.value="",En.value){Zr();return}if(!Rn.value){const h=ct.value.trim()||await Je();if(!h||(Rn.value=!0,Te.value="",await Ks(h),Nt.value))return}Nt.value||(Qn.value=vr.value,En.value=!0,Jt(()=>{var h;return(h=$r.value)==null?void 0:h.focus()}))}function Zr(){yn.value="",Qn.value="",En.value=!1}async function qi(){const h=Qn.value.trim();if(!h)return;if(yn.value="",Nt.value){yn.value="Reload the current folder before creating a new one.";return}_n.value=!0;const _=za.value.trim(),M=nb(tb(_,h));if(!M){yn.value="Unable to determine where the new folder should be created.",_n.value=!1;return}if(!Ga.value){yn.value="Enter a single folder name.",_n.value=!1;return}try{const de=await QR(M);if(!de){yn.value="Failed to create the folder.";return}yn.value="",Te.value="",await Ks(de),Zr()}catch(de){yn.value=de instanceof Error?de.message:"Failed to create folder."}finally{_n.value=!1}}async function ll(){var _;if(typeof window>"u")return!1;const h=((_=new URLSearchParams(window.location.search).get("openProjectPath"))==null?void 0:_.trim())??"";if(!h)return!1;try{const M=await Vm(h,{createIfMissing:!1,label:""});if(!M)return!1;ct.value=M,pe(ni(M)),await $e.replace({name:"home"}),await Ui();const de=new URL(window.location.href);return de.searchParams.delete("openProjectPath"),window.history.replaceState({},"",de.toString()),!0}catch{return!1}}async function Je(){const h=eo();if(h)return h;try{const _=await Wm();if(_)return Mr.value=_,_}catch{}return""}async function cn(){const h=eo();if(!h){vr.value="New Project (1)";return}try{const _=await ZR(h);vr.value=_.name||"New Project (1)"}catch{vr.value="New Project (1)"}}function eo(){var M,de;const h=ct.value.trim();if(h)return Xu(h);const _=((de=(M=fs.value[0])==null?void 0:M.value)==null?void 0:de.trim())??"";return _?Xu(_):Mr.value.trim()}async function eb(){try{Mr.value=await Wm()}catch{Mr.value=""}}async function Ui(){try{const h=await ks();mr.value={order:[...h.order],labels:{...h.labels}}}catch{mr.value={order:[],labels:{}}}}async function Ks(h){const _=++_r;bn.value=nn(h).trim(),Nt.value="",on.value=!0;try{const M=await XR(h,{showHidden:qe.value});if(_!==_r)return;bn.value=M.path,yr.value=M.parentPath,Jr.value=M.entries}catch(M){if(_!==_r)return;Nt.value=M instanceof Error?M.message:"Failed to load local folders.",yr.value=Xu(bn.value),Jr.value=[],Zr()}finally{_===_r&&(on.value=!1)}}async function fu(){Le.value=!0;try{le.value=await sM(Ne.value,6)}catch{le.value=[]}finally{Le.value=!1}}function tb(h,_){const M=nn(h).trim(),de=nn(_).trim().replace(/^[\\/]+/u,"");if(!M||!de)return"";const Pe=M.includes("\\")&&!M.includes("/")?"\\":"/";if(/^[a-zA-Z]:[\\/]?$/u.test(M))return`${M.slice(0,2)}${Pe}${de}`;if(/^\/+$/u.test(M))return`/${de}`;const Oe=M.replace(/[\\/]+$/u,"");return Oe?`${Oe}${Pe}${de}`:""}function nb(h){const _=nn(h).trim();if(!_)return"";const M=_.match(/^\\\\([^\\/]+)[\\/]+([^\\/]+)([\\/].*)?$/u);if(M){const[,Pe,Oe,at=""]=M,Pn=pu(at.split(/[\\/]+/u));return Pn.length>0?`\\\\${Pe}\\${Oe}\\${Pn.join("\\")}`:`\\\\${Pe}\\${Oe}`}const de=_.match(/^([a-zA-Z]:)([\\/].*)?$/u);if(de){const[,Pe,Oe=""]=de,at=_.includes("\\")&&!_.includes("/")?"\\":"/",Pn=pu(Oe.split(/[\\/]+/u));return Pn.length>0?`${Pe}${at}${Pn.join(at)}`:`${Pe}${at}`}if(_.startsWith("/")){const Pe=pu(_.split("/"));return Pe.length>0?`/${Pe.join("/")}`:"/"}return _}function pu(h){const _=[];for(const M of h){const de=M.trim();if(!(!de||de===".")){if(de===".."){_.length>0&&_.pop();continue}_.push(de)}}return _}function cp(h){E(h)}function up(h){I(h)}function dp(h){q(h)}function rb(){J()}function ob(h){const _=h.turnId.trim();if(_.length>0){const M=[...z.value].reverse().find(de=>{var Pe;return de.role==="user"&&(((Pe=de.turnId)==null?void 0:Pe.trim())??"")===_&&de.text.trim().length>0});M!=null&&M.text&&D.value&&D.value.appendTextToDraft(M.text)}ke(h.turnId)}function sb(){if(zt.value||br.value||typeof document>"u"||!f.value||z.value.length===0)return;const h=ib(),_=ab(),M=new Blob([h],{type:"text/markdown;charset=utf-8"}),de=URL.createObjectURL(M),Pe=document.createElement("a");Pe.href=de,Pe.download=_,document.body.appendChild(Pe),Pe.click(),document.body.removeChild(Pe),window.setTimeout(()=>URL.revokeObjectURL(de),0)}function ib(){var M,de,Pe;const h=[],_=((de=(M=f.value)==null?void 0:M.title)==null?void 0:de.trim())||"Untitled thread";h.push(`# ${lb(_)}`),h.push(""),h.push(`- Exported: ${new Date().toISOString()}`),h.push(`- Thread ID: ${((Pe=f.value)==null?void 0:Pe.id)??""}`),h.push(""),h.push("---"),h.push("");for(const Oe of z.value){const at=Oe.role?Oe.role.toUpperCase():"MESSAGE";h.push(`## ${at}`),h.push("");const Pn=Oe.text.trim();if(Pn&&(h.push(Pn),h.push("")),Oe.commandExecution&&(h.push("```text"),h.push(`command: ${Oe.commandExecution.command}`),h.push(`status: ${Oe.commandExecution.status}`),Oe.commandExecution.cwd&&h.push(`cwd: ${Oe.commandExecution.cwd}`),Oe.commandExecution.exitCode!==null&&h.push(`exitCode: ${Oe.commandExecution.exitCode}`),h.push(Oe.commandExecution.aggregatedOutput||"(no output)"),h.push("```"),h.push("")),Oe.fileAttachments&&Oe.fileAttachments.length>0){h.push("Attachments:");for(const to of Oe.fileAttachments)h.push(`- ${to.path}`);h.push("")}if(Oe.images&&Oe.images.length>0){h.push("Images:");for(const to of Oe.images)h.push(`- ${to}`);h.push("")}}return`${h.join(`
87
87
  `).trimEnd()}
88
- `}function ab(){var Pe,Oe;const M=(((Oe=(Pe=f.value)==null?void 0:Pe.title)==null?void 0:Oe.trim())||"chat").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"chat",de=new Date().toISOString().replace(/[:.]/g,"-");return`${M}-${de}.md`}function lb(h){return h.replace(/([\\`*_{}\[\]()#+\-.!])/g,"\\$1")}function cl(h,_){if(typeof window>"u")return _;const M=window.localStorage.getItem(h);return M===null?_:M==="1"}function cb(){if(typeof window>"u")return"system";const h=window.localStorage.getItem(pg);return h==="light"||h==="dark"?h:"system"}function ub(){return typeof window>"u"?"steer":window.localStorage.getItem(fg)==="queue"?"queue":"steer"}function db(){if(typeof window>"u")return"standard";const h=window.localStorage.getItem(yg);return h==="standard"||h==="wide"||h==="extra-wide"?h:"standard"}function fb(){Bn.value=!Bn.value,window.localStorage.setItem(dg,Bn.value?"1":"0")}function pb(){cr.value=cr.value==="steer"?"queue":"steer",window.localStorage.setItem(fg,cr.value)}function hb(){const h=["system","light","dark"],_=h.indexOf(qn.value);qn.value=h[(_+1)%h.length],window.localStorage.setItem(pg,qn.value),ul()}function mb(){const h=["standard","wide","extra-wide"],_=h.indexOf(xn.value);xn.value=h[(_+1)%h.length],window.localStorage.setItem(yg,xn.value)}function gb(){ln.value=!ln.value,window.localStorage.setItem(hg,ln.value?"1":"0")}function vb(){Un.value=!Un.value,window.localStorage.setItem(mg,Un.value?"1":"0")}function yb(){Hn.value=!Hn.value,window.localStorage.setItem(vg,Hn.value?"1":"0")}function _b(h){const M=hu(h.trim())||"auto";ur.value=M,window.localStorage.setItem(gg,M)}function bb(){var M;if(typeof window>"u")return"auto";const h=((M=window.localStorage.getItem(gg))==null?void 0:M.trim())||"auto";return hu(h)||"auto"}function wb(){const h=[{value:"auto",label:"Auto-detect"}],_=new Set(["auto"]);function M(Pe){const Oe=l[Pe]||Pe;return`${Oe.charAt(0).toUpperCase()+Oe.slice(1)} (${Pe})`}for(const Pe of typeof navigator<"u"?navigator.languages??[]:[]){const Oe=hu(Pe);!Oe||_.has(Oe)||(_.add(Oe),h.push({value:Oe,label:`Preferred: ${M(Oe)}`}))}for(const Pe of Object.keys(l))_.has(Pe)||(_.add(Pe),h.push({value:Pe,label:M(Pe)}));const de=ur.value.trim();return de&&!_.has(de)&&h.push({value:de,label:M(de)}),h}function hu(h){const _=h.trim().toLowerCase();if(!_||_==="auto")return"";if(_ in l)return _;const M=_.split("-")[0]??_;return M in l?M:""}function ul(){const h=document.documentElement;if(qn.value==="dark")h.classList.add("dark");else if(qn.value==="light")h.classList.remove("dark");else{const _=window.matchMedia("(prefers-color-scheme: dark)").matches;h.classList.toggle("dark",_)}}function Sb(){return typeof window>"u"?!1:window.localStorage.getItem(cg)==="1"}function Tb(h){typeof window>"u"||window.localStorage.setItem(cg,h?"1":"0")}function Eb(){if(typeof window>"u")return!0;const h=window.localStorage.getItem(ug);return h===null?!0:h==="1"}function kb(){Fn.value=!Fn.value,!(typeof window>"u")&&window.localStorage.setItem(ug,Fn.value?"1":"0")}function Ib(h,_){const M=(h??"").trim();return M.length>0?M:_.trim()||"message"}function fp(h){Ze(h)}async function Ab(){await $e.isReady(),ye.name==="thread"&&Mn.value&&Ue(Mn.value),me(),await _e({includeSelectedThreadMessages:!0}),Hs({silent:!0}),await ll(),Rt.value=!0,await mu()}async function mu(){if(Qe.value){wt=!0;return}Qe.value=!0;try{do{if(wt=!1,ye.name==="home"||ye.name==="skills"){P.value!==""&&await fe("");continue}if(ye.name==="thread"){const h=Mn.value;if(!h)continue;if(!qt.value.has(h)){await $e.replace({name:"home"});continue}P.value!==h?await fe(h):De(h,{silent:!0})}}while(wt)}finally{Qe.value=!1}}lt(()=>[ye.name,Mn.value,ue.value,qt.value.has(Mn.value),P.value],async()=>{Rt.value&&await mu()}),lt(()=>P.value,async h=>{if(Rt.value&&!Qe.value&&!(zt.value||br.value)){if(!h){ye.name!=="home"&&await $e.replace({name:"home"});return}ye.name==="thread"&&Mn.value===h||await $e.replace({name:"thread",params:{threadId:h}})}}),lt(()=>Ne.value,()=>{Hn.value&&fu()}),lt(()=>Hn.value,h=>{if(!h){le.value=[];return}fu()}),lt(()=>[Rt.value,ye.name,P.value],([h,_,M])=>{h&&_==="thread"&&M&&De(M,{silent:!0})}),lt(()=>fs.value,h=>{if(h.length===0){ct.value="";return}h.some(M=>M.value===ct.value)||(ct.value=h[0].value),cn()},{immediate:!0}),lt(()=>ct.value,()=>{Ut.value={phase:"idle",title:"",message:""},cn()}),lt(()=>[Qt.value,ct.value],([h,_])=>{h==="worktree"&&pp(_)},{immediate:!0}),lt(()=>Qt.value,h=>{var _;if(h==="local"){Ut.value={phase:"idle",title:"",message:""};const M=ct.value.trim();if(M&&nl(M)){const de=((_=f.value)==null?void 0:_.projectName)??ni(M),Pe=ji(de,"");Pe&&(ct.value=Pe)}return}pp(ct.value)}),lt(()=>ye.name,h=>{h!=="home"&&(Ut.value={phase:"idle",title:"",message:""}),h!=="thread"&&(en.value=!1)}),lt(()=>P.value,()=>{Ut.value={phase:"idle",title:"",message:""}}),lt(()=>[ye.name,Ee.value],([h,_])=>{if(h!=="thread"){Pr.value=[],Cn.value=null;return}tn(_)},{immediate:!0}),lt(N,h=>{typeof document>"u"||(document.title=h)},{immediate:!0}),lt(x,h=>{h&&!Zt.value&&nr(!0)});async function Cb(h,_=[],M=[],de=[]){try{Ut.value={phase:"idle",title:"",message:""};let Pe=ct.value;if(Qt.value==="worktree"){Ut.value={phase:"running",title:"Creating worktree",message:"Creating a worktree and running setup."};try{const at=await GR(ct.value,mn.value);Pe=at.cwd,ct.value=at.cwd,Ut.value={phase:"idle",title:"",message:""}}catch{Ut.value={phase:"error",title:"Worktree setup failed",message:"Unable to create worktree. Try again or switch to Local project."};return}}const Oe=await Ke(h,Pe,_,M,de);if(!Oe)return;await $e.replace({name:"thread",params:{threadId:Oe}}),We()}catch{}}async function pp(h){var M;const _=h.trim();if(!_){ar.value=[],mn.value="";return}Xn.value=!0;try{const de=await KR(_);ar.value=de;const Pe=mn.value.trim();if(!(Pe.length>0&&de.some(at=>at.value===Pe))){const at=de.find(Pn=>Pn.value.trim()==="main");mn.value=(at==null?void 0:at.value)??((M=de[0])==null?void 0:M.value)??""}}catch{ar.value=[],mn.value=""}finally{Xn.value=!1}}return(h,_)=>(A(),yt(q1,{"is-sidebar-collapsed":Zt.value,onCloseSidebar:_[11]||(_[11]=M=>nr(!0))},{sidebar:kt(()=>[y("section",bD,[y("div",wD,[Zt.value?Se("",!0):(A(),yt(Zm,{key:0,class:"sidebar-thread-controls-host","is-sidebar-collapsed":Zt.value,"show-new-thread-button":!0,onToggleSidebar:_[0]||(_[0]=M=>nr(!Zt.value)),onStartNewThread:rl},{default:kt(()=>[y("button",{class:"sidebar-search-toggle",type:"button","aria-pressed":gr.value,"aria-label":"Search threads",title:"Search threads",onClick:Gc},[ze(eg,{class:"sidebar-search-toggle-icon"})],8,SD)]),_:1},8,["is-sidebar-collapsed"])),!Zt.value&&gr.value?(A(),L("div",TD,[ze(eg,{class:"sidebar-search-bar-icon"}),Br(y("input",{ref_key:"sidebarSearchInputRef",ref:Wt,"onUpdate:modelValue":_[1]||(_[1]=M=>Ht.value=M),class:"sidebar-search-input",type:"text",placeholder:"Filter threads...",onKeydown:Yc},null,544),[[fo,Ht.value]]),Ht.value.length>0?(A(),L("button",{key:0,class:"sidebar-search-clear",type:"button","aria-label":"Clear search",onClick:Kc},[ze(FL,{class:"sidebar-search-clear-icon"})])):Se("",!0)])):Se("",!0),Zt.value?Se("",!0):(A(),L("button",{key:2,class:pt(["sidebar-skills-link",{"is-active":br.value}]),type:"button",onClick:_[2]||(_[2]=M=>{He($e).push({name:"skills"}),He(x)&&nr(!0)})}," Skills Hub ",2)),Zt.value?Se("",!0):(A(),yt(n$,{key:3,groups:He(c),"project-display-name-by-id":He(d),"selected-thread-id":He(P),"is-loading":He(ue),"search-query":Ht.value,"search-matched-thread-ids":Yr.value,onSelect:Jc,onArchive:su,onStartNewThread:iu,onRenameProject:Fi,onBrowseThreadFiles:au,onRenameThread:Dr,onForkThread:Vs,onRemoveProject:lu,onReorderProject:cu,onExportThread:Xc},null,8,["groups","project-display-name-by-id","selected-thread-id","is-loading","search-query","search-matched-thread-ids"]))]),Zt.value?Se("",!0):(A(),L("div",ED,[ze(Mv,{name:"settings-panel"},{default:kt(()=>[ho.value?(A(),L("div",kD,[y("div",ID,[y("div",AD,[y("div",CD,[y("button",{class:"sidebar-settings-account-collapse",type:"button","aria-expanded":!Fn.value,title:Fn.value?"Expand accounts":"Collapse accounts",onClick:kb},[y("span",RD,ge(Fn.value?"▸":"▾"),1)],8,xD),_[12]||(_[12]=y("span",{class:"sidebar-settings-account-title"},"Accounts",-1)),y("span",MD,ge(gn.value.length),1)]),y("button",{class:"sidebar-settings-account-refresh",type:"button",disabled:Vt.value||Mt.value,onClick:Ws},ge(Vt.value?"Reloading…":"Reload"),9,PD)]),Fn.value?Se("",!0):(A(),L(Xe,{key:0},[an.value?(A(),L("p",$D,ge(an.value),1)):Se("",!0),gn.value.length===0?(A(),L("p",ND," Run `codex login`, then click reload. ")):(A(),L("div",OD,[(A(!0),L(Xe,null,Bt(gn.value,M=>(A(),L("article",{key:M.accountId,class:pt(["sidebar-settings-account-item",{"is-active":M.isActive,"is-unavailable":tr(M),"is-confirming-remove":qo(M),"is-remove-visible":Xa(M)}]),title:el(M),onMouseenter:de=>tu(M.accountId),onMouseleave:de=>Qa(M.accountId)},[y("div",DD,[y("p",jD,ge(M.email||"Account"),1),y("p",FD,ge(Ya(M)),1),y("p",BD,ge(Za(M)),1),y("p",qD," Workspace "+ge(Qc(M.accountId)),1)]),y("div",UD,[y("button",{class:"sidebar-settings-account-switch",type:"button",disabled:Ja(M)||M.isActive||tr(M),onClick:de=>tl(M.accountId)},ge(Zc(M)),9,HD),y("button",{class:pt(["sidebar-settings-account-remove",{"is-visible":Xa(M),"is-confirming":qo(M)}]),type:"button",disabled:Ja(M),onClick:de=>ou(M.accountId)},ge(eu(M)),11,WD)])],42,LD))),128))]))],64))]),y("button",{class:"sidebar-settings-row",type:"button",title:i.sendWithEnter,onClick:fb},[_[13]||(_[13]=y("span",{class:"sidebar-settings-label"},"Require ⌘ + enter to send",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":!Bn.value}])},null,2)],8,VD),y("button",{class:"sidebar-settings-row",type:"button",title:i.inProgressSendMode,onClick:pb},[_[14]||(_[14]=y("span",{class:"sidebar-settings-label"},"When busy, send as",-1)),y("span",GD,ge(cr.value==="steer"?"Steer":"Queue"),1)],8,zD),y("button",{class:"sidebar-settings-row",type:"button",title:i.appearance,onClick:hb},[_[15]||(_[15]=y("span",{class:"sidebar-settings-label"},"Appearance",-1)),y("span",YD,ge(qn.value==="system"?"System":qn.value==="dark"?"Dark":"Light"),1)],8,KD),y("button",{class:"sidebar-settings-row",type:"button",title:i.chatWidth,onClick:mb},[_[16]||(_[16]=y("span",{class:"sidebar-settings-label"},"Chat width",-1)),y("span",XD,ge(Wc.value),1)],8,JD),y("button",{class:"sidebar-settings-row",type:"button",title:i.dictationClickToToggle,onClick:gb},[_[17]||(_[17]=y("span",{class:"sidebar-settings-label"},"Click to toggle dictation",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":ln.value}])},null,2)],8,QD),y("button",{class:"sidebar-settings-row",type:"button",title:i.dictationAutoSend,onClick:vb},[_[18]||(_[18]=y("span",{class:"sidebar-settings-label"},"Auto send dictation",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":Un.value}])},null,2)],8,ZD),y("button",{class:"sidebar-settings-row",type:"button",title:i.githubTrendingProjects,onClick:yb},[_[19]||(_[19]=y("span",{class:"sidebar-settings-label"},"GitHub trending projects",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":Hn.value}])},null,2)],8,ej),y("div",{class:"sidebar-settings-row sidebar-settings-row--select",title:i.dictationLanguage},[_[20]||(_[20]=y("span",{class:"sidebar-settings-label"},"Dictation language",-1)),ze(xs,{class:"sidebar-settings-language-dropdown","model-value":ur.value,options:Nr.value,placeholder:"Auto-detect","open-direction":"up","enable-search":!0,"search-placeholder":"Search language...","onUpdate:modelValue":_b},null,8,["model-value","options"])],8,tj),y("button",{class:"sidebar-settings-row",type:"button","aria-live":"polite",onClick:G},[_[21]||(_[21]=y("span",{class:"sidebar-settings-label"},"Telegram",-1)),y("span",nj,ge(Li.value),1)]),Ft.value?(A(),L("div",{key:0,class:"sidebar-settings-row sidebar-settings-context-row","data-state":Qr.value,title:Dc.value},[_[22]||(_[22]=y("span",{class:"sidebar-settings-label"},"Context",-1)),y("span",{class:"sidebar-settings-context-value","data-state":Qr.value},[$s(ge(ds.value)+" ",1),y("span",sj,ge(Lc.value),1)],8,oj)],8,rj)):Se("",!0),y("div",ij,[ze(fL,{snapshots:He(Ce)},null,8,["snapshots"])]),y("div",aj," WT "+ge(He(o))+" · v"+ge(He(s)),1)])):Se("",!0)]),_:1}),y("button",{class:"sidebar-settings-button",type:"button",onClick:_[3]||(_[3]=M=>ho.value=!ho.value)},[ze(OL,{class:"sidebar-settings-icon"}),_[23]||(_[23]=y("span",null,"Settings",-1)),y("span",lj,ge(He(o))+" · v"+ge(He(s)),1)])]))])]),content:kt(()=>[y("section",{class:"content-root",style:ko(Vc.value)},[ze(l$,{title:S.value},{leading:kt(()=>[Zt.value||He(x)?(A(),yt(Zm,{key:0,class:"sidebar-thread-controls-header-host","is-sidebar-collapsed":Zt.value,"show-new-thread-button":!0,onToggleSidebar:_[4]||(_[4]=M=>nr(!Zt.value)),onStartNewThread:rl},null,8,["is-sidebar-collapsed"])):Se("",!0)]),actions:kt(()=>[He(ye).name==="thread"&&He(P)?(A(),yt(xs,{key:0,class:pt(["content-header-branch-dropdown",{"is-review-open":en.value}]),"model-value":jc.value,options:Fc.value,disabled:Dt.value||lr.value,"enable-search":!0,"search-placeholder":"Search branches...","onUpdate:modelValue":zs},null,8,["class","model-value","options","disabled"])):Se("",!0)]),_:1},8,["title"]),y("section",cj,[br.value?(A(),yt(He(r),{key:0,onSkillsChanged:zc})):zt.value?(A(),L("div",uj,[y("div",dj,[_[30]||(_[30]=y("p",{class:"new-thread-hero"},"Let's build",-1)),ze(xs,{class:"new-thread-folder-dropdown","model-value":ct.value,options:fs.value,placeholder:"Choose folder","enable-search":!0,"search-placeholder":"Quick search project","show-add-action":!0,"add-action-mode":"event","add-action-label":"+ Add new project",disabled:!1,"onUpdate:modelValue":ft,onAddAction:Gs},null,8,["model-value","options"]),ct.value?(A(),L("p",{key:0,class:"new-thread-folder-selected",title:ct.value}," Selected folder: "+ge(ct.value),9,fj)):Se("",!0),y("div",{class:"new-thread-folder-actions"},[y("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",onClick:al}," Select folder ")]),Rn.value?(A(),L("div",pj,[y("div",{class:"new-thread-open-folder-header"},[_[24]||(_[24]=y("p",{class:"new-thread-open-folder-title"},"Select folder",-1)),y("button",{class:"new-thread-open-folder-close",type:"button",onClick:Uo}," Cancel ")]),_[26]||(_[26]=y("p",{class:"new-thread-open-folder-label"},"Current folder",-1)),y("div",hj,[y("p",{class:"new-thread-open-folder-path",title:bn.value||"Unavailable"},ge(bn.value||"Unavailable"),9,mj),y("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",disabled:!bn.value||!!Nt.value||on.value||Wn.value,onClick:_[5]||(_[5]=M=>mo())},ge(Wn.value?"Opening…":"Open"),9,gj)]),y("div",vj,[y("label",yj,[Br(y("input",{"onUpdate:modelValue":_[6]||(_[6]=M=>qe.value=M),class:"new-thread-open-folder-toggle-input",type:"checkbox",onChange:ms},null,544),[[QS,qe.value]]),_[25]||(_[25]=y("span",null,"Show hidden folders",-1))]),y("button",{class:pt(["new-thread-folder-action",{"new-thread-folder-action-primary":En.value}]),type:"button","aria-pressed":En.value,disabled:!bn.value||on.value||Wn.value||_n.value||!!Nt.value&&!En.value,onClick:vs}," New folder ",10,_j)]),En.value?(A(),L("div",bj,[y("div",wj,[Br(y("input",{ref_key:"createFolderInputRef",ref:$r,"onUpdate:modelValue":_[7]||(_[7]=M=>Qn.value=M),class:"new-thread-open-folder-create-input",type:"text",placeholder:"Folder name",onKeydown:[Sn(_t(qi,["prevent"]),["enter"]),Sn(_t(Zr,["prevent"]),["esc"])]},null,40,Sj),[[fo,Qn.value]]),y("button",{class:"new-thread-folder-action new-thread-folder-action-primary new-thread-open-folder-create-submit",type:"button",disabled:!Bc.value||_n.value,onClick:qi},ge(qc.value),9,Tj)]),yn.value?(A(),L("p",Ej,ge(yn.value),1)):Se("",!0)])):Se("",!0),Br(y("input",{"onUpdate:modelValue":_[8]||(_[8]=M=>Te.value=M),class:"new-thread-open-folder-filter",type:"text",placeholder:"Filter folders..."},null,512),[[fo,Te.value]]),Nt.value?(A(),L("div",kj,[y("p",Ij,ge(Nt.value),1),y("button",{class:"new-thread-folder-action",type:"button",disabled:on.value||Wn.value,onClick:gs}," Retry ",8,Aj)])):Se("",!0),on.value?(A(),L("p",Cj,"Loading folders…")):!Nt.value&&Oi.value.length===0?(A(),L("p",xj,ge(Te.value.trim()?"No folders match this filter.":"No subfolders found here."),1)):Oi.value.length>0?(A(),L("ul",Rj,[(A(!0),L(Xe,null,Bt(Oi.value,M=>(A(),L("li",{key:M.key,class:"new-thread-open-folder-item"},[y("button",{class:"new-thread-open-folder-item-main",type:"button",title:M.path,disabled:on.value||Wn.value,onClick:de=>hs(M.path)},[y("span",Pj,ge(M.name),1)],8,Mj),M.kind==="directory"?(A(),L("button",{key:0,class:"new-thread-open-folder-item-open",type:"button",disabled:on.value||Wn.value,onClick:de=>mo(M.path)}," Open ",8,$j)):Se("",!0)]))),128))])):Se("",!0)])):Se("",!0),ze(vL,{class:"new-thread-runtime-dropdown",modelValue:Qt.value,"onUpdate:modelValue":_[9]||(_[9]=M=>Qt.value=M)},null,8,["modelValue"]),Qt.value==="worktree"?(A(),L("div",Nj,[_[27]||(_[27]=y("p",{class:"new-thread-branch-select-label"},"Base branch",-1)),ze(xs,{class:"new-thread-branch-dropdown","model-value":mn.value,options:Ni.value,placeholder:"Select branch","enable-search":!0,"search-placeholder":"Search branches...",disabled:Xn.value||Ni.value.length===0,"onUpdate:modelValue":vt},null,8,["model-value","options","disabled"]),y("p",Oj,ge(Xn.value?"Loading branches…":Va.value?`New worktree branch will start from ${Va.value}.`:"No Git branches found for this folder."),1)])):Se("",!0),_[31]||(_[31]=y("p",{class:"new-thread-runtime-help"},[y("code",null,"Local project"),$s(" uses the selected folder directly. "),y("code",null,"New worktree"),$s(" creates an isolated Git worktree before the first prompt. ")],-1)),Ut.value.phase!=="idle"?(A(),L("div",{key:3,class:pt(["worktree-init-status",{"is-running":Ut.value.phase==="running","is-error":Ut.value.phase==="error"}])},[y("strong",Lj,ge(Ut.value.title),1),y("span",Dj,ge(Ut.value.message),1)],2)):Se("",!0),Hn.value?(A(),L("div",jj,[y("div",Fj,[_[28]||(_[28]=y("p",{class:"new-thread-trending-title"},"Trending GitHub projects",-1)),ze(xs,{class:"new-thread-trending-scope-dropdown","model-value":Ne.value,options:Hc.value,"onUpdate:modelValue":U},null,8,["model-value","options"])]),Le.value?(A(),L("p",Bj,"Loading trending projects...")):le.value.length===0?(A(),L("p",qj," Trending repos are unavailable right now. ")):(A(),L("div",Uj,[(A(!0),L(Xe,null,Bt(le.value,M=>(A(),L("button",{key:M.id,type:"button",class:"new-thread-trending-tip",onClick:de=>oe(M)},[y("span",{class:"new-thread-trending-tip-name",title:M.fullName},[M.owner&&M.repo?(A(),L(Xe,{key:0},[y("span",Vj,ge(M.owner),1),_[29]||(_[29]=y("span",{class:"new-thread-trending-tip-name-slash"},"/",-1)),y("span",zj,ge(M.repo),1)],64)):(A(),L("span",Gj,ge(M.fullName),1))],8,Wj),y("span",Kj,ge(B(M)),1),y("span",Yj,ge(M.description||"No description available."),1)],8,Hj))),128))]))])):Se("",!0)]),y("div",Jj,[ze(Qm,{ref_key:"homeThreadComposerRef",ref:$,"active-thread-id":R.value,cwd:Ee.value,"collaboration-modes":He(O),"selected-collaboration-mode":He(Y),models:He(W),"selected-model":He(ce),"selected-reasoning-effort":He(re),"selected-speed-mode":He(Z),"is-updating-speed-mode":He(Fe),skills:He(he),"thread-token-usage":He(m),"codex-quota":He(H),"is-turn-in-progress":!1,"is-interrupting-turn":!1,"send-with-enter":Bn.value,"in-progress-submit-mode":cr.value,"dictation-click-to-toggle":ln.value,"dictation-auto-send":Un.value,"dictation-language":ur.value,onSubmit:F,"onUpdate:selectedCollaborationMode":fp,"onUpdate:selectedModel":cp,"onUpdate:selectedReasoningEffort":up,"onUpdate:selectedSpeedMode":dp},null,8,["active-thread-id","cwd","collaboration-modes","selected-collaboration-mode","models","selected-model","selected-reasoning-effort","selected-speed-mode","is-updating-speed-mode","skills","thread-token-usage","codex-quota","send-with-enter","in-progress-submit-mode","dictation-click-to-toggle","dictation-auto-send","dictation-language"])])])):(A(),L("div",Xj,[en.value&&He(P)&&Ee.value?(A(),yt(He(n),{key:0,"thread-id":He(P),cwd:Ee.value,"is-thread-in-progress":it.value,onClose:_[10]||(_[10]=M=>en.value=!1)},null,8,["thread-id","cwd","is-thread-in-progress"])):(A(),L(Xe,{key:1},[y("div",Qj,[ze(He(t),{ref_key:"threadConversationRef",ref:X,messages:z.value,"is-loading":He(V),"active-thread-id":R.value,cwd:Ee.value,"scroll-state":He(v),"live-overlay":w.value,"pending-requests":He(T),onUpdateScrollState:ol,onForkThread:du,onRollback:ob,onRespondServerRequest:Bi},null,8,["messages","is-loading","active-thread-id","cwd","scroll-state","live-overlay","pending-requests"])]),y("div",Zj,[ze(rL,{messages:He(be),onEdit:je,onSteer:He(ve),onDelete:He(we)},null,8,["messages","onSteer","onDelete"]),K.value?(A(),yt(KO,{key:0,request:K.value,"request-count":He(T).length,"has-queue-above":He(be).length>0,onRespondServerRequest:Bi},null,8,["request","request-count","has-queue-above"])):(A(),yt(Qm,{key:1,ref_key:"threadComposerRef",ref:D,"active-thread-id":R.value,cwd:Ee.value,"collaboration-modes":He(O),"selected-collaboration-mode":He(Y),models:He(W),"selected-model":He(ce),"selected-reasoning-effort":He(re),"selected-speed-mode":He(Z),"is-updating-speed-mode":He(Fe),skills:He(he),"thread-token-usage":He(m),"codex-quota":He(H),"is-turn-in-progress":it.value,"is-interrupting-turn":He(xe),"has-queue-above":He(be).length>0,"send-with-enter":Bn.value,"in-progress-submit-mode":cr.value,"dictation-click-to-toggle":ln.value,"dictation-auto-send":Un.value,"dictation-language":ur.value,"onUpdate:selectedCollaborationMode":fp,onSubmit:F,"onUpdate:selectedModel":cp,"onUpdate:selectedReasoningEffort":up,"onUpdate:selectedSpeedMode":dp,onInterrupt:rb},null,8,["active-thread-id","cwd","collaboration-modes","selected-collaboration-mode","models","selected-model","selected-reasoning-effort","selected-speed-mode","is-updating-speed-mode","skills","thread-token-usage","codex-quota","is-turn-in-progress","is-interrupting-turn","has-queue-above","send-with-enter","in-progress-submit-mode","dictation-click-to-toggle","dictation-auto-send","dictation-language"]))])],64))]))])],4)]),_:1},8,["is-sidebar-collapsed"]))}}),n2=Et(t2,[["__scopeId","data-v-82e52728"]]),hd={render:()=>null},Q_=$1({history:d1(),routes:[{path:"/",name:"home",component:hd},{path:"/thread/:threadId",name:"thread",component:hd},{path:"/skills",name:"skills",component:hd},{path:"/new-thread",redirect:{name:"home"}},{path:"/:pathMatch(.*)*",redirect:{name:"home"}}]});console.log("Welcome to codexui. npm: https://www.npmjs.com/package/@nervmor/codexui");const Z_=oT(n2);async function r2(){{o2();return}}function o2(e){wx({app:Z_,dsn:"https://9b1c6357d134c512f8171518ec2cb18e@o4511194738982912.ingest.us.sentry.io/4511201728200704",release:"codexui@0.1.81",environment:"production",integrations:[Ex({router:Q_})],tracesSampleRate:.05,sendDefaultPii:!0,beforeSendTransaction(t){const n=t.transaction??"";return n.includes("/health")||n.includes("/favicon")||n.match(/\.(js|css|map|png|svg|ico|woff2?)$/)?null:t}})}r2();Z_.use(Q_).mount("#app");"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(e=>{console.error("Service worker registration failed.",e)})});export{xR as A,Br as B,s2 as C,a2 as D,c2 as E,Xe as F,u2 as G,i2 as H,Ul as I,l2 as J,lp as K,xl as L,yM as M,eg as N,fo as O,Sn as P,Mv as T,Et as _,y as a,as as b,L as c,An as d,Fs as e,Se as f,Bt as g,pt as h,yt as i,kt as j,Ef as k,ko as l,ze as m,Jt as n,A as o,h$ as p,FL as q,j as r,_t as s,ge as t,rp as u,He as v,lt as w,$s as x,se as y,zu as z};
89
- //# sourceMappingURL=index-BjPXEYO9.js.map
88
+ `}function ab(){var Pe,Oe;const M=(((Oe=(Pe=f.value)==null?void 0:Pe.title)==null?void 0:Oe.trim())||"chat").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"chat",de=new Date().toISOString().replace(/[:.]/g,"-");return`${M}-${de}.md`}function lb(h){return h.replace(/([\\`*_{}\[\]()#+\-.!])/g,"\\$1")}function cl(h,_){if(typeof window>"u")return _;const M=window.localStorage.getItem(h);return M===null?_:M==="1"}function cb(){if(typeof window>"u")return"system";const h=window.localStorage.getItem(pg);return h==="light"||h==="dark"?h:"system"}function ub(){return typeof window>"u"?"steer":window.localStorage.getItem(fg)==="queue"?"queue":"steer"}function db(){if(typeof window>"u")return"standard";const h=window.localStorage.getItem(yg);return h==="standard"||h==="wide"||h==="extra-wide"?h:"standard"}function fb(){Bn.value=!Bn.value,window.localStorage.setItem(dg,Bn.value?"1":"0")}function pb(){cr.value=cr.value==="steer"?"queue":"steer",window.localStorage.setItem(fg,cr.value)}function hb(){const h=["system","light","dark"],_=h.indexOf(qn.value);qn.value=h[(_+1)%h.length],window.localStorage.setItem(pg,qn.value),ul()}function mb(){const h=["standard","wide","extra-wide"],_=h.indexOf(xn.value);xn.value=h[(_+1)%h.length],window.localStorage.setItem(yg,xn.value)}function gb(){ln.value=!ln.value,window.localStorage.setItem(hg,ln.value?"1":"0")}function vb(){Un.value=!Un.value,window.localStorage.setItem(mg,Un.value?"1":"0")}function yb(){Hn.value=!Hn.value,window.localStorage.setItem(vg,Hn.value?"1":"0")}function _b(h){const M=hu(h.trim())||"auto";ur.value=M,window.localStorage.setItem(gg,M)}function bb(){var M;if(typeof window>"u")return"auto";const h=((M=window.localStorage.getItem(gg))==null?void 0:M.trim())||"auto";return hu(h)||"auto"}function wb(){const h=[{value:"auto",label:"Auto-detect"}],_=new Set(["auto"]);function M(Pe){const Oe=l[Pe]||Pe;return`${Oe.charAt(0).toUpperCase()+Oe.slice(1)} (${Pe})`}for(const Pe of typeof navigator<"u"?navigator.languages??[]:[]){const Oe=hu(Pe);!Oe||_.has(Oe)||(_.add(Oe),h.push({value:Oe,label:`Preferred: ${M(Oe)}`}))}for(const Pe of Object.keys(l))_.has(Pe)||(_.add(Pe),h.push({value:Pe,label:M(Pe)}));const de=ur.value.trim();return de&&!_.has(de)&&h.push({value:de,label:M(de)}),h}function hu(h){const _=h.trim().toLowerCase();if(!_||_==="auto")return"";if(_ in l)return _;const M=_.split("-")[0]??_;return M in l?M:""}function ul(){const h=document.documentElement;if(qn.value==="dark")h.classList.add("dark");else if(qn.value==="light")h.classList.remove("dark");else{const _=window.matchMedia("(prefers-color-scheme: dark)").matches;h.classList.toggle("dark",_)}}function Sb(){return typeof window>"u"?!1:window.localStorage.getItem(cg)==="1"}function Tb(h){typeof window>"u"||window.localStorage.setItem(cg,h?"1":"0")}function Eb(){if(typeof window>"u")return!0;const h=window.localStorage.getItem(ug);return h===null?!0:h==="1"}function kb(){Fn.value=!Fn.value,!(typeof window>"u")&&window.localStorage.setItem(ug,Fn.value?"1":"0")}function Ib(h,_){const M=(h??"").trim();return M.length>0?M:_.trim()||"message"}function fp(h){Ze(h)}async function Ab(){await $e.isReady(),ye.name==="thread"&&Mn.value&&Ue(Mn.value),me(),await _e({includeSelectedThreadMessages:!0}),Hs({silent:!0}),await ll(),Rt.value=!0,await mu()}async function mu(){if(Qe.value){wt=!0;return}Qe.value=!0;try{do{if(wt=!1,ye.name==="home"||ye.name==="skills"){P.value!==""&&await fe("");continue}if(ye.name==="thread"){const h=Mn.value;if(!h)continue;if(!qt.value.has(h)){await $e.replace({name:"home"});continue}P.value!==h?await fe(h):De(h,{silent:!0})}}while(wt)}finally{Qe.value=!1}}lt(()=>[ye.name,Mn.value,ue.value,qt.value.has(Mn.value),P.value],async()=>{Rt.value&&await mu()}),lt(()=>P.value,async h=>{if(Rt.value&&!Qe.value&&!(zt.value||br.value)){if(!h){ye.name!=="home"&&await $e.replace({name:"home"});return}ye.name==="thread"&&Mn.value===h||await $e.replace({name:"thread",params:{threadId:h}})}}),lt(()=>Ne.value,()=>{Hn.value&&fu()}),lt(()=>Hn.value,h=>{if(!h){le.value=[];return}fu()}),lt(()=>[Rt.value,ye.name,P.value],([h,_,M])=>{h&&_==="thread"&&M&&De(M,{silent:!0})}),lt(()=>fs.value,h=>{if(h.length===0){ct.value="";return}h.some(M=>M.value===ct.value)||(ct.value=h[0].value),cn()},{immediate:!0}),lt(()=>ct.value,()=>{Ut.value={phase:"idle",title:"",message:""},cn()}),lt(()=>[Qt.value,ct.value],([h,_])=>{h==="worktree"&&pp(_)},{immediate:!0}),lt(()=>Qt.value,h=>{var _;if(h==="local"){Ut.value={phase:"idle",title:"",message:""};const M=ct.value.trim();if(M&&nl(M)){const de=((_=f.value)==null?void 0:_.projectName)??ni(M),Pe=ji(de,"");Pe&&(ct.value=Pe)}return}pp(ct.value)}),lt(()=>ye.name,h=>{h!=="home"&&(Ut.value={phase:"idle",title:"",message:""}),h!=="thread"&&(en.value=!1)}),lt(()=>P.value,()=>{Ut.value={phase:"idle",title:"",message:""}}),lt(()=>[ye.name,Ee.value],([h,_])=>{if(h!=="thread"){Pr.value=[],Cn.value=null;return}tn(_)},{immediate:!0}),lt(N,h=>{typeof document>"u"||(document.title=h)},{immediate:!0}),lt(x,h=>{h&&!Zt.value&&nr(!0)});async function Cb(h,_=[],M=[],de=[]){try{Ut.value={phase:"idle",title:"",message:""};let Pe=ct.value;if(Qt.value==="worktree"){Ut.value={phase:"running",title:"Creating worktree",message:"Creating a worktree and running setup."};try{const at=await GR(ct.value,mn.value);Pe=at.cwd,ct.value=at.cwd,Ut.value={phase:"idle",title:"",message:""}}catch{Ut.value={phase:"error",title:"Worktree setup failed",message:"Unable to create worktree. Try again or switch to Local project."};return}}const Oe=await Ke(h,Pe,_,M,de);if(!Oe)return;await $e.replace({name:"thread",params:{threadId:Oe}}),We()}catch{}}async function pp(h){var M;const _=h.trim();if(!_){ar.value=[],mn.value="";return}Xn.value=!0;try{const de=await KR(_);ar.value=de;const Pe=mn.value.trim();if(!(Pe.length>0&&de.some(at=>at.value===Pe))){const at=de.find(Pn=>Pn.value.trim()==="main");mn.value=(at==null?void 0:at.value)??((M=de[0])==null?void 0:M.value)??""}}catch{ar.value=[],mn.value=""}finally{Xn.value=!1}}return(h,_)=>(A(),yt(q1,{"is-sidebar-collapsed":Zt.value,onCloseSidebar:_[11]||(_[11]=M=>nr(!0))},{sidebar:kt(()=>[y("section",wD,[y("div",SD,[Zt.value?Se("",!0):(A(),yt(Zm,{key:0,class:"sidebar-thread-controls-host","is-sidebar-collapsed":Zt.value,"show-new-thread-button":!0,onToggleSidebar:_[0]||(_[0]=M=>nr(!Zt.value)),onStartNewThread:rl},{default:kt(()=>[y("button",{class:"sidebar-search-toggle",type:"button","aria-pressed":gr.value,"aria-label":"Search threads",title:"Search threads",onClick:Gc},[ze(eg,{class:"sidebar-search-toggle-icon"})],8,TD)]),_:1},8,["is-sidebar-collapsed"])),!Zt.value&&gr.value?(A(),L("div",ED,[ze(eg,{class:"sidebar-search-bar-icon"}),Br(y("input",{ref_key:"sidebarSearchInputRef",ref:Wt,"onUpdate:modelValue":_[1]||(_[1]=M=>Ht.value=M),class:"sidebar-search-input",type:"text",placeholder:"Filter threads...",onKeydown:Yc},null,544),[[fo,Ht.value]]),Ht.value.length>0?(A(),L("button",{key:0,class:"sidebar-search-clear",type:"button","aria-label":"Clear search",onClick:Kc},[ze(FL,{class:"sidebar-search-clear-icon"})])):Se("",!0)])):Se("",!0),Zt.value?Se("",!0):(A(),L("button",{key:2,class:pt(["sidebar-skills-link",{"is-active":br.value}]),type:"button",onClick:_[2]||(_[2]=M=>{He($e).push({name:"skills"}),He(x)&&nr(!0)})}," Skills Hub ",2)),Zt.value?Se("",!0):(A(),yt(n$,{key:3,groups:He(c),"project-display-name-by-id":He(d),"selected-thread-id":He(P),"is-loading":He(ue),"search-query":Ht.value,"search-matched-thread-ids":Yr.value,onSelect:Jc,onArchive:su,onStartNewThread:iu,onRenameProject:Fi,onBrowseThreadFiles:au,onRenameThread:Dr,onForkThread:Vs,onRemoveProject:lu,onReorderProject:cu,onExportThread:Xc},null,8,["groups","project-display-name-by-id","selected-thread-id","is-loading","search-query","search-matched-thread-ids"]))]),Zt.value?Se("",!0):(A(),L("div",kD,[ze(Mv,{name:"settings-panel"},{default:kt(()=>[ho.value?(A(),L("div",ID,[y("div",AD,[y("div",CD,[y("div",xD,[y("button",{class:"sidebar-settings-account-collapse",type:"button","aria-expanded":!Fn.value,title:Fn.value?"Expand accounts":"Collapse accounts",onClick:kb},[y("span",MD,ge(Fn.value?"▸":"▾"),1)],8,RD),_[12]||(_[12]=y("span",{class:"sidebar-settings-account-title"},"Accounts",-1)),y("span",PD,ge(gn.value.length),1)]),y("button",{class:"sidebar-settings-account-refresh",type:"button",disabled:Vt.value||Mt.value,onClick:Ws},ge(Vt.value?"Reloading…":"Reload"),9,$D)]),Fn.value?Se("",!0):(A(),L(Xe,{key:0},[an.value?(A(),L("p",ND,ge(an.value),1)):Se("",!0),gn.value.length===0?(A(),L("p",OD," Run `codex login`, then click reload. ")):(A(),L("div",LD,[(A(!0),L(Xe,null,Bt(gn.value,M=>(A(),L("article",{key:M.accountId,class:pt(["sidebar-settings-account-item",{"is-active":M.isActive,"is-unavailable":tr(M),"is-confirming-remove":qo(M),"is-remove-visible":Xa(M)}]),title:el(M),onMouseenter:de=>tu(M.accountId),onMouseleave:de=>Qa(M.accountId)},[y("div",jD,[y("p",FD,ge(M.email||"Account"),1),y("p",BD,ge(Ya(M)),1),y("p",qD,ge(Za(M)),1),y("p",UD," Workspace "+ge(Qc(M.accountId)),1)]),y("div",HD,[y("button",{class:"sidebar-settings-account-switch",type:"button",disabled:Ja(M)||M.isActive||tr(M),onClick:de=>tl(M.accountId)},ge(Zc(M)),9,WD),y("button",{class:pt(["sidebar-settings-account-remove",{"is-visible":Xa(M),"is-confirming":qo(M)}]),type:"button",disabled:Ja(M),onClick:de=>ou(M.accountId)},ge(eu(M)),11,VD)])],42,DD))),128))]))],64))]),y("button",{class:"sidebar-settings-row",type:"button",title:i.sendWithEnter,onClick:fb},[_[13]||(_[13]=y("span",{class:"sidebar-settings-label"},"Require ⌘ + enter to send",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":!Bn.value}])},null,2)],8,zD),y("button",{class:"sidebar-settings-row",type:"button",title:i.inProgressSendMode,onClick:pb},[_[14]||(_[14]=y("span",{class:"sidebar-settings-label"},"When busy, send as",-1)),y("span",KD,ge(cr.value==="steer"?"Steer":"Queue"),1)],8,GD),y("button",{class:"sidebar-settings-row",type:"button",title:i.appearance,onClick:hb},[_[15]||(_[15]=y("span",{class:"sidebar-settings-label"},"Appearance",-1)),y("span",JD,ge(qn.value==="system"?"System":qn.value==="dark"?"Dark":"Light"),1)],8,YD),y("button",{class:"sidebar-settings-row",type:"button",title:i.chatWidth,onClick:mb},[_[16]||(_[16]=y("span",{class:"sidebar-settings-label"},"Chat width",-1)),y("span",QD,ge(Wc.value),1)],8,XD),y("button",{class:"sidebar-settings-row",type:"button",title:i.dictationClickToToggle,onClick:gb},[_[17]||(_[17]=y("span",{class:"sidebar-settings-label"},"Click to toggle dictation",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":ln.value}])},null,2)],8,ZD),y("button",{class:"sidebar-settings-row",type:"button",title:i.dictationAutoSend,onClick:vb},[_[18]||(_[18]=y("span",{class:"sidebar-settings-label"},"Auto send dictation",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":Un.value}])},null,2)],8,ej),y("button",{class:"sidebar-settings-row",type:"button",title:i.githubTrendingProjects,onClick:yb},[_[19]||(_[19]=y("span",{class:"sidebar-settings-label"},"GitHub trending projects",-1)),y("span",{class:pt(["sidebar-settings-toggle",{"is-on":Hn.value}])},null,2)],8,tj),y("div",{class:"sidebar-settings-row sidebar-settings-row--select",title:i.dictationLanguage},[_[20]||(_[20]=y("span",{class:"sidebar-settings-label"},"Dictation language",-1)),ze(xs,{class:"sidebar-settings-language-dropdown","model-value":ur.value,options:Nr.value,placeholder:"Auto-detect","open-direction":"up","enable-search":!0,"search-placeholder":"Search language...","onUpdate:modelValue":_b},null,8,["model-value","options"])],8,nj),y("button",{class:"sidebar-settings-row",type:"button","aria-live":"polite",onClick:G},[_[21]||(_[21]=y("span",{class:"sidebar-settings-label"},"Telegram",-1)),y("span",rj,ge(Li.value),1)]),Ft.value?(A(),L("div",{key:0,class:"sidebar-settings-row sidebar-settings-context-row","data-state":Qr.value,title:Dc.value},[_[22]||(_[22]=y("span",{class:"sidebar-settings-label"},"Context",-1)),y("span",{class:"sidebar-settings-context-value","data-state":Qr.value},[$s(ge(ds.value)+" ",1),y("span",ij,ge(Lc.value),1)],8,sj)],8,oj)):Se("",!0),y("div",aj,[ze(fL,{snapshots:He(Ce)},null,8,["snapshots"])]),y("div",lj," WT "+ge(He(o))+" · v"+ge(He(s)),1)])):Se("",!0)]),_:1}),y("button",{class:"sidebar-settings-button",type:"button",onClick:_[3]||(_[3]=M=>ho.value=!ho.value)},[ze(OL,{class:"sidebar-settings-icon"}),_[23]||(_[23]=y("span",null,"Settings",-1)),y("span",cj,ge(He(o))+" · v"+ge(He(s)),1)])]))])]),content:kt(()=>[y("section",{class:"content-root",style:ko(Vc.value)},[ze(l$,{title:S.value},{leading:kt(()=>[Zt.value||He(x)?(A(),yt(Zm,{key:0,class:"sidebar-thread-controls-header-host","is-sidebar-collapsed":Zt.value,"show-new-thread-button":!0,onToggleSidebar:_[4]||(_[4]=M=>nr(!Zt.value)),onStartNewThread:rl},null,8,["is-sidebar-collapsed"])):Se("",!0)]),actions:kt(()=>[He(ye).name==="thread"&&He(P)?(A(),yt(xs,{key:0,class:pt(["content-header-branch-dropdown",{"is-review-open":en.value}]),"model-value":jc.value,options:Fc.value,disabled:Dt.value||lr.value,"enable-search":!0,"search-placeholder":"Search branches...","onUpdate:modelValue":zs},null,8,["class","model-value","options","disabled"])):Se("",!0)]),_:1},8,["title"]),y("section",uj,[br.value?(A(),yt(He(r),{key:0,onSkillsChanged:zc})):zt.value?(A(),L("div",dj,[y("div",fj,[_[30]||(_[30]=y("p",{class:"new-thread-hero"},"Let's build",-1)),ze(xs,{class:"new-thread-folder-dropdown","model-value":ct.value,options:fs.value,placeholder:"Choose folder","enable-search":!0,"search-placeholder":"Quick search project","show-add-action":!0,"add-action-mode":"event","add-action-label":"+ Add new project",disabled:!1,"onUpdate:modelValue":ft,onAddAction:Gs},null,8,["model-value","options"]),ct.value?(A(),L("p",{key:0,class:"new-thread-folder-selected",title:ct.value}," Selected folder: "+ge(ct.value),9,pj)):Se("",!0),y("div",{class:"new-thread-folder-actions"},[y("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",onClick:al}," Select folder ")]),Rn.value?(A(),L("div",hj,[y("div",{class:"new-thread-open-folder-header"},[_[24]||(_[24]=y("p",{class:"new-thread-open-folder-title"},"Select folder",-1)),y("button",{class:"new-thread-open-folder-close",type:"button",onClick:Uo}," Cancel ")]),_[26]||(_[26]=y("p",{class:"new-thread-open-folder-label"},"Current folder",-1)),y("div",mj,[y("p",{class:"new-thread-open-folder-path",title:bn.value||"Unavailable"},ge(bn.value||"Unavailable"),9,gj),y("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",disabled:!bn.value||!!Nt.value||on.value||Wn.value,onClick:_[5]||(_[5]=M=>mo())},ge(Wn.value?"Opening…":"Open"),9,vj)]),y("div",yj,[y("label",_j,[Br(y("input",{"onUpdate:modelValue":_[6]||(_[6]=M=>qe.value=M),class:"new-thread-open-folder-toggle-input",type:"checkbox",onChange:ms},null,544),[[QS,qe.value]]),_[25]||(_[25]=y("span",null,"Show hidden folders",-1))]),y("button",{class:pt(["new-thread-folder-action",{"new-thread-folder-action-primary":En.value}]),type:"button","aria-pressed":En.value,disabled:!bn.value||on.value||Wn.value||_n.value||!!Nt.value&&!En.value,onClick:vs}," New folder ",10,bj)]),En.value?(A(),L("div",wj,[y("div",Sj,[Br(y("input",{ref_key:"createFolderInputRef",ref:$r,"onUpdate:modelValue":_[7]||(_[7]=M=>Qn.value=M),class:"new-thread-open-folder-create-input",type:"text",placeholder:"Folder name",onKeydown:[Sn(_t(qi,["prevent"]),["enter"]),Sn(_t(Zr,["prevent"]),["esc"])]},null,40,Tj),[[fo,Qn.value]]),y("button",{class:"new-thread-folder-action new-thread-folder-action-primary new-thread-open-folder-create-submit",type:"button",disabled:!Bc.value||_n.value,onClick:qi},ge(qc.value),9,Ej)]),yn.value?(A(),L("p",kj,ge(yn.value),1)):Se("",!0)])):Se("",!0),Br(y("input",{"onUpdate:modelValue":_[8]||(_[8]=M=>Te.value=M),class:"new-thread-open-folder-filter",type:"text",placeholder:"Filter folders..."},null,512),[[fo,Te.value]]),Nt.value?(A(),L("div",Ij,[y("p",Aj,ge(Nt.value),1),y("button",{class:"new-thread-folder-action",type:"button",disabled:on.value||Wn.value,onClick:gs}," Retry ",8,Cj)])):Se("",!0),on.value?(A(),L("p",xj,"Loading folders…")):!Nt.value&&Oi.value.length===0?(A(),L("p",Rj,ge(Te.value.trim()?"No folders match this filter.":"No subfolders found here."),1)):Oi.value.length>0?(A(),L("ul",Mj,[(A(!0),L(Xe,null,Bt(Oi.value,M=>(A(),L("li",{key:M.key,class:"new-thread-open-folder-item"},[y("button",{class:"new-thread-open-folder-item-main",type:"button",title:M.path,disabled:on.value||Wn.value,onClick:de=>hs(M.path)},[y("span",$j,ge(M.name),1)],8,Pj),M.kind==="directory"?(A(),L("button",{key:0,class:"new-thread-open-folder-item-open",type:"button",disabled:on.value||Wn.value,onClick:de=>mo(M.path)}," Open ",8,Nj)):Se("",!0)]))),128))])):Se("",!0)])):Se("",!0),ze(vL,{class:"new-thread-runtime-dropdown",modelValue:Qt.value,"onUpdate:modelValue":_[9]||(_[9]=M=>Qt.value=M)},null,8,["modelValue"]),Qt.value==="worktree"?(A(),L("div",Oj,[_[27]||(_[27]=y("p",{class:"new-thread-branch-select-label"},"Base branch",-1)),ze(xs,{class:"new-thread-branch-dropdown","model-value":mn.value,options:Ni.value,placeholder:"Select branch","enable-search":!0,"search-placeholder":"Search branches...",disabled:Xn.value||Ni.value.length===0,"onUpdate:modelValue":vt},null,8,["model-value","options","disabled"]),y("p",Lj,ge(Xn.value?"Loading branches…":Va.value?`New worktree branch will start from ${Va.value}.`:"No Git branches found for this folder."),1)])):Se("",!0),_[31]||(_[31]=y("p",{class:"new-thread-runtime-help"},[y("code",null,"Local project"),$s(" uses the selected folder directly. "),y("code",null,"New worktree"),$s(" creates an isolated Git worktree before the first prompt. ")],-1)),Ut.value.phase!=="idle"?(A(),L("div",{key:3,class:pt(["worktree-init-status",{"is-running":Ut.value.phase==="running","is-error":Ut.value.phase==="error"}])},[y("strong",Dj,ge(Ut.value.title),1),y("span",jj,ge(Ut.value.message),1)],2)):Se("",!0),Hn.value?(A(),L("div",Fj,[y("div",Bj,[_[28]||(_[28]=y("p",{class:"new-thread-trending-title"},"Trending GitHub projects",-1)),ze(xs,{class:"new-thread-trending-scope-dropdown","model-value":Ne.value,options:Hc.value,"onUpdate:modelValue":U},null,8,["model-value","options"])]),Le.value?(A(),L("p",qj,"Loading trending projects...")):le.value.length===0?(A(),L("p",Uj," Trending repos are unavailable right now. ")):(A(),L("div",Hj,[(A(!0),L(Xe,null,Bt(le.value,M=>(A(),L("button",{key:M.id,type:"button",class:"new-thread-trending-tip",onClick:de=>oe(M)},[y("span",{class:"new-thread-trending-tip-name",title:M.fullName},[M.owner&&M.repo?(A(),L(Xe,{key:0},[y("span",zj,ge(M.owner),1),_[29]||(_[29]=y("span",{class:"new-thread-trending-tip-name-slash"},"/",-1)),y("span",Gj,ge(M.repo),1)],64)):(A(),L("span",Kj,ge(M.fullName),1))],8,Vj),y("span",Yj,ge(B(M)),1),y("span",Jj,ge(M.description||"No description available."),1)],8,Wj))),128))]))])):Se("",!0)]),y("div",Xj,[ze(Qm,{ref_key:"homeThreadComposerRef",ref:$,"active-thread-id":R.value,cwd:Ee.value,"collaboration-modes":He(O),"selected-collaboration-mode":He(Y),models:He(W),"selected-model":He(ce),"selected-reasoning-effort":He(re),"selected-speed-mode":He(Z),"is-updating-speed-mode":He(Fe),skills:He(he),"thread-token-usage":He(m),"codex-quota":He(H),"is-turn-in-progress":!1,"is-interrupting-turn":!1,"send-with-enter":Bn.value,"in-progress-submit-mode":cr.value,"dictation-click-to-toggle":ln.value,"dictation-auto-send":Un.value,"dictation-language":ur.value,onSubmit:F,"onUpdate:selectedCollaborationMode":fp,"onUpdate:selectedModel":cp,"onUpdate:selectedReasoningEffort":up,"onUpdate:selectedSpeedMode":dp},null,8,["active-thread-id","cwd","collaboration-modes","selected-collaboration-mode","models","selected-model","selected-reasoning-effort","selected-speed-mode","is-updating-speed-mode","skills","thread-token-usage","codex-quota","send-with-enter","in-progress-submit-mode","dictation-click-to-toggle","dictation-auto-send","dictation-language"])])])):(A(),L("div",Qj,[en.value&&He(P)&&Ee.value?(A(),yt(He(n),{key:0,"thread-id":He(P),cwd:Ee.value,"is-thread-in-progress":it.value,onClose:_[10]||(_[10]=M=>en.value=!1)},null,8,["thread-id","cwd","is-thread-in-progress"])):(A(),L(Xe,{key:1},[y("div",Zj,[ze(He(t),{ref_key:"threadConversationRef",ref:X,messages:z.value,"is-loading":He(V),"active-thread-id":R.value,cwd:Ee.value,"scroll-state":He(v),"live-overlay":w.value,"pending-requests":He(T),onUpdateScrollState:ol,onForkThread:du,onRollback:ob,onRespondServerRequest:Bi},null,8,["messages","is-loading","active-thread-id","cwd","scroll-state","live-overlay","pending-requests"])]),y("div",e2,[ze(rL,{messages:He(be),onEdit:je,onSteer:He(ve),onDelete:He(we)},null,8,["messages","onSteer","onDelete"]),K.value?(A(),yt(KO,{key:0,request:K.value,"request-count":He(T).length,"has-queue-above":He(be).length>0,onRespondServerRequest:Bi},null,8,["request","request-count","has-queue-above"])):(A(),yt(Qm,{key:1,ref_key:"threadComposerRef",ref:D,"active-thread-id":R.value,cwd:Ee.value,"collaboration-modes":He(O),"selected-collaboration-mode":He(Y),models:He(W),"selected-model":He(ce),"selected-reasoning-effort":He(re),"selected-speed-mode":He(Z),"is-updating-speed-mode":He(Fe),skills:He(he),"thread-token-usage":He(m),"codex-quota":He(H),"is-turn-in-progress":it.value,"is-interrupting-turn":He(xe),"has-queue-above":He(be).length>0,"send-with-enter":Bn.value,"in-progress-submit-mode":cr.value,"dictation-click-to-toggle":ln.value,"dictation-auto-send":Un.value,"dictation-language":ur.value,"onUpdate:selectedCollaborationMode":fp,onSubmit:F,"onUpdate:selectedModel":cp,"onUpdate:selectedReasoningEffort":up,"onUpdate:selectedSpeedMode":dp,onInterrupt:rb},null,8,["active-thread-id","cwd","collaboration-modes","selected-collaboration-mode","models","selected-model","selected-reasoning-effort","selected-speed-mode","is-updating-speed-mode","skills","thread-token-usage","codex-quota","is-turn-in-progress","is-interrupting-turn","has-queue-above","send-with-enter","in-progress-submit-mode","dictation-click-to-toggle","dictation-auto-send","dictation-language"]))])],64))]))])],4)]),_:1},8,["is-sidebar-collapsed"]))}}),r2=Et(n2,[["__scopeId","data-v-82e52728"]]),hd={render:()=>null},Q_=$1({history:d1(),routes:[{path:"/",name:"home",component:hd},{path:"/thread/:threadId",name:"thread",component:hd},{path:"/skills",name:"skills",component:hd},{path:"/new-thread",redirect:{name:"home"}},{path:"/:pathMatch(.*)*",redirect:{name:"home"}}]});console.log("Welcome to codexui. npm: https://www.npmjs.com/package/@nervmor/codexui");const Z_=oT(r2);async function o2(){{s2();return}}function s2(e){wx({app:Z_,dsn:"https://9b1c6357d134c512f8171518ec2cb18e@o4511194738982912.ingest.us.sentry.io/4511201728200704",release:"codexui@0.1.82",environment:"production",integrations:[Ex({router:Q_})],tracesSampleRate:.05,sendDefaultPii:!0,beforeSendTransaction(t){const n=t.transaction??"";return n.includes("/health")||n.includes("/favicon")||n.match(/\.(js|css|map|png|svg|ico|woff2?)$/)?null:t}})}o2();Z_.use(Q_).mount("#app");"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(e=>{console.error("Service worker registration failed.",e)})});export{xR as A,Br as B,i2 as C,l2 as D,u2 as E,Xe as F,d2 as G,a2 as H,Ul as I,c2 as J,lp as K,xl as L,yM as M,eg as N,fo as O,Sn as P,Mv as T,Et as _,y as a,as as b,L as c,An as d,Fs as e,Se as f,Bt as g,pt as h,yt as i,kt as j,Ef as k,ko as l,ze as m,Jt as n,A as o,h$ as p,FL as q,j as r,_t as s,ge as t,rp as u,He as v,lt as w,$s as x,se as y,zu as z};
89
+ //# sourceMappingURL=index-B2j_CnU5.js.map