codexui-android 0.1.88 → 0.1.89

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-B-Ik7tFp.js","assets/ThreadConversation-BKfO22g2.css","assets/ReviewPane-Blnhnm6J.js","assets/ReviewPane-CyugWwTM.css","assets/SkillsHub-C93DMbLM.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-DymdJ3Hs.js","assets/ThreadConversation-BKfO22g2.css","assets/ReviewPane-CwRK6K44.js","assets/ReviewPane-CyugWwTM.css","assets/SkillsHub-BIRLBCzr.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
@@ -80,7 +80,7 @@ ${w}`:s.value=w,Yt(()=>{var B;return(B=xe.value)==null?void 0:B.focus()}))}funct
80
80
 
81
81
  `)&&nn(S,`${Qe}
82
82
 
83
- `)}eu(c);const ws=tu(c);ws&&(zi(S,ws),wt(S,{label:"Running command",details:[((wl=ws.commandExecution)==null?void 0:wl.command)??""]}));const fo=nu(c);if(fo){const Qe=(a.value[S]??[]).find(rr=>rr.id===fo.itemId);Qe!=null&&Qe.commandExecution&&zi(S,{...Qe,commandExecution:{...Qe.commandExecution,aggregatedOutput:`${Qe.commandExecution.aggregatedOutput}${fo.delta}`}})}const Ss=ll(c);Ss&&zi(S,Ss);const Uo=cl(c);if(Uo&&Mn(S,Uo),ul(c)&&(_e&&n.value&&jo(n.value,{scrollTop:0,isAtBottom:!0,scrollRatio:1}),Un(S)),c.method==="turn/completed"){_e=!1,Un(S),a.value[S]&&(a.value=_t(a.value,S));const Qe=st(c);Qe&&(Ct(Qe,!1),wt(Qe,null),Rn(Qe),qe||(pn(Qe),ys(Qe)))}}function Bo(c){if(c.method==="thread/tokenUsage/updated")return;const p=st(c);p&&Ne.add(p);const v=c.method;(v.startsWith("thread/")||v.startsWith("turn/")||v.startsWith("item/"))&&(ee=!0),!(Y!==null||typeof window>"u")&&(Y=window.setTimeout(()=>{Y=null,nr()},kd))}async function su(c){if(!Se){Se=!0;try{const p=await Ps(),v=[];for(const S of p.order){const D=Ko(S);v.includes(D)||v.push(D)}if(v.length>0){const S=Ll(v,c);Xo(Q.value,S)||(Q.value=S,ai(Q.value))}if(Object.keys(p.labels).length>0){const S={...me.value};let D=!1;for(const[F,U]of Object.entries(p.labels)){const V=Ko(F);S[V]!==U&&(S[V]=U,D=!0)}D&&(me.value=S,xd(S))}}catch{}}}async function iu(){if(!(Object.keys(Ge.value).length>0))try{const c=await UM();Object.keys(c.titles).length>0&&(Ge.value=c.titles)}catch{}}async function au(c,p,v){if(Ge.value[c])return;const S=p.trim();if(!S)return;const D=S.length>300?S.slice(0,300):S;try{const F=await WM(D,v);if(!F||Ge.value[c])return;Ge.value={...Ge.value,[c]:F},Ut(),wd(c,F)}catch{}}async function lu(c){try{const p=await Ps();if(p.order.length===0)return c;const v=new Set(p.order.map(S=>Ko(S)));return c.filter(S=>v.has(S.projectName))}catch{return c}}async function ms(){var p;Z.value||(G.value=!0);const c=performance.now();try{const[v]=await ef({name:"loadThreads",op:"ui.load.threads"},()=>Promise.all([eM(),iu()]));await su(v);const S=await lu(v),D=Ll(Q.value,S);Xo(Q.value,D)||(Q.value=D,ai(Q.value));const F=Rd(S,Q.value);zt(new Set(Lr(F).map(qe=>qe.id)));const U=XD(t.value,F,u.value);t.value=Fl(t.value,U),u.value=Gt(u.value,new Set(Lr(t.value).map(qe=>qe.id))),Ut(),Z.value=!0;const V=Lr(e.value);Zn(V),V.some(qe=>qe.id===n.value)||tt(((p=V[0])==null?void 0:p.id)??"");const ke=Math.round(performance.now()-c);mr({category:"threads",message:`loaded ${V.length} threads in ${ke}ms`,data:{projectCount:S.length},level:"info"})}finally{G.value=!1}}async function wr(c,p={}){var F;if(!c)return;const v=xe.value[c]===!0,S=p.silent!==!0&&!v;S&&(be.value=!0);const D=performance.now();try{const V=Oe.value[c]!==!0?gd(c):null,te=cg(c),[ke,qe]=await ef({name:"thread.loadMessages",op:"ui.load",attributes:{threadId:c,silent:p.silent??!1}},()=>Promise.all([V,te]));ke&&(Xt(c,ke.model),Oe.value={...Oe.value,[c]:!0});const{messages:lt,inProgress:vt,activeTurnId:Zt,turnIndexByTurnId:_s}=qe;Bn(c,lt),Xs(c,_s),Xc(c);const bs=r.value[c]??[],ei=jD(bs,lt,{preserveMissing:p.silent===!0});mn(c,ei);const ws=s.value[c]??[];if(vt){const qo=BD(ws,lt);er(c,qo)}else Kr(c);ru(c,lt),ou(c,lt),xe.value={...xe.value,[c]:!0};const fo=fr(c);fo&&(Me.value={...Me.value,[c]:fo}),Ct(c,vt),Zt?ve.value={...ve.value,[c]:Zt}:ve.value[c]&&(ve.value=_t(ve.value,c)),vt||gn(c),hn(c);const Ss=Math.round(performance.now()-D),Uo=$.value.find(qo=>qo.id===c),Ts=((F=Uo==null?void 0:Uo.cwd)==null?void 0:F.split("/").pop())??"unknown";ek("thread",{id:c,messageCount:lt.length,loadMs:Ss,projectFolder:Ts}),mr({category:"thread",message:`loaded ${lt.length} msgs in ${Ss}ms`,data:{threadId:c,projectFolder:Ts},level:"info"})}finally{S&&(be.value=!1)}}async function dl(c,p={}){c&&xe.value[c]!==!0&&await wr(c,p)}async function Ki(){var c,p;try{const v=((p=(c=j.value)==null?void 0:c.cwd)==null?void 0:p.trim())??"";at.value=await VM(v?[v]:void 0)}catch{}}async function cu(){try{Xn(await dg())}catch{}}async function uu(c={}){I.value="";const p=c.includeSelectedThreadMessages!==!1,v=c.awaitAncillaryRefreshes===!0;try{await ms();const S=Promise.allSettled([zr(),bn(),io(),Ki(),cu()]).then(()=>{});p&&await wr(n.value),v&&await S}catch(S){I.value=S instanceof Error?S.message:"Unknown application error"}}async function du(c){tt(c);try{await Promise.all([wr(c),Ki()])}catch(p){I.value=p instanceof Error?p.message:"Unknown application error"}}async function fu(c){try{await pM(c),await ms(),n.value===c&&await wr(n.value)}catch(p){I.value=p instanceof Error?p.message:"Unknown application error"}}async function fl(c,p){const v=p.trim();if(!(!c||!v))try{await hM(c,v),Ge.value={...Ge.value,[c]:v},Ut(),wd(c,v)}catch(S){I.value=S instanceof Error?S.message:"Unknown application error"}}async function pu(c){var U,V;const p=c.trim();if(!p)return"";const v=Lr(t.value).find(te=>te.id===p),S=((U=v==null?void 0:v.cwd)==null?void 0:U.trim())??"",D=((V=v==null?void 0:v.title)==null?void 0:V.trim())??"Forked chat",F=bt(p);I.value="";try{const te=await pg(p,S||void 0,F||void 0),ke=te.threadId.trim();return ke?(_r(ke,S,D),Xt(ke,te.model),Oe.value={...Oe.value,[ke]:!0},tt(ke),await ms(),await wr(ke),ke):""}catch(te){return I.value=te instanceof Error?te.message:"Unknown application error",""}}async function hu(c,p){var U;const v=c.trim();if(!v||!Number.isInteger(p)||p<0)return"";if(u.value[v]===!0)return I.value="Finish the current turn before forking from a response.","";if(xe.value[v]!==!0)try{await wr(v)}catch(V){return I.value=V instanceof Error?V.message:"Unknown application error",""}const S=r.value[v]??[];let D=-1;for(const V of S)typeof V.turnIndex=="number"&&Number.isFinite(V.turnIndex)&&(D=Math.max(D,V.turnIndex));if(D>=0&&p>D)return"";const F=Lr(t.value).find(V=>V.id===v)??null;try{I.value="";const V=await pg(v),te=V.threadId.trim();if(!te)return"";const ke=V.cwd.trim()||((U=F==null?void 0:F.cwd)==null?void 0:U.trim())||"",qe=ZD((F==null?void 0:F.title)||(F==null?void 0:F.preview)||"Untitled thread");_r(te,ke,qe),Xt(te,V.model),mn(te,V.messages),xe.value={...xe.value,[te]:!0},Oe.value={...Oe.value,[te]:!0},qn(te),er(te,[]),Un(te),a.value[te]&&(a.value=_t(a.value,te)),qt(te,null),wt(te,null),Tt(te,null),Ct(te,!1);const lt=D-p;if(lt>0){const vt=await vd(te,lt);mn(te,vt)}return await fl(te,qe),tt(te),ms().catch(()=>{}),te}catch(V){return I.value=V instanceof Error?V.message:"Unknown application error",""}}async function pl(c,p,v=[],S=[],D=[]){if(!c||!p.trim()||v.length>0||S.length>0||D.length>0)return!1;const U=(De.value[c]??[]).filter(ke=>ke.method==="item/tool/requestUserInput");if(U.length!==1)return!1;const[V]=U,te=Fo(V);return te.length!==1?!1:yl({id:V.id,result:{answers:{[te[0]]:{answers:[p.trim()]}}}})}async function hl(c,p=[],v=[],S="steer",D=[],F){if(Xe.value)return;const U=n.value,V=c.trim();if(!U||!V&&p.length===0&&D.length===0||await pl(U,V,p,v,D))return;mr({category:"ui.action",message:"send message",data:{threadId:U,hasImages:p.length>0,skillCount:v.length},level:"info"});const te=u.value[U]===!0;if(te&&S==="queue"){const ke=d.value[U]??[],qe=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,lt=[...ke],vt=typeof F=="number"?Math.max(0,Math.min(F,lt.length)):lt.length;lt.splice(vt,0,{id:qe,text:V,imageUrls:p,skills:v,fileAttachments:D,collaborationMode:R.value}),d.value={...d.value,[U]:lt};return}if(te){_e=!0,vs(U,V,p,v,D).catch(ke=>{const qe=ke instanceof Error?ke.message:"Unknown application error";Tt(U,qe),I.value=qe});return}I.value="",_e=!0,qt(U,null),wt(U,{label:"Thinking",details:yr(bt(U),W.value,R.value)}),Tt(U,null),Ct(U,!0);try{await vs(U,V,p,v,D)}catch(ke){_e=!1,Ct(U,!1),wt(U,null);const qe=ke instanceof Error?ke.message:"Unknown application error";throw Tt(U,qe),I.value=qe,ke}}async function gs(c,p,v=[],S=[],D=[]){if(Xe.value)return"";const F=c.trim(),U=p.trim(),V=O.value.trim();if(!F&&v.length===0&&D.length===0)return"";fe.value=!0,I.value="";let te="";try{try{const vt=await fg(U||void 0,V||void 0);te=vt.threadId,Xt(te,vt.model)}catch(vt){if(V&&V!==Or&&Dl(vt)){await Vt();const Zt=await fg(U||void 0,Or);te=Zt.threadId,Xt(te,Zt.model)}else throw vt}if(!te)return"";_r(te,U,F||"[Image]"),An(te),Oe.value={...Oe.value,[te]:!0},tt(te),_e=!0,qt(te,null),wt(te,{label:"Thinking",details:yr(O.value,W.value,R.value)}),Tt(te,null),Ct(te,!0);const ke=te,qe=U||null,lt=F;return vs(te,F,v,S,D).catch(vt=>{_e=!1,Ct(te,!1),wt(te,null);const Zt=vt instanceof Error?vt.message:"Unknown application error";Tt(te,Zt),I.value=Zt}).finally(()=>{fe.value=!1}),au(ke,lt,qe),te}catch(ke){_e=!1,te&&(Ct(te,!1),wt(te,null));const qe=ke instanceof Error?ke.message:"Unknown application error";throw te&&Tt(te,qe),I.value=qe,fe.value=!1,ke}}async function vs(c,p,v=[],S=[],D=[]){const F=W.value,U=R.value,V=p.trim(),te=S.map(qe=>({name:qe.name,path:qe.path})),ke=D.map(qe=>({...qe}));It(c,{text:V,imageUrls:[...v],skills:te,fileAttachments:ke,effort:F,collaborationMode:U,fallbackRetried:!1});try{if(Oe.value[c]!==!0){const vt=await gd(c);Xt(c,vt.model)}const qe=bt(c);let lt="";try{lt=await yd(c,p,v,qe||void 0,F||void 0,S.length>0?S:void 0,D,U)}catch(vt){if(qe&&qe!==Or&&Dl(vt))await Vt(c),It(c,{text:V,imageUrls:[...v],skills:te,fileAttachments:ke,effort:F,collaborationMode:U,fallbackRetried:!0}),lt=await yd(c,p,v,Or,F||void 0,S.length>0?S:void 0,D,U);else throw vt}lt&&(ve.value={...ve.value,[c]:lt}),Oe.value={...Oe.value,[c]:!0},Ne.add(c),ee=!0,await nr(),wn(c)}catch(qe){throw qe}}async function ys(c){if(f.value[c]===!0)return;const p=d.value[c];if(!p||p.length===0)return;f.value={...f.value,[c]:!0};const[v,...S]=p;d.value=S.length>0?{...d.value,[c]:S}:_t(d.value,c),fe.value=!0,I.value="",_e=!0,qt(c,null),wt(c,{label:"Thinking",details:yr(bt(c),W.value,v.collaborationMode)}),Tt(c,null),Ct(c,!0);try{cr(v.collaborationMode),await vs(c,v.text,v.imageUrls,v.skills,v.fileAttachments)}catch{Ct(c,!1),wt(c,null)}finally{f.value=_t(f.value,c),fe.value=!1}}async function ml(){const c=n.value;if(!c||u.value[c]!==!0||we.value[c]===!0)return;let p=ve.value[c];if(!p){const{activeTurnId:v}=await cg(c);p=v,p&&(ve.value={...ve.value,[c]:p})}if(!p)throw new Error("Could not determine active turn id for interrupt");je.value=!0,I.value="";try{await bM(c,p),Ct(c,!1),wt(c,null),Tt(c,null),ve.value[c]&&(ve.value=_t(ve.value,c)),Ne.add(c),ee=!0,await nr()}catch(v){const S=v instanceof Error?v.message:"Failed to interrupt active turn";Tt(c,S),I.value=S}finally{je.value=!1}}async function mu(c){var V,te;const p=n.value;if(!p||E.value||!c.trim())return;const v=r.value[p]??[],S=v.find(ke=>ke.turnId===c),D=typeof(S==null?void 0:S.turnIndex)=="number"?S.turnIndex:-1;if(D<0)return;const F=v.reduce((ke,qe)=>typeof qe.turnIndex=="number"&&qe.turnIndex>ke?qe.turnIndex:ke,-1);if(F<0||D>F)return;const U=F-D+1;if(!(U<1)){E.value=!0,I.value="";try{const ke=((te=(V=j.value)==null?void 0:V.cwd)==null?void 0:te.trim())??"";ke&&await mM(p,c,ke);const qe=await vd(p,U);mn(p,qe),er(p,[]),Un(p),a.value[p]&&(a.value=_t(a.value,p)),qt(p,null),wt(p,null),Tt(p,null),ee=!0,await nr()}catch(ke){I.value=ke instanceof Error?ke.message:"Failed to rollback thread"}finally{E.value=!1}}}let Qs=null;async function gu(c,p){try{const v=await Ps(),S={...v.labels};let D=!1;for(const F of v.order){if(Ko(F)!==c)continue;const U=p.trim();U.length===0?S[F]!==void 0&&(delete S[F],D=!0):S[F]!==U&&(S[F]=U,D=!0)}D&&await _d({order:v.order,labels:S,active:v.active})}catch{}}function vu(c,p){c.length===0||(me.value[c]??"")===p||(me.value={...me.value,[c]:p},xd(me.value),Qs!==null&&clearTimeout(Qs),Qs=setTimeout(()=>{Qs=null,gu(c,p)},500))}async function yu(c){var F;if(c.length===0)return;const p=Q.value.filter(U=>U!==c);if(Xo(Q.value,p)||(Q.value=p,ai(Q.value)),t.value=t.value.filter(U=>U.projectName!==c),me.value[c]!==void 0){const U={...me.value};delete U[c],me.value=U,xd(U)}Ut();const v=Lr(e.value);Zn(v),v.some(U=>U.id===n.value)||tt(((F=v[0])==null?void 0:F.id)??"");const D=new Set;try{const U=await Ps();for(const V of U.order)Ko(V)===c&&D.add(V);for(const V of U.active)Ko(V)===c&&D.add(V);for(const V of Object.keys(U.labels))Ko(V)===c&&D.add(V)}catch{}if(D.size>0)try{const U=await Ps(),V=U.order.filter(qe=>!D.has(qe)),te=U.active.filter(qe=>!D.has(qe)),ke=te.length===0&&V.length>0?[V[0]]:te;await _d({order:V,labels:GD(U.labels,D),active:ke});return}catch{}await Yi()}function _u(c,p){if(c.length===0||t.value.length===0)return;const v=t.value.map(te=>te.projectName),S=v.indexOf(c);if(S===-1)return;const D=Math.max(0,Math.min(p,v.length-1)),F=ND(v,S,D);if(F===v)return;const U=Ll(F,t.value);Q.value=U,ai(Q.value);const V=Rd(t.value,Q.value);t.value=Fl(t.value,V),Ut(),Yi()}function gl(c){const p=c.trim();if(!p)return;const v=[p,...Q.value.filter(D=>D!==p)];if(Xo(Q.value,v))return;Q.value=v,ai(Q.value);const S=Rd(t.value,Q.value);t.value=Fl(t.value,S),Ut(),Yi()}async function Yi(){var c,p;try{const v=await Ps(),S=new Map;for(const U of v.order){const V=Ko(U);S.has(V)||S.set(V,U)}for(const U of t.value){const V=((p=(c=U.threads[0])==null?void 0:c.cwd)==null?void 0:p.trim())??"";V&&S.set(U.projectName,V)}const D=[];for(const U of Q.value){const V=S.get(U);V&&!D.includes(V)&&D.push(V)}for(const U of v.order)D.includes(U)||D.push(U);const F=v.active.filter(U=>D.includes(U));F.length===0&&D.length>0&&F.push(D[0]),await _d({order:D,labels:v.labels,active:F})}catch{}}async function nr(){if(q.value){typeof window<"u"&&Y===null&&(Y=window.setTimeout(()=>{Y=null,nr()},kd));return}q.value=!0;const c=ee,p=new Set(Ne);ee=!1,Ne.clear();try{c&&await ms();const v=n.value;if(!v)return;const S=p.has(v),D=u.value[v]===!0,F=fr(v),U=Me.value[v]??"",V=F.length>0&&F!==U;(S||D||V||c)&&await wr(v,{silent:!0})}catch{}finally{q.value=!1,(ee||Ne.size>0)&&typeof window<"u"&&Y===null&&(Y=window.setTimeout(()=>{Y=null,nr()},kd))}}async function bu(){await vl(),ee=!0,n.value&&Ne.add(n.value),await nr()}function wu(){typeof window>"u"||X||(vl(),X=iM(c=>{if(c.method==="ready"){dr(),bu();return}Gi(c),Bo(c)}))}async function vl(){try{const p=(await lM()).map(v=>Bt(v)).filter(v=>v!==null);Yc(p)}catch{}}async function yl(c){try{return await aM(c.id,{result:c.result,error:c.error}),rl(c.id),!0}catch(p){return I.value=p instanceof Error?p.message:"Failed to reply to server request",!1}}function Su(){if(X&&(X(),X=null),ee=!1,Ne.clear(),Ae.clear(),Y!==null&&typeof window<"u"&&(window.clearTimeout(Y),Y=null),se!==null&&typeof window<"u"&&(window.clearTimeout(se),se=null),typeof window<"u")for(const c of pe.values())window.clearTimeout(c);pe.clear(),_e=!1,r.value={},o.value={},s.value={},i.value={},a.value={},l.value={},J.value={},Re.value={},de.value={},Fe.value={},ve.value={},we.value={},ie.value={},Ie.value={},d.value={},f.value={},Ve.value=null,ze.value={}}const _l=oe(()=>{const c=n.value;return c?d.value[c]??[]:[]});function Zs(c){const p=n.value;if(!p)return;const v=d.value[p];if(!v)return;const S=v.filter(D=>D.id!==c);d.value=S.length>0?{...d.value,[p]:S}:_t(d.value,p)}function Tu(c){const p=n.value;if(!p)return;const v=d.value[p];if(!v)return;const S=v.find(D=>D.id===c);S&&(Zs(c),cr(S.collaborationMode),hl(S.text,S.imageUrls,S.skills,"steer",S.fileAttachments))}function Eu(c){tt(c)}return{projectGroups:e,projectDisplayNameById:me,selectedThread:j,selectedThreadTokenUsage:rt,selectedThreadScrollState:K,isSelectedThreadInterruptPending:ae,selectedThreadServerRequests:$e,selectedLiveOverlay:Ue,codexQuota:nt,selectedThreadId:n,availableCollaborationModes:k,availableModelIds:y,selectedCollaborationMode:R,selectedModelId:O,selectedReasoningEffort:W,selectedSpeedMode:z,installedSkills:at,accountRateLimitSnapshots:Ye,messages:$t,isLoadingThreads:G,isLoadingMessages:be,isSendingMessage:fe,isInterruptingTurn:je,isUpdatingSpeedMode:Xe,isRollingBack:E,error:I,refreshAll:uu,refreshSkills:Ki,selectThread:du,loadMessages:wr,ensureThreadMessagesLoaded:dl,setThreadScrollState:jo,archiveThreadById:fu,renameThreadById:fl,forkThreadById:pu,forkThreadFromTurn:hu,rollbackSelectedThread:mu,sendMessageToSelectedThread:hl,sendMessageToNewThread:gs,interruptSelectedThreadTurn:ml,selectedThreadQueuedMessages:_l,removeQueuedMessage:Zs,steerQueuedMessage:Tu,setSelectedCollaborationMode:cr,setSelectedModelId:fn,setSelectedReasoningEffort:so,updateSelectedSpeedMode:fs,respondToPendingServerRequest:yl,renameProject:vu,removeProject:yu,reorderProject:_u,pinProjectToTop:gl,startPolling:wu,stopPolling:Su,primeSelectedThread:Eu}}const tj={class:"sidebar-root"},nj={class:"sidebar-scrollable"},rj=["aria-pressed"],oj={key:1,class:"sidebar-search-bar"},sj={class:"sidebar-settings-account-section"},ij={class:"sidebar-settings-account-header"},aj={class:"sidebar-settings-account-header-main"},lj=["aria-expanded","title"],cj={class:"sidebar-settings-account-collapse-icon"},uj={class:"sidebar-settings-account-count"},dj=["disabled"],fj={key:0,class:"sidebar-settings-account-error"},pj={key:1,class:"sidebar-settings-account-empty"},hj={key:2,class:"sidebar-settings-account-list"},mj=["title","onMouseenter","onMouseleave"],gj={class:"sidebar-settings-account-main"},vj={class:"sidebar-settings-account-email"},yj={class:"sidebar-settings-account-meta"},_j={class:"sidebar-settings-account-quota"},bj={class:"sidebar-settings-account-id"},wj={class:"sidebar-settings-account-actions"},Sj=["disabled","onClick"],Tj=["disabled","onClick"],Ej=["title"],kj=["title"],Ij={class:"sidebar-settings-value"},Cj=["title"],Aj={class:"sidebar-settings-value"},xj=["title"],Rj={class:"sidebar-settings-value"},Mj=["title"],Pj=["title"],$j=["title"],Nj={class:"sidebar-settings-row sidebar-settings-row--select",title:"Choose the API provider for the Codex backend"},Oj=["value","disabled"],Lj={key:0,class:"sidebar-settings-row sidebar-settings-row--input"},Dj={class:"sidebar-settings-key-group"},jj={class:"sidebar-settings-key-masked"},Fj=["disabled"],Bj=["disabled"],Uj={key:1,class:"sidebar-settings-row sidebar-settings-row--input"},qj={class:"sidebar-settings-key-group"},Hj={class:"sidebar-settings-key-group"},Wj=["disabled"],Vj=["title"],zj={class:"sidebar-settings-value"},Gj={key:2,class:"sidebar-settings-telegram-panel"},Kj={class:"sidebar-settings-field"},Yj={class:"sidebar-settings-field"},Jj={key:0,class:"sidebar-settings-telegram-error"},Xj={class:"sidebar-settings-telegram-actions"},Qj=["disabled"],Zj=["data-state","title"],eF=["data-state"],tF={class:"sidebar-settings-context-meta"},nF={class:"sidebar-settings-rate-limits"},rF={class:"sidebar-settings-build-label","aria-label":"Worktree name and version"},oF={class:"sidebar-settings-button-version"},sF={class:"content-body"},iF={key:1,class:"content-grid content-grid-home"},aF={class:"new-thread-empty"},lF=["title"],cF=["onKeydown"],uF={class:"new-thread-open-folder-current"},dF=["title"],fF=["disabled"],pF={class:"new-thread-open-folder-actions"},hF={class:"new-thread-open-folder-toggle"},mF=["aria-pressed","disabled"],gF={key:0,class:"new-thread-open-folder-create"},vF={class:"new-thread-open-folder-create-composer"},yF=["onKeydown"],_F=["disabled"],bF={key:0,class:"new-thread-open-folder-error"},wF=["onKeydown"],SF={key:1,class:"new-thread-open-folder-error-actions"},TF={class:"new-thread-open-folder-error"},EF=["disabled"],kF={key:2,class:"new-thread-open-folder-status"},IF={key:3,class:"new-thread-open-folder-status"},CF={key:4,class:"new-thread-open-folder-list"},AF=["title","disabled","onClick"],xF={class:"new-thread-open-folder-item-name"},RF=["disabled","onClick"],MF={key:1,class:"new-thread-branch-select"},PF={class:"new-thread-branch-select-help"},$F={class:"worktree-init-status-title"},NF={class:"worktree-init-status-message"},OF={key:3,class:"new-thread-trending"},LF={class:"new-thread-trending-header"},DF={key:0,class:"new-thread-trending-empty"},jF={key:1,class:"new-thread-trending-empty"},FF={key:2,class:"new-thread-trending-list"},BF=["onClick"],UF=["title"],qF={class:"new-thread-trending-tip-name-owner"},HF={class:"new-thread-trending-tip-name-repo"},WF={key:1,class:"new-thread-trending-tip-name-repo"},VF={class:"new-thread-trending-tip-meta"},zF={class:"new-thread-trending-tip-description"},GF={class:"composer-with-queue"},KF={key:2,class:"content-grid"},YF={class:"content-thread"},JF={class:"composer-with-queue"},Ng="codex-web-local.sidebar-collapsed.v1",Og="codex-web-local.accounts-section-collapsed.v1",Lg="codex-web-local.send-with-enter.v1",Dg="codex-web-local.in-progress-send-mode.v1",jg="codex-web-local.dark-mode.v1",Fg="codex-web-local.dictation-click-to-toggle.v1",Bg="codex-web-local.dictation-auto-send.v1",Ug="codex-web-local.dictation-language.v1",qg="codex-web-local.github-trending-projects.v1",Hg="codex-web-local.chat-width.v1",XF=400,QF=In({__name:"App",setup(e){const t=ju(()=>ld(()=>import("./ThreadConversation-B-Ik7tFp.js"),__vite__mapDeps([0,1]))),n=ju(()=>ld(()=>import("./ReviewPane-Blnhnm6J.js"),__vite__mapDeps([2,3]))),r=ju(()=>ld(()=>import("./SkillsHub-C93DMbLM.js"),__vite__mapDeps([4,5]))),o="a77f",s="0.1.88",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:u,projectDisplayNameById:d,selectedThread:f,selectedThreadTokenUsage:g,selectedThreadScrollState:y,selectedThreadServerRequests:k,selectedLiveOverlay:A,codexQuota:H,selectedThreadId:R,availableCollaborationModes:O,availableModelIds:W,selectedCollaborationMode:z,selectedModelId:ce,selectedReasoningEffort:ne,selectedSpeedMode:Q,installedSkills:me,accountRateLimitSnapshots:Me,messages:xe,isLoadingThreads:Oe,isLoadingMessages:J,isSendingMessage:de,isInterruptingTurn:Re,isSelectedThreadInterruptPending:Fe,isUpdatingSpeedMode:ve,refreshAll:we,refreshSkills:ie,selectThread:Ie,ensureThreadMessagesLoaded:De,setThreadScrollState:Pe,archiveThreadById:Ve,forkThreadById:ze,renameThreadById:Ge,forkThreadFromTurn:at,sendMessageToSelectedThread:Ye,sendMessageToNewThread:G,interruptSelectedThreadTurn:be,selectedThreadQueuedMessages:fe,removeQueuedMessage:je,steerQueuedMessage:Xe,setSelectedCollaborationMode:E,setSelectedModelId:I,setSelectedReasoningEffort:q,updateSelectedSpeedMode:Z,respondToPendingServerRequest:X,renameProject:Y,removeProject:se,reorderProject:pe,pinProjectToTop:ue,startPolling:ee,stopPolling:Ne,primeSelectedThread:Se,rollbackSelectedThread:_e}=ej(),Ae=dR(),P=uR(),{isMobile:$}=bp(),j=N(null),K=N(null),ae=N(null),$e=N([]),Ue=N(!1),nt=N("trending-daily"),rt=N(null),$t=N(!1);let bt=!1;const on=N(!1),tt=N(""),fn=N("local"),Xt=N(""),vr=N([]),cr=N(!1),Xn=N({order:[],labels:{}}),Vt=N({phase:"idle",title:"",message:""}),It=N(Qb()),pn=N(""),jt=N(!1),so=N(null),fs=N(null),io=N(null),yr=N(null),zr=N(null);let bn=null;const sn=N("New Project (1)"),Gr=N(""),wn=N(!1),Sn=N(ew()),Qn=N(!1),ur=N([]),Fn=N(null),Ut=N(!1),_r=N(!1),Zn=N(null),hn=N([]),qt=N(!1),Ct=N(!1),Tn=N(""),An=N(""),xn=N(""),zt=N(""),Bn=N(Sl(Lg,!0)),Rn=N(jb()),wt=N(Db()),Tt=N(Fb()),br=N(Sl(Fg,!1)),dr=N(Sl(Bg,!0)),fr=N(Jb()),jo=oe(()=>Xb()),mn=N(Sl(qg,!1)),er=N(!1),Kr=N(!1),an=N(""),ao=N(!1),Pr=N(null),Ft=N(!1),Mn=N("codex"),nn=N(""),lo=N(""),Un=N(!1),qn=N(""),$r=N(""),gn=N(""),Nr=N(!1),Hn=N(!1),tr=N(""),Qt=N(""),Le=N(!1),ye=N(!1),vn=N(null),T=N(""),M=N(""),m=N([]),w=N(""),B=N(!1),ge=N(!1),ot=N(!1),st=N(""),dt=N({configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:""}),ft=N(null),Bt=N(!1),Wn=N(!1);let yn=null,Ui=!1,ps=0;const co=oe(()=>{const h=Ae.params.threadId;return typeof h=="string"?h:""}),nl=oe(()=>{const h=new Set;for(const _ of u.value)for(const C of _.threads)h.add(C.id);return h}),Pn=oe(()=>Ae.name==="home"),Fo=oe(()=>Ae.name==="skills"),Kc=oe(()=>{var h;return Fo.value?"Skills":Pn.value?"New thread":((h=f.value)==null?void 0:h.title)??"Choose a thread"}),rl=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",Yc=oe(()=>{var _,C;return(((C=(_=f.value)==null?void 0:_.title)==null?void 0:C.trim())??"")||rl}),Js=oe(()=>xe.value.filter(h=>{const _=nw(h.messageType,h.role);return _==="worked"?!0:!(_==="turnActivity.live"||_==="turnError.live"||_==="agentReasoning.live")})),ol=oe(()=>A.value),qi=oe(()=>Pn.value?"__new-thread__":R.value),sl=oe(()=>{const h=k.value;return h.length>0?h[h.length-1]:null}),uo=oe(()=>{var h,_;return Pn.value?tt.value.trim():((_=(h=f.value)==null?void 0:h.cwd)==null?void 0:_.trim())??""}),hs=oe(()=>{var h;return!Pn.value&&((h=f.value)==null?void 0:h.inProgress)===!0}),Jc=oe(()=>!Pn.value&&!Fo.value&&R.value.trim().length>0),Hi=oe(()=>de.value||Re.value||hs.value||k.value.length>0);function Xs(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 Xc(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
+ `)}eu(c);const ws=tu(c);ws&&(zi(S,ws),wt(S,{label:"Running command",details:[((wl=ws.commandExecution)==null?void 0:wl.command)??""]}));const fo=nu(c);if(fo){const Qe=(a.value[S]??[]).find(rr=>rr.id===fo.itemId);Qe!=null&&Qe.commandExecution&&zi(S,{...Qe,commandExecution:{...Qe.commandExecution,aggregatedOutput:`${Qe.commandExecution.aggregatedOutput}${fo.delta}`}})}const Ss=ll(c);Ss&&zi(S,Ss);const Uo=cl(c);if(Uo&&Mn(S,Uo),ul(c)&&(_e&&n.value&&jo(n.value,{scrollTop:0,isAtBottom:!0,scrollRatio:1}),Un(S)),c.method==="turn/completed"){_e=!1,Un(S),a.value[S]&&(a.value=_t(a.value,S));const Qe=st(c);Qe&&(Ct(Qe,!1),wt(Qe,null),Rn(Qe),qe||(pn(Qe),ys(Qe)))}}function Bo(c){if(c.method==="thread/tokenUsage/updated")return;const p=st(c);p&&Ne.add(p);const v=c.method;(v.startsWith("thread/")||v.startsWith("turn/")||v.startsWith("item/"))&&(ee=!0),!(Y!==null||typeof window>"u")&&(Y=window.setTimeout(()=>{Y=null,nr()},kd))}async function su(c){if(!Se){Se=!0;try{const p=await Ps(),v=[];for(const S of p.order){const D=Ko(S);v.includes(D)||v.push(D)}if(v.length>0){const S=Ll(v,c);Xo(Q.value,S)||(Q.value=S,ai(Q.value))}if(Object.keys(p.labels).length>0){const S={...me.value};let D=!1;for(const[F,U]of Object.entries(p.labels)){const V=Ko(F);S[V]!==U&&(S[V]=U,D=!0)}D&&(me.value=S,xd(S))}}catch{}}}async function iu(){if(!(Object.keys(Ge.value).length>0))try{const c=await UM();Object.keys(c.titles).length>0&&(Ge.value=c.titles)}catch{}}async function au(c,p,v){if(Ge.value[c])return;const S=p.trim();if(!S)return;const D=S.length>300?S.slice(0,300):S;try{const F=await WM(D,v);if(!F||Ge.value[c])return;Ge.value={...Ge.value,[c]:F},Ut(),wd(c,F)}catch{}}async function lu(c){try{const p=await Ps();if(p.order.length===0)return c;const v=new Set(p.order.map(S=>Ko(S)));return c.filter(S=>v.has(S.projectName))}catch{return c}}async function ms(){var p;Z.value||(G.value=!0);const c=performance.now();try{const[v]=await ef({name:"loadThreads",op:"ui.load.threads"},()=>Promise.all([eM(),iu()]));await su(v);const S=await lu(v),D=Ll(Q.value,S);Xo(Q.value,D)||(Q.value=D,ai(Q.value));const F=Rd(S,Q.value);zt(new Set(Lr(F).map(qe=>qe.id)));const U=XD(t.value,F,u.value);t.value=Fl(t.value,U),u.value=Gt(u.value,new Set(Lr(t.value).map(qe=>qe.id))),Ut(),Z.value=!0;const V=Lr(e.value);Zn(V),V.some(qe=>qe.id===n.value)||tt(((p=V[0])==null?void 0:p.id)??"");const ke=Math.round(performance.now()-c);mr({category:"threads",message:`loaded ${V.length} threads in ${ke}ms`,data:{projectCount:S.length},level:"info"})}finally{G.value=!1}}async function wr(c,p={}){var F;if(!c)return;const v=xe.value[c]===!0,S=p.silent!==!0&&!v;S&&(be.value=!0);const D=performance.now();try{const V=Oe.value[c]!==!0?gd(c):null,te=cg(c),[ke,qe]=await ef({name:"thread.loadMessages",op:"ui.load",attributes:{threadId:c,silent:p.silent??!1}},()=>Promise.all([V,te]));ke&&(Xt(c,ke.model),Oe.value={...Oe.value,[c]:!0});const{messages:lt,inProgress:vt,activeTurnId:Zt,turnIndexByTurnId:_s}=qe;Bn(c,lt),Xs(c,_s),Xc(c);const bs=r.value[c]??[],ei=jD(bs,lt,{preserveMissing:p.silent===!0});mn(c,ei);const ws=s.value[c]??[];if(vt){const qo=BD(ws,lt);er(c,qo)}else Kr(c);ru(c,lt),ou(c,lt),xe.value={...xe.value,[c]:!0};const fo=fr(c);fo&&(Me.value={...Me.value,[c]:fo}),Ct(c,vt),Zt?ve.value={...ve.value,[c]:Zt}:ve.value[c]&&(ve.value=_t(ve.value,c)),vt||gn(c),hn(c);const Ss=Math.round(performance.now()-D),Uo=$.value.find(qo=>qo.id===c),Ts=((F=Uo==null?void 0:Uo.cwd)==null?void 0:F.split("/").pop())??"unknown";ek("thread",{id:c,messageCount:lt.length,loadMs:Ss,projectFolder:Ts}),mr({category:"thread",message:`loaded ${lt.length} msgs in ${Ss}ms`,data:{threadId:c,projectFolder:Ts},level:"info"})}finally{S&&(be.value=!1)}}async function dl(c,p={}){c&&xe.value[c]!==!0&&await wr(c,p)}async function Ki(){var c,p;try{const v=((p=(c=j.value)==null?void 0:c.cwd)==null?void 0:p.trim())??"";at.value=await VM(v?[v]:void 0)}catch{}}async function cu(){try{Xn(await dg())}catch{}}async function uu(c={}){I.value="";const p=c.includeSelectedThreadMessages!==!1,v=c.awaitAncillaryRefreshes===!0;try{await ms();const S=Promise.allSettled([zr(),bn(),io(),Ki(),cu()]).then(()=>{});p&&await wr(n.value),v&&await S}catch(S){I.value=S instanceof Error?S.message:"Unknown application error"}}async function du(c){tt(c);try{await Promise.all([wr(c),Ki()])}catch(p){I.value=p instanceof Error?p.message:"Unknown application error"}}async function fu(c){try{await pM(c),await ms(),n.value===c&&await wr(n.value)}catch(p){I.value=p instanceof Error?p.message:"Unknown application error"}}async function fl(c,p){const v=p.trim();if(!(!c||!v))try{await hM(c,v),Ge.value={...Ge.value,[c]:v},Ut(),wd(c,v)}catch(S){I.value=S instanceof Error?S.message:"Unknown application error"}}async function pu(c){var U,V;const p=c.trim();if(!p)return"";const v=Lr(t.value).find(te=>te.id===p),S=((U=v==null?void 0:v.cwd)==null?void 0:U.trim())??"",D=((V=v==null?void 0:v.title)==null?void 0:V.trim())??"Forked chat",F=bt(p);I.value="";try{const te=await pg(p,S||void 0,F||void 0),ke=te.threadId.trim();return ke?(_r(ke,S,D),Xt(ke,te.model),Oe.value={...Oe.value,[ke]:!0},tt(ke),await ms(),await wr(ke),ke):""}catch(te){return I.value=te instanceof Error?te.message:"Unknown application error",""}}async function hu(c,p){var U;const v=c.trim();if(!v||!Number.isInteger(p)||p<0)return"";if(u.value[v]===!0)return I.value="Finish the current turn before forking from a response.","";if(xe.value[v]!==!0)try{await wr(v)}catch(V){return I.value=V instanceof Error?V.message:"Unknown application error",""}const S=r.value[v]??[];let D=-1;for(const V of S)typeof V.turnIndex=="number"&&Number.isFinite(V.turnIndex)&&(D=Math.max(D,V.turnIndex));if(D>=0&&p>D)return"";const F=Lr(t.value).find(V=>V.id===v)??null;try{I.value="";const V=await pg(v),te=V.threadId.trim();if(!te)return"";const ke=V.cwd.trim()||((U=F==null?void 0:F.cwd)==null?void 0:U.trim())||"",qe=ZD((F==null?void 0:F.title)||(F==null?void 0:F.preview)||"Untitled thread");_r(te,ke,qe),Xt(te,V.model),mn(te,V.messages),xe.value={...xe.value,[te]:!0},Oe.value={...Oe.value,[te]:!0},qn(te),er(te,[]),Un(te),a.value[te]&&(a.value=_t(a.value,te)),qt(te,null),wt(te,null),Tt(te,null),Ct(te,!1);const lt=D-p;if(lt>0){const vt=await vd(te,lt);mn(te,vt)}return await fl(te,qe),tt(te),ms().catch(()=>{}),te}catch(V){return I.value=V instanceof Error?V.message:"Unknown application error",""}}async function pl(c,p,v=[],S=[],D=[]){if(!c||!p.trim()||v.length>0||S.length>0||D.length>0)return!1;const U=(De.value[c]??[]).filter(ke=>ke.method==="item/tool/requestUserInput");if(U.length!==1)return!1;const[V]=U,te=Fo(V);return te.length!==1?!1:yl({id:V.id,result:{answers:{[te[0]]:{answers:[p.trim()]}}}})}async function hl(c,p=[],v=[],S="steer",D=[],F){if(Xe.value)return;const U=n.value,V=c.trim();if(!U||!V&&p.length===0&&D.length===0||await pl(U,V,p,v,D))return;mr({category:"ui.action",message:"send message",data:{threadId:U,hasImages:p.length>0,skillCount:v.length},level:"info"});const te=u.value[U]===!0;if(te&&S==="queue"){const ke=d.value[U]??[],qe=`q-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,lt=[...ke],vt=typeof F=="number"?Math.max(0,Math.min(F,lt.length)):lt.length;lt.splice(vt,0,{id:qe,text:V,imageUrls:p,skills:v,fileAttachments:D,collaborationMode:R.value}),d.value={...d.value,[U]:lt};return}if(te){_e=!0,vs(U,V,p,v,D).catch(ke=>{const qe=ke instanceof Error?ke.message:"Unknown application error";Tt(U,qe),I.value=qe});return}I.value="",_e=!0,qt(U,null),wt(U,{label:"Thinking",details:yr(bt(U),W.value,R.value)}),Tt(U,null),Ct(U,!0);try{await vs(U,V,p,v,D)}catch(ke){_e=!1,Ct(U,!1),wt(U,null);const qe=ke instanceof Error?ke.message:"Unknown application error";throw Tt(U,qe),I.value=qe,ke}}async function gs(c,p,v=[],S=[],D=[]){if(Xe.value)return"";const F=c.trim(),U=p.trim(),V=O.value.trim();if(!F&&v.length===0&&D.length===0)return"";fe.value=!0,I.value="";let te="";try{try{const vt=await fg(U||void 0,V||void 0);te=vt.threadId,Xt(te,vt.model)}catch(vt){if(V&&V!==Or&&Dl(vt)){await Vt();const Zt=await fg(U||void 0,Or);te=Zt.threadId,Xt(te,Zt.model)}else throw vt}if(!te)return"";_r(te,U,F||"[Image]"),An(te),Oe.value={...Oe.value,[te]:!0},tt(te),_e=!0,qt(te,null),wt(te,{label:"Thinking",details:yr(O.value,W.value,R.value)}),Tt(te,null),Ct(te,!0);const ke=te,qe=U||null,lt=F;return vs(te,F,v,S,D).catch(vt=>{_e=!1,Ct(te,!1),wt(te,null);const Zt=vt instanceof Error?vt.message:"Unknown application error";Tt(te,Zt),I.value=Zt}).finally(()=>{fe.value=!1}),au(ke,lt,qe),te}catch(ke){_e=!1,te&&(Ct(te,!1),wt(te,null));const qe=ke instanceof Error?ke.message:"Unknown application error";throw te&&Tt(te,qe),I.value=qe,fe.value=!1,ke}}async function vs(c,p,v=[],S=[],D=[]){const F=W.value,U=R.value,V=p.trim(),te=S.map(qe=>({name:qe.name,path:qe.path})),ke=D.map(qe=>({...qe}));It(c,{text:V,imageUrls:[...v],skills:te,fileAttachments:ke,effort:F,collaborationMode:U,fallbackRetried:!1});try{if(Oe.value[c]!==!0){const vt=await gd(c);Xt(c,vt.model)}const qe=bt(c);let lt="";try{lt=await yd(c,p,v,qe||void 0,F||void 0,S.length>0?S:void 0,D,U)}catch(vt){if(qe&&qe!==Or&&Dl(vt))await Vt(c),It(c,{text:V,imageUrls:[...v],skills:te,fileAttachments:ke,effort:F,collaborationMode:U,fallbackRetried:!0}),lt=await yd(c,p,v,Or,F||void 0,S.length>0?S:void 0,D,U);else throw vt}lt&&(ve.value={...ve.value,[c]:lt}),Oe.value={...Oe.value,[c]:!0},Ne.add(c),ee=!0,await nr(),wn(c)}catch(qe){throw qe}}async function ys(c){if(f.value[c]===!0)return;const p=d.value[c];if(!p||p.length===0)return;f.value={...f.value,[c]:!0};const[v,...S]=p;d.value=S.length>0?{...d.value,[c]:S}:_t(d.value,c),fe.value=!0,I.value="",_e=!0,qt(c,null),wt(c,{label:"Thinking",details:yr(bt(c),W.value,v.collaborationMode)}),Tt(c,null),Ct(c,!0);try{cr(v.collaborationMode),await vs(c,v.text,v.imageUrls,v.skills,v.fileAttachments)}catch{Ct(c,!1),wt(c,null)}finally{f.value=_t(f.value,c),fe.value=!1}}async function ml(){const c=n.value;if(!c||u.value[c]!==!0||we.value[c]===!0)return;let p=ve.value[c];if(!p){const{activeTurnId:v}=await cg(c);p=v,p&&(ve.value={...ve.value,[c]:p})}if(!p)throw new Error("Could not determine active turn id for interrupt");je.value=!0,I.value="";try{await bM(c,p),Ct(c,!1),wt(c,null),Tt(c,null),ve.value[c]&&(ve.value=_t(ve.value,c)),Ne.add(c),ee=!0,await nr()}catch(v){const S=v instanceof Error?v.message:"Failed to interrupt active turn";Tt(c,S),I.value=S}finally{je.value=!1}}async function mu(c){var V,te;const p=n.value;if(!p||E.value||!c.trim())return;const v=r.value[p]??[],S=v.find(ke=>ke.turnId===c),D=typeof(S==null?void 0:S.turnIndex)=="number"?S.turnIndex:-1;if(D<0)return;const F=v.reduce((ke,qe)=>typeof qe.turnIndex=="number"&&qe.turnIndex>ke?qe.turnIndex:ke,-1);if(F<0||D>F)return;const U=F-D+1;if(!(U<1)){E.value=!0,I.value="";try{const ke=((te=(V=j.value)==null?void 0:V.cwd)==null?void 0:te.trim())??"";ke&&await mM(p,c,ke);const qe=await vd(p,U);mn(p,qe),er(p,[]),Un(p),a.value[p]&&(a.value=_t(a.value,p)),qt(p,null),wt(p,null),Tt(p,null),ee=!0,await nr()}catch(ke){I.value=ke instanceof Error?ke.message:"Failed to rollback thread"}finally{E.value=!1}}}let Qs=null;async function gu(c,p){try{const v=await Ps(),S={...v.labels};let D=!1;for(const F of v.order){if(Ko(F)!==c)continue;const U=p.trim();U.length===0?S[F]!==void 0&&(delete S[F],D=!0):S[F]!==U&&(S[F]=U,D=!0)}D&&await _d({order:v.order,labels:S,active:v.active})}catch{}}function vu(c,p){c.length===0||(me.value[c]??"")===p||(me.value={...me.value,[c]:p},xd(me.value),Qs!==null&&clearTimeout(Qs),Qs=setTimeout(()=>{Qs=null,gu(c,p)},500))}async function yu(c){var F;if(c.length===0)return;const p=Q.value.filter(U=>U!==c);if(Xo(Q.value,p)||(Q.value=p,ai(Q.value)),t.value=t.value.filter(U=>U.projectName!==c),me.value[c]!==void 0){const U={...me.value};delete U[c],me.value=U,xd(U)}Ut();const v=Lr(e.value);Zn(v),v.some(U=>U.id===n.value)||tt(((F=v[0])==null?void 0:F.id)??"");const D=new Set;try{const U=await Ps();for(const V of U.order)Ko(V)===c&&D.add(V);for(const V of U.active)Ko(V)===c&&D.add(V);for(const V of Object.keys(U.labels))Ko(V)===c&&D.add(V)}catch{}if(D.size>0)try{const U=await Ps(),V=U.order.filter(qe=>!D.has(qe)),te=U.active.filter(qe=>!D.has(qe)),ke=te.length===0&&V.length>0?[V[0]]:te;await _d({order:V,labels:GD(U.labels,D),active:ke});return}catch{}await Yi()}function _u(c,p){if(c.length===0||t.value.length===0)return;const v=t.value.map(te=>te.projectName),S=v.indexOf(c);if(S===-1)return;const D=Math.max(0,Math.min(p,v.length-1)),F=ND(v,S,D);if(F===v)return;const U=Ll(F,t.value);Q.value=U,ai(Q.value);const V=Rd(t.value,Q.value);t.value=Fl(t.value,V),Ut(),Yi()}function gl(c){const p=c.trim();if(!p)return;const v=[p,...Q.value.filter(D=>D!==p)];if(Xo(Q.value,v))return;Q.value=v,ai(Q.value);const S=Rd(t.value,Q.value);t.value=Fl(t.value,S),Ut(),Yi()}async function Yi(){var c,p;try{const v=await Ps(),S=new Map;for(const U of v.order){const V=Ko(U);S.has(V)||S.set(V,U)}for(const U of t.value){const V=((p=(c=U.threads[0])==null?void 0:c.cwd)==null?void 0:p.trim())??"";V&&S.set(U.projectName,V)}const D=[];for(const U of Q.value){const V=S.get(U);V&&!D.includes(V)&&D.push(V)}for(const U of v.order)D.includes(U)||D.push(U);const F=v.active.filter(U=>D.includes(U));F.length===0&&D.length>0&&F.push(D[0]),await _d({order:D,labels:v.labels,active:F})}catch{}}async function nr(){if(q.value){typeof window<"u"&&Y===null&&(Y=window.setTimeout(()=>{Y=null,nr()},kd));return}q.value=!0;const c=ee,p=new Set(Ne);ee=!1,Ne.clear();try{c&&await ms();const v=n.value;if(!v)return;const S=p.has(v),D=u.value[v]===!0,F=fr(v),U=Me.value[v]??"",V=F.length>0&&F!==U;(S||D||V||c)&&await wr(v,{silent:!0})}catch{}finally{q.value=!1,(ee||Ne.size>0)&&typeof window<"u"&&Y===null&&(Y=window.setTimeout(()=>{Y=null,nr()},kd))}}async function bu(){await vl(),ee=!0,n.value&&Ne.add(n.value),await nr()}function wu(){typeof window>"u"||X||(vl(),X=iM(c=>{if(c.method==="ready"){dr(),bu();return}Gi(c),Bo(c)}))}async function vl(){try{const p=(await lM()).map(v=>Bt(v)).filter(v=>v!==null);Yc(p)}catch{}}async function yl(c){try{return await aM(c.id,{result:c.result,error:c.error}),rl(c.id),!0}catch(p){return I.value=p instanceof Error?p.message:"Failed to reply to server request",!1}}function Su(){if(X&&(X(),X=null),ee=!1,Ne.clear(),Ae.clear(),Y!==null&&typeof window<"u"&&(window.clearTimeout(Y),Y=null),se!==null&&typeof window<"u"&&(window.clearTimeout(se),se=null),typeof window<"u")for(const c of pe.values())window.clearTimeout(c);pe.clear(),_e=!1,r.value={},o.value={},s.value={},i.value={},a.value={},l.value={},J.value={},Re.value={},de.value={},Fe.value={},ve.value={},we.value={},ie.value={},Ie.value={},d.value={},f.value={},Ve.value=null,ze.value={}}const _l=oe(()=>{const c=n.value;return c?d.value[c]??[]:[]});function Zs(c){const p=n.value;if(!p)return;const v=d.value[p];if(!v)return;const S=v.filter(D=>D.id!==c);d.value=S.length>0?{...d.value,[p]:S}:_t(d.value,p)}function Tu(c){const p=n.value;if(!p)return;const v=d.value[p];if(!v)return;const S=v.find(D=>D.id===c);S&&(Zs(c),cr(S.collaborationMode),hl(S.text,S.imageUrls,S.skills,"steer",S.fileAttachments))}function Eu(c){tt(c)}return{projectGroups:e,projectDisplayNameById:me,selectedThread:j,selectedThreadTokenUsage:rt,selectedThreadScrollState:K,isSelectedThreadInterruptPending:ae,selectedThreadServerRequests:$e,selectedLiveOverlay:Ue,codexQuota:nt,selectedThreadId:n,availableCollaborationModes:k,availableModelIds:y,selectedCollaborationMode:R,selectedModelId:O,selectedReasoningEffort:W,selectedSpeedMode:z,installedSkills:at,accountRateLimitSnapshots:Ye,messages:$t,isLoadingThreads:G,isLoadingMessages:be,isSendingMessage:fe,isInterruptingTurn:je,isUpdatingSpeedMode:Xe,isRollingBack:E,error:I,refreshAll:uu,refreshSkills:Ki,selectThread:du,loadMessages:wr,ensureThreadMessagesLoaded:dl,setThreadScrollState:jo,archiveThreadById:fu,renameThreadById:fl,forkThreadById:pu,forkThreadFromTurn:hu,rollbackSelectedThread:mu,sendMessageToSelectedThread:hl,sendMessageToNewThread:gs,interruptSelectedThreadTurn:ml,selectedThreadQueuedMessages:_l,removeQueuedMessage:Zs,steerQueuedMessage:Tu,setSelectedCollaborationMode:cr,setSelectedModelId:fn,setSelectedReasoningEffort:so,updateSelectedSpeedMode:fs,respondToPendingServerRequest:yl,renameProject:vu,removeProject:yu,reorderProject:_u,pinProjectToTop:gl,startPolling:wu,stopPolling:Su,primeSelectedThread:Eu}}const tj={class:"sidebar-root"},nj={class:"sidebar-scrollable"},rj=["aria-pressed"],oj={key:1,class:"sidebar-search-bar"},sj={class:"sidebar-settings-account-section"},ij={class:"sidebar-settings-account-header"},aj={class:"sidebar-settings-account-header-main"},lj=["aria-expanded","title"],cj={class:"sidebar-settings-account-collapse-icon"},uj={class:"sidebar-settings-account-count"},dj=["disabled"],fj={key:0,class:"sidebar-settings-account-error"},pj={key:1,class:"sidebar-settings-account-empty"},hj={key:2,class:"sidebar-settings-account-list"},mj=["title","onMouseenter","onMouseleave"],gj={class:"sidebar-settings-account-main"},vj={class:"sidebar-settings-account-email"},yj={class:"sidebar-settings-account-meta"},_j={class:"sidebar-settings-account-quota"},bj={class:"sidebar-settings-account-id"},wj={class:"sidebar-settings-account-actions"},Sj=["disabled","onClick"],Tj=["disabled","onClick"],Ej=["title"],kj=["title"],Ij={class:"sidebar-settings-value"},Cj=["title"],Aj={class:"sidebar-settings-value"},xj=["title"],Rj={class:"sidebar-settings-value"},Mj=["title"],Pj=["title"],$j=["title"],Nj={class:"sidebar-settings-row sidebar-settings-row--select",title:"Choose the API provider for the Codex backend"},Oj=["value","disabled"],Lj={key:0,class:"sidebar-settings-row sidebar-settings-row--input"},Dj={class:"sidebar-settings-key-group"},jj={class:"sidebar-settings-key-masked"},Fj=["disabled"],Bj=["disabled"],Uj={key:1,class:"sidebar-settings-row sidebar-settings-row--input"},qj={class:"sidebar-settings-key-group"},Hj={class:"sidebar-settings-key-group"},Wj=["disabled"],Vj=["title"],zj={class:"sidebar-settings-value"},Gj={key:2,class:"sidebar-settings-telegram-panel"},Kj={class:"sidebar-settings-field"},Yj={class:"sidebar-settings-field"},Jj={key:0,class:"sidebar-settings-telegram-error"},Xj={class:"sidebar-settings-telegram-actions"},Qj=["disabled"],Zj=["data-state","title"],eF=["data-state"],tF={class:"sidebar-settings-context-meta"},nF={class:"sidebar-settings-rate-limits"},rF={class:"sidebar-settings-build-label","aria-label":"Worktree name and version"},oF={class:"sidebar-settings-button-version"},sF={class:"content-body"},iF={key:1,class:"content-grid content-grid-home"},aF={class:"new-thread-empty"},lF=["title"],cF=["onKeydown"],uF={class:"new-thread-open-folder-current"},dF=["title"],fF=["disabled"],pF={class:"new-thread-open-folder-actions"},hF={class:"new-thread-open-folder-toggle"},mF=["aria-pressed","disabled"],gF={key:0,class:"new-thread-open-folder-create"},vF={class:"new-thread-open-folder-create-composer"},yF=["onKeydown"],_F=["disabled"],bF={key:0,class:"new-thread-open-folder-error"},wF=["onKeydown"],SF={key:1,class:"new-thread-open-folder-error-actions"},TF={class:"new-thread-open-folder-error"},EF=["disabled"],kF={key:2,class:"new-thread-open-folder-status"},IF={key:3,class:"new-thread-open-folder-status"},CF={key:4,class:"new-thread-open-folder-list"},AF=["title","disabled","onClick"],xF={class:"new-thread-open-folder-item-name"},RF=["disabled","onClick"],MF={key:1,class:"new-thread-branch-select"},PF={class:"new-thread-branch-select-help"},$F={class:"worktree-init-status-title"},NF={class:"worktree-init-status-message"},OF={key:3,class:"new-thread-trending"},LF={class:"new-thread-trending-header"},DF={key:0,class:"new-thread-trending-empty"},jF={key:1,class:"new-thread-trending-empty"},FF={key:2,class:"new-thread-trending-list"},BF=["onClick"],UF=["title"],qF={class:"new-thread-trending-tip-name-owner"},HF={class:"new-thread-trending-tip-name-repo"},WF={key:1,class:"new-thread-trending-tip-name-repo"},VF={class:"new-thread-trending-tip-meta"},zF={class:"new-thread-trending-tip-description"},GF={class:"composer-with-queue"},KF={key:2,class:"content-grid"},YF={class:"content-thread"},JF={class:"composer-with-queue"},Ng="codex-web-local.sidebar-collapsed.v1",Og="codex-web-local.accounts-section-collapsed.v1",Lg="codex-web-local.send-with-enter.v1",Dg="codex-web-local.in-progress-send-mode.v1",jg="codex-web-local.dark-mode.v1",Fg="codex-web-local.dictation-click-to-toggle.v1",Bg="codex-web-local.dictation-auto-send.v1",Ug="codex-web-local.dictation-language.v1",qg="codex-web-local.github-trending-projects.v1",Hg="codex-web-local.chat-width.v1",XF=400,QF=In({__name:"App",setup(e){const t=ju(()=>ld(()=>import("./ThreadConversation-DymdJ3Hs.js"),__vite__mapDeps([0,1]))),n=ju(()=>ld(()=>import("./ReviewPane-CwRK6K44.js"),__vite__mapDeps([2,3]))),r=ju(()=>ld(()=>import("./SkillsHub-BIRLBCzr.js"),__vite__mapDeps([4,5]))),o="a77f",s="0.1.89",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:u,projectDisplayNameById:d,selectedThread:f,selectedThreadTokenUsage:g,selectedThreadScrollState:y,selectedThreadServerRequests:k,selectedLiveOverlay:A,codexQuota:H,selectedThreadId:R,availableCollaborationModes:O,availableModelIds:W,selectedCollaborationMode:z,selectedModelId:ce,selectedReasoningEffort:ne,selectedSpeedMode:Q,installedSkills:me,accountRateLimitSnapshots:Me,messages:xe,isLoadingThreads:Oe,isLoadingMessages:J,isSendingMessage:de,isInterruptingTurn:Re,isSelectedThreadInterruptPending:Fe,isUpdatingSpeedMode:ve,refreshAll:we,refreshSkills:ie,selectThread:Ie,ensureThreadMessagesLoaded:De,setThreadScrollState:Pe,archiveThreadById:Ve,forkThreadById:ze,renameThreadById:Ge,forkThreadFromTurn:at,sendMessageToSelectedThread:Ye,sendMessageToNewThread:G,interruptSelectedThreadTurn:be,selectedThreadQueuedMessages:fe,removeQueuedMessage:je,steerQueuedMessage:Xe,setSelectedCollaborationMode:E,setSelectedModelId:I,setSelectedReasoningEffort:q,updateSelectedSpeedMode:Z,respondToPendingServerRequest:X,renameProject:Y,removeProject:se,reorderProject:pe,pinProjectToTop:ue,startPolling:ee,stopPolling:Ne,primeSelectedThread:Se,rollbackSelectedThread:_e}=ej(),Ae=dR(),P=uR(),{isMobile:$}=bp(),j=N(null),K=N(null),ae=N(null),$e=N([]),Ue=N(!1),nt=N("trending-daily"),rt=N(null),$t=N(!1);let bt=!1;const on=N(!1),tt=N(""),fn=N("local"),Xt=N(""),vr=N([]),cr=N(!1),Xn=N({order:[],labels:{}}),Vt=N({phase:"idle",title:"",message:""}),It=N(Qb()),pn=N(""),jt=N(!1),so=N(null),fs=N(null),io=N(null),yr=N(null),zr=N(null);let bn=null;const sn=N("New Project (1)"),Gr=N(""),wn=N(!1),Sn=N(ew()),Qn=N(!1),ur=N([]),Fn=N(null),Ut=N(!1),_r=N(!1),Zn=N(null),hn=N([]),qt=N(!1),Ct=N(!1),Tn=N(""),An=N(""),xn=N(""),zt=N(""),Bn=N(Sl(Lg,!0)),Rn=N(jb()),wt=N(Db()),Tt=N(Fb()),br=N(Sl(Fg,!1)),dr=N(Sl(Bg,!0)),fr=N(Jb()),jo=oe(()=>Xb()),mn=N(Sl(qg,!1)),er=N(!1),Kr=N(!1),an=N(""),ao=N(!1),Pr=N(null),Ft=N(!1),Mn=N("codex"),nn=N(""),lo=N(""),Un=N(!1),qn=N(""),$r=N(""),gn=N(""),Nr=N(!1),Hn=N(!1),tr=N(""),Qt=N(""),Le=N(!1),ye=N(!1),vn=N(null),T=N(""),M=N(""),m=N([]),w=N(""),B=N(!1),ge=N(!1),ot=N(!1),st=N(""),dt=N({configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:""}),ft=N(null),Bt=N(!1),Wn=N(!1);let yn=null,Ui=!1,ps=0;const co=oe(()=>{const h=Ae.params.threadId;return typeof h=="string"?h:""}),nl=oe(()=>{const h=new Set;for(const _ of u.value)for(const C of _.threads)h.add(C.id);return h}),Pn=oe(()=>Ae.name==="home"),Fo=oe(()=>Ae.name==="skills"),Kc=oe(()=>{var h;return Fo.value?"Skills":Pn.value?"New thread":((h=f.value)==null?void 0:h.title)??"Choose a thread"}),rl=typeof window<"u"&&(window.location.hostname||window.location.host)||"codexui",Yc=oe(()=>{var _,C;return(((C=(_=f.value)==null?void 0:_.title)==null?void 0:C.trim())??"")||rl}),Js=oe(()=>xe.value.filter(h=>{const _=nw(h.messageType,h.role);return _==="worked"?!0:!(_==="turnActivity.live"||_==="turnError.live"||_==="agentReasoning.live")})),ol=oe(()=>A.value),qi=oe(()=>Pn.value?"__new-thread__":R.value),sl=oe(()=>{const h=k.value;return h.length>0?h[h.length-1]:null}),uo=oe(()=>{var h,_;return Pn.value?tt.value.trim():((_=(h=f.value)==null?void 0:h.cwd)==null?void 0:_.trim())??""}),hs=oe(()=>{var h;return!Pn.value&&((h=f.value)==null?void 0:h.inProgress)===!0}),Jc=oe(()=>!Pn.value&&!Fo.value&&R.value.trim().length>0),Hi=oe(()=>de.value||Re.value||hs.value||k.value.length>0);function Xs(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 Xc(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 il=oe(()=>{var _;const h=(_=g.value)==null?void 0:_.remainingContextPercent;return h===null||typeof h!="number"?"pending":h<=10?"danger":h<=25?"warning":"ok"}),Qc=oe(()=>{const h=g.value;return h?typeof h.remainingContextTokens=="number"?`${Xs(h.remainingContextTokens)} left`:`${Xs(h.currentContextTokens)} used`:"Awaiting data"}),Zc=oe(()=>{const h=g.value;return h?typeof h.modelContextWindow=="number"?`${Xs(h.currentContextTokens)} used / ${Xs(h.modelContextWindow)}`:"Window size unavailable":"Updates after the next token usage event"}),eu=oe(()=>Xc(g.value)),Wi=oe(()=>{var re,Te;const h=[],_=new Set;for(const Ce of Xn.value.order){const it=Ce.trim();!it||_.has(it)||(_.add(it),h.push({value:it,label:Xn.value.labels[it]||Ms(it)}))}for(const Ce of u.value){const it=((Te=(re=Ce.threads[0])==null?void 0:re.cwd)==null?void 0:Te.trim())??"";!it||_.has(it)||(_.add(it),h.push({value:it,label:d.value[Ce.projectName]??Ce.projectName}))}const C=tt.value.trim();return C&&!_.has(C)&&h.unshift({value:C,label:Ms(C)}),h}),Vi=oe(()=>{const h=Xt.value.trim(),_=[...vr.value];return h&&!_.some(C=>C.value===h)&&_.unshift({value:h,label:h}),_}),al=oe(()=>{const h=Xt.value.trim();if(!h)return"";const _=Vi.value.find(C=>C.value===h);return(_==null?void 0:_.label)??h}),tu=oe(()=>Fn.value??"__detached_head__"),nu=oe(()=>{var re;const h=[{value:"__review__",label:Qn.value?"Review (Open)":"Review"}],_=new Set,C=((re=Fn.value)==null?void 0:re.trim())??"";C?(h.push({value:C,label:C}),_.add(C)):(h.push({value:"__detached_head__",label:"Detached HEAD"}),_.add("__detached_head__"));for(const Te of ur.value)!Te.value||_.has(Te.value)||(_.add(Te.value),h.push(Te));return h}),ll=oe(()=>T.value.trim()),cl=oe(()=>{const h=tr.value.trim();return!h||h==="."||h===".."?!1:!/[\\/]/u.test(h)}),zi=oe(()=>cl.value&&ll.value.trim().length>0&&!w.value),ru=oe(()=>Le.value?"Creating…":"Create"),ou=oe(()=>{const h=T.value.trim(),_=M.value.trim();return!!(h&&_&&h!==_)}),ul=oe(()=>{const h=[];ou.value&&h.push({key:`parent:${M.value}`,name:"..",path:M.value,kind:"parent"});for(const _ of m.value)h.push({key:`directory:${_.path}`,name:_.name,path:_.path,kind:"directory"});return h}),Gi=oe(()=>{const h=st.value.trim().toLowerCase();return h?ul.value.filter(_=>_.kind==="parent"||_.name.toLowerCase().includes(h)):ul.value}),Bo=typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)"):null,su=oe(()=>[{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"}]),iu=oe(()=>a[Tt.value].label),au=oe(()=>{const h=a[Tt.value];return{"--chat-column-max":h.columnMax,"--chat-card-max":h.cardMax}}),lu=oe(()=>{if(!dt.value.configured)return"Not configured";const h=dt.value.active?"Online":"Configured (offline)",_=dt.value.allowAllUsers?"allow all users":`${dt.value.allowedUsers} allowed user(s)`,C=`${dt.value.mappedChats} chat(s), ${dt.value.mappedThreads} thread(s), ${_}`,re=dt.value.lastError?`, error: ${dt.value.lastError}`:"";return`${h}, ${C}${re}`});ls(()=>{document.addEventListener("pointerdown",lt),window.addEventListener("keydown",qe),document.addEventListener("visibilitychange",Zt),window.addEventListener("pageshow",_s),window.addEventListener("focus",bs),Tl(),Bo==null||Bo.addEventListener("change",Tl),rw(),Rb(),ti(),Ho(),dl(),wr(),xu(),mn.value&&Iu()}),Mc(()=>{document.removeEventListener("pointerdown",lt),window.removeEventListener("keydown",qe),document.removeEventListener("visibilitychange",Zt),window.removeEventListener("pageshow",_s),window.removeEventListener("focus",bs),Bo==null||Bo.removeEventListener("change",Tl),yn!==null&&(window.clearInterval(yn),yn=null),bn&&(clearTimeout(bn),bn=null),Ne()}),ct(pn,h=>{const _=h.trim();if(bn&&(clearTimeout(bn),bn=null),!_){zr.value=null;return}bn=setTimeout(()=>{OM(_,1e3).then(C=>{pn.value.trim()===_&&(zr.value=C.threadIds)}).catch(()=>{pn.value.trim()===_&&(zr.value=null)})},220)}),ct(hn,()=>{if(typeof window>"u")return;if(!hn.value.some(_=>_.quotaStatus==="loading")){yn!==null&&(window.clearInterval(yn),yn=null);return}yn===null&&(yn=window.setInterval(()=>{Ui||(Ui=!0,nr({silent:!0}).finally(()=>{Ui=!1}))},1500))},{deep:!0});function ms(){ie()}async function wr(){try{dt.value=await jM()}catch(h){const _=h instanceof Error?h.message:"Failed to load Telegram status";dt.value={configured:!1,active:!1,mappedChats:0,mappedThreads:0,allowedUsers:0,allowAllUsers:!1,lastError:_}}}async function dl(){try{const h=await DM();qn.value=h.botToken,$r.value=h.allowedUserIds.map(_=>String(_)).join(`
85
85
  `),gn.value=""}catch(h){gn.value=h instanceof Error?h.message:"Failed to load Telegram configuration"}}function Ki(h){const _=h.split(/[\n,]/).map(Te=>Te.trim().replace(/^(telegram|tg):/i,"").trim()).filter(Boolean),C=_.includes("*"),re=Array.from(new Set(_.filter(Te=>/^-?\d+$/.test(Te)).map(Te=>Number.parseInt(Te,10))));return C?["*",...re]:re}async function cu(){const h=qn.value.trim(),_=Ki($r.value);if(!h){gn.value="Telegram bot token is required.";return}if(_.length===0){gn.value="At least one allowed Telegram user ID or * is required.";return}Nr.value=!0,gn.value="";try{await LM(h,_),$r.value=_.map(C=>String(C)).join(`
86
86
  `),await Promise.all([dl(),wr()]),window.alert("Telegram bot configured. Only allowlisted Telegram users can use the bridge.")}catch(C){gn.value=C instanceof Error?C.message:"Failed to connect Telegram bot",wr()}finally{Nr.value=!1}}function uu(){jt.value=!jt.value,jt.value?Yt(()=>{var h;return(h=so.value)==null?void 0:h.focus()}):pn.value=""}function du(){var h;pn.value="",(h=so.value)==null||h.focus()}function fu(h){h.key==="Escape"&&(jt.value=!1,pn.value="")}function fl(h){h&&(Ae.name==="thread"&&co.value===h||(P.push({name:"thread",params:{threadId:h}}),$.value&&ke(!0)))}async function pu(h){h&&(R.value!==h&&(await Ie(h),await P.push({name:"thread",params:{threadId:h}})),await Yt(),$b())}function hu(h){return h.length>8?h.slice(-8):h}function pl(h){const _=[h.planType||"unknown"];return h.authMode&&_.unshift(h.authMode),_.join(" · ")}function hl(h){if(!h)return!1;const _=h.toLowerCase();return _.includes("payment required")||/\b402\b/.test(_)}function gs(h){return h.unavailableReason==="payment_required"||hl(h.quotaError)}function vs(h){return qt.value||Ct.value||Tn.value.length>0||h.isActive&&Tn.value!==h.accountId&&Hi.value}function ys(h){return An.value===h.accountId}function ml(h){return xn.value===h.accountId||ys(h)}function mu(h){return gs(h)?"Unavailable":h.isActive?"Active":Ct.value?"Switching…":"Switch"}function Qs(h){return Tn.value===h.accountId?"Removing…":ys(h)?"Click again to remove":"Remove"}function gu(h){xn.value=h}function vu(h){xn.value===h&&(xn.value=""),Tn.value!==h&&An.value===h&&(An.value="")}function yu(h){const _=h.quotaSnapshot;if(!_)return null;const C=[_==null?void 0:_.primary,_==null?void 0:_.secondary].filter(Ce=>Ce!==null),re=C.find(Ce=>Ce.windowMinutes===10080);if(re)return re;const Te=C.filter(Ce=>typeof Ce.windowMinutes=="number"&&Ce.windowMinutes>=10080).sort((Ce,it)=>(Ce.windowMinutes??0)-(it.windowMinutes??0))[0]??null;return Te||(_.secondary??null)}function _u(h){if(typeof h!="number"||!Number.isFinite(h))return"";const _=new Date(h*1e3);return`${_.getMonth()+1}月${_.getDate()}日`}function gl(h){var Ce,it;if(gs(h))return h.quotaError||"402 Payment Required";const _=h.quotaSnapshot,C=yu(h),re=(_==null?void 0:_.primary)??(_==null?void 0:_.secondary)??null,Te=C??re;if(Te){const $n=Math.max(0,Math.min(100,100-Math.round(Te.usedPercent))),Yr=_u(Te.resetsAt);return Yr?`${$n}% weekly remaining · ${Yr}`:`${$n}% weekly remaining`}return(Ce=_==null?void 0:_.credits)!=null&&Ce.unlimited?"Unlimited credits":(it=_==null?void 0:_.credits)!=null&&it.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 Yi(h){return[h.email||"Account",pl(h),gs(h)?"Unavailable account":null,gl(h),`Workspace ${h.accountId}`].filter(Boolean).join(`
@@ -88,5 +88,5 @@ ${w}`:s.value=w,Yt(()=>{var B;return(B=xe.value)==null?void 0:B.focus()}))}funct
88
88
  Then explain what this project does in very simple words a 5th grader can understand.`,imageUrls:[],fileAttachments:[],skills:[]})}function qo(h){const _=fe.value.findIndex(Ce=>Ce.id===h),C=_>=0?fe.value[_]:void 0,re=K.value;if(!C||!re||re.hasUnsavedDraft()&&!window.confirm("Replace the current draft with this queued message for editing?"))return;rt.value=R.value?{threadId:R.value,queueIndex:_}:null;const Te={text:C.text,imageUrls:[...C.imageUrls],fileAttachments:C.fileAttachments.map(Ce=>({...Ce})),skills:C.skills.map(Ce=>({...Ce}))};re.hydrateDraft(Te),je(h)}function Ji(){if(!$.value||Pn.value)return;const h=()=>{var _;(_=ae.value)==null||_.jumpToLatest()};h(),Yt(()=>{h(),!(typeof window>"u")&&window.requestAnimationFrame(()=>{h(),window.requestAnimationFrame(h)})})}function bl(h){tt.value=h.trim(),Qt.value=""}function wl(h){Xt.value=h.trim()}async function Qe(h){const _=h.trim();if(!_||Ae.name!=="thread"){ur.value=[],Fn.value=null;return}Ut.value=!0;try{const C=await xM(_);ur.value=C.options,Fn.value=C.currentBranch}catch{ur.value=[],Fn.value=null}finally{Ut.value=!1}}function rr(h){if(h==="__review__"){Qn.value=!Qn.value;return}if(h==="__detached_head__"||_r.value)return;const _=h.trim();if(!_||_===(Fn.value??""))return;const C=uo.value.trim();C&&(_r.value=!0,RM(C,_).then(re=>(Fn.value=re||_,Qn.value=!1,Qe(C))).catch(re=>{const Te=re instanceof Error?re.message:"Failed to switch branch";window.alert(Te)}).finally(()=>{_r.value=!1}))}async function po(){const h=await ku();if(!h)return;await Ho();const _=sn.value.trim()||"New Project (1)",C=window.prompt(`Create project in ${h}`,_);if(C===null)return;const re=C.trim();if(!re)return;const Te=Mp(Rp(h,re));if(Te)try{const Ce=await bd(Te,{createIfMissing:!0,label:""});if(!Ce)return;tt.value=Ce,ue(Ms(Ce)),await ti(),await Ho()}catch(Ce){const it=Ce instanceof Error?Ce.message:"Failed to create the project.";window.alert(it)}}async function Eb(){const h=tt.value.trim()||await ku();h&&(Hn.value=!1,ye.value=!0,st.value="",await ni(h),w.value||Yt(()=>{var _;return(_=vn.value)==null?void 0:_.focus()}))}function Xi(){ps+=1,ye.value=!1,B.value=!1,w.value="",st.value="",Qi()}async function kb(h){!h||B.value||(st.value="",await ni(h))}function Ib(){const h=T.value.trim();!ye.value||!h||ni(h)}function Cb(){const h=T.value.trim();!ye.value||!h||B.value||ni(h)}async function Cp(h=T.value){const _=h.trim();if(_){w.value="",ge.value=!0;try{const C=await bd(_,{createIfMissing:!1,label:""});if(!C){w.value="Failed to open the selected folder.";return}tt.value=C,ue(Ms(C)),await ti(),await Ho(),Xi()}catch(C){w.value=C instanceof Error?C.message:"Failed to open the selected folder."}finally{ge.value=!1}}}async function Ab(){if(Qt.value="",Hn.value){Qi();return}if(!ye.value){const h=tt.value.trim()||await ku();if(!h||(ye.value=!0,st.value="",await ni(h),w.value))return}w.value||(tr.value=sn.value,Hn.value=!0,Yt(()=>{var h;return(h=Zn.value)==null?void 0:h.focus()}))}function Qi(){Qt.value="",tr.value="",Hn.value=!1}async function Ap(){const h=tr.value.trim();if(!h)return;if(Qt.value="",w.value){Qt.value="Reload the current folder before creating a new one.";return}Le.value=!0;const _=ll.value.trim(),C=Mp(Rp(_,h));if(!C){Qt.value="Unable to determine where the new folder should be created.",Le.value=!1;return}if(!cl.value){Qt.value="Enter a single folder name.",Le.value=!1;return}try{const re=await PM(C);if(!re){Qt.value="Failed to create the folder.";return}Qt.value="",st.value="",await ni(re),Qi()}catch(re){Qt.value=re instanceof Error?re.message:"Failed to create folder."}finally{Le.value=!1}}async function xb(){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 C=await bd(h,{createIfMissing:!1,label:""});if(!C)return!1;tt.value=C,ue(Ms(C)),await P.replace({name:"home"}),await ti();const re=new URL(window.location.href);return re.searchParams.delete("openProjectPath"),window.history.replaceState({},"",re.toString()),!0}catch{return!1}}async function ku(){const h=xp();if(h)return h;try{const _=await gg();if(_)return Gr.value=_,_}catch{}return""}async function Ho(){const h=xp();if(!h){sn.value="New Project (1)";return}try{const _=await $M(h);sn.value=_.name||"New Project (1)"}catch{sn.value="New Project (1)"}}function xp(){var C,re;const h=tt.value.trim();if(h)return pd(h);const _=((re=(C=Wi.value[0])==null?void 0:C.value)==null?void 0:re.trim())??"";return _?pd(_):Gr.value.trim()}async function Rb(){try{Gr.value=await gg()}catch{Gr.value=""}}async function ti(){try{const h=await Ps();Xn.value={order:[...h.order],labels:{...h.labels}}}catch{Xn.value={order:[],labels:{}}}}async function ni(h){const _=++ps;T.value=Ht(h).trim(),w.value="",B.value=!0;try{const C=await MM(h,{showHidden:ot.value});if(_!==ps)return;T.value=C.path,M.value=C.parentPath,m.value=C.entries}catch(C){if(_!==ps)return;w.value=C instanceof Error?C.message:"Failed to load local folders.",M.value=pd(T.value),m.value=[],Qi()}finally{_===ps&&(B.value=!1)}}async function Iu(){Ue.value=!0;try{$e.value=await BM(nt.value,6)}catch{$e.value=[]}finally{Ue.value=!1}}function Rp(h,_){const C=Ht(h).trim(),re=Ht(_).trim().replace(/^[\\/]+/u,"");if(!C||!re)return"";const Te=C.includes("\\")&&!C.includes("/")?"\\":"/";if(/^[a-zA-Z]:[\\/]?$/u.test(C))return`${C.slice(0,2)}${Te}${re}`;if(/^\/+$/u.test(C))return`/${re}`;const Ce=C.replace(/[\\/]+$/u,"");return Ce?`${Ce}${Te}${re}`:""}function Mp(h){const _=Ht(h).trim();if(!_)return"";const C=_.match(/^\\\\([^\\/]+)[\\/]+([^\\/]+)([\\/].*)?$/u);if(C){const[,Te,Ce,it=""]=C,$n=Cu(it.split(/[\\/]+/u));return $n.length>0?`\\\\${Te}\\${Ce}\\${$n.join("\\")}`:`\\\\${Te}\\${Ce}`}const re=_.match(/^([a-zA-Z]:)([\\/].*)?$/u);if(re){const[,Te,Ce=""]=re,it=_.includes("\\")&&!_.includes("/")?"\\":"/",$n=Cu(Ce.split(/[\\/]+/u));return $n.length>0?`${Te}${it}${$n.join(it)}`:`${Te}${it}`}if(_.startsWith("/")){const Te=Cu(_.split("/"));return Te.length>0?`/${Te.join("/")}`:"/"}return _}function Cu(h){const _=[];for(const C of h){const re=C.trim();if(!(!re||re===".")){if(re===".."){_.length>0&&_.pop();continue}_.push(re)}}return _}function Pp(h){I(h)}function $p(h){q(h)}function Np(h){Z(h)}function Mb(){be()}function Pb(h){const _=h.turnId.trim();if(_.length>0){const C=[...Js.value].reverse().find(re=>{var Te;return re.role==="user"&&(((Te=re.turnId)==null?void 0:Te.trim())??"")===_&&re.text.trim().length>0});C!=null&&C.text&&K.value&&K.value.appendTextToDraft(C.text)}_e(h.turnId)}function $b(){if(Pn.value||Fo.value||typeof document>"u"||!f.value||Js.value.length===0)return;const h=Nb(),_=Ob(),C=new Blob([h],{type:"text/markdown;charset=utf-8"}),re=URL.createObjectURL(C),Te=document.createElement("a");Te.href=re,Te.download=_,document.body.appendChild(Te),Te.click(),document.body.removeChild(Te),window.setTimeout(()=>URL.revokeObjectURL(re),0)}function Nb(){var C,re,Te;const h=[],_=((re=(C=f.value)==null?void 0:C.title)==null?void 0:re.trim())||"Untitled thread";h.push(`# ${Lb(_)}`),h.push(""),h.push(`- Exported: ${new Date().toISOString()}`),h.push(`- Thread ID: ${((Te=f.value)==null?void 0:Te.id)??""}`),h.push(""),h.push("---"),h.push("");for(const Ce of Js.value){const it=Ce.role?Ce.role.toUpperCase():"MESSAGE";h.push(`## ${it}`),h.push("");const $n=Ce.text.trim();if($n&&(h.push($n),h.push("")),Ce.commandExecution&&(h.push("```text"),h.push(`command: ${Ce.commandExecution.command}`),h.push(`status: ${Ce.commandExecution.status}`),Ce.commandExecution.cwd&&h.push(`cwd: ${Ce.commandExecution.cwd}`),Ce.commandExecution.exitCode!==null&&h.push(`exitCode: ${Ce.commandExecution.exitCode}`),h.push(Ce.commandExecution.aggregatedOutput||"(no output)"),h.push("```"),h.push("")),Ce.fileAttachments&&Ce.fileAttachments.length>0){h.push("Attachments:");for(const Yr of Ce.fileAttachments)h.push(`- ${Yr.path}`);h.push("")}if(Ce.images&&Ce.images.length>0){h.push("Images:");for(const Yr of Ce.images)h.push(`- ${Yr}`);h.push("")}}return`${h.join(`
89
89
  `).trimEnd()}
90
90
  `}function Ob(){var Te,Ce;const C=(((Ce=(Te=f.value)==null?void 0:Te.title)==null?void 0:Ce.trim())||"chat").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"chat",re=new Date().toISOString().replace(/[:.]/g,"-");return`${C}-${re}.md`}function Lb(h){return h.replace(/([\\`*_{}\[\]()#+\-.!])/g,"\\$1")}function Sl(h,_){if(typeof window>"u")return _;const C=window.localStorage.getItem(h);return C===null?_:C==="1"}function Db(){if(typeof window>"u")return"system";const h=window.localStorage.getItem(jg);return h==="light"||h==="dark"?h:"system"}function jb(){return typeof window>"u"?"steer":window.localStorage.getItem(Dg)==="queue"?"queue":"steer"}function Fb(){if(typeof window>"u")return"standard";const h=window.localStorage.getItem(Hg);return h==="standard"||h==="wide"||h==="extra-wide"?h:"standard"}function Bb(){Bn.value=!Bn.value,window.localStorage.setItem(Lg,Bn.value?"1":"0")}function Ub(){Rn.value=Rn.value==="steer"?"queue":"steer",window.localStorage.setItem(Dg,Rn.value)}function qb(){const h=["system","light","dark"],_=h.indexOf(wt.value);wt.value=h[(_+1)%h.length],window.localStorage.setItem(jg,wt.value),Tl()}function Hb(){const h=["standard","wide","extra-wide"],_=h.indexOf(Tt.value);Tt.value=h[(_+1)%h.length],window.localStorage.setItem(Hg,Tt.value)}function Wb(){br.value=!br.value,window.localStorage.setItem(Fg,br.value?"1":"0")}function Vb(){dr.value=!dr.value,window.localStorage.setItem(Bg,dr.value?"1":"0")}function zb(){mn.value=!mn.value,window.localStorage.setItem(qg,mn.value?"1":"0")}async function Gb(h){if(!Kr.value){Kr.value=!0;try{if(h==="codex"){Mn.value="codex";const _=await hg(!1);er.value=_.enabled}else if(h==="openrouter"){Mn.value="openrouter";const _=await hg(!0);er.value=_.enabled}else h==="custom"&&(Mn.value="custom");await we({includeSelectedThreadMessages:!1})}catch{}finally{Kr.value=!1}}}async function Au(){if(Ft.value)return;const h=nn.value.trim();if(h){Ft.value=!0;try{await TM(h,lo.value.trim()),er.value=!0,await we({includeSelectedThreadMessages:!1})}catch{}finally{Ft.value=!1}}}async function Op(){if(!Ft.value){Ft.value=!0;try{const h=an.value.trim();await mg(h),an.value="",await xu(),await we({includeSelectedThreadMessages:!1})}catch{}finally{Ft.value=!1}}}async function Kb(){if(!Ft.value){Ft.value=!0;try{await mg(""),an.value="",await xu(),await we({includeSelectedThreadMessages:!1})}catch{}finally{Ft.value=!1}}}async function xu(){try{const h=await SM();er.value=h.enabled,ao.value=h.customKey??!1,Pr.value=h.maskedKey??null,h.enabled?h.provider==="custom"?(Mn.value="custom",nn.value=h.customBaseUrl??""):Mn.value="openrouter":Mn.value="codex"}catch{}}function Yb(h){const C=Ru(h.trim())||"auto";fr.value=C,window.localStorage.setItem(Ug,C)}function Jb(){var C;if(typeof window>"u")return"auto";const h=((C=window.localStorage.getItem(Ug))==null?void 0:C.trim())||"auto";return Ru(h)||"auto"}function Xb(){const h=[{value:"auto",label:"Auto-detect"}],_=new Set(["auto"]);function C(Te){const Ce=l[Te]||Te;return`${Ce.charAt(0).toUpperCase()+Ce.slice(1)} (${Te})`}for(const Te of typeof navigator<"u"?navigator.languages??[]:[]){const Ce=Ru(Te);!Ce||_.has(Ce)||(_.add(Ce),h.push({value:Ce,label:`Preferred: ${C(Ce)}`}))}for(const Te of Object.keys(l))_.has(Te)||(_.add(Te),h.push({value:Te,label:C(Te)}));const re=fr.value.trim();return re&&!_.has(re)&&h.push({value:re,label:C(re)}),h}function Ru(h){const _=h.trim().toLowerCase();if(!_||_==="auto")return"";if(_ in l)return _;const C=_.split("-")[0]??_;return C in l?C:""}function Tl(){const h=document.documentElement;if(wt.value==="dark")h.classList.add("dark");else if(wt.value==="light")h.classList.remove("dark");else{const _=window.matchMedia("(prefers-color-scheme: dark)").matches;h.classList.toggle("dark",_)}}function Qb(){return typeof window>"u"?!1:window.localStorage.getItem(Ng)==="1"}function Zb(h){typeof window>"u"||window.localStorage.setItem(Ng,h?"1":"0")}function ew(){if(typeof window>"u")return!0;const h=window.localStorage.getItem(Og);return h===null?!0:h==="1"}function tw(){Sn.value=!Sn.value,!(typeof window>"u")&&window.localStorage.setItem(Og,Sn.value?"1":"0")}function nw(h,_){const C=(h??"").trim();return C.length>0?C:_.trim()||"message"}function Lp(h){E(h)}async function rw(){await P.isReady(),Ae.name==="thread"&&co.value&&Se(co.value),ee(),await we({includeSelectedThreadMessages:!0}),nr({silent:!0}),await xb(),on.value=!0,await Mu()}async function Mu(){if($t.value){bt=!0;return}$t.value=!0;try{do{if(bt=!1,Ae.name==="home"||Ae.name==="skills"){R.value!==""&&await Ie("");continue}if(Ae.name==="thread"){const h=co.value;if(!h)continue;if(!nl.value.has(h)){await P.replace({name:"home"});continue}R.value!==h?await Ie(h):De(h,{silent:!0})}}while(bt)}finally{$t.value=!1}}ct(()=>[Ae.name,co.value,Oe.value,nl.value.has(co.value),R.value],async()=>{on.value&&await Mu()}),ct(()=>R.value,async h=>{if(on.value&&!$t.value&&!(Pn.value||Fo.value)){if(!h){Ae.name!=="home"&&await P.replace({name:"home"});return}Ae.name==="thread"&&co.value===h||await P.replace({name:"thread",params:{threadId:h}})}}),ct(()=>nt.value,()=>{mn.value&&Iu()}),ct(()=>mn.value,h=>{if(!h){$e.value=[];return}Iu()}),ct(()=>[on.value,Ae.name,R.value],([h,_,C])=>{h&&_==="thread"&&C&&De(C,{silent:!0})}),ct(()=>Wi.value,h=>{if(h.length===0){tt.value="";return}h.some(C=>C.value===tt.value)||(tt.value=h[0].value),Ho()},{immediate:!0}),ct(()=>tt.value,()=>{Vt.value={phase:"idle",title:"",message:""},Ho()}),ct(()=>[fn.value,tt.value],([h,_])=>{h==="worktree"&&Dp(_)},{immediate:!0}),ct(()=>fn.value,h=>{var _;if(h==="local"){Vt.value={phase:"idle",title:"",message:""};const C=tt.value.trim();if(C&&_l(C)){const re=((_=f.value)==null?void 0:_.projectName)??Ms(C),Te=Zs(re,"");Te&&(tt.value=Te)}return}Dp(tt.value)}),ct(()=>Ae.name,h=>{h!=="home"&&(Vt.value={phase:"idle",title:"",message:""}),h!=="thread"&&(Qn.value=!1)}),ct(()=>R.value,()=>{Vt.value={phase:"idle",title:"",message:""}}),ct(()=>[Ae.name,uo.value],([h,_])=>{if(h!=="thread"){ur.value=[],Fn.value=null;return}Qe(_)},{immediate:!0}),ct(Yc,h=>{typeof document>"u"||(document.title=h)},{immediate:!0}),ct($,h=>{h&&!It.value&&ke(!0)});async function ow(h,_=[],C=[],re=[]){try{Vt.value={phase:"idle",title:"",message:""};let Te=tt.value;if(fn.value==="worktree"){Vt.value={phase:"running",title:"Creating worktree",message:"Creating a worktree and running setup."};try{const it=await CM(tt.value,Xt.value);Te=it.cwd,tt.value=it.cwd,Vt.value={phase:"idle",title:"",message:""}}catch{Vt.value={phase:"error",title:"Worktree setup failed",message:"Unable to create worktree. Try again or switch to Local project."};return}}const Ce=await G(h,Te,_,C,re);if(!Ce)return;await P.replace({name:"thread",params:{threadId:Ce}}),Ji()}catch{}}async function Dp(h){var C;const _=h.trim();if(!_){vr.value=[],Xt.value="";return}cr.value=!0;try{const re=await AM(_);vr.value=re;const Te=Xt.value.trim();if(!(Te.length>0&&re.some(it=>it.value===Te))){const it=re.find($n=>$n.value.trim()==="main");Xt.value=(it==null?void 0:it.value)??((C=re[0])==null?void 0:C.value)??""}}catch{vr.value=[],Xt.value=""}finally{cr.value=!1}}return(h,_)=>(x(),mt(vR,{"is-sidebar-collapsed":It.value,onCloseSidebar:_[19]||(_[19]=C=>ke(!0))},{sidebar:At(()=>[b("section",tj,[b("div",nj,[It.value?he("",!0):(x(),mt(Eg,{key:0,class:"sidebar-thread-controls-host","is-sidebar-collapsed":It.value,"show-new-thread-button":!0,onToggleSidebar:_[0]||(_[0]=C=>ke(!It.value)),onStartNewThread:c},{default:At(()=>[b("button",{class:"sidebar-search-toggle",type:"button","aria-pressed":jt.value,"aria-label":"Search threads",title:"Search threads",onClick:uu},[We(kg,{class:"sidebar-search-toggle-icon"})],8,rj)]),_:1},8,["is-sidebar-collapsed"])),!It.value&&jt.value?(x(),L("div",oj,[We(kg,{class:"sidebar-search-bar-icon"}),Kn(b("input",{ref_key:"sidebarSearchInputRef",ref:so,"onUpdate:modelValue":_[1]||(_[1]=C=>pn.value=C),class:"sidebar-search-input",type:"text",placeholder:"Filter threads...",onKeydown:fu},null,544),[[ir,pn.value]]),pn.value.length>0?(x(),L("button",{key:0,class:"sidebar-search-clear",type:"button","aria-label":"Clear search",onClick:du},[We(_D,{class:"sidebar-search-clear-icon"})])):he("",!0)])):he("",!0),It.value?he("",!0):(x(),L("button",{key:2,class:ht(["sidebar-skills-link",{"is-active":Fo.value}]),type:"button",onClick:_[2]||(_[2]=C=>{Be(P).push({name:"skills"}),Be($)&&ke(!0)})}," Skills Hub ",2)),It.value?he("",!0):(x(),mt(D$,{key:3,groups:Be(u),"project-display-name-by-id":Be(d),"selected-thread-id":Be(R),"is-loading":Be(Oe),"search-query":pn.value,"search-matched-thread-ids":zr.value,onSelect:fl,onArchive:yl,onStartNewThread:Tu,onRenameProject:p,onBrowseThreadFiles:Eu,onRenameThread:v,onForkThread:Su,onRemoveProject:S,onReorderProject:D,onExportThread:pu},null,8,["groups","project-display-name-by-id","selected-thread-id","is-loading","search-query","search-matched-thread-ids"]))]),It.value?he("",!0):(x(),L("div",{key:0,ref_key:"settingsAreaRef",ref:fs,class:"sidebar-settings-area",onClick:vt},[We(ny,{name:"settings-panel"},{default:At(()=>[wn.value?(x(),L("div",{key:0,ref_key:"settingsPanelRef",ref:io,class:"sidebar-settings-panel",onClick:_[10]||(_[10]=pt(()=>{},["stop"]))},[b("div",sj,[b("div",ij,[b("div",aj,[b("button",{class:"sidebar-settings-account-collapse",type:"button","aria-expanded":!Sn.value,title:Sn.value?"Expand accounts":"Collapse accounts",onClick:tw},[b("span",cj,le(Sn.value?"▸":"▾"),1)],8,lj),_[20]||(_[20]=b("span",{class:"sidebar-settings-account-title"},"Accounts",-1)),b("span",uj,le(hn.value.length),1)]),b("button",{class:"sidebar-settings-account-refresh",type:"button",disabled:qt.value||Ct.value,onClick:bu},le(qt.value?"Reloading…":"Reload"),9,dj)]),Sn.value?he("",!0):(x(),L(Je,{key:0},[zt.value?(x(),L("p",fj,le(zt.value),1)):he("",!0),hn.value.length===0?(x(),L("p",pj," Run `codex login`, then click reload. ")):(x(),L("div",hj,[(x(!0),L(Je,null,Dt(hn.value,C=>(x(),L("article",{key:C.accountId,class:ht(["sidebar-settings-account-item",{"is-active":C.isActive,"is-unavailable":gs(C),"is-confirming-remove":ys(C),"is-remove-visible":ml(C)}]),title:Yi(C),onMouseenter:re=>gu(C.accountId),onMouseleave:re=>vu(C.accountId)},[b("div",gj,[b("p",vj,le(C.email||"Account"),1),b("p",yj,le(pl(C)),1),b("p",_j,le(gl(C)),1),b("p",bj," Workspace "+le(hu(C.accountId)),1)]),b("div",wj,[b("button",{class:"sidebar-settings-account-switch",type:"button",disabled:vs(C)||C.isActive||gs(C),onClick:re=>wu(C.accountId)},le(mu(C)),9,Sj),b("button",{class:ht(["sidebar-settings-account-remove",{"is-visible":ml(C),"is-confirming":ys(C)}]),type:"button",disabled:vs(C),onClick:re=>vl(C.accountId)},le(Qs(C)),11,Tj)])],42,mj))),128))]))],64))]),b("button",{class:"sidebar-settings-row",type:"button",title:i.sendWithEnter,onClick:Bb},[_[21]||(_[21]=b("span",{class:"sidebar-settings-label"},"Require ⌘ + enter to send",-1)),b("span",{class:ht(["sidebar-settings-toggle",{"is-on":!Bn.value}])},null,2)],8,Ej),b("button",{class:"sidebar-settings-row",type:"button",title:i.inProgressSendMode,onClick:Ub},[_[22]||(_[22]=b("span",{class:"sidebar-settings-label"},"When busy, send as",-1)),b("span",Ij,le(Rn.value==="steer"?"Steer":"Queue"),1)],8,kj),b("button",{class:"sidebar-settings-row",type:"button",title:i.appearance,onClick:qb},[_[23]||(_[23]=b("span",{class:"sidebar-settings-label"},"Appearance",-1)),b("span",Aj,le(wt.value==="system"?"System":wt.value==="dark"?"Dark":"Light"),1)],8,Cj),b("button",{class:"sidebar-settings-row",type:"button",title:i.chatWidth,onClick:Hb},[_[24]||(_[24]=b("span",{class:"sidebar-settings-label"},"Chat width",-1)),b("span",Rj,le(iu.value),1)],8,xj),b("button",{class:"sidebar-settings-row",type:"button",title:i.dictationClickToToggle,onClick:Wb},[_[25]||(_[25]=b("span",{class:"sidebar-settings-label"},"Click to toggle dictation",-1)),b("span",{class:ht(["sidebar-settings-toggle",{"is-on":br.value}])},null,2)],8,Mj),b("button",{class:"sidebar-settings-row",type:"button",title:i.dictationAutoSend,onClick:Vb},[_[26]||(_[26]=b("span",{class:"sidebar-settings-label"},"Auto send dictation",-1)),b("span",{class:ht(["sidebar-settings-toggle",{"is-on":dr.value}])},null,2)],8,Pj),b("button",{class:"sidebar-settings-row",type:"button",title:i.githubTrendingProjects,onClick:zb},[_[27]||(_[27]=b("span",{class:"sidebar-settings-label"},"GitHub trending projects",-1)),b("span",{class:ht(["sidebar-settings-toggle",{"is-on":mn.value}])},null,2)],8,$j),b("div",Nj,[_[29]||(_[29]=b("span",{class:"sidebar-settings-label"},"Provider",-1)),b("select",{class:"sidebar-settings-provider-select",value:Mn.value,disabled:Kr.value,onChange:_[3]||(_[3]=C=>Gb(C.target.value))},[..._[28]||(_[28]=[b("option",{value:"codex"},"Codex",-1),b("option",{value:"openrouter"},"OpenRouter",-1),b("option",{value:"custom"},"Custom endpoint",-1)])],40,Oj)]),Mn.value==="openrouter"?(x(),L("div",Lj,[_[30]||(_[30]=b("div",{class:"sidebar-settings-provider-info"},[b("span",{class:"sidebar-settings-label"},"OpenRouter API key"),b("a",{class:"sidebar-settings-provider-link",href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer"},"Get API key")],-1)),b("div",Dj,[ao.value&&!an.value?(x(),L(Je,{key:0},[b("span",jj,le(Pr.value),1),b("button",{class:"sidebar-settings-key-clear",type:"button",disabled:Ft.value,title:"Remove custom key, use community keys",onClick:Kb},"✕",8,Fj)],64)):(x(),L(Je,{key:1},[Kn(b("input",{"onUpdate:modelValue":_[4]||(_[4]=C=>an.value=C),class:"sidebar-settings-key-input",type:"password",placeholder:"sk-or-v1-... (optional, uses free keys if empty)",onKeydown:en(Op,["enter"])},null,544),[[ir,an.value]]),b("button",{class:"sidebar-settings-key-save",type:"button",disabled:Ft.value||!an.value.trim(),onClick:Op},le(Ft.value?"...":"Set"),9,Bj)],64))])])):he("",!0),Mn.value==="custom"?(x(),L("div",Uj,[_[31]||(_[31]=b("span",{class:"sidebar-settings-label"},"Custom endpoint URL",-1)),b("div",qj,[Kn(b("input",{"onUpdate:modelValue":_[5]||(_[5]=C=>nn.value=C),class:"sidebar-settings-key-input",type:"url",placeholder:"https://api.example.com/v1",onKeydown:en(Au,["enter"])},null,544),[[ir,nn.value]])]),_[32]||(_[32]=b("span",{class:"sidebar-settings-label",style:{"margin-top":"4px"}},"API key",-1)),b("div",Hj,[Kn(b("input",{"onUpdate:modelValue":_[6]||(_[6]=C=>lo.value=C),class:"sidebar-settings-key-input",type:"password",placeholder:"Bearer token (optional)",onKeydown:en(Au,["enter"])},null,544),[[ir,lo.value]]),b("button",{class:"sidebar-settings-key-save",type:"button",disabled:Ft.value||!nn.value.trim(),onClick:Au},le(Ft.value?"...":"Save"),9,Wj)])])):he("",!0),b("div",{class:"sidebar-settings-row sidebar-settings-row--select",title:i.dictationLanguage},[_[33]||(_[33]=b("span",{class:"sidebar-settings-label"},"Dictation language",-1)),We(Ls,{class:"sidebar-settings-language-dropdown","model-value":fr.value,options:jo.value,placeholder:"Auto-detect","open-direction":"up","enable-search":!0,"search-placeholder":"Search language...","onUpdate:modelValue":Yb},null,8,["model-value","options"])],8,Vj),b("button",{class:"sidebar-settings-row",type:"button","aria-live":"polite",onClick:_[7]||(_[7]=C=>Un.value=!Un.value)},[_[34]||(_[34]=b("span",{class:"sidebar-settings-label"},"Telegram",-1)),b("span",zj,le(lu.value),1)]),Un.value?(x(),L("div",Gj,[b("label",Kj,[_[35]||(_[35]=b("span",{class:"sidebar-settings-field-label"},"Bot token",-1)),Kn(b("input",{"onUpdate:modelValue":_[8]||(_[8]=C=>qn.value=C),class:"sidebar-settings-input",type:"password",placeholder:"123456:ABCDEF",autocomplete:"off",spellcheck:"false"},null,512),[[ir,qn.value]])]),b("label",Yj,[_[36]||(_[36]=b("span",{class:"sidebar-settings-field-label"},"Allowed Telegram user IDs",-1)),Kn(b("textarea",{"onUpdate:modelValue":_[9]||(_[9]=C=>$r.value=C),class:"sidebar-settings-textarea",rows:"3",placeholder:`123456789
91
- 987654321`,spellcheck:"false"},null,512),[[ir,$r.value]])]),_[37]||(_[37]=b("div",{class:"sidebar-settings-field-help"}," Put one Telegram user ID per line or separate them with commas. Use `*` to allow all Telegram users. Unauthorized users will see their own ID in the rejection message so they can copy it here. ",-1)),gn.value?(x(),L("div",Jj,le(gn.value),1)):he("",!0),b("div",Xj,[b("button",{class:"sidebar-settings-telegram-save",type:"button",disabled:Nr.value,onClick:cu},le(Nr.value?"Saving…":"Save Telegram config"),9,Qj)])])):he("",!0),Jc.value?(x(),L("div",{key:3,class:"sidebar-settings-row sidebar-settings-context-row","data-state":il.value,title:eu.value},[_[38]||(_[38]=b("span",{class:"sidebar-settings-label"},"Context",-1)),b("span",{class:"sidebar-settings-context-value","data-state":il.value},[Bs(le(Qc.value)+" ",1),b("span",tF,le(Zc.value),1)],8,eF)],8,Zj)):he("",!0),b("div",nF,[We(zL,{snapshots:Be(Me)},null,8,["snapshots"])]),b("div",rF," WT "+le(Be(o))+" · v"+le(Be(s)),1)],512)):he("",!0)]),_:1}),b("button",{ref_key:"settingsButtonRef",ref:yr,class:"sidebar-settings-button",type:"button",onClick:_[11]||(_[11]=pt(C=>wn.value=!wn.value,["stop"]))},[We(mD,{class:"sidebar-settings-icon"}),_[39]||(_[39]=b("span",null,"Settings",-1)),b("span",oF,le(Be(o))+" · v"+le(Be(s)),1)],512)],512))])]),content:At(()=>[b("section",{class:"content-root",style:To(au.value)},[We(H$,{title:Kc.value},{leading:At(()=>[It.value||Be($)?(x(),mt(Eg,{key:0,class:"sidebar-thread-controls-header-host","is-sidebar-collapsed":It.value,"show-new-thread-button":!0,onToggleSidebar:_[12]||(_[12]=C=>ke(!It.value)),onStartNewThread:c},null,8,["is-sidebar-collapsed"])):he("",!0)]),actions:At(()=>[Be(Ae).name==="thread"&&Be(R)?(x(),mt(Ls,{key:0,class:ht(["content-header-branch-dropdown",{"is-review-open":Qn.value}]),"model-value":tu.value,options:nu.value,disabled:Ut.value||_r.value,"enable-search":!0,"search-placeholder":"Search branches...","onUpdate:modelValue":rr},null,8,["class","model-value","options","disabled"])):he("",!0)]),_:1},8,["title"]),b("section",sF,[Fo.value?(x(),mt(Be(r),{key:0,onSkillsChanged:ms})):Pn.value?(x(),L("div",iF,[b("div",aF,[_[46]||(_[46]=b("p",{class:"new-thread-hero"},"Let's build",-1)),We(Ls,{class:"new-thread-folder-dropdown","model-value":tt.value,options:Wi.value,placeholder:"Choose folder","enable-search":!0,"search-placeholder":"Quick search project",disabled:!1,"onUpdate:modelValue":bl},null,8,["model-value","options"]),tt.value?(x(),L("p",{key:0,class:"new-thread-folder-selected",title:tt.value}," Selected folder: "+le(tt.value),9,lF)):he("",!0),b("div",{class:"new-thread-folder-actions"},[b("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",onClick:Eb}," Select folder "),b("button",{class:"new-thread-folder-action",type:"button",onClick:po}," Create Project ")]),(x(),mt(ua,{to:"body"},[ye.value?(x(),L("div",{key:0,class:"new-thread-open-folder-overlay",onClick:pt(Xi,["self"])},[b("div",{class:"new-thread-open-folder",role:"dialog","aria-modal":"true","aria-label":"Select folder",onKeydown:en(pt(Xi,["prevent"]),["esc"])},[b("div",{class:"new-thread-open-folder-header"},[_[40]||(_[40]=b("p",{class:"new-thread-open-folder-title"},"Select folder",-1)),b("button",{class:"new-thread-open-folder-close",type:"button",onClick:Xi}," Cancel ")]),_[42]||(_[42]=b("p",{class:"new-thread-open-folder-label"},"Current folder",-1)),b("div",uF,[b("p",{class:"new-thread-open-folder-path",title:T.value||"Unavailable"},le(T.value||"Unavailable"),9,dF),b("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",disabled:!T.value||!!w.value||B.value||ge.value,onClick:_[13]||(_[13]=C=>Cp())},le(ge.value?"Opening…":"Open"),9,fF)]),b("div",pF,[b("label",hF,[Kn(b("input",{"onUpdate:modelValue":_[14]||(_[14]=C=>ot.value=C),class:"new-thread-open-folder-toggle-input",type:"checkbox",onChange:Ib},null,544),[[AT,ot.value]]),_[41]||(_[41]=b("span",null,"Show hidden folders",-1))]),b("button",{class:ht(["new-thread-folder-action",{"new-thread-folder-action-primary":Hn.value}]),type:"button","aria-pressed":Hn.value,disabled:!T.value||B.value||ge.value||Le.value||!!w.value&&!Hn.value,onClick:Ab}," New folder ",10,mF)]),Hn.value?(x(),L("div",gF,[b("div",vF,[Kn(b("input",{ref_key:"createFolderInputRef",ref:Zn,"onUpdate:modelValue":_[15]||(_[15]=C=>tr.value=C),class:"new-thread-open-folder-create-input",type:"text",placeholder:"Folder name",onKeydown:[en(pt(Ap,["prevent"]),["enter"]),en(pt(Qi,["prevent"]),["esc"])]},null,40,yF),[[ir,tr.value]]),b("button",{class:"new-thread-folder-action new-thread-folder-action-primary new-thread-open-folder-create-submit",type:"button",disabled:!zi.value||Le.value,onClick:Ap},le(ru.value),9,_F)]),Qt.value?(x(),L("p",bF,le(Qt.value),1)):he("",!0)])):he("",!0),Kn(b("input",{ref_key:"existingFolderFilterInputRef",ref:vn,"onUpdate:modelValue":_[16]||(_[16]=C=>st.value=C),class:"new-thread-open-folder-filter",type:"text",placeholder:"Filter folders...",onKeydown:en(pt(Xi,["prevent"]),["esc"])},null,40,wF),[[ir,st.value]]),w.value?(x(),L("div",SF,[b("p",TF,le(w.value),1),b("button",{class:"new-thread-folder-action",type:"button",disabled:B.value||ge.value,onClick:Cb}," Retry ",8,EF)])):he("",!0),B.value?(x(),L("p",kF,"Loading folders…")):!w.value&&Gi.value.length===0?(x(),L("p",IF,le(st.value.trim()?"No folders match this filter.":"No subfolders found here."),1)):Gi.value.length>0?(x(),L("ul",CF,[(x(!0),L(Je,null,Dt(Gi.value,C=>(x(),L("li",{key:C.key,class:"new-thread-open-folder-item"},[b("button",{class:"new-thread-open-folder-item-main",type:"button",title:C.path,disabled:B.value||ge.value,onClick:re=>kb(C.path)},[b("span",xF,le(C.name),1)],8,AF),C.kind==="directory"?(x(),L("button",{key:0,class:"new-thread-open-folder-item-open",type:"button",disabled:B.value||ge.value,onClick:re=>Cp(C.path)}," Open ",8,RF)):he("",!0)]))),128))])):he("",!0)],40,cF)])):he("",!0)])),We(XL,{class:"new-thread-runtime-dropdown",modelValue:fn.value,"onUpdate:modelValue":_[17]||(_[17]=C=>fn.value=C)},null,8,["modelValue"]),fn.value==="worktree"?(x(),L("div",MF,[_[43]||(_[43]=b("p",{class:"new-thread-branch-select-label"},"Base branch",-1)),We(Ls,{class:"new-thread-branch-dropdown","model-value":Xt.value,options:Vi.value,placeholder:"Select branch","enable-search":!0,"search-placeholder":"Search branches...",disabled:cr.value||Vi.value.length===0,"onUpdate:modelValue":wl},null,8,["model-value","options","disabled"]),b("p",PF,le(cr.value?"Loading branches…":al.value?`New worktree branch will start from ${al.value}.`:"No Git branches found for this folder."),1)])):he("",!0),_[47]||(_[47]=b("p",{class:"new-thread-runtime-help"},[b("code",null,"Local project"),Bs(" uses the selected folder directly. "),b("code",null,"New worktree"),Bs(" creates an isolated Git worktree before the first prompt. ")],-1)),Vt.value.phase!=="idle"?(x(),L("div",{key:2,class:ht(["worktree-init-status",{"is-running":Vt.value.phase==="running","is-error":Vt.value.phase==="error"}])},[b("strong",$F,le(Vt.value.title),1),b("span",NF,le(Vt.value.message),1)],2)):he("",!0),mn.value?(x(),L("div",OF,[b("div",LF,[_[44]||(_[44]=b("p",{class:"new-thread-trending-title"},"Trending GitHub projects",-1)),We(Ls,{class:"new-thread-trending-scope-dropdown","model-value":nt.value,options:su.value,"onUpdate:modelValue":Uo},null,8,["model-value","options"])]),Ue.value?(x(),L("p",DF,"Loading trending projects...")):$e.value.length===0?(x(),L("p",jF," Trending repos are unavailable right now. ")):(x(),L("div",FF,[(x(!0),L(Je,null,Dt($e.value,C=>(x(),L("button",{key:C.id,type:"button",class:"new-thread-trending-tip",onClick:re=>Ts(C)},[b("span",{class:"new-thread-trending-tip-name",title:C.fullName},[C.owner&&C.repo?(x(),L(Je,{key:0},[b("span",qF,le(C.owner),1),_[45]||(_[45]=b("span",{class:"new-thread-trending-tip-name-slash"},"/",-1)),b("span",HF,le(C.repo),1)],64)):(x(),L("span",WF,le(C.fullName),1))],8,UF),b("span",VF,le(Ss(C)),1),b("span",zF,le(C.description||"No description available."),1)],8,BF))),128))]))])):he("",!0)]),b("div",GF,[We(Tg,{ref_key:"homeThreadComposerRef",ref:j,"active-thread-id":qi.value,cwd:uo.value,"collaboration-modes":Be(O),"selected-collaboration-mode":Be(z),models:Be(W),"selected-model":Be(ce),"selected-reasoning-effort":Be(ne),"selected-speed-mode":Be(Q),"is-updating-speed-mode":Be(ve),skills:Be(me),"thread-token-usage":Be(g),"codex-quota":Be(H),"is-turn-in-progress":!1,"is-stop-pending":!1,"is-interrupting-turn":!1,"send-with-enter":Bn.value,"in-progress-submit-mode":Rn.value,"dictation-click-to-toggle":br.value,"dictation-auto-send":dr.value,"dictation-language":fr.value,onSubmit:fo,"onUpdate:selectedCollaborationMode":Lp,"onUpdate:selectedModel":Pp,"onUpdate:selectedReasoningEffort":$p,"onUpdate:selectedSpeedMode":Np},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"])])])):(x(),L("div",KF,[Qn.value&&Be(R)&&uo.value?(x(),mt(Be(n),{key:0,"thread-id":Be(R),cwd:uo.value,"is-thread-in-progress":hs.value,onClose:_[18]||(_[18]=C=>Qn.value=!1)},null,8,["thread-id","cwd","is-thread-in-progress"])):(x(),L(Je,{key:1},[b("div",YF,[We(Be(t),{ref_key:"threadConversationRef",ref:ae,messages:Js.value,"is-loading":Be(J),"active-thread-id":qi.value,cwd:uo.value,"scroll-state":Be(y),"live-overlay":ol.value,"pending-requests":Be(k),onUpdateScrollState:F,onForkThread:te,onRollback:Pb,onRespondServerRequest:U},null,8,["messages","is-loading","active-thread-id","cwd","scroll-state","live-overlay","pending-requests"])]),b("div",JF,[We(DL,{messages:Be(fe),onEdit:qo,onSteer:Be(Xe),onDelete:Be(je)},null,8,["messages","onSteer","onDelete"]),sl.value?(x(),mt(AL,{key:0,request:sl.value,"request-count":Be(k).length,"has-queue-above":Be(fe).length>0,onRespondServerRequest:U},null,8,["request","request-count","has-queue-above"])):(x(),mt(Tg,{key:1,ref_key:"threadComposerRef",ref:K,"active-thread-id":qi.value,cwd:uo.value,"collaboration-modes":Be(O),"selected-collaboration-mode":Be(z),models:Be(W),"selected-model":Be(ce),"selected-reasoning-effort":Be(ne),"selected-speed-mode":Be(Q),"is-updating-speed-mode":Be(ve),skills:Be(me),"thread-token-usage":Be(g),"codex-quota":Be(H),"is-turn-in-progress":hs.value,"is-stop-pending":Be(Fe),"is-interrupting-turn":Be(Re),"has-queue-above":Be(fe).length>0,"send-with-enter":Bn.value,"in-progress-submit-mode":Rn.value,"dictation-click-to-toggle":br.value,"dictation-auto-send":dr.value,"dictation-language":fr.value,"onUpdate:selectedCollaborationMode":Lp,onSubmit:fo,"onUpdate:selectedModel":Pp,"onUpdate:selectedReasoningEffort":$p,"onUpdate:selectedSpeedMode":Np,onInterrupt:Mb},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-stop-pending","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"]))}}),ZF=kt(QF,[["__scopeId","data-v-8f736898"]]),Md={render:()=>null},Sb=cR({history:U1(),routes:[{path:"/",name:"home",component:Md},{path:"/thread/:threadId",name:"thread",component:Md},{path:"/skills",name:"skills",component:Md},{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 Tb=NT(ZF);async function e2(){{t2();return}}function t2(e){Xx({app:Tb,dsn:"https://9b1c6357d134c512f8171518ec2cb18e@o4511194738982912.ingest.us.sentry.io/4511201728200704",release:"codexui@0.1.88",environment:"production",integrations:[e1({router:Sb})],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}})}e2();Tb.use(Sb).mount("#app");"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(e=>{console.error("Service worker registration failed.",e)})});export{l2 as A,iM as B,Kn as C,n2 as D,o2 as E,Je as F,i2 as G,a2 as H,ec as I,r2 as J,s2 as K,Ip as L,ua as M,ZM as N,kg as O,ir as P,en as Q,ny as T,kt as _,b as a,ls as b,L as c,In as d,zs as e,he as f,Dt as g,ht as h,mt as i,At as j,Uf as k,To as l,We as m,Yt as n,x as o,Y$ as p,_D as q,N as r,pt as s,le as t,bp as u,Be as v,ct as w,Bs as x,oe as y,ld as z};
92
- //# sourceMappingURL=index-CmAz60O4.js.map
91
+ 987654321`,spellcheck:"false"},null,512),[[ir,$r.value]])]),_[37]||(_[37]=b("div",{class:"sidebar-settings-field-help"}," Put one Telegram user ID per line or separate them with commas. Use `*` to allow all Telegram users. Unauthorized users will see their own ID in the rejection message so they can copy it here. ",-1)),gn.value?(x(),L("div",Jj,le(gn.value),1)):he("",!0),b("div",Xj,[b("button",{class:"sidebar-settings-telegram-save",type:"button",disabled:Nr.value,onClick:cu},le(Nr.value?"Saving…":"Save Telegram config"),9,Qj)])])):he("",!0),Jc.value?(x(),L("div",{key:3,class:"sidebar-settings-row sidebar-settings-context-row","data-state":il.value,title:eu.value},[_[38]||(_[38]=b("span",{class:"sidebar-settings-label"},"Context",-1)),b("span",{class:"sidebar-settings-context-value","data-state":il.value},[Bs(le(Qc.value)+" ",1),b("span",tF,le(Zc.value),1)],8,eF)],8,Zj)):he("",!0),b("div",nF,[We(zL,{snapshots:Be(Me)},null,8,["snapshots"])]),b("div",rF," WT "+le(Be(o))+" · v"+le(Be(s)),1)],512)):he("",!0)]),_:1}),b("button",{ref_key:"settingsButtonRef",ref:yr,class:"sidebar-settings-button",type:"button",onClick:_[11]||(_[11]=pt(C=>wn.value=!wn.value,["stop"]))},[We(mD,{class:"sidebar-settings-icon"}),_[39]||(_[39]=b("span",null,"Settings",-1)),b("span",oF,le(Be(o))+" · v"+le(Be(s)),1)],512)],512))])]),content:At(()=>[b("section",{class:"content-root",style:To(au.value)},[We(H$,{title:Kc.value},{leading:At(()=>[It.value||Be($)?(x(),mt(Eg,{key:0,class:"sidebar-thread-controls-header-host","is-sidebar-collapsed":It.value,"show-new-thread-button":!0,onToggleSidebar:_[12]||(_[12]=C=>ke(!It.value)),onStartNewThread:c},null,8,["is-sidebar-collapsed"])):he("",!0)]),actions:At(()=>[Be(Ae).name==="thread"&&Be(R)?(x(),mt(Ls,{key:0,class:ht(["content-header-branch-dropdown",{"is-review-open":Qn.value}]),"model-value":tu.value,options:nu.value,disabled:Ut.value||_r.value,"enable-search":!0,"search-placeholder":"Search branches...","onUpdate:modelValue":rr},null,8,["class","model-value","options","disabled"])):he("",!0)]),_:1},8,["title"]),b("section",sF,[Fo.value?(x(),mt(Be(r),{key:0,onSkillsChanged:ms})):Pn.value?(x(),L("div",iF,[b("div",aF,[_[46]||(_[46]=b("p",{class:"new-thread-hero"},"Let's build",-1)),We(Ls,{class:"new-thread-folder-dropdown","model-value":tt.value,options:Wi.value,placeholder:"Choose folder","enable-search":!0,"search-placeholder":"Quick search project",disabled:!1,"onUpdate:modelValue":bl},null,8,["model-value","options"]),tt.value?(x(),L("p",{key:0,class:"new-thread-folder-selected",title:tt.value}," Selected folder: "+le(tt.value),9,lF)):he("",!0),b("div",{class:"new-thread-folder-actions"},[b("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",onClick:Eb}," Select folder "),b("button",{class:"new-thread-folder-action",type:"button",onClick:po}," Create Project ")]),(x(),mt(ua,{to:"body"},[ye.value?(x(),L("div",{key:0,class:"new-thread-open-folder-overlay",onClick:pt(Xi,["self"])},[b("div",{class:"new-thread-open-folder",role:"dialog","aria-modal":"true","aria-label":"Select folder",onKeydown:en(pt(Xi,["prevent"]),["esc"])},[b("div",{class:"new-thread-open-folder-header"},[_[40]||(_[40]=b("p",{class:"new-thread-open-folder-title"},"Select folder",-1)),b("button",{class:"new-thread-open-folder-close",type:"button",onClick:Xi}," Cancel ")]),_[42]||(_[42]=b("p",{class:"new-thread-open-folder-label"},"Current folder",-1)),b("div",uF,[b("p",{class:"new-thread-open-folder-path",title:T.value||"Unavailable"},le(T.value||"Unavailable"),9,dF),b("button",{class:"new-thread-folder-action new-thread-folder-action-primary",type:"button",disabled:!T.value||!!w.value||B.value||ge.value,onClick:_[13]||(_[13]=C=>Cp())},le(ge.value?"Opening…":"Open"),9,fF)]),b("div",pF,[b("label",hF,[Kn(b("input",{"onUpdate:modelValue":_[14]||(_[14]=C=>ot.value=C),class:"new-thread-open-folder-toggle-input",type:"checkbox",onChange:Ib},null,544),[[AT,ot.value]]),_[41]||(_[41]=b("span",null,"Show hidden folders",-1))]),b("button",{class:ht(["new-thread-folder-action",{"new-thread-folder-action-primary":Hn.value}]),type:"button","aria-pressed":Hn.value,disabled:!T.value||B.value||ge.value||Le.value||!!w.value&&!Hn.value,onClick:Ab}," New folder ",10,mF)]),Hn.value?(x(),L("div",gF,[b("div",vF,[Kn(b("input",{ref_key:"createFolderInputRef",ref:Zn,"onUpdate:modelValue":_[15]||(_[15]=C=>tr.value=C),class:"new-thread-open-folder-create-input",type:"text",placeholder:"Folder name",onKeydown:[en(pt(Ap,["prevent"]),["enter"]),en(pt(Qi,["prevent"]),["esc"])]},null,40,yF),[[ir,tr.value]]),b("button",{class:"new-thread-folder-action new-thread-folder-action-primary new-thread-open-folder-create-submit",type:"button",disabled:!zi.value||Le.value,onClick:Ap},le(ru.value),9,_F)]),Qt.value?(x(),L("p",bF,le(Qt.value),1)):he("",!0)])):he("",!0),Kn(b("input",{ref_key:"existingFolderFilterInputRef",ref:vn,"onUpdate:modelValue":_[16]||(_[16]=C=>st.value=C),class:"new-thread-open-folder-filter",type:"text",placeholder:"Filter folders...",onKeydown:en(pt(Xi,["prevent"]),["esc"])},null,40,wF),[[ir,st.value]]),w.value?(x(),L("div",SF,[b("p",TF,le(w.value),1),b("button",{class:"new-thread-folder-action",type:"button",disabled:B.value||ge.value,onClick:Cb}," Retry ",8,EF)])):he("",!0),B.value?(x(),L("p",kF,"Loading folders…")):!w.value&&Gi.value.length===0?(x(),L("p",IF,le(st.value.trim()?"No folders match this filter.":"No subfolders found here."),1)):Gi.value.length>0?(x(),L("ul",CF,[(x(!0),L(Je,null,Dt(Gi.value,C=>(x(),L("li",{key:C.key,class:"new-thread-open-folder-item"},[b("button",{class:"new-thread-open-folder-item-main",type:"button",title:C.path,disabled:B.value||ge.value,onClick:re=>kb(C.path)},[b("span",xF,le(C.name),1)],8,AF),C.kind==="directory"?(x(),L("button",{key:0,class:"new-thread-open-folder-item-open",type:"button",disabled:B.value||ge.value,onClick:re=>Cp(C.path)}," Open ",8,RF)):he("",!0)]))),128))])):he("",!0)],40,cF)])):he("",!0)])),We(XL,{class:"new-thread-runtime-dropdown",modelValue:fn.value,"onUpdate:modelValue":_[17]||(_[17]=C=>fn.value=C)},null,8,["modelValue"]),fn.value==="worktree"?(x(),L("div",MF,[_[43]||(_[43]=b("p",{class:"new-thread-branch-select-label"},"Base branch",-1)),We(Ls,{class:"new-thread-branch-dropdown","model-value":Xt.value,options:Vi.value,placeholder:"Select branch","enable-search":!0,"search-placeholder":"Search branches...",disabled:cr.value||Vi.value.length===0,"onUpdate:modelValue":wl},null,8,["model-value","options","disabled"]),b("p",PF,le(cr.value?"Loading branches…":al.value?`New worktree branch will start from ${al.value}.`:"No Git branches found for this folder."),1)])):he("",!0),_[47]||(_[47]=b("p",{class:"new-thread-runtime-help"},[b("code",null,"Local project"),Bs(" uses the selected folder directly. "),b("code",null,"New worktree"),Bs(" creates an isolated Git worktree before the first prompt. ")],-1)),Vt.value.phase!=="idle"?(x(),L("div",{key:2,class:ht(["worktree-init-status",{"is-running":Vt.value.phase==="running","is-error":Vt.value.phase==="error"}])},[b("strong",$F,le(Vt.value.title),1),b("span",NF,le(Vt.value.message),1)],2)):he("",!0),mn.value?(x(),L("div",OF,[b("div",LF,[_[44]||(_[44]=b("p",{class:"new-thread-trending-title"},"Trending GitHub projects",-1)),We(Ls,{class:"new-thread-trending-scope-dropdown","model-value":nt.value,options:su.value,"onUpdate:modelValue":Uo},null,8,["model-value","options"])]),Ue.value?(x(),L("p",DF,"Loading trending projects...")):$e.value.length===0?(x(),L("p",jF," Trending repos are unavailable right now. ")):(x(),L("div",FF,[(x(!0),L(Je,null,Dt($e.value,C=>(x(),L("button",{key:C.id,type:"button",class:"new-thread-trending-tip",onClick:re=>Ts(C)},[b("span",{class:"new-thread-trending-tip-name",title:C.fullName},[C.owner&&C.repo?(x(),L(Je,{key:0},[b("span",qF,le(C.owner),1),_[45]||(_[45]=b("span",{class:"new-thread-trending-tip-name-slash"},"/",-1)),b("span",HF,le(C.repo),1)],64)):(x(),L("span",WF,le(C.fullName),1))],8,UF),b("span",VF,le(Ss(C)),1),b("span",zF,le(C.description||"No description available."),1)],8,BF))),128))]))])):he("",!0)]),b("div",GF,[We(Tg,{ref_key:"homeThreadComposerRef",ref:j,"active-thread-id":qi.value,cwd:uo.value,"collaboration-modes":Be(O),"selected-collaboration-mode":Be(z),models:Be(W),"selected-model":Be(ce),"selected-reasoning-effort":Be(ne),"selected-speed-mode":Be(Q),"is-updating-speed-mode":Be(ve),skills:Be(me),"thread-token-usage":Be(g),"codex-quota":Be(H),"is-turn-in-progress":!1,"is-stop-pending":!1,"is-interrupting-turn":!1,"send-with-enter":Bn.value,"in-progress-submit-mode":Rn.value,"dictation-click-to-toggle":br.value,"dictation-auto-send":dr.value,"dictation-language":fr.value,onSubmit:fo,"onUpdate:selectedCollaborationMode":Lp,"onUpdate:selectedModel":Pp,"onUpdate:selectedReasoningEffort":$p,"onUpdate:selectedSpeedMode":Np},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"])])])):(x(),L("div",KF,[Qn.value&&Be(R)&&uo.value?(x(),mt(Be(n),{key:0,"thread-id":Be(R),cwd:uo.value,"is-thread-in-progress":hs.value,onClose:_[18]||(_[18]=C=>Qn.value=!1)},null,8,["thread-id","cwd","is-thread-in-progress"])):(x(),L(Je,{key:1},[b("div",YF,[We(Be(t),{ref_key:"threadConversationRef",ref:ae,messages:Js.value,"is-loading":Be(J),"active-thread-id":qi.value,cwd:uo.value,"scroll-state":Be(y),"live-overlay":ol.value,"pending-requests":Be(k),onUpdateScrollState:F,onForkThread:te,onRollback:Pb,onRespondServerRequest:U},null,8,["messages","is-loading","active-thread-id","cwd","scroll-state","live-overlay","pending-requests"])]),b("div",JF,[We(DL,{messages:Be(fe),onEdit:qo,onSteer:Be(Xe),onDelete:Be(je)},null,8,["messages","onSteer","onDelete"]),sl.value?(x(),mt(AL,{key:0,request:sl.value,"request-count":Be(k).length,"has-queue-above":Be(fe).length>0,onRespondServerRequest:U},null,8,["request","request-count","has-queue-above"])):(x(),mt(Tg,{key:1,ref_key:"threadComposerRef",ref:K,"active-thread-id":qi.value,cwd:uo.value,"collaboration-modes":Be(O),"selected-collaboration-mode":Be(z),models:Be(W),"selected-model":Be(ce),"selected-reasoning-effort":Be(ne),"selected-speed-mode":Be(Q),"is-updating-speed-mode":Be(ve),skills:Be(me),"thread-token-usage":Be(g),"codex-quota":Be(H),"is-turn-in-progress":hs.value,"is-stop-pending":Be(Fe),"is-interrupting-turn":Be(Re),"has-queue-above":Be(fe).length>0,"send-with-enter":Bn.value,"in-progress-submit-mode":Rn.value,"dictation-click-to-toggle":br.value,"dictation-auto-send":dr.value,"dictation-language":fr.value,"onUpdate:selectedCollaborationMode":Lp,onSubmit:fo,"onUpdate:selectedModel":Pp,"onUpdate:selectedReasoningEffort":$p,"onUpdate:selectedSpeedMode":Np,onInterrupt:Mb},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-stop-pending","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"]))}}),ZF=kt(QF,[["__scopeId","data-v-8f736898"]]),Md={render:()=>null},Sb=cR({history:U1(),routes:[{path:"/",name:"home",component:Md},{path:"/thread/:threadId",name:"thread",component:Md},{path:"/skills",name:"skills",component:Md},{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 Tb=NT(ZF);async function e2(){{t2();return}}function t2(e){Xx({app:Tb,dsn:"https://9b1c6357d134c512f8171518ec2cb18e@o4511194738982912.ingest.us.sentry.io/4511201728200704",release:"codexui@0.1.89",environment:"production",integrations:[e1({router:Sb})],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}})}e2();Tb.use(Sb).mount("#app");"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").catch(e=>{console.error("Service worker registration failed.",e)})});export{l2 as A,iM as B,Kn as C,n2 as D,o2 as E,Je as F,i2 as G,a2 as H,ec as I,r2 as J,s2 as K,Ip as L,ua as M,ZM as N,kg as O,ir as P,en as Q,ny as T,kt as _,b as a,ls as b,L as c,In as d,zs as e,he as f,Dt as g,ht as h,mt as i,At as j,Uf as k,To as l,We as m,Yt as n,x as o,Y$ as p,_D as q,N as r,pt as s,le as t,bp as u,Be as v,ct as w,Bs as x,oe as y,ld as z};
92
+ //# sourceMappingURL=index-Bn_MPBwp.js.map